elastic-enterprise-search 7.10.0.beta.1 → 7.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/.ci/jobs/elastic+enterprise-search-ruby+7.10.0.beta.1.yml +12 -0
  3. data/.ci/test-matrix.yml +2 -1
  4. data/.github/workflows/testing.yml +1 -1
  5. data/.gitignore +1 -0
  6. data/CONTRIBUTING.md +43 -0
  7. data/Gemfile +1 -0
  8. data/README.md +7 -225
  9. data/Rakefile +1 -24
  10. data/docs/guide/app-search-api.asciidoc +172 -0
  11. data/docs/guide/connecting.asciidoc +125 -0
  12. data/docs/guide/development.asciidoc +42 -0
  13. data/docs/guide/enterprise-search-api.asciidoc +46 -0
  14. data/docs/guide/index.asciidoc +17 -0
  15. data/docs/guide/installation.asciidoc +18 -0
  16. data/docs/guide/overview.asciidoc +59 -0
  17. data/docs/guide/workplace-search-api.asciidoc +121 -0
  18. data/elastic-enterprise-search.gemspec +5 -4
  19. data/lib/elastic/app-search/api/add_meta_engine_source.rb +7 -4
  20. data/lib/elastic/app-search/api/api_logs.rb +15 -16
  21. data/lib/elastic/app-search/api/count_analytics.rb +7 -5
  22. data/lib/elastic/app-search/api/create_curation.rb +8 -6
  23. data/lib/elastic/app-search/api/create_engine.rb +9 -7
  24. data/lib/elastic/app-search/api/create_synonym_set.rb +6 -5
  25. data/lib/elastic/app-search/api/curation.rb +6 -5
  26. data/lib/elastic/app-search/api/delete_curation.rb +6 -5
  27. data/lib/elastic/app-search/api/delete_documents.rb +7 -4
  28. data/lib/elastic/app-search/api/delete_engine.rb +5 -3
  29. data/lib/elastic/app-search/api/delete_meta_engine_source.rb +7 -4
  30. data/lib/elastic/app-search/api/delete_synonym_set.rb +6 -5
  31. data/lib/elastic/app-search/api/documents.rb +7 -4
  32. data/lib/elastic/app-search/api/engine.rb +5 -3
  33. data/lib/elastic/app-search/api/index_documents.rb +7 -4
  34. data/lib/elastic/app-search/api/list_curations.rb +7 -5
  35. data/lib/elastic/app-search/api/list_documents.rb +7 -5
  36. data/lib/elastic/app-search/api/list_engines.rb +7 -5
  37. data/lib/elastic/app-search/api/list_synonym_sets.rb +7 -5
  38. data/lib/elastic/app-search/api/log_clickthrough.rb +10 -7
  39. data/lib/elastic/app-search/api/multi_search.rb +8 -7
  40. data/lib/elastic/app-search/api/put_curation.rb +9 -8
  41. data/lib/elastic/app-search/api/put_documents.rb +7 -4
  42. data/lib/elastic/app-search/api/put_schema.rb +7 -4
  43. data/lib/elastic/app-search/api/put_search_settings.rb +6 -3
  44. data/lib/elastic/app-search/api/put_synonym_set.rb +7 -7
  45. data/lib/elastic/app-search/api/query_suggestion.rb +8 -6
  46. data/lib/elastic/app-search/api/reset_search_settings.rb +5 -3
  47. data/lib/elastic/app-search/api/schema.rb +6 -4
  48. data/lib/elastic/app-search/api/search.rb +5 -3
  49. data/lib/elastic/app-search/api/search_settings.rb +6 -4
  50. data/lib/elastic/app-search/api/synonym_set.rb +6 -5
  51. data/lib/elastic/app-search/api/top_clicks_analytics.rb +9 -7
  52. data/lib/elastic/app-search/api/top_queries_analytics.rb +8 -6
  53. data/lib/elastic/app-search/app_search.rb +19 -2
  54. data/lib/elastic/enterprise-search/api/health.rb +6 -1
  55. data/lib/elastic/enterprise-search/api/put_read_only.rb +5 -1
  56. data/lib/elastic/enterprise-search/api/read_only.rb +6 -1
  57. data/lib/elastic/enterprise-search/api/stats.rb +6 -2
  58. data/lib/elastic/enterprise-search/api/version.rb +6 -1
  59. data/lib/elastic/enterprise-search/client.rb +15 -2
  60. data/lib/elastic/enterprise-search/request.rb +25 -13
  61. data/lib/elastic/enterprise-search/utils.rb +5 -6
  62. data/lib/elastic/enterprise-search/version.rb +1 -1
  63. data/lib/elastic/enterprise_search.rb +1 -1
  64. data/lib/elastic/workplace-search/api/add_user_permissions.rb +10 -9
  65. data/lib/elastic/workplace-search/api/create_analytics_event.rb +59 -0
  66. data/lib/elastic/workplace-search/api/create_external_identity.rb +9 -7
  67. data/lib/elastic/workplace-search/api/delete_documents.rb +9 -7
  68. data/lib/elastic/workplace-search/api/delete_external_identity.rb +10 -6
  69. data/lib/elastic/workplace-search/api/external_identity.rb +10 -6
  70. data/lib/elastic/workplace-search/api/index_documents.rb +11 -8
  71. data/lib/elastic/workplace-search/api/list_external_identities.rb +11 -7
  72. data/lib/elastic/workplace-search/api/list_permissions.rb +11 -7
  73. data/lib/elastic/workplace-search/api/put_external_identity.rb +10 -9
  74. data/lib/elastic/workplace-search/api/put_user_permissions.rb +10 -9
  75. data/lib/elastic/workplace-search/api/remove_user_permissions.rb +10 -9
  76. data/lib/elastic/workplace-search/api/search.rb +19 -1
  77. data/lib/elastic/workplace-search/api/user_permissions.rb +10 -6
  78. data/lib/elastic/workplace-search/workplace_search.rb +26 -1
  79. data/spec/app-search/api_curations_spec.rb +97 -0
  80. data/spec/app-search/api_documents_spec.rb +20 -6
  81. data/spec/app-search/api_engines_spec.rb +4 -4
  82. data/{lib/generator/templates/_license.erb → spec/app-search/api_log_clickthrough_spec.rb} +18 -0
  83. data/spec/app-search/api_meta_engines_spec.rb +72 -0
  84. data/spec/app-search/api_query_suggestion_spec.rb +39 -0
  85. data/spec/app-search/api_schema_spec.rb +17 -3
  86. data/spec/app-search/api_search_settings_spec.rb +76 -0
  87. data/spec/app-search/api_synonyms_spec.rb +79 -0
  88. data/spec/app-search/client_spec.rb +20 -0
  89. data/spec/enterprise-search/client_spec.rb +11 -0
  90. data/spec/enterprise-search/request_spec.rb +22 -0
  91. data/spec/enterprise-search/utils_spec.rb +46 -0
  92. data/spec/fixtures/vcr/app_search/add_meta_engine_source.yml +109 -0
  93. data/spec/fixtures/vcr/app_search/api_documents.yml +56 -0
  94. data/spec/fixtures/vcr/app_search/{index_documents.yml → api_index_documents.yml} +11 -10
  95. data/spec/fixtures/vcr/app_search/api_log_clickthrough.yml +54 -0
  96. data/spec/fixtures/vcr/app_search/api_put_schema.yml +109 -0
  97. data/spec/fixtures/vcr/app_search/api_put_search_settings.yml +56 -0
  98. data/spec/fixtures/vcr/app_search/api_query_suggestion.yml +59 -0
  99. data/spec/fixtures/vcr/app_search/api_reset_search_settings.yml +56 -0
  100. data/spec/fixtures/vcr/app_search/{schema.yml → api_schema.yml} +12 -11
  101. data/spec/fixtures/vcr/app_search/api_search_settings.yml +56 -0
  102. data/spec/fixtures/vcr/app_search/create_curation.yml +113 -0
  103. data/spec/fixtures/vcr/{create_engine.yml → app_search/create_engine.yml} +0 -0
  104. data/spec/fixtures/vcr/app_search/create_meta_engine.yml +56 -0
  105. data/spec/fixtures/vcr/app_search/create_synonym_set.yml +56 -0
  106. data/spec/fixtures/vcr/app_search/delete_curation.yml +56 -0
  107. data/spec/fixtures/vcr/{delete_engine.yml → app_search/delete_engine.yml} +0 -0
  108. data/spec/fixtures/vcr/app_search/delete_meta_engine_source.yml +56 -0
  109. data/spec/fixtures/vcr/app_search/delete_synonym_set.yml +56 -0
  110. data/spec/fixtures/vcr/app_search/get_curation.yml +56 -0
  111. data/spec/fixtures/vcr/{get_engine.yml → app_search/get_engine.yml} +0 -0
  112. data/spec/fixtures/vcr/app_search/list_curations.yml +56 -0
  113. data/spec/fixtures/vcr/{list_engines.yml → app_search/list_engines.yml} +0 -0
  114. data/spec/fixtures/vcr/app_search/list_synonym_sets.yml +56 -0
  115. data/spec/fixtures/vcr/app_search/multi_query_search.yml +2 -2
  116. data/spec/fixtures/vcr/app_search/put_curation.yml +113 -0
  117. data/spec/fixtures/vcr/app_search/put_synonym_set.yml +56 -0
  118. data/spec/fixtures/vcr/app_search/synonym_set.yml +56 -0
  119. data/spec/fixtures/vcr/{add_user_permissions.yml → workplace_search/add_user_permissions.yml} +11 -9
  120. data/spec/fixtures/vcr/{clear_user_permissions.yml → workplace_search/clear_user_permissions.yml} +11 -9
  121. data/spec/fixtures/vcr/workplace_search/create_analytics_event.yml +55 -0
  122. data/spec/fixtures/vcr/workplace_search/create_external_identity.yml +53 -0
  123. data/spec/fixtures/vcr/{delete_documents.yml → workplace_search/delete_documents.yml} +11 -9
  124. data/spec/fixtures/vcr/workplace_search/delete_external_identity.yml +53 -0
  125. data/spec/fixtures/vcr/{index_documents.yml → workplace_search/index_documents.yml} +11 -9
  126. data/spec/fixtures/vcr/workplace_search/list_external_identities.yml +53 -0
  127. data/spec/fixtures/vcr/{list_permissions.yml → workplace_search/list_permissions.yml} +11 -9
  128. data/spec/fixtures/vcr/workplace_search/oauth_request_token.yml +57 -0
  129. data/spec/fixtures/vcr/workplace_search/put_external_identity.yml +53 -0
  130. data/spec/fixtures/vcr/{put_user_permissions.yml → workplace_search/put_user_permissions.yml} +22 -18
  131. data/spec/fixtures/vcr/{remove_user_permissions.yml → workplace_search/remove_user_permissions.yml} +11 -9
  132. data/spec/fixtures/vcr/workplace_search/retrieve_external_identity.yml +53 -0
  133. data/spec/fixtures/vcr/workplace_search/search_request.yml +60 -0
  134. data/spec/fixtures/vcr/{user_permissions_empty.yml → workplace_search/user_permissions_empty.yml} +11 -9
  135. data/spec/integration/enterprise_search_api_spec.rb +2 -2
  136. data/spec/spec_helper.rb +2 -0
  137. data/spec/workplace-search/client_spec.rb +10 -2
  138. data/spec/workplace-search/create_analytics_event_spec.rb +59 -0
  139. data/spec/workplace-search/documents_spec.rb +80 -0
  140. data/spec/workplace-search/external_identities_spec.rb +84 -0
  141. data/spec/workplace-search/{api_spec.rb → permissions_spec.rb} +14 -66
  142. data/spec/workplace-search/search_spec.rb +53 -0
  143. metadata +96 -36
  144. data/lib/generator/documentation_helper.rb +0 -94
  145. data/lib/generator/endpoint_generator.rb +0 -119
  146. data/lib/generator/parameters_exceptions.rb +0 -40
  147. data/lib/generator/parameters_helper.rb +0 -144
  148. data/lib/generator/templates/endpoint_template.erb +0 -29
  149. data/lib/generator/templates/spec_template.erb +0 -1
  150. data/lib/generator/utils.rb +0 -70
  151. data/spec/fixtures/vcr/create_document.yml +0 -54
