virustotal_api 0.4.1 → 0.5.4

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +26 -0
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +12 -5
  5. data/CHANGELOG.md +27 -2
  6. data/README.md +94 -56
  7. data/lib/virustotal_api.rb +7 -7
  8. data/lib/virustotal_api/analysis.rb +16 -0
  9. data/lib/virustotal_api/base.rb +41 -10
  10. data/lib/virustotal_api/domain.rb +18 -0
  11. data/lib/virustotal_api/exceptions.rb +3 -0
  12. data/lib/virustotal_api/file.rb +48 -0
  13. data/lib/virustotal_api/group.rb +18 -0
  14. data/lib/virustotal_api/ip.rb +18 -0
  15. data/lib/virustotal_api/uri.rb +2 -1
  16. data/lib/virustotal_api/url.rb +38 -0
  17. data/lib/virustotal_api/user.rb +18 -0
  18. data/lib/virustotal_api/version.rb +2 -1
  19. data/test/analysis_test.rb +26 -0
  20. data/test/base_test.rb +18 -23
  21. data/test/domain_test.rb +27 -0
  22. data/test/exceptions_test.rb +22 -0
  23. data/test/file_test.rb +63 -0
  24. data/test/fixtures/analysis.yml +544 -0
  25. data/test/fixtures/domain.yml +830 -0
  26. data/test/fixtures/domain_bad_request.yml +52 -0
  27. data/test/fixtures/file_analyse.yml +52 -0
  28. data/test/fixtures/file_find.yml +853 -0
  29. data/test/fixtures/file_not_found.yml +52 -0
  30. data/test/fixtures/file_rate_limit.yml +52 -0
  31. data/test/fixtures/file_unauthorized.yml +51 -0
  32. data/test/fixtures/file_upload.yml +54 -0
  33. data/test/fixtures/group_find.yml +216 -0
  34. data/test/fixtures/ip.yml +716 -0
  35. data/test/fixtures/unscanned_url_find.yml +44 -0
  36. data/test/fixtures/url_analyse.yml +52 -0
  37. data/test/fixtures/url_find.yml +599 -0
  38. data/test/fixtures/user_find.yml +213 -0
  39. data/test/group_test.rb +27 -0
  40. data/test/{ip_report_test.rb → ip_test.rb} +6 -4
  41. data/test/uri_test.rb +1 -1
  42. data/test/url_test.rb +47 -0
  43. data/test/user_test.rb +26 -0
  44. data/test/version_test.rb +1 -1
  45. data/virustotal_api.gemspec +10 -8
  46. metadata +102 -71
  47. data/.circleci/config.yml +0 -23
  48. data/.github/workflows/gem_publish.yml +0 -38
  49. data/lib/virustotal_api/domain_report.rb +0 -36
  50. data/lib/virustotal_api/file_report.rb +0 -37
  51. data/lib/virustotal_api/file_rescan.rb +0 -36
  52. data/lib/virustotal_api/file_scan.rb +0 -38
  53. data/lib/virustotal_api/ip_report.rb +0 -36
  54. data/lib/virustotal_api/url_report.rb +0 -41
  55. data/lib/virustotal_api/url_scan.rb +0 -36
  56. data/test/domain_report_test.rb +0 -32
  57. data/test/file_report_test.rb +0 -36
  58. data/test/file_rescan_test.rb +0 -32
  59. data/test/file_scan_test.rb +0 -30
  60. data/test/fixtures/domain_report.yml +0 -311
  61. data/test/fixtures/ip_report.yml +0 -1323
  62. data/test/fixtures/queue_unscanned_url_report.yml +0 -46
  63. data/test/fixtures/report.yml +0 -110
  64. data/test/fixtures/report_not_found.yml +0 -42
  65. data/test/fixtures/request_forbidden.yml +0 -38
  66. data/test/fixtures/rescan.yml +0 -47
  67. data/test/fixtures/scan.yml +0 -49
  68. data/test/fixtures/unscanned_url_report.yml +0 -43
  69. data/test/fixtures/url_report.yml +0 -95
  70. data/test/fixtures/url_scan.yml +0 -48
  71. data/test/url_report_test.rb +0 -57
  72. data/test/url_scan_test.rb +0 -30
