elastic-enterprise-search 7.12.1 → 7.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (236) hide show
  1. checksums.yaml +4 -4
  2. data/.ci/functions/imports.sh +1 -0
  3. data/.ci/jobs/defaults.yml +4 -0
  4. data/.ci/jobs/elastic+enterprise-search-ruby+7.10.0.beta.1.yml +12 -0
  5. data/.ci/jobs/{elastic+enterprise-search-ruby+7.11.yml → elastic+enterprise-search-ruby+main.yml} +4 -4
  6. data/.ci/make.sh +162 -0
  7. data/.ci/run-repository.sh +2 -1
  8. data/.ci/test-matrix.yml +5 -3
  9. data/{spec/app-search/api_logs_spec.rb → .github/check_license_headers.rb} +13 -16
  10. data/.github/license-header.txt +16 -0
  11. data/.github/workflows/license.yml +13 -0
  12. data/.github/workflows/testing.yml +1 -1
  13. data/CONTRIBUTING.md +1 -1
  14. data/README.md +1 -1
  15. data/Rakefile +20 -0
  16. data/docs/guide/app-search-api.asciidoc +157 -1
  17. data/docs/guide/connecting.asciidoc +47 -1
  18. data/docs/guide/overview.asciidoc +3 -3
  19. data/docs/guide/release_notes/712.asciidoc +0 -10
  20. data/docs/guide/release_notes/713.asciidoc +21 -0
  21. data/docs/guide/release_notes/714.asciidoc +21 -0
  22. data/docs/guide/release_notes/715.asciidoc +36 -0
  23. data/docs/guide/release_notes/index.asciidoc +6 -0
  24. data/docs/guide/workplace-search-api.asciidoc +115 -2
  25. data/elastic-enterprise-search.gemspec +1 -1
  26. data/lib/elastic/app-search/api/add_meta_engine_source.rb +3 -2
  27. data/lib/elastic/app-search/api/api_key.rb +52 -0
  28. data/lib/elastic/app-search/api/api_logs.rb +14 -13
  29. data/lib/elastic/app-search/api/count_analytics.rb +7 -6
  30. data/lib/elastic/app-search/api/crawler_active_crawl_request.rb +51 -0
  31. data/lib/elastic/app-search/api/crawler_crawl_request.rb +54 -0
  32. data/lib/elastic/app-search/api/crawler_crawl_schedule.rb +51 -0
  33. data/lib/elastic/app-search/api/crawler_domain.rb +54 -0
  34. data/lib/elastic/app-search/api/crawler_domain_validation_result.rb +48 -0
  35. data/lib/elastic/app-search/api/crawler_metrics.rb +48 -0
  36. data/lib/elastic/app-search/api/crawler_overview.rb +51 -0
  37. data/lib/elastic/app-search/api/crawler_process_crawl.rb +54 -0
  38. data/lib/elastic/app-search/api/crawler_process_crawl_denied_urls.rb +54 -0
  39. data/lib/elastic/app-search/api/crawler_url_extraction_result.rb +52 -0
  40. data/lib/elastic/app-search/api/crawler_url_tracing_result.rb +52 -0
  41. data/lib/elastic/app-search/api/crawler_url_validation_result.rb +52 -0
  42. data/lib/elastic/app-search/api/crawler_user_agent.rb +48 -0
  43. data/lib/elastic/app-search/api/create_api_key.rb +57 -0
  44. data/lib/elastic/app-search/api/create_crawler_crawl_request.rb +51 -0
  45. data/lib/elastic/app-search/api/create_crawler_crawl_rule.rb +59 -0
  46. data/lib/elastic/app-search/api/create_crawler_domain.rb +55 -0
  47. data/lib/elastic/app-search/api/create_crawler_entry_point.rb +56 -0
  48. data/lib/elastic/app-search/api/create_crawler_process_crawl.rb +53 -0
  49. data/lib/elastic/app-search/api/create_crawler_sitemap.rb +56 -0
  50. data/lib/elastic/app-search/api/create_curation.rb +7 -6
  51. data/lib/elastic/app-search/api/create_engine.rb +9 -7
  52. data/lib/elastic/app-search/api/create_synonym_set.rb +7 -4
  53. data/lib/elastic/app-search/api/curation.rb +4 -3
  54. data/lib/elastic/app-search/api/delete_active_crawl_request.rb +51 -0
  55. data/lib/elastic/app-search/api/delete_api_key.rb +52 -0
  56. data/lib/elastic/app-search/api/delete_crawler_active_crawl_request.rb +51 -0
  57. data/lib/elastic/app-search/api/delete_crawler_crawl_rule.rb +57 -0
  58. data/lib/elastic/app-search/api/delete_crawler_crawl_schedule.rb +51 -0
  59. data/lib/elastic/app-search/api/delete_crawler_domain.rb +54 -0
  60. data/lib/elastic/app-search/api/delete_crawler_entry_point.rb +57 -0
  61. data/lib/elastic/app-search/api/delete_crawler_sitemap.rb +57 -0
  62. data/lib/elastic/app-search/api/delete_curation.rb +4 -3
  63. data/lib/elastic/app-search/api/delete_documents.rb +2 -1
  64. data/lib/elastic/app-search/api/delete_engine.rb +3 -2
  65. data/lib/elastic/app-search/api/delete_meta_engine_source.rb +3 -3
  66. data/lib/elastic/app-search/api/delete_synonym_set.rb +4 -3
  67. data/lib/elastic/app-search/api/denied_urls.rb +54 -0
  68. data/lib/elastic/app-search/api/documents.rb +3 -2
  69. data/lib/elastic/app-search/api/engine.rb +3 -2
  70. data/lib/elastic/app-search/api/index_documents.rb +3 -2
  71. data/lib/elastic/app-search/api/list_api_keys.rb +50 -0
  72. data/lib/elastic/app-search/api/list_crawler_crawl_requests.rb +52 -0
  73. data/lib/elastic/app-search/api/list_crawler_process_crawls.rb +51 -0
  74. data/lib/elastic/app-search/api/list_curations.rb +3 -2
  75. data/lib/elastic/app-search/api/list_documents.rb +3 -2
  76. data/lib/elastic/app-search/api/list_engines.rb +2 -1
  77. data/lib/elastic/app-search/api/list_synonym_sets.rb +3 -2
  78. data/lib/elastic/app-search/api/log_clickthrough.rb +8 -10
  79. data/lib/elastic/app-search/api/put_api_key.rb +59 -0
  80. data/lib/elastic/app-search/api/put_crawler_crawl_rule.rb +62 -0
  81. data/lib/elastic/app-search/api/put_crawler_crawl_schedule.rb +53 -0
  82. data/lib/elastic/app-search/api/put_crawler_domain.rb +58 -0
  83. data/lib/elastic/app-search/api/put_crawler_entry_point.rb +59 -0
  84. data/lib/elastic/app-search/api/put_crawler_sitemap.rb +59 -0
  85. data/lib/elastic/app-search/api/put_curation.rb +9 -8
  86. data/lib/elastic/app-search/api/put_documents.rb +3 -3
  87. data/lib/elastic/app-search/api/put_schema.rb +4 -4
  88. data/lib/elastic/app-search/api/put_search_settings.rb +6 -2
  89. data/lib/elastic/app-search/api/put_synonym_set.rb +8 -5
  90. data/lib/elastic/app-search/api/query_suggestion.rb +7 -7
  91. data/lib/elastic/app-search/api/reset_search_settings.rb +3 -2
  92. data/lib/elastic/app-search/api/schema.rb +3 -2
  93. data/lib/elastic/app-search/api/search.rb +14 -3
  94. data/lib/elastic/app-search/api/search_settings.rb +3 -2
  95. data/lib/elastic/app-search/api/synonym_set.rb +4 -3
  96. data/lib/elastic/app-search/api/top_clicks_analytics.rb +8 -8
  97. data/lib/elastic/app-search/api/top_queries_analytics.rb +7 -7
  98. data/lib/elastic/app-search/app_search.rb +0 -10
  99. data/lib/elastic/enterprise-search/api/health.rb +1 -0
  100. data/lib/elastic/enterprise-search/api/put_read_only.rb +3 -0
  101. data/lib/elastic/enterprise-search/api/read_only.rb +1 -0
  102. data/lib/elastic/enterprise-search/api/version.rb +1 -0
  103. data/lib/elastic/enterprise-search/client.rb +0 -16
  104. data/lib/elastic/enterprise-search/request.rb +14 -3
  105. data/lib/elastic/enterprise-search/version.rb +1 -1
  106. data/lib/elastic/enterprise_search.rb +11 -0
  107. data/lib/elastic/workplace-search/api/auto_query_refinement_details.rb +49 -0
  108. data/lib/elastic/workplace-search/api/command_sync_jobs.rb +53 -0
  109. data/lib/elastic/workplace-search/api/content_source.rb +49 -0
  110. data/lib/elastic/workplace-search/api/create_analytics_event.rb +8 -8
  111. data/lib/elastic/workplace-search/api/create_batch_synonym_sets.rb +50 -0
  112. data/lib/elastic/workplace-search/api/create_content_source.rb +55 -0
  113. data/lib/elastic/workplace-search/api/create_external_identity.rb +3 -1
  114. data/lib/elastic/workplace-search/api/current_user.rb +47 -0
  115. data/lib/elastic/workplace-search/api/delete_all_documents.rb +49 -0
  116. data/lib/elastic/workplace-search/api/delete_content_source.rb +49 -0
  117. data/lib/elastic/workplace-search/api/delete_documents.rb +1 -1
  118. data/lib/elastic/workplace-search/api/delete_documents_by_query.rb +50 -0
  119. data/lib/elastic/workplace-search/api/delete_synonym_set.rb +51 -0
  120. data/lib/elastic/workplace-search/api/document.rb +53 -0
  121. data/lib/elastic/workplace-search/api/list_content_sources.rb +48 -0
  122. data/lib/elastic/workplace-search/api/list_synonym_sets.rb +51 -0
  123. data/lib/elastic/workplace-search/api/put_content_source.rb +58 -0
  124. data/lib/elastic/workplace-search/api/put_content_source_icons.rb +53 -0
  125. data/lib/elastic/workplace-search/api/put_external_identity.rb +3 -1
  126. data/lib/elastic/workplace-search/api/put_synonym_set.rb +53 -0
  127. data/lib/elastic/workplace-search/api/put_triggers_blocklist.rb +47 -0
  128. data/lib/elastic/workplace-search/api/search.rb +4 -1
  129. data/lib/elastic/workplace-search/api/synonym_set.rb +51 -0
  130. data/lib/elastic/workplace-search/api/triggers_blocklist.rb +45 -0
  131. data/lib/elastic/workplace-search/workplace_search.rb +0 -10
  132. data/rake_tasks/unified_release_tasks.rake +46 -0
  133. data/spec/enterprise-search/client_spec.rb +0 -1
  134. data/spec/enterprise-search/request_spec.rb +26 -0
  135. data/spec/integration/app-search/api_key_spec.rb +110 -0
  136. data/spec/integration/app-search/api_logs_spec.rb +59 -0
  137. data/spec/integration/app-search/app_search_helper.rb +39 -0
  138. data/spec/integration/app-search/count_analytics_spec.rb +47 -0
  139. data/spec/integration/app-search/crawl_requests_spec.rb +86 -0
  140. data/spec/integration/app-search/crawler_crawl_rule_spec.rb +73 -0
  141. data/spec/integration/app-search/crawler_domain_spec.rb +82 -0
  142. data/spec/integration/app-search/crawler_entry_point_spec.rb +89 -0
  143. data/spec/integration/app-search/crawler_metrics_spec.rb +46 -0
  144. data/spec/integration/app-search/crawler_overview_spec.rb +45 -0
  145. data/spec/integration/app-search/crawler_process_crawl_denied_urls_spec.rb +50 -0
  146. data/spec/integration/app-search/crawler_process_crawl_spec.rb +66 -0
  147. data/spec/integration/app-search/crawler_scheduling_spec.rb +81 -0
  148. data/spec/integration/app-search/crawler_sitemap_spec.rb +72 -0
  149. data/spec/integration/app-search/crawler_urls_spec.rb +60 -0
  150. data/spec/{app-search/api_count_analytics_spec.rb → integration/app-search/crawler_user_agent_spec.rb} +6 -9
  151. data/spec/integration/app-search/curations_spec.rb +118 -0
  152. data/spec/integration/app-search/documents_spec.rb +123 -0
  153. data/spec/integration/app-search/engines_spec.rb +77 -0
  154. data/spec/{app-search/api_log_clickthrough_spec.rb → integration/app-search/log_clickthrough_spec.rb} +14 -7
  155. data/spec/integration/app-search/meta_engines_spec.rb +75 -0
  156. data/spec/integration/app-search/query_suggestion_spec.rb +50 -0
  157. data/spec/{app-search/api_schema_spec.rb → integration/app-search/schema_spec.rb} +21 -16
  158. data/spec/integration/app-search/search_and_multiple_search_spec.rb +67 -0
  159. data/spec/integration/app-search/search_settings_spec.rb +87 -0
  160. data/spec/integration/app-search/synonyms_spec.rb +79 -0
  161. data/spec/{app-search/api_top_clicks_analytics_spec.rb → integration/app-search/top_clicks_analytics_spec.rb} +20 -14
  162. data/spec/{app-search/api_top_queries_analytics_spec.rb → integration/app-search/top_queries_analytics_spec.rb} +16 -8
  163. data/spec/integration/enterprise_search_api_spec.rb +4 -0
  164. data/spec/integration/workplace-search/content_sources_spec.rb +106 -0
  165. data/spec/integration/workplace-search/documents_spec.rb +95 -0
  166. data/spec/{workplace-search → integration/workplace-search}/external_identities_spec.rb +37 -24
  167. data/spec/integration/workplace-search/icon.png +0 -0
  168. data/spec/integration/workplace-search/permissions_spec.rb +77 -0
  169. data/spec/integration/workplace-search/synonym_sets_spec.rb +92 -0
  170. data/spec/integration/workplace-search/triggers_spec.rb +43 -0
  171. data/spec/{app-search/api_query_suggestion_spec.rb → integration/workplace-search/users_spec.rb} +12 -15
  172. data/spec/integration/workplace-search/workplace_search_helper.rb +39 -0
  173. data/spec/webmock_requires.rb +16 -0
  174. data/spec/workplace-search/client_spec.rb +24 -2
  175. metadata +112 -83
  176. data/.ci/jobs/elastic+enterprise-search-ruby+master.yml +0 -12
  177. data/spec/app-search/api_curations_spec.rb +0 -97
  178. data/spec/app-search/api_documents_spec.rb +0 -102
  179. data/spec/app-search/api_engines_spec.rb +0 -67
  180. data/spec/app-search/api_meta_engines_spec.rb +0 -72
  181. data/spec/app-search/api_search_and_multi_search_spec.rb +0 -48
  182. data/spec/app-search/api_search_settings_spec.rb +0 -76
  183. data/spec/app-search/api_spec_helper.rb +0 -14
  184. data/spec/app-search/api_synonyms_spec.rb +0 -79
  185. data/spec/fixtures/vcr/app_search/add_meta_engine_source.yml +0 -109
  186. data/spec/fixtures/vcr/app_search/api_documents.yml +0 -56
  187. data/spec/fixtures/vcr/app_search/api_index_documents.yml +0 -57
  188. data/spec/fixtures/vcr/app_search/api_log_clickthrough.yml +0 -54
  189. data/spec/fixtures/vcr/app_search/api_logs.yml +0 -70
  190. data/spec/fixtures/vcr/app_search/api_put_schema.yml +0 -109
  191. data/spec/fixtures/vcr/app_search/api_put_search_settings.yml +0 -56
  192. data/spec/fixtures/vcr/app_search/api_query_suggestion.yml +0 -59
  193. data/spec/fixtures/vcr/app_search/api_reset_search_settings.yml +0 -56
  194. data/spec/fixtures/vcr/app_search/api_schema.yml +0 -56
  195. data/spec/fixtures/vcr/app_search/api_search_settings.yml +0 -56
  196. data/spec/fixtures/vcr/app_search/api_top_clicks_analytics.yml +0 -55
  197. data/spec/fixtures/vcr/app_search/api_top_clicks_analytics_query.yml +0 -55
  198. data/spec/fixtures/vcr/app_search/api_top_queries_analytics.yml +0 -55
  199. data/spec/fixtures/vcr/app_search/count_analytics.yml +0 -55
  200. data/spec/fixtures/vcr/app_search/create_and_update_document.yml +0 -107
  201. data/spec/fixtures/vcr/app_search/create_curation.yml +0 -113
  202. data/spec/fixtures/vcr/app_search/create_engine.yml +0 -55
  203. data/spec/fixtures/vcr/app_search/create_meta_engine.yml +0 -56
  204. data/spec/fixtures/vcr/app_search/create_synonym_set.yml +0 -56
  205. data/spec/fixtures/vcr/app_search/delete_curation.yml +0 -56
  206. data/spec/fixtures/vcr/app_search/delete_engine.yml +0 -55
  207. data/spec/fixtures/vcr/app_search/delete_meta_engine_source.yml +0 -56
  208. data/spec/fixtures/vcr/app_search/delete_synonym_set.yml +0 -56
  209. data/spec/fixtures/vcr/app_search/get_curation.yml +0 -56
  210. data/spec/fixtures/vcr/app_search/get_engine.yml +0 -55
  211. data/spec/fixtures/vcr/app_search/index_and_delete_document.yml +0 -107
  212. data/spec/fixtures/vcr/app_search/list_curations.yml +0 -56
  213. data/spec/fixtures/vcr/app_search/list_documents.yml +0 -57
  214. data/spec/fixtures/vcr/app_search/list_engines.yml +0 -55
  215. data/spec/fixtures/vcr/app_search/list_synonym_sets.yml +0 -56
  216. data/spec/fixtures/vcr/app_search/multi_query_search.yml +0 -63
  217. data/spec/fixtures/vcr/app_search/put_curation.yml +0 -113
  218. data/spec/fixtures/vcr/app_search/put_synonym_set.yml +0 -56
  219. data/spec/fixtures/vcr/app_search/search.yml +0 -57
  220. data/spec/fixtures/vcr/app_search/single_query_search.yml +0 -60
  221. data/spec/fixtures/vcr/app_search/synonym_set.yml +0 -56
  222. data/spec/fixtures/vcr/workplace_search/add_user_permissions.yml +0 -53
  223. data/spec/fixtures/vcr/workplace_search/clear_user_permissions.yml +0 -53
  224. data/spec/fixtures/vcr/workplace_search/create_external_identity.yml +0 -53
  225. data/spec/fixtures/vcr/workplace_search/delete_documents.yml +0 -53
  226. data/spec/fixtures/vcr/workplace_search/delete_external_identity.yml +0 -53
  227. data/spec/fixtures/vcr/workplace_search/index_documents.yml +0 -55
  228. data/spec/fixtures/vcr/workplace_search/list_external_identities.yml +0 -53
  229. data/spec/fixtures/vcr/workplace_search/list_permissions.yml +0 -53
  230. data/spec/fixtures/vcr/workplace_search/put_external_identity.yml +0 -53
  231. data/spec/fixtures/vcr/workplace_search/put_user_permissions.yml +0 -103
  232. data/spec/fixtures/vcr/workplace_search/remove_user_permissions.yml +0 -53
  233. data/spec/fixtures/vcr/workplace_search/retrieve_external_identity.yml +0 -53
  234. data/spec/fixtures/vcr/workplace_search/user_permissions_empty.yml +0 -53
  235. data/spec/workplace-search/documents_spec.rb +0 -80
  236. data/spec/workplace-search/permissions_spec.rb +0 -136
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6cc91758d4ef25ab3d509996223bf7c7cb07352e81f5f450fccadf8e0d799a4b
4
- data.tar.gz: 646f6a1cb4295263a1dc3ee07441aa8c5bfe20b1692e5f0d970d31a2a14a41c4
3
+ metadata.gz: 6ebc1dd416a61d523f8de08fe29e3308539cce59a55a9edcbffc7997c85910d5
4
+ data.tar.gz: 2dd11f3198ee70cea2d7f9d76f4d411ee47160b5e4d0ba1a32080cc830301b5d
5
5
  SHA512:
6
- metadata.gz: bddacbdbf0df0b8fe15197e4b3a016743dc7a79854d1de1bc9b5216c6297051808d905daae04c7d1da949840f971b4ad65dfc95b258db063a985380eaa66109c
7
- data.tar.gz: 45e7a164a0ee32daa8968b87690c27eead9b3de83e5ae4e72fb7a9d6a496cd2fa4ec24dd696f666ac581c19d541e4cc978423f0b888f6611329b8c351b9408ed
6
+ metadata.gz: d9d5499b123c3d026d2c2dbde6a0a9952321c3b2befd12cd42199d3d032d26f65a02e371bc32ceb9a9f3bcb3c085e83aed2ad5b292b43aeed6bdf5db37878744
7
+ data.tar.gz: d212455f5c39d99eea502669241b4dbd848615e0de15109b764465d124b003696d0dd0737a276f294ac0ee9a17b56027dd711c6e1f1cd615aec09005bf30dadd
@@ -19,6 +19,7 @@ if [[ -z $es_node_name ]]; then
19
19
  # only set these once
20
20
  set -euo pipefail
21
21
  export TEST_SUITE=${TEST_SUITE-free}
22
+ export SERVICE=${SERVICE-}
22
23
  export RUNSCRIPTS=${RUNSCRIPTS-}