@@ -22,12 +22,26 @@ require_relative './api_spec_helper'
22
22
 
23
23
  describe Elastic::EnterpriseSearch::AppSearch::Client do
24
24
  context 'schema' do
25
+ let(:engine_name) { 'films' }
26
+
25
27
  it 'returns an engine schema' do
26
- VCR.use_cassette('app_search/schema') do
27
- response = @client.schema('books')
28
+ VCR.use_cassette('app_search/api_schema') do
29
+ response = @client.schema(engine_name)
28
30
 
29
31
  expect(response.status).to eq 200
30
- expect(response.body).to eq({ 'author' => 'text', 'title' => 'text' })
32
+ expect(response.body).to eq({ 'title' => 'text', 'year' => 'number', 'director' => 'text' })
33
+ end
34
+ end
35
+
36
+ it 'updates a schema for an engine' do
37
+ VCR.use_cassette('app_search/api_put_schema') do
38
+ response = @client.put_schema(engine_name, schema: { year: 'text' })
39
+
40
+ expect(response.status).to eq 200
41
+ expect(response.body).to eq({ 'title' => 'text', 'year' => 'text', 'director' => 'text' })
42
+
43
+ response = @client.schema(engine_name)
44
+ expect(response.body).to eq({ 'title' => 'text', 'year' => 'text', 'director' => 'text' })
31
45
  end
