elasticsearch-xpack 0.1.0.pre

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 (45) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +4 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +62 -0
  7. data/Rakefile +95 -0
  8. data/elasticsearch-xpack.gemspec +39 -0
  9. data/examples/watcher/error_500.rb +163 -0
  10. data/lib/elasticsearch/xpack.rb +32 -0
  11. data/lib/elasticsearch/xpack/api/actions/graph/explore.rb +39 -0
  12. data/lib/elasticsearch/xpack/api/actions/info.rb +30 -0
  13. data/lib/elasticsearch/xpack/api/actions/license/delete.rb +23 -0
  14. data/lib/elasticsearch/xpack/api/actions/license/get.rb +26 -0
  15. data/lib/elasticsearch/xpack/api/actions/license/post.rb +28 -0
  16. data/lib/elasticsearch/xpack/api/actions/monitoring/bulk.rb +45 -0
  17. data/lib/elasticsearch/xpack/api/actions/security/authenticate.rb +24 -0
  18. data/lib/elasticsearch/xpack/api/actions/security/change_password.rb +34 -0
  19. data/lib/elasticsearch/xpack/api/actions/security/clear_cached_realms.rb +33 -0
  20. data/lib/elasticsearch/xpack/api/actions/security/clear_cached_roles.rb +27 -0
  21. data/lib/elasticsearch/xpack/api/actions/security/delete_role.rb +34 -0
  22. data/lib/elasticsearch/xpack/api/actions/security/delete_user.rb +37 -0
  23. data/lib/elasticsearch/xpack/api/actions/security/get_role.rb +29 -0
  24. data/lib/elasticsearch/xpack/api/actions/security/get_user.rb +29 -0
  25. data/lib/elasticsearch/xpack/api/actions/security/put_role.rb +32 -0
  26. data/lib/elasticsearch/xpack/api/actions/security/put_user.rb +34 -0
  27. data/lib/elasticsearch/xpack/api/actions/usage.rb +23 -0
  28. data/lib/elasticsearch/xpack/api/actions/watcher/ack_watch.rb +36 -0
  29. data/lib/elasticsearch/xpack/api/actions/watcher/activate_watch.rb +32 -0
  30. data/lib/elasticsearch/xpack/api/actions/watcher/deactivate_watch.rb +32 -0
  31. data/lib/elasticsearch/xpack/api/actions/watcher/delete_watch.rb +35 -0
  32. data/lib/elasticsearch/xpack/api/actions/watcher/execute_watch.rb +28 -0
  33. data/lib/elasticsearch/xpack/api/actions/watcher/get_watch.rb +27 -0
  34. data/lib/elasticsearch/xpack/api/actions/watcher/put_watch.rb +35 -0
  35. data/lib/elasticsearch/xpack/api/actions/watcher/restart.rb +23 -0
  36. data/lib/elasticsearch/xpack/api/actions/watcher/start.rb +24 -0
  37. data/lib/elasticsearch/xpack/api/actions/watcher/stats.rb +27 -0
  38. data/lib/elasticsearch/xpack/api/actions/watcher/stop.rb +24 -0
  39. data/lib/elasticsearch/xpack/api/namespace/graph.rb +18 -0
  40. data/lib/elasticsearch/xpack/api/namespace/license.rb +18 -0
  41. data/lib/elasticsearch/xpack/api/namespace/monitoring.rb +18 -0
  42. data/lib/elasticsearch/xpack/api/namespace/security.rb +18 -0
  43. data/lib/elasticsearch/xpack/api/namespace/watcher.rb +18 -0
  44. data/lib/elasticsearch/xpack/version.rb +5 -0
  45. metadata +297 -0
