esp_sdk 2.5.0 → 2.6.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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.yardopts +1 -0
  4. data/CHANGELOG.md +8 -0
  5. data/Gemfile.lock +5 -3
  6. data/Guardfile +3 -1
  7. data/esp_sdk.gemspec +2 -1
  8. data/lib/esp/aws_clients.rb +2 -1
  9. data/lib/esp/commands/commands_tasks.rb +2 -1
  10. data/lib/esp/commands/console.rb +4 -0
  11. data/lib/esp/exceptions.rb +1 -0
  12. data/lib/esp/extensions/active_resource/dirty.rb +51 -0
  13. data/lib/esp/extensions/active_resource/formats/json_api_format.rb +5 -3
  14. data/lib/esp/extensions/active_resource/paginated_collection.rb +71 -38
  15. data/lib/esp/extensions/active_resource/validations.rb +4 -2
  16. data/lib/esp/external_account_creator.rb +4 -1
  17. data/lib/esp/resources/alert.rb +53 -42
  18. data/lib/esp/resources/cloud_trail_event.rb +18 -12
  19. data/lib/esp/resources/concerns/stat_totals.rb +70 -67
  20. data/lib/esp/resources/contact_request.rb +17 -14
  21. data/lib/esp/resources/custom_signature/definition.rb +46 -51
  22. data/lib/esp/resources/custom_signature/result/alert.rb +13 -5
  23. data/lib/esp/resources/custom_signature/result.rb +49 -53
  24. data/lib/esp/resources/custom_signature.rb +52 -61
  25. data/lib/esp/resources/dashboard.rb +11 -5
  26. data/lib/esp/resources/external_account.rb +59 -58
  27. data/lib/esp/resources/metadata.rb +21 -11
  28. data/lib/esp/resources/organization.rb +49 -39
  29. data/lib/esp/resources/region.rb +25 -28
  30. data/lib/esp/resources/report.rb +46 -44
  31. data/lib/esp/resources/reports/export/integration.rb +22 -13
  32. data/lib/esp/resources/resource.rb +4 -3
  33. data/lib/esp/resources/scan_interval.rb +19 -13
  34. data/lib/esp/resources/service.rb +17 -11
  35. data/lib/esp/resources/signature.rb +43 -53
  36. data/lib/esp/resources/stat.rb +72 -55
  37. data/lib/esp/resources/stat_custom_signature.rb +73 -65
  38. data/lib/esp/resources/stat_region.rb +76 -65
  39. data/lib/esp/resources/stat_service.rb +76 -65
  40. data/lib/esp/resources/stat_signature.rb +76 -65
  41. data/lib/esp/resources/sub_organization.rb +51 -60
  42. data/lib/esp/resources/suppression/region.rb +35 -30
  43. data/lib/esp/resources/suppression/signature.rb +35 -29
  44. data/lib/esp/resources/suppression/unique_identifier.rb +27 -22
  45. data/lib/esp/resources/suppression.rb +45 -34
  46. data/lib/esp/resources/tag.rb +20 -11
  47. data/lib/esp/resources/team.rb +56 -58
  48. data/lib/esp/resources/user.rb +35 -32
  49. data/lib/esp/version.rb +1 -1
  50. data/lib/esp.rb +39 -16
  51. data/lib/esp_sdk.rb +1 -0
  52. data/test/esp/extensions/active_resource/dirty_test.rb +81 -0
  53. data/test/esp/extensions/active_resource/formats/json_api_format_test.rb +8 -0
  54. data/test/esp/extensions/active_resource/paginated_collection_test.rb +7 -0
  55. data/test/esp/integration/json_api_format_integration_test.rb +5 -2
  56. data/test/esp/integration/organization_integration_test.rb +1 -1
  57. data/test/esp/resources/custom_signature_test.rb +15 -0
  58. data/test/factories/custom_signatures.rb +0 -10
  59. metadata +21 -3