32
46
  end
33
47
  end
@@ -0,0 +1,76 @@
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_relative './api_spec_helper'
21
+
22
+ describe Elastic::EnterpriseSearch::AppSearch::Client do
23
+ context 'search settings' do
24
+ let(:engine_name) { 'films' }
25
+
26
+ it 'returns engine search settings' do
27
+ VCR.use_cassette('app_search/api_search_settings') do
28
+ response = @client.search_settings(engine_name)
29
+
30
+ expect(response.status).to eq 200
31
+ expect(response.body['search_fields'])
32
+ expect(response.body['result_fields'])
33
+ expect(response.body['boosts'])
34
+ end
35
+ end
36
+
37
+ it 'updates search settings' do
38
+ VCR.use_cassette('app_search/api_put_search_settings') do
39
+ body = {
40
+ boosts: {
41
+ year: [
42
+ {
43
+ type: 'proximity',
44
+ function: 'linear',
45
+ center: 1950,
46
+ factor: 9
47
+ }
48
+ ]
49
+ }
50
+ }
51
+ response = @client.put_search_settings(engine_name, body: body)
52
+
53
+ expect(response.status).to eq 200
54
+ expect(response.body['boosts']).to eq(
55
+ {
56
+ 'year' => [
57
+ { 'type' => 'proximity',
58
+ 'function' => 'linear',
59
+ 'center' => 1950,
60
+ 'factor' => 9 }
61
+ ]
62
+ }
63
+ )
64
+ end
65
+ end
66
+
67
+ it 'resets search settings' do
68
+ VCR.use_cassette('app_search/api_reset_search_settings') do
69
+ response = @client.reset_search_settings(engine_name)
70
+
71
+ expect(response.body['boosts']).to eq({})
72
+ expect(response.status).to eq 200
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,79 @@
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 'spec_helper'
21
+ require_relative './api_spec_helper'
22
+
23
+ describe Elastic::EnterpriseSearch::AppSearch::Client do
24
+ context 'synonyms' do
25
+ let(:engine_name) { 'videogames' }
26
+ let(:id) { 'id' }
27
+
28
+ it 'creates a synonym set' do
29
+ VCR.use_cassette('app_search/create_synonym_set') do
30
+ response = @client.create_synonym_set(engine_name, body: { synonyms: ['joypad', 'gamepad'] })
31
+
32
+ expect(response.status).to eq 200
33
+ expect(response.body['synonyms'].sort).to eq ['gamepad', 'joypad']
34
+ expect(response.body['id'])
35
+ end
36
+ end
37
+
38
+ it 'lists synonym sets' do
39
+ VCR.use_cassette('app_search/list_synonym_sets') do
40
+ response = @client.list_synonym_sets(engine_name)
41
+
42
+ expect(response.status).to eq 200
43
+ expect(response.body['results'].count).to be > 0
44
+ expect(response.body['results'].first['synonyms'].sort).to eq ['gamepad', 'joypad']
45
+ end
46
+ end
47
+
48
+ it 'retrieves a synonym set by ID' do
49
+ VCR.use_cassette('app_search/synonym_set') do
50
+ response = @client.synonym_set(engine_name, synonym_set_id: id)
51
+
52
+ expect(response.status).to eq 200
53
+ expect(response.body).to eq({ 'id' => id, 'synonyms' => ['joypad', 'gamepad'] })
54
+ end
55
+ end
56
+
57
+ it 'updates a synonym set' do
58
+ VCR.use_cassette('app_search/put_synonym_set') do
59
+ response = @client.put_synonym_set(
60
+ engine_name,
61
+ synonym_set_id: id,
62
+ body: { synonyms: ['gamepad', 'controller'] }
63
+ )
64
+
65
+ expect(response.status).to eq 200
66
+ expect(response.body).to eq({ 'id' => id, 'synonyms' => ['gamepad', 'controller'] })
67
+ end
68
+ end
69
+
70
+ it 'deletes a synonym set' do
71
+ VCR.use_cassette('app_search/delete_synonym_set') do
72
+ response = @client.delete_synonym_set(engine_name, synonym_set_id: id)
73
+
74
+ expect(response.status).to eq 200
75
+ expect(response.body).to eq({ 'deleted' => true })
76
+ end
77
+ end
78
+ end
79
+ end
@@ -65,4 +65,24 @@ describe Elastic::EnterpriseSearch::AppSearch::Client do
65
65
  expect(app_client.http_auth).to eq api_key
