@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Elasticsearch Request & Response Specification
@auth ApiKey ids in path
@endpoints 824
@hint download_for_search
@toc _async_search(4), {index}(123), _bulk(2), _cat(47), _ccr(7), _search(10), _pit(1), _cluster(15), _component_template(6), _info(1), _remote(1), _connector(30), _count(2), _dangling(3), _delete_by_query(1), _scripts(8), _enrich(6), _eql(3), _query(7), _features(2), _field_caps(2), _fleet(2), _script_context(1), _script_language(1), _health_report(2), _ilm(9), _analyze(2), _migration(6), _cache(1), _data_stream(19), _create_from(2), _index_template(9), _template(6), _alias(3), _flush(2), _forcemerge(1), _lifecycle(1), _mapping(2), _settings(3), _recovery(1), _refresh(2), _resolve(4), {alias}(2), _segments(1), _shard_stores(1), _stats(2), _aliases(1), _validate(2), _inference(45), root(2), _ingest(22), _license(8), _logstash(4), _mget(2), _ml(107), _msearch(4), _mtermvectors(2), _nodes(20), _query_rules(8), _rank_eval(2), _reindex(2), _render(4), _rollup(8), _application(12), _search_shards(2), _searchable_snapshots(4), _snapshot(19), _security(95), _slm(10), _sql(8), _ssl(1), _streams(3), _synonyms(7), _tasks(4), _text_structure(6), _transform(17), _update_by_query(1), _watcher(24), _xpack(2)

@group _async_search
@endpoint GET /_async_search/{id}
@required {id: str}
@optional {keep_alive: any, typed_keys: bool, wait_for_completion_timeout: any, return_intermediate_results: bool}
@returns(200)

@endpoint DELETE /_async_search/{id}
@required {id: str}
@returns(200) {acknowledged: bool}

@endpoint GET /_async_search/status/{id}
@required {id: str}
@optional {keep_alive: any}
@returns(200)

@endpoint POST /_async_search
@optional {wait_for_completion_timeout: any, keep_alive: any, keep_on_completion: bool, allow_no_indices: bool, allow_partial_search_results: bool, analyzer: str, analyze_wildcard: bool, batched_reduce_size: num, ccs_minimize_roundtrips: bool, default_operator: str, df: str, docvalue_fields: any, expand_wildcards: any, explain: bool, ignore_throttled: bool, ignore_unavailable: bool, lenient: bool, max_concurrent_shard_requests: num, preference: str, request_cache: bool, routing: any, search_type: str, stats: [str], stored_fields: any, suggest_field: str, suggest_mode: str, suggest_size: num, suggest_text: str, terminate_after: num, timeout: any, track_total_hits: any, track_scores: bool, typed_keys: bool, rest_total_hits_as_int: bool, version: bool, _source: any, _source_excludes: any, _source_includes: any, seq_no_primary_term: bool, q: str, size: num, from: num, sort: any, aggregations: map, collapse: any, explain: bool=false, ext: map, from: num=0, highlight: any, track_total_hits: any, indices_boost: [map], docvalue_fields: [map{field!: any, format: str, include_unmapped: bool}], knn: any, min_score: num, post_filter: any, profile: bool, query: any, rescore: any, script_fields: map, search_after: any, size: num=10, slice: any, sort: any, _source: any, fields: [map{field!: any, format: str, include_unmapped: bool}], suggest: any, terminate_after: num=0, timeout: str, track_scores: bool=false, version: bool=false, seq_no_primary_term: bool, stored_fields: any, pit: any, runtime_mappings: any, stats: [str]}
@returns(200)

@endgroup

@group {index}
@endpoint POST /{index}/_async_search
@required {index: any}
@optional {wait_for_completion_timeout: any, keep_alive: any, keep_on_completion: bool, allow_no_indices: bool, allow_partial_search_results: bool, analyzer: str, analyze_wildcard: bool, batched_reduce_size: num, ccs_minimize_roundtrips: bool, default_operator: str, df: str, docvalue_fields: any, expand_wildcards: any, explain: bool, ignore_throttled: bool, ignore_unavailable: bool, lenient: bool, max_concurrent_shard_requests: num, preference: str, request_cache: bool, routing: any, search_type: str, stats: [str], stored_fields: any, suggest_field: str, suggest_mode: str, suggest_size: num, suggest_text: str, terminate_after: num, timeout: any, track_total_hits: any, track_scores: bool, typed_keys: bool, rest_total_hits_as_int: bool, version: bool, _source: any, _source_excludes: any, _source_includes: any, seq_no_primary_term: bool, q: str, size: num, from: num, sort: any, aggregations: map, collapse: any, explain: bool=false, ext: map, from: num=0, highlight: any, track_total_hits: any, indices_boost: [map], docvalue_fields: [map{field!: any, format: str, include_unmapped: bool}], knn: any, min_score: num, post_filter: any, profile: bool, query: any, rescore: any, script_fields: map, search_after: any, size: num=10, slice: any, sort: any, _source: any, fields: [map{field!: any, format: str, include_unmapped: bool}], suggest: any, terminate_after: num=0, timeout: str, track_scores: bool=false, version: bool=false, seq_no_primary_term: bool, stored_fields: any, pit: any, runtime_mappings: any, stats: [str]}
@returns(200)

@endgroup

@group _bulk
@endpoint PUT /_bulk
@optional {include_source_on_error: bool, list_executed_pipelines: bool, pipeline: str, refresh: str, routing: any, _source: any, _source_excludes: any, _source_includes: any, timeout: any, wait_for_active_shards: any, require_alias: bool, require_data_stream: bool}
@returns(200) {errors: bool, items: [map], took: num, ingest_took: num}

@endpoint POST /_bulk
@optional {include_source_on_error: bool, list_executed_pipelines: bool, pipeline: str, refresh: str, routing: any, _source: any, _source_excludes: any, _source_includes: any, timeout: any, wait_for_active_shards: any, require_alias: bool, require_data_stream: bool}
@returns(200) {errors: bool, items: [map], took: num, ingest_took: num}

@endgroup

@group {index}
@endpoint PUT /{index}/_bulk
@required {index: str}
@optional {include_source_on_error: bool, list_executed_pipelines: bool, pipeline: str, refresh: str, routing: any, _source: any, _source_excludes: any, _source_includes: any, timeout: any, wait_for_active_shards: any, require_alias: bool, require_data_stream: bool}
@returns(200) {errors: bool, items: [map], took: num, ingest_took: num}

@endpoint POST /{index}/_bulk
@required {index: str}
@optional {include_source_on_error: bool, list_executed_pipelines: bool, pipeline: str, refresh: str, routing: any, _source: any, _source_excludes: any, _source_includes: any, timeout: any, wait_for_active_shards: any, require_alias: bool, require_data_stream: bool}
@returns(200) {errors: bool, items: [map], took: num, ingest_took: num}

@endgroup

@group _cat
@endpoint GET /_cat/aliases
@optional {h: any, s: any, expand_wildcards: any, master_timeout: any}
@returns(200)

@endpoint GET /_cat/aliases/{name}
@required {name: any}
@optional {h: any, s: any, expand_wildcards: any, master_timeout: any}
@returns(200)

@endpoint GET /_cat/allocation
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/allocation/{node_id}
@required {node_id: any}
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/circuit_breaker
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/circuit_breaker/{circuit_breaker_patterns}
@required {circuit_breaker_patterns: any}
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/component_templates
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/component_templates/{name}
@required {name: str}
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/count
@optional {h: any, s: any}
@returns(200)

@endpoint POST /_cat/count
@optional {h: any, s: any}
@returns(200)

@endpoint GET /_cat/count/{index}
@required {index: any}
@optional {h: any, s: any}
@returns(200)

@endpoint POST /_cat/count/{index}
@required {index: any}
@optional {h: any, s: any}
@returns(200)

@endpoint GET /_cat/fielddata
@optional {fields: any, h: any, s: any}
@returns(200)

@endpoint GET /_cat/fielddata/{fields}
@required {fields: any}
@optional {fields: any, h: any, s: any}
@returns(200)

@endpoint GET /_cat/health
@optional {ts: bool, h: any, s: any}
@returns(200)

@endpoint GET /_cat
@returns(200)

@endpoint GET /_cat/indices
@optional {expand_wildcards: any, health: str, include_unloaded_segments: bool, pri: bool, master_timeout: any, h: any, s: any}
@returns(200)

@endpoint GET /_cat/indices/{index}
@required {index: any}
@optional {expand_wildcards: any, health: str, include_unloaded_segments: bool, pri: bool, master_timeout: any, h: any, s: any}
@returns(200)

@endpoint GET /_cat/master
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/ml/data_frame/analytics
@optional {allow_no_match: bool, h: any, s: any}
@returns(200)

@endpoint GET /_cat/ml/data_frame/analytics/{id}
@required {id: str}
@optional {allow_no_match: bool, h: any, s: any}
@returns(200)

@endpoint GET /_cat/ml/datafeeds
@optional {allow_no_match: bool, h: any, s: any}
@returns(200)

@endpoint GET /_cat/ml/datafeeds/{datafeed_id}
@required {datafeed_id: str}
@optional {allow_no_match: bool, h: any, s: any}
@returns(200)

@endpoint GET /_cat/ml/anomaly_detectors
@optional {allow_no_match: bool, h: any, s: any}
@returns(200)

@endpoint GET /_cat/ml/anomaly_detectors/{job_id}
@required {job_id: str}
@optional {allow_no_match: bool, h: any, s: any}
@returns(200)

@endpoint GET /_cat/ml/trained_models
@optional {allow_no_match: bool, h: any, s: any, from: num, size: num}
@returns(200)

@endpoint GET /_cat/ml/trained_models/{model_id}
@required {model_id: str}
@optional {allow_no_match: bool, h: any, s: any, from: num, size: num}
@returns(200)

@endpoint GET /_cat/nodeattrs
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/nodes
@optional {full_id: bool, include_unloaded_segments: bool, h: any, s: any, master_timeout: any}
@returns(200)