@@ -1,60 +1,64 @@
1
1
  module ESP
2
2
  class Alert < ESP::Resource
3
- ##
4
3
  # Returns the external account associated with this alert.
4
+ # @return [ESP::ExternalAccount]
5
5
  belongs_to :external_account, class_name: 'ESP::ExternalAccount'
6
6
 
7
- ##
8
7
  # Returns the region associated with this alert.
8
+ # @return [ESP::Region]
9
9
  belongs_to :region, class_name: 'ESP::Region'
10
10
 
11
- ##
12
11
  # Returns the region associated with this alert. Either a signature or custom signature but not both will be present.
12
+ # @return [ESP::Signature]
13
13
  belongs_to :signature, class_name: 'ESP::Signature'
14
14
 
15
- ##
16
15
  # Returns the custom signature associated with this alert. Either a signature or custom signature but not both will be present.
16
+ # @return [ESP::CustomSignature]
17
17
  belongs_to :custom_signature, class_name: 'ESP::CustomSignature'
18
18
 
19
- ##
20
19
  # Returns the suppression associated with this alert. If present the alert was suppressed.
20
+ # @return [ESP::Suppression]
21
21
  belongs_to :suppression, class_name: 'ESP::Suppression'
22
22
 
23
- ##
24
23
  # Returns the cloud trail events associated with this alert. These may be added up to 10 minutes after the alert was created
24
+ # @return [ActiveResource::PaginatedCollection<ESP::CloudTrailEvent>]
25
25
  has_many :cloud_trail_events, class_name: 'ESP::CloudTrailEvent'
26
26
 
27
- ##
28
27
  # Returns the tags associated with this alert.
28
+ # @return [ActiveResource::PaginatedCollection<ESP::Tag>]
29
29
  has_many :tags, class_name: 'ESP::Tag'
30
30
 
31
- ##
32
31
  # Returns the metadata associated with this alert.
32
+ #
33
+ # @return [ESP::Metadata]
33
34
  def metadata
34
35
  ESP::Metadata.for_alert(id)
35
36
  end
36
37
 
37
38
  # Not Implemented. You cannot create or update an Alert.
39
+ #
40
+ # @return [void]
38
41
  def save
39
42
  fail ESP::NotImplementedError
40
43
  end
41
44
 
42
- # Not Implemented. You cannot destroy a an Alert.
45
+ # Not Implemented. You cannot destroy an Alert.
46
+ #
47
+ # @return [void]
43
48
  def destroy
44
49
  fail ESP::NotImplementedError
45
50
  end
46
51
 
47
- # Returns a paginated collection of alerts for the given report_id
52
+ # Returns alerts for the given report_id
48
53
  #
49
- # ==== Parameters
54
+ # *call-seq* -> +super.where(clauses)+
50
55
  #
51
- # +clauses+ | Required | Hash of attributes with appended predicates to search, sort and include.
56
+ # @param clauses [Hash] Required hash of attributes with appended predicates to search, sort and include.
57
+ # ===== Valid Clauses
52
58
  #
53
- # ===== Valid Clauses
54
- #
55
- # See {API documentation}[http://api-docs.evident.io?ruby#searching-alerts] for valid arguments
56
- #
57
- # ==== Example
59
+ # See {API documentation}[http://api-docs.evident.io?ruby#searching-alerts] for valid arguments
60
+ # @return [ActiveResource::PaginatedCollection<ESP::Alert>]
61
+ # @example
58
62
  # alerts = ESP::Alert.where(report_id: 54, status_eq: 'fail', signature_risk_level_in: ['High'], include: 'signature')
59
63
  def self.where(clauses = {})
60
64
  clauses = clauses.with_indifferent_access
@@ -65,25 +69,30 @@ module ESP
65
69
 
66
70
  # Find an Alert by id
67
71
  #
