esp_sdk 2.0.0.rc1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/Gemfile.lock +1 -15
  4. data/assets/esp_logo.ans +27 -0
  5. data/bin/esp_console +2 -6
  6. data/esp_sdk.gemspec +0 -3
  7. data/lib/esp/extensions/active_resource/formats/json_api_format.rb +22 -3
  8. data/lib/esp/resources/alert.rb +6 -0
  9. data/lib/esp/resources/metadata.rb +50 -0
  10. data/lib/esp/resources/resource.rb +1 -0
  11. data/lib/esp/resources/signature.rb +5 -5
  12. data/lib/esp/version.rb +1 -1
  13. data/lib/esp.rb +1 -0
  14. data/lib/esp_sdk.rb +0 -1
  15. data/rdoc/ActiveResource/Formats.html +2 -0
  16. data/rdoc/ActiveResource/PaginatedCollection.html +2 -0
  17. data/rdoc/ActiveResource.html +2 -0
  18. data/rdoc/ESP/Alert.html +44 -7
  19. data/rdoc/ESP/CloudTrailEvent.html +2 -0
  20. data/rdoc/ESP/ContactRequest.html +2 -0
  21. data/rdoc/ESP/CustomSignature.html +2 -0
  22. data/rdoc/ESP/Dashboard.html +2 -0
  23. data/rdoc/ESP/ExternalAccount.html +2 -0
  24. data/rdoc/ESP/Metadata.html +411 -0
  25. data/rdoc/ESP/Organization.html +2 -0
  26. data/rdoc/ESP/Region.html +2 -0
  27. data/rdoc/ESP/Report.html +2 -0
  28. data/rdoc/ESP/Service.html +2 -0
  29. data/rdoc/ESP/Signature.html +9 -7
  30. data/rdoc/ESP/Stat.html +2 -0
  31. data/rdoc/ESP/StatCustomSignature.html +2 -0
  32. data/rdoc/ESP/StatRegion.html +2 -0
  33. data/rdoc/ESP/StatService.html +2 -0
  34. data/rdoc/ESP/StatSignature.html +2 -0
  35. data/rdoc/ESP/SubOrganization.html +2 -0
  36. data/rdoc/ESP/Suppression/Region.html +2 -0
  37. data/rdoc/ESP/Suppression/Signature.html +2 -0
  38. data/rdoc/ESP/Suppression/UniqueIdentifier.html +2 -0
  39. data/rdoc/ESP/Suppression.html +2 -0
  40. data/rdoc/ESP/Tag.html +2 -0
  41. data/rdoc/ESP/Team.html +2 -0
  42. data/rdoc/ESP/User.html +2 -0
  43. data/rdoc/ESP.html +3 -0
  44. data/rdoc/README_md.html +2 -0
  45. data/rdoc/created.rid +31 -30
  46. data/rdoc/index.html +2 -0
  47. data/rdoc/js/search_index.js +1 -1
  48. data/rdoc/table_of_contents.html +218 -203
  49. data/test/esp/extensions/active_resource/formats/json_api_format_test.rb +28 -5
  50. data/test/esp/resources/alert_test.rb +26 -4
  51. data/test/esp/resources/custom_signature_test.rb +2 -2
  52. data/test/esp/resources/metadata_test.rb +98 -0
  53. data/test/esp/resources/resource_test.rb +10 -0
  54. data/test/esp/resources/signature_test.rb +9 -9
  55. data/test/esp/resources/suppression_test.rb +4 -4
  56. data/test/factories/alerts.rb +5 -1
  57. data/test/factories/cloud_trail_events.rb +1 -1
  58. data/test/factories/contact_requests.rb +15 -8
  59. data/test/factories/metadata.rb +9 -0
  60. data/test/test_helper.rb +0 -1
  61. metadata +12 -46
@@ -7,13 +7,13 @@ module ActiveResource
7
7
  context '# decode' do
8
8
  context 'with ESP::Suppression' do
9
9
  should 'parse nested objects correctly' do
10
- json = json(:alert)
10
+ json = json(:dashboard)
11
11
  parsed_json = JSON.parse(json)
12
- stub_request(:get, %r{alerts/5.json*}).to_return(body: json)
12
+ stub_request(:get, %r{dashboard/recent.json*}).to_return(body: json_list(:dashboard, 1))
13
13
 
14
- alert = ESP::Alert.find(5)
14
+ dashboard = ESP::Dashboard.recent
15
15
 
