vpndetection 1.0.0 → 1.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d5b803c31c66b90be11f47ec33b35212e4e86c344d68aa9174046e8ad8aa716
4
- data.tar.gz: cb643393284652c75bca2ce3af3900bbc112c3b77f7d4907a0338759d8f6cb4b
3
+ metadata.gz: 6bcc9f0279dcdffc71722644b696b138aafad12ceaa164bb6660d7c86e2c5ea3
4
+ data.tar.gz: 494e8dfbc3962360745f6ff1a002cea176741c51e75690ecc01b82b4898a640b
5
5
  SHA512:
6
- metadata.gz: 36e5bc3aff41057a0c60697cf64a3becc2cf99908b0c27b3420a70239668ef73413670db91a846448338282671544571cb95c0c43950024060763f759fada754
7
- data.tar.gz: 7155eeb3668becdb69da5cec89ac63596824225d46b74e5111ff41b71abb15f8f411f5401277be6dc054a377d047c4baac609785f2994c176d1c1b6c99ae51c8
6
+ metadata.gz: 1e82484fad69ecf06f61ce3eff84b5c8e0ba6f84c7cf2c461daec317feb7dd4d70383ffbfc299ce770e9c330c1b86505b99a1baf1e2313e9fb1462c3180a434a
7
+ data.tar.gz: a1a30da6a8c052b112f37d53555a6a27c9423e57212d6ba3d34b2d7a81e2d591f6b41e578910a4d2b6729ca40917d9a9e0bd4f6924d48715ee6e3cfdcc5e4c34
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -19,7 +19,8 @@ module VPNDetection
19
19
  def initialize(api_client = ApiClient.default)
20
20
  @api_client = api_client
21
21
  end
22
- # Checksums for one published file, to verify a download
22
+ # Checksums
23
+ # Checksums for one published file, so a download can be verified after it lands.
23
24
  # @param id [String]
24
25
  # @param format [String]
25
26
  # @param [Hash] opts the optional parameters
@@ -29,7 +30,8 @@ module VPNDetection
29
30
  data
30
31
  end
31
32
 
32
- # Checksums for one published file, to verify a download
33
+ # Checksums
34
+ # Checksums for one published file, so a download can be verified after it lands.
33
35
  # @param id [String]
34
36
  # @param format [String]
35
37
  # @param [Hash] opts the optional parameters
@@ -74,7 +76,7 @@ module VPNDetection
74
76
  return_type = opts[:debug_return_type] || 'DatasetChecksumsResponse'
75
77
 
76
78
  # auth_names
77
- auth_names = opts[:debug_auth_names] || ['bearerAuth', 'apiKeyQuery', 'apiKeyHeader']
79
+ auth_names = opts[:debug_auth_names] || ['apiKeyQuery', 'bearerAuth', 'apiKeyHeader']
78
80
 