68
- # ==== Parameter
69
- #
70
- # +id+ | Required | The ID of the alert to retrieve
71
- #
72
- # +options+ | Optional | A hash of options
73
- #
74
- # ===== Valid Options
75
- #
76
- # +include+ | The list of associated objects to return on the initial request.
77
- #
78
- # ===== Valid Includable Associations
79
- #
80
- # See {API documentation}[http://api-docs.evident.io?ruby#searching-alerts] for valid arguments
81
- #
82
- # ==== Example
83
- # alert = ESP::Alert.find(1, include: 'tags,external_account.team')
72
+ # @overload find(id)
73
+ # @param id [Integer, Numeric, #to_i] Required ID of the alert to retrieve.
74
+ # @overload find(id, options)
75
+ # @param id [Integer, Numeric, #to_i] Required ID of the alert to retrieve.
76
+ # @param options [Hash]
77
+ # ===== Valid Options
78
+ #
79
+ # +include+ | The list of associated objects to return on the initial request.
80
+ #
81
+ # ===== Valid Includable Associations
82
+ #
83
+ # See {API documentation}[http://api-docs.evident.io?ruby#searching-alerts] for valid arguments
84
+ # @overload find(scope, options)
85
+ # *call-seq* -> +super.all(options)+
86
+ # @api private
87
+ # @param scope [Object] *Example:* +:all+
88
+ # @param options [Hash] +{ params: { report_id: Integer } }+
89
+ # @raise [ArgumentError] if no +report_id+ is supplied.
90
+ # @return [ESP::Alert]
91
+ # @example
92
+ # alert = ESP::Alert.find(1)
93
+ # alert = ESP::Alert.find(1, include: 'tags,external_account.team')
94
+ # alert = ESP::Alert.find(:all, params: { report_id: 5 })
84
95
  #
85
- # :call-seq:
86
- # find(id, options = {})
87
96
  def self.find(*arguments)
88
97
  scope = arguments.slice!(0)
89
98
  options = (arguments.slice!(0) || {}).with_indifferent_access
@@ -93,31 +102,33 @@ module ESP
93
102
  all(from: "#{from}.json", params: params)
94
103
  end
95
104
 
96
- def self.for_report(report_id) # :nodoc:
105
+ # @private
106
+ def self.for_report(report_id)
97
107
  fail ArgumentError, "You must supply a report id." unless report_id.present?
98
108
  "#{prefix}reports/#{report_id}/alerts"
99
109
  end
100
110
 
101
111
  # Suppress the signature associated with this alert.
102
- # ==== Parameter
103
112
  #
104
- # +reason+ | Required | The reason for creating the suppression.
113
+ # @param reason [String] Required reason for creating the suppression.
114
+ # @return [ESP::Suppression::Signature]
105
115
  def suppress_signature(reason = nil)
106
116
  suppress(Suppression::Signature, reason)
107
117
  end
108
118
 
109
119
  # Suppress the region associated with this alert.
110
- # ==== Parameter
111
120
  #
112
- # +reason+ | Required | The reason for creating the suppression.
121
+ # @param reason [String] Required reason for creating the suppression.
122
+ # @return [ESP::Suppression::Region]
113
123
  def suppress_region(reason = nil)
114
124
  suppress(Suppression::Region, reason)
115
125
  end
116
126
 
117
127
  # Suppress the unique identifier associated with this alert.
118
- # ==== Parameter
119
128
  #
120
- # +reason+ | Required | The reason for creating the suppression.
129
+ # @param reason [String] Required reason for creating the suppression.
130
+ # @return [ESP::Suppression::UniqueIdentifier]
131
+ # @raise [ArgumentError] if no +reason+ is supplied.
121
132
  def suppress_unique_identifier(reason = nil)
122
133
  suppress(Suppression::UniqueIdentifier, reason)
123
134
  end
@@ -1,28 +1,33 @@
1
1
  module ESP
2
2
  class CloudTrailEvent < ESP::Resource
3
3
  # Not Implemented. You cannot search for a CloudTrailEvent.
