elastic-enterprise-search 0.2.1 → 7.12.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.
Files changed (201) hide show
  1. checksums.yaml +4 -4
  2. data/.ci/.gitignore +1 -0
  3. data/.ci/Dockerfile +12 -0
  4. data/.ci/certs/README.md +50 -0
  5. data/.ci/certs/ca.crt +20 -0
  6. data/.ci/certs/ca.key +27 -0
  7. data/.ci/certs/testnode.crt +21 -0
  8. data/.ci/certs/testnode.key +27 -0
  9. data/.ci/certs/testnode_no_san.crt +19 -0
  10. data/.ci/certs/testnode_no_san.key +27 -0
  11. data/.ci/functions/cleanup.sh +67 -0
  12. data/.ci/functions/imports.sh +59 -0
  13. data/.ci/functions/wait-for-container.sh +36 -0
  14. data/.ci/jobs/defaults.yml +69 -0
  15. data/.ci/jobs/elastic+enterprise-search-ruby+7.11.yml +12 -0
  16. data/.ci/jobs/elastic+enterprise-search-ruby+master.yml +12 -0
  17. data/.ci/jobs/elastic+enterprise-search-ruby+pull-request.yml +19 -0
  18. data/.ci/run-elasticsearch.sh +127 -0
  19. data/.ci/run-enterprise-search.sh +71 -0
  20. data/.ci/run-local.sh +14 -0
  21. data/.ci/run-repository.sh +47 -0
  22. data/.ci/run-tests +27 -0
  23. data/.ci/test-matrix.yml +14 -0
  24. data/.github/workflows/rubocop.yml +15 -0
  25. data/.github/workflows/testing.yml +40 -0
  26. data/.gitignore +4 -0
  27. data/.rubocop.yml +52 -0
  28. data/CONTRIBUTING.md +43 -0
  29. data/Gemfile +23 -1
  30. data/{LICENSE.txt → LICENSE} +33 -32
  31. data/README.md +29 -93
  32. data/Rakefile +48 -1
  33. data/docs/guide/app-search-api.asciidoc +186 -0
  34. data/docs/guide/connecting.asciidoc +125 -0
  35. data/docs/guide/development.asciidoc +42 -0
  36. data/docs/guide/enterprise-search-api.asciidoc +46 -0
  37. data/docs/guide/index.asciidoc +19 -0
  38. data/docs/guide/installation.asciidoc +18 -0
  39. data/docs/guide/overview.asciidoc +59 -0
  40. data/docs/guide/release_notes/710.asciidoc +4 -0
  41. data/docs/guide/release_notes/711.asciidoc +27 -0
  42. data/docs/guide/release_notes/712.asciidoc +26 -0
  43. data/docs/guide/release_notes/index.asciidoc +14 -0
  44. data/docs/guide/workplace-search-api.asciidoc +121 -0
  45. data/elastic-enterprise-search.gemspec +49 -12
  46. data/lib/elastic-enterprise-search.rb +20 -1
  47. data/lib/elastic/.rubocop.yml +6 -0
  48. data/lib/elastic/app-search/api/add_meta_engine_source.rb +51 -0
  49. data/lib/elastic/app-search/api/api_logs.rb +62 -0
  50. data/lib/elastic/app-search/api/count_analytics.rb +52 -0
  51. data/lib/elastic/app-search/api/create_curation.rb +54 -0
  52. data/lib/elastic/app-search/api/create_engine.rb +53 -0
  53. data/lib/elastic/app-search/api/create_synonym_set.rb +51 -0
  54. data/lib/elastic/app-search/api/curation.rb +53 -0
  55. data/lib/elastic/app-search/api/delete_curation.rb +53 -0
  56. data/lib/elastic/app-search/api/delete_documents.rb +51 -0
  57. data/lib/elastic/app-search/api/delete_engine.rb +50 -0
  58. data/lib/elastic/app-search/api/delete_meta_engine_source.rb +51 -0
  59. data/lib/elastic/app-search/api/delete_synonym_set.rb +53 -0
  60. data/lib/elastic/app-search/api/documents.rb +51 -0
  61. data/lib/elastic/app-search/api/engine.rb +50 -0
  62. data/lib/elastic/app-search/api/index_documents.rb +51 -0
  63. data/lib/elastic/app-search/api/list_curations.rb +52 -0
  64. data/lib/elastic/app-search/api/list_documents.rb +52 -0
  65. data/lib/elastic/app-search/api/list_engines.rb +49 -0
  66. data/lib/elastic/app-search/api/list_synonym_sets.rb +52 -0
  67. data/lib/elastic/app-search/api/log_clickthrough.rb +57 -0
  68. data/lib/elastic/app-search/api/multi_search.rb +51 -0
  69. data/lib/elastic/app-search/api/put_curation.rb +57 -0
  70. data/lib/elastic/app-search/api/put_documents.rb +51 -0
  71. data/lib/elastic/app-search/api/put_schema.rb +51 -0
  72. data/lib/elastic/app-search/api/put_search_settings.rb +51 -0
  73. data/lib/elastic/app-search/api/put_synonym_set.rb +54 -0
  74. data/lib/elastic/app-search/api/query_suggestion.rb +54 -0
  75. data/lib/elastic/app-search/api/reset_search_settings.rb +50 -0
  76. data/lib/elastic/app-search/api/schema.rb +50 -0
  77. data/lib/elastic/app-search/api/search.rb +50 -0
  78. data/lib/elastic/app-search/api/search_settings.rb +50 -0
  79. data/lib/elastic/app-search/api/synonym_set.rb +53 -0
  80. data/lib/elastic/app-search/api/top_clicks_analytics.rb +54 -0
  81. data/lib/elastic/app-search/api/top_queries_analytics.rb +53 -0
  82. data/lib/elastic/app-search/app_search.rb +82 -0
  83. data/lib/elastic/enterprise-search/api/health.rb +43 -0
  84. data/lib/elastic/enterprise-search/api/put_read_only.rb +44 -0
  85. data/lib/elastic/enterprise-search/api/read_only.rb +43 -0
  86. data/lib/elastic/enterprise-search/api/stats.rb +45 -0
  87. data/lib/elastic/enterprise-search/api/version.rb +43 -0
  88. data/lib/elastic/enterprise-search/client.rb +90 -52
  89. data/lib/elastic/enterprise-search/configuration.rb +32 -16
  90. data/lib/elastic/enterprise-search/exceptions.rb +19 -0
  91. data/lib/elastic/enterprise-search/request.rb +59 -81
  92. data/lib/elastic/enterprise-search/utils.rb +28 -1
  93. data/lib/elastic/enterprise-search/version.rb +20 -1
  94. data/lib/elastic/enterprise_search.rb +38 -0
  95. data/lib/elastic/workplace-search/api/add_user_permissions.rb +54 -0
  96. data/lib/elastic/workplace-search/api/create_analytics_event.rb +59 -0
  97. data/lib/elastic/workplace-search/api/create_external_identity.rb +51 -0
  98. data/lib/elastic/workplace-search/api/delete_documents.rb +51 -0
  99. data/lib/elastic/workplace-search/api/delete_external_identity.rb +53 -0
  100. data/lib/elastic/workplace-search/api/external_identity.rb +53 -0
  101. data/lib/elastic/workplace-search/api/index_documents.rb +52 -0
  102. data/lib/elastic/workplace-search/api/list_external_identities.rb +51 -0
  103. data/lib/elastic/workplace-search/api/list_permissions.rb +51 -0
  104. data/lib/elastic/workplace-search/api/put_external_identity.rb +54 -0
  105. data/lib/elastic/workplace-search/api/put_user_permissions.rb +54 -0
  106. data/lib/elastic/workplace-search/api/remove_user_permissions.rb +54 -0
  107. data/lib/elastic/workplace-search/api/search.rb +60 -0
  108. data/lib/elastic/workplace-search/api/user_permissions.rb +53 -0
  109. data/lib/elastic/workplace-search/workplace_search.rb +84 -0
  110. data/spec/app-search/api_count_analytics_spec.rb +34 -0
  111. data/spec/app-search/api_curations_spec.rb +97 -0
  112. data/spec/app-search/api_documents_spec.rb +102 -0
  113. data/spec/app-search/api_engines_spec.rb +67 -0
  114. data/spec/app-search/api_log_clickthrough_spec.rb +34 -0
  115. data/spec/app-search/api_logs_spec.rb +36 -0
  116. data/spec/app-search/api_meta_engines_spec.rb +72 -0
  117. data/spec/app-search/api_query_suggestion_spec.rb +39 -0
  118. data/spec/app-search/api_schema_spec.rb +48 -0
  119. data/spec/app-search/api_search_and_multi_search_spec.rb +48 -0
  120. data/spec/app-search/api_search_settings_spec.rb +76 -0
  121. data/spec/app-search/api_spec_helper.rb +14 -0
  122. data/spec/app-search/api_synonyms_spec.rb +79 -0
  123. data/spec/app-search/api_top_clicks_analytics_spec.rb +44 -0
  124. data/spec/app-search/api_top_queries_analytics_spec.rb +34 -0
  125. data/spec/app-search/client_spec.rb +88 -0
  126. data/spec/app-search/date_spec.rb +69 -0
  127. data/spec/enterprise-search/client_spec.rb +107 -0
  128. data/spec/enterprise-search/request_spec.rb +136 -0
  129. data/spec/enterprise-search/utils_spec.rb +46 -0
  130. data/spec/fixtures/vcr/app_search/add_meta_engine_source.yml +109 -0
  131. data/spec/fixtures/vcr/app_search/api_documents.yml +56 -0
  132. data/spec/fixtures/vcr/app_search/api_index_documents.yml +57 -0
  133. data/spec/fixtures/vcr/app_search/api_log_clickthrough.yml +54 -0
  134. data/spec/fixtures/vcr/app_search/api_logs.yml +70 -0
  135. data/spec/fixtures/vcr/app_search/api_put_schema.yml +109 -0
  136. data/spec/fixtures/vcr/app_search/api_put_search_settings.yml +56 -0
  137. data/spec/fixtures/vcr/app_search/api_query_suggestion.yml +59 -0
  138. data/spec/fixtures/vcr/app_search/api_reset_search_settings.yml +56 -0
  139. data/spec/fixtures/vcr/app_search/api_schema.yml +56 -0
  140. data/spec/fixtures/vcr/app_search/api_search_settings.yml +56 -0
  141. data/spec/fixtures/vcr/app_search/api_top_clicks_analytics.yml +55 -0
  142. data/spec/fixtures/vcr/app_search/api_top_clicks_analytics_query.yml +55 -0
  143. data/spec/fixtures/vcr/app_search/api_top_queries_analytics.yml +55 -0
  144. data/spec/fixtures/vcr/app_search/count_analytics.yml +55 -0
  145. data/spec/fixtures/vcr/app_search/create_and_update_document.yml +107 -0
  146. data/spec/fixtures/vcr/app_search/create_curation.yml +113 -0
  147. data/spec/fixtures/vcr/app_search/create_engine.yml +55 -0
  148. data/spec/fixtures/vcr/app_search/create_meta_engine.yml +56 -0
  149. data/spec/fixtures/vcr/app_search/create_synonym_set.yml +56 -0
  150. data/spec/fixtures/vcr/app_search/delete_curation.yml +56 -0
  151. data/spec/fixtures/vcr/app_search/delete_engine.yml +55 -0
  152. data/spec/fixtures/vcr/app_search/delete_meta_engine_source.yml +56 -0
  153. data/spec/fixtures/vcr/app_search/delete_synonym_set.yml +56 -0
  154. data/spec/fixtures/vcr/app_search/get_curation.yml +56 -0
  155. data/spec/fixtures/vcr/app_search/get_engine.yml +55 -0
  156. data/spec/fixtures/vcr/app_search/index_and_delete_document.yml +107 -0
  157. data/spec/fixtures/vcr/app_search/list_curations.yml +56 -0
  158. data/spec/fixtures/vcr/app_search/list_documents.yml +57 -0
  159. data/spec/fixtures/vcr/app_search/list_engines.yml +55 -0
  160. data/spec/fixtures/vcr/app_search/list_synonym_sets.yml +56 -0
  161. data/spec/fixtures/vcr/app_search/multi_query_search.yml +63 -0
  162. data/spec/fixtures/vcr/app_search/put_curation.yml +113 -0
  163. data/spec/fixtures/vcr/app_search/put_synonym_set.yml +56 -0
  164. data/spec/fixtures/vcr/app_search/search.yml +57 -0
  165. data/spec/fixtures/vcr/app_search/single_query_search.yml +60 -0
  166. data/spec/fixtures/vcr/app_search/synonym_set.yml +56 -0
  167. data/spec/fixtures/vcr/workplace_search/add_user_permissions.yml +53 -0
  168. data/spec/fixtures/vcr/workplace_search/clear_user_permissions.yml +53 -0
  169. data/spec/fixtures/vcr/workplace_search/create_analytics_event.yml +55 -0
  170. data/spec/fixtures/vcr/workplace_search/create_external_identity.yml +53 -0
  171. data/spec/fixtures/vcr/workplace_search/delete_documents.yml +53 -0
  172. data/spec/fixtures/vcr/workplace_search/delete_external_identity.yml +53 -0
  173. data/spec/fixtures/vcr/workplace_search/index_documents.yml +55 -0
  174. data/spec/fixtures/vcr/workplace_search/list_external_identities.yml +53 -0
  175. data/spec/fixtures/vcr/workplace_search/list_permissions.yml +53 -0
  176. data/spec/fixtures/vcr/workplace_search/oauth_request_token.yml +57 -0
  177. data/spec/fixtures/vcr/workplace_search/put_external_identity.yml +53 -0
  178. data/spec/fixtures/vcr/workplace_search/put_user_permissions.yml +103 -0
  179. data/spec/fixtures/vcr/workplace_search/remove_user_permissions.yml +53 -0
  180. data/spec/fixtures/vcr/workplace_search/retrieve_external_identity.yml +53 -0
  181. data/spec/fixtures/vcr/workplace_search/search_request.yml +60 -0
  182. data/spec/fixtures/vcr/workplace_search/user_permissions_empty.yml +53 -0
  183. data/spec/integration/enterprise_search_api_spec.rb +96 -0
  184. data/spec/spec_helper.rb +27 -14
  185. data/spec/webmock_requires.rb +4 -0
  186. data/spec/workplace-search/client_spec.rb +77 -0
  187. data/spec/workplace-search/create_analytics_event_spec.rb +59 -0
  188. data/spec/workplace-search/documents_spec.rb +80 -0
  189. data/spec/workplace-search/external_identities_spec.rb +84 -0
  190. data/spec/workplace-search/permissions_spec.rb +136 -0
  191. data/spec/workplace-search/search_spec.rb +53 -0
  192. metadata +272 -28
  193. data/.circleci/config.yml +0 -68
  194. data/.travis.yml +0 -15
  195. data/NOTICE.txt +0 -3
  196. data/lib/elastic/enterprise-search.rb +0 -7
  197. data/logo-enterprise-search.png +0 -0
  198. data/spec/client_spec.rb +0 -57
  199. data/spec/configuration_spec.rb +0 -19
  200. data/spec/fixtures/vcr/async_create_or_update_document_success.yml +0 -51
  201. data/spec/fixtures/vcr/destroy_documents_success.yml +0 -51