23
24
  export DETACH=${DETACH-false}
24
25
  export CLEANUP=${CLEANUP-false}
@@ -46,6 +46,10 @@
46
46
  type: yaml
47
47
  filename: .ci/test-matrix.yml
48
48
  name: RUBY_VERSION
49
+ - axis:
50
+ type: yaml
51
+ filename: .ci/test-matrix.yml
52
+ name: SERVICE
49
53
  yaml-strategy:
50
54
  exclude-key: exclude
51
55
  filename: .ci/test-matrix.yml
@@ -0,0 +1,12 @@
1
+ ---
2
+ - job:
3
+ name: elastic+enterprise-search-ruby+7.10.0.beta.1
4
+ display-name: 'elastic / enterprise-search-ruby # 7.10.0.beta.1'
5
+ description: Testing the enterprise-search-ruby 7.10.0.beta.1 branch.
6
+ junit_results: "*-junit.xml"
7
+ parameters:
8
+ - string:
9
+ name: branch_specifier
10
+ default: refs/heads/7.10.0.beta.1
11
+ description: the Git branch specifier to build (<branchName>, <tagName>,
12
+ <commitId>, etc.)
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  - job:
3
- name: elastic+enterprise-search-ruby+7.11
4
- display-name: 'elastic / enterprise-search-ruby # 7.11'
5
- description: Testing the enterprise-search-ruby 7.11 branch.
3
+ name: elastic+enterprise-search-ruby+main
4
+ display-name: 'elastic / enterprise-search-ruby # main'
5
+ description: Testing the enterprise-search-ruby main branch.
6
6
  junit_results: "*-junit.xml"