@@ -0,0 +1,213 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.virustotal.com/api/v3/users/testapikey
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - "*/*"
12
+ User-Agent:
13
+ - rest-client/2.1.0 (linux-gnu x86_64) ruby/2.5.1p57
14
+ X-Apikey:
15
+ - testapikey
16
+ Content-Length:
17
+ - '0'
18
+ Content-Type:
19
+ - application/x-www-form-urlencoded
20
+ Accept-Encoding:
21
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
22
+ Host:
23
+ - www.virustotal.com
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ Cache-Control:
30
+ - no-cache
31
+ Content-Type:
32
+ - application/json; charset=utf-8
33
+ X-Cloud-Trace-Context:
34
+ - 4ad711d6d44ea44146d4c06cb76589b1
35
+ Date:
36
+ - Mon, 05 Oct 2020 10:19:46 GMT
37
+ Server:
38
+ - Google Frontend
39
+ Content-Length:
40
+ - '5145'
41
+ body:
42
+ encoding: UTF-8
43
+ string: |-
44
+ {
45
+ "data": {
46
+ "attributes": {
47
+ "apikey": "testapikey",
48
+ "email": "granville@okeefehomenick.co",
49
+ "first_name": "Valdo",
50
+ "has_2fa": false,
51
+ "last_login": 1601883978,
52
+ "last_name": "Donati",
53
+ "preferences": {
54
+ "ui": {
55
+ "last_read_notification_date": 1599481553
56
+ }
57
+ },
58
+ "privileges": {
59
+ "cases": {
60
+ "granted": false
61
+ },
62
+ "click_to_accept": {
63
+ "granted": false
64
+ },
65
+ "creditcards": {
66
+ "granted": false
67
+ },
68
+ "dogfooder": {
69
+ "granted": false
70
+ },
71
+ "downloads-tier-1": {
72
+ "granted": false
73
+ },
74
+ "downloads-tier-2": {
75
+ "granted": false
76
+ },
77
+ "file-behaviour-feed": {
78
+ "granted": false
79
+ },
80
+ "file-feed": {
81
+ "granted": false
82
+ },
83
+ "file-feed-without-av-results": {
84
+ "granted": false
85
+ },
86
+ "intelligence": {
87
+ "granted": false
88
+ },
89
+ "intelligence-search-tier-1": {
90
+ "granted": false
91
+ },
92
+ "intelligence-search-tier-2": {
93
+ "granted": false
94
+ },
95
+ "intelligence-search-tier-3": {
96
+ "granted": false
97
+ },
98
+ "monitor": {
99
+ "granted": false
100
+ },
101
+ "monitor-partner": {
102
+ "granted": false
103
+ },
104
+ "private": {
105
+ "granted": false
106
+ },
107
+ "retrohunt-tier-1": {
108
+ "granted": false
109
+ },
110
+ "retrohunt-tier-2": {
111
+ "granted": false
112
+ },
113
+ "retrohunt-tier-3": {
114
+ "granted": false
115
+ },
116
+ "sales-staff": {
117
+ "granted": false
118
+ },
119
+ "staff": {
120
+ "granted": false
121
+ },
122
+ "url-feed": {
123
+ "granted": false
124
+ },
125
+ "vtalerts": {
126
+ "granted": false
127
+ },
128
+ "vtdiff-api": {
129
+ "granted": false
130
+ },
131
+ "vtdiff-ui": {
132
+ "granted": false
133
+ },
134
+ "vtgrep": {
135
+ "granted": false
136
+ },
137
+ "widget": {
138
+ "granted": false
139
+ }
140
+ },
141
+ "profile_phrase": "",
142
+ "quotas": {
143
+ "api_requests_daily": {
144
+ "allowed": 5760,
145
+ "used": 102
146
+ },
147
+ "api_requests_hourly": {
148
+ "allowed": 240,
149
+ "used": 0
150
+ },
151
+ "api_requests_monthly": {
152
+ "allowed": 1000000000,
153
+ "used": 105
154
+ },
155
+ "cases_creation_monthly": {
156
+ "allowed": 20,
157
+ "used": 0
158
+ },
159
+ "intelligence_downloads_monthly": {
160
+ "allowed": 0,
161
+ "used": 0
162
+ },
163
+ "intelligence_graphs_private": {
164
+ "allowed": 0,
165
+ "used": 0
166
+ },
167
+ "intelligence_hunting_rules": {
168
+ "allowed": 0,
169
+ "used": 0
170
+ },
171
+ "intelligence_retrohunt_jobs_monthly": {
172
+ "allowed": 0,
173
+ "used": 0
174
+ },
175
+ "intelligence_searches_monthly": {
176
+ "allowed": 0,
177
+ "used": 0
178
+ },
179
+ "intelligence_vtdiff_creation_monthly": {
180
+ "allowed": 0,
181
+ "used": 0
182
+ },
183
+ "monitor_storage_bytes": {
184
+ "allowed": 0,
185
+ "used": 0
186
+ },
187
+ "monitor_storage_files": {
188
+ "allowed": 0,
189
+ "used": 0
190
+ },
191
+ "monitor_uploaded_bytes": {
192
+ "allowed": 0,
193
+ "used": 0
194
+ },
195
+ "monitor_uploaded_files": {
196
+ "allowed": 0,
197
+ "used": 0
198
+ }
199
+ },
200
+ "reputation": 1,
201
+ "status": "active",
202
+ "user_since": 1512986169
203
+ },
204
+ "id": "granville",
205
+ "links": {
206
+ "self": "https://www.virustotal.com/api/v3/users/granville"
207
+ },
208
+ "type": "user"
209
+ }
210
+ }
211
+ http_version:
212
+ recorded_at: Mon, 05 Oct 2020 10:19:46 GMT
213
+ recorded_with: VCR 5.0.0
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require './test/test_helper'
4
+
5
+ class VirustotalAPIGroupReportTest < Minitest::Test
6
+ def setup
7
+ @group_id = 'GROUP_us'
8
+ @api_key = 'testapikey'
9
+ end
10
+
11
+ def test_class_exists
12
+ assert VirustotalAPI::Group
13
+ end
14
+
15
+ def test_report_response
16
+ VCR.use_cassette('group_find') do
17
+ vtgroup_report = VirustotalAPI::Group.find(@group_id, @api_key)
18
+
19
+ # Make sure that the JSON was parsed
20
+ assert vtgroup_report.exists?
21
+ assert vtgroup_report.is_a?(VirustotalAPI::Group)
22
+ assert vtgroup_report.report.is_a?(Hash)
23
+ assert vtgroup_report.id.is_a?(String)
24
+ assert vtgroup_report.report_url.is_a?(String)
25
+ end
26
+ end
27
+ end
@@ -9,16 +9,18 @@ class VirustotalAPIIPReportTest < Minitest::Test
9
9
  end
