opensearch-api 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data/.gitignore +17 -0
- data/Gemfile +48 -0
- data/LICENSE +202 -0
- data/README.md +194 -0
- data/Rakefile +131 -0
- data/lib/opensearch/api/actions/abort_benchmark.rb +49 -0
- data/lib/opensearch/api/actions/benchmark.rb +89 -0
- data/lib/opensearch/api/actions/bulk.rb +97 -0
- data/lib/opensearch/api/actions/cat/aliases.rb +79 -0
- data/lib/opensearch/api/actions/cat/allocation.rb +81 -0
- data/lib/opensearch/api/actions/cat/count.rb +75 -0
- data/lib/opensearch/api/actions/cat/fielddata.rb +77 -0
- data/lib/opensearch/api/actions/cat/health.rb +72 -0
- data/lib/opensearch/api/actions/cat/help.rb +61 -0
- data/lib/opensearch/api/actions/cat/indices.rb +91 -0
- data/lib/opensearch/api/actions/cat/master.rb +71 -0
- data/lib/opensearch/api/actions/cat/nodeattrs.rb +71 -0
- data/lib/opensearch/api/actions/cat/nodes.rb +80 -0
- data/lib/opensearch/api/actions/cat/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/cat/pending_tasks.rb +74 -0
- data/lib/opensearch/api/actions/cat/plugins.rb +73 -0
- data/lib/opensearch/api/actions/cat/recovery.rb +84 -0
- data/lib/opensearch/api/actions/cat/repositories.rb +72 -0
- data/lib/opensearch/api/actions/cat/segments.rb +76 -0
- data/lib/opensearch/api/actions/cat/shards.rb +83 -0
- data/lib/opensearch/api/actions/cat/snapshots.rb +80 -0
- data/lib/opensearch/api/actions/cat/tasks.rb +77 -0
- data/lib/opensearch/api/actions/cat/templates.rb +78 -0
- data/lib/opensearch/api/actions/cat/thread_pool.rb +82 -0
- data/lib/opensearch/api/actions/clear_scroll.rb +62 -0
- data/lib/opensearch/api/actions/close_point_in_time.rb +50 -0
- data/lib/opensearch/api/actions/cluster/allocation_explain.rb +67 -0
- data/lib/opensearch/api/actions/cluster/delete_component_template.rb +66 -0
- data/lib/opensearch/api/actions/cluster/delete_voting_config_exclusions.rb +59 -0
- data/lib/opensearch/api/actions/cluster/exists_component_template.rb +68 -0
- data/lib/opensearch/api/actions/cluster/get_component_template.rb +68 -0
- data/lib/opensearch/api/actions/cluster/get_settings.rb +65 -0
- data/lib/opensearch/api/actions/cluster/health.rb +86 -0
- data/lib/opensearch/api/actions/cluster/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/cluster/pending_tasks.rb +62 -0
- data/lib/opensearch/api/actions/cluster/post_voting_config_exclusions.rb +63 -0
- data/lib/opensearch/api/actions/cluster/put_component_template.rb +70 -0
- data/lib/opensearch/api/actions/cluster/put_settings.rb +66 -0
- data/lib/opensearch/api/actions/cluster/remote_info.rb +51 -0
- data/lib/opensearch/api/actions/cluster/reroute.rb +70 -0
- data/lib/opensearch/api/actions/cluster/state.rb +85 -0
- data/lib/opensearch/api/actions/cluster/stats.rb +68 -0
- data/lib/opensearch/api/actions/count.rb +101 -0
- data/lib/opensearch/api/actions/create.rb +61 -0
- data/lib/opensearch/api/actions/dangling_indices/delete_dangling_index.rb +68 -0
- data/lib/opensearch/api/actions/dangling_indices/import_dangling_index.rb +67 -0
- data/lib/opensearch/api/actions/dangling_indices/list_dangling_indices.rb +51 -0
- data/lib/opensearch/api/actions/dangling_indices/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/delete.rb +96 -0
- data/lib/opensearch/api/actions/delete_by_query.rb +140 -0
- data/lib/opensearch/api/actions/delete_by_query_rethrottle.rb +62 -0
- data/lib/opensearch/api/actions/delete_by_rethrottle.rb +55 -0
- data/lib/opensearch/api/actions/delete_script.rb +64 -0
- data/lib/opensearch/api/actions/exists.rb +101 -0
- data/lib/opensearch/api/actions/exists_source.rb +96 -0
- data/lib/opensearch/api/actions/explain.rb +106 -0
- data/lib/opensearch/api/actions/features/get_features.rb +59 -0
- data/lib/opensearch/api/actions/features/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/features/reset_features.rb +55 -0
- data/lib/opensearch/api/actions/field_caps.rb +78 -0
- data/lib/opensearch/api/actions/get.rb +100 -0
- data/lib/opensearch/api/actions/get_script.rb +62 -0
- data/lib/opensearch/api/actions/get_script_context.rb +53 -0
- data/lib/opensearch/api/actions/get_script_languages.rb +53 -0
- data/lib/opensearch/api/actions/get_source.rb +94 -0
- data/lib/opensearch/api/actions/index.rb +103 -0
- data/lib/opensearch/api/actions/indices/add_block.rb +76 -0
- data/lib/opensearch/api/actions/indices/analyze.rb +71 -0
- data/lib/opensearch/api/actions/indices/clear_cache.rb +79 -0
- data/lib/opensearch/api/actions/indices/clone.rb +73 -0
- data/lib/opensearch/api/actions/indices/close.rb +74 -0
- data/lib/opensearch/api/actions/indices/create.rb +71 -0
- data/lib/opensearch/api/actions/indices/delete.rb +76 -0
- data/lib/opensearch/api/actions/indices/delete_alias.rb +72 -0
- data/lib/opensearch/api/actions/indices/delete_index_template.rb +66 -0
- data/lib/opensearch/api/actions/indices/delete_template.rb +70 -0
- data/lib/opensearch/api/actions/indices/disk_usage.rb +76 -0
- data/lib/opensearch/api/actions/indices/exists.rb +79 -0
- data/lib/opensearch/api/actions/indices/exists_alias.rb +82 -0
- data/lib/opensearch/api/actions/indices/exists_index_template.rb +70 -0
- data/lib/opensearch/api/actions/indices/exists_template.rb +73 -0
- data/lib/opensearch/api/actions/indices/exists_type.rb +79 -0
- data/lib/opensearch/api/actions/indices/field_usage_stats.rb +74 -0
- data/lib/opensearch/api/actions/indices/flush.rb +74 -0
- data/lib/opensearch/api/actions/indices/flush_synced.rb +79 -0
- data/lib/opensearch/api/actions/indices/forcemerge.rb +76 -0
- data/lib/opensearch/api/actions/indices/get.rb +78 -0
- data/lib/opensearch/api/actions/indices/get_alias.rb +79 -0
- data/lib/opensearch/api/actions/indices/get_field_mapping.rb +92 -0
- data/lib/opensearch/api/actions/indices/get_index_template.rb +70 -0
- data/lib/opensearch/api/actions/indices/get_mapping.rb +88 -0
- data/lib/opensearch/api/actions/indices/get_settings.rb +85 -0
- data/lib/opensearch/api/actions/indices/get_template.rb +72 -0
- data/lib/opensearch/api/actions/indices/get_upgrade.rb +75 -0
- data/lib/opensearch/api/actions/indices/open.rb +74 -0
- data/lib/opensearch/api/actions/indices/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/indices/put_alias.rb +73 -0
- data/lib/opensearch/api/actions/indices/put_index_template.rb +70 -0
- data/lib/opensearch/api/actions/indices/put_mapping.rb +91 -0
- data/lib/opensearch/api/actions/indices/put_settings.rb +81 -0
- data/lib/opensearch/api/actions/indices/put_template.rb +72 -0
- data/lib/opensearch/api/actions/indices/recovery.rb +68 -0
- data/lib/opensearch/api/actions/indices/refresh.rb +70 -0
- data/lib/opensearch/api/actions/indices/resolve_index.rb +68 -0
- data/lib/opensearch/api/actions/indices/rollover.rb +81 -0
- data/lib/opensearch/api/actions/indices/segments.rb +72 -0
- data/lib/opensearch/api/actions/indices/shard_stores.rb +72 -0
- data/lib/opensearch/api/actions/indices/shrink.rb +75 -0
- data/lib/opensearch/api/actions/indices/simulate_index_template.rb +69 -0
- data/lib/opensearch/api/actions/indices/simulate_template.rb +71 -0
- data/lib/opensearch/api/actions/indices/split.rb +75 -0
- data/lib/opensearch/api/actions/indices/stats.rb +100 -0
- data/lib/opensearch/api/actions/indices/update_aliases.rb +64 -0
- data/lib/opensearch/api/actions/indices/upgrade.rb +79 -0
- data/lib/opensearch/api/actions/indices/validate_query.rb +104 -0
- data/lib/opensearch/api/actions/info.rb +49 -0
- data/lib/opensearch/api/actions/ingest/delete_pipeline.rb +66 -0
- data/lib/opensearch/api/actions/ingest/geo_ip_stats.rb +51 -0
- data/lib/opensearch/api/actions/ingest/get_pipeline.rb +68 -0
- data/lib/opensearch/api/actions/ingest/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/ingest/processor_grok.rb +51 -0
- data/lib/opensearch/api/actions/ingest/put_pipeline.rb +68 -0
- data/lib/opensearch/api/actions/ingest/simulate.rb +69 -0
- data/lib/opensearch/api/actions/mget.rb +91 -0
- data/lib/opensearch/api/actions/msearch.rb +112 -0
- data/lib/opensearch/api/actions/msearch_template.rb +96 -0
- data/lib/opensearch/api/actions/mtermvectors.rb +107 -0
- data/lib/opensearch/api/actions/nodes/hot_threads.rb +81 -0
- data/lib/opensearch/api/actions/nodes/info.rb +75 -0
- data/lib/opensearch/api/actions/nodes/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/nodes/reload_secure_settings.rb +67 -0
- data/lib/opensearch/api/actions/nodes/shutdown.rb +65 -0
- data/lib/opensearch/api/actions/nodes/stats.rb +96 -0
- data/lib/opensearch/api/actions/nodes/usage.rb +73 -0
- data/lib/opensearch/api/actions/open_point_in_time.rb +72 -0
- data/lib/opensearch/api/actions/params_registry.rb +67 -0
- data/lib/opensearch/api/actions/ping.rb +57 -0
- data/lib/opensearch/api/actions/put_script.rb +74 -0
- data/lib/opensearch/api/actions/rank_eval.rb +77 -0
- data/lib/opensearch/api/actions/reindex.rb +76 -0
- data/lib/opensearch/api/actions/reindex_rethrottle.rb +62 -0
- data/lib/opensearch/api/actions/remote/info.rb +45 -0
- data/lib/opensearch/api/actions/render_search_template.rb +62 -0
- data/lib/opensearch/api/actions/scripts_painless_execute.rb +59 -0
- data/lib/opensearch/api/actions/scroll.rb +78 -0
- data/lib/opensearch/api/actions/search.rb +165 -0
- data/lib/opensearch/api/actions/search_shards.rb +74 -0
- data/lib/opensearch/api/actions/search_template.rb +101 -0
- data/lib/opensearch/api/actions/shutdown/delete_node.rb +60 -0
- data/lib/opensearch/api/actions/shutdown/get_node.rb +62 -0
- data/lib/opensearch/api/actions/shutdown/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/shutdown/put_node.rb +62 -0
- data/lib/opensearch/api/actions/snapshot/cleanup_repository.rb +66 -0
- data/lib/opensearch/api/actions/snapshot/clone.rb +74 -0
- data/lib/opensearch/api/actions/snapshot/create.rb +71 -0
- data/lib/opensearch/api/actions/snapshot/create_repository.rb +70 -0
- data/lib/opensearch/api/actions/snapshot/delete.rb +72 -0
- data/lib/opensearch/api/actions/snapshot/delete_repository.rb +70 -0
- data/lib/opensearch/api/actions/snapshot/get.rb +80 -0
- data/lib/opensearch/api/actions/snapshot/get_features.rb +59 -0
- data/lib/opensearch/api/actions/snapshot/get_repository.rb +72 -0
- data/lib/opensearch/api/actions/snapshot/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/snapshot/repository_analyze.rb +84 -0
- data/lib/opensearch/api/actions/snapshot/restore.rb +71 -0
- data/lib/opensearch/api/actions/snapshot/status.rb +77 -0
- data/lib/opensearch/api/actions/snapshot/verify_repository.rb +66 -0
- data/lib/opensearch/api/actions/tasks/cancel.rb +76 -0
- data/lib/opensearch/api/actions/tasks/get.rb +68 -0
- data/lib/opensearch/api/actions/tasks/list.rb +75 -0
- data/lib/opensearch/api/actions/tasks/params_registry.rb +69 -0
- data/lib/opensearch/api/actions/termvectors.rb +115 -0
- data/lib/opensearch/api/actions/update.rb +106 -0
- data/lib/opensearch/api/actions/update_by_query.rb +144 -0
- data/lib/opensearch/api/actions/update_by_query_rethrottle.rb +62 -0
- data/lib/opensearch/api/namespace/cat.rb +45 -0
- data/lib/opensearch/api/namespace/cluster.rb +46 -0
- data/lib/opensearch/api/namespace/common.rb +53 -0
- data/lib/opensearch/api/namespace/dangling_indices.rb +44 -0
- data/lib/opensearch/api/namespace/features.rb +45 -0
- data/lib/opensearch/api/namespace/indices.rb +46 -0
- data/lib/opensearch/api/namespace/ingest.rb +46 -0
- data/lib/opensearch/api/namespace/nodes.rb +46 -0
- data/lib/opensearch/api/namespace/remote.rb +46 -0
- data/lib/opensearch/api/namespace/security.rb +45 -0
- data/lib/opensearch/api/namespace/shutdown.rb +46 -0
- data/lib/opensearch/api/namespace/snapshot.rb +46 -0
- data/lib/opensearch/api/namespace/tasks.rb +46 -0
- data/lib/opensearch/api/utils.rb +297 -0
- data/lib/opensearch/api/version.rb +31 -0
- data/lib/opensearch/api.rb +101 -0
- data/lib/opensearch-api.rb +27 -0
- data/opensearch-api.gemspec +92 -0
- data/spec/opensearch/api/actions/abort_benchmark_spec.rb +43 -0
- data/spec/opensearch/api/actions/benchmark_spec.rb +43 -0
- data/spec/opensearch/api/actions/bulk_spec.rb +148 -0
- data/spec/opensearch/api/actions/cat/aliases_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/allocation_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/count_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/fielddata_spec.rb +61 -0
- data/spec/opensearch/api/actions/cat/health_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/help_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/indices_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/master_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/nodeattrs_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/nodes_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/pending_tasks_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/plugins_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/recovery_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/repositories_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/segments_spec.rb +58 -0
- data/spec/opensearch/api/actions/cat/shards_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/snapshot_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/tasks_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/templates_spec.rb +44 -0
- data/spec/opensearch/api/actions/cat/thread_pool_spec.rb +44 -0
- data/spec/opensearch/api/actions/clear_scroll_spec.rb +61 -0
- data/spec/opensearch/api/actions/close_point_in_time_spec.rb +43 -0
- data/spec/opensearch/api/actions/cluster/allocation_explain_spec.rb +44 -0
- data/spec/opensearch/api/actions/cluster/get_settings_spec.rb +44 -0
- data/spec/opensearch/api/actions/cluster/health_spec.rb +78 -0
- data/spec/opensearch/api/actions/cluster/pending_tasks_spec.rb +44 -0
- data/spec/opensearch/api/actions/cluster/put_settings_spec.rb +44 -0
- data/spec/opensearch/api/actions/cluster/remote_info_spec.rb +44 -0
- data/spec/opensearch/api/actions/cluster/reroute_spec.rb +61 -0
- data/spec/opensearch/api/actions/cluster/state_spec.rb +61 -0
- data/spec/opensearch/api/actions/cluster/stats_spec.rb +44 -0
- data/spec/opensearch/api/actions/count_spec.rb +78 -0
- data/spec/opensearch/api/actions/create_document_spec.rb +95 -0
- data/spec/opensearch/api/actions/dangling_indices/delete_dangling_indices_spec.rb +57 -0
- data/spec/opensearch/api/actions/dangling_indices/import_dangling_indices_spec.rb +57 -0
- data/spec/opensearch/api/actions/dangling_indices/list_dangling_indices_spec.rb +45 -0
- data/spec/opensearch/api/actions/delete_by_query_spec.rb +89 -0
- data/spec/opensearch/api/actions/delete_document_spec.rb +121 -0
- data/spec/opensearch/api/actions/delete_script_spec.rb +46 -0
- data/spec/opensearch/api/actions/exists_document_spec.rb +136 -0
- data/spec/opensearch/api/actions/explain_document_spec.rb +108 -0
- data/spec/opensearch/api/actions/features/get_features_spec.rb +43 -0
- data/spec/opensearch/api/actions/features/reset_features_spec.rb +43 -0
- data/spec/opensearch/api/actions/field_caps_spec.rb +44 -0
- data/spec/opensearch/api/actions/get_document_source_spec.rb +110 -0
- data/spec/opensearch/api/actions/get_document_spec.rb +133 -0
- data/spec/opensearch/api/actions/get_script_spec.rb +59 -0
- data/spec/opensearch/api/actions/hashie_spec.rb +98 -0
- data/spec/opensearch/api/actions/index_document_spec.rb +146 -0
- data/spec/opensearch/api/actions/indices/add_block_spec.rb +72 -0
- data/spec/opensearch/api/actions/indices/analyze_spec.rb +77 -0
- data/spec/opensearch/api/actions/indices/clear_cache_spec.rb +89 -0
- data/spec/opensearch/api/actions/indices/clone_spec.rb +131 -0
- data/spec/opensearch/api/actions/indices/close_spec.rb +94 -0
- data/spec/opensearch/api/actions/indices/create_spec.rb +94 -0
- data/spec/opensearch/api/actions/indices/delete_alias_spec.rb +92 -0
- data/spec/opensearch/api/actions/indices/delete_spec.rb +117 -0
- data/spec/opensearch/api/actions/indices/delete_template_spec.rb +95 -0
- data/spec/opensearch/api/actions/indices/disk_usage_spec.rb +57 -0
- data/spec/opensearch/api/actions/indices/exists_alias_spec.rb +117 -0
- data/spec/opensearch/api/actions/indices/exists_spec.rb +117 -0
- data/spec/opensearch/api/actions/indices/exists_template_spec.rb +102 -0
- data/spec/opensearch/api/actions/indices/exists_type_spec.rb +117 -0
- data/spec/opensearch/api/actions/indices/field_usage_stats_spec.rb +55 -0
- data/spec/opensearch/api/actions/indices/flush_spec.rb +100 -0
- data/spec/opensearch/api/actions/indices/flush_synced_spec.rb +99 -0
- data/spec/opensearch/api/actions/indices/forcemerge_spec.rb +44 -0
- data/spec/opensearch/api/actions/indices/get_alias_spec.rb +70 -0
- data/spec/opensearch/api/actions/indices/get_field_mapping_spec.rb +70 -0
- data/spec/opensearch/api/actions/indices/get_mapping_spec.rb +92 -0
- data/spec/opensearch/api/actions/indices/get_settings_spec.rb +81 -0
- data/spec/opensearch/api/actions/indices/get_spec.rb +63 -0
- data/spec/opensearch/api/actions/indices/open_spec.rb +74 -0
- data/spec/opensearch/api/actions/indices/put_alias_spec.rb +98 -0
- data/spec/opensearch/api/actions/indices/put_mapping_spec.rb +111 -0
- data/spec/opensearch/api/actions/indices/put_settings_spec.rb +117 -0
- data/spec/opensearch/api/actions/indices/put_template_spec.rb +116 -0
- data/spec/opensearch/api/actions/indices/recovery_spec.rb +44 -0
- data/spec/opensearch/api/actions/indices/refresh_spec.rb +100 -0
- data/spec/opensearch/api/actions/indices/rollover_spec.rb +67 -0
- data/spec/opensearch/api/actions/indices/segments_spec.rb +100 -0
- data/spec/opensearch/api/actions/indices/shard_stores_spec.rb +44 -0
- data/spec/opensearch/api/actions/indices/shrink_spec.rb +51 -0
- data/spec/opensearch/api/actions/indices/split_spec.rb +44 -0
- data/spec/opensearch/api/actions/indices/stats_spec.rb +133 -0
- data/spec/opensearch/api/actions/indices/update_aliases_spec.rb +76 -0
- data/spec/opensearch/api/actions/indices/upgrade_spec.rb +44 -0
- data/spec/opensearch/api/actions/indices/validate_query_spec.rb +131 -0
- data/spec/opensearch/api/actions/info_spec.rb +44 -0
- data/spec/opensearch/api/actions/ingest/delete_pipeline_spec.rb +69 -0
- data/spec/opensearch/api/actions/ingest/geo_ip_stats_spec.rb +43 -0
- data/spec/opensearch/api/actions/ingest/get_pipeline_spec.rb +59 -0
- data/spec/opensearch/api/actions/ingest/put_pipeline_spec.rb +69 -0
- data/spec/opensearch/api/actions/ingest/simulate_spec.rb +58 -0
- data/spec/opensearch/api/actions/json_builders_spec.rb +93 -0
- data/spec/opensearch/api/actions/mget_spec.rb +111 -0
- data/spec/opensearch/api/actions/msearch_spec.rb +160 -0
- data/spec/opensearch/api/actions/msearch_template_spec.rb +102 -0
- data/spec/opensearch/api/actions/mtermvectors_spec.rb +55 -0
- data/spec/opensearch/api/actions/nodes/hot_threads_spec.rb +70 -0
- data/spec/opensearch/api/actions/nodes/info_spec.rb +111 -0
- data/spec/opensearch/api/actions/nodes/reload_secure_settings_spec.rb +93 -0
- data/spec/opensearch/api/actions/nodes/shutdown_spec.rb +85 -0
- data/spec/opensearch/api/actions/nodes/stats_spec.rb +85 -0
- data/spec/opensearch/api/actions/open_point_in_time_spec.rb +53 -0
- data/spec/opensearch/api/actions/ping_spec.rb +85 -0
- data/spec/opensearch/api/actions/put_script_spec.rb +65 -0
- data/spec/opensearch/api/actions/reindex_spec.rb +44 -0
- data/spec/opensearch/api/actions/remote/info_spec.rb +44 -0
- data/spec/opensearch/api/actions/render_search_template_spec.rb +61 -0
- data/spec/opensearch/api/actions/scroll_spec.rb +61 -0
- data/spec/opensearch/api/actions/search_shards_spec.rb +44 -0
- data/spec/opensearch/api/actions/search_spec.rb +143 -0
- data/spec/opensearch/api/actions/search_template_spec.rb +43 -0
- data/spec/opensearch/api/actions/shutdown/delete_node_spec.rb +53 -0
- data/spec/opensearch/api/actions/shutdown/get_node_spec.rb +55 -0
- data/spec/opensearch/api/actions/shutdown/put_node_spec.rb +59 -0
- data/spec/opensearch/api/actions/snapshot/clone_spec.rb +76 -0
- data/spec/opensearch/api/actions/snapshot/create_repository_spec.rb +60 -0
- data/spec/opensearch/api/actions/snapshot/create_spec.rb +60 -0
- data/spec/opensearch/api/actions/snapshot/delete_repository_spec.rb +59 -0
- data/spec/opensearch/api/actions/snapshot/delete_spec.rb +60 -0
- data/spec/opensearch/api/actions/snapshot/get_features_spec.rb +47 -0
- data/spec/opensearch/api/actions/snapshot/get_repository_spec.rb +44 -0
- data/spec/opensearch/api/actions/snapshot/get_spec.rb +60 -0
- data/spec/opensearch/api/actions/snapshot/repository_analize_spec.rb +57 -0
- data/spec/opensearch/api/actions/snapshot/restore_spec.rb +60 -0
- data/spec/opensearch/api/actions/snapshot/status_spec.rb +59 -0
- data/spec/opensearch/api/actions/snapshot/verify_repository_spec.rb +44 -0
- data/spec/opensearch/api/actions/tasks/cancel_spec.rb +59 -0
- data/spec/opensearch/api/actions/tasks/get_spec.rb +44 -0
- data/spec/opensearch/api/actions/tasks/list_spec.rb +48 -0
- data/spec/opensearch/api/actions/termvectors_spec.rb +75 -0
- data/spec/opensearch/api/actions/update_by_query_spec.rb +44 -0
- data/spec/opensearch/api/actions/update_document_spec.rb +131 -0
- data/spec/opensearch/api/api_spec.rb +52 -0
- data/spec/opensearch/api/client_spec.rb +55 -0
- data/spec/opensearch/api/rest_api_yaml_spec.rb +169 -0
- data/spec/opensearch/api/utils_spec.rb +439 -0
- data/spec/rest_yaml_tests_helper.rb +89 -0
- data/spec/skipped_tests.yml +29 -0
- data/spec/spec_helper.rb +84 -0
- data.tar.gz.sig +0 -0
- metadata +860 -0
- metadata.gz.sig +0 -0
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
module OpenSearch
|
|
28
|
+
module API
|
|
29
|
+
|
|
30
|
+
# Generic utility methods
|
|
31
|
+
#
|
|
32
|
+
module Utils
|
|
33
|
+
|
|
34
|
+
# URL-escape a string
|
|
35
|
+
#
|
|
36
|
+
# @example
|
|
37
|
+
# __escape('foo/bar') # => 'foo%2Fbar'
|
|
38
|
+
# __escape('bar^bam') # => 'bar%5Ebam'
|
|
39
|
+
#
|
|
40
|
+
# @api private
|
|
41
|
+
def __escape(string)
|
|
42
|
+
return string if string == '*'
|
|
43
|
+
defined?(EscapeUtils) ? EscapeUtils.escape_url(string.to_s) : CGI.escape(string.to_s)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Create a "list" of values from arguments, ignoring nil values and encoding special characters.
|
|
47
|
+
#
|
|
48
|
+
# @example Create a list from array
|
|
49
|
+
# __listify(['A','B']) # => 'A,B'
|
|
50
|
+
#
|
|
51
|
+
# @example Create a list from arguments
|
|
52
|
+
# __listify('A','B') # => 'A,B'
|
|
53
|
+
#
|
|
54
|
+
# @example Escape values
|
|
55
|
+
# __listify('foo','bar^bam') # => 'foo,bar%5Ebam'
|
|
56
|
+
#
|
|
57
|
+
# @example Do not escape the values
|
|
58
|
+
# __listify('foo','bar^bam', escape: false) # => 'foo,bar^bam'
|
|
59
|
+
#
|
|
60
|
+
# @api private
|
|
61
|
+
def __listify(*list)
|
|
62
|
+
options = list.last.is_a?(Hash) ? list.pop : {}
|
|
63
|
+
|
|
64
|
+
escape = options[:escape]
|
|
65
|
+
Array(list).
|
|
66
|
+
flat_map { |e| e.respond_to?(:split) ? e.split(',') : e }.
|
|
67
|
+
flatten.
|
|
68
|
+
compact.
|
|
69
|
+
map { |e| escape == false ? e : __escape(e) }.
|
|
70
|
+
join(',')
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# Create a path (URL part) from arguments, ignoring nil values and empty strings.
|
|
74
|
+
#
|
|
75
|
+
# @example Create a path from array
|
|
76
|
+
# __pathify(['foo', '', nil, 'bar']) # => 'foo/bar'
|
|
77
|
+
#
|
|
78
|
+
# @example Create a path from arguments
|
|
79
|
+
# __pathify('foo', '', nil, 'bar') # => 'foo/bar'
|
|
80
|
+
#
|
|
81
|
+
# # @example Encode special characters
|
|
82
|
+
# __pathify(['foo', 'bar^bam']) # => 'foo/bar%5Ebam'
|
|
83
|
+
#
|
|
84
|
+
# @api private
|
|
85
|
+
def __pathify(*segments)
|
|
86
|
+
Array(segments).flatten.
|
|
87
|
+
compact.
|
|
88
|
+
reject { |s| s.to_s.strip.empty? }.
|
|
89
|
+
join('/').
|
|
90
|
+
squeeze('/')
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Convert an array of payloads into OpenSearch `header\ndata` format
|
|
94
|
+
#
|
|
95
|
+
# Supports various different formats of the payload: Array of Strings, Header/Data pairs,
|
|
96
|
+
# or the conveniency "combined" format where data is passed along with the header
|
|
97
|
+
# in a single item.
|
|
98
|
+
#
|
|
99
|
+
# OpenSearch::API::Utils.__bulkify [
|
|
100
|
+
# { :index => { :_index => 'myindexA', :_type => 'mytype', :_id => '1', :data => { :title => 'Test' } } },
|
|
101
|
+
# { :update => { :_index => 'myindexB', :_type => 'mytype', :_id => '2', :data => { :doc => { :title => 'Update' } } } }
|
|
102
|
+
# ]
|
|
103
|
+
#
|
|
104
|
+
# # => {"index":{"_index":"myindexA","_type":"mytype","_id":"1"}}
|
|
105
|
+
# # => {"title":"Test"}
|
|
106
|
+
# # => {"update":{"_index":"myindexB","_type":"mytype","_id":"2"}}
|
|
107
|
+
# # => {"doc":{"title":"Update"}}
|
|
108
|
+
#
|
|
109
|
+
def __bulkify(payload)
|
|
110
|
+
operations = %w[index create delete update]
|
|
111
|
+
|
|
112
|
+
case
|
|
113
|
+
|
|
114
|
+
# Hashes with `:data`
|
|
115
|
+
when payload.any? { |d| d.is_a?(Hash) && d.values.first.is_a?(Hash) && operations.include?(d.keys.first.to_s) && (d.values.first[:data] || d.values.first['data']) }
|
|
116
|
+
payload = payload.
|
|
117
|
+
inject([]) do |sum, item|
|
|
118
|
+
operation, meta = item.to_a.first
|
|
119
|
+
meta = meta.clone
|
|
120
|
+
data = meta.delete(:data) || meta.delete('data')
|
|
121
|
+
|
|
122
|
+
sum << { operation => meta }
|
|
123
|
+
sum << data if data
|
|
124
|
+
sum
|
|
125
|
+
end.
|
|
126
|
+
map { |item| OpenSearch::API.serializer.dump(item) }
|
|
127
|
+
payload << '' unless payload.empty?
|
|
128
|
+
|
|
129
|
+
# Array of strings
|
|
130
|
+
when payload.all? { |d| d.is_a? String }
|
|
131
|
+
payload << ''
|
|
132
|
+
|
|
133
|
+
# Header/Data pairs
|
|
134
|
+
else
|
|
135
|
+
payload = payload.map { |item| OpenSearch::API.serializer.dump(item) }
|
|
136
|
+
payload << ''
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
payload = payload.join("\n")
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# Validates the argument Hash against common and valid API parameters
|
|
143
|
+
#
|
|
144
|
+
# @param arguments [Hash] Hash of arguments to verify and extract, **with symbolized keys**
|
|
145
|
+
# @param valid_params [Array<Symbol>] An array of symbols with valid keys
|
|
146
|
+
#
|
|
147
|
+
# @return [Hash] Return whitelisted Hash
|
|
148
|
+
# @raise [ArgumentError] If the arguments Hash contains invalid keys
|
|
149
|
+
#
|
|
150
|
+
# @example Extract parameters
|
|
151
|
+
# __validate_and_extract_params( { :foo => 'qux' }, [:foo, :bar] )
|
|
152
|
+
# # => { :foo => 'qux' }
|
|
153
|
+
#
|
|
154
|
+
# @example Raise an exception for invalid parameters
|
|
155
|
+
# __validate_and_extract_params( { :foo => 'qux', :bam => 'mux' }, [:foo, :bar] )
|
|
156
|
+
# # ArgumentError: "URL parameter 'bam' is not supported"
|
|
157
|
+
#
|
|
158
|
+
# @example Skip validating parameters
|
|
159
|
+
# __validate_and_extract_params( { :foo => 'q', :bam => 'm' }, [:foo, :bar], { skip_parameter_validation: true } )
|
|
160
|
+
# # => { :foo => "q", :bam => "m" }
|
|
161
|
+
#
|
|
162
|
+
# @example Skip validating parameters when the module setting is set
|
|
163
|
+
# OpenSearch::API.settings[:skip_parameter_validation] = true
|
|
164
|
+
# __validate_and_extract_params( { :foo => 'q', :bam => 'm' }, [:foo, :bar] )
|
|
165
|
+
# # => { :foo => "q", :bam => "m" }
|
|
166
|
+
#
|
|
167
|
+
# @api private
|
|
168
|
+
#
|
|
169
|
+
def __validate_and_extract_params(arguments, params=[], options={})
|
|
170
|
+
if options[:skip_parameter_validation] || OpenSearch::API.settings[:skip_parameter_validation]
|
|
171
|
+
arguments
|
|
172
|
+
else
|
|
173
|
+
__validate_params(arguments, params)
|
|
174
|
+
__extract_params(arguments, params, options.merge(:escape => false))
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
def __validate_params(arguments, valid_params=[])
|
|
179
|
+
arguments.each do |k,v|
|
|
180
|
+
raise ArgumentError, "URL parameter '#{k}' is not supported" \
|
|
181
|
+
unless COMMON_PARAMS.include?(k) || COMMON_QUERY_PARAMS.include?(k) || valid_params.include?(k)
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
def __extract_params(arguments, params=[], options={})
|
|
186
|
+
result = arguments.select { |k,v| COMMON_QUERY_PARAMS.include?(k) || params.include?(k) }
|
|
187
|
+
result = Hash[result] unless result.is_a?(Hash) # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
|
|
188
|
+
result = Hash[result.map { |k,v| v.is_a?(Array) ? [k, __listify(v, options)] : [k,v] }] # Listify Arrays
|
|
189
|
+
result
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
# Extracts the valid parts of the URL from the arguments
|
|
193
|
+
#
|
|
194
|
+
# @note Mutates the `arguments` argument, to prevent failures in `__validate_and_extract_params`.
|
|
195
|
+
#
|
|
196
|
+
# @param arguments [Hash] Hash of arguments to verify and extract, **with symbolized keys**
|
|
197
|
+
# @param valid_parts [Array<Symbol>] An array of symbol with valid keys
|
|
198
|
+
#
|
|
199
|
+
# @return [Array<String>] Valid parts of the URL as an array of strings
|
|
200
|
+
#
|
|
201
|
+
# @example Extract parts
|
|
202
|
+
# __extract_parts { :foo => true }, [:foo, :bar]
|
|
203
|
+
# # => [:foo]
|
|
204
|
+
#
|
|
205
|
+
#
|
|
206
|
+
# @api private
|
|
207
|
+
#
|
|
208
|
+
def __extract_parts(arguments, valid_parts=[])
|
|
209
|
+
parts = Hash[arguments.select { |k,v| valid_parts.include?(k) }]
|
|
210
|
+
parts = parts.reduce([]) { |sum, item| k, v = item; v.is_a?(TrueClass) ? sum << k.to_s : sum << v }
|
|
211
|
+
|
|
212
|
+
arguments.delete_if { |k,v| valid_parts.include? k }
|
|
213
|
+
return parts
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
# Calls the given block, rescuing from `StandardError`.
|
|
217
|
+
#
|
|
218
|
+
# Primary use case is the `:ignore` parameter for API calls.
|
|
219
|
+
#
|
|
220
|
+
# Returns `false` if exception contains NotFound in its class name or message,
|
|
221
|
+
# else re-raises the exception.
|
|
222
|
+
#
|
|
223
|
+
# @yield [block] A block of code to be executed with exception handling.
|
|
224
|
+
#
|
|
225
|
+
# @api private
|
|
226
|
+
#
|
|
227
|
+
def __rescue_from_not_found(&block)
|
|
228
|
+
yield
|
|
229
|
+
rescue StandardError => e
|
|
230
|
+
if e.class.to_s =~ /NotFound/ || e.message =~ /Not\s*Found/i
|
|
231
|
+
false
|
|
232
|
+
else
|
|
233
|
+
raise e
|
|
234
|
+
end
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
def __report_unsupported_parameters(arguments, params=[])
|
|
238
|
+
messages = []
|
|
239
|
+
unsupported_params = params.select {|d| d.is_a?(Hash) ? arguments.include?(d.keys.first) : arguments.include?(d) }
|
|
240
|
+
|
|
241
|
+
unsupported_params.each do |param|
|
|
242
|
+
name = case param
|
|
243
|
+
when Symbol
|
|
244
|
+
param
|
|
245
|
+
when Hash
|
|
246
|
+
param.keys.first
|
|
247
|
+
else
|
|
248
|
+
raise ArgumentError, "The param must be a Symbol or a Hash"
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
explanation = if param.is_a?(Hash)
|
|
252
|
+
". #{param.values.first[:explanation]}."
|
|
253
|
+
else
|
|
254
|
+
". This parameter is not supported in the version you're using: #{OpenSearch::API::VERSION}, and will be removed in the next release."
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
message = "[!] You are using unsupported parameter [:#{name}]"
|
|
258
|
+
|
|
259
|
+
if source = caller && caller.last
|
|
260
|
+
message += " in `#{source}`"
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
message += explanation
|
|
264
|
+
|
|
265
|
+
messages << message
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
unless messages.empty?
|
|
269
|
+
messages << "Suppress this warning by the `-WO` command line flag."
|
|
270
|
+
|
|
271
|
+
if STDERR.tty?
|
|
272
|
+
Kernel.warn messages.map { |m| "\e[31;1m#{m}\e[0m" }.join("\n")
|
|
273
|
+
else
|
|
274
|
+
Kernel.warn messages.join("\n")
|
|
275
|
+
end
|
|
276
|
+
end
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
def __report_unsupported_method(name)
|
|
280
|
+
message = "[!] You are using unsupported method [#{name}]"
|
|
281
|
+
if source = caller && caller.last
|
|
282
|
+
message += " in `#{source}`"
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
message += ". This method is not supported in the version you're using: #{OpenSearch::API::VERSION}, and will be removed in the next release. Suppress this warning by the `-WO` command line flag."
|
|
286
|
+
|
|
287
|
+
if STDERR.tty?
|
|
288
|
+
Kernel.warn "\e[31;1m#{message}\e[0m"
|
|
289
|
+
else
|
|
290
|
+
Kernel.warn message
|
|
291
|
+
end
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
extend self
|
|
295
|
+
end
|
|
296
|
+
end
|
|
297
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
module OpenSearch
|
|
28
|
+
module API
|
|
29
|
+
VERSION = '1.0.0'.freeze
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require "cgi"
|
|
28
|
+
require "multi_json"
|
|
29
|
+
|
|
30
|
+
require "opensearch/api/version"
|
|
31
|
+
require "opensearch/api/namespace/common"
|
|
32
|
+
require "opensearch/api/utils"
|
|
33
|
+
require "opensearch/api/actions/params_registry"
|
|
34
|
+
|
|
35
|
+
Dir[ File.expand_path('../api/actions/**/params_registry.rb', __FILE__) ].each { |f| require f }
|
|
36
|
+
Dir[ File.expand_path('../api/actions/**/*.rb', __FILE__) ].each { |f| require f }
|
|
37
|
+
Dir[ File.expand_path('../api/namespace/**/*.rb', __FILE__) ].each { |f| require f }
|
|
38
|
+
|
|
39
|
+
module OpenSearch
|
|
40
|
+
module API
|
|
41
|
+
DEFAULT_SERIALIZER = MultiJson
|
|
42
|
+
|
|
43
|
+
COMMON_PARAMS = [
|
|
44
|
+
:ignore, # Client specific parameters
|
|
45
|
+
:index, :type, :id, # :index/:type/:id
|
|
46
|
+
:body, # Request body
|
|
47
|
+
:node_id, # Cluster
|
|
48
|
+
:name, # Alias, template, settings, warmer, ...
|
|
49
|
+
:field # Get field mapping
|
|
50
|
+
]
|
|
51
|
+
|
|
52
|
+
COMMON_QUERY_PARAMS = [
|
|
53
|
+
:ignore, # Client specific parameters
|
|
54
|
+
:format, # Search, Cat, ...
|
|
55
|
+
:pretty, # Pretty-print the response
|
|
56
|
+
:human, # Return numeric values in human readable format
|
|
57
|
+
:filter_path, # Filter the JSON response
|
|
58
|
+
:opaque_id # Use X-Opaque-Id
|
|
59
|
+
]
|
|
60
|
+
|
|
61
|
+
HTTP_GET = 'GET'.freeze
|
|
62
|
+
HTTP_HEAD = 'HEAD'.freeze
|
|
63
|
+
HTTP_POST = 'POST'.freeze
|
|
64
|
+
HTTP_PUT = 'PUT'.freeze
|
|
65
|
+
HTTP_DELETE = 'DELETE'.freeze
|
|
66
|
+
UNDERSCORE_SEARCH = '_search'.freeze
|
|
67
|
+
UNDERSCORE_ALL = '_all'.freeze
|
|
68
|
+
DEFAULT_DOC = '_doc'.freeze
|
|
69
|
+
|
|
70
|
+
# Auto-include all namespaces in the receiver
|
|
71
|
+
#
|
|
72
|
+
def self.included(base)
|
|
73
|
+
base.send :include,
|
|
74
|
+
OpenSearch::API::Common,
|
|
75
|
+
OpenSearch::API::Actions,
|
|
76
|
+
OpenSearch::API::Cluster,
|
|
77
|
+
OpenSearch::API::Nodes,
|
|
78
|
+
OpenSearch::API::Indices,
|
|
79
|
+
OpenSearch::API::Ingest,
|
|
80
|
+
OpenSearch::API::Snapshot,
|
|
81
|
+
OpenSearch::API::Tasks,
|
|
82
|
+
OpenSearch::API::Cat,
|
|
83
|
+
OpenSearch::API::Remote,
|
|
84
|
+
OpenSearch::API::DanglingIndices,
|
|
85
|
+
OpenSearch::API::Features,
|
|
86
|
+
OpenSearch::API::Shutdown
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# The serializer class
|
|
90
|
+
#
|
|
91
|
+
def self.serializer
|
|
92
|
+
settings[:serializer] || DEFAULT_SERIALIZER
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Access the module settings
|
|
96
|
+
#
|
|
97
|
+
def self.settings
|
|
98
|
+
@settings ||= {}
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'opensearch/api'
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
# coding: utf-8
|
|
28
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
29
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
30
|
+
require 'opensearch/api/version'
|
|
31
|
+
|
|
32
|
+
signing_key_path = File.expand_path("../gem-private_key.pem")
|
|
33
|
+
|
|
34
|
+
Gem::Specification.new do |s|
|
|
35
|
+
s.name = 'opensearch-api'
|
|
36
|
+
s.version = OpenSearch::API::VERSION
|
|
37
|
+
s.authors = ['Jayesh Hathila', 'Vamshi Vijay Nakkirtha', 'Vijayan Balasubramanian' , 'Yuvraj Jaiswal']
|
|
38
|
+
s.email = ['jayehh@amazon.com', 'vamshin@amazon.com', 'balasvij@amazon.com', 'jaiyuvra@amazon.com']
|
|
39
|
+
s.summary = 'Ruby API for OpenSearch.'
|
|
40
|
+
s.homepage = 'https://opensearch.org/docs/latest/'
|
|
41
|
+
s.license = 'Apache-2.0'
|
|
42
|
+
s.metadata = {
|
|
43
|
+
'homepage_uri' => 'https://opensearch.org/docs/latest/',
|
|
44
|
+
'source_code_uri' => 'https://github.com/opensearch-project/opensearch-ruby/tree/main/opensearch-api',
|
|
45
|
+
'bug_tracker_uri' => 'https://github.com/opensearch-project/opensearch-ruby/issues'
|
|
46
|
+
}
|
|
47
|
+
s.files = `git ls-files`.split($/)
|
|
48
|
+
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
49
|
+
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
|
50
|
+
|
|
51
|
+
if $PROGRAM_NAME.end_with?("gem") && ARGV == ["build", __FILE__] && File.exist?(signing_key_path)
|
|
52
|
+
s.signing_key = signing_key_path
|
|
53
|
+
s.cert_chain = ['../certs/opensearch-rubygems.pem']
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
s.require_paths = ['lib']
|
|
57
|
+
|
|
58
|
+
s.extra_rdoc_files = [ 'README.md', 'LICENSE' ]
|
|
59
|
+
s.rdoc_options = [ '--charset=UTF-8' ]
|
|
60
|
+
|
|
61
|
+
s.required_ruby_version = '>= 2.4'
|
|
62
|
+
|
|
63
|
+
s.add_dependency 'multi_json'
|
|
64
|
+
|
|
65
|
+
s.add_development_dependency 'ansi'
|
|
66
|
+
s.add_development_dependency 'bundler'
|
|
67
|
+
s.add_development_dependency 'opensearch'
|
|
68
|
+
s.add_development_dependency 'opensearch-transport'
|
|
69
|
+
s.add_development_dependency 'minitest'
|
|
70
|
+
s.add_development_dependency 'minitest-reporters'
|
|
71
|
+
s.add_development_dependency 'mocha'
|
|
72
|
+
s.add_development_dependency 'pry'
|
|
73
|
+
s.add_development_dependency 'rake', '~> 13'
|
|
74
|
+
s.add_development_dependency 'shoulda-context'
|
|
75
|
+
s.add_development_dependency 'yard'
|
|
76
|
+
|
|
77
|
+
# Gems for testing integrations
|
|
78
|
+
s.add_development_dependency 'jsonify'
|
|
79
|
+
s.add_development_dependency 'hashie'
|
|
80
|
+
|
|
81
|
+
s.add_development_dependency 'cane'
|
|
82
|
+
s.add_development_dependency 'escape_utils' unless defined? JRUBY_VERSION
|
|
83
|
+
s.add_development_dependency 'jbuilder'
|
|
84
|
+
s.add_development_dependency 'require-prof' unless defined?(JRUBY_VERSION) || defined?(Rubinius)
|
|
85
|
+
s.add_development_dependency 'simplecov'
|
|
86
|
+
s.add_development_dependency 'test-unit', '~> 2'
|
|
87
|
+
s.add_development_dependency 'ruby-prof' unless defined?(JRUBY_VERSION) || defined?(Rubinius)
|
|
88
|
+
|
|
89
|
+
s.description = <<-DESC.gsub(/^ /, '')
|
|
90
|
+
Ruby API for OpenSearch. See the `opensearch` gem for full integration.
|
|
91
|
+
DESC
|
|
92
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'spec_helper'
|
|
28
|
+
|
|
29
|
+
describe 'client#abort_benchmark' do
|
|
30
|
+
|
|
31
|
+
let(:expected_args) do
|
|
32
|
+
[
|
|
33
|
+
'POST',
|
|
34
|
+
'_bench/abort/foo',
|
|
35
|
+
{},
|
|
36
|
+
nil
|
|
37
|
+
]
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it 'performs the request' do
|
|
41
|
+
expect(client_double.abort_benchmark(name: 'foo'))
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
#
|
|
3
|
+
# The OpenSearch Contributors require contributions made to
|
|
4
|
+
# this file be licensed under the Apache-2.0 license or a
|
|
5
|
+
# compatible open source license.
|
|
6
|
+
#
|
|
7
|
+
# Modifications Copyright OpenSearch Contributors. See
|
|
8
|
+
# GitHub history for details.
|
|
9
|
+
#
|
|
10
|
+
# Licensed to Elasticsearch B.V. under one or more contributor
|
|
11
|
+
# license agreements. See the NOTICE file distributed with
|
|
12
|
+
# this work for additional information regarding copyright
|
|
13
|
+
# ownership. Elasticsearch B.V. licenses this file to you under
|
|
14
|
+
# the Apache License, Version 2.0 (the "License"); you may
|
|
15
|
+
# not use this file except in compliance with the License.
|
|
16
|
+
# You may obtain a copy of the License at
|
|
17
|
+
#
|
|
18
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
#
|
|
20
|
+
# Unless required by applicable law or agreed to in writing,
|
|
21
|
+
# software distributed under the License is distributed on an
|
|
22
|
+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
23
|
+
# KIND, either express or implied. See the License for the
|
|
24
|
+
# specific language governing permissions and limitations
|
|
25
|
+
# under the License.
|
|
26
|
+
|
|
27
|
+
require 'spec_helper'
|
|
28
|
+
|
|
29
|
+
describe 'client#benchmark' do
|
|
30
|
+
|
|
31
|
+
let(:expected_args) do
|
|
32
|
+
[
|
|
33
|
+
'PUT',
|
|
34
|
+
'_bench',
|
|
35
|
+
{},
|
|
36
|
+
{ name: 'foo' }
|
|
37
|
+
]
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it 'performs the request' do
|
|
41
|
+
expect(client_double.benchmark(body: { name: 'foo' }))
|
|
42
|
+
end
|
|
43
|
+
end
|