7
7
  parameters:
8
8
  - string:
9
9
  name: branch_specifier
10
- default: refs/heads/7.11
10
+ default: refs/heads/main
11
11
  description: the Git branch specifier to build (<branchName>, <tagName>,
12
12
  <commitId>, etc.)
data/.ci/make.sh ADDED
@@ -0,0 +1,162 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # ------------------------------------------------------- #
4
+ #
5
+ # Skeleton for common build entry script for all elastic
6
+ # clients. Needs to be adapted to individual client usage.
7
+ #
8
+ # Must be called: ./.ci/make.sh <target> <params>
9
+ #
10
+ # Version: 1.1.0
11
+ #
12
+ # Targets:
13
+ # ---------------------------
14
+ # assemble <VERSION> : build client artefacts with version
15
+ # bump <VERSION> : bump client internals to version
16
+ # codegen <VERSION> : generate endpoints
17
+ # docsgen <VERSION> : generate documentation
18
+ # examplegen : generate the doc examples
19
+ # clean : clean workspace
20
+ #
21
+ # ------------------------------------------------------- #
22
+
23
+ # ------------------------------------------------------- #
24
+ # Bootstrap
25
+ # ------------------------------------------------------- #
26
+
27
+ script_path=$(dirname "$(realpath -s "$0")")
28
+ repo=$(realpath "$script_path/../")
29
+
30
+ # shellcheck disable=SC1090
31
+ CMD=$1
32
+ TASK=$1
33
+ TASK_ARGS=()
34
+ VERSION=$2
35
+ STACK_VERSION=$VERSION
36
+ set -euo pipefail
37
+
38
+ product="elastic/enterprise-search-ruby"
39
+ output_folder=".ci/output"
40
+ codegen_folder=".ci/output"
41
+ OUTPUT_DIR="$repo/${output_folder}"
42
+ REPO_BINDING="${OUTPUT_DIR}:/sln/${output_folder}"
43
+ mkdir -p "$OUTPUT_DIR"
44
+
45
+ echo -e "\033[34;1mINFO:\033[0m PRODUCT ${product}\033[0m"
46
+ echo -e "\033[34;1mINFO:\033[0m VERSION ${STACK_VERSION}\033[0m"
47
+ echo -e "\033[34;1mINFO:\033[0m OUTPUT_DIR ${OUTPUT_DIR}\033[0m"
48
+
49
+ RUBY_TEST_VERSION=${RUBY_TEST_VERSION-2.7}
50
+
51
+ case $CMD in
52
+ clean)
53
+ echo -e "\033[36;1mTARGET: clean workspace $output_folder\033[0m"
54
+ rm -rf "$output_folder"
55
+ echo -e "\033[32;1mdone.\033[0m"
56
+ exit 0
57
+ ;;
58
+ assemble)
59
+ if [ -v $VERSION ]; then
60
+ echo -e "\033[31;1mTARGET: assemble -> missing version parameter\033[0m"
61
+ exit 1
62
+ fi
63
+ echo -e "\033[36;1mTARGET: assemble artefact $VERSION\033[0m"
64
+ TASK=assemble
65
+ TASK_ARGS=("$VERSION" "$output_folder")
66
+ ;;
67
+ codegen)
68
+ if [ -v $VERSION ]; then
69
+ echo -e "\033[31;1mTARGET: codegen -> missing version parameter\033[0m"
70
+ exit 1
71
+ fi
72
+ echo -e "\033[36;1mTARGET: codegen API v$VERSION\033[0m"
73
+ TASK=codegen
74
+ # VERSION is BRANCH here for now
75
+ TASK_ARGS=("$VERSION" "$codegen_folder")
76
+ ;;
77
+ docsgen)
78
+ if [ -v $VERSION ]; then
79
+ echo -e "\033[31;1mTARGET: docsgen -> missing version parameter\033[0m"
80
+ exit 1
81
+ fi
82
+ echo -e "\033[36;1mTARGET: generate docs for $VERSION\033[0m"
83
+ TASK=codegen
84
+ # VERSION is BRANCH here for now
85
+ TASK_ARGS=("$VERSION" "$codegen_folder")
86
+ ;;
87
+ examplesgen)
88
+ echo -e "\033[36;1mTARGET: generate examples\033[0m"
89
+ TASK=codegen
90
+ # VERSION is BRANCH here for now
91
+ TASK_ARGS=("$VERSION" "$codegen_folder")
92
+ ;;
93
+ bump)
94
+ if [ -v $VERSION ]; then
95
+ echo -e "\033[31;1mTARGET: bump -> missing version parameter\033[0m"
96
+ exit 1
97
+ fi
98
+ echo -e "\033[36;1mTARGET: bump to version $VERSION\033[0m"
99
+ TASK=bump
100
+ # VERSION is BRANCH here for now
101
+ TASK_ARGS=("$VERSION")
102
+ ;;
103
+ *)
104
+ echo -e "\nUsage:\n\t $CMD is not supported right now\n"
105
+ exit 1
106
+ esac
107
+
108
+
109
+ # ------------------------------------------------------- #
110
+ # Build Container
111
+ # ------------------------------------------------------- #
112
+
113
+ echo -e "\033[34;1mINFO: building $product container\033[0m"
114
+
115
+ docker build --file .ci/Dockerfile --tag ${product} \
116
+ --build-arg USER_ID="$(id -u)" \
117
+ --build-arg GROUP_ID="$(id -g)" .
118
+
119
+
120
+ # ------------------------------------------------------- #
121
+ # Run the Container
122
+ # ------------------------------------------------------- #
123
+
124
+ echo -e "\033[34;1mINFO: running $product container\033[0m"
125
+
126
+ # Convert ARGS to comma separated string for Rake:
127
+ args_string="${TASK_ARGS[*]}"
128
+ args_string="${args_string// /,}"
129
+
130
+ docker run \
131
+ --env "RUBY_TEST_VERSION=${RUBY_TEST_VERSION}" \
132
+ --name test-runner \
133
+ --volume $REPO_BINDING \
134
+ --volume $repo:/usr/src/app \
135
+ --rm \
136
+ $product \
137
+ bundle exec rake unified_release:"$TASK"["$args_string"]
138
+
139
+ # ------------------------------------------------------- #
140
+ # Post Command tasks & checks
141
+ # ------------------------------------------------------- #
142
+
143
+ if [[ "$CMD" == "assemble" ]]; then
144
+ if compgen -G ".ci/output/*" > /dev/null; then
145
+ echo -e "\033[32;1mTARGET: successfully assembled client v$VERSION\033[0m"
146
+ else
147
+ echo -e "\033[31;1mTARGET: assemble failed, empty workspace!\033[0m"
148
+ exit 1
149
+ fi
150
+ fi
151
+
152
+ if [[ "$CMD" == "codegen" ]]; then
153
+ echo "TODO"
154
+ fi
155
+
156
+ if [[ "$CMD" == "docsgen" ]]; then
157
+ echo "TODO"
158
+ fi
159
+
160
+ if [[ "$CMD" == "examplesgen" ]]; then
161
+ echo "TODO"
162
+ fi
@@ -17,6 +17,7 @@ echo -e "\033[34;1mINFO:\033[0m TEST_SUITE: ${TEST_SUITE}\033[0m"
17
17
  echo -e "\033[34;1mINFO:\033[0m RUBY_VERSION: ${RUBY_VERSION}\033[0m"