10
10
 
11
11
  def test_class_exists
12
- assert VirustotalAPI::IPReport
12
+ assert VirustotalAPI::IP
13
13
  end
14
14
 
15
15
  def test_report_response
16
- VCR.use_cassette('ip_report') do
17
- vtip_report = VirustotalAPI::IPReport.find(@ip, @api_key)
16
+ VCR.use_cassette('ip') do
17
+ vtip_report = VirustotalAPI::IP.find(@ip, @api_key)
18
18
 
19
19
  # Make sure that the JSON was parsed
20
- assert vtip_report.is_a?(VirustotalAPI::IPReport)
20
+ assert vtip_report.is_a?(VirustotalAPI::IP)
21
21
  assert vtip_report.report.is_a?(Hash)
22
+ assert vtip_report.id.is_a?(String)
23
+ assert vtip_report.report_url.is_a?(String)
22
24
  end
23
25
  end
24
26
  end
@@ -5,6 +5,6 @@ require './test/test_helper'
5
5
  class VirustotalAPIVTReportTest < Minitest::Test
6
6
  def test_api_base_uri
7
7
  assert VirustotalAPI::URI.is_a?(String)
8
- assert VirustotalAPI::URI, 'https://www.virustotal.com/vtapi/v2'
8
+ assert_equal 'https://www.virustotal.com/api/v3', VirustotalAPI::URI
9
9
  end