79
81
  new_options = opts.merge(
80
82
  :operation => :"DatabaseApi.database_checksum",
@@ -93,7 +95,7 @@ module VPNDetection
93
95
  return data, status_code, headers
94
96
  end
95
97
 
96
- # What is inside one dataset - schema, samples, row count, sizes
98
+ # Metadata
97
99
  # Poll this to decide whether today's build is worth fetching: it carries `updated` and `entries` without downloading anything. No `format` parameter - one document describes every format the dataset is built in.
98
100
  # @param id [String]
99
101
  # @param [Hash] opts the optional parameters
@@ -103,7 +105,7 @@ module VPNDetection
103
105
  data
104
106
  end
105
107
 
106
- # What is inside one dataset - schema, samples, row count, sizes
108
+ # Metadata
107
109
  # Poll this to decide whether today's build is worth fetching: it carries `updated` and `entries` without downloading anything. No `format` parameter - one document describes every format the dataset is built in.
108
110
  # @param id [String]
109
111
  # @param [Hash] opts the optional parameters
@@ -138,7 +140,7 @@ module VPNDetection
138
140
  return_type = opts[:debug_return_type] || 'DatasetMetadata'
139
141
 
140
142
  # auth_names
141
- auth_names = opts[:debug_auth_names] || ['bearerAuth', 'apiKeyQuery', 'apiKeyHeader']
143
+ auth_names = opts[:debug_auth_names] || ['apiKeyQuery', 'bearerAuth', 'apiKeyHeader']
142
144
 
143
145
  new_options = opts.merge(
144
146
  :operation => :"DatabaseApi.database_metadata",
@@ -157,7 +159,8 @@ module VPNDetection
157
159
  return data, status_code, headers
158
160
  end
159
161
 
160
- # Redirect to a time-limited download URL for one dataset
162
+ # Download
163
+ # Answers `302` with a time-limited URL pointing straight at object storage. Follow the redirect; the link authorizes the START of a transfer, so one already running is not interrupted when it lapses.
161
164
  # @param id [String] Dataset id, e.g. vpn_ip_extended_v1
162
165
  # @param format [String] Not every dataset is built in every format. The `_provider` catalogues are keyed by provider id rather than by IP range, so no MMDB exists for them.
163
166
  # @param [Hash] opts the optional parameters
@@ -167,7 +170,8 @@ module VPNDetection
167
170
  nil
168
171
  end
169
172
 
170
- # Redirect to a time-limited download URL for one dataset
173
+ # Download
174
+ # Answers `302` with a time-limited URL pointing straight at object storage. Follow the redirect; the link authorizes the START of a transfer, so one already running is not interrupted when it lapses.
171
175
  # @param id [String] Dataset id, e.g. vpn_ip_extended_v1
172
176
  # @param format [String] Not every dataset is built in every format. The `_provider` catalogues are keyed by provider id rather than by IP range, so no MMDB exists for them.
173
177
  # @param [Hash] opts the optional parameters
@@ -212,7 +216,7 @@ module VPNDetection
212
216
  return_type = opts[:debug_return_type]
213
217
 
214
218
  # auth_names
215
- auth_names = opts[:debug_auth_names] || ['bearerAuth', 'apiKeyQuery', 'apiKeyHeader']
219
+ auth_names = opts[:debug_auth_names] || ['apiKeyQuery', 'bearerAuth', 'apiKeyHeader']
216
220
 
217
221
  new_options = opts.merge(
218
222
  :operation => :"DatabaseApi.download_database",
@@ -231,7 +235,8 @@ module VPNDetection
231
235
  return data, status_code, headers
232
236
  end
233
237
 
234
- # The datasets your organization is licensed to download
238
+ # List
239
+ # Every dataset this organization holds a licence for, with the term and the license_type right beside each one.
235
240
  # @param [Hash] opts the optional parameters
236
241
  # @return [DatasetList]
237
242
  def list_databases(opts = {})
@@ -239,7 +244,8 @@ module VPNDetection
239
244
  data
240
245
  end
241
246
 
242
- # The datasets your organization is licensed to download
247
+ # List
248
+ # Every dataset this organization holds a licence for, with the term and the license_type right beside each one.
243
249
  # @param [Hash] opts the optional parameters
244
250
  # @return [Array<(DatasetList, Integer, Hash)>] DatasetList data, response status code and response headers
245
251
  def list_databases_with_http_info(opts = {})
@@ -267,7 +273,7 @@ module VPNDetection
267
273
  return_type = opts[:debug_return_type] || 'DatasetList'
268
274
 
269
275
  # auth_names
270
- auth_names = opts[:debug_auth_names] || ['bearerAuth', 'apiKeyQuery', 'apiKeyHeader']
276
+ auth_names = opts[:debug_auth_names] || ['apiKeyQuery', 'bearerAuth', 'apiKeyHeader']
271
277
 
272
278
  new_options = opts.merge(
273
279
  :operation => :"DatabaseApi.list_databases",
@@ -286,7 +292,8 @@ module VPNDetection
286
292
  return data, status_code, headers
287
293
  end
288
294
 
289
- # Your organization's recent download attempts, newest first
295
+ # History
296
+ # Recent download attempts for this organization, newest first. Refusals are listed too, so a failed transfer can be accounted for.
290
297
  # @param [Hash] opts the optional parameters
291
298
  # @option opts [Integer] :limit (default to 50)
292
299
  # @return [DownloadList]
@@ -295,7 +302,8 @@ module VPNDetection
295
302
  data
296
303
  end
297
304
 
298
- # Your organization&#39;s recent download attempts, newest first
305
+ # History
306
+ # Recent download attempts for this organization, newest first. Refusals are listed too, so a failed transfer can be accounted for.
299
307
  # @param [Hash] opts the optional parameters
300
308
  # @option opts [Integer] :limit (default to 50)
301
309
  # @return [Array<(DownloadList, Integer, Hash)>] DownloadList data, response status code and response headers
@@ -329,7 +337,7 @@ module VPNDetection
329
337
  return_type = opts[:debug_return_type] || 'DownloadList'
330
338
 
331
339
  # auth_names
332
- auth_names = opts[:debug_auth_names] || ['bearerAuth', 'apiKeyQuery', 'apiKeyHeader']
340
+ auth_names = opts[:debug_auth_names] || ['apiKeyQuery', 'bearerAuth', 'apiKeyHeader']
333
341
 
334
342
  new_options = opts.merge(
335
343
  :operation => :"DatabaseApi.list_downloads",
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -19,7 +19,7 @@ module VPNDetection
19
19
  def initialize(api_client = ApiClient.default)
20
20
  @api_client = api_client
21
21
  end
22
- # Classify one IP address
22
+ # Lookup
23
23
  # Answers what is known about a single IPv4 or IPv6 address. Which fields come back is decided by the plan behind the presented key; with no key the answer is `ip` and `is_vpn`.
24
24
  # @param ip [String] The IPv4 or IPv6 address to classify.
25
25
  # @param [Hash] opts the optional parameters
@@ -29,7 +29,7 @@ module VPNDetection
29
29
  data
30
30
  end
31
31
 
32
- # Classify one IP address
32
+ # Lookup
33
33
  # Answers what is known about a single IPv4 or IPv6 address. Which fields come back is decided by the plan behind the presented key; with no key the answer is &#x60;ip&#x60; and &#x60;is_vpn&#x60;.
34
34
  # @param ip [String] The IPv4 or IPv6 address to classify.
35
35
  # @param [Hash] opts the optional parameters
@@ -63,7 +63,7 @@ module VPNDetection
63
63
  return_type = opts[:debug_return_type] || 'LookupResponse'
64
64
 
65
65
  # auth_names
66
- auth_names = opts[:debug_auth_names] || ['bearerAuth', 'apiKeyQuery', 'apiKeyHeader']
66
+ auth_names = opts[:debug_auth_names] || ['apiKeyQuery', 'bearerAuth', 'apiKeyHeader']
67
67
 
68
68
  new_options = opts.merge(
69
69
  :operation => :"LookupApi.lookup_ip",
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -34,6 +34,12 @@ module VPNDetection
34
34
  # Bytes per format
35
35
  attr_accessor :size
36
36
 
37
+ # Bytes per format of the evaluation sample, where one is published
38
+ attr_accessor :sample_size
39
+
40
+ # Row count in the evaluation sample
41
+ attr_accessor :sample_entries
42
+
37
43
  # Attribute mapping from ruby-style variable name to JSON key.
38
44
  def self.attribute_map
39
45
  {
@@ -43,7 +49,9 @@ module VPNDetection
43
49
  :'entries' => :'entries',
44
50
  :'schema' => :'schema',
45
51
  :'sample' => :'sample',
46
- :'size' => :'size'
52
+ :'size' => :'size',
53
+ :'sample_size' => :'sample_size',
54
+ :'sample_entries' => :'sample_entries'
47
55
  }
48
56
  end
49
57
 
@@ -66,7 +74,9 @@ module VPNDetection
66
74
  :'entries' => :'Integer',
67
75
  :'schema' => :'Hash<String, Array<DatasetMetadataColumn>>',
68
76
  :'sample' => :'Hash<String, Array<Object>>',
69
- :'size' => :'Hash<String, Integer>'
77
+ :'size' => :'Hash<String, Integer>',
78
+ :'sample_size' => :'Hash<String, Integer>',
79
+ :'sample_entries' => :'Integer'
70
80
  }
71
81
  end
72
82
 
@@ -133,6 +143,16 @@ module VPNDetection
133
143
  self.size = value
134
144
  end
135
145
  end
146
+
147
+ if attributes.key?(:'sample_size')
148
+ if (value = attributes[:'sample_size']).is_a?(Hash)
149
+ self.sample_size = value
150
+ end
151
+ end
152
+
153
+ if attributes.key?(:'sample_entries')
154
+ self.sample_entries = attributes[:'sample_entries']
155
+ end
136
156
  end
137
157
 
138
158
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -221,7 +241,9 @@ module VPNDetection
221
241
  entries == o.entries &&
222
242
  schema == o.schema &&
223
243
  sample == o.sample &&
224
- size == o.size
244
+ size == o.size &&
245
+ sample_size == o.sample_size &&
246
+ sample_entries == o.sample_entries
225
247
  end
226
248
 
227
249
  # @see the `==` method
@@ -233,7 +255,7 @@ module VPNDetection
233
255
  # Calculates hash code according to all attributes.
234
256
  # @return [Integer] Hash code
235
257
  def hash
236
- [id, update_freq, updated, entries, schema, sample, size].hash
258
+ [id, update_freq, updated, entries, schema, sample, size, sample_size, sample_entries].hash
237
259
  end
238
260
 
239
261
  # Builds the object from hash
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -14,6 +14,7 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module VPNDetection
17
+ # One download ATTEMPT, refusals included - a denial is what answers \"it stopped working\", so they are listed rather than dropped.
17
18
  class Download < ApiModelBase
18
19
  attr_accessor :dataset_id
19
20
 
@@ -21,8 +22,21 @@ module VPNDetection
21
22
 
22
23
  attr_accessor :outcome
23
24
 
25
+ # The evaluation sample rather than the database itself.
26
+ attr_accessor :sample
27
+
28
+ # Object size at redirect time, NOT bytes delivered: the transfer is a presigned redirect straight to object storage, so we never observe it.
24
29
  attr_accessor :bytes
25
30
 
31
+ attr_accessor :http_status
32
+
33
+ # The key that made the request. Null when the org acted through the console rather than through a key.
34
+ attr_accessor :apikey_id
35
+
36
+ attr_accessor :client_ip
37
+
38
+ attr_accessor :user_agent
39
+
26
40
  attr_accessor :created
27
41
 
28
42
  class EnumAttributeValidator
@@ -53,7 +67,12 @@ module VPNDetection
53
67
  :'dataset_id' => :'dataset_id',
54
68
  :'format' => :'format',
55
69
  :'outcome' => :'outcome',
70
+ :'sample' => :'sample',
56
71
  :'bytes' => :'bytes',
72
+ :'http_status' => :'http_status',
73
+ :'apikey_id' => :'apikey_id',
74
+ :'client_ip' => :'client_ip',
75
+ :'user_agent' => :'user_agent',
57
76
  :'created' => :'created'
58
77
  }
59
78
  end
@@ -74,7 +93,12 @@ module VPNDetection
74
93
  :'dataset_id' => :'String',
75
94
  :'format' => :'String',
76
95
  :'outcome' => :'String',
96
+ :'sample' => :'Boolean',
77
97
  :'bytes' => :'Integer',
98
+ :'http_status' => :'Integer',
99
+ :'apikey_id' => :'String',
100
+ :'client_ip' => :'String',
101
+ :'user_agent' => :'String',
78
102
  :'created' => :'Time'
79
103
  }
80
104
  end
@@ -83,6 +107,10 @@ module VPNDetection
83
107
  def self.openapi_nullable
84
108
  Set.new([
85
109
  :'bytes',
110
+ :'http_status',
111
+ :'apikey_id',
112
+ :'client_ip',
113
+ :'user_agent',
86
114
  ])
87
115
  end
88
116
 
@@ -120,8 +148,40 @@ module VPNDetection
120
148
  self.outcome = nil
121
149
  end
122
150
 
151
+ if attributes.key?(:'sample')
152
+ self.sample = attributes[:'sample']
153
+ else
154
+ self.sample = nil
155
+ end
156
+
123
157
  if attributes.key?(:'bytes')
124
158
  self.bytes = attributes[:'bytes']
159
+ else
160
+ self.bytes = nil
161
+ end
162
+
163
+ if attributes.key?(:'http_status')
164
+ self.http_status = attributes[:'http_status']
165
+ else
166
+ self.http_status = nil
167
+ end
168
+
169
+ if attributes.key?(:'apikey_id')
170
+ self.apikey_id = attributes[:'apikey_id']
171
+ else
172
+ self.apikey_id = nil
173
+ end
174
+
175
+ if attributes.key?(:'client_ip')
176
+ self.client_ip = attributes[:'client_ip']
177
+ else
178
+ self.client_ip = nil
179
+ end
180
+
181
+ if attributes.key?(:'user_agent')
182
+ self.user_agent = attributes[:'user_agent']
183
+ else
184
+ self.user_agent = nil
125
185
  end
126
186
 
127
187
  if attributes.key?(:'created')
@@ -148,6 +208,10 @@ module VPNDetection
148
208
  invalid_properties.push('invalid value for "outcome", outcome cannot be nil.')
149
209
  end
150
210
 
211
+ if @sample.nil?
212
+ invalid_properties.push('invalid value for "sample", sample cannot be nil.')
213
+ end
214
+
151
215
  if @created.nil?
152
216
  invalid_properties.push('invalid value for "created", created cannot be nil.')
153
217
  end
@@ -164,6 +228,7 @@ module VPNDetection
164
228
  return false if @outcome.nil?
165
229
  outcome_validator = EnumAttributeValidator.new('String', ["ok", "unauthorized", "denied", "expired", "unknown", "unavailable"])
166
230
  return false unless outcome_validator.valid?(@outcome)
231
+ return false if @sample.nil?
167
232
  return false if @created.nil?
168
233
  true
169
234
  end
@@ -198,6 +263,16 @@ module VPNDetection
198
263
  @outcome = outcome
199
264
  end
200
265
 
266
+ # Custom attribute writer method with validation
267
+ # @param [Object] sample Value to be assigned
268
+ def sample=(sample)
269
+ if sample.nil?
270
+ fail ArgumentError, 'sample cannot be nil'
271
+ end
272
+
273
+ @sample = sample
274
+ end
275
+
201
276
  # Custom attribute writer method with validation
202
277
  # @param [Object] created Value to be assigned
203
278
  def created=(created)
@@ -216,7 +291,12 @@ module VPNDetection
216
291
  dataset_id == o.dataset_id &&
217
292
  format == o.format &&
218
293
  outcome == o.outcome &&
294
+ sample == o.sample &&
219
295
  bytes == o.bytes &&
296
+ http_status == o.http_status &&
297
+ apikey_id == o.apikey_id &&
298
+ client_ip == o.client_ip &&
299
+ user_agent == o.user_agent &&
220
300
  created == o.created
221
301
  end
222
302
 
@@ -229,7 +309,7 @@ module VPNDetection
229
309
  # Calculates hash code according to all attributes.
230
310
  # @return [Integer] Hash code
231
311
  def hash
232
- [dataset_id, format, outcome, bytes, created].hash
312
+ [dataset_id, format, outcome, sample, bytes, http_status, apikey_id, client_ip, user_agent, created].hash
233
313
  end
234
314
 
235
315
  # Builds the object from hash
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -24,7 +24,7 @@ module VPNDetection
24
24
  attr_accessor :summary
25
25
 
26
26
  # What your license permits you to do with the data.
27
- attr_accessor :redistribution
27
+ attr_accessor :license_type
28
28
 
29
29
  attr_accessor :starts
30
30
 
@@ -68,7 +68,7 @@ module VPNDetection
68
68
  :'base' => :'base',
69
69
  :'name' => :'name',
70
70
  :'summary' => :'summary',
71
- :'redistribution' => :'redistribution',
71
+ :'license_type' => :'license_type',
72
72
  :'starts' => :'starts',
73
73
  :'expires' => :'expires',
74
74
  :'in_term' => :'in_term',
@@ -93,7 +93,7 @@ module VPNDetection
93
93
  :'base' => :'String',
94
94
  :'name' => :'String',
95
95
  :'summary' => :'String',
96
- :'redistribution' => :'String',
96
+ :'license_type' => :'String',
97
97
  :'starts' => :'Time',
98
98
  :'expires' => :'Time',
99
99
  :'in_term' => :'Boolean',
@@ -142,10 +142,10 @@ module VPNDetection
142
142
  self.summary = attributes[:'summary']
143
143
  end
144
144
 
145
- if attributes.key?(:'redistribution')
146
- self.redistribution = attributes[:'redistribution']
145
+ if attributes.key?(:'license_type')
146
+ self.license_type = attributes[:'license_type']
147
147
  else
148
- self.redistribution = nil
148
+ self.license_type = nil
149
149
  end
150
150
 
151
151
  if attributes.key?(:'starts')
@@ -190,8 +190,8 @@ module VPNDetection
190
190
  invalid_properties.push('invalid value for "name", name cannot be nil.')
191
191
  end
192
192
 
193
- if @redistribution.nil?
194
- invalid_properties.push('invalid value for "redistribution", redistribution cannot be nil.')
193
+ if @license_type.nil?
194
+ invalid_properties.push('invalid value for "license_type", license_type cannot be nil.')
195
195
  end
196
196
 
197
197
  if @in_term.nil?
@@ -215,9 +215,9 @@ module VPNDetection
215
215
  warn '[DEPRECATED] the `valid?` method is obsolete'
216
216
  return false if @base.nil?
217
217
  return false if @name.nil?
218
- return false if @redistribution.nil?
219
- redistribution_validator = EnumAttributeValidator.new('String', ["evaluation", "internal", "redistribute"])
220
- return false unless redistribution_validator.valid?(@redistribution)
218
+ return false if @license_type.nil?
219
+ license_type_validator = EnumAttributeValidator.new('String', ["evaluation", "standard", "redistribute"])
220
+ return false unless license_type_validator.valid?(@license_type)
221
221
  return false if @in_term.nil?
222
222
  return false if @standing.nil?
223
223
  standing_validator = EnumAttributeValidator.new('String', ["expired", "licensed", "unlicensed"])
@@ -247,13 +247,13 @@ module VPNDetection
247
247
  end
248
248
 
249
249
  # Custom attribute writer method checking allowed values (enum).
250
- # @param [Object] redistribution Object to be assigned
251
- def redistribution=(redistribution)
252
- validator = EnumAttributeValidator.new('String', ["evaluation", "internal", "redistribute"])
253
- unless validator.valid?(redistribution)
254
- fail ArgumentError, "invalid value for \"redistribution\", must be one of #{validator.allowable_values}."
250
+ # @param [Object] license_type Object to be assigned
251
+ def license_type=(license_type)
252
+ validator = EnumAttributeValidator.new('String', ["evaluation", "standard", "redistribute"])
253
+ unless validator.valid?(license_type)
254
+ fail ArgumentError, "invalid value for \"license_type\", must be one of #{validator.allowable_values}."
255
255
  end
256
- @redistribution = redistribution
256
+ @license_type = license_type
257
257
  end
258
258
 
259
259
  # Custom attribute writer method with validation
@@ -294,7 +294,7 @@ module VPNDetection
294
294
  base == o.base &&
295
295
  name == o.name &&
296
296
  summary == o.summary &&
297
- redistribution == o.redistribution &&
297
+ license_type == o.license_type &&
298
298
  starts == o.starts &&
299
299
  expires == o.expires &&
300
300
  in_term == o.in_term &&
@@ -311,7 +311,7 @@ module VPNDetection
311
311
  # Calculates hash code according to all attributes.
312
312
  # @return [Integer] Hash code
313
313
  def hash
314
- [base, name, summary, redistribution, starts, expires, in_term, standing, versions].hash
314
+ [base, name, summary, license_type, starts, expires, in_term, standing, versions].hash
315
315
  end
316
316
 
317
317
  # Builds the object from hash
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The VPNDetection API: classify any IP address, and download the datasets behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
5
5
 
6
- The version of the OpenAPI document: 2026.09.04
6
+ The version of the OpenAPI document: 2026.09.05
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module VPNDetection
4
- VERSION = '1.0.0'
4
+ VERSION = '1.2.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vpndetection
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mslm Dev