18
18
  echo -e "\033[34;1mINFO:\033[0m RUNSCRIPTS: ${RUNSCRIPTS}\033[0m"
19
19
  echo -e "\033[34;1mINFO:\033[0m URL: ${elasticsearch_url}\033[0m"
20
+ echo -e "\033[34;1mINFO:\033[0m SERVICE: ${SERVICE}\033[0m"
20
21
 
21
22
  echo -e "\033[34;1mINFO:\033[0m pinging Elasticsearch ..\033[0m"
22
23
  curl --insecure --fail $external_elasticsearch_url/_cluster/health?pretty
@@ -46,4 +47,4 @@ docker run \
46
47
  --rm \
47
48
  --volume `pwd`:/code/enterprise-search-ruby \
48
49
  elastic/enterprise-search-ruby \
49
- rake spec:integration
50
+ rake spec:integration:${SERVICE}
data/.ci/test-matrix.yml CHANGED
@@ -6,9 +6,11 @@ RUBY_VERSION:
6
6
  - 2.5
7
7
 
8
8
  STACK_VERSION:
9
- - 7.12-SNAPSHOT
9
+ - 7.15-SNAPSHOT
10
10
 
11
- TEST_SUITE:
12
- - platinum
11
+ SERVICE:
12
+ - appsearch
13
+ - enterprisesearch
14
+ - workplacesearch
13
15
 