10
10
  end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require './test/test_helper'
4
+
5
+ class VirustotalAPIURLReportTest < Minitest::Test
6
+ def setup
7
+ @unscanned_url = 'http://www.unscanned.com'
8
+ @url = 'http://www.google.com'
9
+ @api_key = 'testapikey'
10
+ end
11
+
12
+ def test_class_exists
13
+ assert VirustotalAPI::URL
14
+ end
15
+
16
+ def test_report_response
17
+ VCR.use_cassette('url_find') do
18
+ vturl_report = VirustotalAPI::URL.find(@url, @api_key)
19
+
20
+ # Make sure that the JSON was parsed
21
+ assert vturl_report.exists?
22
+ assert vturl_report.is_a?(VirustotalAPI::URL)
23
+ assert vturl_report.report.is_a?(Hash)
24
+ assert vturl_report.id.is_a?(String)
25
+ assert vturl_report.report_url.is_a?(String)
26
+ end
27
+ end
28
+
29
+ def test_scan_unscanned_url
30
+ VCR.use_cassette('unscanned_url_find') do
31
+ vturl_report = VirustotalAPI::URL.find(@unscanned_url, @api_key)
32
+
33
+ assert !vturl_report.exists?
34
+ assert_empty vturl_report.report
35
+ end
36
+ end
37
+
38
+ def test_analyse
39
+ VCR.use_cassette('url_analyse') do
40
+ vturl_analyse = VirustotalAPI::URL.analyse(@url, @api_key)
41
+
42
+ assert vturl_analyse.exists?
43
+ assert vturl_analyse.report.is_a?(Hash)
44
+ assert vturl_analyse.id.is_a?(String)
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require './test/test_helper'
4
+
5
+ class VirustotalAPIUserReportTest < Minitest::Test
6
+ def setup
7
+ @api_key = 'testapikey'
8
+ end
9
+
10
+ def test_class_exists
11
+ assert VirustotalAPI::User
12
+ end
13
+
14
+ def test_report_response
15
+ VCR.use_cassette('user_find') do
16
+ vtuser_report = VirustotalAPI::User.find(@api_key, @api_key)
17
+
18
+ # Make sure that the JSON was parsed
19
+ assert vtuser_report.exists?
20
+ assert vtuser_report.is_a?(VirustotalAPI::User)
21
+ assert vtuser_report.report.is_a?(Hash)
22
+ assert vtuser_report.id.is_a?(String)
23
+ assert vtuser_report.report_url.is_a?(String)
24
+ end
25
+ end
26
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require './test/test_helper'
4
4
 
5
- class VirustotalAPIVTReportTest < Minitest::Test
5
+ class VirustotalAPIVersionTest < Minitest::Test
6
6
  def test_version
7
7
  assert VirustotalAPI::VERSION.is_a?(String)
8
8
  end
@@ -10,24 +10,26 @@ Gem::Specification.new do |spec|
10
10
  spec.authors = ['pwelch']
11
11
  spec.email = ['paul@pwelch.net']
12
12
  spec.summary = 'Gem for VirusTotal.com API'
13
- spec.description = 'Gem for VirusTotal.com API'
13
+ spec.description = 'Gem for VirusTotal.com API, supporting API V3'
14
14
  spec.homepage = 'https://github.com/pwelch/virustotal_api'
15
15
  spec.license = 'MIT'
16
16
 
17
+ spec.required_ruby_version = '>= 2.5'
18
+
17
19
  spec.files = `git ls-files -z`.split("\x0")
18
20
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
21
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
22
  spec.require_paths = ['lib']
21
23
 
22
- spec.add_dependency 'json'
23
- spec.add_dependency 'rest-client'
24
+ spec.add_dependency 'json', '~> 2.3', '>= 2.3.1'
25
+ spec.add_dependency 'rest-client', '~> 2.1', '>= 2.1.0'
24
26
 
25
27
  spec.add_development_dependency 'bundler', '~> 2.0'
