esp_sdk 2.0.0.rc1 → 2.0.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 (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