4
+ #
5
+ # @return [void]
4
6
  def self.where(*)
5
7
  fail ESP::NotImplementedError
6
8
  end
7
9
 
8
10
  # Not Implemented. You cannot create or update a CloudTrailEvent.
11
+ #
12
+ # @return [void]
9
13
  def save
10
14
  fail ESP::NotImplementedError
11
15
  end
12
16
 
13
17
  # Not Implemented. You cannot destroy a CloudTrailEvent.
18
+ #
19
+ # @return [void]
14
20
  def destroy
15
21
  fail ESP::NotImplementedError
16
22
  end
17
23
 
18
- # Returns a paginated collection of cloud trail events for the given alert_id
19
- # Convenience method to use instead of ::find since an alert_id is required to return cloud trail events.
24
+ # Returns cloud trail events for the given +alert_id+.
25
+ # Convenience method to use instead of {.find} since an +alert_id+ is required to return cloud trail events.
20
26
  #
21
- # ==== Parameter
22
- #
23
- # +alert_id+ | Required | The ID of the alert to retrieve cloud trail events for
24
- #
25
- # ==== Example
27
+ # @param alert_id [Integer, Numeric, #to_i] Required ID of the alert to retrieve cloud trail events for.
28
+ # @return [ActiveResource::PaginatedCollection<ESP::CloudTrailEvent>]
29
+ # @raise [ArgumentError] if no +alert_id+ is provided.
30
+ # @example
26
31
  # alerts = ESP::CloudTrailEvent.for_alert(1194)
27
32
  def self.for_alert(alert_id = nil)
28
33
  fail ArgumentError, "You must supply an alert id." unless alert_id.present?
@@ -32,12 +37,13 @@ module ESP
32
37
 
33
38
  # Find a CloudTrailEvent by id
34
39
  #
35
- # ==== Parameter
36
- #
37
- # +id+ | Required | The ID of the cloud trail event to retrieve
40
+ # *call-seq* -> +super.find(id)+
38
41
  #
39
- # :call-seq:
40
- # find(id)
42
+ # @overload find(id)
43
+ # @param id [Integer, Numeric, #to_i] Required ID of the cloud trail event to retrieve
44
+ # @return [ESP::CloudTrailEvent]
45
+ # @example
46
+ # alert = ESP::CloudTrailEvent.find(1)
41
47
  def self.find(*arguments)
42
48
  scope = arguments.slice!(0)
43
49
  options = (arguments.slice!(0) || {}).with_indifferent_access
@@ -1,79 +1,82 @@
1
- module ESP::StatTotals # :nodoc:
2
- # Not Implemented. You cannot create or update a Stat.
3
- def save
4
- fail ESP::NotImplementedError
5
- end
6
-
7
- # Not Implemented. You cannot delete a Stat.
8
- def destroy
9
- fail ESP::NotImplementedError
10
- end
1
+ module ESP
2
+ # @private
3
+ module StatTotals
4
+ # Not Implemented. You cannot create or update a Stat.
5
+ def save
6
+ fail ESP::NotImplementedError
7
+ end
11
8
 
12
- # We only add new_1w* and old* fields as the new_1w field includes the counts from new_1h and new_1d.
13
- def total
14
- attributes.select { |a, _v| a.match(/new_1w|old/) }.values.reduce(:+)
15
- end
9
+ # Not Implemented. You cannot delete a Stat.
10
+ def destroy
11
+ fail ESP::NotImplementedError
12
+ end
16
13
 
17
- def total_suppressed
18
- attributes.select { |a, _v| a.match(/suppressed_/) }.values.reduce(:+)
19
- end
14
+ # We only add new_1w* and old* fields as the new_1w field includes the counts from new_1h and new_1d.
15
+ def total
16
+ attributes.select { |a, _v| a.match(/new_1w|old/) }.values.reduce(:+)
17
+ end
20
18
 