@endpoint GET /_cat/pending_tasks
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/plugins
@optional {h: any, s: any, include_bootstrap: bool, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/recovery
@optional {active_only: bool, detailed: bool, index: any, h: any, s: any}
@returns(200)

@endpoint GET /_cat/recovery/{index}
@required {index: any}
@optional {active_only: bool, detailed: bool, index: any, h: any, s: any}
@returns(200)

@endpoint GET /_cat/repositories
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/segments
@optional {h: any, s: any, local: bool, master_timeout: any, expand_wildcards: any, allow_no_indices: bool, ignore_throttled: bool, ignore_unavailable: bool, allow_closed: bool}
@returns(200)

@endpoint GET /_cat/segments/{index}
@required {index: any}
@optional {h: any, s: any, local: bool, master_timeout: any, expand_wildcards: any, allow_no_indices: bool, ignore_throttled: bool, ignore_unavailable: bool, allow_closed: bool}
@returns(200)

@endpoint GET /_cat/shards
@optional {h: any, s: any, master_timeout: any}
@returns(200)

@endpoint GET /_cat/shards/{index}
@required {index: any}
@optional {h: any, s: any, master_timeout: any}
@returns(200)

@endpoint GET /_cat/snapshots
@optional {ignore_unavailable: bool, h: any, s: any, master_timeout: any}
@returns(200)

@endpoint GET /_cat/snapshots/{repository}
@required {repository: any}
@optional {ignore_unavailable: bool, h: any, s: any, master_timeout: any}
@returns(200)

@endpoint GET /_cat/tasks
@optional {actions: [str], detailed: bool, nodes: [str], parent_task_id: str, h: any, s: any, timeout: any, wait_for_completion: bool}
@returns(200)

@endpoint GET /_cat/templates
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/templates/{name}
@required {name: str}
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/thread_pool
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/thread_pool/{thread_pool_patterns}
@required {thread_pool_patterns: any}
@optional {h: any, s: any, local: bool, master_timeout: any}
@returns(200)

@endpoint GET /_cat/transforms
@optional {allow_no_match: bool, from: num, h: any, s: any, size: num}
@returns(200)

@endpoint GET /_cat/transforms/{transform_id}
@required {transform_id: str}
@optional {allow_no_match: bool, from: num, h: any, s: any, size: num}
@returns(200)

@endgroup

@group _ccr
@endpoint GET /_ccr/auto_follow/{name}
@required {name: str}
@optional {master_timeout: any}
@returns(200) {patterns: [map]}

@endpoint PUT /_ccr/auto_follow/{name}
@required {name: str, remote_cluster: str}
@optional {master_timeout: any, follow_index_pattern: any, leader_index_patterns: any, leader_index_exclusion_patterns: any, max_outstanding_read_requests: num=12, settings: map, max_outstanding_write_requests: num=9, read_poll_timeout: any=1m, max_read_request_operation_count: num=5120, max_read_request_size: any=32mb, max_retry_delay: any=500ms, max_write_buffer_count: num=2147483647, max_write_buffer_size: any=512mb, max_write_request_operation_count: num=5120, max_write_request_size: any=9223372036854775807b}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_ccr/auto_follow/{name}
@required {name: str}
@optional {master_timeout: any}
@returns(200) {acknowledged: bool}

@endgroup

@group {index}
@endpoint PUT /{index}/_ccr/follow
@required {index: str, leader_index: any, remote_cluster: str}
@optional {master_timeout: any, wait_for_active_shards: any, data_stream_name: str, max_outstanding_read_requests: num, max_outstanding_write_requests: num, max_read_request_operation_count: num, max_read_request_size: any, max_retry_delay: any, max_write_buffer_count: num, max_write_buffer_size: any, max_write_request_operation_count: num, max_write_request_size: any, read_poll_timeout: any, settings: any}
@returns(200) {follow_index_created: bool, follow_index_shards_acked: bool, index_following_started: bool}

@endpoint GET /{index}/_ccr/info
@required {index: any}
@optional {master_timeout: any}
@returns(200) {follower_indices: [map]}

@endpoint GET /{index}/_ccr/stats
@required {index: any}
@optional {timeout: any}
@returns(200) {indices: [map]}

@endpoint POST /{index}/_ccr/forget_follower
@required {index: str}
@optional {timeout: any, follower_cluster: str, follower_index: any, follower_index_uuid: any, leader_remote_cluster: str}
@returns(200) {_shards: any}

@endgroup

@group _ccr
@endpoint GET /_ccr/auto_follow
@optional {master_timeout: any}
@returns(200) {patterns: [map]}

@endpoint POST /_ccr/auto_follow/{name}/pause
@required {name: str}
@optional {master_timeout: any}
@returns(200) {acknowledged: bool}

@endgroup

@group {index}
@endpoint POST /{index}/_ccr/pause_follow
@required {index: str}
@optional {master_timeout: any}
@returns(200) {acknowledged: bool}

@endgroup

@group _ccr
@endpoint POST /_ccr/auto_follow/{name}/resume
@required {name: str}
@optional {master_timeout: any}
@returns(200) {acknowledged: bool}

@endgroup

@group {index}
@endpoint POST /{index}/_ccr/resume_follow
@required {index: str}
@optional {master_timeout: any, max_outstanding_read_requests: num, max_outstanding_write_requests: num, max_read_request_operation_count: num, max_read_request_size: str, max_retry_delay: any, max_write_buffer_count: num, max_write_buffer_size: str, max_write_request_operation_count: num, max_write_request_size: str, read_poll_timeout: any}
@returns(200) {acknowledged: bool}

@endgroup

@group _ccr
@endpoint GET /_ccr/stats
@optional {master_timeout: any, timeout: any}
@returns(200) {auto_follow_stats: any, follow_stats: any}

@endgroup

@group {index}
@endpoint POST /{index}/_ccr/unfollow
@required {index: str}
@optional {master_timeout: any}
@returns(200) {acknowledged: bool}

@endgroup

@group _search
@endpoint GET /_search/scroll
@required {scroll_id: any}
@optional {scroll: any, scroll_id: str, rest_total_hits_as_int: bool, scroll: any=1d}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endpoint POST /_search/scroll
@required {scroll_id: any}
@optional {scroll: any, scroll_id: str, rest_total_hits_as_int: bool, scroll: any=1d}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endpoint DELETE /_search/scroll
@optional {scroll_id: any}
@returns(200) {succeeded: bool, num_freed: num}

@endpoint GET /_search/scroll/{scroll_id}
@required {scroll_id: str, scroll_id: any}
@optional {scroll: any, scroll_id: str, rest_total_hits_as_int: bool, scroll: any=1d}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endpoint POST /_search/scroll/{scroll_id}
@required {scroll_id: str, scroll_id: any}
@optional {scroll: any, scroll_id: str, rest_total_hits_as_int: bool, scroll: any=1d}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endpoint DELETE /_search/scroll/{scroll_id}
@required {scroll_id: any}
@optional {scroll_id: any}
@returns(200) {succeeded: bool, num_freed: num}

@endgroup

@group _pit
@endpoint DELETE /_pit
@required {id: any}
@returns(200) {succeeded: bool, num_freed: num}

@endgroup

@group _cluster
@endpoint GET /_cluster/allocation/explain
@optional {index: str, shard: num, primary: bool, current_node: str, include_disk_info: bool, include_yes_decisions: bool, master_timeout: any, index: any, shard: num, primary: bool, current_node: any}
@returns(200) {allocate_explanation: str, allocation_delay: any, allocation_delay_in_millis: any, can_allocate: any, can_move_to_other_node: any, can_rebalance_cluster: any, can_rebalance_cluster_decisions: [map], can_rebalance_to_other_node: any, can_remain_decisions: [map], can_remain_on_current_node: any, cluster_info: any, configured_delay: any, configured_delay_in_millis: any, current_node: any, current_state: str, index: any, move_explanation: str, node_allocation_decisions: [map], primary: bool, rebalance_explanation: str, remaining_delay: any, remaining_delay_in_millis: any, shard: num, unassigned_info: any, note: str}

@endpoint POST /_cluster/allocation/explain
@optional {index: str, shard: num, primary: bool, current_node: str, include_disk_info: bool, include_yes_decisions: bool, master_timeout: any, index: any, shard: num, primary: bool, current_node: any}
@returns(200) {allocate_explanation: str, allocation_delay: any, allocation_delay_in_millis: any, can_allocate: any, can_move_to_other_node: any, can_rebalance_cluster: any, can_rebalance_cluster_decisions: [map], can_rebalance_to_other_node: any, can_remain_decisions: [map], can_remain_on_current_node: any, cluster_info: any, configured_delay: any, configured_delay_in_millis: any, current_node: any, current_state: str, index: any, move_explanation: str, node_allocation_decisions: [map], primary: bool, rebalance_explanation: str, remaining_delay: any, remaining_delay_in_millis: any, shard: num, unassigned_info: any, note: str}

@endgroup

@group _component_template
@endpoint GET /_component_template/{name}
@required {name: str}
@optional {flat_settings: bool, settings_filter: any, include_defaults: bool, local: bool, master_timeout: any}
@returns(200) {component_templates: [map]}

@endpoint PUT /_component_template/{name}
@required {name: str, template: any}
@optional {create: bool, cause: str, master_timeout: any, version: any, _meta: any, deprecated: bool}
@returns(200) {acknowledged: bool}

@endpoint POST /_component_template/{name}
@required {name: str, template: any}
@optional {create: bool, cause: str, master_timeout: any, version: any, _meta: any, deprecated: bool}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_component_template/{name}
@required {name: any}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint HEAD /_component_template/{name}
@required {name: any}
@optional {master_timeout: any, local: bool}
@returns(200)

@endgroup

@group _cluster
@endpoint POST /_cluster/voting_config_exclusions
@optional {node_names: any, node_ids: any, master_timeout: any, timeout: any}
@returns(200)

@endpoint DELETE /_cluster/voting_config_exclusions
@optional {master_timeout: any, wait_for_removal: bool}
@returns(200)

@endgroup

@group _component_template
@endpoint GET /_component_template
@optional {flat_settings: bool, settings_filter: any, include_defaults: bool, local: bool, master_timeout: any}
@returns(200) {component_templates: [map]}

@endgroup

@group _cluster
@endpoint GET /_cluster/settings
@optional {flat_settings: bool, include_defaults: bool, master_timeout: any, timeout: any}
@returns(200) {persistent: map, transient: map, defaults: map}

@endpoint PUT /_cluster/settings
@optional {flat_settings: bool, master_timeout: any, timeout: any, persistent: map, transient: map}
@returns(200) {acknowledged: bool, persistent: map, transient: map}

@endpoint GET /_cluster/health
@optional {expand_wildcards: any, level: str, local: bool, master_timeout: any, timeout: any, wait_for_active_shards: any, wait_for_events: str, wait_for_nodes: any, wait_for_no_initializing_shards: bool, wait_for_no_relocating_shards: bool, wait_for_status: str}
@returns(200) {active_primary_shards: num, active_shards: num, active_shards_percent: str, active_shards_percent_as_number: num, cluster_name: any, delayed_unassigned_shards: num, indices: map, initializing_shards: num, number_of_data_nodes: num, number_of_in_flight_fetch: num, number_of_nodes: num, number_of_pending_tasks: num, relocating_shards: num, status: any, task_max_waiting_in_queue: any, task_max_waiting_in_queue_millis: any, timed_out: bool, unassigned_primary_shards: num, unassigned_shards: num}

@endpoint GET /_cluster/health/{index}
@required {index: any}
@optional {expand_wildcards: any, level: str, local: bool, master_timeout: any, timeout: any, wait_for_active_shards: any, wait_for_events: str, wait_for_nodes: any, wait_for_no_initializing_shards: bool, wait_for_no_relocating_shards: bool, wait_for_status: str}
@returns(200) {active_primary_shards: num, active_shards: num, active_shards_percent: str, active_shards_percent_as_number: num, cluster_name: any, delayed_unassigned_shards: num, indices: map, initializing_shards: num, number_of_data_nodes: num, number_of_in_flight_fetch: num, number_of_nodes: num, number_of_pending_tasks: num, relocating_shards: num, status: any, task_max_waiting_in_queue: any, task_max_waiting_in_queue_millis: any, timed_out: bool, unassigned_primary_shards: num, unassigned_shards: num}

@endgroup

@group _info
@endpoint GET /_info/{target}
@required {target: any}
@returns(200) {cluster_name: any, http: any, ingest: any, thread_pool: map, script: any}

@endgroup

@group _cluster
@endpoint GET /_cluster/pending_tasks
@optional {local: bool, master_timeout: any}
@returns(200) {tasks: [map]}

@endgroup

@group _remote
@endpoint GET /_remote/info
@returns(200)

@endgroup

@group _cluster
@endpoint POST /_cluster/reroute
@optional {dry_run: bool, explain: bool, metric: any, retry_failed: bool, master_timeout: any, timeout: any, commands: [map{cancel: any, move: any, allocate_replica: any, allocate_stale_primary: any, allocate_empty_primary: any}]}
@returns(200) {acknowledged: bool, explanations: [map], state: map}

@endpoint GET /_cluster/state
@optional {allow_no_indices: bool, expand_wildcards: any, flat_settings: bool, ignore_unavailable: bool, local: bool, master_timeout: any, wait_for_metadata_version: num, wait_for_timeout: any}
@returns(200)

@endpoint GET /_cluster/state/{metric}
@required {metric: any}
@optional {allow_no_indices: bool, expand_wildcards: any, flat_settings: bool, ignore_unavailable: bool, local: bool, master_timeout: any, wait_for_metadata_version: num, wait_for_timeout: any}
@returns(200)

@endpoint GET /_cluster/state/{metric}/{index}
@required {metric: any, index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, flat_settings: bool, ignore_unavailable: bool, local: bool, master_timeout: any, wait_for_metadata_version: num, wait_for_timeout: any}
@returns(200)

@endpoint GET /_cluster/stats
@optional {include_remotes: bool, timeout: any}
@returns(200)

@endpoint GET /_cluster/stats/nodes/{node_id}
@required {node_id: any}
@optional {include_remotes: bool, timeout: any}
@returns(200)

@endgroup

@group _connector
@endpoint PUT /_connector/{connector_id}/_check_in
@required {connector_id: str}
@returns(200) {result: any}

@endpoint GET /_connector/{connector_id}
@required {connector_id: str}
@optional {include_deleted: bool}
@returns(200) {api_key_id: str, api_key_secret_id: str, configuration: any, custom_scheduling: any, deleted: bool, description: str, error: any, features: any, filtering: [map], id: any, index_name: any, is_native: bool, language: str, last_access_control_sync_error: str, last_access_control_sync_scheduled_at: any, last_access_control_sync_status: any, last_deleted_document_count: num, last_incremental_sync_scheduled_at: any, last_indexed_document_count: num, last_seen: any, last_sync_error: str, last_sync_scheduled_at: any, last_sync_status: any, last_synced: any, name: str, pipeline: any, scheduling: any, service_type: str, status: any, sync_cursor: map, sync_now: bool}

@endpoint PUT /_connector/{connector_id}
@required {connector_id: str}
@optional {description: str, index_name: any, is_native: bool, language: str, name: str, service_type: str}
@returns(200) {result: any, id: any}

@endpoint DELETE /_connector/{connector_id}
@required {connector_id: str}
@optional {delete_sync_jobs: bool, hard: bool}
@returns(200) {acknowledged: bool}

@endpoint GET /_connector
@optional {from: num, size: num, index_name: any, connector_name: any, service_type: any, include_deleted: bool, query: str}
@returns(200) {count: num, results: [map]}

@endpoint PUT /_connector
@optional {description: str, index_name: any, is_native: bool, language: str, name: str, service_type: str}
@returns(200) {result: any, id: any}

@endpoint POST /_connector
@optional {description: str, index_name: any, is_native: bool, language: str, name: str, service_type: str}
@returns(200) {result: any, id: any}

@endpoint PUT /_connector/_sync_job/{connector_sync_job_id}/_cancel
@required {connector_sync_job_id: str}
@returns(200) {result: any}

@endpoint PUT /_connector/_sync_job/{connector_sync_job_id}/_check_in
@required {connector_sync_job_id: str}
@returns(200)

@endpoint PUT /_connector/_sync_job/{connector_sync_job_id}/_claim
@required {connector_sync_job_id: str, worker_hostname: str}
@optional {sync_cursor: map}
@returns(200)

@endpoint GET /_connector/_sync_job/{connector_sync_job_id}
@required {connector_sync_job_id: str}
@returns(200) {cancelation_requested_at: any, canceled_at: any, completed_at: any, connector: any, created_at: any, deleted_document_count: num, error: str, id: any, indexed_document_count: num, indexed_document_volume: num, job_type: any, last_seen: any, metadata: map, started_at: any, status: any, total_document_count: num, trigger_method: any, worker_hostname: str}

@endpoint DELETE /_connector/_sync_job/{connector_sync_job_id}
@required {connector_sync_job_id: str}
@returns(200) {acknowledged: bool}

@endpoint PUT /_connector/_sync_job/{connector_sync_job_id}/_error
@required {connector_sync_job_id: str, error: str}
@returns(200)

@endpoint GET /_connector/_sync_job
@optional {from: num, size: num, status: str, connector_id: str, job_type: any}
@returns(200) {count: num, results: [map]}

@endpoint POST /_connector/_sync_job
@required {id: any}
@optional {job_type: any, trigger_method: any}
@returns(200) {id: any}

@endpoint PUT /_connector/_sync_job/{connector_sync_job_id}/_stats
@required {connector_sync_job_id: str, deleted_document_count: num, indexed_document_count: num, indexed_document_volume: num}
@optional {last_seen: any, metadata: any, total_document_count: num}
@returns(200)

@endpoint PUT /_connector/{connector_id}/_filtering/_activate
@required {connector_id: str}
@returns(200) {result: any}

@endpoint PUT /_connector/{connector_id}/_api_key_id
@required {connector_id: str}
@optional {api_key_id: str, api_key_secret_id: str}
@returns(200) {result: any}

@endpoint PUT /_connector/{connector_id}/_configuration
@required {connector_id: str}
@optional {configuration: any, values: map}
@returns(200) {result: any}

@endpoint PUT /_connector/{connector_id}/_error
@required {connector_id: str, error: any}
@returns(200) {result: any}

@endpoint PUT /_connector/{connector_id}/_features
@required {connector_id: str, features: any}
@returns(200) {result: any}

@endpoint PUT /_connector/{connector_id}/_filtering
@required {connector_id: str}
@optional {filtering: [map{active!: any, domain: str, draft!: any}], rules: [map{created_at: any, field!: any, id!: any, order!: num, policy!: any, rule!: any, updated_at: any, value!: str}], advanced_snippet: any}
@returns(200) {result: any}

@endpoint PUT /_connector/{connector_id}/_filtering/_validation
@required {connector_id: str, validation: any}
@returns(200) {result: any}

@endpoint PUT /_connector/{connector_id}/_index_name
@required {connector_id: str, index_name: any}
@returns(200) {result: any}

@endpoint PUT /_connector/{connector_id}/_name
@required {connector_id: str}
@optional {name: str, description: str}
@returns(200) {result: any}

@endpoint PUT /_connector/{connector_id}/_native
@required {connector_id: str, is_native: bool}
@returns(200) {result: any}

@endpoint PUT /_connector/{connector_id}/_pipeline
@required {connector_id: str, pipeline: any}
@returns(200) {result: any}

@endpoint PUT /_connector/{connector_id}/_scheduling
@required {connector_id: str, scheduling: any}
@returns(200) {result: any}

@endpoint PUT /_connector/{connector_id}/_service_type
@required {connector_id: str, service_type: str}
@returns(200) {result: any}

@endpoint PUT /_connector/{connector_id}/_status
@required {connector_id: str, status: any}
@returns(200) {result: any}

@endgroup

@group _count
@endpoint GET /_count
@optional {allow_no_indices: bool, analyzer: str, analyze_wildcard: bool, default_operator: str, df: str, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, lenient: bool, min_score: num, preference: str, routing: any, terminate_after: num, q: str, query: any}
@returns(200) {count: num, _shards: any}

@endpoint POST /_count
@optional {allow_no_indices: bool, analyzer: str, analyze_wildcard: bool, default_operator: str, df: str, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, lenient: bool, min_score: num, preference: str, routing: any, terminate_after: num, q: str, query: any}
@returns(200) {count: num, _shards: any}

@endgroup

@group {index}
@endpoint GET /{index}/_count
@required {index: any}
@optional {allow_no_indices: bool, analyzer: str, analyze_wildcard: bool, default_operator: str, df: str, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, lenient: bool, min_score: num, preference: str, routing: any, terminate_after: num, q: str, query: any}
@returns(200) {count: num, _shards: any}

@endpoint POST /{index}/_count
@required {index: any}
@optional {allow_no_indices: bool, analyzer: str, analyze_wildcard: bool, default_operator: str, df: str, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, lenient: bool, min_score: num, preference: str, routing: any, terminate_after: num, q: str, query: any}
@returns(200) {count: num, _shards: any}

@endpoint PUT /{index}/_create/{id}
@required {index: str, id: str}
@optional {include_source_on_error: bool, pipeline: str, refresh: str, require_alias: bool, require_data_stream: bool, routing: any, timeout: any, version: num, version_type: str, wait_for_active_shards: any}
@returns(200) {_id: any, _index: any, _primary_term: num, result: any, _seq_no: any, _shards: any, _version: any, failure_store: any, forced_refresh: bool}

@endpoint POST /{index}/_create/{id}
@required {index: str, id: str}
@optional {include_source_on_error: bool, pipeline: str, refresh: str, require_alias: bool, require_data_stream: bool, routing: any, timeout: any, version: num, version_type: str, wait_for_active_shards: any}
@returns(200) {_id: any, _index: any, _primary_term: num, result: any, _seq_no: any, _shards: any, _version: any, failure_store: any, forced_refresh: bool}

@endgroup

@group _dangling
@endpoint POST /_dangling/{index_uuid}
@required {index_uuid: str}
@optional {accept_data_loss: bool, master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_dangling/{index_uuid}
@required {index_uuid: str}
@optional {accept_data_loss: bool, master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_dangling
@returns(200) {dangling_indices: [map]}

@endgroup

@group {index}
@endpoint GET /{index}/_doc/{id}
@required {index: str, id: str}
@optional {preference: str, realtime: bool, refresh: bool, routing: any, _source: any, _source_excludes: any, _source_exclude_vectors: bool, _source_includes: any, stored_fields: any, version: num, version_type: str}
@returns(200) {_index: any, fields: map, _ignored: [str], found: bool, _id: any, _primary_term: num, _routing: str, _seq_no: any, _source: map, _version: any}

@endpoint PUT /{index}/_doc/{id}
@required {index: str, id: str}
@optional {if_primary_term: num, if_seq_no: num, include_source_on_error: bool, op_type: str, pipeline: str, refresh: str, routing: any, timeout: any, version: num, version_type: str, wait_for_active_shards: any, require_alias: bool, require_data_stream: bool}
@returns(200) {_id: any, _index: any, _primary_term: num, result: any, _seq_no: any, _shards: any, _version: any, failure_store: any, forced_refresh: bool}

@endpoint POST /{index}/_doc/{id}
@required {index: str, id: str}
@optional {if_primary_term: num, if_seq_no: num, include_source_on_error: bool, op_type: str, pipeline: str, refresh: str, routing: any, timeout: any, version: num, version_type: str, wait_for_active_shards: any, require_alias: bool, require_data_stream: bool}
@returns(200) {_id: any, _index: any, _primary_term: num, result: any, _seq_no: any, _shards: any, _version: any, failure_store: any, forced_refresh: bool}

@endpoint DELETE /{index}/_doc/{id}
@required {index: str, id: str}
@optional {if_primary_term: num, if_seq_no: num, refresh: str, routing: any, timeout: any, version: num, version_type: str, wait_for_active_shards: any}
@returns(200) {_id: any, _index: any, _primary_term: num, result: any, _seq_no: any, _shards: any, _version: any, failure_store: any, forced_refresh: bool}

@endpoint HEAD /{index}/_doc/{id}
@required {index: str, id: str}
@optional {preference: str, realtime: bool, refresh: bool, routing: any, _source: any, _source_excludes: any, _source_includes: any, stored_fields: any, version: num, version_type: str}
@returns(200)

@endpoint POST /{index}/_delete_by_query
@required {index: any}
@optional {allow_no_indices: bool, analyzer: str, analyze_wildcard: bool, conflicts: str, default_operator: str, df: str, expand_wildcards: any, from: num, ignore_unavailable: bool, lenient: bool, max_docs: num, preference: str, refresh: bool, request_cache: bool, requests_per_second: num, routing: any, q: str, scroll: any, scroll_size: num, search_timeout: any, search_type: str, slices: any, sort: [str], stats: [str], terminate_after: num, timeout: any, version: bool, wait_for_active_shards: any, wait_for_completion: bool, max_docs: num, query: any, slice: any, sort: any}
@returns(200) {batches: num, deleted: num, failures: [map], noops: num, requests_per_second: num, retries: any, slice_id: num, slices: [map], task: any, throttled: any, throttled_millis: any, throttled_until: any, throttled_until_millis: any, timed_out: bool, took: any, total: num, version_conflicts: num}

@endgroup

@group _delete_by_query
@endpoint POST /_delete_by_query/{task_id}/_rethrottle
@required {task_id: str, requests_per_second: num}
@returns(200) {node_failures: [map], task_failures: [map], nodes: map, tasks: any}

@endgroup

@group _scripts
@endpoint GET /_scripts/{id}
@required {id: str}
@optional {master_timeout: any}
@returns(200) {_id: any, found: bool, script: any}

@endpoint PUT /_scripts/{id}
@required {id: str, script: any}
@optional {context: str, master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint POST /_scripts/{id}
@required {id: str, script: any}
@optional {context: str, master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_scripts/{id}
@required {id: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endgroup

@group _enrich
@endpoint GET /_enrich/policy/{name}
@required {name: any}
@optional {master_timeout: any}
@returns(200) {policies: [map]}

@endpoint PUT /_enrich/policy/{name}
@required {name: str}
@optional {master_timeout: any, geo_match: any, match: any, range: any}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_enrich/policy/{name}
@required {name: str}
@optional {master_timeout: any}
@returns(200) {acknowledged: bool}

@endpoint PUT /_enrich/policy/{name}/_execute
@required {name: str}
@optional {master_timeout: any, wait_for_completion: bool}
@returns(200) {status: any, task: any}

@endpoint GET /_enrich/policy
@optional {master_timeout: any}
@returns(200) {policies: [map]}

@endpoint GET /_enrich/_stats
@optional {master_timeout: any}
@returns(200) {coordinator_stats: [map], executing_policies: [map], cache_stats: [map]}

@endgroup

@group _eql
@endpoint GET /_eql/search/{id}
@required {id: str}
@optional {keep_alive: any, wait_for_completion_timeout: any}
@returns(200) {id: any, is_partial: bool, is_running: bool, took: any, timed_out: bool, hits: any, shard_failures: [map]}

@endpoint DELETE /_eql/search/{id}
@required {id: str}
@returns(200) {acknowledged: bool}

@endpoint GET /_eql/search/status/{id}
@required {id: str}
@returns(200) {id: any, is_partial: bool, is_running: bool, start_time_in_millis: any, expiration_time_in_millis: any, completion_status: num}

@endgroup

@group {index}
@endpoint GET /{index}/_eql/search
@required {index: any, query: str}
@optional {allow_no_indices: bool, allow_partial_search_results: bool, allow_partial_sequence_results: bool, expand_wildcards: any, ccs_minimize_roundtrips: bool, ignore_unavailable: bool, keep_alive: any, keep_on_completion: bool, wait_for_completion_timeout: any, case_sensitive: bool, event_category_field: any=event.category, tiebreaker_field: any, timestamp_field: any=@timestamp, fetch_size: any=1000, filter: any, keep_alive: any, keep_on_completion: bool, wait_for_completion_timeout: any, allow_partial_search_results: bool=true, allow_partial_sequence_results: bool=false, size: any, fields: any, result_position: any=tail, runtime_mappings: any, max_samples_per_key: num=1}
@returns(200) {id: any, is_partial: bool, is_running: bool, took: any, timed_out: bool, hits: any, shard_failures: [map]}

@endpoint POST /{index}/_eql/search
@required {index: any, query: str}
@optional {allow_no_indices: bool, allow_partial_search_results: bool, allow_partial_sequence_results: bool, expand_wildcards: any, ccs_minimize_roundtrips: bool, ignore_unavailable: bool, keep_alive: any, keep_on_completion: bool, wait_for_completion_timeout: any, case_sensitive: bool, event_category_field: any=event.category, tiebreaker_field: any, timestamp_field: any=@timestamp, fetch_size: any=1000, filter: any, keep_alive: any, keep_on_completion: bool, wait_for_completion_timeout: any, allow_partial_search_results: bool=true, allow_partial_sequence_results: bool=false, size: any, fields: any, result_position: any=tail, runtime_mappings: any, max_samples_per_key: num=1}
@returns(200) {id: any, is_partial: bool, is_running: bool, took: any, timed_out: bool, hits: any, shard_failures: [map]}

@endgroup

@group _query
@endpoint POST /_query/async
@required {query: str}
@optional {allow_partial_results: bool, delimiter: str, drop_null_columns: bool, format: str, columnar: bool, filter: any, time_zone: str, locale: str, params: any, profile: bool, tables: map, include_ccs_metadata: bool=false, include_execution_metadata: bool=false, wait_for_completion_timeout: any=1s, keep_alive: any=5d, keep_on_completion: bool=false}
@returns(200)

@endpoint GET /_query/async/{id}
@required {id: str}
@optional {drop_null_columns: bool, format: str, keep_alive: any, wait_for_completion_timeout: any}
@returns(200)

@endpoint DELETE /_query/async/{id}
@required {id: str}
@returns(200) {acknowledged: bool}

@endpoint POST /_query/async/{id}/stop
@required {id: str}
@optional {drop_null_columns: bool}
@returns(200) {took: any, is_partial: bool, all_columns: [map], columns: [map], values: [[any]], _clusters: any, profile: map}

@endpoint GET /_query/queries/{id}
@required {id: str}
@returns(200) {id: num, node: any, start_time_millis: num, running_time_nanos: num, query: str, coordinating_node: any, data_nodes: [str]}

@endpoint GET /_query/queries
@returns(200) {queries: map}

@endpoint POST /_query
@required {query: str}
@optional {format: str, delimiter: str, drop_null_columns: bool, allow_partial_results: bool, columnar: bool, filter: any, time_zone: str, locale: str, params: any, profile: bool, tables: map, include_ccs_metadata: bool=false, include_execution_metadata: bool=false}
@returns(200) {took: any, is_partial: bool, all_columns: [map], columns: [map], values: [[any]], _clusters: any, profile: map}

@endgroup

@group {index}
@endpoint GET /{index}/_source/{id}
@required {index: str, id: str}
@optional {preference: str, realtime: bool, refresh: bool, routing: any, _source: any, _source_excludes: any, _source_includes: any, version: num, version_type: str}
@returns(200)

@endpoint HEAD /{index}/_source/{id}
@required {index: str, id: str}
@optional {preference: str, realtime: bool, refresh: bool, routing: any, _source: any, _source_excludes: any, _source_includes: any, version: num, version_type: str}
@returns(200)

@endpoint GET /{index}/_explain/{id}
@required {index: str, id: str}
@optional {analyzer: str, analyze_wildcard: bool, default_operator: str, df: str, lenient: bool, preference: str, routing: any, _source: any, _source_excludes: any, _source_includes: any, stored_fields: any, q: str, query: any}
@returns(200) {_index: any, _id: any, matched: bool, explanation: any, get: any}

@endpoint POST /{index}/_explain/{id}
@required {index: str, id: str}
@optional {analyzer: str, analyze_wildcard: bool, default_operator: str, df: str, lenient: bool, preference: str, routing: any, _source: any, _source_excludes: any, _source_includes: any, stored_fields: any, q: str, query: any}
@returns(200) {_index: any, _id: any, matched: bool, explanation: any, get: any}

@endgroup

@group _features
@endpoint GET /_features
@optional {master_timeout: any}
@returns(200) {features: [map]}

@endpoint POST /_features/_reset
@optional {master_timeout: any}
@returns(200) {features: [map]}

@endgroup

@group _field_caps
@endpoint GET /_field_caps
@optional {allow_no_indices: bool, expand_wildcards: any, fields: any, ignore_unavailable: bool, include_unmapped: bool, filters: any, types: [str], include_empty_fields: bool, fields: any, index_filter: any, runtime_mappings: any}
@returns(200) {indices: any, fields: map}

@endpoint POST /_field_caps
@optional {allow_no_indices: bool, expand_wildcards: any, fields: any, ignore_unavailable: bool, include_unmapped: bool, filters: any, types: [str], include_empty_fields: bool, fields: any, index_filter: any, runtime_mappings: any}
@returns(200) {indices: any, fields: map}

@endgroup

@group {index}
@endpoint GET /{index}/_field_caps
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, fields: any, ignore_unavailable: bool, include_unmapped: bool, filters: any, types: [str], include_empty_fields: bool, fields: any, index_filter: any, runtime_mappings: any}
@returns(200) {indices: any, fields: map}

@endpoint POST /{index}/_field_caps
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, fields: any, ignore_unavailable: bool, include_unmapped: bool, filters: any, types: [str], include_empty_fields: bool, fields: any, index_filter: any, runtime_mappings: any}
@returns(200) {indices: any, fields: map}

@endpoint GET /{index}/_fleet/global_checkpoints
@required {index: any}
@optional {wait_for_advance: bool, wait_for_index: bool, checkpoints: [num], timeout: any}
@returns(200) {global_checkpoints: [num], timed_out: bool}

@endgroup

@group _fleet
@endpoint GET /_fleet/_fleet_msearch
@optional {allow_no_indices: bool, ccs_minimize_roundtrips: bool, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, max_concurrent_searches: num, max_concurrent_shard_requests: num, pre_filter_shard_size: num, search_type: str, rest_total_hits_as_int: bool, typed_keys: bool, wait_for_checkpoints: [num], allow_partial_search_results: bool}
@returns(200) {docs: [any]}

@endpoint POST /_fleet/_fleet_msearch
@optional {allow_no_indices: bool, ccs_minimize_roundtrips: bool, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, max_concurrent_searches: num, max_concurrent_shard_requests: num, pre_filter_shard_size: num, search_type: str, rest_total_hits_as_int: bool, typed_keys: bool, wait_for_checkpoints: [num], allow_partial_search_results: bool}
@returns(200) {docs: [any]}

@endgroup

@group {index}
@endpoint GET /{index}/_fleet/_fleet_msearch
@required {index: any}
@optional {allow_no_indices: bool, ccs_minimize_roundtrips: bool, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, max_concurrent_searches: num, max_concurrent_shard_requests: num, pre_filter_shard_size: num, search_type: str, rest_total_hits_as_int: bool, typed_keys: bool, wait_for_checkpoints: [num], allow_partial_search_results: bool}
@returns(200) {docs: [any]}

@endpoint POST /{index}/_fleet/_fleet_msearch
@required {index: any}
@optional {allow_no_indices: bool, ccs_minimize_roundtrips: bool, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, max_concurrent_searches: num, max_concurrent_shard_requests: num, pre_filter_shard_size: num, search_type: str, rest_total_hits_as_int: bool, typed_keys: bool, wait_for_checkpoints: [num], allow_partial_search_results: bool}
@returns(200) {docs: [any]}

@endpoint GET /{index}/_fleet/_fleet_search
@required {index: any}
@optional {allow_no_indices: bool, analyzer: str, analyze_wildcard: bool, batched_reduce_size: num, ccs_minimize_roundtrips: bool, default_operator: str, df: str, docvalue_fields: any, expand_wildcards: any, explain: bool, ignore_throttled: bool, ignore_unavailable: bool, lenient: bool, max_concurrent_shard_requests: num, preference: str, pre_filter_shard_size: num, request_cache: bool, routing: any, scroll: any, search_type: str, stats: [str], stored_fields: any, suggest_field: str, suggest_mode: str, suggest_size: num, suggest_text: str, terminate_after: num, timeout: any, track_total_hits: any, track_scores: bool, typed_keys: bool, rest_total_hits_as_int: bool, version: bool, _source: any, _source_excludes: any, _source_includes: any, seq_no_primary_term: bool, q: str, size: num, from: num, sort: any, wait_for_checkpoints: [num], allow_partial_search_results: bool, aggregations: map, collapse: any, explain: bool=false, ext: map, from: num=0, highlight: any, track_total_hits: any, indices_boost: [map], docvalue_fields: [map{field!: any, format: str, include_unmapped: bool}], min_score: num, post_filter: any, profile: bool, query: any, rescore: any, script_fields: map, search_after: any, size: num=10, slice: any, sort: any, _source: any, fields: [map{field!: any, format: str, include_unmapped: bool}], suggest: any, terminate_after: num=0, timeout: str, track_scores: bool=false, version: bool=false, seq_no_primary_term: bool, stored_fields: any, pit: any, runtime_mappings: any, stats: [str]}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endpoint POST /{index}/_fleet/_fleet_search
@required {index: any}
@optional {allow_no_indices: bool, analyzer: str, analyze_wildcard: bool, batched_reduce_size: num, ccs_minimize_roundtrips: bool, default_operator: str, df: str, docvalue_fields: any, expand_wildcards: any, explain: bool, ignore_throttled: bool, ignore_unavailable: bool, lenient: bool, max_concurrent_shard_requests: num, preference: str, pre_filter_shard_size: num, request_cache: bool, routing: any, scroll: any, search_type: str, stats: [str], stored_fields: any, suggest_field: str, suggest_mode: str, suggest_size: num, suggest_text: str, terminate_after: num, timeout: any, track_total_hits: any, track_scores: bool, typed_keys: bool, rest_total_hits_as_int: bool, version: bool, _source: any, _source_excludes: any, _source_includes: any, seq_no_primary_term: bool, q: str, size: num, from: num, sort: any, wait_for_checkpoints: [num], allow_partial_search_results: bool, aggregations: map, collapse: any, explain: bool=false, ext: map, from: num=0, highlight: any, track_total_hits: any, indices_boost: [map], docvalue_fields: [map{field!: any, format: str, include_unmapped: bool}], min_score: num, post_filter: any, profile: bool, query: any, rescore: any, script_fields: map, search_after: any, size: num=10, slice: any, sort: any, _source: any, fields: [map{field!: any, format: str, include_unmapped: bool}], suggest: any, terminate_after: num=0, timeout: str, track_scores: bool=false, version: bool=false, seq_no_primary_term: bool, stored_fields: any, pit: any, runtime_mappings: any, stats: [str]}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endgroup

@group _script_context
@endpoint GET /_script_context
@returns(200) {contexts: [map]}

@endgroup

@group _script_language
@endpoint GET /_script_language
@returns(200) {language_contexts: [map], types_allowed: [str]}

@endgroup

@group {index}
@endpoint GET /{index}/_graph/explore
@required {index: any}
@optional {routing: any, timeout: any, connections: any, controls: any, query: any, vertices: [map{exclude: [str], field!: any, include: [map], min_doc_count: num, shard_min_doc_count: num, size: num}]}
@returns(200) {connections: [map], failures: [map], timed_out: bool, took: num, vertices: [map]}

@endpoint POST /{index}/_graph/explore
@required {index: any}
@optional {routing: any, timeout: any, connections: any, controls: any, query: any, vertices: [map{exclude: [str], field!: any, include: [map], min_doc_count: num, shard_min_doc_count: num, size: num}]}
@returns(200) {connections: [map], failures: [map], timed_out: bool, took: num, vertices: [map]}

@endgroup

@group _health_report
@endpoint GET /_health_report
@optional {timeout: any, verbose: bool, size: num}
@returns(200) {cluster_name: str, indicators: any, status: any}

@endpoint GET /_health_report/{feature}
@required {feature: any}
@optional {timeout: any, verbose: bool, size: num}
@returns(200) {cluster_name: str, indicators: any, status: any}

@endgroup

@group _ilm
@endpoint GET /_ilm/policy/{policy}
@required {policy: str}
@optional {master_timeout: any, timeout: any}
@returns(200)

@endpoint PUT /_ilm/policy/{policy}
@required {policy: str}
@optional {master_timeout: any, timeout: any, policy: any}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_ilm/policy/{policy}
@required {policy: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endgroup

@group {index}
@endpoint GET /{index}/_ilm/explain
@required {index: str}
@optional {only_errors: bool, only_managed: bool, master_timeout: any}
@returns(200) {indices: map}

@endgroup

@group _ilm
@endpoint GET /_ilm/policy
@optional {master_timeout: any, timeout: any}
@returns(200)

@endpoint GET /_ilm/status
@returns(200) {operation_mode: any}

@endpoint POST /_ilm/migrate_to_data_tiers
@optional {dry_run: bool, master_timeout: any, legacy_template_to_delete: str, node_attribute: str}
@returns(200) {dry_run: bool, removed_legacy_template: str, migrated_ilm_policies: [str], migrated_indices: any, migrated_legacy_templates: [str], migrated_composable_templates: [str], migrated_component_templates: [str]}

@endpoint POST /_ilm/move/{index}
@required {index: str, current_step: any, next_step: any}
@returns(200) {acknowledged: bool}

@endgroup

@group {index}
@endpoint POST /{index}/_ilm/remove
@required {index: str}
@returns(200) {failed_indexes: [str], has_failures: bool}

@endpoint POST /{index}/_ilm/retry
@required {index: str}
@returns(200) {acknowledged: bool}

@endgroup

@group _ilm
@endpoint POST /_ilm/start
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint POST /_ilm/stop
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endgroup

@group {index}
@endpoint POST /{index}/_doc
@required {index: str}
@optional {if_primary_term: num, if_seq_no: num, include_source_on_error: bool, op_type: str, pipeline: str, refresh: str, routing: any, timeout: any, version: num, version_type: str, wait_for_active_shards: any, require_alias: bool, require_data_stream: bool}
@returns(200) {_id: any, _index: any, _primary_term: num, result: any, _seq_no: any, _shards: any, _version: any, failure_store: any, forced_refresh: bool}

@endpoint PUT /{index}/_block/{block}
@required {index: any, block: str}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool, shards_acknowledged: bool, indices: [map]}

@endpoint DELETE /{index}/_block/{block}
@required {index: any, block: str}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool, indices: [map]}

@endgroup

@group _analyze
@endpoint GET /_analyze
@optional {index: str, analyzer: str, attributes: [str], char_filter: [any], explain: bool=false, field: any, filter: [any], normalizer: str, text: any, tokenizer: any}
@returns(200) {detail: any, tokens: [map]}

@endpoint POST /_analyze
@optional {index: str, analyzer: str, attributes: [str], char_filter: [any], explain: bool=false, field: any, filter: [any], normalizer: str, text: any, tokenizer: any}
@returns(200) {detail: any, tokens: [map]}

@endgroup

@group {index}
@endpoint GET /{index}/_analyze
@required {index: str}
@optional {index: str, analyzer: str, attributes: [str], char_filter: [any], explain: bool=false, field: any, filter: [any], normalizer: str, text: any, tokenizer: any}
@returns(200) {detail: any, tokens: [map]}

@endpoint POST /{index}/_analyze
@required {index: str}
@optional {index: str, analyzer: str, attributes: [str], char_filter: [any], explain: bool=false, field: any, filter: [any], normalizer: str, text: any, tokenizer: any}
@returns(200) {detail: any, tokens: [map]}

@endgroup

@group _migration
@endpoint POST /_migration/reindex/{index}/_cancel
@required {index: any}
@returns(200) {acknowledged: bool}

@endgroup

@group _cache
@endpoint POST /_cache/clear
@optional {index: any, allow_no_indices: bool, expand_wildcards: any, fielddata: bool, fields: any, ignore_unavailable: bool, query: bool, request: bool}
@returns(200) {_shards: any}

@endgroup

@group {index}
@endpoint POST /{index}/_cache/clear
@required {index: any}
@optional {index: any, allow_no_indices: bool, expand_wildcards: any, fielddata: bool, fields: any, ignore_unavailable: bool, query: bool, request: bool}
@returns(200) {_shards: any}

@endpoint PUT /{index}/_clone/{target}
@required {index: str, target: str}
@optional {master_timeout: any, timeout: any, wait_for_active_shards: any, aliases: map, settings: map}
@returns(200) {acknowledged: bool, index: any, shards_acknowledged: bool}

@endpoint POST /{index}/_clone/{target}
@required {index: str, target: str}
@optional {master_timeout: any, timeout: any, wait_for_active_shards: any, aliases: map, settings: map}
@returns(200) {acknowledged: bool, index: any, shards_acknowledged: bool}

@endpoint POST /{index}/_close
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, master_timeout: any, timeout: any, wait_for_active_shards: any}
@returns(200) {acknowledged: bool, indices: map, shards_acknowledged: bool}

@endpoint GET /{index}
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, flat_settings: bool, ignore_unavailable: bool, include_defaults: bool, local: bool, master_timeout: any, features: any}
@returns(200)

@endpoint PUT /{index}
@required {index: str}
@optional {master_timeout: any, timeout: any, wait_for_active_shards: any, aliases: map, mappings: any, settings: any}
@returns(200) {index: any, shards_acknowledged: bool, acknowledged: bool}

@endpoint DELETE /{index}
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, master_timeout: any, timeout: any}
@returns(200)