14
16
  exclude: ~
@@ -15,22 +15,19 @@
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
17
 
18
- # frozen_string_literal: true
18
+ LICENSE = File.read('./.github/license-header.txt')
19
+ files = `git ls-files | grep -E '\.rb|Rakefile|\.rake|\.erb|Gemfile|gemspec'`.split("\n")
20
+ errors = []
19
21
 
20
- require_relative './api_spec_helper'
21
-
22
- describe Elastic::EnterpriseSearch::AppSearch::Client do
23
- context 'api_logs' do
24
- it 'returns api logs' do
25
- VCR.use_cassette('app_search/api_logs') do
26
- response = @client.api_logs(
27
- 'videogames',
28
- from_date: Date.new(2020, 10, 0o1),
29
- to_date: Date.new(2020, 11, 0o5)
30
- )
31
- expect(response.status).to eq 200
32
- expect(response.body['results'].count).to be > 1
33
- end
34
- end
22
+ files.each do |file|
23
+ unless File.read(file).include?(LICENSE)
24
+ errors << file
25
+ puts "#{file} doesn't contain the correct license header"
35
26
  end
36
27
  end
28
+
29
+ if errors.empty?
30
+ puts 'All checked files have the correct license header'
31
+ else
32
+ exit 1
33
+ end
@@ -0,0 +1,16 @@
1
+ # Licensed to Elasticsearch B.V. under one or more contributor
2
+ # license agreements. See the NOTICE file distributed with
3
+ # this work for additional information regarding copyright
4
+ # ownership. Elasticsearch B.V. licenses this file to you under
5
+ # the Apache License, Version 2.0 (the "License"); you may
6
+ # not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
@@ -0,0 +1,13 @@
1
+ name: License headers
2
+ on: [pull_request]
3
+ jobs:
4
+ build:
5
+ runs-on: ubuntu-latest
6
+ steps:
7
+ - uses: actions/checkout@v2
8
+ - uses: ruby/setup-ruby@v1
9
+ with:
10
+ ruby-version: 3
11
+ - name: Check license headers
12
+ run: |
13
+ ruby ./.github/check_license_headers.rb
@@ -1,4 +1,4 @@
1
- name: master
1
+ name: 7.15
2
2
  on: [push, pull_request]
3
3
 
4
4
  jobs:
data/CONTRIBUTING.md CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  3. Rebase your changes. Update your local repository with the most recent code
24
24
  from the main `enterprise-search-ruby` repository and rebase your branch
25
- on top of the latest `master` branch. All of your changes will be squashed
25
+ on top of the latest `main` branch. All of your changes will be squashed
26
26
  into a single commit so don't worry about pushing multiple times.
27
27
 
28
28
  4. Submit a pull request. Push your local changes to your forked repository
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Elastic Enterprise Search Client
2
2
 