16
- assert_equal parsed_json['data']['attributes']['metadata']['abc'], alert.metadata.abc
16
+ assert_equal parsed_json['included'].first['attributes']['stat_signatures'].first['signature']['name'], dashboard.first.stat.stat_signatures.first.signature.name
17
17
  end
18
18
  end
19
19
 
@@ -23,7 +23,7 @@ module ActiveResource
23
23
  parsed_json = JSON.parse(json)
24
24
  stub_request(:get, %r{reports/1/alerts.json*}).to_return(body: json)
25
25
 
26
- alert = ESP::Alert.for_report(1).first
26
+ alert = ESP::Alert.for_report(1, include: 'external_accounts,regions,signatures,cloud_trail_events').first
27
27
 
28
28
  assert_equal parsed_json['included'].detect { |e| e['type'] == 'external_accounts' }['id'], alert.external_account.id
29
29
  assert_equal parsed_json['included'].detect { |e| e['type'] == 'regions' }['id'], alert.region.id
@@ -58,6 +58,29 @@ module ActiveResource
58
58
  teardown do
59
59
  WebMock.disable_net_connect!
60
60
  end
61
+
62
+ should 'merge included objects' do
63
+ alert = ESP::Alert.find(1, include: 'external_account,region,signature')
64
+
65
+ assert_not_nil alert.attributes['external_account']
66
+ assert_equal alert.external_account_id, alert.external_account.id
67
+ assert_not_nil alert.attributes['region']
68
+ assert_equal alert.region_id, alert.region.id
69
+ assert_not_nil alert.attributes['signature']
70
+ assert_equal alert.signature_id, alert.signature.id
71
+ end
72
+
73
+ should 'assign foreign key for a belongs_to relationship' do
74
+ user = ESP::User.last
75
+
76
+ assert_not_nil user.organization_id
77
+ end
78
+
79
+ should 'assign foreign key for a has_many relationship' do
80
+ user = ESP::User.last
81
+
82
+ assert_not_nil user.sub_organization_ids
83
+ end
61
84
  end
62
85
  end
63
86
 
@@ -13,18 +13,18 @@ module ESP
13
13
 
14
14
  context '#update' do
15
15
  should 'not be implemented' do
16
- cloud_trail_event = build(:cloud_trail_event)
16
+ alert = build(:alert)
17
17
  assert_raises ESP::NotImplementedError do
18
- cloud_trail_event.save
18
+ alert.save
19
19
  end
20
20
  end
21
21
  end
22
22
 
23
23
  context '#destroy' do
24
24
  should 'not be implemented' do
25
- cloud_trail_event = build(:cloud_trail_event)
25
+ alert = build(:alert)
26
26
  assert_raises ESP::NotImplementedError do
27
- cloud_trail_event.destroy
27
+ alert.destroy
28
28
  end
29
29
  end
30
30
  end
@@ -106,6 +106,17 @@ module ESP
106
106
  end
107
107
  end
108
108
 