@@ -0,0 +1,39 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module Graph
5
+ module Actions
6
+
7
+ # Get structured information about the vertices and connections in a dataset
8
+ #
9
+ # @option arguments [List] :index A comma-separated list of index names to search;
10
+ # use `_all` or empty string to perform the operation on all indices
11
+ # @option arguments [List] :type A comma-separated list of document types to search;
12
+ # leave empty to perform the operation on all types
13
+ # @option arguments [Hash] :body The Graph Query DSL definition
14
+ # @option arguments [String] :routing Specific routing value
15
+ # @option arguments [Time] :timeout Explicit operation timeout
16
+ #
17
+ # @see https://www.elastic.co/guide/en/graph/current/explore.html
18
+ #
19
+ def explore(arguments={})
20
+ valid_params = [
21
+ :routing,
22
+ :timeout ]
23
+
24
+ arguments = arguments.clone
25
+ index = arguments.delete(:index)
26
+ type = arguments.delete(:type)
27
+
28
+ method = Elasticsearch::API::HTTP_GET
29
+ path = Elasticsearch::API::Utils.__pathify Elasticsearch::API::Utils.__listify(index), Elasticsearch::API::Utils.__listify(type), '_xpack/_graph/_explore'
30
+ params = Elasticsearch::API::Utils.__validate_and_extract_params arguments, valid_params
31
+ body = arguments[:body]
32
+
33
+ perform_request(method, path, params, body).body
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,30 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module Actions
5
+
6
+ # Retrieve information about xpack, including build number/timestamp and license status
7
+ #
8
+ # @option arguments [Boolean] :human Presents additional info for humans
9
+ # (feature descriptions and X-Pack tagline)
10
+ # @option arguments [List] :categories Comma-separated list of info categories.
11
+ # (Options: build, license, features)
12
+ #
13
+ # @see https://www.elastic.co/guide/en/x-pack/current/info-api.html
14
+ #
15
+ def info(arguments={})
16
+ valid_params = [
17
+ :human,
18
+ :categories ]
19
+
20
+ method = Elasticsearch::API::HTTP_GET
21
+ path = "_xpack"
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
@@ -0,0 +1,23 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module License
5
+ module Actions
6
+
7
+ # Delete a license
8
+ #
9
+ # @see https://www.elastic.co/guide/en/shield/current/license-management.html
10
+ #
11
+ def delete(arguments={})
12
+ method = Elasticsearch::API::HTTP_DELETE
13
+ path = "_xpack/license"
14
+ params = {}
15
+ body = nil
16
+
17
+ perform_request(method, path, params, body).body
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,26 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module License
5
+ module Actions
6
+
7
+ # Get a license
8
+ #
9
+ # @option arguments [Boolean] :local Return local information (default: false)
10
+ #
11
+ # @see https://www.elastic.co/guide/en/shield/current/license-management.html
12
+ #
13
+ def get(arguments={})
14
+ valid_params = [ :local ]
15
+ method = Elasticsearch::API::HTTP_GET
16
+ path = "_xpack/license"
17
+ params = Elasticsearch::API::Utils.__validate_and_extract_params arguments, valid_params
18
+ body = nil
19
+
20
+ perform_request(method, path, params, body).body
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,28 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module License
5
+ module Actions
6
+
7
+ # Install a license
8
+ #
9
+ # @option arguments [Hash] :body Licenses to be installed
10
+ # @option arguments [Boolean] :acknowledge Whether the user has acknowledged acknowledge messages
11
+ # (default: false)
12
+ #
13
+ # @see https://www.elastic.co/guide/en/shield/current/license-management.html
14
+ #
15
+ def post(arguments={})
16
+ valid_params = [ :acknowledge ]
17
+ method = Elasticsearch::API::HTTP_PUT
18
+ path = "_xpack/license"
19
+ params = Elasticsearch::API::Utils.__validate_and_extract_params arguments, valid_params
20
+ body = arguments[:body]
21
+
22
+ perform_request(method, path, params, body).body
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,45 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module Monitoring
5
+ module Actions
6
+
7
+ # Insert monitoring data in bulk
8
+ #
9
+ # @option arguments [String] :type Default document type for items which don't provide one
10
+ # @option arguments [Hash] :body The operation definition and data (action-data pairs), separated by newlines (*Required*)
11
+ # @option arguments [String] :system_id Identifier of the monitored system
12
+ # @option arguments [String] :system_api_version API version of the monitored system
13
+ # @option arguments [String] :system_version Version of the monitored system
14
+ #
15
+ # @see http://www.elastic.co/guide/en/monitoring/current/appendix-api-bulk.html
16
+ #
17
+ def bulk(arguments={})
18
+ raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
19
+
20
+ valid_params = [
21
+ :system_id,
22
+ :system_api_version,
23
+ :system_version ]
24
+
25
+ arguments = arguments.clone
26
+ type = arguments.delete(:type)
27
+ body = arguments.delete(:body)
28
+
29
+ method = Elasticsearch::API::HTTP_POST
30
+ path = Elasticsearch::API::Utils.__pathify '_xpack/monitoring', type, '_bulk'
31
+ params = Elasticsearch::API::Utils.__validate_and_extract_params arguments, valid_params
32
+
33
+ if body.is_a? Array
34
+ payload = Elasticsearch::API::Utils.__bulkify(body)
35
+ else
36
+ payload = body
37
+ end
38
+
39
+ perform_request(method, path, params, payload).body
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,24 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module Security
5
+ module Actions
6
+
7
+ # Retrieve details about the currently authenticated user
8
+ #
9
+ # @see https://www.elastic.co/guide/en/x-pack/current/security-api-authenticate.html
10
+ #
11
+ def authenticate(arguments={})
12
+ valid_params = []
13
+ method = Elasticsearch::API::HTTP_GET
14
+ path = "_xpack/security/_authenticate"
15
+ params = {}
16
+ body = nil
17
+
18
+ perform_request(method, path, params, body).body
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,34 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module Security
5
+ module Actions
6
+
7
+ # Change the password of a user
8
+ #
9
+ # @option arguments [String] :username The username of the user to change the password for
10
+ # @option arguments [Hash] :body the new password for the user (*Required*)
11
+ # @option arguments [Boolean] :refresh Refresh the index after performing the operation
12
+ #
13
+ # @see https://www.elastic.co/guide/en/x-pack/current/security-api-change-password.html
14
+ #
15
+ def change_password(arguments={})
16
+ raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
17
+
18
+ valid_params = [ :refresh ]
19
+
20
+ arguments = arguments.clone
21
+ username = arguments.delete(:username)
22
+
23
+ method = Elasticsearch::API::HTTP_PUT
24
+ path = Elasticsearch::API::Utils.__pathify "_xpack/security/user/", username, "/_password"
25
+ params = Elasticsearch::API::Utils.__validate_and_extract_params arguments, valid_params
26
+ body = arguments[:body]
27
+
28
+ perform_request(method, path, params, body).body
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,33 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module Security
5
+ module Actions
6
+
7
+ # Clears the internal user caches for specified realms
8
+ #
9
+ # @option arguments [String] :realms Comma-separated list of realms to clear (*Required*)
10
+ # @option arguments [String] :usernames Comma-separated list of usernames to clear from the cache
11
+ #
12
+ # @see https://www.elastic.co/guide/en/x-pack/current/security-api-clear-cache.html
13
+ #
14
+ def clear_cached_realms(arguments={})
15
+ raise ArgumentError, "Required argument 'realms' missing" unless arguments[:realms]
16
+
17
+ valid_params = [ :usernames ]
18
+
19
+ arguments = arguments.clone
20
+ realms = arguments.delete(:realms)
21
+
22
+ method = Elasticsearch::API::HTTP_POST
23
+ path = Elasticsearch::API::Utils.__pathify "_xpack/security/realm/", Elasticsearch::API::Utils.__listify(realms), "_clear_cache"
24
+ params = Elasticsearch::API::Utils.__validate_and_extract_params arguments, valid_params
25
+ body = nil
26
+
27
+ perform_request(method, path, params, body).body
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,27 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module Security
5
+ module Actions
6
+
7
+ # Clears the internal caches for specified roles
8
+ #
9
+ # @option arguments [String] :name Role name (*Required*)
10
+ #
11
+ # @see https://www.elastic.co/guide/en/x-pack/current/security-api-roles.html#security-api-clear-role-cache
12
+ #
13
+ def clear_cached_roles(arguments={})
14
+ raise ArgumentError, "Required argument 'name' missing" unless arguments[:name]
15
+
16
+ method = Elasticsearch::API::HTTP_PUT
17
+ path = "_xpack/security/role/#{arguments[:name]}/_clear_cache"
18
+ params = {}
19
+ body = nil
20
+
21
+ perform_request(method, path, params, body).body
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,34 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module Security
5
+ module Actions
6
+
7
+ # Remove a role from the native realm
8
+ #
9
+ # @option arguments [String] :name Role name (*Required*)
10
+ # @option arguments [Boolean] :refresh Refresh the index after performing the operation
11
+ #
12
+ # @see https://www.elastic.co/guide/en/x-pack/current/security-api-roles.html#security-api-delete-role
13
+ #
14
+ def delete_role(arguments={})
15
+ raise ArgumentError, "Required argument 'name' missing" unless arguments[:name]
16
+
17
+ valid_params = [ :refresh ]
18
+
19
+ method = Elasticsearch::API::HTTP_DELETE
20
+ path = "_xpack/security/role/#{arguments[:name]}"
21
+ params = Elasticsearch::API::Utils.__validate_and_extract_params arguments, valid_params
22
+ body = nil
23
+
24
+ if Array(arguments[:ignore]).include?(404)
25
+ Elasticsearch::API::Utils.__rescue_from_not_found { perform_request(method, path, params, body).body }
26
+ else
27
+ perform_request(method, path, params, body).body
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,37 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module Security
5
+ module Actions
6
+
7
+ # Remove a user from the native realm
8
+ #
9
+ # @option arguments [String] :username username (*Required*)
10
+ # @option arguments [Boolean] :refresh Refresh the index after performing the operation
11
+ #
12
+ # @see https://www.elastic.co/guide/en/x-pack/current/security-api-users.html#security-api-delete-user
13
+ #
14
+ def delete_user(arguments={})
15
+ valid_params = [
16
+ :username,
17
+ :refresh ]
18
+
19
+ arguments = arguments.clone
20
+ username = arguments.delete(:username)
21
+
22
+ method = Elasticsearch::API::HTTP_DELETE
23
+ path = "_xpack/security/user/#{username}"
24
+ params = Elasticsearch::API::Utils.__validate_and_extract_params arguments, valid_params
25
+ body = nil
26
+
27
+ if Array(arguments[:ignore]).include?(404)
28
+ Elasticsearch::API::Utils.__rescue_from_not_found { perform_request(method, path, params, body).body }
29
+ else
30
+ perform_request(method, path, params, body).body
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,29 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module Security
5
+ module Actions
6
+
7
+ # Retrieve one or more roles from the native realm
8
+ #
9
+ # @option arguments [String] :name Role name
10
+ #
11
+ # @see https://www.elastic.co/guide/en/x-pack/current/security-api-roles.html#security-api-get-role
12
+ #
13
+ def get_role(arguments={})
14
+ method = Elasticsearch::API::HTTP_GET
15
+ path = Elasticsearch::API::Utils.__pathify "_xpack/security/role", Elasticsearch::API::Utils.__listify(arguments[:name])
16
+ params = {}
17
+ body = nil
18
+
19
+ if Array(arguments[:ignore]).include?(404)
20
+ Elasticsearch::API::Utils.__rescue_from_not_found { perform_request(method, path, params, body).body }
21
+ else
22
+ perform_request(method, path, params, body).body
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ module Elasticsearch
2
+ module XPack
3
+ module API
4
+ module Security
5
+ module Actions
6
+
7
+ # Retrieve one or more users from the native realm
8
+ #
9
+ # @option arguments [List] :username A comma-separated list of usernames
10
+ #
11
+ # @see https://www.elastic.co/guide/en/x-pack/current/security-api-users.html#security-api-get-user
12
+ #
13
+ def get_user(arguments={})
14
+ method = Elasticsearch::API::HTTP_GET
15
+ path = Elasticsearch::API::Utils.__pathify "_xpack/security/user", Elasticsearch::API::Utils.__listify(arguments[:username])
16
+ params = {}
17
+ body = nil
18
+
19
+ if Array(arguments[:ignore]).include?(404)
20
+ Elasticsearch::API::Utils.__rescue_from_not_found { perform_request(method, path, params, body).body }
21
+ else
22
+ perform_request(method, path, params, body).body
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end