@@ -1,7 +1,27 @@
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.
17
+
18
+ # frozen_string_literal: true
19
+
1
20
  module Elastic
2
21
  module EnterpriseSearch
22
+ # Util functions
3
23
  module Utils
4
- extend self
24
+ DEFAULT_HOST = 'http://localhost:3002'
5
25
 
6
26
  def stringify_keys(hash)
7
27
  output = {}
@@ -10,6 +30,13 @@ module Elastic
10
30
  end
11
31
  output
12
32
  end
33
+
34
+ def self.symbolize_keys(hash)
35
+ hash.each_with_object({}) do |(key, value), out|
36
+ new_key = key.respond_to?(:to_sym) ? key.to_sym : key
37
+ out[new_key] = value
38
+ end
39
+ end
13
40
  end
14
41
  end
15
42
  end
@@ -1,5 +1,24 @@
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.
17
+
18
+ # frozen_string_literal: true
19
+
1
20
  module Elastic
2
21
  module EnterpriseSearch
3
- VERSION = '0.2.1'
22
+ VERSION = '7.12.0'
4
23
  end
5
24
  end
@@ -0,0 +1,38 @@
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.
17
+
18
+ # frozen_string_literal: true
19
+
20
+ require 'elastic/enterprise-search/version'
21
+
22
+ # Require API code:
23
+ [
24
+ "#{File.dirname(__FILE__)}/enterprise-search/api/*.rb",
25
+ "#{File.dirname(__FILE__)}/workplace-search/api/*.rb",
26
+ "#{File.dirname(__FILE__)}/app-search/api/*.rb"
27
+ ].each do |path|
28
+ Dir[path].sort.each { |file| require file }
29
+ end
30
+
31
+ require 'elastic/enterprise-search/client'
32
+ require 'elastic/workplace-search/workplace_search'
33
+ require 'elastic/app-search/app_search'
34
+
35
+ module Elastic
36
+ module EnterpriseSearch
37
+ end
38
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Licensed to Elasticsearch B.V. under one or more contributor
4
+ # license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright
6
+ # ownership. Elasticsearch B.V. licenses this file to you under
7
+ # the Apache License, Version 2.0 (the "License"); you may
8
+ # not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing,
14
+ # software distributed under the License is distributed on an
15
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ # KIND, either express or implied. See the License for the
17
+ # specific language governing permissions and limitations
18
+ # under the License.
19
+
20
+ module Elastic
21
+ module EnterpriseSearch
22
+ module WorkplaceSearch
23
+ module Actions
24
+ # Permissions - Adds one or more new permissions atop existing permissions
25
+ # Add one or more permission for a given user. Permissions are added atop the existing
26
+ #
27
+ # @param content_source_id [String] Unique ID for a Custom API source, provided upon creation of a Custom API Source (*Required*)
28
+ # @param arguments [Hash] endpoint arguments
29
+ # @option arguments [String] :user The username in context (*Required*)
30
+ # @option arguments [Array] :body List of permissions
31
+ # @option arguments [Hash] :headers optional HTTP headers to send with the request
32
+ #
33
+ # @see https://www.elastic.co/guide/en/workplace-search/current/workplace-search-document-permissions-api.html#add-one
34
+ #
35
+ def add_user_permissions(content_source_id, arguments = {})
36
+ raise ArgumentError, "Required parameter 'content_source_id' missing" unless content_source_id
37
+ raise ArgumentError, "Required parameter 'user' missing" unless arguments[:user]
38
+
39
+ user = arguments[:user]
40
+ body = arguments.delete(:body) || {}
41
+ headers = arguments.delete(:headers) || {}
42
+
43
+ request(
44
+ :post,
45
+ "api/ws/v1/sources/#{content_source_id}/permissions/#{user}/add/",
46
+ arguments,
47
+ body,
48
+ headers
49
+ )
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Licensed to Elasticsearch B.V. under one or more contributor
4
+ # license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright
6
+ # ownership. Elasticsearch B.V. licenses this file to you under
7
+ # the Apache License, Version 2.0 (the "License"); you may
8
+ # not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing,
14
+ # software distributed under the License is distributed on an
15
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ # KIND, either express or implied. See the License for the
17
+ # specific language governing permissions and limitations
18
+ # under the License.
19
+
20
+ module Elastic
21
+ module EnterpriseSearch
22
+ module WorkplaceSearch
23
+ module Actions
24
+ # Analytics - Capture click and feedback analytic events
25
+ # Capture Analytic Events
26
+ #
27
+ # @param arguments [Hash] endpoint arguments
28
+ # @option arguments [String] :access_token OAuth Access Token (*Required*)
29
+ # @option arguments [Object] :body
30
+ # @option body [String] :type
31
+ # @option body [String] :query_id query identifier for the event
32
+ # @option body [Integer] :page page number of the document in the query result set
33
+ # @option body [String] :content_source_id content source identifier for the event document
34
+ # @option body [String] :document_id document identifier for the event
35
+ # @option body [Integer] :rank rank of the document in the overall result set
36
+ # @option body [String] :event the target identifier for a click event
37
+ # @option body [Integer] :score the feedback score, constrained to the values -1 or 1
38
+ # @option arguments [Hash] :headers optional HTTP headers to send with the request
39
+ #
40
+ # @see https://www.elastic.co/guide/en/workplace-search/current/workplace-search-analytics-api.html
41
+ #
42
+ def create_analytics_event(arguments = {})
43
+ raise ArgumentError, "Required parameter 'access_token' missing" unless arguments[:access_token]
44
+
45
+ body = arguments.delete(:body) || {}
46
+ headers = arguments.delete(:headers) || {}
47
+
48
+ request(
49
+ :post,
50
+ 'api/ws/v1/analytics/event/',
51
+ arguments,
52
+ body,
53
+ headers
54
+ )
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Licensed to Elasticsearch B.V. under one or more contributor
4
+ # license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright
6
+ # ownership. Elasticsearch B.V. licenses this file to you under
7
+ # the Apache License, Version 2.0 (the "License"); you may
8
+ # not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing,
14
+ # software distributed under the License is distributed on an
15
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ # KIND, either express or implied. See the License for the
17
+ # specific language governing permissions and limitations
18
+ # under the License.
19
+
20
+ module Elastic
21
+ module EnterpriseSearch
22
+ module WorkplaceSearch
23
+ module Actions
24
+ # ExternalIdentities - Adds a new external identity
25
+ # Adds a new external identity
26
+ #
27
+ # @param content_source_id [String] Unique ID for a Custom API source, provided upon creation of a Custom API Source (*Required*)
28
+ # @param arguments [Hash] endpoint arguments
29
+ # @option arguments [Object] :body (Required: source_user_id, user)
30
+ # @option arguments [Hash] :headers optional HTTP headers to send with the request
31
+ #
32
+ # @see https://www.elastic.co/guide/en/workplace-search/current/workplace-search-external-identities-api.html#add-external-identity
33
+ #
34
+ def create_external_identity(content_source_id, arguments = {})
35
+ raise ArgumentError, "Required parameter 'content_source_id' missing" unless content_source_id
36
+
37
+ body = arguments.delete(:body) || {}
38
+ headers = arguments.delete(:headers) || {}
39
+
40
+ request(
41
+ :post,
42
+ "api/ws/v1/sources/#{content_source_id}/external_identities/",
43
+ arguments,
44
+ body,
45
+ headers
46
+ )
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Licensed to Elasticsearch B.V. under one or more contributor
4
+ # license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright
6
+ # ownership. Elasticsearch B.V. licenses this file to you under
7
+ # the Apache License, Version 2.0 (the "License"); you may
8
+ # not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing,
14
+ # software distributed under the License is distributed on an
15
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ # KIND, either express or implied. See the License for the
17
+ # specific language governing permissions and limitations
18
+ # under the License.
19
+
20
+ module Elastic
21
+ module EnterpriseSearch
22
+ module WorkplaceSearch
23
+ module Actions
24
+ # Documents - Deletes a list of documents from a custom content source
25
+ # Remove documents from a Custom API Source
26
+ #
27
+ # @param content_source_id [String] Unique ID for a Custom API source, provided upon creation of a Custom API Source (*Required*)
28
+ # @param arguments [Hash] endpoint arguments
29
+ # @option arguments [Array] :document_ids
30
+ # @option arguments [Hash] :headers optional HTTP headers to send with the request
31
+ #
32
+ # @see https://www.elastic.co/guide/en/workplace-search/current/workplace-search-custom-sources-api.html#destroy
33
+ #
34
+ def delete_documents(content_source_id, arguments = {})
35
+ raise ArgumentError, "Required parameter 'content_source_id' missing" unless content_source_id
36
+
37
+ document_ids = arguments.delete(:document_ids) || {}
38
+ headers = arguments.delete(:headers) || {}
39
+
40
+ request(
41
+ :post,
42
+ "api/ws/v1/sources/#{content_source_id}/documents/bulk_destroy/",
43
+ arguments,
44
+ document_ids,
45
+ headers
46
+ )
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Licensed to Elasticsearch B.V. under one or more contributor
4
+ # license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright
6
+ # ownership. Elasticsearch B.V. licenses this file to you under
7
+ # the Apache License, Version 2.0 (the "License"); you may
8
+ # not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing,
14
+ # software distributed under the License is distributed on an
15
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ # KIND, either express or implied. See the License for the
17
+ # specific language governing permissions and limitations
18
+ # under the License.
19
+
20
+ module Elastic
21
+ module EnterpriseSearch
22
+ module WorkplaceSearch
23
+ module Actions
24
+ # ExternalIdentities - Deletes an external identity
25
+ # Deletes an external identity
26
+ #
27
+ # @param content_source_id [String] Unique ID for a Custom API source, provided upon creation of a Custom API Source (*Required*)
28
+ # @param arguments [Hash] endpoint arguments
29
+ # @option arguments [String] :user The username in context (*Required*)
30
+ # @option arguments [Hash] :headers optional HTTP headers to send with the request
31
+ #
32
+ # @see https://www.elastic.co/guide/en/workplace-search/current/workplace-search-external-identities-api.html#remove-external-identity
33
+ #
34
+ def delete_external_identity(content_source_id, arguments = {})
35
+ raise ArgumentError, "Required parameter 'content_source_id' missing" unless content_source_id
36
+ raise ArgumentError, "Required parameter 'user' missing" unless arguments[:user]
37
+
38
+ user = arguments[:user]
39
+
40
+ headers = arguments.delete(:headers) || {}
41
+
42
+ request(
43
+ :delete,
44
+ "api/ws/v1/sources/#{content_source_id}/external_identities/#{user}/",
45
+ arguments,
46
+ {},
47
+ headers
48
+ )
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Licensed to Elasticsearch B.V. under one or more contributor
4
+ # license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright
6
+ # ownership. Elasticsearch B.V. licenses this file to you under
7
+ # the Apache License, Version 2.0 (the "License"); you may
8
+ # not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing,
14
+ # software distributed under the License is distributed on an
15
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ # KIND, either express or implied. See the License for the
17
+ # specific language governing permissions and limitations
18
+ # under the License.
19
+
20
+ module Elastic
21
+ module EnterpriseSearch
22
+ module WorkplaceSearch
23
+ module Actions
24
+ # ExternalIdentities - Retrieves an external identity
25
+ # Retrieves an external identity
26
+ #
27
+ # @param content_source_id [String] Unique ID for a Custom API source, provided upon creation of a Custom API Source (*Required*)
28
+ # @param arguments [Hash] endpoint arguments
29
+ # @option arguments [String] :user The username in context (*Required*)
30
+ # @option arguments [Hash] :headers optional HTTP headers to send with the request
31
+ #
32
+ # @see https://www.elastic.co/guide/en/workplace-search/current/workplace-search-external-identities-api.html#show-external-identity
33
+ #
34
+ def external_identity(content_source_id, arguments = {})
35
+ raise ArgumentError, "Required parameter 'content_source_id' missing" unless content_source_id
36
+ raise ArgumentError, "Required parameter 'user' missing" unless arguments[:user]
37
+
38
+ user = arguments[:user]
39
+
40
+ headers = arguments.delete(:headers) || {}
41
+
42
+ request(
43
+ :get,
44
+ "api/ws/v1/sources/#{content_source_id}/external_identities/#{user}/",
45
+ arguments,
46
+ {},
47
+ headers
48
+ )
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Licensed to Elasticsearch B.V. under one or more contributor
4
+ # license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright
6
+ # ownership. Elasticsearch B.V. licenses this file to you under
7
+ # the Apache License, Version 2.0 (the "License"); you may
8
+ # not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing,
14
+ # software distributed under the License is distributed on an
15
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ # KIND, either express or implied. See the License for the
17
+ # specific language governing permissions and limitations
18
+ # under the License.
19
+
20
+ module Elastic
21
+ module EnterpriseSearch
22
+ module WorkplaceSearch
23
+ module Actions
24
+ # Documents - Indexes one or more new documents into a custom content source, or updates one or more existing documents
25
+ # Indexes one or more new documents into a custom content source, or updates one or more existing documents
26
+ #
27
+ # @param content_source_id [String] Unique ID for a Custom API source, provided upon creation of a Custom API Source (*Required*)
28
+ # @param arguments [Hash] endpoint arguments
29
+ # @option arguments [Array] :documents (*Required*)
30
+ # @option arguments [Hash] :headers optional HTTP headers to send with the request
31
+ #
32
+ # @see https://www.elastic.co/guide/en/workplace-search/current/workplace-search-custom-sources-api.html#index-and-update
33
+ #
34
+ def index_documents(content_source_id, arguments = {})
35
+ raise ArgumentError, "Required parameter 'content_source_id' missing" unless content_source_id
36
+ raise ArgumentError, "Required parameter 'documents' missing" unless arguments[:documents]
37
+
38
+ documents = arguments.delete(:documents) || {}
39
+ headers = arguments.delete(:headers) || {}
40
+
41
+ request(
42
+ :post,
43
+ "api/ws/v1/sources/#{content_source_id}/documents/bulk_create/",
44
+ arguments,
45
+ documents,
46
+ headers
47
+ )
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end