elasticsearch-xpack 5.5.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -4
  3. data/Rakefile +16 -30
  4. data/elasticsearch-xpack.gemspec +3 -4
  5. data/examples/watcher/error_500.rb +23 -14
  6. data/lib/elasticsearch/xpack/api/actions/license/delete.rb +1 -1
  7. data/lib/elasticsearch/xpack/api/actions/license/get.rb +1 -1
  8. data/lib/elasticsearch/xpack/api/actions/license/post.rb +1 -1
  9. data/lib/elasticsearch/xpack/api/actions/machine_learning/close_job.rb +3 -1
  10. data/lib/elasticsearch/xpack/api/actions/machine_learning/delete_datafeed.rb +1 -1
  11. data/lib/elasticsearch/xpack/api/actions/machine_learning/delete_expired_data.rb +0 -5
  12. data/lib/elasticsearch/xpack/api/actions/machine_learning/delete_filter.rb +0 -4
  13. data/lib/elasticsearch/xpack/api/actions/machine_learning/delete_job.rb +2 -2
  14. data/lib/elasticsearch/xpack/api/actions/machine_learning/delete_model_snapshot.rb +2 -2
  15. data/lib/elasticsearch/xpack/api/actions/machine_learning/flush_job.rb +6 -3
  16. data/lib/elasticsearch/xpack/api/actions/machine_learning/forecast.rb +31 -0
  17. data/lib/elasticsearch/xpack/api/actions/machine_learning/get_buckets.rb +2 -2
  18. data/lib/elasticsearch/xpack/api/actions/machine_learning/get_categories.rb +2 -2
  19. data/lib/elasticsearch/xpack/api/actions/machine_learning/get_datafeed_stats.rb +6 -2
  20. data/lib/elasticsearch/xpack/api/actions/machine_learning/get_datafeeds.rb +9 -5
  21. data/lib/elasticsearch/xpack/api/actions/machine_learning/get_filters.rb +1 -5
  22. data/lib/elasticsearch/xpack/api/actions/machine_learning/get_influencers.rb +2 -2
  23. data/lib/elasticsearch/xpack/api/actions/machine_learning/get_job_stats.rb +5 -1
  24. data/lib/elasticsearch/xpack/api/actions/machine_learning/get_jobs.rb +7 -3
  25. data/lib/elasticsearch/xpack/api/actions/machine_learning/get_model_snapshots.rb +2 -2
  26. data/lib/elasticsearch/xpack/api/actions/machine_learning/get_overall_buckets.rb +44 -0
  27. data/lib/elasticsearch/xpack/api/actions/machine_learning/get_records.rb +4 -2
  28. data/lib/elasticsearch/xpack/api/actions/machine_learning/open_job.rb +2 -2
  29. data/lib/elasticsearch/xpack/api/actions/machine_learning/post_data.rb +2 -2
  30. data/lib/elasticsearch/xpack/api/actions/machine_learning/preview_datafeed.rb +2 -2
  31. data/lib/elasticsearch/xpack/api/actions/machine_learning/put_datafeed.rb +2 -2
  32. data/lib/elasticsearch/xpack/api/actions/machine_learning/put_filter.rb +0 -4
  33. data/lib/elasticsearch/xpack/api/actions/machine_learning/put_job.rb +2 -2
  34. data/lib/elasticsearch/xpack/api/actions/machine_learning/revert_model_snapshot.rb +4 -2
  35. data/lib/elasticsearch/xpack/api/actions/machine_learning/start_datafeed.rb +4 -2
  36. data/lib/elasticsearch/xpack/api/actions/machine_learning/stop_datafeed.rb +4 -2
  37. data/lib/elasticsearch/xpack/api/actions/machine_learning/update_datafeed.rb +3 -2
  38. data/lib/elasticsearch/xpack/api/actions/machine_learning/update_job.rb +2 -2
  39. data/lib/elasticsearch/xpack/api/actions/machine_learning/update_model_snapshot.rb +3 -2
  40. data/lib/elasticsearch/xpack/api/actions/machine_learning/validate.rb +1 -4
  41. data/lib/elasticsearch/xpack/api/actions/machine_learning/validate_detector.rb +0 -4
  42. data/lib/elasticsearch/xpack/api/actions/migration/deprecations.rb +26 -0
  43. data/lib/elasticsearch/xpack/api/actions/migration/get_assistance.rb +33 -0
  44. data/lib/elasticsearch/xpack/api/actions/migration/upgrade.rb +31 -0
  45. data/lib/elasticsearch/xpack/api/actions/security/put_user.rb +1 -0
  46. data/lib/elasticsearch/xpack/api/actions/ssl/certificates.rb +19 -0
  47. data/lib/elasticsearch/xpack/api/namespace/migration.rb +18 -0
  48. data/lib/elasticsearch/xpack/api/namespace/ssl.rb +18 -0
  49. data/lib/elasticsearch/xpack/version.rb +1 -1
  50. metadata +19 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 07db460f6169c230788a8065924cf9bfabf75ded