26
- spec.add_development_dependency 'minitest'
27
- spec.add_development_dependency 'pry'
28
+ spec.add_development_dependency 'minitest', '~> 5.14', '>= 5.14.1'
29
+ spec.add_development_dependency 'pry', '~> 0.13.1'
28
30
  spec.add_development_dependency 'rake', '~> 12.3'
29
- spec.add_development_dependency 'rubocop', '~> 0.71'
30
- spec.add_development_dependency 'vcr'
31
- spec.add_development_dependency 'webmock'
31
+ spec.add_development_dependency 'rubocop', '~> 0.91'
32
+ spec.add_development_dependency 'vcr', '~> 6.0', '>= 6.0.0'
33
+ spec.add_development_dependency 'webmock', '~> 3.9'
32
34
  spec.add_development_dependency 'yard', '~> 0.9'
33
35
  end
metadata CHANGED
@@ -1,43 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: virustotal_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - pwelch
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-04 00:00:00.000000000 Z
11
+ date: 2021-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.3'
17
20
  - - ">="
18
21
  - !ruby/object:Gem::Version
19
- version: '0'
22
+ version: 2.3.1
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '2.3'
24
30
  - - ">="
25
31
  - !ruby/object:Gem::Version
26
- version: '0'
32
+ version: 2.3.1
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: rest-client
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - ">="
32
38
  - !ruby/object:Gem::Version
33
- version: '0'
39
+ version: 2.1.0
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '2.1'
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
47
  - - ">="
39
48
  - !ruby/object:Gem::Version
40
- version: '0'
49
+ version: 2.1.0
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '2.1'
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: bundler
43
55
  requirement: !ruby/object:Gem::Requirement
@@ -56,30 +68,36 @@ dependencies:
56
68
  name: minitest
57
69
  requirement: !ruby/object:Gem::Requirement
58
70
  requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '5.14'
59
74
  - - ">="
60
75
  - !ruby/object:Gem::Version
61
- version: '0'
76
+ version: 5.14.1
62
77
  type: :development
63
78
  prerelease: false
64
79
  version_requirements: !ruby/object:Gem::Requirement
65
80
  requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '5.14'
66
84
  - - ">="
67
85
  - !ruby/object:Gem::Version
68
- version: '0'
86
+ version: 5.14.1
69
87
  - !ruby/object:Gem::Dependency
70
88
  name: pry
71
89
  requirement: !ruby/object:Gem::Requirement
72
90
  requirements:
73
- - - ">="
91
+ - - "~>"
74
92
  - !ruby/object:Gem::Version
75
- version: '0'
93
+ version: 0.13.1
76
94
  type: :development
77
95
  prerelease: false
78
96
  version_requirements: !ruby/object:Gem::Requirement
79
97
  requirements:
80
- - - ">="
98
+ - - "~>"
81
99
  - !ruby/object:Gem::Version
82
- version: '0'
100
+ version: 0.13.1
83
101
  - !ruby/object:Gem::Dependency
84
102
  name: rake
85
103
  requirement: !ruby/object:Gem::Requirement
@@ -100,42 +118,48 @@ dependencies:
100
118
  requirements:
101
119
  - - "~>"
102
120
  - !ruby/object:Gem::Version
103
- version: '0.71'
121
+ version: '0.91'
104
122
  type: :development
105
123
  prerelease: false
106
124
  version_requirements: !ruby/object:Gem::Requirement
107
125
  requirements:
108
126
  - - "~>"
109
127
  - !ruby/object:Gem::Version
110
- version: '0.71'
128
+ version: '0.91'
111
129
  - !ruby/object:Gem::Dependency
112
130
  name: vcr
113
131
  requirement: !ruby/object:Gem::Requirement
114
132
  requirements:
115
133
  - - ">="
116
134
  - !ruby/object:Gem::Version
117
- version: '0'
135
+ version: 6.0.0
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '6.0'
118
139
  type: :development
119
140
  prerelease: false
120
141
  version_requirements: !ruby/object:Gem::Requirement
121
142
  requirements:
122
143
  - - ">="