@endpoint HEAD /{index}
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, flat_settings: bool, ignore_unavailable: bool, include_defaults: bool, local: bool}
@returns(200)

@endgroup

@group _data_stream
@endpoint GET /_data_stream/{name}
@required {name: any}
@optional {expand_wildcards: any, include_defaults: bool, master_timeout: any, verbose: bool}
@returns(200) {data_streams: [map]}

@endpoint PUT /_data_stream/{name}
@required {name: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_data_stream/{name}
@required {name: any}
@optional {master_timeout: any, expand_wildcards: any}
@returns(200) {acknowledged: bool}

@endgroup

@group _create_from
@endpoint PUT /_create_from/{source}/{dest}
@required {source: str, dest: str}
@optional {mappings_override: any, settings_override: any, remove_index_blocks: bool=true}
@returns(200) {acknowledged: bool, index: any, shards_acknowledged: bool}

@endpoint POST /_create_from/{source}/{dest}
@required {source: str, dest: str}
@optional {mappings_override: any, settings_override: any, remove_index_blocks: bool=true}
@returns(200) {acknowledged: bool, index: any, shards_acknowledged: bool}

@endgroup

@group _data_stream
@endpoint GET /_data_stream/_stats
@optional {expand_wildcards: any}
@returns(200) {_shards: any, backing_indices: num, data_stream_count: num, data_streams: [map], total_store_sizes: any, total_store_size_bytes: num}

@endpoint GET /_data_stream/{name}/_stats
@required {name: any}
@optional {expand_wildcards: any}
@returns(200) {_shards: any, backing_indices: num, data_stream_count: num, data_streams: [map], total_store_sizes: any, total_store_size_bytes: num}

@endgroup

@group {index}
@endpoint GET /{index}/_alias/{name}
@required {index: any, name: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, master_timeout: any}
@returns(200)

@endpoint PUT /{index}/_alias/{name}
@required {index: any, name: str}
@optional {master_timeout: any, timeout: any, filter: any, index_routing: str, is_write_index: bool, routing: str, search_routing: str}
@returns(200) {acknowledged: bool}

@endpoint POST /{index}/_alias/{name}
@required {index: any, name: str}
@optional {master_timeout: any, timeout: any, filter: any, index_routing: str, is_write_index: bool, routing: str, search_routing: str}
@returns(200) {acknowledged: bool}

@endpoint DELETE /{index}/_alias/{name}
@required {index: any, name: any}
@optional {master_timeout: any, timeout: any}
@returns(200)

@endpoint HEAD /{index}/_alias/{name}
@required {index: any, name: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, master_timeout: any}
@returns(200)

@endpoint PUT /{index}/_aliases/{name}
@required {index: any, name: str}
@optional {master_timeout: any, timeout: any, filter: any, index_routing: str, is_write_index: bool, routing: str, search_routing: str}
@returns(200) {acknowledged: bool}

@endpoint POST /{index}/_aliases/{name}
@required {index: any, name: str}
@optional {master_timeout: any, timeout: any, filter: any, index_routing: str, is_write_index: bool, routing: str, search_routing: str}
@returns(200) {acknowledged: bool}

@endpoint DELETE /{index}/_aliases/{name}
@required {index: any, name: any}
@optional {master_timeout: any, timeout: any}
@returns(200)

@endgroup

@group _data_stream
@endpoint GET /_data_stream/{name}/_lifecycle
@required {name: any}
@optional {expand_wildcards: any, include_defaults: bool, master_timeout: any}
@returns(200) {data_streams: [map]}

@endpoint PUT /_data_stream/{name}/_lifecycle
@required {name: any}
@optional {expand_wildcards: any, master_timeout: any, timeout: any, data_retention: any, downsampling: [map{after!: any, fixed_interval!: any}], downsampling_method: any, enabled: bool=true}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_data_stream/{name}/_lifecycle
@required {name: any}
@optional {expand_wildcards: any, master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_data_stream/{name}/_options
@required {name: any}
@optional {expand_wildcards: any, master_timeout: any}
@returns(200) {data_streams: [map]}

@endpoint PUT /_data_stream/{name}/_options
@required {name: any}
@optional {expand_wildcards: any, master_timeout: any, timeout: any, failure_store: any}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_data_stream/{name}/_options
@required {name: any}
@optional {expand_wildcards: any, master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endgroup

@group _index_template
@endpoint GET /_index_template/{name}
@required {name: str}
@optional {local: bool, flat_settings: bool, master_timeout: any, include_defaults: bool}
@returns(200) {index_templates: [map]}

@endpoint PUT /_index_template/{name}
@required {name: str}
@optional {create: bool, master_timeout: any, cause: str, index_patterns: any, composed_of: [str], template: any, data_stream: any, priority: num, version: any, _meta: any, allow_auto_create: bool, ignore_missing_component_templates: [str], deprecated: bool}
@returns(200) {acknowledged: bool}

@endpoint POST /_index_template/{name}
@required {name: str}
@optional {create: bool, master_timeout: any, cause: str, index_patterns: any, composed_of: [str], template: any, data_stream: any, priority: num, version: any, _meta: any, allow_auto_create: bool, ignore_missing_component_templates: [str], deprecated: bool}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_index_template/{name}
@required {name: any}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint HEAD /_index_template/{name}
@required {name: str}
@optional {local: bool, flat_settings: bool, master_timeout: any}
@returns(200)

@endgroup

@group _template
@endpoint GET /_template/{name}
@required {name: any}
@optional {flat_settings: bool, local: bool, master_timeout: any}
@returns(200)

@endpoint PUT /_template/{name}
@required {name: str}
@optional {create: bool, master_timeout: any, order: num, cause: str, aliases: map, index_patterns: any, mappings: any, order: num, settings: any, version: any}
@returns(200) {acknowledged: bool}

@endpoint POST /_template/{name}
@required {name: str}
@optional {create: bool, master_timeout: any, order: num, cause: str, aliases: map, index_patterns: any, mappings: any, order: num, settings: any, version: any}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_template/{name}
@required {name: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint HEAD /_template/{name}
@required {name: any}
@optional {flat_settings: bool, local: bool, master_timeout: any}
@returns(200)

@endgroup

@group {index}
@endpoint POST /{index}/_disk_usage
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, flush: bool, ignore_unavailable: bool, run_expensive_tasks: bool}
@returns(200)

@endpoint POST /{index}/_downsample/{target_index}
@required {index: str, target_index: str, fixed_interval: any}
@optional {sampling_method: any}
@returns(200)

@endgroup

@group _alias
@endpoint GET /_alias/{name}
@required {name: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, master_timeout: any}
@returns(200)

@endpoint HEAD /_alias/{name}
@required {name: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, master_timeout: any}
@returns(200)

@endgroup

@group {index}
@endpoint GET /{index}/_lifecycle/explain
@required {index: any}
@optional {include_defaults: bool, master_timeout: any}
@returns(200) {indices: map}

@endpoint GET /{index}/_field_usage_stats
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, fields: any}
@returns(200) {_shards: any}

@endgroup

@group _flush
@endpoint GET /_flush
@optional {allow_no_indices: bool, expand_wildcards: any, force: bool, ignore_unavailable: bool, wait_if_ongoing: bool}
@returns(200) {_shards: any}

@endpoint POST /_flush
@optional {allow_no_indices: bool, expand_wildcards: any, force: bool, ignore_unavailable: bool, wait_if_ongoing: bool}
@returns(200) {_shards: any}

@endgroup

@group {index}
@endpoint GET /{index}/_flush
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, force: bool, ignore_unavailable: bool, wait_if_ongoing: bool}
@returns(200) {_shards: any}

@endpoint POST /{index}/_flush
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, force: bool, ignore_unavailable: bool, wait_if_ongoing: bool}
@returns(200) {_shards: any}

@endgroup

@group _forcemerge
@endpoint POST /_forcemerge
@optional {allow_no_indices: bool, expand_wildcards: any, flush: bool, ignore_unavailable: bool, max_num_segments: num, only_expunge_deletes: bool, wait_for_completion: bool}
@returns(200)

@endgroup

@group {index}
@endpoint POST /{index}/_forcemerge
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, flush: bool, ignore_unavailable: bool, max_num_segments: num, only_expunge_deletes: bool, wait_for_completion: bool}
@returns(200)

@endgroup

@group _alias
@endpoint GET /_alias
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, master_timeout: any}
@returns(200)

@endgroup

@group {index}
@endpoint GET /{index}/_alias
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, master_timeout: any}
@returns(200)

@endgroup

@group _lifecycle
@endpoint GET /_lifecycle/stats
@returns(200) {data_stream_count: num, data_streams: [map], last_run_duration_in_millis: any, time_between_starts_in_millis: any}

@endgroup

@group _data_stream
@endpoint GET /_data_stream
@optional {expand_wildcards: any, include_defaults: bool, master_timeout: any, verbose: bool}
@returns(200) {data_streams: [map]}

@endpoint GET /_data_stream/{name}/_mappings
@required {name: any}
@optional {master_timeout: any}
@returns(200) {data_streams: [map]}

@endpoint PUT /_data_stream/{name}/_mappings
@required {name: any}
@optional {dry_run: bool, master_timeout: any, timeout: any, all_field: any, date_detection: bool, dynamic: any, dynamic_date_formats: [str], dynamic_templates: [map], _field_names: any, index_field: any, _meta: any, numeric_detection: bool, properties: map, _routing: any, _size: any, _source: any, runtime: map, enabled: bool, subobjects: any, _data_stream_timestamp: any}
@returns(200) {data_streams: [map]}

@endpoint GET /_data_stream/{name}/_settings
@required {name: any}
@optional {master_timeout: any}
@returns(200) {data_streams: [map]}

@endpoint PUT /_data_stream/{name}/_settings
@required {name: any}
@optional {dry_run: bool, master_timeout: any, timeout: any, index: any, mode: str, routing_path: any, soft_deletes: any, sort: any, number_of_shards: any=1, number_of_replicas: any=0, number_of_routing_shards: num, check_on_startup: any=false, codec: str=LZ4, routing_partition_size: any=1, load_fixed_bitset_filters_eagerly: bool=true, hidden: any=false, auto_expand_replicas: any=false, merge: any, search: any, refresh_interval: any=1s, max_result_window: num=10000, max_inner_result_window: num=100, max_rescore_window: num=10000, max_docvalue_fields_search: num=100, max_script_fields: num=32, max_ngram_diff: num=1, max_shingle_diff: num=3, blocks: any, max_refresh_listeners: num, analyze: any, highlight: any, max_terms_count: num=65536, max_regex_length: num=1000, routing: any, gc_deletes: any=60s, default_pipeline: any=_none, final_pipeline: any=_none, lifecycle: any, provided_name: any, creation_date: any, creation_date_string: any, uuid: any, version: any, verified_before_close: any, format: any, max_slices_per_scroll: num, translog: any, query_string: any, priority: any, top_metrics_max_size: num, analysis: any, settings: any, time_series: any, queries: any, similarity: map, mapping: any, indexing.slowlog: any, indexing_pressure: any, store: any}
@returns(200) {data_streams: [map]}

@endgroup

@group _mapping
@endpoint GET /_mapping/field/{fields}
@required {fields: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, include_defaults: bool}
@returns(200)

@endgroup

@group {index}
@endpoint GET /{index}/_mapping/field/{fields}
@required {index: any, fields: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, include_defaults: bool}
@returns(200)

@endgroup

@group _index_template
@endpoint GET /_index_template
@optional {local: bool, flat_settings: bool, master_timeout: any, include_defaults: bool}
@returns(200) {index_templates: [map]}

@endgroup

@group _mapping
@endpoint GET /_mapping
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, local: bool, master_timeout: any}
@returns(200)

@endgroup

@group {index}
@endpoint GET /{index}/_mapping
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, local: bool, master_timeout: any}
@returns(200)

@endpoint PUT /{index}/_mapping
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, master_timeout: any, timeout: any, write_index_only: bool, date_detection: bool, dynamic: any, dynamic_date_formats: [str], dynamic_templates: [map], _field_names: any, _meta: any, numeric_detection: bool=false, properties: map, _routing: any, _source: any, runtime: any}
@returns(200)

@endpoint POST /{index}/_mapping
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, master_timeout: any, timeout: any, write_index_only: bool, date_detection: bool, dynamic: any, dynamic_date_formats: [str], dynamic_templates: [map], _field_names: any, _meta: any, numeric_detection: bool=false, properties: map, _routing: any, _source: any, runtime: any}
@returns(200)

@endgroup

@group _migration
@endpoint GET /_migration/reindex/{index}/_status
@required {index: any}
@returns(200) {start_time: any, start_time_millis: any, complete: bool, total_indices_in_data_stream: num, total_indices_requiring_upgrade: num, successes: num, in_progress: [map], pending: num, errors: [map], exception: str}

@endgroup

@group _settings
@endpoint GET /_settings
@optional {allow_no_indices: bool, expand_wildcards: any, flat_settings: bool, ignore_unavailable: bool, include_defaults: bool, local: bool, master_timeout: any}
@returns(200)

@endpoint PUT /_settings
@optional {allow_no_indices: bool, expand_wildcards: any, flat_settings: bool, ignore_unavailable: bool, master_timeout: any, preserve_existing: bool, reopen: bool, timeout: any, index: any, mode: str, routing_path: any, soft_deletes: any, sort: any, number_of_shards: any=1, number_of_replicas: any=0, number_of_routing_shards: num, check_on_startup: any=false, codec: str=LZ4, routing_partition_size: any=1, load_fixed_bitset_filters_eagerly: bool=true, hidden: any=false, auto_expand_replicas: any=false, merge: any, search: any, refresh_interval: any=1s, max_result_window: num=10000, max_inner_result_window: num=100, max_rescore_window: num=10000, max_docvalue_fields_search: num=100, max_script_fields: num=32, max_ngram_diff: num=1, max_shingle_diff: num=3, blocks: any, max_refresh_listeners: num, analyze: any, highlight: any, max_terms_count: num=65536, max_regex_length: num=1000, routing: any, gc_deletes: any=60s, default_pipeline: any=_none, final_pipeline: any=_none, lifecycle: any, provided_name: any, creation_date: any, creation_date_string: any, uuid: any, version: any, verified_before_close: any, format: any, max_slices_per_scroll: num, translog: any, query_string: any, priority: any, top_metrics_max_size: num, analysis: any, settings: any, time_series: any, queries: any, similarity: map, mapping: any, indexing.slowlog: any, indexing_pressure: any, store: any}
@returns(200) {acknowledged: bool}

@endgroup

@group {index}
@endpoint GET /{index}/_settings
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, flat_settings: bool, ignore_unavailable: bool, include_defaults: bool, local: bool, master_timeout: any}
@returns(200)

@endpoint PUT /{index}/_settings
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, flat_settings: bool, ignore_unavailable: bool, master_timeout: any, preserve_existing: bool, reopen: bool, timeout: any, index: any, mode: str, routing_path: any, soft_deletes: any, sort: any, number_of_shards: any=1, number_of_replicas: any=0, number_of_routing_shards: num, check_on_startup: any=false, codec: str=LZ4, routing_partition_size: any=1, load_fixed_bitset_filters_eagerly: bool=true, hidden: any=false, auto_expand_replicas: any=false, merge: any, search: any, refresh_interval: any=1s, max_result_window: num=10000, max_inner_result_window: num=100, max_rescore_window: num=10000, max_docvalue_fields_search: num=100, max_script_fields: num=32, max_ngram_diff: num=1, max_shingle_diff: num=3, blocks: any, max_refresh_listeners: num, analyze: any, highlight: any, max_terms_count: num=65536, max_regex_length: num=1000, routing: any, gc_deletes: any=60s, default_pipeline: any=_none, final_pipeline: any=_none, lifecycle: any, provided_name: any, creation_date: any, creation_date_string: any, uuid: any, version: any, verified_before_close: any, format: any, max_slices_per_scroll: num, translog: any, query_string: any, priority: any, top_metrics_max_size: num, analysis: any, settings: any, time_series: any, queries: any, similarity: map, mapping: any, indexing.slowlog: any, indexing_pressure: any, store: any}
@returns(200) {acknowledged: bool}

@endpoint GET /{index}/_settings/{name}
@required {index: any, name: any}
@optional {allow_no_indices: bool, expand_wildcards: any, flat_settings: bool, ignore_unavailable: bool, include_defaults: bool, local: bool, master_timeout: any}
@returns(200)

@endgroup

@group _settings
@endpoint GET /_settings/{name}
@required {name: any}
@optional {allow_no_indices: bool, expand_wildcards: any, flat_settings: bool, ignore_unavailable: bool, include_defaults: bool, local: bool, master_timeout: any}
@returns(200)

@endgroup

@group _template
@endpoint GET /_template
@optional {flat_settings: bool, local: bool, master_timeout: any}
@returns(200)

@endgroup

@group _migration
@endpoint POST /_migration/reindex
@required {mode: any, source: any}
@returns(200) {acknowledged: bool}

@endgroup

@group _data_stream
@endpoint POST /_data_stream/_migrate/{name}
@required {name: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint POST /_data_stream/_modify
@required {actions: [map{add_backing_index: any, remove_backing_index: any}]}
@returns(200) {acknowledged: bool}

@endgroup

@group {index}
@endpoint POST /{index}/_open
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, master_timeout: any, timeout: any, wait_for_active_shards: any}
@returns(200) {acknowledged: bool, shards_acknowledged: bool}

@endgroup

@group _data_stream
@endpoint POST /_data_stream/_promote/{name}
@required {name: str}
@optional {master_timeout: any}
@returns(200)

@endgroup

@group _recovery
@endpoint GET /_recovery
@optional {active_only: bool, detailed: bool, allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool}
@returns(200)

@endgroup

@group {index}
@endpoint GET /{index}/_recovery
@required {index: any}
@optional {active_only: bool, detailed: bool, allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool}
@returns(200)

@endgroup

@group _refresh
@endpoint GET /_refresh
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool}
@returns(200) {_shards: any}

@endpoint POST /_refresh
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool}
@returns(200) {_shards: any}

@endgroup

@group {index}
@endpoint GET /{index}/_refresh
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool}
@returns(200) {_shards: any}