66
66
  end
67
67
  end
68
+
69
+ describe '#create_signed_search_key' do
70
+ let(:key) { 'private-key-value' }
71
+ let(:api_key_name) { 'private-key' }
72
+ let(:enforced_options) { { query: 'cat' } }
73
+
74
+ subject do
75
+ Elastic::EnterpriseSearch::AppSearch::Client.create_signed_search_key(
76
+ key,
77
+ api_key_name,
78
+ enforced_options
79
+ )
80
+ end
81
+
82
+ it 'should build a valid jwt' do
83
+ decoded_token = JWT.decode(subject, key, true, algorithm: 'HS256')
84
+ expect(decoded_token[0]['api_key_name']).to(eq(api_key_name))
85
+ expect(decoded_token[0]['query']).to(eq('cat'))
86
+ end
87
+ end
68
88
  end
@@ -93,4 +93,15 @@ describe Elastic::EnterpriseSearch::Client do
93
93
  expect(client.workplace_search.host).to eq host
94
94
  end
95
95
  end
96
+
97
+ context 'meta-header' do
98
+ let(:transport) { Elastic::EnterpriseSearch::Client.new.instance_variable_get('@transport') }
99
+ let(:subject) { transport.transport.connections.first.connection.headers }
100
+ let(:regexp) { /^[a-z]{1,}=[a-z0-9.\-]{1,}(?:,[a-z]{1,}=[a-z0-9._-]+)*$/ }
101
+
102
+ it 'sends the correct meta header to transport' do
103
+ expect(subject['x-elastic-client-meta']).to match(regexp)
104
+ expect(subject['x-elastic-client-meta']).to match(/^ent=[0-9]+\.[0-9]+\.[0-9]+(p)?,/)
105
+ end
106
+ end
96
107
  end
