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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.yardopts +1 -0
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +5 -3
- data/Guardfile +3 -1
- data/esp_sdk.gemspec +2 -1
- data/lib/esp/aws_clients.rb +2 -1
- data/lib/esp/commands/commands_tasks.rb +2 -1
- data/lib/esp/commands/console.rb +4 -0
- data/lib/esp/exceptions.rb +1 -0
- data/lib/esp/extensions/active_resource/dirty.rb +51 -0
- data/lib/esp/extensions/active_resource/formats/json_api_format.rb +5 -3
- data/lib/esp/extensions/active_resource/paginated_collection.rb +71 -38
- data/lib/esp/extensions/active_resource/validations.rb +4 -2
- data/lib/esp/external_account_creator.rb +4 -1
- data/lib/esp/resources/alert.rb +53 -42
- data/lib/esp/resources/cloud_trail_event.rb +18 -12
- data/lib/esp/resources/concerns/stat_totals.rb +70 -67
- data/lib/esp/resources/contact_request.rb +17 -14
- data/lib/esp/resources/custom_signature/definition.rb +46 -51
- data/lib/esp/resources/custom_signature/result/alert.rb +13 -5
- data/lib/esp/resources/custom_signature/result.rb +49 -53
- data/lib/esp/resources/custom_signature.rb +52 -61
- data/lib/esp/resources/dashboard.rb +11 -5
- data/lib/esp/resources/external_account.rb +59 -58
- data/lib/esp/resources/metadata.rb +21 -11
- data/lib/esp/resources/organization.rb +49 -39
- data/lib/esp/resources/region.rb +25 -28
- data/lib/esp/resources/report.rb +46 -44
- data/lib/esp/resources/reports/export/integration.rb +22 -13
- data/lib/esp/resources/resource.rb +4 -3
- data/lib/esp/resources/scan_interval.rb +19 -13
- data/lib/esp/resources/service.rb +17 -11
- data/lib/esp/resources/signature.rb +43 -53
- data/lib/esp/resources/stat.rb +72 -55
- data/lib/esp/resources/stat_custom_signature.rb +73 -65
- data/lib/esp/resources/stat_region.rb +76 -65
- data/lib/esp/resources/stat_service.rb +76 -65
- data/lib/esp/resources/stat_signature.rb +76 -65
- data/lib/esp/resources/sub_organization.rb +51 -60
- data/lib/esp/resources/suppression/region.rb +35 -30
- data/lib/esp/resources/suppression/signature.rb +35 -29
- data/lib/esp/resources/suppression/unique_identifier.rb +27 -22
- data/lib/esp/resources/suppression.rb +45 -34
- data/lib/esp/resources/tag.rb +20 -11
- data/lib/esp/resources/team.rb +56 -58
- data/lib/esp/resources/user.rb +35 -32
- data/lib/esp/version.rb +1 -1
- data/lib/esp.rb +39 -16
- data/lib/esp_sdk.rb +1 -0
- data/test/esp/extensions/active_resource/dirty_test.rb +81 -0
- data/test/esp/extensions/active_resource/formats/json_api_format_test.rb +8 -0
- data/test/esp/extensions/active_resource/paginated_collection_test.rb +7 -0
- data/test/esp/integration/json_api_format_integration_test.rb +5 -2
- data/test/esp/integration/organization_integration_test.rb +1 -1
- data/test/esp/resources/custom_signature_test.rb +15 -0
- data/test/factories/custom_signatures.rb +0 -10
- metadata +21 -3
@@ -1,93 +1,84 @@
|
|
1
1
|
module ESP
|
2
2
|
class SubOrganization < ESP::Resource
|
3
|
-
##
|
4
3
|
# The organization this sub organization belongs to.
|
4
|
+
#
|
5
|
+
# @return [ESP::Organization]
|
5
6
|
belongs_to :organization, class_name: 'ESP::Organization'
|
6
7
|
|
7
|
-
##
|
8
8
|
# The collection of teams that belong to the sub organization.
|
9
|
+
#
|
10
|
+
# @return [ActiveResource::PaginatedCollection<ESP::Team>]
|
9
11
|
has_many :teams, class_name: 'ESP::Team'
|
10
12
|
|
11
|
-
##
|
12
13
|
# The collection of external_accounts that belong to the sub organization.
|
14
|
+
#
|
15
|
+
# @return [ActiveResource::PaginatedCollection<ESP::ExternalAccount>]
|
13
16
|
has_many :external_accounts, class_name: 'ESP::ExternalAccount'
|
14
17
|
|
15
|
-
##
|
16
18
|
# The collection of reports that belong to the sub organization.
|
19
|
+
#
|
20
|
+
# @return [ActiveResource::PaginatedCollection<ESP::Report>]
|
17
21
|
has_many :reports, class_name: 'ESP::Report'
|
18
22
|
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
# ==== Parameters
|
23
|
+
# @!method self.where(clauses = {}
|
24
|
+
# Return a paginated SubOrganization list filtered by search parameters
|
23
25
|
#
|
24
|
-
# +clauses
|
26
|
+
# *call-seq* -> +super.where(clauses = {})+
|
25
27
|
#
|
26
|
-
#
|
28
|
+
# @param clauses [Hash] A hash of attributes with appended predicates to search, sort and include.
|
29
|
+
# ===== Valid Clauses
|
27
30
|
#
|
28
|
-
#
|
29
|
-
#
|
30
|
-
# :call-seq:
|
31
|
-
# where(clauses = {})
|
31
|
+
# See {API documentation}[http://api-docs.evident.io?ruby#sub-organization-attributes] for valid arguments
|
32
|
+
# @return [ActiveResource::PaginatedCollection<ESP::SubOrganization>]
|
32
33
|
|
33
|
-
|
34
|
-
#
|
35
|
-
# Find a SubOrganization by id
|
36
|
-
#
|
37
|
-
# ==== Parameter
|
38
|
-
#
|
39
|
-
# +id+ | Required | The ID of the sub organization to retrieve
|
34
|
+
# @!method self.find(id, options = {})
|
35
|
+
# Find a SubOrganization by id
|
40
36
|
#
|
41
|
-
# +options
|
37
|
+
# *call-seq* -> +super.find(id, options = {})+
|
42
38
|
#
|
43
|
-
#
|
39
|
+
# @param id [Integer, Numeric, #to_i] Required ID of the sub organization to retrieve.
|
40
|
+
# @param options [Hash] Optional hash of options.
|
41
|
+
# ===== Valid Options
|
44
42
|
#
|
45
|
-
#
|
43
|
+
# +include+ | The list of associated objects to return on the initial request.
|
46
44
|
#
|
47
|
-
#
|
45
|
+
# ===== Valid Includable Associations
|
48
46
|
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
# :call-seq:
|
52
|
-
# find(id, options = {})
|
53
|
-
|
54
|
-
# :singleton-method: all
|
55
|
-
# Return a paginated SubOrganization list
|
47
|
+
# See {API documentation}[http://api-docs.evident.io?ruby#sub-organization-attributes] for valid arguments
|
48
|
+
# @return [ESP::SubOrganization]
|
56
49
|
|
57
|
-
#
|
58
|
-
#
|
59
|
-
# :call-seq:
|
60
|
-
# create(attributes={})
|
50
|
+
# @!method self.all
|
51
|
+
# Return a paginated SubOrganization list
|
61
52
|
#
|
62
|
-
#
|
63
|
-
#
|
64
|
-
# +attributes+ | Required | A hash of run arguments
|
65
|
-
#
|
66
|
-
# ===== Valid Attributes
|
67
|
-
#
|
68
|
-
# See {API documentation}[http://api-docs.evident.io?ruby#sub-organization-create] for valid arguments
|
69
|
-
#
|
70
|
-
# ==== Example
|
71
|
-
#
|
72
|
-
# sub_organization = ESP::SubOrganization.create(name: "Sub Organization Name")
|
53
|
+
# @return [ActiveResource::PaginatedCollection<ESP::SubOrganization>]
|
73
54
|
|
74
|
-
#
|
75
|
-
#
|
55
|
+
# @!method self.create(attributes = {})
|
56
|
+
# Create a SubOrganization.
|
57
|
+
# *call-seq* -> +super.create(attributes={})+
|
76
58
|
#
|
77
|
-
#
|
59
|
+
# @param attributes [Hash] Required hash of run arguments.
|
60
|
+
# ===== Valid Attributes
|
78
61
|
#
|
79
|
-
#
|
80
|
-
#
|
81
|
-
#
|
82
|
-
#
|
83
|
-
|
62
|
+
# See {API documentation}[http://api-docs.evident.io?ruby#sub-organization-create] for valid arguments
|
63
|
+
# @return [ESP::SubOrganization]
|
64
|
+
# @example
|
65
|
+
# sub_organization = ESP::SubOrganization.create(name: "Sub Organization Name")
|
66
|
+
|
67
|
+
# @!method save(attributes = {})
|
68
|
+
# Create and update a SubOrganization.
|
84
69
|
#
|
85
|
-
#
|
70
|
+
# @param attributes [Hash] Required hash of run arguments.
|
71
|
+
# ===== Valid Attributes
|
86
72
|
#
|
87
|
-
#
|
88
|
-
#
|
73
|
+
# See {API documentation}[http://api-docs.evident.io?ruby#sub-organization-create] for valid arguments
|
74
|
+
# @return [Boolean]
|
75
|
+
# @example
|
76
|
+
# sub_organization = ESP::SubOrganization.new(name: "Sub Organization Name")
|
77
|
+
# sub_organization.save
|
89
78
|
|
90
|
-
#
|
91
|
-
#
|
79
|
+
# @!method destroy
|
80
|
+
# Delete a SubOrganization.
|
81
|
+
#
|
82
|
+
# @return [self]
|
92
83
|
end
|
93
84
|
end
|
@@ -5,6 +5,8 @@ module ESP
|
|
5
5
|
# Not Implemented. You cannot search for Suppression::Region.
|
6
6
|
#
|
7
7
|
# Regular ARELlike methods are disabled. Use the ESP::Suppression object to search suppressions.
|
8
|
+
#
|
9
|
+
# @return [void]
|
8
10
|
def self.where(*)
|
9
11
|
fail ESP::NotImplementedError, 'Regular ARELlike methods are disabled. Use the ESP::Suppression object to search suppressions'
|
10
12
|
end
|
@@ -12,22 +14,30 @@ module ESP
|
|
12
14
|
# Not Implemented. You cannot search for Suppression::Region.
|
13
15
|
#
|
14
16
|
# Regular ARELlike methods are disabled. Use the ESP::Suppression object to search suppressions.
|
17
|
+
#
|
18
|
+
# @return [void]
|
15
19
|
def self.find(*)
|
16
20
|
fail ESP::NotImplementedError, 'Regular ARELlike methods are disabled. Use the ESP::Suppression object to search suppressions'
|
17
21
|
end
|
18
22
|
|
19
23
|
# Not Implemented. You cannot update a Suppression::Region.
|
24
|
+
#
|
25
|
+
# @return [void]
|
20
26
|
def update
|
21
27
|
fail ESP::NotImplementedError
|
22
28
|
end
|
23
29
|
|
24
30
|
# Not Implemented. You cannot destroy a Suppression::Region.
|
31
|
+
#
|
32
|
+
# @return [void]
|
25
33
|
def destroy
|
26
34
|
fail ESP::NotImplementedError
|
27
35
|
end
|
28
36
|
|
29
37
|
# This instance method is called by the #save method when new? is true.
|
30
|
-
|
38
|
+
#
|
39
|
+
# @private
|
40
|
+
def create
|
31
41
|
original_prefix = self.class.prefix
|
32
42
|
if attributes[:alert_id]
|
33
43
|
self.class.prefix += "alert/:alert_id/"
|
@@ -38,44 +48,39 @@ module ESP
|
|
38
48
|
self.class.prefix = original_prefix
|
39
49
|
end
|
40
50
|
|
41
|
-
#
|
42
|
-
#
|
51
|
+
# @!method self.create(attributes = {})
|
52
|
+
# Create a suppression for a region.
|
43
53
|
#
|
44
|
-
#
|
54
|
+
# If you pass an +alert_id+, include the +reason+ and all other params will be ignored, and the suppression will be created based on that alert.
|
45
55
|
#
|
46
|
-
#
|
47
|
-
# create(attributes={})
|
56
|
+
# *call-seq* -> +super.create(attributes={})+
|
48
57
|
#
|
49
|
-
#
|
58
|
+
# @param attributes [Hash] Required hash of region suppression attributes.
|
59
|
+
# ===== Valid Attributes
|
50
60
|
#
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
#
|
57
|
-
# ==== Example When Not Creating for Alert
|
58
|
-
# create(regions: ['us_east_1'], external_account_ids: [5], reason: 'My very good reason for creating this suppression')
|
59
|
-
#
|
60
|
-
# ==== Example When Creating for Alert
|
61
|
-
# create(alert_id: 5, reason: 'My very good reason for creating this suppression')
|
61
|
+
# See {API documentation}[http://api-docs.evident.io?ruby#suppression-region-create] for valid arguments
|
62
|
+
# @return [ESP::Suppression::Region>]
|
63
|
+
# @example When Not Creating for Alert
|
64
|
+
# create(regions: ['us_east_1'], external_account_ids: [5], reason: 'My very good reason for creating this suppression')
|
65
|
+
# @example When Creating for Alert
|
66
|
+
# create(alert_id: 5, reason: 'My very good reason for creating this suppression')
|
62
67
|
|
63
|
-
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
# If you set an +alert_id+, set the +reason+ and all other params will be ignored, and the suppression will be created based on that alert.
|
68
|
+
# @!method save
|
69
|
+
# Create a suppression for a region.
|
67
70
|
#
|
68
|
-
#
|
71
|
+
# If you set an +alert_id+, set the +reason+ and all other params will be ignored, and the suppression will be created based on that alert.
|
69
72
|
#
|
70
|
-
#
|
73
|
+
# ===== Valid Attributes
|
71
74
|
#
|
72
|
-
#
|
73
|
-
# suppression = new(regions: ['us_east_1'], external_account_ids: [5], reason: 'My very good reason for creating this suppression')
|
74
|
-
# suppression.save
|
75
|
+
# See {API documentation}[http://api-docs.evident.io?ruby#suppression-region-create] for valid arguments
|
75
76
|
#
|
76
|
-
#
|
77
|
-
#
|
78
|
-
#
|
77
|
+
# @return [Boolean]
|
78
|
+
# @example When Not Creating for Alert
|
79
|
+
# suppression = new(regions: ['us_east_1'], external_account_ids: [5], reason: 'My very good reason for creating this suppression')
|
80
|
+
# suppression.save
|
81
|
+
# @example When Creating for Alert
|
82
|
+
# suppression = new(alert_id: 5, reason: 'My very good reason for creating this suppression')
|
83
|
+
# suppression.save
|
79
84
|
end
|
80
85
|
end
|
81
86
|
end
|
@@ -5,6 +5,8 @@ module ESP
|
|
5
5
|
# Not Implemented. You cannot search for Suppression::Signature.
|
6
6
|
#
|
7
7
|
# Regular ARELlike methods are disabled. Use the ESP::Suppression object to search suppressions.
|
8
|
+
#
|
9
|
+
# @return [void]
|
8
10
|
def self.where(*)
|
9
11
|
fail ESP::NotImplementedError, 'Regular ARELlike methods are disabled. Use the ESP::Suppression object to search suppressions'
|
10
12
|
end
|
@@ -12,22 +14,30 @@ module ESP
|
|
12
14
|
# Not Implemented. You cannot search for Suppression::Signature.
|
13
15
|
#
|
14
16
|
# Regular ARELlike methods are disabled. Use the ESP::Suppression object to search suppressions.
|
17
|
+
#
|
18
|
+
# @return [void]
|
15
19
|
def self.find(*)
|
16
20
|
fail ESP::NotImplementedError, 'Regular ARELlike methods are disabled. Use the ESP::Suppression object to search suppressions'
|
17
21
|
end
|
18
22
|
|
19
23
|
# Not Implemented. You cannot update a Suppression::Signature.
|
24
|
+
#
|
25
|
+
# @return [void]
|
20
26
|
def update
|
21
27
|
fail ESP::NotImplementedError
|
22
28
|
end
|
23
29
|
|
24
30
|
# Not Implemented. You cannot destroy a Suppression::Signature.
|
31
|
+
#
|
32
|
+
# @return [void]
|
25
33
|
def destroy
|
26
34
|
fail ESP::NotImplementedError
|
27
35
|
end
|
28
36
|
|
29
37
|
# This instance method is called by the #save method when new? is true.
|
30
|
-
|
38
|
+
#
|
39
|
+
# @private
|
40
|
+
def create
|
31
41
|
original_prefix = self.class.prefix
|
32
42
|
if attributes[:alert_id]
|
33
43
|
self.class.prefix += "alert/:alert_id/"
|
@@ -38,44 +48,40 @@ module ESP
|
|
38
48
|
self.class.prefix = original_prefix
|
39
49
|
end
|
40
50
|
|
41
|
-
#
|
42
|
-
#
|
43
|
-
#
|
44
|
-
# If you pass an +alert_id+, include the +reason+ and all other params will be ignored, and the suppression will be created based on that alert.
|
45
|
-
#
|
46
|
-
# :call-seq:
|
47
|
-
# create(attributes={})
|
48
|
-
#
|
49
|
-
# ==== Parameter
|
50
|
-
#
|
51
|
-
# +attributes+ | Required | A hash of signature suppression attributes
|
51
|
+
# @!method self.create(attributes = {})
|
52
|
+
# Create a suppression for a signature or custom signature.
|
52
53
|
#
|
53
|
-
#
|
54
|
+
# If you pass an +alert_id+, include the +reason+ and all other params will be ignored, and the suppression will be created based on that alert.
|
54
55
|
#
|
55
|
-
#
|
56
|
+
# *call-seq* -> +super.create(attributes={})+
|
56
57
|
#
|
57
|
-
#
|
58
|
-
#
|
58
|
+
# @param attributes [Hash] Required hash of signature suppression attributes.
|
59
|
+
# ===== Valid Attributes
|
59
60
|
#
|
60
|
-
#
|
61
|
-
#
|
61
|
+
# See {API documentation}[http://api-docs.evident.io?ruby#suppression-signature-create] for valid arguments
|
62
|
+
# @return [ESP::Suppression::Signature>]
|
63
|
+
# @example When Not Creating for Alert
|
64
|
+
# create(signature_ids: [4, 2], regions: ['us_east_1'], external_account_ids: [5], reason: 'My very good reason for creating this suppression')
|
65
|
+
# @example When Creating for Alert
|
66
|
+
# create(alert_id: 5, reason: 'My very good reason for creating this suppression')
|
62
67
|
|
63
|
-
#
|
64
|
-
#
|
68
|
+
# @!method save
|
69
|
+
# Create a suppression for a signature or custom signature.
|
65
70
|
#
|
66
|
-
#
|
71
|
+
# If you set an +alert_id+, set the +reason+ and all other params will be ignored, and the suppression will be created based on that alert.
|
67
72
|
#
|
68
|
-
#
|
73
|
+
# ===== Valid Attributes
|
69
74
|
#
|
70
|
-
#
|
75
|
+
# See {API documentation}[http://api-docs.evident.io?ruby#suppression-signature-create] for valid arguments
|
71
76
|
#
|
72
|
-
#
|
73
|
-
#
|
74
|
-
#
|
77
|
+
# @return [Boolean]
|
78
|
+
# @example When Not Creating for Alert
|
79
|
+
# suppression = new(signature_ids: [4, 2], regions: ['us_east_1'], external_account_ids: [5], reason: 'My very good reason for creating this suppression')
|
80
|
+
# suppression.save
|
75
81
|
#
|
76
|
-
#
|
77
|
-
#
|
78
|
-
#
|
82
|
+
# @example When Creating for Alert
|
83
|
+
# suppression = new(alert_id: 5, reason: 'My very good reason for creating this suppression')
|
84
|
+
# suppression.save
|
79
85
|
end
|
80
86
|
end
|
81
87
|
end
|
@@ -5,6 +5,8 @@ module ESP
|
|
5
5
|
# Not Implemented. You cannot search for Suppression::UniqueIdentifier.
|
6
6
|
#
|
7
7
|
# Regular ARELlike methods are disabled. Use the ESP::Suppression object to search suppressions.
|
8
|
+
#
|
9
|
+
# @return [void]
|
8
10
|
def self.where(*)
|
9
11
|
fail ESP::NotImplementedError, 'Regular ARELlike methods are disabled. Use the ESP::Suppression object to search suppressions'
|
10
12
|
end
|
@@ -12,51 +14,54 @@ module ESP
|
|
12
14
|
# Not Implemented. You cannot search for Suppression::UniqueIdentifier.
|
13
15
|
#
|
14
16
|
# Regular ARELlike methods are disabled. Use the ESP::Suppression object to search suppressions.
|
17
|
+
#
|
18
|
+
# @return [void]
|
15
19
|
def self.find(*)
|
16
20
|
fail ESP::NotImplementedError, 'Regular ARELlike methods are disabled. Use the ESP::Suppression object to search suppressions'
|
17
21
|
end
|
18
22
|
|
19
23
|
# Not Implemented. You cannot update a Suppression::UniqueIdentifier.
|
24
|
+
#
|
25
|
+
# @return [void]
|
20
26
|
def update
|
21
27
|
fail ESP::NotImplementedError
|
22
28
|
end
|
23
29
|
|
24
30
|
# Not Implemented. You cannot destroy a Suppression::UniqueIdentifier.
|
31
|
+
#
|
32
|
+
# @return [void]
|
25
33
|
def destroy
|
26
34
|
fail ESP::NotImplementedError
|
27
35
|
end
|
28
36
|
|
29
|
-
#
|
30
|
-
#
|
31
|
-
#
|
32
|
-
# Pass an +alert_id+, the suppression will be created based on that alert.
|
33
|
-
#
|
34
|
-
# :call-seq:
|
35
|
-
# create(attributes={})
|
36
|
-
#
|
37
|
-
# ==== Parameter
|
37
|
+
# @!method self.create(attributes = {})
|
38
|
+
# Create a suppression for a unique identifier.
|
38
39
|
#
|
39
|
-
# +
|
40
|
+
# Pass an +alert_id+, the suppression will be created based on that alert.
|
40
41
|
#
|
41
|
-
#
|
42
|
+
# *call-seq* -> +super.create(attributes={})+
|
42
43
|
#
|
43
|
-
#
|
44
|
+
# @param attributes [Hash] Required hash of unique identifier suppression attributes.
|
45
|
+
# ==== Attributes
|
44
46
|
#
|
45
|
-
#
|
46
|
-
#
|
47
|
+
# See {API documentation}[http://api-docs.evident.io?ruby#suppression-unique-identifier-create] for valid arguments
|
48
|
+
# @return [ESP::Suppression::UniqueIdentifier>]
|
49
|
+
# @example
|
50
|
+
# create(alert_id: 5, reason: 'My very good reason for creating this suppression')
|
47
51
|
|
48
|
-
#
|
49
|
-
#
|
52
|
+
# @!method save
|
53
|
+
# Create a suppression for a unique identifier.
|
50
54
|
#
|
51
|
-
#
|
55
|
+
# Set an +alert_id+, the suppression will be created based on that alert.
|
52
56
|
#
|
53
|
-
#
|
57
|
+
# ==== Attributes
|
54
58
|
#
|
55
|
-
#
|
59
|
+
# See {API documentation}[http://api-docs.evident.io?ruby#suppression-unique-identifier-create] for valid arguments
|
56
60
|
#
|
57
|
-
#
|
58
|
-
#
|
59
|
-
#
|
61
|
+
# @return [Boolean]
|
62
|
+
# @example
|
63
|
+
# suppression = new(alert_id: 5, reason: 'My very good reason for creating this suppression')
|
64
|
+
# suppression.save
|
60
65
|
end
|
61
66
|
end
|
62
67
|
end
|
@@ -4,16 +4,19 @@ module ESP
|
|
4
4
|
autoload :Signature, File.expand_path(File.dirname(__FILE__) + '/suppression/signature')
|
5
5
|
autoload :Region, File.expand_path(File.dirname(__FILE__) + '/suppression/region')
|
6
6
|
|
7
|
-
##
|
8
7
|
# The organization this sub organization belongs to.
|
8
|
+
#
|
9
|
+
# @return [ESP::Organization]
|
9
10
|
belongs_to :organization, class_name: 'ESP::Organization'
|
10
11
|
|
11
|
-
##
|
12
12
|
# The user who created the suppression.
|
13
|
+
#
|
14
|
+
# @return [ESP::User]
|
13
15
|
belongs_to :created_by, class_name: 'ESP::User'
|
14
16
|
|
15
|
-
##
|
16
17
|
# The regions affected by this suppression.
|
18
|
+
#
|
19
|
+
# @return [ActiveResource::PaginatedCollection<ESP::Region>]
|
17
20
|
def regions
|
18
21
|
# When regions come back in an include, the method still gets called, to return the object from the attributes.
|
19
22
|
return attributes['regions'] if attributes['regions'].present?
|
@@ -21,8 +24,9 @@ module ESP
|
|
21
24
|
ESP::Region.where(id_in: region_ids)
|
22
25
|
end
|
23
26
|
|
24
|
-
##
|
25
27
|
# The external accounts affected by this suppression.
|
28
|
+
#
|
29
|
+
# @return [ActiveResource::PaginatedCollection<ESP::ExternalAccount>]
|
26
30
|
def external_accounts
|
27
31
|
# When external_accounts come back in an include, the method still gets called, to return the object from the attributes.
|
28
32
|
return attributes['external_accounts'] if attributes['external_accounts'].present?
|
@@ -30,8 +34,9 @@ module ESP
|
|
30
34
|
ESP::ExternalAccount.where(id_in: external_account_ids)
|
31
35
|
end
|
32
36
|
|
33
|
-
##
|
34
37
|
# The signatures being suppressed.
|
38
|
+
#
|
39
|
+
# @return [ActiveResource::PaginatedCollection<ESP::Signature>]
|
35
40
|
def signatures
|
36
41
|
# When signatures come back in an include, the method still gets called, to return the object from the attributes.
|
37
42
|
return attributes['signatures'] if attributes['signatures'].present?
|
@@ -39,8 +44,9 @@ module ESP
|
|
39
44
|
ESP::Signature.where(id_in: signature_ids)
|
40
45
|
end
|
41
46
|
|
42
|
-
##
|
43
47
|
# The custom signatures being suppressed.
|
48
|
+
#
|
49
|
+
# @return [ActiveResource::PaginatedCollection<ESP::CustomSignature>]
|
44
50
|
def custom_signatures
|
45
51
|
# When custom_signatures come back in an include, the method still gets called, to return the object from the attributes.
|
46
52
|
return attributes['custom_signatures'] if attributes['custom_signatures'].present?
|
@@ -49,16 +55,22 @@ module ESP
|
|
49
55
|
end
|
50
56
|
|
51
57
|
# Overriden so the correct param is sent on the has_many relationships. API needs this one to be plural.
|
52
|
-
|
58
|
+
#
|
59
|
+
# @private
|
60
|
+
def self.element_name
|
53
61
|
'suppressions'
|
54
62
|
end
|
55
63
|
|
56
64
|
# Not Implemented. You cannot create or update a Suppression.
|
65
|
+
#
|
66
|
+
# @return [void]
|
57
67
|
def save
|
58
68
|
fail ESP::NotImplementedError
|
59
69
|
end
|
60
70
|
|
61
71
|
# Not Implemented. You cannot destroy a Suppression.
|
72
|
+
#
|
73
|
+
# @return [void]
|
62
74
|
def destroy
|
63
75
|
fail ESP::NotImplementedError
|
64
76
|
end
|
@@ -67,6 +79,9 @@ module ESP
|
|
67
79
|
# The current object will be updated with the new status if successful.
|
68
80
|
# Throws an error if not successful.
|
69
81
|
# === Once deactivated the suppression cannot be reactivated.
|
82
|
+
#
|
83
|
+
# @return [void]
|
84
|
+
# @raise [ActiveResource::ResourceInvalid] if unsuccessful.
|
70
85
|
def deactivate!
|
71
86
|
return self if deactivate
|
72
87
|
self.message = errors.full_messages.join(' ')
|
@@ -77,6 +92,8 @@ module ESP
|
|
77
92
|
# The current object will be updated with the new status if successful.
|
78
93
|
# If not successful, populates its errors object.
|
79
94
|
# === Once deactivated the suppression cannot be reactivated.
|
95
|
+
#
|
96
|
+
# @return [Net::HTTPSuccess, false]
|
80
97
|
def deactivate
|
81
98
|
patch(:deactivate).tap do |response|
|
82
99
|
load_attributes_from_response(response)
|
@@ -87,42 +104,36 @@ module ESP
|
|
87
104
|
false
|
88
105
|
end
|
89
106
|
|
90
|
-
#
|
91
|
-
#
|
92
|
-
#
|
93
|
-
# ==== Parameters
|
94
|
-
#
|
95
|
-
# +clauses+ | Hash of attributes with appended predicates to search, sort and include.
|
107
|
+
# @!method self.where(clauses = {})
|
108
|
+
# Return a paginated Suppression list filtered by search parameters
|
96
109
|
#
|
97
|
-
#
|
110
|
+
# *call-seq* -> +super.where(clauses = {})+
|
98
111
|
#
|
99
|
-
#
|
112
|
+
# @param clauses [Hash] A hash of attributes with appended predicates to search, sort and include.
|
113
|
+
# ===== Valid Clauses
|
100
114
|
#
|
101
|
-
#
|
102
|
-
#
|
115
|
+
# See {API documentation}[http://api-docs.evident.io?ruby#suppression-attributes] for valid arguments
|
116
|
+
# @return [ActiveResource::PaginatedCollection<ESP::Suppression>]
|
103
117
|
|
104
|
-
|
105
|
-
#
|
106
|
-
# Find a Suppression by id
|
118
|
+
# @!method self.find(id, options = {})
|
119
|
+
# Find a Suppression by id
|
107
120
|
#
|
108
|
-
#
|
121
|
+
# *call-seq* -> +super.find(id, options = {})+
|
109
122
|
#
|
110
|
-
#
|
123
|
+
# @param id [Integer, Numeric, #to_i] Required ID of the suppression to retrieve.
|
124
|
+
# @param options [Hash] Optional hash of options.
|
125
|
+
# ===== Valid Options
|
111
126
|
#
|
112
|
-
#
|
127
|
+
# +include+ | The list of associated objects to return on the initial request.
|
113
128
|
#
|
114
|
-
#
|
129
|
+
# ===== Valid Includable Associations
|
115
130
|
#
|
116
|
-
#
|
117
|
-
#
|
118
|
-
# ===== Valid Includable Associations
|
119
|
-
#
|
120
|
-
# See {API documentation}[http://api-docs.evident.io?ruby#suppression-attributes] for valid arguments
|
121
|
-
#
|
122
|
-
# :call-seq:
|
123
|
-
# find(id, options = {})
|
131
|
+
# See {API documentation}[http://api-docs.evident.io?ruby#suppression-attributes] for valid arguments
|
132
|
+
# @return [ESP::Suppression]
|
124
133
|
|
125
|
-
#
|
126
|
-
#
|
134
|
+
# @!method self.all
|
135
|
+
# Return a paginated Suppression list
|
136
|
+
#
|
137
|
+
# @return [ActiveResource::PaginatedCollection<ESP::Suppression>]
|
127
138
|
end
|
128
139
|
end
|