21
- %w(fail warn error pass info).each do |status|
22
- # Defines the following methods:
23
- # Stat#total_pass
24
- # Stat#total_fail
25
- # Stat#total_warn
26
- # Stat#total_error
27
- # Stat#total_info
28
- define_method "total_#{status}" do
29
- attributes.select { |a, _v| a.match(/new_1w|old/) && a.match(/#{status}/) }.values.reduce(:+)
19
+ def total_suppressed
20
+ attributes.select { |a, _v| a.match(/suppressed_/) }.values.reduce(:+)
30
21
  end
31
22
 
32
- # Defines the following methods:
33
- # Stat#total_new_1h_pass
34
- # Stat#total_new_1h_fail
35
- # Stat#total_new_1h_warn
36
- # Stat#total_new_1h_error
37
- # Stat#total_new_1h_info
38
- # Stat#total_new_1d_pass
39
- # Stat#total_new_1d_fail
40
- # Stat#total_new_1d_warn
41
- # Stat#total_new_1d_error
42
- # Stat#total_new_1d_info
43
- # Stat#total_new_1w_pass
44
- # Stat#total_new_1w_fail
45
- # Stat#total_new_1w_error
46
- # Stat#total_new_1w_info
47
- # Stat#total_new_1w_warn
48
- # Stat#total_old_fail
49
- # Stat#total_old_pass
50
- # Stat#total_old_warn
51
- # Stat#total_old_error
52
- # Stat#total_old_info
53
- %w(new_1h new_1d new_1w old).each do |time|
54
- define_method "total_#{time}_#{status}" do
55
- attributes.select { |a| a.match(/#{time}/) && a.match(/#{status}/) }.values.reduce(:+)
23
+ %w(fail warn error pass info).each do |status|
24
+ # Defines the following methods:
25
+ # Stat#total_pass
26
+ # Stat#total_fail
27
+ # Stat#total_warn
28
+ # Stat#total_error
29
+ # Stat#total_info
30
+ define_method "total_#{status}" do
31
+ attributes.select { |a, _v| a.match(/new_1w|old/) && a.match(/#{status}/) }.values.reduce(:+)
56
32
  end
57
- end
58
33
 
59
- # Defines the following methods:
60
- # Stat#total_suppressed_pass
61
- # Stat#total_suppressed_fail
62
- # Stat#total_suppressed_warn
63
- # Stat#total_suppressed_error
64
- define_method "total_suppressed_#{status}" do
65
- attributes.select { |a| a.match(/suppressed_/) && a.match(/#{status}/) }.values.reduce(:+)
34
+ # Defines the following methods:
35
+ # Stat#total_new_1h_pass
36
+ # Stat#total_new_1h_fail
37
+ # Stat#total_new_1h_warn
38
+ # Stat#total_new_1h_error
39
+ # Stat#total_new_1h_info
40
+ # Stat#total_new_1d_pass
41
+ # Stat#total_new_1d_fail
42
+ # Stat#total_new_1d_warn
43
+ # Stat#total_new_1d_error
44
+ # Stat#total_new_1d_info
45
+ # Stat#total_new_1w_pass
46
+ # Stat#total_new_1w_fail
47
+ # Stat#total_new_1w_error
48
+ # Stat#total_new_1w_info
49
+ # Stat#total_new_1w_warn
50
+ # Stat#total_old_fail
51
+ # Stat#total_old_pass
52
+ # Stat#total_old_warn
53
+ # Stat#total_old_error
54
+ # Stat#total_old_info
55
+ %w(new_1h new_1d new_1w old).each do |time|
56
+ define_method "total_#{time}_#{status}" do
57
+ attributes.select { |a| a.match(/#{time}/) && a.match(/#{status}/) }.values.reduce(:+)
58
+ end
59
+ end
60
+
61
+ # Defines the following methods:
62
+ # Stat#total_suppressed_pass
63
+ # Stat#total_suppressed_fail
64
+ # Stat#total_suppressed_warn
65
+ # Stat#total_suppressed_error
66
+ define_method "total_suppressed_#{status}" do
67
+ attributes.select { |a| a.match(/suppressed_/) && a.match(/#{status}/) }.values.reduce(:+)
68
+ end
66
69
  end
67
- end
68
70
 
69
- # Defines the following methods:
70
- # Stat#total_new_1h
71
- # Stat#total_new_1d
72
- # Stat#total_new_1w
73
- # Stat#total_old
74
- %w(new_1h new_1d new_1w old).each do |time|
75
- define_method "total_#{time}" do
76
- attributes.select { |a| a.match(/#{time}/) }.values.reduce(:+)
71
+ # Defines the following methods:
72
+ # Stat#total_new_1h
73
+ # Stat#total_new_1d
74
+ # Stat#total_new_1w
75
+ # Stat#total_old
76
+ %w(new_1h new_1d new_1w old).each do |time|
77
+ define_method "total_#{time}" do
78
+ attributes.select { |a| a.match(/#{time}/) }.values.reduce(:+)
79
+ end
77
80
  end
78
81
  end
79
82
  end
@@ -2,42 +2,45 @@ module ESP
2
2
  # Use contact requests to send a support or feature request to Evident.io.
3
3
  class ContactRequest < ESP::Resource
4
4
  # Not Implemented. You cannot search for ContactRequest.
5
+ #
6
+ # @return [void]
5
7
  def self.find(*)
6
8
  fail ESP::NotImplementedError
7
9
  end
8
10
 
9
11
  # Not Implemented. You cannot search for ContactRequest.
12
+ #
13
+ # @return [void]
10
14
  def self.where(*)
11
15
  fail ESP::NotImplementedError
12
16
  end
13
17
 
14
18
  # Not Implemented. You cannot update a ContactRequest.
19
+ #
20
+ # @return [void]
15
21
  def update
16
22
  fail ESP::NotImplementedError
17
23
  end
18
24
 
19
25
  # Not Implemented. You cannot destroy a ContactRequest.
26
+ #
27
+ # @return [void]
20
28
  def destroy
21
29
  fail ESP::NotImplementedError
22
30
  end
23
31
 
24
- # :method: create(attributes={})
25
- # Create a contact request.
26
- #
27
- # ==== Parameter
28
- #
29
- # +attributes+ | Required | A hash of contact request attributes
30
- #
31
- # ===== Valid Attributes
32
- #
33
- # See {API documentation}[http://api-docs.evident.io?ruby#contact-request-create] for valid arguments
32
+ # @!method self.create(attributes={})
33
+ # Create a contact request.
34
34
  #
35
+ # *call-seq* -> +create(attributes={})+
35
36
  #
36
- # :call-seq:
37
- # create(attributes={})
37
+ # @param attributes [Hash] Required hash of contact request attributes
38
+ # ===== Valid Attributes
38
39
  #
39
- # ==== Example
40
+ # See {API documentation}[http://api-docs.evident.io?ruby#contact-request-create] for valid arguments
41
+ # @return [ESP::ContactRequest]
42
+ # @example
43
+ # contact_request = ESP::ContactRequest.create(request_type: 'feature', title: 'My great feature idea', description: 'This is my idea for a really useful feature...')
40
44
  #
41
- # contact_request = ESP::ContactRequest.create(request_type: 'feature', title: 'My great feature idea', description: 'This is my idea for a really useful feature...')
42
45
  end
43
46
  end
@@ -6,6 +6,7 @@ module ESP
6
6
  belongs_to :custom_signature, class_name: 'ESP::CustomSignature'
7
7
  has_many :results, class_name: 'ESP::CustomSignature::Result'
8
8
 
9
+ # @return [Net::HTTPSuccess, false]
9
10
  def activate
10
11
  patch(:activate).tap do |response|
11
12
  load_attributes_from_response(response)
@@ -16,6 +17,7 @@ module ESP
16
17
  false
17
18
  end
18
19
 
20
+ # @return [Net::HTTPSuccess, false]
19
21
  def archive
20
22
  patch(:archive).tap do |response|
21
23
  load_attributes_from_response(response)
@@ -26,75 +28,68 @@ module ESP
26
28
  false
27
29
  end
28
30
 
29
- # :singleton-method: where
30
- # Return a paginated CustomSignature::Definition list filtered by search parameters
31
+ # @!method self.where(clauses = {})
32
+ # Return a list filtered by search parameters
31
33
  #
32
- # ==== Parameters
34
+ # *call-seq* -> +super.where(clauses = {})+
33
35
  #
34
- # +clauses+ | Hash of attributes with appended predicates to search, sort and include.
36
+ # @param clauses [Hash] A hash of attributes with appended predicates to search, sort and include.
37
+ # ===== Valid Clauses
35
38
  #
36
- # ===== Valid Clauses
37
- #
38
- # See {API documentation}[http://api-docs.evident.io?ruby#custom-signature-definition-attributes] for valid arguments
39
- #
40
- # :call-seq:
41
- # where(clauses = {})
39
+ # See {API documentation}[http://api-docs.evident.io?ruby#custom-signature-definition-attributes] for valid arguments
40
+ # @return [ActiveResource::PaginatedCollection<ESP::CustomSignature::Definition>]
42
41
 
43
- ##
44
- # :singleton-method: find
45
- # Find a CustomSignature::Definition by id
46
- #
47
- # ==== Parameter
42
+ # @!method self.find(id)
43
+ # Find a CustomSignature::Definition by id
48
44
  #
49
- # +id+ | Required | The ID of the custom signature definition to retrieve
45
+ # *call-seq* -> +find(id, options = {})+
50
46
  #
51
- # +options+ | Optional | A hash of options
47
+ # @overload find(id)
48
+ # @overload find(id, options = {})
49
+ # @param options | Optional | A hash of options
50
+ # ===== Valid Options
52
51
  #
53
- # ===== Valid Options
52
+ # +include+ | The list of associated objects to return on the initial request.
54
53
  #
55
- # +include+ | The list of associated objects to return on the initial request.
54
+ # ===== Valid Includable Associations
56
55
  #
57
- # ===== Valid Includable Associations
58
- #
59
- # See {API documentation}[http://api-docs.evident.io?ruby#custom-signature-definition-attributes] for valid arguments
60
- #
61
- # :call-seq:
62
- # find(id, options = {})
63
-
64
- # :singleton-method: all
65
- # Return a paginated CustomSignature::Definition list
56
+ # See {API documentation}[http://api-docs.evident.io?ruby#custom-signature-definition-attributes] for valid arguments
57
+ # @param id [Integer, Numeric, #to_i] Required ID of the custom signature definition to retrieve
58
+ # @return [ESP::CustomSignature::Definition]
66
59
 
67
- # :singleton-method: create
68
- # Create a CustomSignature::Definition
69
- # :call-seq:
70
- # create(attributes={})
60
+ # @!method self.all
61
+ # Return a paginated list
71
62
  #
72
- # ==== Parameter
73
- #
74
- # +attributes+ | Required | A hash of custom signature definition attributes
75
- #
76
- # ===== Valid Attributes
77
- #
78
- # See {API documentation}[http://api-docs.evident.io?ruby#custom-signature-definition-create] for valid arguments
63
+ # @return [ActiveResource::PaginatedCollection<ESP::CustomSignature::Definition>]
64
+
65
+ # @!method self.create(attributes = {})
66
+ # Create a CustomSignature::Definition
67
+ # *call-seq* -> +super.create(attributes={})+
79
68
  #
80
- # ==== Example
69
+ # @param attributes [Hash] Required hash of custom signature definition attributes.
70
+ # ===== Valid Attributes
81
71
  #
82
- # definition = ESP::CustomSignature::Definition.create(custom_signature_id: 1)
72
+ # See {API documentation}[http://api-docs.evident.io?ruby#custom-signature-definition-create] for valid arguments
73
+ # @return [ESP::CustomSignature::Definition
74
+ # @example
75
+ # definition = ESP::CustomSignature::Definition.create(custom_signature_id: 1)
83
76
 
84
- # :method: save
85
- # Create or update a CustomSignature::Definition
86
- #
87
- # ===== Valid Attributes
77
+ # @!method save
78
+ # Create or update a CustomSignature::Definition
88
79
  #
89
- # See {API documentation}[http://api-docs.evident.io?ruby#custom-signature-definition-create] for valid arguments
80
+ # ===== Valid Attributes
90
81
  #
91
- # ==== Example
82
+ # See {API documentation}[http://api-docs.evident.io?ruby#custom-signature-definition-create] for valid arguments
92
83
  #
93
- # definition = ESP::CustomSignature::Definition.new(custom_signature_id: 1)
94
- # definition.save
84
+ # @return [Boolean]
85
+ # @example
86
+ # definition = ESP::CustomSignature::Definition.new(custom_signature_id: 1)
87
+ # definition.save
95
88
 
96
- # :method: destroy
97
- # Delete a CustomSignature::Definition
89
+ # @!method destroy
90
+ # Delete a CustomSignature::Definition
91
+ #
92
+ # @return [self]
98
93
  end
99
94
  end
100
95
  end
@@ -8,11 +8,9 @@ module ESP
8
8
 
9
9
  # Returns all the alerts for a custom signature result identified by the custom_signature_result_id parameter.
10
10
  #
11
- # ==== Parameters
12
- #
13
- # +custom_signature_result_id+ | Required | The ID of the custom signature result to retrieve alerts for
14
- #
15
- # See {API documentation}[http://api-docs.evident.io?ruby#alert-attributes] for valid arguments
11
+ # @param custom_signature_result_id [Integer, Numeric, #to_i] Required ID of the custom signature result to retrieve alerts for
12
+ # @return [ActiveResource::PaginatedCollection<ESP::CustomSignature::Result::Alert>]
13
+ # @raise [ArgumentError] if no +custom_signature_result_id+ is supplied.
16
14
  def self.for_result(custom_signature_result_id = nil)
17
15
  fail ArgumentError, "You must supply a custom signature result id." unless custom_signature_result_id.present?
18
16
  # call find_every directly since find is overriden/not implemented
@@ -22,6 +20,8 @@ module ESP
22
20
  # Not Implemented. You cannot search for CustomSignature::Result::Alert.
23
21
  #
24
22
  # Regular ARELlike methods are disabled.
23
+ #
24
+ # @return [void]
25
25
  def self.find(*)
26
26
  fail ESP::NotImplementedError, 'Regular ARELlike methods are disabled. Use the .for_result method.'
27
27
  end
@@ -29,21 +29,29 @@ module ESP
29
29
  # Not Implemented. You cannot search for CustomSignature::Result::Alert.
30
30
  #
31
31
  # Regular ARELlike methods are disabled.
32
+ #
33
+ # @return [void]
32
34
  def self.where(*)
33
35
  fail ESP::NotImplementedError, 'Regular ARELlike methods are disabled. Use the .for_result method.'
34
36
  end
35
37
 
36
38
  # Not Implemented. You cannot create a CustomSignature::Result::Alert.
39
+ #
40
+ # @return [void]
37
41
  def create
38
42
  fail ESP::NotImplementedError
39
43
  end
40
44
 
41
45
  # Not Implemented. You cannot update a CustomSignature::Result::Alert.
46
+ #
47
+ # @return [void]
42
48
  def update
43
49
  fail ESP::NotImplementedError
44
50
  end
45
51
 
46
52
  # Not Implemented. You cannot destroy a CustomSignature::Result::Alert.
53
+ #
54
+ # @return [void]
47
55
  def destroy
48
56
  fail ESP::NotImplementedError
49
57
  end