123
144
  - !ruby/object:Gem::Version
124
- version: '0'
145
+ version: 6.0.0
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: '6.0'
125
149
  - !ruby/object:Gem::Dependency
126
150
  name: webmock
127
151
  requirement: !ruby/object:Gem::Requirement
128
152
  requirements:
129
- - - ">="
153
+ - - "~>"
130
154
  - !ruby/object:Gem::Version
131
- version: '0'
155
+ version: '3.9'
132
156
  type: :development
133
157
  prerelease: false
134
158
  version_requirements: !ruby/object:Gem::Requirement
135
159
  requirements:
136
- - - ">="
160
+ - - "~>"
137
161
  - !ruby/object:Gem::Version
138
- version: '0'
162
+ version: '3.9'
139
163
  - !ruby/object:Gem::Dependency
140
164
  name: yard
141
165
  requirement: !ruby/object:Gem::Requirement
@@ -150,18 +174,17 @@ dependencies:
150
174
  - - "~>"
151
175
  - !ruby/object:Gem::Version
152
176
  version: '0.9'
153
- description: Gem for VirusTotal.com API
177
+ description: Gem for VirusTotal.com API, supporting API V3
154
178
  email:
155
179
  - paul@pwelch.net
156
180
  executables: []
157
181
  extensions: []
158
182
  extra_rdoc_files: []
159
183
  files:
160
- - ".circleci/config.yml"
161
184
  - ".github/CODE_OF_CONDUCT.md"
162
185
  - ".github/CONTRIBUTING.md"
163
186
  - ".github/ISSUE_TEMPLATE.md"
164
- - ".github/workflows/gem_publish.yml"
187
+ - ".github/workflows/ruby.yml"
165
188
  - ".gitignore"
166
189
  - ".rubocop.yml"
167
190
  - CHANGELOG.md
@@ -170,47 +193,51 @@ files:
170
193
  - README.md
171
194
  - Rakefile
172
195
  - lib/virustotal_api.rb
196
+ - lib/virustotal_api/analysis.rb
173
197
  - lib/virustotal_api/base.rb
174
- - lib/virustotal_api/domain_report.rb
198
+ - lib/virustotal_api/domain.rb
175
199
  - lib/virustotal_api/exceptions.rb
176
- - lib/virustotal_api/file_report.rb
177
- - lib/virustotal_api/file_rescan.rb
178
- - lib/virustotal_api/file_scan.rb
179
- - lib/virustotal_api/ip_report.rb
200
+ - lib/virustotal_api/file.rb
201
+ - lib/virustotal_api/group.rb
202
+ - lib/virustotal_api/ip.rb
180
203
  - lib/virustotal_api/uri.rb
181
- - lib/virustotal_api/url_report.rb
182
- - lib/virustotal_api/url_scan.rb
204
+ - lib/virustotal_api/url.rb
205
+ - lib/virustotal_api/user.rb
183
206
  - lib/virustotal_api/version.rb
207
+ - test/analysis_test.rb
184
208
  - test/base_test.rb
185
- - test/domain_report_test.rb
209
+ - test/domain_test.rb
186
210
  - test/exceptions_test.rb
187
- - test/file_report_test.rb
188
- - test/file_rescan_test.rb
189
- - test/file_scan_test.rb
190
- - test/fixtures/domain_report.yml
191
- - test/fixtures/ip_report.yml
211
+ - test/file_test.rb
212
+ - test/fixtures/analysis.yml
213
+ - test/fixtures/domain.yml
214
+ - test/fixtures/domain_bad_request.yml
215
+ - test/fixtures/file_analyse.yml
216
+ - test/fixtures/file_find.yml
217
+ - test/fixtures/file_not_found.yml
218
+ - test/fixtures/file_rate_limit.yml
219
+ - test/fixtures/file_unauthorized.yml
220
+ - test/fixtures/file_upload.yml
221
+ - test/fixtures/group_find.yml
222
+ - test/fixtures/ip.yml
192
223
  - test/fixtures/null_file