3
- ![build](https://github.com/elastic/enterprise-search-ruby/workflows/master/badge.svg)
3
+ ![build](https://github.com/elastic/enterprise-search-ruby/workflows/main/badge.svg)
4
4
  ![rubocop](https://github.com/elastic/enterprise-search-ruby/workflows/rubocop/badge.svg)
5
5
  [![Ruby Style Guide](https://img.shields.io/badge/code_style-rubocop-brightgreen.svg)](https://github.com/rubocop-hq/rubocop)
6
6
 
data/Rakefile CHANGED
@@ -19,6 +19,7 @@
19
19
 
20
20
  require 'rspec/core/rake_task'
21
21
  require 'bundler/gem_tasks'
22
+ import 'rake_tasks/unified_release_tasks.rake'
22
23
 
23
24
  desc 'Open an irb session preloaded with this library'
24
25
  task :console do
@@ -30,6 +31,7 @@ task :stack, [:version] do |_, params|
30
31
  sh "STACK_VERSION=#{params[:version]} ./.ci/run-local.sh"
31
32
  end
32
33
 
34
+ # rubocop:disable Metrics/BlockLength
33
35
  namespace :spec do
34
36
  desc 'Run client tests'
35
37
  task :client do
@@ -45,4 +47,22 @@ namespace :spec do
45
47
  task :all do
46
48
  sh 'rspec spec'
47
49
  end
50
+
51
+ namespace :integration do
52
+ desc 'Run App Search integration tests'
53
+ task :appsearch do
54
+ sh 'rspec spec/integration/app-search'
55
+ end
56
+
57
+ desc 'Run Enterprise Search integration tests'
58
+ task :enterprisesearch do
59
+ sh 'rspec spec/integration/enterprise_search_api_spec.rb'
60
+ end
61
+
62
+ desc 'Run Workplace Search integration tests'
63
+ task :workplacesearch do
64
+ sh 'rspec spec/integration/workplace-search'
65
+ end
66
+ end
48
67
  end
68
+ # rubocop:enable Metrics/BlockLength
@@ -1,6 +1,8 @@
1
1
  [[app-search-api]]
2
2
  == App Search API
3
3
 
4
+ This document includes examples for different API requests. Please refer to the https://www.elastic.co/guide/en/app-search/current/index.html[Elastic App Search Documentation] for more information, particularly the https://www.elastic.co/guide/en/app-search/current/api-reference.html[API Reference].
5
+
4
6
  === Engines
5
7
 
6
8
  [source,rb]
@@ -146,6 +148,160 @@ client.list_curations(engine_name)
146
148
  client.delete_curation(engine_name, curation_id: 'cur-id')
147
149
  ----------------------------
148
150
 
151
+ === Api Key
152
+
153
+ [source,rb]
154
+ ----------------------------
155
+ # Create API Key
156
+ body = {
157
+ name: name,
158
+ type: 'private',
159
+ read: true,
160
+ write: true,
161
+ access_all_engines: true
162
+ }
163
+ response = client.create_api_key(body: body)
164
+
165
+ # Get the details of an API Key
166
+ client.api_key(api_key_name: name)
167
+
168
+ # List API Keys
169
+ client.list_api_keys
170
+
171
+ # Update an API Key
172
+ body = { name: name, type: 'private', read: true, write: true, engines: ['test'] }
173
+ client.put_api_key(api_key_name: name, body: body)
174
+
175
+ # Delete an API Key
176
+ client.delete_api_key(api_key_name: name)
177
+ ----------------------------
178
+
179
+ === Web Crawler
180
+
181
+ [CAUTION]
182
+ ====
183
+ The Elastic Enterprise Search web crawler API is a *beta* feature.
184
+ Beta features are subject to change and are not covered by the support SLA of general release (GA) features.
185
+ Elastic plans to promote this feature to GA in a future release.
186
+ ====
187
+
188
+ See https://www.elastic.co/guide/en/app-search/current/web-crawler-api-reference.html[Web Crawler API reference] for more information.
189
+
190
+ [source,rb]
191
+ ----------------------------
192
+ # Create a crawler domain
193
+ body = { name: 'https://www.elastic.co' }
194
+ client.create_crawler_domain(engine_name, body: body)
195
+
196
+ # Get crawler domain information
197
+ client.crawler_domain(engine_name, domain_id: domain_id)
198
+
199
+ # Update a crawler domain
200
+ body = { name: 'https://www.wikipedia.org' }
201
+ client.put_crawler_domain(engine_name, domain_id: domain_id, domain: body)
202
+
203
+ # Delete a crawler domain
204
+ client.delete_crawler_domain(engine_name, domain_id: domain_id)
205
+
206
+ # Create a crawler crawl request
207
+ client.create_crawler_crawl_request(engine_name)
208
+
209
+ # Retrieve a crawl request
210
+ client.crawler_crawl_request(engine_name, crawl_request_id: request_id)
211
+
212
+ # Retrieve active crawl request details
213
+ client.crawler_active_crawl_request(engine_name)
214
+
215
+ # List crawl requests
216
+ client.list_crawler_crawl_requests(engine_name)
217
+
218
+ # Delete an active crawl request
219
+ client.delete_active_crawl_request(engine_name)
220
+
221
+ # Set a crawler crawl schedule
222
+ body = { frequency: 1, unit: 'day' }
223
+ client.put_crawler_crawl_schedule(engine_name, body: body)
224
+
225
+ # Retrieve crawler crawl schedule
226
+ client.crawler_crawl_schedule(engine_name)
227
+
228
+ # Delete a crawler crawl schedule
229
+ client.delete_crawler_crawl_schedule(engine_name)
230
+
231
+ # Create a crawler entry point
232
+ client.create_crawler_entry_point(engine_name, domain_id: domain_id, body: { value: '/elastic-stack' })
233
+
234
+ # Update a crawler entry point
235
+ client.put_crawler_entry_point(
236
+ engine_name,
237
+ domain_id: domain_id,
238
+ entry_point_id: entry_point_id,
239
+ body: { value: '/enterprise-search' }
240
+ )
241
+
242
+ # Validate a URL
243
+ client.crawler_url_validation_result(engine_name, url: name)
244
+
245
+ # Extract ccontent from a URL
246
+ client.crawler_url_extraction_result(engine_name, url: name)
247
+
248
+ # Retrieve tracing history for a crawler URL
249
+ client.crawler_url_tracing_result(engine_name, url: name)
250
+
251
+ # Delete a crawler entry point
252
+ client.delete_crawler_entry_point(
253
+ engine_name,
254
+ domain_id: domain_id,
255
+ entry_point_id: entry_point_id
256
+ )
257
+
258
+ # Retrieve crawler metrics
259
+ client.crawler_metrics
260
+
261
+ # Retrieve crawler configuration overview
262
+ client.crawler_overview(engine_name)
263
+
264
+ # Create a crawler sitemap
265
+ body = { url: 'https://www.elastic.co/sitemap.xml' }
266
+ client.create_crawler_sitemap(engine_name, domain_id: domain_id, body: body)
267
+
268
+ # Update a crawler sitemap
269
+ body = { url: 'https://www.elastic.co/sitemap2.xml' }
270
+ client.put_crawler_sitemap(engine_name, domain_id: domain_id, sitemap_id: sitemap_id, body: body)
271
+
272
+ # Delete a crawler sitemap
273
+ client.delete_crawler_sitemap(engine_name, domain_id: domain_id, sitemap_id: sitemap_id)
274
+
275
+ # Create a crawler crawl rule
276
+ body = { order: 1, policy: 'allow', rule: 'contains', pattern: '/stack' }
277
+ client.create_crawler_crawl_rule(engine_name, domain_id: domain_id, body: body)
278
+
279
+ # Update a crawler crawl rule
280
+ body = { order: 2, policy: 'allow', rule: 'begins', pattern: '/stack' }
281
+ client.put_crawler_crawl_rule(engine_name, domain_id: domain_id, crawl_rule_id: rule_id, body: body)
282
+
283
+ # Delete a crawler crawl rule
284
+ client.delete_crawler_crawl_rule(engine_name, domain_id: domain_id, crawl_rule_id: rule_id)
285
+
286
+ # Create a process crawl
287
+ client.create_crawler_process_crawl(engine_name, body: { dry_run: true })
288
+
289
+ # Retrieve a process crawl
290
+ client.crawler_process_crawl(engine_name, process_crawl_id: id)
291
+
292
+ # Retrieve denied URLs cor a process crawl
293
+ client.denied_urls(engine_name, process_crawl_id: id)
294
+
295
+ # List process crawls
296
+ client.list_crawler_process_crawls(engine_name)
297
+
298
+ # View denied urls for Process Crawl
299
+ client.crawler_process_crawl_denied_urls(engine_name, process_crawl_id: id)
300
+
301
+ # Cancel an active crawl request, stopping a running crawl if needed.
302
+ client.delete_crawler_active_crawl_request(engine_name)
303
+ ----------------------------
304
+
149
305
  === Other API Endpoints
150
306
 
151
307
  [source,rb]
@@ -179,7 +335,7 @@ client.put_search_settings(engine_name, body: body)
179
335
  client.reset_search_settings(engine_name)
180
336
 
181
337
  # Click - Send data about clicked results
182
- client.log_clickthrough(engine_name, query_text: 'query', document_id: 'doc-id')
338
+ client.log_clickthrough(engine_name, body: { query: 'query', document_id: 'doc-id' })
183
339
 
184
340
  # Query Suggestion - Provide relevant query suggestions for incomplete queries
185
341
  client.query_suggestion(engine_name, query: 'incomplete_query')
@@ -87,7 +87,13 @@ client.search(engine_name, query: 'jungle')
87
87
  [[auth-ws]]
88
88
  ==== Authenticating with Workplace Search
89
89
 
90
- In your Elastic Workplace Search dashboard navigate to _Sources/Add a Shared Content Source_ and select _Custom API Source_ to create a new source. Name your source (e.g. `Enterprise Search Ruby Client`) and once it's created you'll get an `access token` and an `ID`. You'll need these in the following steps.
90
+ Workplace Search supports multiple authentication methods:
91
+
92
+ [discrete]
93
+ [[access-tokens]]
94
+ ===== Workplace Search admin user access tokens
95
+
96
+ In your Elastic Workplace Search dashboard navigate to _Sources/Add a Shared Content Source_ and select _Custom API Source_ to create a new source. Name your source (e.g. `Enterprise Search Ruby Client`) and once it's created you'll get an `access token` and an `ID`.
91
97
 
92
98
  The Workplace Search client can be accessed from an existing Enterprise Search Client, or you can initialize a new one. If you instantiate the Workplace Search client from an existing Enterprise Search Client, it's going to share the HTTP transport instance, so it's going to connect to the same host, which is a common scenario. However, if you want to connect to a different host, you should instantiate a new Workplace Client on its own:
93
99
 
@@ -109,6 +115,46 @@ workplace_search_client = Elastic::EnterpriseSearch::WorkplaceSearch::Client.new
109
115
  )
110
116
  ----------------------------
111
117
 
118
+ [discrete]
119
+ [[basic-auth]]
120
+ ===== Basic Authentication
121
+
122
+ Workplace Search APIs support basic authentication headers to authenticate users. All Workplace Search APIs support basic authentication:
123
+
124
+ [source,rb]
125
+ ----------------------------
126
+ host = 'https://id.ent-search.europe-west2.gcp.elastic-cloud.com'
127
+ basic_auth = { user: 'enterprise_search', password: 'changeme' }
128
+
129
+ workplace_search_client = Elastic::EnterpriseSearch::WorkplaceSearch::Client.new(
130
+ host: host,
131
+ http_auth: basic_auth
132
+ )
133
+ ----------------------------
134
+
135
+ [discrete]
136
+ [[es-tokens]]
137
+ ===== Elasticsearch tokens
138
+
139
+ Workplace Search APIs support Elasticsearch tokens generated by the Elasticsearch Token Service. All Workplace Search APIs support Elasticsearch tokens as an authentication method.
140
+
141
+ [source,rb]
142
+ ----------------------------
143
+ host = 'https://id.ent-search.europe-west2.gcp.elastic-cloud.com'
144
+ access_token = '<access token>'
145
+
146
+ workplace_search_client = Elastic::EnterpriseSearch::WorkplaceSearch::Client.new(
147
+ host: host,
148
+ http_auth: access_token
149
+ )
150
+ ----------------------------
151
+
152
+ [discrete]
153
+ [[ws-oauth]]
154
+ ===== Workplace Search OAuth access tokens
155
+
156
+ The Search API and the Analytics Events API support user access tokens generated by the Workplace Search OAuth Service. The token is acquired via an OAuth authorization flow. User access tokens are meant to be used for Custom Search Experiences. Check <<ws-oauth-authentication>>.
157
+
112
158
  [discrete]
113
159
  [[custom_headers]]
114
160
  === Custom HTTP Headers
@@ -6,7 +6,7 @@ This is the official Ruby client for Elastic Enterprise Search.
6
6
  [discrete]
7
7
  === Compatibility
8
8
 
9
- Current development happens in the master branch.
9
+ Current development happens in the main branch.
10
10
 
11
11
  The library is compatible with all Elastic Enterprise Search versions since `7.x` but you **have to use a matching major version**:
12
12
 
@@ -14,11 +14,11 @@ For **Elastic Enterprise Search 7.0** and later, use the major version 7 (`7.x.y
14
14
 
15
15
  [discrete]
16
16
  === HTTP Library
17
- This library uses https://github.com/elastic/elasticsearch-ruby/tree/master/elasticsearch-transport[elasticsearch-transport], the low-level Ruby client for connecting to an Elasticsearch cluster - also used in the official https://github.com/elastic/elasticsearch-ruby[Elasticsearch Ruby Client].
17
+ This library uses https://github.com/elastic/elasticsearch-ruby/tree/main/elasticsearch-transport[elasticsearch-transport], the low-level Ruby client for connecting to an Elasticsearch cluster - also used in the official https://github.com/elastic/elasticsearch-ruby[Elasticsearch Ruby Client].
18
18
 
19
19
  All requests, if successful, will return an `Elasticsearch::Transport::Transport::Response` instance. You can access the response `body`, `headers` and `status`.
20
20
 
21
- `elasticsearch-transport` defines a https://github.com/elasticsearch/elasticsearch-ruby/blob/master/elasticsearch-transport/lib/elasticsearch/transport/transport/errors.rb[number of exception classes] for various client and server errors, as well as unsuccessful HTTP responses, making it possible to rescue specific exceptions with desired granularity. More details https://github.com/elastic/elasticsearch-ruby/tree/master/elasticsearch-transport#exception-handling[here]. You can find the full documentation for `elasticsearch-transport` at https://rubydoc.info/gems/elasticsearch-transport[RubyDoc].
21
+ `elasticsearch-transport` defines a https://github.com/elasticsearch/elasticsearch-ruby/blob/main/elasticsearch-transport/lib/elasticsearch/transport/transport/errors.rb[number of exception classes] for various client and server errors, as well as unsuccessful HTTP responses, making it possible to rescue specific exceptions with desired granularity. More details https://github.com/elastic/elasticsearch-ruby/tree/main/elasticsearch-transport#exception-handling[here]. You can find the full documentation for `elasticsearch-transport` at https://rubydoc.info/gems/elasticsearch-transport[RubyDoc].
22
22
 
23
23
  The clients pass different options to transport, you can check them out https://rubydoc.info/github/elastic/enterprise-search-ruby/Elastic/EnterpriseSearch/Client[on RubyDocs].
24
24
 
@@ -26,13 +26,3 @@
26
26
 
27
27
  - Updates source code documentation for `current_page` and `page_size` parameters from type `String` to `Integer`.
28
28
  - In `multi_search`, the body parameter is renamed to `body` from `queries` to avoid repetition and potential confusion.
29
-
30
- [discrete]
31
- ==== Workplace Search
32
-
33
- - Body parameter renamed to `document_ids` in `delete_documents`:
34
-
35
- [source,rb]
36
- ----------------------------
37
- client.delete_documents(content_source_id, document_ids: ['e68fbc2688f1', 'c535e226aee3'])
38
- ----------------------------