4
- data.tar.gz: 99035150cc2c228c4456e23273dbf5a55b5c24ba
3
+ metadata.gz: 6d48434e595d29f97917ce830f882a8ed59adae3
4
+ data.tar.gz: e0ccd6d9d03a15b5903c4f29ee2c1c65b68abd39
5
5
  SHA512:
6
- metadata.gz: 2b352de12499a84034a704a66a78ca5022a604bc231eb5c5a1b113d41ec9accc1234c0b492722e428628955d6a34b3a89e487b010cee6cd1c44f9eeeb116a6a9
7
- data.tar.gz: 976c0a21635d66387285944afca22dfd3f062e1cfc835ed3fdc78e6be2aee46138fc1771d84bea99c8d30a2a8c13ab01b782dabe917ecf4a92fda3a04b0410ab
6
+ metadata.gz: 7e500cb2dc4facffc1861535c6a036d6959511519df85da4b3d833f9ee227ae857785f378ccd9c43794deefc1ab167cdc96b0dc74ed43fbd646c19da681b5a05
7
+ data.tar.gz: 6d463b5c155cb048b0d4528114b21d0c5fa703c7591a8a71a91245d000fa10f076be40bde5f50a12c5e3fbfe30cd05cd665976bb4b615b88ad58849d0f1cfff7
data/README.md CHANGED
@@ -1,18 +1,17 @@
1
1
  # Elasticsearch::XPack
2
2
 
