vpndetection 5.6.4 → 5.8.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 +4 -4
- data/README.md +1 -1
- data/lib/vpndetection/api/account_wire_api.rb +1 -1
- data/lib/vpndetection/api/api_keys_wire_api.rb +1 -1
- data/lib/vpndetection/api/authorization_wire_api.rb +71 -3
- data/lib/vpndetection/api/database_wire_api.rb +1 -1
- data/lib/vpndetection/api/entitlement_wire_api.rb +1 -1
- data/lib/vpndetection/api/lookup_wire_api.rb +1 -1
- data/lib/vpndetection/api/organization_wire_api.rb +1 -1
- data/lib/vpndetection/api_client.rb +1 -1
- data/lib/vpndetection/api_error.rb +1 -1
- data/lib/vpndetection/api_model_base.rb +1 -1
- data/lib/vpndetection/configuration.rb +1 -1
- data/lib/vpndetection/models/account_create_apikey_request.rb +1 -1
- data/lib/vpndetection/models/account_created_apikey.rb +1 -1
- data/lib/vpndetection/models/account_org.rb +1 -1
- data/lib/vpndetection/models/account_org_ref.rb +1 -1
- data/lib/vpndetection/models/account_org_wrap.rb +1 -1
- data/lib/vpndetection/models/account_rc.rb +1 -1
- data/lib/vpndetection/models/account_revealed_apikey.rb +1 -1
- data/lib/vpndetection/models/account_user.rb +1 -1
- data/lib/vpndetection/models/apikey_detail.rb +1 -1
- data/lib/vpndetection/models/apikey_list.rb +1 -1
- data/lib/vpndetection/models/batch_lookup_error.rb +1 -1
- data/lib/vpndetection/models/batch_lookup_request.rb +1 -1
- data/lib/vpndetection/models/batch_lookup_response.rb +1 -1
- data/lib/vpndetection/models/class_detail.rb +1 -1
- data/lib/vpndetection/models/client_registration.rb +306 -0
- data/lib/vpndetection/models/client_registration_request.rb +211 -0
- data/lib/vpndetection/models/database.rb +1 -1
- data/lib/vpndetection/models/database_checksums_response.rb +1 -1
- data/lib/vpndetection/models/database_format.rb +1 -1
- data/lib/vpndetection/models/database_format_size.rb +1 -1
- data/lib/vpndetection/models/database_list.rb +1 -1
- data/lib/vpndetection/models/database_metadata.rb +1 -1
- data/lib/vpndetection/models/database_metadata_column.rb +1 -1
- data/lib/vpndetection/models/database_version.rb +1 -1
- data/lib/vpndetection/models/db_checksums.rb +1 -1
- data/lib/vpndetection/models/device_authorization.rb +1 -1
- data/lib/vpndetection/models/download.rb +1 -1
- data/lib/vpndetection/models/download_list.rb +1 -1
- data/lib/vpndetection/models/entitlement.rb +1 -1
- data/lib/vpndetection/models/entitlement_apikey.rb +1 -1
- data/lib/vpndetection/models/entitlement_error.rb +1 -1
- data/lib/vpndetection/models/entitlement_plan.rb +1 -1
- data/lib/vpndetection/models/entitlement_usage.rb +1 -1
- data/lib/vpndetection/models/error_envelope.rb +1 -1
- data/lib/vpndetection/models/identity.rb +1 -1
- data/lib/vpndetection/models/lookup_error.rb +1 -1
- data/lib/vpndetection/models/lookup_response.rb +26 -6
- data/lib/vpndetection/models/oauth_error.rb +1 -1
- data/lib/vpndetection/models/oauth_metadata.rb +12 -2
- data/lib/vpndetection/models/proxy_detail.rb +1 -1
- data/lib/vpndetection/models/pubproxy_detail.rb +191 -0
- data/lib/vpndetection/models/standing.rb +1 -1
- data/lib/vpndetection/models/token_response.rb +2 -2
- data/lib/vpndetection/models/vpn_detail.rb +1 -1
- data/lib/vpndetection/result.rb +24 -4
- data/lib/vpndetection/version.rb +1 -1
- metadata +4 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
#The VPNDetection API: classify any IP address, and download the databases 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.10.
|
|
6
|
+
The version of the OpenAPI document: 2026.10.18
|
|
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 databases 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.10.
|
|
6
|
+
The version of the OpenAPI document: 2026.10.18
|
|
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 databases 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.10.
|
|
6
|
+
The version of the OpenAPI document: 2026.10.18
|
|
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 databases 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.10.
|
|
6
|
+
The version of the OpenAPI document: 2026.10.18
|
|
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 databases 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.10.
|
|
6
|
+
The version of the OpenAPI document: 2026.10.18
|
|
7
7
|
Contact: support@vpndetection.io
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
9
|
Generator version: 7.25.0
|
|
@@ -25,7 +25,7 @@ module VPNDetection
|
|
|
25
25
|
# Whether the address belongs to a hosting or cloud provider. Starter and above.
|
|
26
26
|
attr_accessor :is_hosting
|
|
27
27
|
|
|
28
|
-
# Whether the address is
|
|
28
|
+
# Whether the address is privacy relay or enterprise web gateway egress, such as iCloud Private Relay or Zscaler. Starter and above.
|
|
29
29
|
attr_accessor :is_relay
|
|
30
30
|
|
|
31
31
|
# Whether the address is a Tor node. Starter and above.
|
|
@@ -43,6 +43,9 @@ module VPNDetection
|
|
|
43
43
|
# Whether the address was seen in a mobile proxy pool. Scale and above.
|
|
44
44
|
attr_accessor :is_mobproxy
|
|
45
45
|
|
|
46
|
+
# Whether a public proxy, one anyone can connect through, listens on the address or sends its traffic out from it. Scale and above.
|
|
47
|
+
attr_accessor :is_pubproxy
|
|
48
|
+
|
|
46
49
|
# Detail for `is_vpn`. Empty when `is_vpn` is false. Starter and above.
|
|
47
50
|
attr_accessor :vpn
|
|
48
51
|
|
|
@@ -67,6 +70,9 @@ module VPNDetection
|
|
|
67
70
|
# Detail for `is_mobproxy`. Empty when false. Max only.
|
|
68
71
|
attr_accessor :mobproxy
|
|
69
72
|
|
|
73
|
+
# Detail for `is_pubproxy`. Empty when false. Max only.
|
|
74
|
+
attr_accessor :pubproxy
|
|
75
|
+
|
|
70
76
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
71
77
|
def self.attribute_map
|
|
72
78
|
{
|
|
@@ -79,6 +85,7 @@ module VPNDetection
|
|
|
79
85
|
:'is_resproxy' => :'is_resproxy',
|
|
80
86
|
:'is_dcproxy' => :'is_dcproxy',
|
|
81
87
|
:'is_mobproxy' => :'is_mobproxy',
|
|
88
|
+
:'is_pubproxy' => :'is_pubproxy',
|
|
82
89
|
:'vpn' => :'vpn',
|
|
83
90
|
:'hosting' => :'hosting',
|
|
84
91
|
:'relay' => :'relay',
|
|
@@ -86,7 +93,8 @@ module VPNDetection
|
|
|
86
93
|
:'cdn' => :'cdn',
|
|
87
94
|
:'resproxy' => :'resproxy',
|
|
88
95
|
:'dcproxy' => :'dcproxy',
|
|
89
|
-
:'mobproxy' => :'mobproxy'
|
|
96
|
+
:'mobproxy' => :'mobproxy',
|
|
97
|
+
:'pubproxy' => :'pubproxy'
|
|
90
98
|
}
|
|
91
99
|
end
|
|
92
100
|
|
|
@@ -112,6 +120,7 @@ module VPNDetection
|
|
|
112
120
|
:'is_resproxy' => :'Boolean',
|
|
113
121
|
:'is_dcproxy' => :'Boolean',
|
|
114
122
|
:'is_mobproxy' => :'Boolean',
|
|
123
|
+
:'is_pubproxy' => :'Boolean',
|
|
115
124
|
:'vpn' => :'VpnDetail',
|
|
116
125
|
:'hosting' => :'ClassDetail',
|
|
117
126
|
:'relay' => :'ClassDetail',
|
|
@@ -119,7 +128,8 @@ module VPNDetection
|
|
|
119
128
|
:'cdn' => :'ClassDetail',
|
|
120
129
|
:'resproxy' => :'ProxyDetail',
|
|
121
130
|
:'dcproxy' => :'ProxyDetail',
|
|
122
|
-
:'mobproxy' => :'ProxyDetail'
|
|
131
|
+
:'mobproxy' => :'ProxyDetail',
|
|
132
|
+
:'pubproxy' => :'PubproxyDetail'
|
|
123
133
|
}
|
|
124
134
|
end
|
|
125
135
|
|
|
@@ -185,6 +195,10 @@ module VPNDetection
|
|
|
185
195
|
self.is_mobproxy = attributes[:'is_mobproxy']
|
|
186
196
|
end
|
|
187
197
|
|
|
198
|
+
if attributes.key?(:'is_pubproxy')
|
|
199
|
+
self.is_pubproxy = attributes[:'is_pubproxy']
|
|
200
|
+
end
|
|
201
|
+
|
|
188
202
|
if attributes.key?(:'vpn')
|
|
189
203
|
self.vpn = attributes[:'vpn']
|
|
190
204
|
end
|
|
@@ -216,6 +230,10 @@ module VPNDetection
|
|
|
216
230
|
if attributes.key?(:'mobproxy')
|
|
217
231
|
self.mobproxy = attributes[:'mobproxy']
|
|
218
232
|
end
|
|
233
|
+
|
|
234
|
+
if attributes.key?(:'pubproxy')
|
|
235
|
+
self.pubproxy = attributes[:'pubproxy']
|
|
236
|
+
end
|
|
219
237
|
end
|
|
220
238
|
|
|
221
239
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -277,6 +295,7 @@ module VPNDetection
|
|
|
277
295
|
is_resproxy == o.is_resproxy &&
|
|
278
296
|
is_dcproxy == o.is_dcproxy &&
|
|
279
297
|
is_mobproxy == o.is_mobproxy &&
|
|
298
|
+
is_pubproxy == o.is_pubproxy &&
|
|
280
299
|
vpn == o.vpn &&
|
|
281
300
|
hosting == o.hosting &&
|
|
282
301
|
relay == o.relay &&
|
|
@@ -284,7 +303,8 @@ module VPNDetection
|
|
|
284
303
|
cdn == o.cdn &&
|
|
285
304
|
resproxy == o.resproxy &&
|
|
286
305
|
dcproxy == o.dcproxy &&
|
|
287
|
-
mobproxy == o.mobproxy
|
|
306
|
+
mobproxy == o.mobproxy &&
|
|
307
|
+
pubproxy == o.pubproxy
|
|
288
308
|
end
|
|
289
309
|
|
|
290
310
|
# @see the `==` method
|
|
@@ -296,7 +316,7 @@ module VPNDetection
|
|
|
296
316
|
# Calculates hash code according to all attributes.
|
|
297
317
|
# @return [Integer] Hash code
|
|
298
318
|
def hash
|
|
299
|
-
[ip, is_vpn, is_hosting, is_relay, is_tor, is_cdn, is_resproxy, is_dcproxy, is_mobproxy, vpn, hosting, relay, tor, cdn, resproxy, dcproxy, mobproxy].hash
|
|
319
|
+
[ip, is_vpn, is_hosting, is_relay, is_tor, is_cdn, is_resproxy, is_dcproxy, is_mobproxy, is_pubproxy, vpn, hosting, relay, tor, cdn, resproxy, dcproxy, mobproxy, pubproxy].hash
|
|
300
320
|
end
|
|
301
321
|
|
|
302
322
|
# Builds the object from hash
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
#The VPNDetection API: classify any IP address, and download the databases 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.10.
|
|
6
|
+
The version of the OpenAPI document: 2026.10.18
|
|
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 databases 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.10.
|
|
6
|
+
The version of the OpenAPI document: 2026.10.18
|
|
7
7
|
Contact: support@vpndetection.io
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
9
|
Generator version: 7.25.0
|
|
@@ -36,6 +36,9 @@ module VPNDetection
|
|
|
36
36
|
# Any client may sign in with an https `client_id` serving its own metadata.
|
|
37
37
|
attr_accessor :client_id_metadata_document_supported
|
|
38
38
|
|
|
39
|
+
# RFC 7591 dynamic client registration, for a client that cannot serve its own metadata.
|
|
40
|
+
attr_accessor :registration_endpoint
|
|
41
|
+
|
|
39
42
|
# Always `none`. Every client is public and has no secret.
|
|
40
43
|
attr_accessor :token_endpoint_auth_methods_supported
|
|
41
44
|
|
|
@@ -57,6 +60,7 @@ module VPNDetection
|
|
|
57
60
|
:'grant_types_supported' => :'grant_types_supported',
|
|
58
61
|
:'code_challenge_methods_supported' => :'code_challenge_methods_supported',
|
|
59
62
|
:'client_id_metadata_document_supported' => :'client_id_metadata_document_supported',
|
|
63
|
+
:'registration_endpoint' => :'registration_endpoint',
|
|
60
64
|
:'token_endpoint_auth_methods_supported' => :'token_endpoint_auth_methods_supported',
|
|
61
65
|
:'authorization_response_iss_parameter_supported' => :'authorization_response_iss_parameter_supported',
|
|
62
66
|
:'service_documentation' => :'service_documentation'
|
|
@@ -86,6 +90,7 @@ module VPNDetection
|
|
|
86
90
|
:'grant_types_supported' => :'Array<String>',
|
|
87
91
|
:'code_challenge_methods_supported' => :'Array<String>',
|
|
88
92
|
:'client_id_metadata_document_supported' => :'Boolean',
|
|
93
|
+
:'registration_endpoint' => :'String',
|
|
89
94
|
:'token_endpoint_auth_methods_supported' => :'Array<String>',
|
|
90
95
|
:'authorization_response_iss_parameter_supported' => :'Boolean',
|
|
91
96
|
:'service_documentation' => :'String'
|
|
@@ -168,6 +173,10 @@ module VPNDetection
|
|
|
168
173
|
self.client_id_metadata_document_supported = attributes[:'client_id_metadata_document_supported']
|
|
169
174
|
end
|
|
170
175
|
|
|
176
|
+
if attributes.key?(:'registration_endpoint')
|
|
177
|
+
self.registration_endpoint = attributes[:'registration_endpoint']
|
|
178
|
+
end
|
|
179
|
+
|
|
171
180
|
if attributes.key?(:'token_endpoint_auth_methods_supported')
|
|
172
181
|
if (value = attributes[:'token_endpoint_auth_methods_supported']).is_a?(Array)
|
|
173
182
|
self.token_endpoint_auth_methods_supported = value
|
|
@@ -258,6 +267,7 @@ module VPNDetection
|
|
|
258
267
|
grant_types_supported == o.grant_types_supported &&
|
|
259
268
|
code_challenge_methods_supported == o.code_challenge_methods_supported &&
|
|
260
269
|
client_id_metadata_document_supported == o.client_id_metadata_document_supported &&
|
|
270
|
+
registration_endpoint == o.registration_endpoint &&
|
|
261
271
|
token_endpoint_auth_methods_supported == o.token_endpoint_auth_methods_supported &&
|
|
262
272
|
authorization_response_iss_parameter_supported == o.authorization_response_iss_parameter_supported &&
|
|
263
273
|
service_documentation == o.service_documentation
|
|
@@ -272,7 +282,7 @@ module VPNDetection
|
|
|
272
282
|
# Calculates hash code according to all attributes.
|
|
273
283
|
# @return [Integer] Hash code
|
|
274
284
|
def hash
|
|
275
|
-
[issuer, authorization_endpoint, token_endpoint, device_authorization_endpoint, revocation_endpoint, scopes_supported, response_types_supported, grant_types_supported, code_challenge_methods_supported, client_id_metadata_document_supported, token_endpoint_auth_methods_supported, authorization_response_iss_parameter_supported, service_documentation].hash
|
|
285
|
+
[issuer, authorization_endpoint, token_endpoint, device_authorization_endpoint, revocation_endpoint, scopes_supported, response_types_supported, grant_types_supported, code_challenge_methods_supported, client_id_metadata_document_supported, registration_endpoint, token_endpoint_auth_methods_supported, authorization_response_iss_parameter_supported, service_documentation].hash
|
|
276
286
|
end
|
|
277
287
|
|
|
278
288
|
# Builds the object from hash
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
#The VPNDetection API: classify any IP address, and download the databases 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.10.
|
|
6
|
+
The version of the OpenAPI document: 2026.10.18
|
|
7
7
|
Contact: support@vpndetection.io
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
9
|
Generator version: 7.25.0
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#VPNDetection API
|
|
3
|
+
|
|
4
|
+
#The VPNDetection API: classify any IP address, and download the databases behind the answers. See https://docs.vpndetection.io for guides and https://github.com/vpndetection-io for the official client libraries.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 2026.10.18
|
|
7
|
+
Contact: support@vpndetection.io
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.25.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'date'
|
|
14
|
+
require 'time'
|
|
15
|
+
|
|
16
|
+
module VPNDetection
|
|
17
|
+
# The address in Public Proxy IP, open proxies anyone can connect through, over a rolling 90 day window. It covers both ends of a proxy: the address it listens on and the address its traffic leaves from. Every key is present when the object is populated; the object is `{}` when `is_pubproxy` is false.
|
|
18
|
+
class PubproxyDetail < ApiModelBase
|
|
19
|
+
# Whether a public proxy listens on this address.
|
|
20
|
+
attr_accessor :entry
|
|
21
|
+
|
|
22
|
+
# Whether a public proxy's traffic leaves from this address.
|
|
23
|
+
attr_accessor :exit
|
|
24
|
+
|
|
25
|
+
# The protocols of the proxies listening on or leaving from this address: `http`, `https` (an HTTP proxy that also tunnels HTTPS), `socks4` or `socks5`. Empty where only the address is known.
|
|
26
|
+
attr_accessor :protocols
|
|
27
|
+
|
|
28
|
+
# The most recent date within the window a proxy on this address was seen.
|
|
29
|
+
attr_accessor :last_seen
|
|
30
|
+
|
|
31
|
+
# The most recent date within the window a request through a proxy on this address was answered, as YYYY-MM-DD, or an empty string when none was.
|
|
32
|
+
attr_accessor :last_usable
|
|
33
|
+
|
|
34
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
35
|
+
def self.attribute_map
|
|
36
|
+
{
|
|
37
|
+
:'entry' => :'entry',
|
|
38
|
+
:'exit' => :'exit',
|
|
39
|
+
:'protocols' => :'protocols',
|
|
40
|
+
:'last_seen' => :'last_seen',
|
|
41
|
+
:'last_usable' => :'last_usable'
|
|
42
|
+
}
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Returns attribute mapping this model knows about
|
|
46
|
+
def self.acceptable_attribute_map
|
|
47
|
+
attribute_map
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Returns all the JSON keys this model knows about
|
|
51
|
+
def self.acceptable_attributes
|
|
52
|
+
acceptable_attribute_map.values
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Attribute type mapping.
|
|
56
|
+
def self.openapi_types
|
|
57
|
+
{
|
|
58
|
+
:'entry' => :'Boolean',
|
|
59
|
+
:'exit' => :'Boolean',
|
|
60
|
+
:'protocols' => :'Array<String>',
|
|
61
|
+
:'last_seen' => :'Date',
|
|
62
|
+
:'last_usable' => :'String'
|
|
63
|
+
}
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# List of attributes with nullable: true
|
|
67
|
+
def self.openapi_nullable
|
|
68
|
+
Set.new([
|
|
69
|
+
])
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Initializes the object
|
|
73
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
74
|
+
def initialize(attributes = {})
|
|
75
|
+
if (!attributes.is_a?(Hash))
|
|
76
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `VPNDetection::PubproxyDetail` initialize method"
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
80
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
81
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
82
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
83
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `VPNDetection::PubproxyDetail`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
84
|
+
end
|
|
85
|
+
h[k.to_sym] = v
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if attributes.key?(:'entry')
|
|
89
|
+
self.entry = attributes[:'entry']
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
if attributes.key?(:'exit')
|
|
93
|
+
self.exit = attributes[:'exit']
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
if attributes.key?(:'protocols')
|
|
97
|
+
if (value = attributes[:'protocols']).is_a?(Array)
|
|
98
|
+
self.protocols = value
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
if attributes.key?(:'last_seen')
|
|
103
|
+
self.last_seen = attributes[:'last_seen']
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
if attributes.key?(:'last_usable')
|
|
107
|
+
self.last_usable = attributes[:'last_usable']
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
112
|
+
# @return Array for valid properties with the reasons
|
|
113
|
+
def list_invalid_properties
|
|
114
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
115
|
+
invalid_properties = Array.new
|
|
116
|
+
invalid_properties
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# Check to see if the all the properties in the model are valid
|
|
120
|
+
# @return true if the model is valid
|
|
121
|
+
def valid?
|
|
122
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
123
|
+
true
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# Checks equality by comparing each attribute.
|
|
127
|
+
# @param [Object] Object to be compared
|
|
128
|
+
def ==(o)
|
|
129
|
+
return true if self.equal?(o)
|
|
130
|
+
self.class == o.class &&
|
|
131
|
+
entry == o.entry &&
|
|
132
|
+
exit == o.exit &&
|
|
133
|
+
protocols == o.protocols &&
|
|
134
|
+
last_seen == o.last_seen &&
|
|
135
|
+
last_usable == o.last_usable
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# @see the `==` method
|
|
139
|
+
# @param [Object] Object to be compared
|
|
140
|
+
def eql?(o)
|
|
141
|
+
self == o
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# Calculates hash code according to all attributes.
|
|
145
|
+
# @return [Integer] Hash code
|
|
146
|
+
def hash
|
|
147
|
+
[entry, exit, protocols, last_seen, last_usable].hash
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
# Builds the object from hash
|
|
151
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
152
|
+
# @return [Object] Returns the model itself
|
|
153
|
+
def self.build_from_hash(attributes)
|
|
154
|
+
return nil unless attributes.is_a?(Hash)
|
|
155
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
156
|
+
transformed_hash = {}
|
|
157
|
+
openapi_types.each_pair do |key, type|
|
|
158
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
159
|
+
transformed_hash["#{key}"] = nil
|
|
160
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
161
|
+
# check to ensure the input is an array given that the attribute
|
|
162
|
+
# is documented as an array but the input is not
|
|
163
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
164
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
165
|
+
end
|
|
166
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
167
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
new(transformed_hash)
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
# Returns the object in the form of hash
|
|
174
|
+
# @return [Hash] Returns the object in the form of hash
|
|
175
|
+
def to_hash
|
|
176
|
+
hash = {}
|
|
177
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
178
|
+
value = self.send(attr)
|
|
179
|
+
if value.nil?
|
|
180
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
181
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
hash[param] = _to_hash(value)
|
|
185
|
+
end
|
|
186
|
+
hash
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
end
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
#The VPNDetection API: classify any IP address, and download the databases 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.10.
|
|
6
|
+
The version of the OpenAPI document: 2026.10.18
|
|
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 databases 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.10.
|
|
6
|
+
The version of the OpenAPI document: 2026.10.18
|
|
7
7
|
Contact: support@vpndetection.io
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
9
|
Generator version: 7.25.0
|
|
@@ -32,7 +32,7 @@ module VPNDetection
|
|
|
32
32
|
# Not part of OAuth, and only for our own clients. The ID of the API key the person picked when they approved, returned by every grant while this authorization may still read that key back. Absent when no key was picked, or when the person's role no longer allows reading keys back.
|
|
33
33
|
attr_accessor :apikey_id
|
|
34
34
|
|
|
35
|
-
# Not part of OAuth, and only for our own clients: a client that signed in with a Client ID Metadata Document never receives a key. The API key itself, so a device ends up holding an ordinary key. Returned by the device code and authorization code grants only, never by a refresh, and only alongside `mslm:apikey_id`. Absent when that key's secret cannot be read back, which is the case for a key created before keys could be shown again in the console; a rotated key can be.
|
|
35
|
+
# Not part of OAuth, and only for our own clients: a client that signed in with a Client ID Metadata Document or registered itself never receives a key. The API key itself, so a device ends up holding an ordinary key. Returned by the device code and authorization code grants only, never by a refresh, and only alongside `mslm:apikey_id`. Absent when that key's secret cannot be read back, which is the case for a key created before keys could be shown again in the console; a rotated key can be.
|
|
36
36
|
attr_accessor :apikey
|
|
37
37
|
|
|
38
38
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
#The VPNDetection API: classify any IP address, and download the databases 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.10.
|
|
6
|
+
The version of the OpenAPI document: 2026.10.18
|
|
7
7
|
Contact: support@vpndetection.io
|
|
8
8
|
Generated by: https://openapi-generator.tech
|
|
9
9
|
Generator version: 7.25.0
|
data/lib/vpndetection/result.rb
CHANGED
|
@@ -19,9 +19,10 @@ module VPNDetection
|
|
|
19
19
|
class Result
|
|
20
20
|
FLAGS = %w[
|
|
21
21
|
is_vpn is_hosting is_relay is_tor is_cdn is_resproxy is_dcproxy is_mobproxy
|
|
22
|
+
is_pubproxy
|
|
22
23
|
].freeze
|
|
23
24
|
|
|
24
|
-
DETAILS = %w[vpn hosting relay tor cdn resproxy dcproxy mobproxy].freeze
|
|
25
|
+
DETAILS = %w[vpn hosting relay tor cdn resproxy dcproxy mobproxy pubproxy].freeze
|
|
25
26
|
|
|
26
27
|
# The response exactly as it came off the wire, with its original names.
|
|
27
28
|
# Frozen, because the cache hands this same object to every later caller of
|
|
@@ -109,7 +110,7 @@ module VPNDetection
|
|
|
109
110
|
end
|
|
110
111
|
|
|
111
112
|
# Whether the address was seen in a residential proxy pool, or nil when your
|
|
112
|
-
# plan does not include it.
|
|
113
|
+
# plan does not include it. Scale and above.
|
|
113
114
|
def is_resproxy
|
|
114
115
|
@raw['is_resproxy']
|
|
115
116
|
end
|
|
@@ -120,7 +121,7 @@ module VPNDetection
|
|
|
120
121
|
end
|
|
121
122
|
|
|
122
123
|
# Whether the address was seen in a datacenter proxy pool, or nil when your
|
|
123
|
-
# plan does not include it.
|
|
124
|
+
# plan does not include it. Scale and above.
|
|
124
125
|
def is_dcproxy
|
|
125
126
|
@raw['is_dcproxy']
|
|
126
127
|
end
|
|
@@ -131,7 +132,7 @@ module VPNDetection
|
|
|
131
132
|
end
|
|
132
133
|
|
|
133
134
|
# Whether the address was seen in a mobile proxy pool, or nil when your plan
|
|
134
|
-
# does not include it.
|
|
135
|
+
# does not include it. Scale and above.
|
|
135
136
|
def is_mobproxy
|
|
136
137
|
@raw['is_mobproxy']
|
|
137
138
|
end
|
|
@@ -141,6 +142,18 @@ module VPNDetection
|
|
|
141
142
|
@raw['is_mobproxy'] == true
|
|
142
143
|
end
|
|
143
144
|
|
|
145
|
+
# Whether a public proxy, one anyone can connect through, listens on the
|
|
146
|
+
# address or sends its traffic out from it, or nil when your plan does not
|
|
147
|
+
# include it. Scale and above.
|
|
148
|
+
def is_pubproxy
|
|
149
|
+
@raw['is_pubproxy']
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# `is_pubproxy` with an absent member read as false.
|
|
153
|
+
def pubproxy?
|
|
154
|
+
@raw['is_pubproxy'] == true
|
|
155
|
+
end
|
|
156
|
+
|
|
144
157
|
# Detail for `is_vpn`: provider, last_seen, and on max confidence and method.
|
|
145
158
|
def vpn
|
|
146
159
|
@raw['vpn']
|
|
@@ -181,6 +194,13 @@ module VPNDetection
|
|
|
181
194
|
@raw['mobproxy']
|
|
182
195
|
end
|
|
183
196
|
|
|
197
|
+
# Detail for `is_pubproxy`: entry, exit, protocols, last_seen and
|
|
198
|
+
# last_usable, the last an empty string when no request through a proxy on
|
|
199
|
+
# the address was answered. Max only.
|
|
200
|
+
def pubproxy
|
|
201
|
+
@raw['pubproxy']
|
|
202
|
+
end
|
|
203
|
+
|
|
184
204
|
def to_h
|
|
185
205
|
@raw
|
|
186
206
|
end
|
data/lib/vpndetection/version.rb
CHANGED
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: 5.
|
|
4
|
+
version: 5.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mslm Dev
|
|
@@ -82,6 +82,8 @@ files:
|
|
|
82
82
|
- lib/vpndetection/models/batch_lookup_request.rb
|
|
83
83
|
- lib/vpndetection/models/batch_lookup_response.rb
|
|
84
84
|
- lib/vpndetection/models/class_detail.rb
|
|
85
|
+
- lib/vpndetection/models/client_registration.rb
|
|
86
|
+
- lib/vpndetection/models/client_registration_request.rb
|
|
85
87
|
- lib/vpndetection/models/database.rb
|
|
86
88
|
- lib/vpndetection/models/database_checksums_response.rb
|
|
87
89
|
- lib/vpndetection/models/database_format.rb
|
|
@@ -106,6 +108,7 @@ files:
|
|
|
106
108
|
- lib/vpndetection/models/oauth_error.rb
|
|
107
109
|
- lib/vpndetection/models/oauth_metadata.rb
|
|
108
110
|
- lib/vpndetection/models/proxy_detail.rb
|
|
111
|
+
- lib/vpndetection/models/pubproxy_detail.rb
|
|
109
112
|
- lib/vpndetection/models/standing.rb
|
|
110
113
|
- lib/vpndetection/models/token_response.rb
|
|
111
114
|
- lib/vpndetection/models/vpn_detail.rb
|