esp_sdk 2.5.0 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
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