109
+ context '#metadata' do
110
+ should 'call the api for the alert' do
111
+ alert = build(:alert)
112
+ stubbed_metadata = stub_request(:get, %r{alerts/#{alert.id}/metadata.json*}).to_return(body: json(:metadata))
113
+
114
+ alert.metadata
115
+
116
+ assert_requested(stubbed_metadata)
117
+ end
118
+ end
119
+
109
120
  context '.for_report' do
110
121
  should 'throw an error if report_id is not supplied' do
111
122
  error = assert_raises ArgumentError do
@@ -232,12 +243,23 @@ module ESP
232
243
  setup do
233
244
  skip "Make sure you run the live calls locally to ensure proper integration" if ENV['CI_SERVER']
234
245
  WebMock.allow_net_connect!
246
+ @report = ESP::Report.last
247
+ skip "Live DB does not have any reports. Add a report and run tests again." if @report.blank?
248
+ @alert = @report.alerts.last
235
249
  end
236
250
 
237
251
  teardown do
238
252
  WebMock.disable_net_connect!
239
253
  end
240
254
 
255
+ context '#metadata' do
256
+ should 'return metata' do
257
+ assert_nothing_raised do
258
+ @alert.metadata
259
+ end
260
+ end
261
+ end
262
+
241
263
  context '.for_report' do
242
264
  should 'return events for report id' do
243
265
  report = ESP::Report.last
@@ -190,7 +190,7 @@ module ESP
190
190
  end
191
191
 
192
192
  should 'return errors' do
193
- signature = ESP::CustomSignature.run(external_account_id: 999, regions: 'us_east_1', language: @custom_signature.language, signature: @custom_signature.signature)
193
+ signature = ESP::CustomSignature.run(external_account_id: 999_999_999_999, regions: 'us_east_1', language: @custom_signature.language, signature: @custom_signature.signature)
194
194
 
195
195
  assert_equal "Couldn't find ExternalAccount", signature.errors.full_messages.first
196
196
  end
@@ -205,7 +205,7 @@ module ESP
205
205
  end
206
206
 
207
207
  should 'return errors' do
208
- @custom_signature.run(external_account_id: 999)
208
+ @custom_signature.run(external_account_id: 999_999_999_999)
209
209
 
210
210
  assert_equal "Couldn't find ExternalAccount", @custom_signature.errors.full_messages.first
211
211
  end
@@ -0,0 +1,98 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../test_helper')
2
+
3
+ module ESP
4
+ class MetadataTest < ActiveSupport::TestCase
5
+ context ESP::Metadata do
6
+ context '#create' do
7
+ should 'not be implemented' do
8
+ assert_raises ESP::NotImplementedError do
9
+ ESP::Metadata.create(name: 'test')
10
+ end
11
+ end
12
+ end
13
+
14
+ context '#update' do
15
+ should 'not be implemented' do
16
+ metadata = build(:metadata)
17
+ assert_raises ESP::NotImplementedError do
18
+ metadata.save
19
+ end
20
+ end
21
+ end
22
+
23
+ context '#destroy' do
24
+ should 'not be implemented' do
25
+ metadata = build(:metadata)
26
+ assert_raises ESP::NotImplementedError do
27
+ metadata.destroy
28
+ end
29
+ end
30
+ end
31
+
32
+ context '.for_alert' do
33
+ should 'throw an error if alert id is not supplied' do
34
+ error = assert_raises ArgumentError do
35
+ ESP::Metadata.for_alert
36
+ end
37
+ assert_equal 'You must supply an alert id.', error.message
38
+ end
39
+
40
+ should 'call the api' do
41
+ stub_event = stub_request(:get, %r{alerts/5/metadata.json*}).to_return(body: json_list(:metadata, 2))
42
+
43
+ metadata = ESP::Metadata.for_alert(5)
44
+
45
+ assert_requested(stub_event)
46
+ assert_equal ESP::Metadata, metadata.class
47
+ end
48
+ end
49
+
50
+ context '.find' do
51
+ should 'throw an error if alert_id is not supplied' do
52
+ error = assert_raises ArgumentError do
53
+ ESP::Metadata.find(:all, params: { id: 3 })
54
+ end
55
+ assert_equal 'You must supply an alert id.', error.message
56
+ end
57
+
58
+ should 'call the show api and return metadata if searching by id' do
59
+ stub_event = stub_request(:get, %r{metadata/5.json*}).to_return(body: json(:metadata))
60
+
61
+ event = ESP::Metadata.find(5)
62
+
63
+ assert_requested(stub_event)
64
+ assert_equal ESP::Metadata, event.class
65
+ end
66
+
67
+ should 'call the api and return metadata when alert_id is supplied' do
68
+ stub_event = stub_request(:get, %r{alerts/5/metadata.json*}).to_return(body: json_list(:metadata, 2))
69
+
70
+ metadata = ESP::Metadata.find(:all, params: { alert_id: 5 })
71
+
72
+ assert_requested(stub_event)
73
+ assert_equal ESP::Metadata, metadata.class
74
+ end
75
+ end
76
+
77
+ context 'live calls' do
78
+ setup do
79
+ skip "Make sure you run the live calls locally to ensure proper integration" if ENV['CI_SERVER']
80
+ WebMock.allow_net_connect!
81
+ end
82
+
83
+ teardown do
84
+ WebMock.disable_net_connect!
85
+ end
86
+
87
+ context '.for_alert' do
88
+ should 'return metadata for alert id' do
89
+ report = ESP::Report.last
90
+ metadata = ESP::Metadata.for_alert(report.alerts.last.id)
91
+
92
+ assert_equal ESP::Metadata, metadata.class
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -14,6 +14,16 @@ module ESP
14
14
  end
15
15
  end
16
16
 
17
+ should 'set the User-Agent' do
18
+ stub_request(:get, %r{teams/3.json*}).to_return(body: json(:team))
19
+
20
+ ESP::Team.find(3)
21
+
22
+ assert_requested(:get, %r{teams/3.json*}) do |req|
23
+ assert_equal "Ruby SDK #{ESP::VERSION}", req.headers['User-Agent']
24
+ end
25
+ end
26
+
17
27
  should 'set the HMAC needed Authorization header' do
18
28
  ESP.access_key_id ||= ApiAuth.generate_secret_key
19
29
  ESP.secret_access_key ||= ApiAuth.generate_secret_key
@@ -45,12 +45,12 @@ module ESP
45
45
  signature = build(:signature)
46
46
  stub_request(:post, %r{signatures/#{signature.id}/run.json*}).to_return(body: json_list(:alert, 2))
47
47
 
48
- alerts = signature.run(external_account_id: 3, regions: 'param2')
48
+ alerts = signature.run(external_account_id: 3, region: 'param2')
49
49
 
50
50
  assert_requested(:post, %r{signatures/#{signature.id}/run.json}) do |req|
51
51
  body = JSON.parse req.body
52
52
  assert_equal 3, body['data']['attributes']['external_account_id']
53
- assert_equal ['param2'], body['data']['attributes']['regions']
53
+ assert_equal 'param2', body['data']['attributes']['region']
54
54
  end
55
55
  assert_equal ESP::Alert, alerts.resource_class
56
56
  end
@@ -64,7 +64,7 @@ module ESP
64
64
  ActiveResource::Connection.any_instance.expects(:post).raises(error)
65
65
 
66
66
  assert_nothing_raised do
67
- result = signature.run(external_account_id: 3, regions: 'param2')
67
+ result = signature.run(external_account_id: 3, region: 'param2')
68
68
  assert_equal JSON.parse(error_response)['errors'].first['title'], result.errors.full_messages.first
69
69
  end
70
70
  end
@@ -75,12 +75,12 @@ module ESP
75
75
  signature = build(:signature)
76
76
  stub_request(:post, %r{signatures/#{signature.id}/run.json*}).to_return(body: json_list(:alert, 2))
77
77
 
78
- alerts = signature.run!(external_account_id: 3, regions: 'param2')
78
+ alerts = signature.run!(external_account_id: 3, region: 'param2')
79
79
 
80
80
  assert_requested(:post, %r{signatures/#{signature.id}/run.json}) do |req|
81
81
  body = JSON.parse req.body
82
82
  assert_equal 3, body['data']['attributes']['external_account_id']
83
- assert_equal ['param2'], body['data']['attributes']['regions']
83
+ assert_equal 'param2', body['data']['attributes']['region']
84
84
  end
85
85
  assert_equal ESP::Alert, alerts.resource_class
86
86
  end
@@ -94,7 +94,7 @@ module ESP
94
94
  ActiveResource::Connection.any_instance.expects(:post).raises(error)
95
95
 
96
96
  error = assert_raises ActiveResource::ResourceInvalid do
97
- result = signature.run!(external_account_id: 3, regions: 'param2')
97
+ result = signature.run!(external_account_id: 3, region: 'param2')
98
98
  assert_equal JSON.parse(error_response)['errors'].first['title'], result.errors.full_messages.first
99
99
  end
100
100
  assert_equal "Failed. Response code = 400. Response message = #{JSON.parse(error_response)['errors'].first['title']}.", error.message
@@ -145,16 +145,16 @@ module ESP
145
145
  signature = ESP::Signature.first
146
146
  external_account_id = ESP::ExternalAccount.last.id
147
147
 
148
- alerts = signature.run(external_account_id: external_account_id, regions: 'us_east_1')
148
+ alerts = signature.run(external_account_id: external_account_id, region: 'us_east_1')
149
149
 
150
150
  assert_equal ESP::Alert, alerts.resource_class
151
151
  end
152
152
 
153
153
  should 'return errors' do
154
154
  signature = ESP::Signature.first
155
- external_account_id = 999
155
+ external_account_id = 999_999_999_999
156
156
 
157
- signature = signature.run(external_account_id: external_account_id, regions: ['us_east_1'])
157
+ signature = signature.run(external_account_id: external_account_id, region: 'us_east_1')
158
158
 
159
159
  assert_equal "Couldn't find ExternalAccount", signature.errors.full_messages.first
160
160
  end
@@ -168,7 +168,7 @@ module ESP
168
168
  should 'return regions' do
169
169
  r = @s.regions
170
170
 
171
- assert_equal @s.relationships.regions.data.map(&:id).sort, r.map(&:id).sort
171
+ assert_equal ESP::Region, r.resource_class unless r == []
172
172
  end
173
173
  end
174
174
 
@@ -176,7 +176,7 @@ module ESP
176
176
  should 'return external_accounts' do
177
177
  e = @s.external_accounts
178
178
 
179
- assert_equal @s.relationships.external_accounts.data.map(&:id).sort, e.map(&:id).sort
179
+ assert_equal ESP::ExternalAccount, e.resource_class
180
180
  end
181
181
  end
182
182
 
@@ -184,7 +184,7 @@ module ESP
184
184
  should 'return signatures' do
185
185
  s = @s.signatures
186
186
 
187
- assert_equal @s.relationships.signatures.data.map(&:id).sort, s.map(&:id).sort
187
+ assert_equal ESP::Signature, s.resource_class unless s == []
188
188
  end
189
189
  end
190
190
 
@@ -192,7 +192,7 @@ module ESP
192
192
  should 'return custom_signatures' do
193
193
  cs = @s.custom_signatures
194
194
 
195
- assert_equal @s.relationships.custom_signatures.data.map(&:id).sort, cs.map(&:id).sort
195
+ assert_equal ESP::CustomSignature, cs.resource_class unless cs == []
196
196
  end
197
197
  end
198
198
 
@@ -8,7 +8,6 @@ FactoryGirl.define do
8
8
  status "fail"
9
9
  resource "resource-3"
10
10
  updated_at nil
11
- metadata { { abc: 123 } }
12
11
  started_at { Time.current }
13
12
  ended_at nil
14
13
  relationships do
@@ -49,6 +48,11 @@ FactoryGirl.define do
49
48
  related: "http://test.host/api/v2/suppressions/1.json"
50
49
  }
51
50
  },
51
+ metadata: {
52
+ links: {
53
+ related: "http://test.host/api/v2/alerts/1017/metadata.json"
54
+ }
55
+ },
52
56
  cloud_trail_events: {
53
57
  data: [
54
58
  {
@@ -1,5 +1,5 @@
1
1
  FactoryGirl.define do
2
- factory :contact_request, class: 'ESP::ContactRequest' do
2
+ factory :cloud_trail_event, class: 'ESP::CloudTrailEvent' do
3
3
  skip_create
4
4
 
5
5
  sequence(:id) { |n| n }
@@ -1,14 +1,21 @@
1
1
  FactoryGirl.define do
2
- factory :cloud_trail_event, class: 'ESP::CloudTrailEvent' do
2
+ factory :contact_request, class: 'ESP::ContactRequest' do
3
3
  skip_create
4
4
 
5
5
  sequence(:id) { |n| n }
6
- type "cloud_trail_events"
7
- event_id "1"
8
- event_name "1"
9
- event_time { Time.current }
10
- username "johndoe"
11
- ip_address "123.0.0.123"
12
- user_agent "Chrome"
6
+ type "contact_requests"
7
+ title "Test title"
8
+ request_type "bug"
9
+ description "Test description"
10
+ created_at { Time.current }
11
+ updated_at { Time.current }
12
+ relationships do
13
+ { user: {
14
+ links: {
15
+ related: "http://test.host/api/v2/users/1001.json"
16
+ }
17
+ }
18
+ }
19
+ end
13
20
  end
14
21
  end
@@ -0,0 +1,9 @@
1
+ FactoryGirl.define do
2
+ factory :metadata, class: 'ESP::Metadata' do
3
+ skip_create
4
+
5
+ sequence(:id) { |n| n }
6
+ type "metadata"
7
+ data { { resource_id: "sg-dae343se4" } }
8
+ end
9
+ end
data/test/test_helper.rb CHANGED
@@ -9,7 +9,6 @@ require 'mocha/mini_test'
9
9
  require 'bourne'
10
10
  require 'shoulda'
11
11
  require 'webmock/minitest'
12
- require 'awesome_print'
13
12
  require 'rubygems'
14
13
  require 'active_resource'
15
14
  require_relative 'json_strategy'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: esp_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.rc1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evident.io
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-05 00:00:00.000000000 Z
11
+ date: 2015-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -262,48 +262,6 @@ dependencies:
262
262
  - - '>='
263
263
  - !ruby/object:Gem::Version
264
264
  version: '0'
265
- - !ruby/object:Gem::Dependency
266
- name: awesome_print
267
- requirement: !ruby/object:Gem::Requirement
268
- requirements:
269
- - - '>='
270
- - !ruby/object:Gem::Version
271
- version: '0'
272
- type: :runtime
273
- prerelease: false
274
- version_requirements: !ruby/object:Gem::Requirement
275
- requirements:
276
- - - '>='
277
- - !ruby/object:Gem::Version
278
- version: '0'
279
- - !ruby/object:Gem::Dependency
280
- name: artii
281
- requirement: !ruby/object:Gem::Requirement
282
- requirements:
283
- - - '>='
284
- - !ruby/object:Gem::Version
285
- version: '0'
286
- type: :runtime
287
- prerelease: false
288
- version_requirements: !ruby/object:Gem::Requirement
289
- requirements:
290
- - - '>='
291
- - !ruby/object:Gem::Version
292
- version: '0'
293
- - !ruby/object:Gem::Dependency
294
- name: catpix
295
- requirement: !ruby/object:Gem::Requirement
296
- requirements:
297
- - - '>='
298
- - !ruby/object:Gem::Version
299
- version: '0'
300
- type: :runtime
301
- prerelease: false
302
- version_requirements: !ruby/object:Gem::Requirement
303
- requirements:
304
- - - '>='
305
- - !ruby/object:Gem::Version
306
- version: '0'
307
265
  description:
308
266
  email:
309
267
  - support@evident.io
@@ -318,12 +276,14 @@ files:
318
276
  - .ruby-gemset
319
277
  - .ruby-version
320
278
  - .travis.yml
279
+ - CHANGELOG.md
321
280
  - Gemfile
322
281
  - Gemfile.lock
323
282
  - Guardfile
324
283
  - LICENSE.txt
325
284
  - README.md
326
285
  - Rakefile
286
+ - assets/esp_logo.ans
327
287
  - assets/logo.png
328
288
  - bin/esp_console
329
289
  - esp_sdk.gemspec
@@ -339,6 +299,7 @@ files:
339
299
  - lib/esp/resources/custom_signature.rb
340
300
  - lib/esp/resources/dashboard.rb
341
301
  - lib/esp/resources/external_account.rb
302
+ - lib/esp/resources/metadata.rb
342
303
  - lib/esp/resources/organization.rb
343
304
  - lib/esp/resources/region.rb
344
305
  - lib/esp/resources/report.rb
@@ -372,6 +333,7 @@ files:
372
333
  - rdoc/ESP/CustomSignature.html
373
334
  - rdoc/ESP/Dashboard.html
374
335
  - rdoc/ESP/ExternalAccount.html
336
+ - rdoc/ESP/Metadata.html
375
337
  - rdoc/ESP/Organization.html
376
338
  - rdoc/ESP/Region.html
377
339
  - rdoc/ESP/Report.html
@@ -435,6 +397,7 @@ files:
435
397
  - test/esp/resources/custom_signature_test.rb
436
398
  - test/esp/resources/dashboard_test.rb
437
399
  - test/esp/resources/external_account_test.rb
400
+ - test/esp/resources/metadata_test.rb
438
401
  - test/esp/resources/organization_test.rb
439
402
  - test/esp/resources/region_test.rb
440
403
  - test/esp/resources/report_test.rb
@@ -462,6 +425,7 @@ files:
462
425
  - test/factories/dashboards.rb
463
426
  - test/factories/errors.rb
464
427
  - test/factories/external_accounts.rb
428
+ - test/factories/metadata.rb
465
429
  - test/factories/organizations.rb
466
430
  - test/factories/regions.rb
467
431
  - test/factories/reports.rb
@@ -497,9 +461,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
497
461
  version: 2.0.0
498
462
  required_rubygems_version: !ruby/object:Gem::Requirement
499
463
  requirements:
500
- - - '>'
464
+ - - '>='
501
465
  - !ruby/object:Gem::Version
502
- version: 1.3.1
466
+ version: '0'
503
467
  requirements: []
504
468
  rubyforge_project:
505
469
  rubygems_version: 2.4.6
@@ -516,6 +480,7 @@ test_files:
516
480
  - test/esp/resources/custom_signature_test.rb
517
481
  - test/esp/resources/dashboard_test.rb
518
482
  - test/esp/resources/external_account_test.rb
483
+ - test/esp/resources/metadata_test.rb
519
484
  - test/esp/resources/organization_test.rb
520
485
  - test/esp/resources/region_test.rb
521
486
  - test/esp/resources/report_test.rb
@@ -543,6 +508,7 @@ test_files:
543
508
  - test/factories/dashboards.rb
544
509
  - test/factories/errors.rb
545
510
  - test/factories/external_accounts.rb
511
+ - test/factories/metadata.rb
546
512
  - test/factories/organizations.rb
547
513
  - test/factories/regions.rb
548
514
  - test/factories/reports.rb