@endpoint POST /{index}/_refresh
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool}
@returns(200) {_shards: any}

@endpoint GET /{index}/_reload_search_analyzers
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, resource: str}
@returns(200) {reload_details: [map], _shards: any}

@endpoint POST /{index}/_reload_search_analyzers
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, resource: str}
@returns(200) {reload_details: [map], _shards: any}

@endgroup

@group _resolve
@endpoint GET /_resolve/cluster
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, timeout: any}
@returns(200)

@endpoint GET /_resolve/cluster/{name}
@required {name: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, timeout: any}
@returns(200)

@endpoint GET /_resolve/index/{name}
@required {name: any}
@optional {expand_wildcards: any, ignore_unavailable: bool, allow_no_indices: bool, mode: any}
@returns(200) {indices: [map], aliases: [map], data_streams: [map]}

@endpoint POST /_resolve/index/{name}
@required {name: any}
@optional {expand_wildcards: any, ignore_unavailable: bool, allow_no_indices: bool, mode: any}
@returns(200) {indices: [map], aliases: [map], data_streams: [map]}

@endgroup

@group {alias}
@endpoint POST /{alias}/_rollover
@required {alias: str}
@optional {dry_run: bool, master_timeout: any, timeout: any, wait_for_active_shards: any, lazy: bool, aliases: map, conditions: any, mappings: any, settings: map}
@returns(200) {acknowledged: bool, conditions: map, dry_run: bool, new_index: str, old_index: str, rolled_over: bool, shards_acknowledged: bool}

@endpoint POST /{alias}/_rollover/{new_index}
@required {alias: str, new_index: str}
@optional {dry_run: bool, master_timeout: any, timeout: any, wait_for_active_shards: any, lazy: bool, aliases: map, conditions: any, mappings: any, settings: map}
@returns(200) {acknowledged: bool, conditions: map, dry_run: bool, new_index: str, old_index: str, rolled_over: bool, shards_acknowledged: bool}

@endgroup

@group _segments
@endpoint GET /_segments
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool}
@returns(200) {indices: map, _shards: any}

@endgroup

@group {index}
@endpoint GET /{index}/_segments
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool}
@returns(200) {indices: map, _shards: any}

@endgroup

@group _shard_stores
@endpoint GET /_shard_stores
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, status: any}
@returns(200) {indices: map}

@endgroup

@group {index}
@endpoint GET /{index}/_shard_stores
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, status: any}
@returns(200) {indices: map}

@endpoint PUT /{index}/_shrink/{target}
@required {index: str, target: str}
@optional {master_timeout: any, timeout: any, wait_for_active_shards: any, aliases: map, settings: map}
@returns(200) {acknowledged: bool, shards_acknowledged: bool, index: any}

@endpoint POST /{index}/_shrink/{target}
@required {index: str, target: str}
@optional {master_timeout: any, timeout: any, wait_for_active_shards: any, aliases: map, settings: map}
@returns(200) {acknowledged: bool, shards_acknowledged: bool, index: any}

@endgroup

@group _index_template
@endpoint POST /_index_template/_simulate_index/{name}
@required {name: str, index_patterns: any, composed_of: [str]}
@optional {create: bool, cause: str, master_timeout: any, include_defaults: bool, template: any, version: any, priority: num, _meta: any, allow_auto_create: bool, data_stream: any, deprecated: bool, ignore_missing_component_templates: any, created_date: any, created_date_millis: any, modified_date: any, modified_date_millis: any}
@returns(200) {overlapping: [map], template: any}

@endpoint POST /_index_template/_simulate
@optional {create: bool, cause: str, master_timeout: any, include_defaults: bool, allow_auto_create: bool, index_patterns: any, composed_of: [str], template: any, data_stream: any, priority: num, version: any, _meta: any, ignore_missing_component_templates: [str], deprecated: bool}
@returns(200) {overlapping: [map], template: any}

@endpoint POST /_index_template/_simulate/{name}
@required {name: str}
@optional {create: bool, cause: str, master_timeout: any, include_defaults: bool, allow_auto_create: bool, index_patterns: any, composed_of: [str], template: any, data_stream: any, priority: num, version: any, _meta: any, ignore_missing_component_templates: [str], deprecated: bool}
@returns(200) {overlapping: [map], template: any}

@endgroup

@group {index}
@endpoint PUT /{index}/_split/{target}
@required {index: str, target: str}
@optional {master_timeout: any, timeout: any, wait_for_active_shards: any, aliases: map, settings: map}
@returns(200) {acknowledged: bool, shards_acknowledged: bool, index: any}

@endpoint POST /{index}/_split/{target}
@required {index: str, target: str}
@optional {master_timeout: any, timeout: any, wait_for_active_shards: any, aliases: map, settings: map}
@returns(200) {acknowledged: bool, shards_acknowledged: bool, index: any}

@endgroup

@group _stats
@endpoint GET /_stats
@optional {completion_fields: any, expand_wildcards: any, fielddata_fields: any, fields: any, forbid_closed_indices: bool, groups: any, include_segment_file_sizes: bool, include_unloaded_segments: bool, level: str}
@returns(200) {indices: map, _shards: any, _all: any}

@endpoint GET /_stats/{metric}
@required {metric: any}
@optional {completion_fields: any, expand_wildcards: any, fielddata_fields: any, fields: any, forbid_closed_indices: bool, groups: any, include_segment_file_sizes: bool, include_unloaded_segments: bool, level: str}
@returns(200) {indices: map, _shards: any, _all: any}

@endgroup

@group {index}
@endpoint GET /{index}/_stats
@required {index: any}
@optional {completion_fields: any, expand_wildcards: any, fielddata_fields: any, fields: any, forbid_closed_indices: bool, groups: any, include_segment_file_sizes: bool, include_unloaded_segments: bool, level: str}
@returns(200) {indices: map, _shards: any, _all: any}

@endpoint GET /{index}/_stats/{metric}
@required {index: any, metric: any}
@optional {completion_fields: any, expand_wildcards: any, fielddata_fields: any, fields: any, forbid_closed_indices: bool, groups: any, include_segment_file_sizes: bool, include_unloaded_segments: bool, level: str}
@returns(200) {indices: map, _shards: any, _all: any}

@endgroup

@group _aliases
@endpoint POST /_aliases
@optional {master_timeout: any, timeout: any, actions: [map{add: any, remove: any, remove_index: any}]}
@returns(200) {acknowledged: bool}

@endgroup

@group _validate
@endpoint GET /_validate/query
@optional {allow_no_indices: bool, all_shards: bool, analyzer: str, analyze_wildcard: bool, default_operator: str, df: str, expand_wildcards: any, explain: bool, ignore_unavailable: bool, lenient: bool, rewrite: bool, q: str, query: any}
@returns(200) {explanations: [map], _shards: any, valid: bool, error: str}

@endpoint POST /_validate/query
@optional {allow_no_indices: bool, all_shards: bool, analyzer: str, analyze_wildcard: bool, default_operator: str, df: str, expand_wildcards: any, explain: bool, ignore_unavailable: bool, lenient: bool, rewrite: bool, q: str, query: any}
@returns(200) {explanations: [map], _shards: any, valid: bool, error: str}

@endgroup

@group {index}
@endpoint GET /{index}/_validate/query
@required {index: any}
@optional {allow_no_indices: bool, all_shards: bool, analyzer: str, analyze_wildcard: bool, default_operator: str, df: str, expand_wildcards: any, explain: bool, ignore_unavailable: bool, lenient: bool, rewrite: bool, q: str, query: any}
@returns(200) {explanations: [map], _shards: any, valid: bool, error: str}

@endpoint POST /{index}/_validate/query
@required {index: any}
@optional {allow_no_indices: bool, all_shards: bool, analyzer: str, analyze_wildcard: bool, default_operator: str, df: str, expand_wildcards: any, explain: bool, ignore_unavailable: bool, lenient: bool, rewrite: bool, q: str, query: any}
@returns(200) {explanations: [map], _shards: any, valid: bool, error: str}

@endgroup

@group _inference
@endpoint POST /_inference/chat_completion/{inference_id}/_stream
@required {inference_id: str, messages: [map{content: any, role!: str, tool_call_id: any, tool_calls: [map], reasoning: str, reasoning_details: [any]}]}
@optional {timeout: any, model: str, max_completion_tokens: num, reasoning: any, stop: [str], temperature: num, tool_choice: any, tools: [map{type!: str, function!: any}], top_p: num}
@returns(200)

@endpoint POST /_inference/completion/{inference_id}
@required {inference_id: str, input: any}
@optional {timeout: any, task_settings: any}
@returns(200) {completion: [map]}

@endpoint GET /_inference/{inference_id}
@required {inference_id: str}
@returns(200) {endpoints: [any]}