193
- - test/fixtures/queue_unscanned_url_report.yml
194
- - test/fixtures/report.yml
195
- - test/fixtures/report_not_found.yml
196
- - test/fixtures/request_forbidden.yml
197
- - test/fixtures/rescan.yml
198
- - test/fixtures/scan.yml
199
- - test/fixtures/unscanned_url_report.yml
200
- - test/fixtures/url_report.yml
201
- - test/fixtures/url_scan.yml
202
- - test/ip_report_test.rb
224
+ - test/fixtures/unscanned_url_find.yml
225
+ - test/fixtures/url_analyse.yml
226
+ - test/fixtures/url_find.yml
227
+ - test/fixtures/user_find.yml
228
+ - test/group_test.rb
229
+ - test/ip_test.rb
203
230
  - test/test_helper.rb
204
231
  - test/uri_test.rb
205
- - test/url_report_test.rb
206
- - test/url_scan_test.rb
232
+ - test/url_test.rb
233
+ - test/user_test.rb
207
234
  - test/version_test.rb
208
235
  - virustotal_api.gemspec
209
236
  homepage: https://github.com/pwelch/virustotal_api
210
237
  licenses:
211
238
  - MIT
212
239
  metadata: {}
213
- post_install_message:
240
+ post_install_message:
214
241
  rdoc_options: []
215
242
  require_paths:
216
243
  - lib
@@ -218,39 +245,43 @@ required_ruby_version: !ruby/object:Gem::Requirement
218
245
  requirements:
219
246
  - - ">="
220
247
  - !ruby/object:Gem::Version
221
- version: '0'
248
+ version: '2.5'
222
249
  required_rubygems_version: !ruby/object:Gem::Requirement
223
250
  requirements:
224
251
  - - ">="
225
252
  - !ruby/object:Gem::Version
226
253
  version: '0'
227
254
  requirements: []
228
- rubygems_version: 3.0.2
229
- signing_key:
255
+ rubygems_version: 3.0.3
256
+ signing_key:
230
257
  specification_version: 4
231
258
  summary: Gem for VirusTotal.com API
232
259
  test_files:
260
+ - test/analysis_test.rb
233
261
  - test/base_test.rb
234
- - test/domain_report_test.rb
262
+ - test/domain_test.rb
235
263
  - test/exceptions_test.rb
236
- - test/file_report_test.rb
237
- - test/file_rescan_test.rb
238
- - test/file_scan_test.rb
239
- - test/fixtures/domain_report.yml
240
- - test/fixtures/ip_report.yml
264
+ - test/file_test.rb
265
+ - test/fixtures/analysis.yml
266
+ - test/fixtures/domain.yml
267
+ - test/fixtures/domain_bad_request.yml
268
+ - test/fixtures/file_analyse.yml
269
+ - test/fixtures/file_find.yml
270
+ - test/fixtures/file_not_found.yml
271
+ - test/fixtures/file_rate_limit.yml
272
+ - test/fixtures/file_unauthorized.yml
273
+ - test/fixtures/file_upload.yml
274
+ - test/fixtures/group_find.yml
275
+ - test/fixtures/ip.yml
241
276
  - test/fixtures/null_file
242
- - test/fixtures/queue_unscanned_url_report.yml
243
- - test/fixtures/report.yml
244
- - test/fixtures/report_not_found.yml
245
- - test/fixtures/request_forbidden.yml
246
- - test/fixtures/rescan.yml
247
- - test/fixtures/scan.yml
248
- - test/fixtures/unscanned_url_report.yml
249
- - test/fixtures/url_report.yml
250
- - test/fixtures/url_scan.yml
251
- - test/ip_report_test.rb
277
+ - test/fixtures/unscanned_url_find.yml
278
+ - test/fixtures/url_analyse.yml
279
+ - test/fixtures/url_find.yml
280
+ - test/fixtures/user_find.yml
281
+ - test/group_test.rb
282
+ - test/ip_test.rb
252
283
  - test/test_helper.rb
253
284
  - test/uri_test.rb
254
- - test/url_report_test.rb
255
- - test/url_scan_test.rb
285
+ - test/url_test.rb
286
+ - test/user_test.rb
256
287
  - test/version_test.rb