@@ -90,6 +90,28 @@ describe Elastic::EnterpriseSearch::Client do
90
90
  expect(client.put('test', {}, { 'params' => 'test' }).status).to eq(200)
91
91
  end
92
92
  end
93
+
94
+ context 'with custom headers' do
95
+ let(:custom_header) { { 'x-custom-header' => 'Custom Header Value' } }
96
+
97
+ it 'builds the right request' do
98
+ stub_request(:get, "#{host}/test")
99
+ .with(body: { 'params' => 'test' })
100
+ .with(headers: headers.merge(custom_header))
101
+ .to_return(stub_response)
102
+
103
+ expect(client.request(:get, 'test', {}, { 'params' => 'test' }, custom_header).status).to eq(200)
104
+ end
105
+
106
+ it 'builds the right request for put' do
107
+ stub_request(:put, "#{host}/test")
108
+ .with(body: { 'params' => 'test' })
109
+ .with(headers: headers.merge(custom_header))
110
+ .to_return(stub_response)
111
+
112
+ expect(client.put('test', {}, { 'params' => 'test' }, custom_header).status).to eq(200)
113
+ end
114
+ end
93
115
  end
94
116
 
95
117
  context 'with ssl' do
@@ -0,0 +1,46 @@
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 'spec_helper'
21
+ require_relative './../webmock_requires'
22
+
23
+ describe Elastic::EnterpriseSearch::Utils do
24
+ let(:subject) { Class.new { extend Elastic::EnterpriseSearch::Utils } }
25
+ let(:symbolized_hash) do
26
+ { title: 'This is the title',
27
+
28
+ year: 1985,
29
+ description: 'A generic description' }
30
+ end
31
+ let(:stringified_hash) do
32
+ {
33
+ 'title' => 'This is the title',
34
+ 'year' => 1985,
35
+ 'description' => 'A generic description'
36
+ }
37
+ end
38
+
39
+ it 'stringifies keys in a hash' do
40
+ expect(subject.stringify_keys(symbolized_hash)).to eq stringified_hash
41
+ end
42
+
43
+ it 'symbolizes keys in a hash' do
44
+ expect(described_class.symbolize_keys(stringified_hash)).to eq symbolized_hash
45
+ end
46
+ end
@@ -0,0 +1,109 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://localhost:3002/api/as/v1/engines/?name=comicbooks
6
+ body:
7
+ encoding: UTF-8
8
+ string: "{}"
9
+ headers:
10
+ User-Agent:
11
+ - 'elastic-enteprise-search-ruby/7.11.0.pre (RUBY_VERSION: 2.7.2; linux x86_64;
12
+ elasticsearch-transport: 7.10.1)'
13
+ Content-Type:
14
+ - application/json
15
+ Authorization:
16
+ - Bearer api_key
17
+ Accept-Encoding:
18
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
19
+ Accept:
20
+ - "*/*"
21
+ response:
22
+ status:
23
+ code: 200
24
+ message: OK
25
+ headers:
26
+ X-Frame-Options:
27
+ - SAMEORIGIN
28
+ X-Xss-Protection:
29
+ - 1; mode=block
30
+ X-Content-Type-Options:
31
+ - nosniff
32
+ X-App-Search-Version:
33
+ - 7.12.0
34
+ Content-Type:
35
+ - application/json;charset=utf-8
36
+ Vary:
37
+ - Accept-Encoding, User-Agent
38
+ - Origin
39
+ Etag:
40
+ - W/"aac451759143f353e9b928edc402526a--gzip"
41
+ Cache-Control:
42
+ - max-age=0, private, must-revalidate
43
+ X-Request-Id:
44
+ - 57603887-9e92-4392-abfc-a72c86079c36
45
+ X-Runtime:
46
+ - '0.627512'
47
+ Transfer-Encoding:
48
+ - chunked
49
+ Server:
50
+ - Jetty(9.4.33.v20201020)
51
+ body:
52
+ encoding: ASCII-8BIT
53
+ string: '{"name":"comicbooks","type":"default","language":null,"document_count":0}'
54
+ http_version:
55
+ recorded_at: Fri, 15 Jan 2021 16:30:41 GMT
56
+ - request:
57
+ method: post
58
+ uri: http://localhost:3002/api/as/v1/engines/new-meta-engine/source_engines/
59
+ body:
60
+ encoding: UTF-8
61
+ string: '["comicbooks"]'
62
+ headers:
63
+ User-Agent:
64
+ - 'elastic-enteprise-search-ruby/7.11.0.pre (RUBY_VERSION: 2.7.2; linux x86_64;
65
+ elasticsearch-transport: 7.10.1)'
66
+ Content-Type:
67
+ - application/json
68
+ Authorization:
69
+ - Bearer api_key
70
+ Accept-Encoding:
71
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
72
+ Accept:
73
+ - "*/*"
74
+ response:
75
+ status:
76
+ code: 200
77
+ message: OK
78
+ headers:
79
+ X-Frame-Options:
80
+ - SAMEORIGIN
81
+ X-Xss-Protection:
82
+ - 1; mode=block
83
+ X-Content-Type-Options:
84
+ - nosniff
85
+ X-App-Search-Version:
86
+ - 7.12.0
87
+ Content-Type:
88
+ - application/json;charset=utf-8
89
+ Vary:
90
+ - Accept-Encoding, User-Agent
91
+ - Origin
92
+ Etag:
93
+ - W/"50161cac2a450348c6cba677e3abbdfe--gzip"
94
+ Cache-Control:
95
+ - max-age=0, private, must-revalidate
96
+ X-Request-Id:
97
+ - e56d499d-a1e9-4b7b-a707-e7432c7fc48a
98
+ X-Runtime:
99
+ - '0.079150'
100
+ Transfer-Encoding:
101
+ - chunked
102
+ Server:
103
+ - Jetty(9.4.33.v20201020)
104
+ body:
105
+ encoding: ASCII-8BIT
106
+ string: '{"name":"new-meta-engine","type":"meta","source_engines":["videogames","books","comicbooks"],"document_count":15}'
107
+ http_version:
108
+ recorded_at: Fri, 15 Jan 2021 16:30:41 GMT
109
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,56 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://localhost:3002/api/as/v1/engines/videogames/documents/
6
+ body:
7
+ encoding: UTF-8
8
+ string: "['doc-6005c044ad7f0c8b464b8cc4', 'doc-6005c044ad7f0c8b464b8cc3']"
9
+ headers:
10
+ User-Agent:
11
+ - 'elastic-enteprise-search-ruby/7.11.0.pre (RUBY_VERSION: 2.7.2; linux x86_64;
12
+ elasticsearch-transport: 7.10.1)'
13
+ Content-Type:
14
+ - application/json
15
+ Authorization:
16
+ - Bearer api_key
17
+ Accept-Encoding:
18
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
19
+ Accept:
20
+ - "*/*"
21
+ response:
22
+ status:
23
+ code: 200
24
+ message: OK
25
+ headers:
26
+ X-Frame-Options:
27
+ - SAMEORIGIN
28
+ X-Xss-Protection:
29
+ - 1; mode=block
30
+ X-Content-Type-Options:
31
+ - nosniff
32
+ X-App-Search-Version:
33
+ - 7.12.0
34
+ Content-Type:
35
+ - application/json;charset=utf-8
36
+ Vary:
37
+ - Accept-Encoding, User-Agent
38
+ - Origin
39
+ Etag:
40
+ - W/"bec634096368170891453a3d92df309a--gzip"
41
+ Cache-Control:
42
+ - max-age=0, private, must-revalidate
43
+ X-Request-Id:
44
+ - bb90179c-bf2e-4b54-b9dc-0aacfc0715ac
45
+ X-Runtime:
46
+ - '0.080462'
47
+ Transfer-Encoding:
48
+ - chunked
49
+ Server:
50
+ - Jetty(9.4.33.v20201020)
51
+ body:
52
+ encoding: ASCII-8BIT
53
+ string: '[{"name":"Galaxxian","year":"1979","id":"doc-6005c044ad7f0c8b464b8cc4"},{"name":"Pack-Man","year":"1980","id":"doc-6005c044ad7f0c8b464b8cc3"}]'
54
+ http_version:
55
+ recorded_at: Mon, 18 Jan 2021 17:10:03 GMT
56
+ recorded_with: VCR 3.0.3