3
- A Ruby integration for the [X-Pack extensions](https://www.elastic.co/v5)
4
- for Elasticsearch.
3
+ A Ruby integration for the [X-Pack extension](https://www.elastic.co/guide/en/x-pack/current/xpack-introduction.html) for Elasticsearch.
5
4
 
6
5
 
7
6
  ## Installation
8
7
 
9
8
  Install the package from [Rubygems](https://rubygems.org):
10
9
 
11
- gem install elasticsearch-xpack --pre
10
+ gem install elasticsearch-xpack
12
11
 
13
12
  To use an unreleased version, either add it to your `Gemfile` for [Bundler](http://gembundler.com):
14
13
 
15
- gem 'elasticsearch-xpack', git: 'git://github.com/elastic/elasticsearch-xpack-ruby.git'
14
+ gem 'elasticsearch-xpack', git: 'https://github.com/elastic/elasticsearch-x-pack-ruby.git'
16
15
 
17
16
  or install it from a source code checkout:
18
17
 
@@ -43,6 +42,10 @@ official [X-Pack for the Elastic Stack](https://www.elastic.co/guide/en/x-pack/c
43
42
 
44
43
  For examples, look into the [`examples`](examples) folder in this repository.
45
44
 
45
+ You can use the provided `test:server` Rake task to launch
46
+ a [Docker-based](https://www.elastic.co/guide/en/elasticsearch/reference/6.1/docker.html#_image_types)
47
+ Elasticsearch node with the full X-Pack license preinstalled.
48
+
46
49
  ## License
47
50
 
48
51
  This software is licensed under the Apache 2 license, quoted below.
data/Rakefile CHANGED
@@ -9,8 +9,8 @@ end
9
9
  Rake::TestTask.new('test:unit') do |test|
10
10
  test.libs << 'test'
11
11
  test.test_files = FileList['test/unit/**/*_test.rb']
12
- # test.verbose = true
13
- # test.warning = true
12
+ test.verbose = false
13
+ test.warning = false
14
14
  end
15
15
 
16
16
  namespace :test do
@@ -19,12 +19,7 @@ namespace :test do
19
19
  require 'ansi'
20
20
 
21
21
  suites = %w[
22
- x-plugins/elasticsearch/x-pack/src/test/resources/rest-api-spec/test
23
- x-plugins/elasticsearch/x-pack/graph/src/test/resources/rest-api-spec/test
24
- x-plugins/elasticsearch/x-pack/monitoring/src/test/resources/rest-api-spec/test/monitoring
25
- x-plugins/elasticsearch/x-pack/security/src/test/resources/rest-api-spec/test
26
- x-plugins/elasticsearch/x-pack/watcher/src/test/resources/rest-api-spec/test/xpack/watcher
27
- x-plugins/elasticsearch/x-pack/license-plugin/src/test/resources/rest-api-spec/test
22
+ plugin/src/test/resources/rest-api-spec/test/
28
23
  ]
29
24
 
30
25
  # TEMPORARY
@@ -59,7 +54,7 @@ namespace :test do
59
54
  suites.each do |suite|
60
55
  begin
61
56
  sh <<-COMMAND
62
- TEST_REST_API_SPEC=../#{suite} bundle exec ruby -I lib:test test/integration/yaml_test_runner.rb
57
+ TEST_REST_API_SPEC=../x-pack-elasticsearch/#{suite} bundle exec ruby -I lib:test test/integration/yaml_test_runner.rb
63
58
  COMMAND
64
59
  executed_suites << { suite => 0 }
65
60
  rescue RuntimeError
@@ -69,27 +64,18 @@ namespace :test do
69
64
  puts '', '-'*80, ''
70
65
  end
71
66
  end
72
- end
73
-
74
- namespace :elasticsearch do
75
- desc "Start Elasticsearch node for tests"
76
- task :start do
77
- require 'elasticsearch/extensions/test/cluster'
78
- Elasticsearch::Extensions::Test::Cluster.start(port: ENV.fetch('TEST_CLUSTER_PORT', 9260), nodes: 1, path_logs: '/tmp')
79
- end
80
67
 
81
- desc "Stop Elasticsearch node for tests"
82
- task :stop do
83
- require 'elasticsearch/extensions/test/cluster'
84
- Elasticsearch::Extensions::Test::Cluster.stop(port: ENV.fetch('TEST_CLUSTER_PORT', 9260), nodes: 1)
85
- end
86
-
87
- task :status do
88
- require 'elasticsearch/extensions/test/cluster'
89
- begin
90
- Elasticsearch::Extensions::Test::Cluster.__print_cluster_info(ENV.fetch('TEST_CLUSTER_PORT', 9260))
91
- rescue Errno::ECONNREFUSED
92
- puts "\e[31m[!] Test cluster not running\e[0m"; exit(1)
68
+ desc "Run Elasticsearch with X-Pack installed (Docker)"
69
+ task :server do
70
+ sh <<-COMMAND.gsub(/^\s*/, '').gsub(/\s{1,}/, ' ')
71
+ docker run \
72
+ --name elasticsearch-xpack \
73
+ --env ELASTIC_PASSWORD=changeme \
74
+ --env cluster.name=elasticsearch-xpack-test \
75
+ --publish 9260:9200 \
76
+ --memory 4g \
77
+ --rm \
78
+ docker.elastic.co/elasticsearch/elasticsearch-platinum:6.1.1
79
+ COMMAND
93
80
  end
94
- end
95
81
  end
@@ -21,15 +21,14 @@ Gem::Specification.new do |spec|
21
21
  spec.add_development_dependency "bundler", "~> 1.10"
22
22
  spec.add_development_dependency "rake", "~> 11.1"
23
23
 
24
- spec.add_dependency "elasticsearch-api"
24
+ spec.add_dependency "elasticsearch-api", '~> 6'
25
25
 
26
- spec.add_development_dependency "elasticsearch", '~> 5'
27
- spec.add_development_dependency "elasticsearch-transport", '~> 5'
26
+ spec.add_development_dependency "elasticsearch", '~> 6'
27
+ spec.add_development_dependency "elasticsearch-transport", '~> 6'
28
28
  spec.add_development_dependency "elasticsearch-extensions"
29
29
 
30
30
  spec.add_development_dependency "activesupport"
31
31
  spec.add_development_dependency "ansi"
32
- spec.add_development_dependency "turn"
33
32
  spec.add_development_dependency "minitest"
34
33
  spec.add_development_dependency "minitest-reporters"
35
34
  spec.add_development_dependency "shoulda-context"
@@ -2,21 +2,24 @@
2
2
  #
3
3
  # Execute this file from the root of the repository:
4
4
  #
5
- # bundle exec ruby -I lib ./examples/watcher/error_500.rb
5
+ # ALERT_EMAIL=email@example.com bundle exec ruby -I lib ./examples/watcher/error_500.rb
6
6
  #
7
7
  # The watch searches for `500` errors in a specific index on a periodic basis, and performs three
8
8
  # actions when at least 3 errors have been received in the last 5 minutes:
9
9
  #
10
10
  # 1. indexes the error documents and aggregations returned from search,
11
11
  # 2. sends a notification via e-mail, and
12
- # 3. sends the data to a HTTP API.
12
+ # 3. sends the data to a webhook.
13
13
  #
14
14
  # If you want to test sending the e-mail, you have to configure Watcher:
15
15
  # <https://www.elastic.co/guide/en/x-pack/current/actions-email.html#configuring-email>
16
16
  #
17
- # You can run a simple Sinatra based web server to test the webhook action with this script:
17
+ # NOTE: If you want to use Gmail and you have 2-factor authentication enabled,
18
+ # generate an "App password", and use it in the `password` field.
18
19
  #
19
- # $ ruby -r sinatra -r json -e 'post("/") { json = JSON.parse(request.body.read); puts %Q~Received #{json["watch_id"]} with payload: #{json["payload"]}~ }'
20
+ # You can run a simple Sinatra application to test the webhook action with this script:
21
+ #
22
+ # $ ruby -r sinatra -r json -e 'post("/") { json = JSON.parse(request.body.read); puts %Q~Received [#{json["watch_id"]}] with payload: #{json["payload"]}~ }'
20
23
  #
21
24
 
22
25
  require 'elasticsearch'
@@ -25,16 +28,18 @@ require 'elasticsearch/xpack'
25
28
  client = Elasticsearch::Client.new url: 'http://elastic:changeme@localhost:9260', log: true
26
29
  client.transport.logger.formatter = proc do |severity, datetime, progname, msg| "\e[2m#{msg}\e[0m\n" end
27
30
 
31
+ # Print information about the Watcher plugin
32
+ #
33
+ cluster_info = client.info
34
+ xpack_info = client.xpack.info
35
+ puts "Elasticsearch #{cluster_info['version']['number']} | X-Pack build [#{xpack_info['build']['hash']}]"
36
+
28
37
  # Delete the Watcher and test indices
29
38
  #
30
39
  ['test_errors', 'alerts', '.watcher-history-*'].each do |index|
31
40
  client.indices.delete index: index, ignore: 404
32
41
  end
33
42
 
34
- # Print information about the Watcher plugin
35
- #
36
- puts "X-Pack #{client.xpack.info['build']['hash']}"
37
-
38
43
  # Register a new watch
39
44
  #
40
45
  client.xpack.watcher.put_watch id: 'error_500', body: {
@@ -86,11 +91,10 @@ client.xpack.watcher.put_watch id: 'error_500', body: {
86
91
  # Transform the data for the template
87
92
  #
88
93
  script: {
89
- lang: 'painless',
90
- inline: "[ 'total': ctx.payload.hits.total, 'hosts': ctx.payload.aggregations.hosts.buckets.collect(bucket -> [ 'host': bucket.key, 'errors': bucket.doc_count ]), 'errors': ctx.payload.hits.hits.collect(d -> d._source) ]"
94
+ source: "[ 'total': ctx.payload.hits.total, 'hosts': ctx.payload.aggregations.hosts.buckets.collect(bucket -> [ 'host': bucket.key, 'errors': bucket.doc_count ]), 'errors': ctx.payload.hits.hits.collect(d -> d._source) ]"
91
95
  }
92
96
  },
93
- email: { to: 'alerts@example.com',
97
+ email: { to: ENV.fetch('ALERT_EMAIL', 'alert@example.com'),
94
98
  subject: '[ALERT] {{ctx.watch_id}}',
95
99
  body: <<-BODY.gsub(/^ {28}/, ''),
96
100
  Received {{ctx.payload.total}} errors in the last 5 minutes.
@@ -111,7 +115,7 @@ client.xpack.watcher.put_watch id: 'error_500', body: {
111
115
  transform: {
112
116
  script: {
113
117
  lang: 'painless',
114
- inline: "[ 'watch_id': ctx.watch_id, 'payload': ctx.payload ]"
118
+ source: "[ 'watch_id': ctx.watch_id, 'payload': ctx.payload ]"
115
119
  }
116
120
  },
117
121
  index: { index: 'alerts', doc_type: 'alert' }
@@ -155,9 +159,14 @@ end; puts "\n"
155
159
  # Display information about watch execution
156
160
  #
157
161
  client.search(index: '.watcher-history-*', q: 'watch_id:error_500', sort: 'trigger_event.triggered_time:asc')['hits']['hits'].each do |r|
158
- puts "#{r['_source']['watch_id']} #{r['_source']['state'].upcase} at #{r['_source']['result']['execution_time']}"
162
+ print "[#{r['_source']['watch_id']}] #{r['_source']['state'].upcase} at #{r['_source']['result']['execution_time']}"
163
+ if r['_source']['state'] == 'executed'
164
+ print " > Actions: "
165
+ print r['_source']['result']['actions'].map { |a| "[#{a['id']}] #{a['status']}#{a['error'] ? ': '+a['error']['type'] : ''}" }.join(', ')
166
+ end
167
+ print "\n"
159
168
  end
160
169
 
161
170
  # Delete the watch
162
171
  #
163
- client.xpack.watcher.delete_watch id: 'error_500', master_timeout: '30s', force: true
172
+ client.xpack.watcher.delete_watch id: 'error_500', master_timeout: '30s'
@@ -6,7 +6,7 @@ module Elasticsearch
6
6
 
7
7
  # Delete a license
8
8
  #
9
- # @see https://www.elastic.co/guide/en/shield/current/license-management.html
9
+ # @see https://www.elastic.co/guide/en/x-pack/current/license-management.html
10
10
  #
11
11
  def delete(arguments={})
12
12
  method = Elasticsearch::API::HTTP_DELETE
@@ -8,7 +8,7 @@ module Elasticsearch
8
8
  #
9
9
  # @option arguments [Boolean] :local Return local information (default: false)
10
10
  #
11
- # @see https://www.elastic.co/guide/en/shield/current/license-management.html
11
+ # @see https://www.elastic.co/guide/en/x-pack/current/license-management.html
12
12
  #
13
13
  def get(arguments={})
14
14
  valid_params = [ :local ]
@@ -10,7 +10,7 @@ module Elasticsearch
10
10
  # @option arguments [Boolean] :acknowledge Whether the user has acknowledged acknowledge messages
11
11
  # (default: false)
12
12
  #
13
- # @see https://www.elastic.co/guide/en/shield/current/license-management.html
13
+ # @see https://www.elastic.co/guide/en/x-pack/current/license-management.html
14
14
  #
15
15
  def post(arguments={})
16
16
  valid_params = [ :acknowledge ]
@@ -7,14 +7,16 @@ module Elasticsearch
7
7
  # TODO: Description
8
8
  #
9
9
  # @option arguments [String] :job_id The name of the job to close (*Required*)
10
+ # @option arguments [Boolean] :allow_no_jobs Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)
10
11
  # @option arguments [Boolean] :force True if the job should be forcefully closed
11
12
  # @option arguments [Time] :timeout Controls the time to wait until a job has closed. Default to 30 minutes
12
13
  #
13
- # @see http://www.elastic.co/guide/en/x-pack/current/ml-close-job.html
14
+ # @see http://www.elastic.co/guide/en/elasticsearch/reference/current/ml-close-job.html
14
15
  #
15
16
  def close_job(arguments={})
16
17
  raise ArgumentError, "Required argument 'job_id' missing" unless arguments[:job_id]
17
18
  valid_params = [
19
+ :allow_no_jobs,
18
20
  :force,
19
21
  :timeout ]
20
22
  method = Elasticsearch::API::HTTP_POST
@@ -9,7 +9,7 @@ module Elasticsearch
9
9
  # @option arguments [String] :datafeed_id The ID of the datafeed to delete (*Required*)
10
10
  # @option arguments [Boolean] :force True if the datafeed should be forcefully deleted
11
11
  #
12
- # @see http://www.elastic.co/guide/en/x-pack/current/ml-delete-datafeed.html
12
+ # @see http://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-datafeed.html
13
13
  #
14
14
  def delete_datafeed(arguments={})
15
15
  raise ArgumentError, "Required argument 'datafeed_id' missing" unless arguments[:datafeed_id]
@@ -4,11 +4,6 @@ module Elasticsearch
4
4
  module MachineLearning
5
5
  module Actions
6
6
 
7
- # TODO: Description
8
- #
9
- #
10
- # @see [TODO]
11
- #
12
7
  def delete_expired_data(arguments={})
13
8
  method = Elasticsearch::API::HTTP_DELETE
14
9
  path = "_xpack/ml/_delete_expired_data"
@@ -4,12 +4,8 @@ module Elasticsearch
4
4
  module MachineLearning
5
5
  module Actions
6
6
 
7
- # TODO: Description
8
- #
9
7
  # @option arguments [String] :filter_id The ID of the filter to delete (*Required*)
10
8
  #
11
- # @see [TODO]
12
- #
13
9
  def delete_filter(arguments={})
14
10
  raise ArgumentError, "Required argument 'filter_id' missing" unless arguments[:filter_id]
15
11
  method = Elasticsearch::API::HTTP_DELETE
@@ -4,12 +4,12 @@ module Elasticsearch
4
4
  module MachineLearning
5
5
  module Actions
6
6
 
7
- # TODO: Description
7
+ # Delete an existing anomaly detection job
8
8
  #
9
9
  # @option arguments [String] :job_id The ID of the job to delete (*Required*)
10
10
  # @option arguments [Boolean] :force True if the job should be forcefully deleted
11
11
  #
12
- # @see http://www.elastic.co/guide/en/x-pack/current/ml-delete-job.html
12
+ # @see http://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-job.html
13
13
  #
14
14
  def delete_job(arguments={})
15
15
  raise ArgumentError, "Required argument 'job_id' missing" unless arguments[:job_id]
@@ -4,12 +4,12 @@ module Elasticsearch
4
4
  module MachineLearning
5
5
  module Actions
6
6
 
7
- # TODO: Description
7
+ # Delete an existing model snapshot
8
8
  #
9
9
  # @option arguments [String] :job_id The ID of the job to fetch (*Required*)
10
10
  # @option arguments [String] :snapshot_id The ID of the snapshot to delete (*Required*)
11
11
  #
12
- # @see http://www.elastic.co/guide/en/x-pack/current/ml-delete-snapshot.html
12
+ # @see http://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-snapshot.html
13
13
  #
14
14
  def delete_model_snapshot(arguments={})
15
15
  raise ArgumentError, "Required argument 'job_id' missing" unless arguments[:job_id]
@@ -4,7 +4,7 @@ module Elasticsearch
4
4
  module MachineLearning
5
5
  module Actions
6
6
 
7
- # TODO: Description
7
+ # Force any buffered data to be processed by the job
8
8
  #
9
9
  # @option arguments [String] :job_id The name of the job to flush (*Required*)
10
10
  # @option arguments [Hash] :body Flush parameters
@@ -12,8 +12,10 @@ module Elasticsearch
12
12
  # @option arguments [String] :start When used in conjunction with calc_interim, specifies the range of buckets on which to calculate interim results
13
13
  # @option arguments [String] :end When used in conjunction with calc_interim, specifies the range of buckets on which to calculate interim results
14
14
  # @option arguments [String] :advance_time Setting this tells the Engine API that no data prior to advance_time is expected
15
+ # @option arguments [String] :skip_time Skips time to the given value without generating results or updating the model for the skipped interval
15
16
  #
16
- # @see http://www.elastic.co/guide/en/x-pack/current/ml-flush-job.html
17
+ #
18
+ # @see http://www.elastic.co/guide/en/elasticsearch/reference/current/ml-flush-job.html
17
19
  #
18
20
  def flush_job(arguments={})
19
21
  raise ArgumentError, "Required argument 'job_id' missing" unless arguments[:job_id]
@@ -21,7 +23,8 @@ module Elasticsearch
21
23
  :calc_interim,
22
24
  :start,
23
25
  :end,
24
- :advance_time ]
26
+ :advance_time,
27
+ :skip_time ]
25
28
  method = Elasticsearch::API::HTTP_POST
26
29
  path = "_xpack/ml/anomaly_detectors/#{arguments[:job_id]}/_flush"
27
30
  params = Elasticsearch::API::Utils.__validate_and_extract_params arguments, valid_params
@@ -0,0 +1,31 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module MachineLearning
5
+ module Actions
6
+
7
+ # Predict the future behavior of a time series
8
+ #
9
+ # @option arguments [String] :job_id The ID of the job to forecast for (*Required*)
10
+ # @option arguments [Time] :duration The duration of the forecast
11
+ # @option arguments [Time] :expires_in The time interval after which the forecast expires. Expired forecasts will be deleted at the first opportunity.
12
+ #
13
+ # @see https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-forecast.html
14
+ #
15
+ def forecast(arguments={})
16
+ raise ArgumentError, "Required argument 'job_id' missing" unless arguments[:job_id]
17
+ valid_params = [
18
+ :duration,
19
+ :expires_in ]
20
+ method = Elasticsearch::API::HTTP_POST
21
+ path = "_xpack/ml/anomaly_detectors/#{arguments[:job_id]}/_forecast"
22
+ params = Elasticsearch::API::Utils.__validate_and_extract_params arguments, valid_params
23
+ body = nil
24
+
25
+ perform_request(method, path, params, body).body
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -4,7 +4,7 @@ module Elasticsearch
4
4
  module MachineLearning
5
5
  module Actions
6
6
 
7
- # TODO: Description
7
+ # Retrieve job results for one or more buckets
8
8
  #
9
9
  # @option arguments [String] :job_id ID of the job to get bucket results from (*Required*)
10
10
  # @option arguments [String] :timestamp The timestamp of the desired single bucket result
@@ -19,7 +19,7 @@ module Elasticsearch
19
19
  # @option arguments [String] :sort Sort buckets by a particular field
20
20
  # @option arguments [Boolean] :desc Set the sort direction
21
21
  #
22
- # @see http://www.elastic.co/guide/en/x-pack/current/ml-get-bucket.html
22
+ # @see http://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-bucket.html
23
23
  #
24
24
  def get_buckets(arguments={})
25
25
  raise ArgumentError, "Required argument 'job_id' missing" unless arguments[:job_id]
@@ -4,7 +4,7 @@ module Elasticsearch
4
4
  module MachineLearning
5
5
  module Actions
6
6
 
7
- # TODO: Description
7
+ # Retrieve job results for one or more categories
8
8
  #
9
9
  # @option arguments [String] :job_id The name of the job (*Required*)
10
10
  # @option arguments [Long] :category_id The identifier of the category definition of interest
@@ -12,7 +12,7 @@ module Elasticsearch
12
12
  # @option arguments [Int] :from skips a number of categories
13
13
  # @option arguments [Int] :size specifies a max number of categories to get
14
14
  #
15
- # @see http://www.elastic.co/guide/en/x-pack/current/ml-get-category.html
15
+ # @see http://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-category.html
16
16
  #
17
17
  def get_categories(arguments={})
18
18
  raise ArgumentError, "Required argument 'job_id' missing" unless arguments[:job_id]
@@ -4,13 +4,17 @@ module Elasticsearch
4
4
  module MachineLearning
5
5
  module Actions
6
6
 
7
- # TODO: Description
7
+ # Retrieve usage information for datafeeds
8
8
  #
9
9
  # @option arguments [String] :datafeed_id The ID of the datafeeds stats to fetch
10
+ # @option arguments [Boolean] :allow_no_datafeeds Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)
10
11
  #
11
- # @see http://www.elastic.co/guide/en/x-pack/current/ml-get-datafeed-stats.html
12
+ # @see http://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed-stats.html
12
13
  #
13
14
  def get_datafeed_stats(arguments={})
15
+ valid_params = [
16
+ :allow_no_datafeeds ]
17
+
14
18
  method = Elasticsearch::API::HTTP_GET
15
19
  path = Elasticsearch::API::Utils.__pathify "_xpack/ml/datafeeds", arguments[:datafeed_id], "/_stats"
16
20
  params = {}