@endpoint PUT /_inference/{inference_id}
@required {inference_id: str, service: str, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint POST /_inference/{inference_id}
@required {inference_id: str, input: any}
@optional {timeout: any, query: str, input_type: str, task_settings: any}
@returns(200) {embeddings_bytes: [map], embeddings_bits: [map], embeddings: [map], text_embedding_bytes: [map], text_embedding_bits: [map], text_embedding: [map], sparse_embedding: [map], completion: [map], rerank: [map]}

@endpoint DELETE /_inference/{inference_id}
@required {inference_id: str}
@optional {dry_run: bool, force: bool}
@returns(200)

@endpoint GET /_inference/{task_type}/{inference_id}
@required {task_type: str, inference_id: str}
@returns(200) {endpoints: [any]}

@endpoint PUT /_inference/{task_type}/{inference_id}
@required {task_type: str, inference_id: str, service: str, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint POST /_inference/{task_type}/{inference_id}
@required {task_type: str, inference_id: str, input: any}
@optional {timeout: any, query: str, input_type: str, task_settings: any}
@returns(200) {embeddings_bytes: [map], embeddings_bits: [map], embeddings: [map], text_embedding_bytes: [map], text_embedding_bits: [map], text_embedding: [map], sparse_embedding: [map], completion: [map], rerank: [map]}

@endpoint DELETE /_inference/{task_type}/{inference_id}
@required {task_type: str, inference_id: str}
@optional {dry_run: bool, force: bool}
@returns(200)

@endpoint POST /_inference/embedding/{inference_id}
@required {inference_id: str, input: any}
@optional {timeout: any, input_type: str, task_settings: any}
@returns(200) {embeddings_bytes: [map], embeddings_bits: [map], embeddings: [map]}

@endpoint GET /_inference
@returns(200) {endpoints: [any]}

@endpoint GET /_inference/{task_type}/_all
@required {task_type: str}
@returns(200) {endpoints: [any]}

@endpoint PUT /_inference/{task_type}/{ai21_inference_id}
@required {task_type: str, ai21_inference_id: str, service: any, service_settings: any}
@optional {timeout: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{alibabacloud_inference_id}
@required {task_type: str, alibabacloud_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{amazonbedrock_inference_id}
@required {task_type: str, amazonbedrock_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{amazonsagemaker_inference_id}
@required {task_type: str, amazonsagemaker_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{anthropic_inference_id}
@required {task_type: str, anthropic_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{azureaistudio_inference_id}
@required {task_type: str, azureaistudio_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{azureopenai_inference_id}
@required {task_type: str, azureopenai_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{cohere_inference_id}
@required {task_type: str, cohere_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{contextualai_inference_id}
@required {task_type: str, contextualai_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{custom_inference_id}
@required {task_type: str, custom_inference_id: str, service: any, service_settings: any}
@optional {chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{deepseek_inference_id}
@required {task_type: str, deepseek_inference_id: str, service: any, service_settings: any}
@optional {timeout: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{elasticsearch_inference_id}
@required {task_type: str, elasticsearch_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{elser_inference_id}
@required {task_type: str, elser_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{fireworksai_inference_id}
@required {task_type: str, fireworksai_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{googleaistudio_inference_id}
@required {task_type: str, googleaistudio_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{googlevertexai_inference_id}
@required {task_type: str, googlevertexai_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{groq_inference_id}
@required {task_type: str, groq_inference_id: str, service: any, service_settings: any}
@optional {timeout: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{huggingface_inference_id}
@required {task_type: str, huggingface_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{jinaai_inference_id}
@required {task_type: str, jinaai_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{llama_inference_id}
@required {task_type: str, llama_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{mistral_inference_id}
@required {task_type: str, mistral_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{nvidia_inference_id}
@required {task_type: str, nvidia_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{openai_inference_id}
@required {task_type: str, openai_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{openshiftai_inference_id}
@required {task_type: str, openshiftai_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{voyageai_inference_id}
@required {task_type: str, voyageai_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{watsonx_inference_id}
@required {task_type: str, watsonx_inference_id: str, service: any, service_settings: any}
@optional {timeout: any, chunking_settings: any}
@returns(200)

@endpoint POST /_inference/rerank/{inference_id}
@required {inference_id: str, query: str, input: [str]}
@optional {timeout: any, return_documents: bool, top_n: num, task_settings: any}
@returns(200) {rerank: [map]}

@endpoint POST /_inference/sparse_embedding/{inference_id}
@required {inference_id: str, input: any}
@optional {timeout: any, task_settings: any}
@returns(200) {sparse_embedding: [map]}

@endpoint POST /_inference/completion/{inference_id}/_stream
@required {inference_id: str, input: any}
@optional {timeout: any, task_settings: any}
@returns(200)

@endpoint POST /_inference/text_embedding/{inference_id}
@required {inference_id: str, input: any}
@optional {timeout: any, input_type: str, task_settings: any}
@returns(200) {text_embedding_bytes: [map], text_embedding_bits: [map], text_embedding: [map]}

@endpoint PUT /_inference/{inference_id}/_update
@required {inference_id: str, service: str, service_settings: any}
@optional {chunking_settings: any, task_settings: any}
@returns(200)

@endpoint PUT /_inference/{task_type}/{inference_id}/_update
@required {task_type: str, inference_id: str, service: str, service_settings: any}
@optional {chunking_settings: any, task_settings: any}
@returns(200)

@endgroup

@group root
@endpoint GET /
@returns(200) {cluster_name: any, cluster_uuid: any, name: any, tagline: str, version: any}

@endpoint HEAD /
@returns(200)

@endgroup

@group _ingest
@endpoint GET /_ingest/geoip/database/{id}
@required {id: any}
@returns(200) {databases: [map]}

@endpoint PUT /_ingest/geoip/database/{id}
@required {id: str, name: any, maxmind: any}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_ingest/geoip/database/{id}
@required {id: any}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_ingest/ip_location/database/{id}
@required {id: any}
@returns(200) {databases: [map]}

@endpoint PUT /_ingest/ip_location/database/{id}
@required {id: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_ingest/ip_location/database/{id}
@required {id: any}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_ingest/pipeline/{id}
@required {id: str}
@optional {master_timeout: any, summary: bool}
@returns(200)

@endpoint PUT /_ingest/pipeline/{id}
@required {id: str}
@optional {master_timeout: any, timeout: any, if_version: num, _meta: any, description: str, on_failure: [map{append: any, attachment: any, bytes: any, cef: any, circle: any, community_id: any, convert: any, csv: any, date: any, date_index_name: any, dissect: any, dot_expander: any, drop: any, enrich: any, fail: any, fingerprint: any, foreach: any, ip_location: any, geo_grid: any, geoip: any, grok: any, gsub: any, html_strip: any, inference: any, join: any, json: any, kv: any, lowercase: any, network_direction: any, pipeline: any, redact: any, registered_domain: any, remove: any, rename: any, reroute: any, script: any, set: any, set_security_user: any, sort: any, split: any, terminate: any, trim: any, uppercase: any, urldecode: any, uri_parts: any, user_agent: any}], processors: [map{append: any, attachment: any, bytes: any, cef: any, circle: any, community_id: any, convert: any, csv: any, date: any, date_index_name: any, dissect: any, dot_expander: any, drop: any, enrich: any, fail: any, fingerprint: any, foreach: any, ip_location: any, geo_grid: any, geoip: any, grok: any, gsub: any, html_strip: any, inference: any, join: any, json: any, kv: any, lowercase: any, network_direction: any, pipeline: any, redact: any, registered_domain: any, remove: any, rename: any, reroute: any, script: any, set: any, set_security_user: any, sort: any, split: any, terminate: any, trim: any, uppercase: any, urldecode: any, uri_parts: any, user_agent: any}], version: any, deprecated: bool=false, field_access_pattern: any=classic}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_ingest/pipeline/{id}
@required {id: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_ingest/geoip/stats
@returns(200) {stats: any, nodes: map}

@endpoint GET /_ingest/geoip/database
@returns(200) {databases: [map]}

@endpoint GET /_ingest/ip_location/database
@returns(200) {databases: [map]}

@endpoint GET /_ingest/pipeline
@optional {master_timeout: any, summary: bool}
@returns(200)

@endpoint GET /_ingest/processor/grok
@returns(200) {patterns: map}

@endpoint GET /_ingest/pipeline/_simulate
@required {docs: [map{_id: any, _index: any, _source!: map}]}
@optional {verbose: bool, pipeline: any}
@returns(200) {docs: [map]}

@endpoint POST /_ingest/pipeline/_simulate
@required {docs: [map{_id: any, _index: any, _source!: map}]}
@optional {verbose: bool, pipeline: any}
@returns(200) {docs: [map]}

@endpoint GET /_ingest/pipeline/{id}/_simulate
@required {id: str, docs: [map{_id: any, _index: any, _source!: map}]}
@optional {verbose: bool, pipeline: any}
@returns(200) {docs: [map]}

@endpoint POST /_ingest/pipeline/{id}/_simulate
@required {id: str, docs: [map{_id: any, _index: any, _source!: map}]}
@optional {verbose: bool, pipeline: any}
@returns(200) {docs: [map]}

@endgroup

@group _license
@endpoint GET /_license
@optional {accept_enterprise: bool, local: bool}
@returns(200) {license: any}

@endpoint PUT /_license
@optional {acknowledge: bool, master_timeout: any, timeout: any, license: any, licenses: [map{expiry_date_in_millis!: any, issue_date_in_millis!: any, start_date_in_millis: any, issued_to!: str, issuer!: str, max_nodes: any, max_resource_units: num, signature!: str, type!: any, uid!: str}]}
@returns(200) {acknowledge: any, acknowledged: bool, license_status: any}

@endpoint POST /_license
@optional {acknowledge: bool, master_timeout: any, timeout: any, license: any, licenses: [map{expiry_date_in_millis!: any, issue_date_in_millis!: any, start_date_in_millis: any, issued_to!: str, issuer!: str, max_nodes: any, max_resource_units: num, signature!: str, type!: any, uid!: str}]}
@returns(200) {acknowledge: any, acknowledged: bool, license_status: any}

@endpoint DELETE /_license
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_license/basic_status
@returns(200) {eligible_to_start_basic: bool}

@endpoint GET /_license/trial_status
@returns(200) {eligible_to_start_trial: bool}

@endpoint POST /_license/start_basic
@optional {acknowledge: bool, master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool, basic_was_started: bool, error_message: str, type: any, acknowledge: map}

@endpoint POST /_license/start_trial
@optional {acknowledge: bool, type: str, master_timeout: any}
@returns(200) {acknowledged: bool, error_message: str, trial_was_started: bool, type: any}

@endgroup

@group _logstash
@endpoint GET /_logstash/pipeline/{id}
@required {id: any}
@returns(200)

@endpoint PUT /_logstash/pipeline/{id}
@required {id: str, description: str, last_modified: any, pipeline: str, pipeline_metadata: any, pipeline_settings: any, username: str}
@returns(200)

@endpoint DELETE /_logstash/pipeline/{id}
@required {id: str}
@returns(200)

@endpoint GET /_logstash/pipeline
@returns(200)

@endgroup

@group _mget
@endpoint GET /_mget
@optional {preference: str, realtime: bool, refresh: bool, routing: any, _source: any, _source_excludes: any, _source_includes: any, stored_fields: any, docs: [map{_id!: any, _index: any, routing: any, _source: any, stored_fields: any, version: any, version_type: any}], ids: any}
@returns(200) {docs: [any]}

@endpoint POST /_mget
@optional {preference: str, realtime: bool, refresh: bool, routing: any, _source: any, _source_excludes: any, _source_includes: any, stored_fields: any, docs: [map{_id!: any, _index: any, routing: any, _source: any, stored_fields: any, version: any, version_type: any}], ids: any}
@returns(200) {docs: [any]}

@endgroup

@group {index}
@endpoint GET /{index}/_mget
@required {index: str}
@optional {preference: str, realtime: bool, refresh: bool, routing: any, _source: any, _source_excludes: any, _source_includes: any, stored_fields: any, docs: [map{_id!: any, _index: any, routing: any, _source: any, stored_fields: any, version: any, version_type: any}], ids: any}
@returns(200) {docs: [any]}

@endpoint POST /{index}/_mget
@required {index: str}
@optional {preference: str, realtime: bool, refresh: bool, routing: any, _source: any, _source_excludes: any, _source_includes: any, stored_fields: any, docs: [map{_id!: any, _index: any, routing: any, _source: any, stored_fields: any, version: any, version_type: any}], ids: any}
@returns(200) {docs: [any]}

@endgroup

@group _migration
@endpoint GET /_migration/deprecations
@returns(200) {cluster_settings: [map], index_settings: map, data_streams: map, node_settings: [map], ml_settings: [map], templates: map, ilm_policies: map}

@endgroup

@group {index}
@endpoint GET /{index}/_migration/deprecations
@required {index: str}
@returns(200) {cluster_settings: [map], index_settings: map, data_streams: map, node_settings: [map], ml_settings: [map], templates: map, ilm_policies: map}

@endgroup

@group _migration
@endpoint GET /_migration/system_features
@returns(200) {features: [map], migration_status: any}

@endpoint POST /_migration/system_features
@returns(200) {accepted: bool, features: [map], reason: str}

@endgroup

@group _ml
@endpoint POST /_ml/trained_models/{model_id}/deployment/cache/_clear
@required {model_id: str}
@returns(200) {cleared: bool}

@endpoint POST /_ml/anomaly_detectors/{job_id}/_close
@required {job_id: str}
@optional {allow_no_match: bool, force: bool, timeout: any, allow_no_match: bool=true, force: bool=false, timeout: any=30m}
@returns(200) {closed: bool}

@endpoint GET /_ml/calendars/{calendar_id}
@required {calendar_id: str}
@optional {from: num, size: num, page: any}
@returns(200) {calendars: [map], count: num}

@endpoint PUT /_ml/calendars/{calendar_id}
@required {calendar_id: str}
@optional {job_ids: [str], description: str}
@returns(200) {calendar_id: any, description: str, job_ids: any}

@endpoint POST /_ml/calendars/{calendar_id}
@required {calendar_id: str}
@optional {from: num, size: num, page: any}
@returns(200) {calendars: [map], count: num}

@endpoint DELETE /_ml/calendars/{calendar_id}
@required {calendar_id: str}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_ml/calendars/{calendar_id}/events/{event_id}
@required {calendar_id: str, event_id: str}
@returns(200) {acknowledged: bool}

@endpoint PUT /_ml/calendars/{calendar_id}/jobs/{job_id}
@required {calendar_id: str, job_id: any}
@returns(200) {calendar_id: any, description: str, job_ids: any}

@endpoint DELETE /_ml/calendars/{calendar_id}/jobs/{job_id}
@required {calendar_id: str, job_id: any}
@returns(200) {calendar_id: any, description: str, job_ids: any}

@endpoint GET /_ml/data_frame/analytics/{id}
@required {id: str}
@optional {allow_no_match: bool, from: num, size: num, exclude_generated: bool}
@returns(200) {count: num, data_frame_analytics: [map]}

@endpoint PUT /_ml/data_frame/analytics/{id}
@required {id: str, analysis: any, dest: any, source: any}
@optional {allow_lazy_start: bool=false, analyzed_fields: any, description: str, max_num_threads: num=1, _meta: any, model_memory_limit: str=1gb, headers: any, version: any}
@returns(200) {authorization: any, allow_lazy_start: bool, analysis: any, analyzed_fields: any, create_time: any, description: str, dest: any, id: any, max_num_threads: num, _meta: any, model_memory_limit: str, source: any, version: any}

@endpoint DELETE /_ml/data_frame/analytics/{id}
@required {id: str}
@optional {force: bool, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_ml/datafeeds/{datafeed_id}
@required {datafeed_id: any}
@optional {allow_no_match: bool, exclude_generated: bool}
@returns(200) {count: num, datafeeds: [map]}

@endpoint PUT /_ml/datafeeds/{datafeed_id}
@required {datafeed_id: str}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, aggregations: map, chunking_config: any, delayed_data_check_config: any, frequency: any, indices: any, indices_options: any, job_id: any, max_empty_searches: num, query: any={"match_all": {"boost": 1}}, query_delay: any, runtime_mappings: any, script_fields: map, scroll_size: num=1000, headers: any}
@returns(200) {aggregations: map, authorization: any, chunking_config: any, delayed_data_check_config: any, datafeed_id: any, frequency: any, indices: [str], job_id: any, indices_options: any, max_empty_searches: num, query: any, query_delay: any, runtime_mappings: any, script_fields: map, scroll_size: num}

@endpoint DELETE /_ml/datafeeds/{datafeed_id}
@required {datafeed_id: str}
@optional {force: bool}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_ml/_delete_expired_data/{job_id}
@required {job_id: str}
@optional {requests_per_second: num, timeout: any, requests_per_second: num, timeout: any=8h}
@returns(200) {deleted: bool}

@endpoint DELETE /_ml/_delete_expired_data
@optional {requests_per_second: num, timeout: any, requests_per_second: num, timeout: any=8h}
@returns(200) {deleted: bool}

@endpoint GET /_ml/filters/{filter_id}
@required {filter_id: any}
@optional {from: num, size: num}
@returns(200) {count: num, filters: [map]}

@endpoint PUT /_ml/filters/{filter_id}
@required {filter_id: str}
@optional {description: str, items: [str]}
@returns(200) {description: str, filter_id: any, items: [str]}

@endpoint DELETE /_ml/filters/{filter_id}
@required {filter_id: str}
@returns(200) {acknowledged: bool}

@endpoint POST /_ml/anomaly_detectors/{job_id}/_forecast
@required {job_id: str}
@optional {duration: any, expires_in: any, max_model_memory: str, duration: any=1d, expires_in: any=14d, max_model_memory: str=20mb}
@returns(200) {acknowledged: bool, forecast_id: any}

@endpoint DELETE /_ml/anomaly_detectors/{job_id}/_forecast
@required {job_id: str}
@optional {allow_no_forecasts: bool, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_ml/anomaly_detectors/{job_id}/_forecast/{forecast_id}
@required {job_id: str, forecast_id: str}
@optional {allow_no_forecasts: bool, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_ml/anomaly_detectors/{job_id}
@required {job_id: any}
@optional {allow_no_match: bool, exclude_generated: bool}
@returns(200) {count: num, jobs: [map]}

@endpoint PUT /_ml/anomaly_detectors/{job_id}
@required {job_id: str, analysis_config: any, data_description: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, allow_lazy_open: bool=false, analysis_limits: any, background_persist_interval: any, custom_settings: any, daily_model_snapshot_retention_after_days: num=1, datafeed_config: any, description: str, job_id: any, groups: [str], model_plot_config: any, model_snapshot_retention_days: num=10, renormalization_window_days: num, results_index_name: any=shared, results_retention_days: num}
@returns(200) {allow_lazy_open: bool, analysis_config: any, analysis_limits: any, background_persist_interval: any, create_time: any, custom_settings: any, daily_model_snapshot_retention_after_days: num, data_description: any, datafeed_config: any, description: str, groups: [str], job_id: any, job_type: str, job_version: str, model_plot_config: any, model_snapshot_id: any, model_snapshot_retention_days: num, renormalization_window_days: num, results_index_name: str, results_retention_days: num}

@endpoint DELETE /_ml/anomaly_detectors/{job_id}
@required {job_id: str}
@optional {force: bool, delete_user_annotations: bool, wait_for_completion: bool}
@returns(200) {acknowledged: bool}

@endpoint GET /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}
@required {job_id: str, snapshot_id: str}
@optional {desc: bool, end: any, from: num, size: num, sort: str, start: any, desc: bool=false, end: any, page: any, sort: any, start: any}
@returns(200) {count: num, model_snapshots: [map]}

@endpoint POST /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}
@required {job_id: str, snapshot_id: str}
@optional {desc: bool, end: any, from: num, size: num, sort: str, start: any, desc: bool=false, end: any, page: any, sort: any, start: any}
@returns(200) {count: num, model_snapshots: [map]}

@endpoint DELETE /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}
@required {job_id: str, snapshot_id: str}
@returns(200) {acknowledged: bool}

@endpoint GET /_ml/trained_models/{model_id}
@required {model_id: any}
@optional {allow_no_match: bool, decompress_definition: bool, exclude_generated: bool, from: num, include: str, size: num, tags: any}
@returns(200) {count: num, trained_model_configs: [map]}

@endpoint PUT /_ml/trained_models/{model_id}
@required {model_id: str}
@optional {defer_definition_decompression: bool, wait_for_completion: bool, compressed_definition: str, definition: any, description: str, inference_config: any, input: any, metadata: map, model_type: any=tree_ensemble, model_size_bytes: num, platform_architecture: str, tags: [str], prefix_strings: any}
@returns(200) {model_id: any, model_type: any, tags: [str], version: any, compressed_definition: str, created_by: str, create_time: any, default_field_map: map, description: str, estimated_heap_memory_usage_bytes: num, estimated_operations: num, fully_defined: bool, inference_config: any, input: any, license_level: str, metadata: any, model_size_bytes: any, model_package: any, location: any, platform_architecture: str, prefix_strings: any}

@endpoint DELETE /_ml/trained_models/{model_id}
@required {model_id: str}
@optional {force: bool, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint PUT /_ml/trained_models/{model_id}/model_aliases/{model_alias}
@required {model_id: str, model_alias: str}
@optional {reassign: bool}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_ml/trained_models/{model_id}/model_aliases/{model_alias}
@required {model_id: str, model_alias: str}
@returns(200) {acknowledged: bool}

@endpoint POST /_ml/anomaly_detectors/_estimate_model_memory
@optional {analysis_config: any, max_bucket_cardinality: map, overall_cardinality: map}
@returns(200) {model_memory_estimate: str}

@endpoint POST /_ml/data_frame/_evaluate
@required {evaluation: any, index: any}
@optional {query: any}
@returns(200) {classification: any, outlier_detection: any, regression: any}

@endpoint GET /_ml/data_frame/analytics/_explain
@optional {source: any, dest: any, analysis: any, description: str, model_memory_limit: str=1gb, max_num_threads: num=1, analyzed_fields: any, allow_lazy_start: bool=false}
@returns(200) {field_selection: [map], memory_estimation: any}

@endpoint POST /_ml/data_frame/analytics/_explain
@optional {source: any, dest: any, analysis: any, description: str, model_memory_limit: str=1gb, max_num_threads: num=1, analyzed_fields: any, allow_lazy_start: bool=false}
@returns(200) {field_selection: [map], memory_estimation: any}

@endpoint GET /_ml/data_frame/analytics/{id}/_explain
@required {id: str}
@optional {source: any, dest: any, analysis: any, description: str, model_memory_limit: str=1gb, max_num_threads: num=1, analyzed_fields: any, allow_lazy_start: bool=false}
@returns(200) {field_selection: [map], memory_estimation: any}

@endpoint POST /_ml/data_frame/analytics/{id}/_explain
@required {id: str}
@optional {source: any, dest: any, analysis: any, description: str, model_memory_limit: str=1gb, max_num_threads: num=1, analyzed_fields: any, allow_lazy_start: bool=false}
@returns(200) {field_selection: [map], memory_estimation: any}

@endpoint POST /_ml/anomaly_detectors/{job_id}/_flush
@required {job_id: str}
@optional {advance_time: any, calc_interim: bool, end: any, skip_time: any, start: any, advance_time: any, calc_interim: bool, end: any, skip_time: any, start: any}
@returns(200) {flushed: bool, last_finalized_bucket_end: num}

@endpoint GET /_ml/anomaly_detectors/{job_id}/results/buckets/{timestamp}
@required {job_id: str, timestamp: any}
@optional {anomaly_score: num, desc: bool, end: any, exclude_interim: bool, expand: bool, from: num, size: num, sort: str, start: any, anomaly_score: num=0, desc: bool=false, end: any=-1, exclude_interim: bool=false, expand: bool=false, page: any, sort: any=timestamp, start: any=-1}
@returns(200) {buckets: [map], count: num}

@endpoint POST /_ml/anomaly_detectors/{job_id}/results/buckets/{timestamp}
@required {job_id: str, timestamp: any}
@optional {anomaly_score: num, desc: bool, end: any, exclude_interim: bool, expand: bool, from: num, size: num, sort: str, start: any, anomaly_score: num=0, desc: bool=false, end: any=-1, exclude_interim: bool=false, expand: bool=false, page: any, sort: any=timestamp, start: any=-1}
@returns(200) {buckets: [map], count: num}

@endpoint GET /_ml/anomaly_detectors/{job_id}/results/buckets
@required {job_id: str}
@optional {anomaly_score: num, desc: bool, end: any, exclude_interim: bool, expand: bool, from: num, size: num, sort: str, start: any, anomaly_score: num=0, desc: bool=false, end: any=-1, exclude_interim: bool=false, expand: bool=false, page: any, sort: any=timestamp, start: any=-1}
@returns(200) {buckets: [map], count: num}

@endpoint POST /_ml/anomaly_detectors/{job_id}/results/buckets
@required {job_id: str}
@optional {anomaly_score: num, desc: bool, end: any, exclude_interim: bool, expand: bool, from: num, size: num, sort: str, start: any, anomaly_score: num=0, desc: bool=false, end: any=-1, exclude_interim: bool=false, expand: bool=false, page: any, sort: any=timestamp, start: any=-1}
@returns(200) {buckets: [map], count: num}

@endpoint GET /_ml/calendars/{calendar_id}/events
@required {calendar_id: str}
@optional {end: any, from: num, job_id: str, size: num, start: any}
@returns(200) {count: num, events: [map]}

@endpoint POST /_ml/calendars/{calendar_id}/events
@required {calendar_id: str, events: [map{calendar_id: any, event_id: any, description!: str, end_time!: any, start_time!: any, skip_result: bool, skip_model_update: bool, force_time_shift: num}]}
@returns(200) {events: [map]}

@endpoint GET /_ml/calendars
@optional {from: num, size: num, page: any}
@returns(200) {calendars: [map], count: num}

@endpoint POST /_ml/calendars
@optional {from: num, size: num, page: any}
@returns(200) {calendars: [map], count: num}

@endpoint GET /_ml/anomaly_detectors/{job_id}/results/categories/{category_id}
@required {job_id: str, category_id: num}
@optional {from: num, partition_field_value: str, size: num, page: any}
@returns(200) {categories: [map], count: num}

@endpoint POST /_ml/anomaly_detectors/{job_id}/results/categories/{category_id}
@required {job_id: str, category_id: num}
@optional {from: num, partition_field_value: str, size: num, page: any}
@returns(200) {categories: [map], count: num}

@endpoint GET /_ml/anomaly_detectors/{job_id}/results/categories
@required {job_id: str}
@optional {from: num, partition_field_value: str, size: num, page: any}
@returns(200) {categories: [map], count: num}

@endpoint POST /_ml/anomaly_detectors/{job_id}/results/categories
@required {job_id: str}
@optional {from: num, partition_field_value: str, size: num, page: any}
@returns(200) {categories: [map], count: num}

@endpoint GET /_ml/data_frame/analytics
@optional {allow_no_match: bool, from: num, size: num, exclude_generated: bool}
@returns(200) {count: num, data_frame_analytics: [map]}

@endpoint GET /_ml/data_frame/analytics/_stats
@optional {allow_no_match: bool, from: num, size: num, verbose: bool}
@returns(200) {count: num, data_frame_analytics: [map]}

@endpoint GET /_ml/data_frame/analytics/{id}/_stats
@required {id: str}
@optional {allow_no_match: bool, from: num, size: num, verbose: bool}
@returns(200) {count: num, data_frame_analytics: [map]}

@endpoint GET /_ml/datafeeds/{datafeed_id}/_stats
@required {datafeed_id: any}
@optional {allow_no_match: bool}
@returns(200) {count: num, datafeeds: [map]}

@endpoint GET /_ml/datafeeds/_stats
@optional {allow_no_match: bool}
@returns(200) {count: num, datafeeds: [map]}

@endpoint GET /_ml/datafeeds
@optional {allow_no_match: bool, exclude_generated: bool}
@returns(200) {count: num, datafeeds: [map]}

@endpoint GET /_ml/filters
@optional {from: num, size: num}
@returns(200) {count: num, filters: [map]}

@endpoint GET /_ml/anomaly_detectors/{job_id}/results/influencers
@required {job_id: str}
@optional {desc: bool, end: any, exclude_interim: bool, influencer_score: num, from: num, size: num, sort: str, start: any, page: any}
@returns(200) {count: num, influencers: [map]}

@endpoint POST /_ml/anomaly_detectors/{job_id}/results/influencers
@required {job_id: str}
@optional {desc: bool, end: any, exclude_interim: bool, influencer_score: num, from: num, size: num, sort: str, start: any, page: any}
@returns(200) {count: num, influencers: [map]}

@endpoint GET /_ml/anomaly_detectors/_stats
@optional {allow_no_match: bool}
@returns(200) {count: num, jobs: [map]}

@endpoint GET /_ml/anomaly_detectors/{job_id}/_stats
@required {job_id: str}
@optional {allow_no_match: bool}
@returns(200) {count: num, jobs: [map]}

@endpoint GET /_ml/anomaly_detectors
@optional {allow_no_match: bool, exclude_generated: bool}
@returns(200) {count: num, jobs: [map]}

@endpoint GET /_ml/memory/_stats
@optional {master_timeout: any, timeout: any}
@returns(200) {_nodes: any, cluster_name: any, nodes: map}

@endpoint GET /_ml/memory/{node_id}/_stats
@required {node_id: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {_nodes: any, cluster_name: any, nodes: map}

@endpoint GET /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_upgrade/_stats
@required {job_id: str, snapshot_id: str}
@optional {allow_no_match: bool}
@returns(200) {count: num, model_snapshot_upgrades: [map]}

@endpoint GET /_ml/anomaly_detectors/{job_id}/model_snapshots
@required {job_id: str}
@optional {desc: bool, end: any, from: num, size: num, sort: str, start: any, desc: bool=false, end: any, page: any, sort: any, start: any}
@returns(200) {count: num, model_snapshots: [map]}

@endpoint POST /_ml/anomaly_detectors/{job_id}/model_snapshots
@required {job_id: str}
@optional {desc: bool, end: any, from: num, size: num, sort: str, start: any, desc: bool=false, end: any, page: any, sort: any, start: any}
@returns(200) {count: num, model_snapshots: [map]}

@endpoint GET /_ml/anomaly_detectors/{job_id}/results/overall_buckets
@required {job_id: str}
@optional {allow_no_match: bool, bucket_span: any, end: any, exclude_interim: bool, overall_score: num, start: any, top_n: num, allow_no_match: bool=true, bucket_span: any, end: any, exclude_interim: bool=false, overall_score: num, start: any, top_n: num=1}
@returns(200) {count: num, overall_buckets: [map]}

@endpoint POST /_ml/anomaly_detectors/{job_id}/results/overall_buckets
@required {job_id: str}
@optional {allow_no_match: bool, bucket_span: any, end: any, exclude_interim: bool, overall_score: num, start: any, top_n: num, allow_no_match: bool=true, bucket_span: any, end: any, exclude_interim: bool=false, overall_score: num, start: any, top_n: num=1}
@returns(200) {count: num, overall_buckets: [map]}

@endpoint GET /_ml/anomaly_detectors/{job_id}/results/records
@required {job_id: str}
@optional {desc: bool, end: any, exclude_interim: bool, from: num, record_score: num, size: num, sort: str, start: any, desc: bool=false, end: any=-1, exclude_interim: bool=false, page: any, record_score: num=0, sort: any=record_score, start: any=-1}
@returns(200) {count: num, records: [map]}

@endpoint POST /_ml/anomaly_detectors/{job_id}/results/records
@required {job_id: str}
@optional {desc: bool, end: any, exclude_interim: bool, from: num, record_score: num, size: num, sort: str, start: any, desc: bool=false, end: any=-1, exclude_interim: bool=false, page: any, record_score: num=0, sort: any=record_score, start: any=-1}
@returns(200) {count: num, records: [map]}

@endpoint GET /_ml/trained_models
@optional {allow_no_match: bool, decompress_definition: bool, exclude_generated: bool, from: num, include: str, size: num, tags: any}
@returns(200) {count: num, trained_model_configs: [map]}

@endpoint GET /_ml/trained_models/{model_id}/_stats
@required {model_id: any}
@optional {allow_no_match: bool, from: num, size: num}
@returns(200) {count: num, trained_model_stats: [map]}

@endpoint GET /_ml/trained_models/_stats
@optional {allow_no_match: bool, from: num, size: num}
@returns(200) {count: num, trained_model_stats: [map]}

@endpoint POST /_ml/trained_models/{model_id}/_infer
@required {model_id: str, docs: [map]}
@optional {timeout: any, inference_config: any}
@returns(200) {inference_results: [map]}

@endpoint GET /_ml/info
@returns(200) {defaults: any, limits: any, upgrade_mode: bool, native_code: any}

@endpoint POST /_ml/anomaly_detectors/{job_id}/_open
@required {job_id: str}
@optional {timeout: any, timeout: any=30m}
@returns(200) {opened: bool, node: any}

@endpoint POST /_ml/anomaly_detectors/{job_id}/_data
@required {job_id: str}
@optional {reset_end: any, reset_start: any}
@returns(200) {job_id: any, processed_record_count: num, processed_field_count: num, input_bytes: num, input_field_count: num, invalid_date_count: num, missing_field_count: num, out_of_order_timestamp_count: num, empty_bucket_count: num, sparse_bucket_count: num, bucket_count: num, earliest_record_timestamp: any, latest_record_timestamp: any, last_data_time: any, latest_empty_bucket_timestamp: any, latest_sparse_bucket_timestamp: any, input_record_count: num, log_time: any}

@endpoint GET /_ml/data_frame/analytics/_preview
@optional {config: any}
@returns(200) {feature_values: [map]}

@endpoint POST /_ml/data_frame/analytics/_preview
@optional {config: any}
@returns(200) {feature_values: [map]}

@endpoint GET /_ml/data_frame/analytics/{id}/_preview
@required {id: str}
@optional {config: any}
@returns(200) {feature_values: [map]}

@endpoint POST /_ml/data_frame/analytics/{id}/_preview
@required {id: str}
@optional {config: any}
@returns(200) {feature_values: [map]}

@endpoint GET /_ml/datafeeds/{datafeed_id}/_preview
@required {datafeed_id: str}
@optional {start: any, end: any, datafeed_config: any, job_config: any}
@returns(200)

@endpoint POST /_ml/datafeeds/{datafeed_id}/_preview
@required {datafeed_id: str}
@optional {start: any, end: any, datafeed_config: any, job_config: any}
@returns(200)

@endpoint GET /_ml/datafeeds/_preview
@optional {start: any, end: any, datafeed_config: any, job_config: any}
@returns(200)

@endpoint POST /_ml/datafeeds/_preview
@optional {start: any, end: any, datafeed_config: any, job_config: any}
@returns(200)

@endpoint PUT /_ml/trained_models/{model_id}/definition/{part}
@required {model_id: str, part: num, definition: str, total_definition_length: num, total_parts: num}
@returns(200) {acknowledged: bool}

@endpoint PUT /_ml/trained_models/{model_id}/vocabulary
@required {model_id: str, vocabulary: [str]}
@optional {merges: [str], scores: [num]}
@returns(200) {acknowledged: bool}

@endpoint POST /_ml/anomaly_detectors/{job_id}/_reset
@required {job_id: str}
@optional {wait_for_completion: bool, delete_user_annotations: bool}
@returns(200) {acknowledged: bool}

@endpoint POST /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_revert
@required {job_id: str, snapshot_id: str}
@optional {delete_intervening_results: bool, delete_intervening_results: bool=false}
@returns(200) {model: any}

@endpoint POST /_ml/set_upgrade_mode
@optional {enabled: bool, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint POST /_ml/data_frame/analytics/{id}/_start
@required {id: str}
@optional {timeout: any, id: any, timeout: any=20s}
@returns(200) {acknowledged: bool, node: any}

@endpoint POST /_ml/datafeeds/{datafeed_id}/_start
@required {datafeed_id: str}
@optional {end: any, start: any, timeout: any, end: any, start: any, timeout: any=20s}
@returns(200) {node: any, started: bool}

@endpoint POST /_ml/trained_models/{model_id}/deployment/_start
@required {model_id: str}
@optional {cache_size: any, deployment_id: str, number_of_allocations: num, priority: str, queue_capacity: num, threads_per_allocation: num, timeout: any, wait_for: str, adaptive_allocations: any}
@returns(200) {assignment: any}

@endpoint POST /_ml/data_frame/analytics/{id}/_stop
@required {id: str}
@optional {allow_no_match: bool, force: bool, timeout: any, id: any, allow_no_match: bool=true, force: bool=false, timeout: any=20s}
@returns(200) {stopped: bool}

@endpoint POST /_ml/datafeeds/{datafeed_id}/_stop
@required {datafeed_id: str}
@optional {allow_no_match: bool, force: bool, timeout: any, close_job: bool, allow_no_match: bool=true, force: bool=false, timeout: any=20s, close_job: bool=false}
@returns(200) {stopped: bool}

@endpoint POST /_ml/trained_models/{model_id}/deployment/_stop
@required {model_id: str}
@optional {allow_no_match: bool, force: bool, id: any, allow_no_match: bool=true, force: bool=false}
@returns(200) {stopped: bool}

@endpoint POST /_ml/data_frame/analytics/{id}/_update
@required {id: str}
@optional {description: str, model_memory_limit: str=1gb, max_num_threads: num=1, allow_lazy_start: bool=false}
@returns(200) {authorization: any, allow_lazy_start: bool, analysis: any, analyzed_fields: any, create_time: num, description: str, dest: any, id: any, max_num_threads: num, model_memory_limit: str, source: any, version: any}

@endpoint POST /_ml/datafeeds/{datafeed_id}/_update
@required {datafeed_id: str}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, aggregations: map, chunking_config: any, delayed_data_check_config: any, frequency: any, indices: [str], indices_options: any, job_id: any, max_empty_searches: num, query: any={"match_all": {"boost": 1}}, query_delay: any, runtime_mappings: any, script_fields: map, scroll_size: num=1000}
@returns(200) {authorization: any, aggregations: map, chunking_config: any, delayed_data_check_config: any, datafeed_id: any, frequency: any, indices: [str], indices_options: any, job_id: any, max_empty_searches: num, query: any, query_delay: any, runtime_mappings: any, script_fields: map, scroll_size: num}

@endpoint POST /_ml/filters/{filter_id}/_update
@required {filter_id: str}
@optional {add_items: [str], description: str, remove_items: [str]}
@returns(200) {description: str, filter_id: any, items: [str]}

@endpoint POST /_ml/anomaly_detectors/{job_id}/_update
@required {job_id: str}
@optional {allow_lazy_open: bool=false, analysis_limits: any, background_persist_interval: any, custom_settings: map, categorization_filters: [str], description: str, model_plot_config: any, model_prune_window: any, daily_model_snapshot_retention_after_days: num=1, model_snapshot_retention_days: num=10, renormalization_window_days: num, results_retention_days: num, groups: [str], detectors: [map{detector_index!: num, description: str, custom_rules: [map]}], per_partition_categorization: any}
@returns(200) {allow_lazy_open: bool, analysis_config: any, analysis_limits: any, background_persist_interval: any, create_time: any, finished_time: any, custom_settings: map, daily_model_snapshot_retention_after_days: num, data_description: any, datafeed_config: any, description: str, groups: [str], job_id: any, job_type: str, job_version: any, model_plot_config: any, model_snapshot_id: any, model_snapshot_retention_days: num, renormalization_window_days: num, results_index_name: any, results_retention_days: num}

@endpoint POST /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_update
@required {job_id: str, snapshot_id: str}
@optional {description: str, retain: bool=false}
@returns(200) {acknowledged: bool, model: any}

@endpoint POST /_ml/trained_models/{model_id}/deployment/_update
@required {model_id: str}
@optional {number_of_allocations: num, number_of_allocations: num=1, adaptive_allocations: any}
@returns(200) {assignment: any}

@endpoint POST /_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_upgrade
@required {job_id: str, snapshot_id: str}
@optional {wait_for_completion: bool, timeout: any}
@returns(200) {node: any, completed: bool}

@endgroup

@group _msearch
@endpoint GET /_msearch
@optional {allow_no_indices: bool, ccs_minimize_roundtrips: bool, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, include_named_queries_score: bool, index: any, max_concurrent_searches: num, max_concurrent_shard_requests: num, pre_filter_shard_size: num, rest_total_hits_as_int: bool, routing: any, search_type: str, typed_keys: bool}
@returns(200) {took: num, responses: [any]}

@endpoint POST /_msearch
@optional {allow_no_indices: bool, ccs_minimize_roundtrips: bool, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, include_named_queries_score: bool, index: any, max_concurrent_searches: num, max_concurrent_shard_requests: num, pre_filter_shard_size: num, rest_total_hits_as_int: bool, routing: any, search_type: str, typed_keys: bool}
@returns(200) {took: num, responses: [any]}

@endgroup

@group {index}
@endpoint GET /{index}/_msearch
@required {index: any}
@optional {allow_no_indices: bool, ccs_minimize_roundtrips: bool, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, include_named_queries_score: bool, index: any, max_concurrent_searches: num, max_concurrent_shard_requests: num, pre_filter_shard_size: num, rest_total_hits_as_int: bool, routing: any, search_type: str, typed_keys: bool}
@returns(200) {took: num, responses: [any]}

@endpoint POST /{index}/_msearch
@required {index: any}
@optional {allow_no_indices: bool, ccs_minimize_roundtrips: bool, expand_wildcards: any, ignore_throttled: bool, ignore_unavailable: bool, include_named_queries_score: bool, index: any, max_concurrent_searches: num, max_concurrent_shard_requests: num, pre_filter_shard_size: num, rest_total_hits_as_int: bool, routing: any, search_type: str, typed_keys: bool}
@returns(200) {took: num, responses: [any]}

@endgroup

@group _msearch
@endpoint GET /_msearch/template
@optional {ccs_minimize_roundtrips: bool, max_concurrent_searches: num, search_type: str, rest_total_hits_as_int: bool, typed_keys: bool}
@returns(200) {took: num, responses: [any]}

@endpoint POST /_msearch/template
@optional {ccs_minimize_roundtrips: bool, max_concurrent_searches: num, search_type: str, rest_total_hits_as_int: bool, typed_keys: bool}
@returns(200) {took: num, responses: [any]}

@endgroup

@group {index}
@endpoint GET /{index}/_msearch/template
@required {index: any}
@optional {ccs_minimize_roundtrips: bool, max_concurrent_searches: num, search_type: str, rest_total_hits_as_int: bool, typed_keys: bool}
@returns(200) {took: num, responses: [any]}

@endpoint POST /{index}/_msearch/template
@required {index: any}
@optional {ccs_minimize_roundtrips: bool, max_concurrent_searches: num, search_type: str, rest_total_hits_as_int: bool, typed_keys: bool}
@returns(200) {took: num, responses: [any]}

@endgroup

@group _mtermvectors
@endpoint GET /_mtermvectors
@optional {ids: [str], fields: any, field_statistics: bool, offsets: bool, payloads: bool, positions: bool, preference: str, realtime: bool, routing: any, term_statistics: bool, version: num, version_type: str, docs: [map{_id: any, _index: any, doc: map, fields: any, field_statistics: bool, filter: any, offsets: bool, payloads: bool, positions: bool, routing: any, term_statistics: bool, version: any, version_type: any}], ids: [str]}
@returns(200) {docs: [map]}

@endpoint POST /_mtermvectors
@optional {ids: [str], fields: any, field_statistics: bool, offsets: bool, payloads: bool, positions: bool, preference: str, realtime: bool, routing: any, term_statistics: bool, version: num, version_type: str, docs: [map{_id: any, _index: any, doc: map, fields: any, field_statistics: bool, filter: any, offsets: bool, payloads: bool, positions: bool, routing: any, term_statistics: bool, version: any, version_type: any}], ids: [str]}
@returns(200) {docs: [map]}

@endgroup

@group {index}
@endpoint GET /{index}/_mtermvectors
@required {index: str}
@optional {ids: [str], fields: any, field_statistics: bool, offsets: bool, payloads: bool, positions: bool, preference: str, realtime: bool, routing: any, term_statistics: bool, version: num, version_type: str, docs: [map{_id: any, _index: any, doc: map, fields: any, field_statistics: bool, filter: any, offsets: bool, payloads: bool, positions: bool, routing: any, term_statistics: bool, version: any, version_type: any}], ids: [str]}
@returns(200) {docs: [map]}

@endpoint POST /{index}/_mtermvectors
@required {index: str}
@optional {ids: [str], fields: any, field_statistics: bool, offsets: bool, payloads: bool, positions: bool, preference: str, realtime: bool, routing: any, term_statistics: bool, version: num, version_type: str, docs: [map{_id: any, _index: any, doc: map, fields: any, field_statistics: bool, filter: any, offsets: bool, payloads: bool, positions: bool, routing: any, term_statistics: bool, version: any, version_type: any}], ids: [str]}
@returns(200) {docs: [map]}

@endgroup

@group _nodes
@endpoint DELETE /_nodes/{node_id}/_repositories_metering/{max_archive_version}
@required {node_id: any, max_archive_version: num}
@returns(200)

@endpoint GET /_nodes/{node_id}/_repositories_metering
@required {node_id: any}
@returns(200)

@endpoint GET /_nodes/hot_threads
@optional {ignore_idle_threads: bool, interval: any, snapshots: num, threads: num, timeout: any, type: str, sort: str}
@returns(200)

@endpoint GET /_nodes/{node_id}/hot_threads
@required {node_id: any}
@optional {ignore_idle_threads: bool, interval: any, snapshots: num, threads: num, timeout: any, type: str, sort: str}
@returns(200)

@endpoint GET /_nodes
@optional {flat_settings: bool, timeout: any}
@returns(200)

@endpoint GET /_nodes/{node_id}
@required {node_id: any}
@optional {flat_settings: bool, timeout: any}
@returns(200)

@endpoint GET /_nodes/{metric}
@required {metric: any}
@optional {flat_settings: bool, timeout: any}
@returns(200)

@endpoint GET /_nodes/{node_id}/{metric}
@required {node_id: any, metric: any}
@optional {flat_settings: bool, timeout: any}
@returns(200)

@endpoint POST /_nodes/reload_secure_settings
@optional {timeout: any, secure_settings_password: any}
@returns(200)

@endpoint POST /_nodes/{node_id}/reload_secure_settings
@required {node_id: any}
@optional {timeout: any, secure_settings_password: any}
@returns(200)

@endpoint GET /_nodes/stats
@optional {completion_fields: any, fielddata_fields: any, fields: any, groups: bool, include_segment_file_sizes: bool, level: str, timeout: any, types: [str], include_unloaded_segments: bool}
@returns(200)

@endpoint GET /_nodes/{node_id}/stats
@required {node_id: any}
@optional {completion_fields: any, fielddata_fields: any, fields: any, groups: bool, include_segment_file_sizes: bool, level: str, timeout: any, types: [str], include_unloaded_segments: bool}
@returns(200)

@endpoint GET /_nodes/stats/{metric}
@required {metric: any}
@optional {completion_fields: any, fielddata_fields: any, fields: any, groups: bool, include_segment_file_sizes: bool, level: str, timeout: any, types: [str], include_unloaded_segments: bool}
@returns(200)

@endpoint GET /_nodes/{node_id}/stats/{metric}
@required {node_id: any, metric: any}
@optional {completion_fields: any, fielddata_fields: any, fields: any, groups: bool, include_segment_file_sizes: bool, level: str, timeout: any, types: [str], include_unloaded_segments: bool}
@returns(200)

@endpoint GET /_nodes/stats/{metric}/{index_metric}
@required {metric: any, index_metric: any}
@optional {completion_fields: any, fielddata_fields: any, fields: any, groups: bool, include_segment_file_sizes: bool, level: str, timeout: any, types: [str], include_unloaded_segments: bool}
@returns(200)

@endpoint GET /_nodes/{node_id}/stats/{metric}/{index_metric}
@required {node_id: any, metric: any, index_metric: any}
@optional {completion_fields: any, fielddata_fields: any, fields: any, groups: bool, include_segment_file_sizes: bool, level: str, timeout: any, types: [str], include_unloaded_segments: bool}
@returns(200)

@endpoint GET /_nodes/usage
@optional {timeout: any}
@returns(200)

@endpoint GET /_nodes/{node_id}/usage
@required {node_id: any}
@optional {timeout: any}
@returns(200)

@endpoint GET /_nodes/usage/{metric}
@required {metric: any}
@optional {timeout: any}
@returns(200)

@endpoint GET /_nodes/{node_id}/usage/{metric}
@required {node_id: any, metric: any}
@optional {timeout: any}
@returns(200)

@endgroup

@group {index}
@endpoint POST /{index}/_pit
@required {index: any, keep_alive: any}
@optional {ignore_unavailable: bool, preference: str, routing: any, expand_wildcards: any, allow_partial_search_results: bool, max_concurrent_shard_requests: num, index_filter: any}
@returns(200) {_shards: any, id: any}

@endgroup

@group _scripts
@endpoint PUT /_scripts/{id}/{context}
@required {id: str, context: str, script: any}
@optional {context: str, master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint POST /_scripts/{id}/{context}
@required {id: str, context: str, script: any}
@optional {context: str, master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endgroup

@group _query_rules
@endpoint GET /_query_rules/{ruleset_id}/_rule/{rule_id}
@required {ruleset_id: str, rule_id: str}
@returns(200) {rule_id: any, type: any, criteria: any, actions: any, priority: num}

@endpoint PUT /_query_rules/{ruleset_id}/_rule/{rule_id}
@required {ruleset_id: str, rule_id: str, type: any, criteria: any, actions: any}
@optional {priority: num}
@returns(200) {result: any}

@endpoint DELETE /_query_rules/{ruleset_id}/_rule/{rule_id}
@required {ruleset_id: str, rule_id: str}
@returns(200) {acknowledged: bool}

@endpoint GET /_query_rules/{ruleset_id}
@required {ruleset_id: str}
@returns(200) {ruleset_id: any, rules: [map]}

@endpoint PUT /_query_rules/{ruleset_id}
@required {ruleset_id: str, rules: any}
@returns(200) {result: any}

@endpoint DELETE /_query_rules/{ruleset_id}
@required {ruleset_id: str}
@returns(200) {acknowledged: bool}

@endpoint GET /_query_rules
@optional {from: num, size: num}
@returns(200) {count: num, results: [map]}

@endpoint POST /_query_rules/{ruleset_id}/_test
@required {ruleset_id: str, match_criteria: map}
@returns(200) {total_matched_rules: num, matched_rules: [map]}

@endgroup

@group _rank_eval
@endpoint GET /_rank_eval
@required {requests: [map{id!: any, request: any, ratings!: [map], template_id: any, params: map}]}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, search_type: str, metric: any}
@returns(200) {metric_score: num, details: map, failures: map}

@endpoint POST /_rank_eval
@required {requests: [map{id!: any, request: any, ratings!: [map], template_id: any, params: map}]}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, search_type: str, metric: any}
@returns(200) {metric_score: num, details: map, failures: map}

@endgroup

@group {index}
@endpoint GET /{index}/_rank_eval
@required {index: any, requests: [map{id!: any, request: any, ratings!: [map], template_id: any, params: map}]}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, search_type: str, metric: any}
@returns(200) {metric_score: num, details: map, failures: map}

@endpoint POST /{index}/_rank_eval
@required {index: any, requests: [map{id!: any, request: any, ratings!: [map], template_id: any, params: map}]}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, search_type: str, metric: any}
@returns(200) {metric_score: num, details: map, failures: map}

@endgroup

@group _reindex
@endpoint POST /_reindex
@required {dest: any, source: any}
@optional {refresh: bool, requests_per_second: num, scroll: any, slices: any, max_docs: num, timeout: any, wait_for_active_shards: any, wait_for_completion: bool, require_alias: bool, conflicts: any=abort, max_docs: num, script: any}
@returns(200) {batches: num, created: num, deleted: num, failures: [map], noops: num, retries: any, requests_per_second: num, slice_id: num, slices: [map], task: any, throttled_millis: any, throttled_until_millis: any, timed_out: bool, took: any, total: num, updated: num, version_conflicts: num}

@endpoint POST /_reindex/{task_id}/_rethrottle
@required {task_id: str, requests_per_second: num}
@optional {group_by: str}
@returns(200) {node_failures: [map], task_failures: [map], nodes: map, tasks: any}

@endgroup

@group _render
@endpoint GET /_render/template
@optional {id: any, file: str, params: map, source: any}
@returns(200) {template_output: map}

@endpoint POST /_render/template
@optional {id: any, file: str, params: map, source: any}
@returns(200) {template_output: map}

@endpoint GET /_render/template/{id}
@required {id: str}
@optional {id: any, file: str, params: map, source: any}
@returns(200) {template_output: map}

@endpoint POST /_render/template/{id}
@required {id: str}
@optional {id: any, file: str, params: map, source: any}
@returns(200) {template_output: map}

@endgroup

@group _rollup
@endpoint GET /_rollup/job/{id}
@required {id: str}
@returns(200) {jobs: [map]}

@endpoint PUT /_rollup/job/{id}
@required {id: str, cron: str, groups: any, index_pattern: str, page_size: num, rollup_index: any}
@optional {metrics: [map{field!: any, metrics!: [str]}], timeout: any=20s, headers: any}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_rollup/job/{id}
@required {id: str}
@returns(200) {acknowledged: bool, task_failures: [map]}

@endpoint GET /_rollup/job
@returns(200) {jobs: [map]}

@endpoint GET /_rollup/data/{id}
@required {id: str}
@returns(200)

@endpoint GET /_rollup/data
@returns(200)

@endgroup

@group {index}
@endpoint GET /{index}/_rollup/data
@required {index: any}
@returns(200)

@endpoint GET /{index}/_rollup_search
@required {index: any}
@optional {rest_total_hits_as_int: bool, typed_keys: bool, aggregations: map, query: any, size: num}
@returns(200) {took: num, timed_out: bool, terminated_early: bool, _shards: any, hits: any, aggregations: map}

@endpoint POST /{index}/_rollup_search
@required {index: any}
@optional {rest_total_hits_as_int: bool, typed_keys: bool, aggregations: map, query: any, size: num}
@returns(200) {took: num, timed_out: bool, terminated_early: bool, _shards: any, hits: any, aggregations: map}

@endgroup

@group _rollup
@endpoint POST /_rollup/job/{id}/_start
@required {id: str}
@returns(200) {started: bool}

@endpoint POST /_rollup/job/{id}/_stop
@required {id: str}
@optional {timeout: any, wait_for_completion: bool}
@returns(200) {stopped: bool}

@endgroup

@group _scripts
@endpoint GET /_scripts/painless/_execute
@optional {context: any=painless_test, context_setup: any, script: any}
@returns(200) {result: map}

@endpoint POST /_scripts/painless/_execute
@optional {context: any=painless_test, context_setup: any, script: any}
@returns(200) {result: map}

@endgroup

@group _search
@endpoint GET /_search
@optional {allow_no_indices: bool, allow_partial_search_results: bool, analyzer: str, analyze_wildcard: bool, batched_reduce_size: num, ccs_minimize_roundtrips: bool, default_operator: str, df: str, docvalue_fields: any, expand_wildcards: any, explain: bool, ignore_throttled: bool, ignore_unavailable: bool, include_named_queries_score: bool, lenient: bool, max_concurrent_shard_requests: num, preference: str, pre_filter_shard_size: num, request_cache: bool, routing: any, scroll: any, search_type: str, stats: [str], stored_fields: any, suggest_field: str, suggest_mode: str, suggest_size: num, suggest_text: str, terminate_after: num, timeout: any, track_total_hits: any, track_scores: bool, typed_keys: bool, rest_total_hits_as_int: bool, version: bool, _source: any, _source_excludes: any, _source_exclude_vectors: bool, _source_includes: any, seq_no_primary_term: bool, q: str, size: num, from: num, sort: any, aggregations: map, collapse: any, explain: bool=false, ext: map, from: num=0, highlight: any, track_total_hits: any=10000, indices_boost: [map], docvalue_fields: [map{field!: any, format: str, include_unmapped: bool}], knn: any, rank: any, min_score: num, post_filter: any, profile: bool=false, query: any, rescore: any, retriever: any, script_fields: map, search_after: any, size: num=10, slice: any, sort: any, _source: any, fields: [map{field!: any, format: str, include_unmapped: bool}], suggest: any, terminate_after: num=0, timeout: str, track_scores: bool=false, version: bool=false, seq_no_primary_term: bool, stored_fields: any, pit: any, runtime_mappings: any, stats: [str]}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endpoint POST /_search
@optional {allow_no_indices: bool, allow_partial_search_results: bool, analyzer: str, analyze_wildcard: bool, batched_reduce_size: num, ccs_minimize_roundtrips: bool, default_operator: str, df: str, docvalue_fields: any, expand_wildcards: any, explain: bool, ignore_throttled: bool, ignore_unavailable: bool, include_named_queries_score: bool, lenient: bool, max_concurrent_shard_requests: num, preference: str, pre_filter_shard_size: num, request_cache: bool, routing: any, scroll: any, search_type: str, stats: [str], stored_fields: any, suggest_field: str, suggest_mode: str, suggest_size: num, suggest_text: str, terminate_after: num, timeout: any, track_total_hits: any, track_scores: bool, typed_keys: bool, rest_total_hits_as_int: bool, version: bool, _source: any, _source_excludes: any, _source_exclude_vectors: bool, _source_includes: any, seq_no_primary_term: bool, q: str, size: num, from: num, sort: any, aggregations: map, collapse: any, explain: bool=false, ext: map, from: num=0, highlight: any, track_total_hits: any=10000, indices_boost: [map], docvalue_fields: [map{field!: any, format: str, include_unmapped: bool}], knn: any, rank: any, min_score: num, post_filter: any, profile: bool=false, query: any, rescore: any, retriever: any, script_fields: map, search_after: any, size: num=10, slice: any, sort: any, _source: any, fields: [map{field!: any, format: str, include_unmapped: bool}], suggest: any, terminate_after: num=0, timeout: str, track_scores: bool=false, version: bool=false, seq_no_primary_term: bool, stored_fields: any, pit: any, runtime_mappings: any, stats: [str]}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endgroup

@group {index}
@endpoint GET /{index}/_search
@required {index: any}
@optional {allow_no_indices: bool, allow_partial_search_results: bool, analyzer: str, analyze_wildcard: bool, batched_reduce_size: num, ccs_minimize_roundtrips: bool, default_operator: str, df: str, docvalue_fields: any, expand_wildcards: any, explain: bool, ignore_throttled: bool, ignore_unavailable: bool, include_named_queries_score: bool, lenient: bool, max_concurrent_shard_requests: num, preference: str, pre_filter_shard_size: num, request_cache: bool, routing: any, scroll: any, search_type: str, stats: [str], stored_fields: any, suggest_field: str, suggest_mode: str, suggest_size: num, suggest_text: str, terminate_after: num, timeout: any, track_total_hits: any, track_scores: bool, typed_keys: bool, rest_total_hits_as_int: bool, version: bool, _source: any, _source_excludes: any, _source_exclude_vectors: bool, _source_includes: any, seq_no_primary_term: bool, q: str, size: num, from: num, sort: any, aggregations: map, collapse: any, explain: bool=false, ext: map, from: num=0, highlight: any, track_total_hits: any=10000, indices_boost: [map], docvalue_fields: [map{field!: any, format: str, include_unmapped: bool}], knn: any, rank: any, min_score: num, post_filter: any, profile: bool=false, query: any, rescore: any, retriever: any, script_fields: map, search_after: any, size: num=10, slice: any, sort: any, _source: any, fields: [map{field!: any, format: str, include_unmapped: bool}], suggest: any, terminate_after: num=0, timeout: str, track_scores: bool=false, version: bool=false, seq_no_primary_term: bool, stored_fields: any, pit: any, runtime_mappings: any, stats: [str]}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endpoint POST /{index}/_search
@required {index: any}
@optional {allow_no_indices: bool, allow_partial_search_results: bool, analyzer: str, analyze_wildcard: bool, batched_reduce_size: num, ccs_minimize_roundtrips: bool, default_operator: str, df: str, docvalue_fields: any, expand_wildcards: any, explain: bool, ignore_throttled: bool, ignore_unavailable: bool, include_named_queries_score: bool, lenient: bool, max_concurrent_shard_requests: num, preference: str, pre_filter_shard_size: num, request_cache: bool, routing: any, scroll: any, search_type: str, stats: [str], stored_fields: any, suggest_field: str, suggest_mode: str, suggest_size: num, suggest_text: str, terminate_after: num, timeout: any, track_total_hits: any, track_scores: bool, typed_keys: bool, rest_total_hits_as_int: bool, version: bool, _source: any, _source_excludes: any, _source_exclude_vectors: bool, _source_includes: any, seq_no_primary_term: bool, q: str, size: num, from: num, sort: any, aggregations: map, collapse: any, explain: bool=false, ext: map, from: num=0, highlight: any, track_total_hits: any=10000, indices_boost: [map], docvalue_fields: [map{field!: any, format: str, include_unmapped: bool}], knn: any, rank: any, min_score: num, post_filter: any, profile: bool=false, query: any, rescore: any, retriever: any, script_fields: map, search_after: any, size: num=10, slice: any, sort: any, _source: any, fields: [map{field!: any, format: str, include_unmapped: bool}], suggest: any, terminate_after: num=0, timeout: str, track_scores: bool=false, version: bool=false, seq_no_primary_term: bool, stored_fields: any, pit: any, runtime_mappings: any, stats: [str]}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endgroup

@group _application
@endpoint GET /_application/search_application/{name}
@required {name: str}
@returns(200)

@endpoint PUT /_application/search_application/{name}
@required {name: str, indices: [str]}
@optional {create: bool, analytics_collection_name: any, template: any}
@returns(200) {result: any}

@endpoint DELETE /_application/search_application/{name}
@required {name: str}
@returns(200) {acknowledged: bool}

@endpoint GET /_application/analytics/{name}
@required {name: [str]}
@returns(200)

@endpoint PUT /_application/analytics/{name}
@required {name: str}
@returns(200)

@endpoint DELETE /_application/analytics/{name}
@required {name: str}
@returns(200) {acknowledged: bool}

@endpoint GET /_application/analytics
@returns(200)

@endpoint GET /_application/search_application
@optional {q: str, from: num, size: num}
@returns(200) {count: num, results: [any]}

@endpoint POST /_application/analytics/{collection_name}/event/{event_type}
@required {collection_name: str, event_type: str}
@optional {debug: bool}
@returns(200) {accepted: bool, event: map}

@endpoint POST /_application/search_application/{name}/_render_query
@required {name: str}
@optional {params: map}
@returns(200)

@endpoint GET /_application/search_application/{name}/_search
@required {name: str}
@optional {typed_keys: bool, params: map}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endpoint POST /_application/search_application/{name}/_search
@required {name: str}
@optional {typed_keys: bool, params: map}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endgroup

@group {index}
@endpoint GET /{index}/_mvt/{field}/{zoom}/{x}/{y}
@required {index: any, field: str, zoom: num, x: num, y: num}
@optional {exact_bounds: bool, extent: num, grid_agg: str, grid_precision: num, grid_type: str, size: num, track_total_hits: any, with_labels: bool, aggs: map, buffer: num=5, exact_bounds: bool=false, extent: num=4096, fields: any, grid_agg: any, grid_precision: num=8, grid_type: any=grid, query: any, runtime_mappings: any, size: num=10000, sort: any, track_total_hits: any=10000, with_labels: bool}
@returns(200)

@endpoint POST /{index}/_mvt/{field}/{zoom}/{x}/{y}
@required {index: any, field: str, zoom: num, x: num, y: num}
@optional {exact_bounds: bool, extent: num, grid_agg: str, grid_precision: num, grid_type: str, size: num, track_total_hits: any, with_labels: bool, aggs: map, buffer: num=5, exact_bounds: bool=false, extent: num=4096, fields: any, grid_agg: any, grid_precision: num=8, grid_type: any=grid, query: any, runtime_mappings: any, size: num=10000, sort: any, track_total_hits: any=10000, with_labels: bool}
@returns(200)

@endgroup

@group _search_shards
@endpoint GET /_search_shards
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, local: bool, master_timeout: any, preference: str, routing: any}
@returns(200) {nodes: map, shards: [[map]], indices: map}

@endpoint POST /_search_shards
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, local: bool, master_timeout: any, preference: str, routing: any}
@returns(200) {nodes: map, shards: [[map]], indices: map}

@endgroup

@group {index}
@endpoint GET /{index}/_search_shards
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, local: bool, master_timeout: any, preference: str, routing: any}
@returns(200) {nodes: map, shards: [[map]], indices: map}

@endpoint POST /{index}/_search_shards
@required {index: any}
@optional {allow_no_indices: bool, expand_wildcards: any, ignore_unavailable: bool, local: bool, master_timeout: any, preference: str, routing: any}
@returns(200) {nodes: map, shards: [[map]], indices: map}

@endgroup

@group _search
@endpoint GET /_search/template
@optional {allow_no_indices: bool, ccs_minimize_roundtrips: bool, expand_wildcards: any, explain: bool, ignore_throttled: bool, ignore_unavailable: bool, preference: str, profile: bool, routing: any, scroll: any, search_type: str, rest_total_hits_as_int: bool, typed_keys: bool, explain: bool=false, id: any, params: map, profile: bool=false, source: any}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endpoint POST /_search/template
@optional {allow_no_indices: bool, ccs_minimize_roundtrips: bool, expand_wildcards: any, explain: bool, ignore_throttled: bool, ignore_unavailable: bool, preference: str, profile: bool, routing: any, scroll: any, search_type: str, rest_total_hits_as_int: bool, typed_keys: bool, explain: bool=false, id: any, params: map, profile: bool=false, source: any}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endgroup

@group {index}
@endpoint GET /{index}/_search/template
@required {index: any}
@optional {allow_no_indices: bool, ccs_minimize_roundtrips: bool, expand_wildcards: any, explain: bool, ignore_throttled: bool, ignore_unavailable: bool, preference: str, profile: bool, routing: any, scroll: any, search_type: str, rest_total_hits_as_int: bool, typed_keys: bool, explain: bool=false, id: any, params: map, profile: bool=false, source: any}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endpoint POST /{index}/_search/template
@required {index: any}
@optional {allow_no_indices: bool, ccs_minimize_roundtrips: bool, expand_wildcards: any, explain: bool, ignore_throttled: bool, ignore_unavailable: bool, preference: str, profile: bool, routing: any, scroll: any, search_type: str, rest_total_hits_as_int: bool, typed_keys: bool, explain: bool=false, id: any, params: map, profile: bool=false, source: any}
@returns(200) {took: num, timed_out: bool, _shards: any, hits: any, aggregations: map, _clusters: any, fields: map, max_score: num, num_reduce_phases: num, profile: any, pit_id: any, _scroll_id: any, suggest: map, terminated_early: bool}

@endgroup

@group _searchable_snapshots
@endpoint GET /_searchable_snapshots/cache/stats
@returns(200) {nodes: map}

@endpoint GET /_searchable_snapshots/{node_id}/cache/stats
@required {node_id: any}
@returns(200) {nodes: map}

@endpoint POST /_searchable_snapshots/cache/clear
@optional {expand_wildcards: any, allow_no_indices: bool, ignore_unavailable: bool}
@returns(200)

@endgroup

@group {index}
@endpoint POST /{index}/_searchable_snapshots/cache/clear
@required {index: any}
@optional {expand_wildcards: any, allow_no_indices: bool, ignore_unavailable: bool}
@returns(200)

@endgroup

@group _snapshot
@endpoint POST /_snapshot/{repository}/{snapshot}/_mount
@required {repository: str, snapshot: str, index: any}
@optional {master_timeout: any, wait_for_completion: bool, storage: str, renamed_index: any, index_settings: map, ignore_index_settings: [str]}
@returns(200) {snapshot: any}

@endgroup

@group _searchable_snapshots
@endpoint GET /_searchable_snapshots/stats
@optional {level: str}
@returns(200) {stats: map, total: map}

@endgroup

@group {index}
@endpoint GET /{index}/_searchable_snapshots/stats
@required {index: any}
@optional {level: str}
@returns(200) {stats: map, total: map}

@endgroup

@group _security
@endpoint POST /_security/profile/_activate
@required {grant_type: any}
@optional {access_token: str, password: str, username: str}
@returns(200)

@endpoint GET /_security/_authenticate
@returns(200) {api_key: any, authentication_realm: any, email: any, full_name: any, lookup_realm: any, metadata: any, roles: [str], username: any, enabled: bool, authentication_type: str, token: any}

@endpoint GET /_security/role
@returns(200)

@endpoint POST /_security/role
@required {roles: map}
@optional {refresh: str}
@returns(200) {created: [str], updated: [str], noop: [str], errors: any}

@endpoint DELETE /_security/role
@required {names: [str]}
@optional {refresh: str}
@returns(200) {deleted: [str], not_found: [str], errors: any}

@endpoint POST /_security/api_key/_bulk_update
@required {ids: any}
@optional {expiration: any, metadata: any, role_descriptors: map}
@returns(200) {errors: any, noops: [str], updated: [str]}

@endpoint PUT /_security/user/{username}/_password
@required {username: str}
@optional {refresh: str, password: any, password_hash: str}
@returns(200)

@endpoint POST /_security/user/{username}/_password
@required {username: str}
@optional {refresh: str, password: any, password_hash: str}
@returns(200)

@endpoint PUT /_security/user/_password
@optional {refresh: str, password: any, password_hash: str}
@returns(200)

@endpoint POST /_security/user/_password
@optional {refresh: str, password: any, password_hash: str}
@returns(200)

@endpoint POST /_security/api_key/{ids}/_clear_cache
@required {ids: any}
@returns(200) {_nodes: any, cluster_name: any, nodes: map}

@endpoint POST /_security/privilege/{application}/_clear_cache
@required {application: any}
@returns(200) {_nodes: any, cluster_name: any, nodes: map}

@endpoint POST /_security/realm/{realms}/_clear_cache
@required {realms: any}
@optional {usernames: [str]}
@returns(200) {_nodes: any, cluster_name: any, nodes: map}

@endpoint POST /_security/role/{name}/_clear_cache
@required {name: any}
@returns(200) {_nodes: any, cluster_name: any, nodes: map}

@endpoint POST /_security/service/{namespace}/{service}/credential/token/{name}/_clear_cache
@required {namespace: str, service: str, name: any}
@returns(200) {_nodes: any, cluster_name: any, nodes: map}

@endpoint GET /_security/api_key
@optional {id: str, name: str, owner: bool, realm_name: str, username: str, with_limited_by: bool, active_only: bool, with_profile_uid: bool}
@returns(200) {api_keys: [map]}

@endpoint PUT /_security/api_key
@optional {refresh: str, expiration: any, name: any, role_descriptors: map, metadata: any}
@returns(200) {api_key: str, expiration: num, id: any, name: any, encoded: str}

@endpoint POST /_security/api_key
@optional {refresh: str, expiration: any, name: any, role_descriptors: map, metadata: any}
@returns(200) {api_key: str, expiration: num, id: any, name: any, encoded: str}

@endpoint DELETE /_security/api_key
@optional {id: any, ids: [str], name: any, owner: bool=false, realm_name: str, username: any}
@returns(200) {error_count: num, error_details: [map], invalidated_api_keys: [str], previously_invalidated_api_keys: [str]}

@endpoint POST /_security/cross_cluster/api_key
@required {access: any, name: any}
@optional {expiration: any, metadata: any, certificate_identity: str}
@returns(200) {api_key: str, expiration: any, id: any, name: any, encoded: str}

@endpoint PUT /_security/service/{namespace}/{service}/credential/token/{name}
@required {namespace: str, service: str, name: str}
@optional {refresh: str}
@returns(200) {created: bool, token: any}

@endpoint POST /_security/service/{namespace}/{service}/credential/token/{name}
@required {namespace: str, service: str, name: str}
@optional {refresh: str}
@returns(200) {created: bool, token: any}

@endpoint DELETE /_security/service/{namespace}/{service}/credential/token/{name}
@required {namespace: str, service: str, name: str}
@optional {refresh: str}
@returns(200) {found: bool}

@endpoint POST /_security/service/{namespace}/{service}/credential/token
@required {namespace: str, service: str}
@optional {refresh: str}
@returns(200) {created: bool, token: any}

@endpoint POST /_security/delegate_pki
@required {x509_certificate_chain: [str]}
@returns(200) {access_token: str, expires_in: num, type: str, authentication: any}

@endpoint GET /_security/privilege/{application}/{name}
@required {application: str, name: any}
@returns(200)

@endpoint DELETE /_security/privilege/{application}/{name}
@required {application: str, name: any}
@optional {refresh: str}
@returns(200)

@endpoint GET /_security/role/{name}
@required {name: any}
@returns(200)

@endpoint PUT /_security/role/{name}
@required {name: str}
@optional {refresh: str, applications: [map{application!: str, privileges!: [str], resources!: [str]}], cluster: [any], global: map, indices: [map{field_security: any, names!: any, privileges!: [any], query: any, allow_restricted_indices: bool}], remote_indices: [map{clusters!: any, field_security: any, names!: any, privileges!: [any], query: any, allow_restricted_indices: bool}], remote_cluster: [map{clusters!: any, privileges!: [str]}], metadata: any, run_as: [str], description: str, transient_metadata: map}
@returns(200) {role: any}

@endpoint POST /_security/role/{name}
@required {name: str}
@optional {refresh: str, applications: [map{application!: str, privileges!: [str], resources!: [str]}], cluster: [any], global: map, indices: [map{field_security: any, names!: any, privileges!: [any], query: any, allow_restricted_indices: bool}], remote_indices: [map{clusters!: any, field_security: any, names!: any, privileges!: [any], query: any, allow_restricted_indices: bool}], remote_cluster: [map{clusters!: any, privileges!: [str]}], metadata: any, run_as: [str], description: str, transient_metadata: map}
@returns(200) {role: any}

@endpoint DELETE /_security/role/{name}
@required {name: str}
@optional {refresh: str}
@returns(200) {found: bool}

@endpoint GET /_security/role_mapping/{name}
@required {name: any}
@returns(200)

@endpoint PUT /_security/role_mapping/{name}
@required {name: str}
@optional {refresh: str, enabled: bool, metadata: any, roles: [str], role_templates: [map{format: any, template!: any}], rules: any, run_as: [str]}
@returns(200) {created: bool, role_mapping: any}

@endpoint POST /_security/role_mapping/{name}
@required {name: str}
@optional {refresh: str, enabled: bool, metadata: any, roles: [str], role_templates: [map{format: any, template!: any}], rules: any, run_as: [str]}
@returns(200) {created: bool, role_mapping: any}

@endpoint DELETE /_security/role_mapping/{name}
@required {name: str}
@optional {refresh: str}
@returns(200) {found: bool}

@endpoint GET /_security/user/{username}
@required {username: any}
@optional {with_profile_uid: bool}
@returns(200)

@endpoint PUT /_security/user/{username}
@required {username: str}
@optional {refresh: str, username: any, email: any, full_name: any, metadata: any, password: any, password_hash: str, roles: [str], enabled: bool=true}
@returns(200) {created: bool}

@endpoint POST /_security/user/{username}
@required {username: str}
@optional {refresh: str, username: any, email: any, full_name: any, metadata: any, password: any, password_hash: str, roles: [str], enabled: bool=true}
@returns(200) {created: bool}

@endpoint DELETE /_security/user/{username}
@required {username: str}
@optional {refresh: str}
@returns(200) {found: bool}

@endpoint PUT /_security/user/{username}/_disable
@required {username: str}
@optional {refresh: str}
@returns(200)

@endpoint POST /_security/user/{username}/_disable
@required {username: str}
@optional {refresh: str}
@returns(200)

@endpoint PUT /_security/profile/{uid}/_disable
@required {uid: str}
@optional {refresh: str}
@returns(200) {acknowledged: bool}

@endpoint POST /_security/profile/{uid}/_disable
@required {uid: str}
@optional {refresh: str}
@returns(200) {acknowledged: bool}

@endpoint PUT /_security/user/{username}/_enable
@required {username: str}
@optional {refresh: str}
@returns(200)

@endpoint POST /_security/user/{username}/_enable
@required {username: str}
@optional {refresh: str}
@returns(200)

@endpoint PUT /_security/profile/{uid}/_enable
@required {uid: str}
@optional {refresh: str}
@returns(200) {acknowledged: bool}

@endpoint POST /_security/profile/{uid}/_enable
@required {uid: str}
@optional {refresh: str}
@returns(200) {acknowledged: bool}

@endpoint GET /_security/enroll/kibana
@returns(200) {token: any, http_ca: str}

@endpoint GET /_security/enroll/node
@returns(200) {http_ca_key: str, http_ca_cert: str, transport_ca_cert: str, transport_key: str, transport_cert: str, nodes_addresses: [str]}

@endpoint GET /_security/privilege/_builtin
@returns(200) {cluster: [any], index: [str], remote_cluster: [str]}

@endpoint GET /_security/privilege
@returns(200)

@endpoint PUT /_security/privilege
@optional {refresh: str}
@returns(200)

@endpoint POST /_security/privilege
@optional {refresh: str}
@returns(200)

@endpoint GET /_security/privilege/{application}
@required {application: str}
@returns(200)

@endpoint GET /_security/role_mapping
@returns(200)

@endpoint GET /_security/service/{namespace}/{service}
@required {namespace: str, service: str}
@returns(200)

@endpoint GET /_security/service/{namespace}
@required {namespace: str}
@returns(200)

@endpoint GET /_security/service
@returns(200)

@endpoint GET /_security/service/{namespace}/{service}/credential
@required {namespace: str, service: str}
@returns(200) {service_account: str, count: num, tokens: map, nodes_credentials: any}

@endpoint GET /_security/settings
@optional {master_timeout: any}
@returns(200) {security: any, security-profile: any, security-tokens: any}

@endpoint PUT /_security/settings
@optional {master_timeout: any, timeout: any, security: any, security-profile: any, security-tokens: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_security/stats
@returns(200) {nodes: map}

@endpoint POST /_security/oauth2/token
@optional {grant_type: any, scope: str, password: any, kerberos_ticket: str, refresh_token: str, username: any}
@returns(200) {access_token: str, expires_in: num, scope: str, type: str, refresh_token: str, kerberos_authentication_response_token: str, authentication: any}

@endpoint DELETE /_security/oauth2/token
@optional {token: str, refresh_token: str, realm_name: any, username: any}
@returns(200) {error_count: num, error_details: [map], invalidated_tokens: num, previously_invalidated_tokens: num}

@endpoint GET /_security/user
@optional {with_profile_uid: bool}
@returns(200)

@endpoint GET /_security/user/_privileges
@returns(200) {applications: [map], cluster: [str], remote_cluster: [map], global: [map], indices: [map], remote_indices: [map], run_as: [str]}

@endpoint GET /_security/profile/{uid}
@required {uid: any}
@optional {data: any}
@returns(200) {profiles: [any], errors: any}

@endpoint POST /_security/api_key/grant
@required {api_key: any, grant_type: any}
@optional {refresh: str, access_token: str, username: any, password: any, run_as: any}
@returns(200) {api_key: str, id: any, name: any, expiration: any, encoded: str}

@endpoint GET /_security/user/_has_privileges
@optional {application: [map{application!: str, privileges!: [str], resources!: [str]}], cluster: [any], index: [map{names!: any, privileges!: [any], allow_restricted_indices: bool}]}
@returns(200) {application: any, cluster: map, has_all_requested: bool, index: map, username: any}

@endpoint POST /_security/user/_has_privileges
@optional {application: [map{application!: str, privileges!: [str], resources!: [str]}], cluster: [any], index: [map{names!: any, privileges!: [any], allow_restricted_indices: bool}]}
@returns(200) {application: any, cluster: map, has_all_requested: bool, index: map, username: any}

@endpoint GET /_security/user/{user}/_has_privileges
@required {user: str}
@optional {application: [map{application!: str, privileges!: [str], resources!: [str]}], cluster: [any], index: [map{names!: any, privileges!: [any], allow_restricted_indices: bool}]}
@returns(200) {application: any, cluster: map, has_all_requested: bool, index: map, username: any}

@endpoint POST /_security/user/{user}/_has_privileges
@required {user: str}
@optional {application: [map{application!: str, privileges!: [str], resources!: [str]}], cluster: [any], index: [map{names!: any, privileges!: [any], allow_restricted_indices: bool}]}
@returns(200) {application: any, cluster: map, has_all_requested: bool, index: map, username: any}

@endpoint GET /_security/profile/_has_privileges
@required {uids: [str], privileges: any}
@returns(200) {has_privilege_uids: [str], errors: any}

@endpoint POST /_security/profile/_has_privileges
@required {uids: [str], privileges: any}
@returns(200) {has_privilege_uids: [str], errors: any}

@endpoint POST /_security/oidc/authenticate
@required {nonce: str, redirect_uri: str, state: str}
@optional {realm: str}
@returns(200) {access_token: str, expires_in: num, refresh_token: str, type: str}

@endpoint POST /_security/oidc/logout
@required {token: str}
@optional {refresh_token: str}
@returns(200) {redirect: str}

@endpoint POST /_security/oidc/prepare
@optional {iss: str, login_hint: str, nonce: str, realm: str, state: str}
@returns(200) {nonce: str, realm: str, redirect: str, state: str}

@endpoint GET /_security/_query/api_key
@optional {with_limited_by: bool, with_profile_uid: bool, typed_keys: bool, aggregations: map, query: any, from: num=0, sort: any, size: num=10, search_after: any}
@returns(200) {total: num, count: num, api_keys: [map], aggregations: map}

@endpoint POST /_security/_query/api_key
@optional {with_limited_by: bool, with_profile_uid: bool, typed_keys: bool, aggregations: map, query: any, from: num=0, sort: any, size: num=10, search_after: any}
@returns(200) {total: num, count: num, api_keys: [map], aggregations: map}

@endpoint GET /_security/_query/role
@optional {query: any, from: num=0, sort: any, size: num=10, search_after: any}
@returns(200) {total: num, count: num, roles: [any]}

@endpoint POST /_security/_query/role
@optional {query: any, from: num=0, sort: any, size: num=10, search_after: any}
@returns(200) {total: num, count: num, roles: [any]}

@endpoint GET /_security/_query/user
@optional {with_profile_uid: bool, query: any, from: num=0, sort: any, size: num=10, search_after: any}
@returns(200) {total: num, count: num, users: [any]}

@endpoint POST /_security/_query/user
@optional {with_profile_uid: bool, query: any, from: num=0, sort: any, size: num=10, search_after: any}
@returns(200) {total: num, count: num, users: [any]}

@endpoint POST /_security/saml/authenticate
@required {content: str, ids: any}
@optional {realm: str}
@returns(200) {access_token: str, username: str, expires_in: num, refresh_token: str, realm: str, in_response_to: str}

@endpoint POST /_security/saml/complete_logout
@required {realm: str, ids: any}
@optional {query_string: str, content: str}
@returns(200)

@endpoint POST /_security/saml/invalidate
@required {query_string: str}
@optional {acs: str, realm: str}
@returns(200) {invalidated: num, realm: str, redirect: str}

@endpoint POST /_security/saml/logout
@required {token: str}
@optional {refresh_token: str}
@returns(200) {redirect: str}

@endpoint POST /_security/saml/prepare
@optional {acs: str, realm: str, relay_state: str}
@returns(200) {id: any, realm: str, redirect: str}

@endpoint GET /_security/saml/metadata/{realm_name}
@required {realm_name: str}
@returns(200) {metadata: str}

@endpoint GET /_security/profile/_suggest
@optional {data: any, name: str, size: num=10, data: any, hint: any}
@returns(200) {total: any, took: num, profiles: [map]}

@endpoint POST /_security/profile/_suggest
@optional {data: any, name: str, size: num=10, data: any, hint: any}
@returns(200) {total: any, took: num, profiles: [map]}

@endpoint PUT /_security/api_key/{id}
@required {id: str}
@optional {role_descriptors: map, metadata: any, expiration: any}
@returns(200) {updated: bool}

@endpoint PUT /_security/cross_cluster/api_key/{id}
@required {id: str, access: any}
@optional {expiration: any, metadata: any, certificate_identity: str}
@returns(200) {updated: bool}

@endpoint PUT /_security/profile/{uid}/_data
@required {uid: str}
@optional {if_seq_no: num, if_primary_term: num, refresh: str, labels: map, data: map}
@returns(200) {acknowledged: bool}

@endpoint POST /_security/profile/{uid}/_data
@required {uid: str}
@optional {if_seq_no: num, if_primary_term: num, refresh: str, labels: map, data: map}
@returns(200) {acknowledged: bool}

@endgroup

@group _ingest
@endpoint GET /_ingest/_simulate
@required {docs: [map{_id: any, _index: any, _source!: map}]}
@optional {pipeline: str, merge_type: str, component_template_substitutions: map, index_template_substitutions: map, mapping_addition: any, pipeline_substitutions: map}
@returns(200) {docs: [map]}

@endpoint POST /_ingest/_simulate
@required {docs: [map{_id: any, _index: any, _source!: map}]}
@optional {pipeline: str, merge_type: str, component_template_substitutions: map, index_template_substitutions: map, mapping_addition: any, pipeline_substitutions: map}
@returns(200) {docs: [map]}

@endpoint GET /_ingest/{index}/_simulate
@required {index: str, docs: [map{_id: any, _index: any, _source!: map}]}
@optional {pipeline: str, merge_type: str, component_template_substitutions: map, index_template_substitutions: map, mapping_addition: any, pipeline_substitutions: map}
@returns(200) {docs: [map]}

@endpoint POST /_ingest/{index}/_simulate
@required {index: str, docs: [map{_id: any, _index: any, _source!: map}]}
@optional {pipeline: str, merge_type: str, component_template_substitutions: map, index_template_substitutions: map, mapping_addition: any, pipeline_substitutions: map}
@returns(200) {docs: [map]}

@endgroup

@group _slm
@endpoint GET /_slm/policy/{policy_id}
@required {policy_id: any}
@optional {master_timeout: any, timeout: any}
@returns(200)

@endpoint PUT /_slm/policy/{policy_id}
@required {policy_id: str}
@optional {master_timeout: any, timeout: any, config: any, name: any, repository: str, retention: any, schedule: any}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_slm/policy/{policy_id}
@required {policy_id: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint PUT /_slm/policy/{policy_id}/_execute
@required {policy_id: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {snapshot_name: any}

@endpoint POST /_slm/_execute_retention
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_slm/policy
@optional {master_timeout: any, timeout: any}
@returns(200)

@endpoint GET /_slm/stats
@optional {master_timeout: any, timeout: any}
@returns(200) {retention_deletion_time: any, retention_deletion_time_millis: any, retention_failed: num, retention_runs: num, retention_timed_out: num, total_snapshots_deleted: num, total_snapshot_deletion_failures: num, total_snapshots_failed: num, total_snapshots_taken: num, policy_stats: [map]}

@endpoint GET /_slm/status
@optional {master_timeout: any, timeout: any}
@returns(200) {operation_mode: any}

@endpoint POST /_slm/start
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint POST /_slm/stop
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endgroup

@group _snapshot
@endpoint POST /_snapshot/{repository}/_cleanup
@required {repository: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {results: any}

@endpoint PUT /_snapshot/{repository}/{snapshot}/_clone/{target_snapshot}
@required {repository: str, snapshot: str, target_snapshot: str, indices: str}
@optional {master_timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_snapshot/{repository}/{snapshot}
@required {repository: str, snapshot: any}
@optional {after: str, from_sort_value: str, ignore_unavailable: bool, index_details: bool, index_names: bool, include_repository: bool, master_timeout: any, order: str, offset: num, size: num, slm_policy_filter: str, sort: str, state: any, verbose: bool}
@returns(200) {remaining: num, total: num, next: str, responses: [map], snapshots: [map]}

@endpoint PUT /_snapshot/{repository}/{snapshot}
@required {repository: str, snapshot: str}
@optional {master_timeout: any, wait_for_completion: bool, expand_wildcards: any=all, feature_states: [str], ignore_unavailable: bool=false, include_global_state: bool=true, indices: any, metadata: any, partial: bool=false}
@returns(200) {accepted: bool, snapshot: any}

@endpoint POST /_snapshot/{repository}/{snapshot}
@required {repository: str, snapshot: str}
@optional {master_timeout: any, wait_for_completion: bool, expand_wildcards: any=all, feature_states: [str], ignore_unavailable: bool=false, include_global_state: bool=true, indices: any, metadata: any, partial: bool=false}
@returns(200) {accepted: bool, snapshot: any}

@endpoint DELETE /_snapshot/{repository}/{snapshot}
@required {repository: str, snapshot: any}
@optional {master_timeout: any, wait_for_completion: bool}
@returns(200) {acknowledged: bool}

@endpoint GET /_snapshot/{repository}
@required {repository: any}
@optional {local: bool, master_timeout: any}
@returns(200)

@endpoint PUT /_snapshot/{repository}
@required {repository: str}
@optional {master_timeout: any, timeout: any, verify: bool}
@returns(200) {acknowledged: bool}

@endpoint POST /_snapshot/{repository}
@required {repository: str}
@optional {master_timeout: any, timeout: any, verify: bool}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_snapshot/{repository}
@required {repository: any}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_snapshot
@optional {local: bool, master_timeout: any}
@returns(200)

@endpoint POST /_snapshot/{repository}/_analyze
@required {repository: str}
@optional {blob_count: num, concurrency: num, detailed: bool, early_read_node_count: num, max_blob_size: any, max_total_data_size: any, rare_action_probability: num, rarely_abort_writes: bool, read_node_count: num, register_operation_count: num, seed: num, timeout: any}
@returns(200) {blob_count: num, blob_path: str, concurrency: num, coordinating_node: any, delete_elapsed: any, delete_elapsed_nanos: any, details: any, early_read_node_count: num, issues_detected: [str], listing_elapsed: any, listing_elapsed_nanos: any, max_blob_size: any, max_blob_size_bytes: num, max_total_data_size: any, max_total_data_size_bytes: num, rare_action_probability: num, read_node_count: num, repository: str, seed: num, summary: any}

@endpoint POST /_snapshot/{repository}/_verify_integrity
@required {repository: any}
@optional {blob_thread_pool_concurrency: num, index_snapshot_verification_concurrency: num, index_verification_concurrency: num, max_bytes_per_sec: str, max_failed_shard_snapshots: num, meta_thread_pool_concurrency: num, snapshot_verification_concurrency: num, verify_blob_contents: bool}
@returns(200)

@endpoint POST /_snapshot/{repository}/{snapshot}/_restore
@required {repository: str, snapshot: str}
@optional {master_timeout: any, wait_for_completion: bool, feature_states: [str], ignore_index_settings: [str], ignore_unavailable: bool=false, include_aliases: bool=true, include_global_state: bool=false, index_settings: any, indices: any, partial: bool=false, rename_pattern: str, rename_replacement: str}
@returns(200) {accepted: bool, snapshot: any}

@endpoint GET /_snapshot/_status
@optional {ignore_unavailable: bool, master_timeout: any}
@returns(200) {snapshots: [map]}

@endpoint GET /_snapshot/{repository}/_status
@required {repository: str}
@optional {ignore_unavailable: bool, master_timeout: any}
@returns(200) {snapshots: [map]}

@endpoint GET /_snapshot/{repository}/{snapshot}/_status
@required {repository: str, snapshot: any}
@optional {ignore_unavailable: bool, master_timeout: any}
@returns(200) {snapshots: [map]}

@endpoint POST /_snapshot/{repository}/_verify
@required {repository: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {nodes: map}

@endgroup

@group _sql
@endpoint POST /_sql/close
@required {cursor: str}
@returns(200) {succeeded: bool}

@endpoint DELETE /_sql/async/delete/{id}
@required {id: str}
@returns(200) {acknowledged: bool}

@endpoint GET /_sql/async/{id}
@required {id: str}
@optional {delimiter: str, format: str, keep_alive: any, wait_for_completion_timeout: any}
@returns(200) {id: any, is_running: bool, is_partial: bool, columns: [map], cursor: str, rows: [[map]]}

@endpoint GET /_sql/async/status/{id}
@required {id: str}
@returns(200) {expiration_time_in_millis: any, id: str, is_running: bool, is_partial: bool, start_time_in_millis: any, completion_status: any}

@endpoint GET /_sql
@optional {format: str, allow_partial_search_results: bool=false, catalog: str, columnar: bool=false, cursor: str, fetch_size: num=1000, field_multi_value_leniency: bool=false, filter: any=none, index_using_frozen: bool=false, keep_alive: any=5d, keep_on_completion: bool=false, page_timeout: any=45s, params: [map], query: str, request_timeout: any=90s, runtime_mappings: any, time_zone: any=Z, wait_for_completion_timeout: any}
@returns(200) {columns: [map], cursor: str, id: any, is_running: bool, is_partial: bool, rows: [[map]]}

@endpoint POST /_sql
@optional {format: str, allow_partial_search_results: bool=false, catalog: str, columnar: bool=false, cursor: str, fetch_size: num=1000, field_multi_value_leniency: bool=false, filter: any=none, index_using_frozen: bool=false, keep_alive: any=5d, keep_on_completion: bool=false, page_timeout: any=45s, params: [map], query: str, request_timeout: any=90s, runtime_mappings: any, time_zone: any=Z, wait_for_completion_timeout: any}
@returns(200) {columns: [map], cursor: str, id: any, is_running: bool, is_partial: bool, rows: [[map]]}

@endpoint GET /_sql/translate
@required {query: str}
@optional {fetch_size: num=1000, filter: any=none, time_zone: any=Z}
@returns(200) {aggregations: map, size: num, _source: any, fields: [map], query: any, sort: any, track_total_hits: any}

@endpoint POST /_sql/translate
@required {query: str}
@optional {fetch_size: num=1000, filter: any=none, time_zone: any=Z}
@returns(200) {aggregations: map, size: num, _source: any, fields: [map], query: any, sort: any, track_total_hits: any}

@endgroup

@group _ssl
@endpoint GET /_ssl/certificates
@returns(200)

@endgroup

@group _streams
@endpoint POST /_streams/{name}/_disable
@required {name: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint POST /_streams/{name}/_enable
@required {name: str}
@optional {master_timeout: any, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_streams/status
@optional {master_timeout: any}
@returns(200) {logs: any, logs.otel: any, logs.ecs: any}

@endgroup

@group _synonyms
@endpoint GET /_synonyms/{id}
@required {id: str}
@optional {from: num, size: num}
@returns(200) {count: num, synonyms_set: [map]}

@endpoint PUT /_synonyms/{id}
@required {id: str, synonyms_set: any}
@optional {refresh: bool}
@returns(200) {result: any, reload_analyzers_details: any}

@endpoint DELETE /_synonyms/{id}
@required {id: str}
@returns(200) {acknowledged: bool}

@endpoint GET /_synonyms/{set_id}/{rule_id}
@required {set_id: str, rule_id: str}
@returns(200) {id: any, synonyms: any}

@endpoint PUT /_synonyms/{set_id}/{rule_id}
@required {set_id: str, rule_id: str, synonyms: any}
@optional {refresh: bool}
@returns(200) {result: any, reload_analyzers_details: any}

@endpoint DELETE /_synonyms/{set_id}/{rule_id}
@required {set_id: str, rule_id: str}
@optional {refresh: bool}
@returns(200) {result: any, reload_analyzers_details: any}

@endpoint GET /_synonyms
@optional {from: num, size: num}
@returns(200) {count: num, results: [map]}

@endgroup

@group _tasks
@endpoint POST /_tasks/_cancel
@optional {actions: any, nodes: [str], parent_task_id: str, wait_for_completion: bool}
@returns(200) {node_failures: [map], task_failures: [map], nodes: map, tasks: any}

@endpoint POST /_tasks/{task_id}/_cancel
@required {task_id: str}
@optional {actions: any, nodes: [str], parent_task_id: str, wait_for_completion: bool}
@returns(200) {node_failures: [map], task_failures: [map], nodes: map, tasks: any}

@endpoint GET /_tasks/{task_id}
@required {task_id: str}
@optional {timeout: any, wait_for_completion: bool}
@returns(200) {completed: bool, task: any, response: map, error: any}

@endpoint GET /_tasks
@optional {actions: any, detailed: bool, group_by: str, nodes: any, parent_task_id: str, timeout: any, wait_for_completion: bool}
@returns(200) {node_failures: [map], task_failures: [map], nodes: map, tasks: any}

@endgroup

@group {index}
@endpoint GET /{index}/_terms_enum
@required {index: any, field: any}
@optional {size: num=10, timeout: any=1s, case_insensitive: bool=false, index_filter: any, string: str, search_after: str}
@returns(200) {_shards: any, terms: [str], complete: bool}

@endpoint POST /{index}/_terms_enum
@required {index: any, field: any}
@optional {size: num=10, timeout: any=1s, case_insensitive: bool=false, index_filter: any, string: str, search_after: str}
@returns(200) {_shards: any, terms: [str], complete: bool}

@endpoint GET /{index}/_termvectors/{id}
@required {index: str, id: str}
@optional {fields: any, field_statistics: bool, offsets: bool, payloads: bool, positions: bool, preference: str, realtime: bool, routing: any, term_statistics: bool, version: num, version_type: str, doc: map, filter: any, per_field_analyzer: map, fields: [str], field_statistics: bool=true, offsets: bool=true, payloads: bool=true, positions: bool=true, term_statistics: bool=false, routing: any, version: any, version_type: any}
@returns(200) {found: bool, _id: any, _index: any, term_vectors: map, took: num, _version: any}

@endpoint POST /{index}/_termvectors/{id}
@required {index: str, id: str}
@optional {fields: any, field_statistics: bool, offsets: bool, payloads: bool, positions: bool, preference: str, realtime: bool, routing: any, term_statistics: bool, version: num, version_type: str, doc: map, filter: any, per_field_analyzer: map, fields: [str], field_statistics: bool=true, offsets: bool=true, payloads: bool=true, positions: bool=true, term_statistics: bool=false, routing: any, version: any, version_type: any}
@returns(200) {found: bool, _id: any, _index: any, term_vectors: map, took: num, _version: any}

@endpoint GET /{index}/_termvectors
@required {index: str}
@optional {fields: any, field_statistics: bool, offsets: bool, payloads: bool, positions: bool, preference: str, realtime: bool, routing: any, term_statistics: bool, version: num, version_type: str, doc: map, filter: any, per_field_analyzer: map, fields: [str], field_statistics: bool=true, offsets: bool=true, payloads: bool=true, positions: bool=true, term_statistics: bool=false, routing: any, version: any, version_type: any}
@returns(200) {found: bool, _id: any, _index: any, term_vectors: map, took: num, _version: any}

@endpoint POST /{index}/_termvectors
@required {index: str}
@optional {fields: any, field_statistics: bool, offsets: bool, payloads: bool, positions: bool, preference: str, realtime: bool, routing: any, term_statistics: bool, version: num, version_type: str, doc: map, filter: any, per_field_analyzer: map, fields: [str], field_statistics: bool=true, offsets: bool=true, payloads: bool=true, positions: bool=true, term_statistics: bool=false, routing: any, version: any, version_type: any}
@returns(200) {found: bool, _id: any, _index: any, term_vectors: map, took: num, _version: any}

@endgroup

@group _text_structure
@endpoint GET /_text_structure/find_field_structure
@required {field: str, index: str}
@optional {column_names: any, delimiter: str, documents_to_sample: num, ecs_compatibility: str, explain: bool, format: str, grok_pattern: str, quote: str, should_trim_fields: bool, should_parse_recursively: bool, timeout: any, timestamp_field: str, timestamp_format: str}
@returns(200) {charset: str, ecs_compatibility: any, field_stats: map, format: any, grok_pattern: any, java_timestamp_formats: [str], joda_timestamp_formats: [str], ingest_pipeline: any, mappings: any, multiline_start_pattern: str, need_client_timezone: bool, num_lines_analyzed: num, num_messages_analyzed: num, sample_start: str, timestamp_field: any}

@endpoint GET /_text_structure/find_message_structure
@required {messages: [str]}
@optional {column_names: any, delimiter: str, ecs_compatibility: str, explain: bool, format: str, grok_pattern: str, quote: str, should_trim_fields: bool, should_parse_recursively: bool, timeout: any, timestamp_field: str, timestamp_format: str}
@returns(200) {charset: str, ecs_compatibility: any, field_stats: map, format: any, grok_pattern: any, java_timestamp_formats: [str], joda_timestamp_formats: [str], ingest_pipeline: any, mappings: any, multiline_start_pattern: str, need_client_timezone: bool, num_lines_analyzed: num, num_messages_analyzed: num, sample_start: str, timestamp_field: any}

@endpoint POST /_text_structure/find_message_structure
@required {messages: [str]}
@optional {column_names: any, delimiter: str, ecs_compatibility: str, explain: bool, format: str, grok_pattern: str, quote: str, should_trim_fields: bool, should_parse_recursively: bool, timeout: any, timestamp_field: str, timestamp_format: str}
@returns(200) {charset: str, ecs_compatibility: any, field_stats: map, format: any, grok_pattern: any, java_timestamp_formats: [str], joda_timestamp_formats: [str], ingest_pipeline: any, mappings: any, multiline_start_pattern: str, need_client_timezone: bool, num_lines_analyzed: num, num_messages_analyzed: num, sample_start: str, timestamp_field: any}

@endpoint POST /_text_structure/find_structure
@optional {charset: str, column_names: any, delimiter: str, ecs_compatibility: str, explain: bool, format: str, grok_pattern: str, has_header_row: bool, line_merge_size_limit: num, lines_to_sample: num, quote: str, should_trim_fields: bool, should_parse_recursively: bool, timeout: any, timestamp_field: str, timestamp_format: str}
@returns(200) {charset: str, has_header_row: bool, has_byte_order_marker: bool, format: str, field_stats: map, sample_start: str, num_messages_analyzed: num, mappings: any, quote: str, delimiter: str, need_client_timezone: bool, num_lines_analyzed: num, column_names: [str], explanation: [str], grok_pattern: any, multiline_start_pattern: str, exclude_lines_pattern: str, java_timestamp_formats: [str], joda_timestamp_formats: [str], timestamp_field: any, should_trim_fields: bool, ingest_pipeline: any}

@endpoint GET /_text_structure/test_grok_pattern
@required {grok_pattern: any, text: [str]}
@optional {ecs_compatibility: str}
@returns(200) {matches: [map]}

@endpoint POST /_text_structure/test_grok_pattern
@required {grok_pattern: any, text: [str]}
@optional {ecs_compatibility: str}
@returns(200) {matches: [map]}

@endgroup

@group _transform
@endpoint GET /_transform/{transform_id}
@required {transform_id: any}
@optional {allow_no_match: bool, from: num, size: num, exclude_generated: bool}
@returns(200) {count: num, transforms: [map]}

@endpoint PUT /_transform/{transform_id}
@required {transform_id: str, dest: any, source: any}
@optional {defer_validation: bool, timeout: any, description: str, frequency: any=1m, latest: any, _meta: any, pivot: any, retention_policy: any, settings: any, sync: any}
@returns(200) {acknowledged: bool}

@endpoint DELETE /_transform/{transform_id}
@required {transform_id: str}
@optional {force: bool, delete_dest_index: bool, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_transform/_node_stats
@returns(200) {total: any}

@endpoint GET /_transform
@optional {allow_no_match: bool, from: num, size: num, exclude_generated: bool}
@returns(200) {count: num, transforms: [map]}

@endpoint GET /_transform/{transform_id}/_stats
@required {transform_id: any}
@optional {allow_no_match: bool, from: num, size: num, timeout: any}
@returns(200) {count: num, transforms: [map]}

@endpoint GET /_transform/{transform_id}/_preview
@required {transform_id: str}
@optional {timeout: any, dest: any, description: str, frequency: any=1m, pivot: any, source: any, settings: any, sync: any, retention_policy: any, latest: any}
@returns(200) {generated_dest_index: any, preview: [map]}

@endpoint POST /_transform/{transform_id}/_preview
@required {transform_id: str}
@optional {timeout: any, dest: any, description: str, frequency: any=1m, pivot: any, source: any, settings: any, sync: any, retention_policy: any, latest: any}
@returns(200) {generated_dest_index: any, preview: [map]}

@endpoint GET /_transform/_preview
@optional {timeout: any, dest: any, description: str, frequency: any=1m, pivot: any, source: any, settings: any, sync: any, retention_policy: any, latest: any}
@returns(200) {generated_dest_index: any, preview: [map]}

@endpoint POST /_transform/_preview
@optional {timeout: any, dest: any, description: str, frequency: any=1m, pivot: any, source: any, settings: any, sync: any, retention_policy: any, latest: any}
@returns(200) {generated_dest_index: any, preview: [map]}

@endpoint POST /_transform/{transform_id}/_reset
@required {transform_id: str}
@optional {force: bool, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint POST /_transform/{transform_id}/_schedule_now
@required {transform_id: str}
@optional {timeout: any}
@returns(200) {acknowledged: bool}

@endpoint POST /_transform/set_upgrade_mode
@optional {enabled: bool, timeout: any}
@returns(200) {acknowledged: bool}

@endpoint POST /_transform/{transform_id}/_start
@required {transform_id: str}
@optional {timeout: any, from: str}
@returns(200) {acknowledged: bool}

@endpoint POST /_transform/{transform_id}/_stop
@required {transform_id: str}
@optional {allow_no_match: bool, force: bool, timeout: any, wait_for_checkpoint: bool, wait_for_completion: bool}
@returns(200) {acknowledged: bool}

@endpoint POST /_transform/{transform_id}/_update
@required {transform_id: str}
@optional {defer_validation: bool, timeout: any, dest: any, description: str, frequency: any=1m, _meta: any, source: any, settings: any, sync: any, retention_policy: any}
@returns(200) {authorization: any, create_time: num, description: str, dest: any, frequency: any, id: any, latest: any, pivot: any, retention_policy: any, settings: any, source: any, sync: any, version: any, _meta: any}

@endpoint POST /_transform/_upgrade
@optional {dry_run: bool, timeout: any}
@returns(200) {needs_update: num, no_action: num, updated: num}

@endgroup

@group {index}
@endpoint POST /{index}/_update/{id}
@required {index: str, id: str}
@optional {if_primary_term: num, if_seq_no: num, include_source_on_error: bool, lang: str, refresh: str, require_alias: bool, retry_on_conflict: num, routing: any, timeout: any, wait_for_active_shards: any, _source: any, _source_excludes: any, _source_includes: any, detect_noop: bool=true, doc: map, doc_as_upsert: bool=false, script: any, scripted_upsert: bool=false, _source: any=true, upsert: map}
@returns(200)

@endpoint POST /{index}/_update_by_query
@required {index: any}
@optional {allow_no_indices: bool, analyzer: str, analyze_wildcard: bool, conflicts: str, default_operator: str, df: str, expand_wildcards: any, from: num, ignore_unavailable: bool, lenient: bool, max_docs: num, pipeline: str, preference: str, q: str, refresh: bool, request_cache: bool, requests_per_second: num, routing: any, scroll: any, scroll_size: num, search_timeout: any, search_type: str, slices: any, sort: [str], stats: [str], terminate_after: num, timeout: any, version: bool, version_type: bool, wait_for_active_shards: any, wait_for_completion: bool, max_docs: num, query: any, script: any, slice: any, conflicts: any=abort}
@returns(200) {batches: num, failures: [map], noops: num, deleted: num, requests_per_second: num, retries: any, slices: [map], task: any, timed_out: bool, took: any, total: num, updated: num, version_conflicts: num, throttled: any, throttled_millis: any, throttled_until: any, throttled_until_millis: any}

@endgroup

@group _update_by_query
@endpoint POST /_update_by_query/{task_id}/_rethrottle
@required {task_id: str, requests_per_second: num}
@returns(200) {nodes: map}

@endgroup

@group _watcher
@endpoint PUT /_watcher/watch/{watch_id}/_ack
@required {watch_id: str}
@returns(200) {status: any}

@endpoint POST /_watcher/watch/{watch_id}/_ack
@required {watch_id: str}
@returns(200) {status: any}

@endpoint PUT /_watcher/watch/{watch_id}/_ack/{action_id}
@required {watch_id: str, action_id: any}
@returns(200) {status: any}

@endpoint POST /_watcher/watch/{watch_id}/_ack/{action_id}
@required {watch_id: str, action_id: any}
@returns(200) {status: any}

@endpoint PUT /_watcher/watch/{watch_id}/_activate
@required {watch_id: str}
@returns(200) {status: any}

@endpoint POST /_watcher/watch/{watch_id}/_activate
@required {watch_id: str}
@returns(200) {status: any}

@endpoint PUT /_watcher/watch/{watch_id}/_deactivate
@required {watch_id: str}
@returns(200) {status: any}

@endpoint POST /_watcher/watch/{watch_id}/_deactivate
@required {watch_id: str}
@returns(200) {status: any}

@endpoint GET /_watcher/watch/{id}
@required {id: str}
@returns(200) {found: bool, _id: any, status: any, watch: any, _primary_term: num, _seq_no: any, _version: any}

@endpoint PUT /_watcher/watch/{id}
@required {id: str}
@optional {active: bool, if_primary_term: num, if_seq_no: num, version: num, actions: map, condition: any, input: any, metadata: any, throttle_period: any, throttle_period_in_millis: any, transform: any, trigger: any}
@returns(200) {created: bool, _id: any, _primary_term: num, _seq_no: any, _version: any}

@endpoint POST /_watcher/watch/{id}
@required {id: str}
@optional {active: bool, if_primary_term: num, if_seq_no: num, version: num, actions: map, condition: any, input: any, metadata: any, throttle_period: any, throttle_period_in_millis: any, transform: any, trigger: any}
@returns(200) {created: bool, _id: any, _primary_term: num, _seq_no: any, _version: any}

@endpoint DELETE /_watcher/watch/{id}
@required {id: str}
@returns(200) {found: bool, _id: any, _version: any}

@endpoint PUT /_watcher/watch/{id}/_execute
@required {id: str}
@optional {debug: bool, action_modes: map, alternative_input: map, ignore_condition: bool=false, record_execution: bool=false, simulated_actions: any, trigger_data: any, watch: any=null}
@returns(200) {_id: any, watch_record: any}

@endpoint POST /_watcher/watch/{id}/_execute
@required {id: str}
@optional {debug: bool, action_modes: map, alternative_input: map, ignore_condition: bool=false, record_execution: bool=false, simulated_actions: any, trigger_data: any, watch: any=null}
@returns(200) {_id: any, watch_record: any}

@endpoint PUT /_watcher/watch/_execute
@optional {debug: bool, action_modes: map, alternative_input: map, ignore_condition: bool=false, record_execution: bool=false, simulated_actions: any, trigger_data: any, watch: any=null}
@returns(200) {_id: any, watch_record: any}

@endpoint POST /_watcher/watch/_execute
@optional {debug: bool, action_modes: map, alternative_input: map, ignore_condition: bool=false, record_execution: bool=false, simulated_actions: any, trigger_data: any, watch: any=null}
@returns(200) {_id: any, watch_record: any}

@endpoint GET /_watcher/settings
@optional {master_timeout: any}
@returns(200) {index: any}

@endpoint PUT /_watcher/settings
@optional {master_timeout: any, timeout: any, index.auto_expand_replicas: str, index.number_of_replicas: num}
@returns(200) {acknowledged: bool}

@endpoint GET /_watcher/_query/watches
@optional {from: num=0, size: num=10, query: any, sort: any, search_after: any}
@returns(200) {count: num, watches: [map]}

@endpoint POST /_watcher/_query/watches
@optional {from: num=0, size: num=10, query: any, sort: any, search_after: any}
@returns(200) {count: num, watches: [map]}

@endpoint POST /_watcher/_start
@optional {master_timeout: any}
@returns(200) {acknowledged: bool}

@endpoint GET /_watcher/stats
@optional {emit_stacktraces: bool, metric: any}
@returns(200) {_nodes: any, cluster_name: any, manually_stopped: bool, stats: [map]}

@endpoint GET /_watcher/stats/{metric}
@required {metric: any}
@optional {emit_stacktraces: bool, metric: any}
@returns(200) {_nodes: any, cluster_name: any, manually_stopped: bool, stats: [map]}

@endpoint POST /_watcher/_stop
@optional {master_timeout: any}
@returns(200) {acknowledged: bool}

@endgroup

@group _xpack
@endpoint GET /_xpack
@optional {categories: [str], accept_enterprise: bool, human: bool}
@returns(200) {build: any, features: any, license: any, tagline: str}

@endpoint GET /_xpack/usage
@optional {master_timeout: any}
@returns(200) {aggregate_metric: any, analytics: any, archive: any, watcher: any, ccr: any, data_frame: any, data_science: any, data_streams: any, data_tiers: any, enrich: any, eql: any, flattened: any, graph: any, gpu_vector_indexing: any, health_api: any, ilm: any, logstash: any, ml: any, monitoring: any, rollup: any, runtime_fields: any, spatial: any, searchable_snapshots: any, security: any, slm: any, sql: any, transform: any, vectors: any, voting_only: any}

@endgroup

@end
