vpndetection 4.0.1 → 5.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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +20 -0
  3. data/lib/vpndetection/api/account_wire_api.rb +16 -16
  4. data/lib/vpndetection/api/api_keys_wire_api.rb +336 -0
  5. data/lib/vpndetection/api/authorization_wire_api.rb +421 -0
  6. data/lib/vpndetection/api/database_wire_api.rb +1 -1
  7. data/lib/vpndetection/api/entitlement_wire_api.rb +79 -0
  8. data/lib/vpndetection/api/lookup_wire_api.rb +3 -3
  9. data/lib/vpndetection/api/organization_wire_api.rb +136 -0
  10. data/lib/vpndetection/api_client.rb +1 -1
  11. data/lib/vpndetection/api_error.rb +1 -1
  12. data/lib/vpndetection/api_model_base.rb +1 -1
  13. data/lib/vpndetection/client.rb +4 -4
  14. data/lib/vpndetection/configuration.rb +1 -1
  15. data/lib/vpndetection/models/account_create_apikey_request.rb +177 -0
  16. data/lib/vpndetection/models/account_created_apikey.rb +257 -0
  17. data/lib/vpndetection/models/account_org.rb +183 -0
  18. data/lib/vpndetection/models/account_org_ref.rb +164 -0
  19. data/lib/vpndetection/models/account_org_wrap.rb +190 -0
  20. data/lib/vpndetection/models/account_rc.rb +165 -0
  21. data/lib/vpndetection/models/account_revealed_apikey.rb +191 -0
  22. data/lib/vpndetection/models/account_user.rb +182 -0
  23. data/lib/vpndetection/models/apikey_detail.rb +307 -0
  24. data/lib/vpndetection/models/apikey_list.rb +192 -0
  25. data/lib/vpndetection/models/class_detail.rb +1 -1
  26. data/lib/vpndetection/models/database.rb +1 -1
  27. data/lib/vpndetection/models/database_checksums_response.rb +1 -1
  28. data/lib/vpndetection/models/database_format.rb +1 -1
  29. data/lib/vpndetection/models/database_format_size.rb +2 -2
  30. data/lib/vpndetection/models/database_list.rb +1 -1
  31. data/lib/vpndetection/models/database_metadata.rb +1 -1
  32. data/lib/vpndetection/models/database_metadata_column.rb +1 -1
  33. data/lib/vpndetection/models/database_version.rb +1 -1
  34. data/lib/vpndetection/models/db_checksums.rb +1 -1
  35. data/lib/vpndetection/models/device_authorization.rb +281 -0
  36. data/lib/vpndetection/models/download.rb +2 -2
  37. data/lib/vpndetection/models/download_list.rb +1 -1
  38. data/lib/vpndetection/models/{account_me.rb → entitlement.rb} +7 -7
  39. data/lib/vpndetection/models/{account_apikey.rb → entitlement_apikey.rb} +4 -4
  40. data/lib/vpndetection/models/{account_error.rb → entitlement_error.rb} +4 -4
  41. data/lib/vpndetection/models/{account_plan.rb → entitlement_plan.rb} +4 -4
  42. data/lib/vpndetection/models/{account_usage.rb → entitlement_usage.rb} +4 -4
  43. data/lib/vpndetection/models/error_envelope.rb +1 -1
  44. data/lib/vpndetection/models/identity.rb +245 -0
  45. data/lib/vpndetection/models/lookup_error.rb +1 -1
  46. data/lib/vpndetection/models/lookup_response.rb +1 -1
  47. data/lib/vpndetection/models/oauth_error.rb +173 -0
  48. data/lib/vpndetection/models/oauth_metadata.rb +288 -0
  49. data/lib/vpndetection/models/proxy_detail.rb +1 -1
  50. data/lib/vpndetection/models/standing.rb +1 -1
  51. data/lib/vpndetection/models/token_response.rb +235 -0
  52. data/lib/vpndetection/models/vpn_detail.rb +1 -1
  53. data/lib/vpndetection/transport.rb +5 -5
  54. data/lib/vpndetection/version.rb +1 -1
  55. metadata +25 -6
@@ -0,0 +1,288 @@
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.09.15
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
+ class OauthMetadata < ApiModelBase
18
+ attr_accessor :issuer
19
+
20
+ attr_accessor :authorization_endpoint
21
+
22
+ attr_accessor :token_endpoint
23
+
24
+ attr_accessor :device_authorization_endpoint
25
+
26
+ attr_accessor :revocation_endpoint
27
+
28
+ attr_accessor :scopes_supported
29
+
30
+ attr_accessor :response_types_supported
31
+
32
+ attr_accessor :grant_types_supported
33
+
34
+ attr_accessor :code_challenge_methods_supported
35
+
36
+ # A client_id may be an https URL serving your client metadata.
37
+ attr_accessor :client_id_metadata_document_supported
38
+
39
+ # Attribute mapping from ruby-style variable name to JSON key.
40
+ def self.attribute_map
41
+ {
42
+ :'issuer' => :'issuer',
43
+ :'authorization_endpoint' => :'authorization_endpoint',
44
+ :'token_endpoint' => :'token_endpoint',
45
+ :'device_authorization_endpoint' => :'device_authorization_endpoint',
46
+ :'revocation_endpoint' => :'revocation_endpoint',
47
+ :'scopes_supported' => :'scopes_supported',
48
+ :'response_types_supported' => :'response_types_supported',
49
+ :'grant_types_supported' => :'grant_types_supported',
50
+ :'code_challenge_methods_supported' => :'code_challenge_methods_supported',
51
+ :'client_id_metadata_document_supported' => :'client_id_metadata_document_supported'
52
+ }
53
+ end
54
+
55
+ # Returns attribute mapping this model knows about
56
+ def self.acceptable_attribute_map
57
+ attribute_map
58
+ end
59
+
60
+ # Returns all the JSON keys this model knows about
61
+ def self.acceptable_attributes
62
+ acceptable_attribute_map.values
63
+ end
64
+
65
+ # Attribute type mapping.
66
+ def self.openapi_types
67
+ {
68
+ :'issuer' => :'String',
69
+ :'authorization_endpoint' => :'String',
70
+ :'token_endpoint' => :'String',
71
+ :'device_authorization_endpoint' => :'String',
72
+ :'revocation_endpoint' => :'String',
73
+ :'scopes_supported' => :'Array<String>',
74
+ :'response_types_supported' => :'Array<String>',
75
+ :'grant_types_supported' => :'Array<String>',
76
+ :'code_challenge_methods_supported' => :'Array<String>',
77
+ :'client_id_metadata_document_supported' => :'Boolean'
78
+ }
79
+ end
80
+
81
+ # List of attributes with nullable: true
82
+ def self.openapi_nullable
83
+ Set.new([
84
+ ])
85
+ end
86
+
87
+ # Initializes the object
88
+ # @param [Hash] attributes Model attributes in the form of hash
89
+ def initialize(attributes = {})
90
+ if (!attributes.is_a?(Hash))
91
+ fail ArgumentError, "The input argument (attributes) must be a hash in `VPNDetection::OauthMetadata` initialize method"
92
+ end
93
+
94
+ # check to see if the attribute exists and convert string to symbol for hash key
95
+ acceptable_attribute_map = self.class.acceptable_attribute_map
96
+ attributes = attributes.each_with_object({}) { |(k, v), h|
97
+ if (!acceptable_attribute_map.key?(k.to_sym))
98
+ fail ArgumentError, "`#{k}` is not a valid attribute in `VPNDetection::OauthMetadata`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
99
+ end
100
+ h[k.to_sym] = v
101
+ }
102
+
103
+ if attributes.key?(:'issuer')
104
+ self.issuer = attributes[:'issuer']
105
+ else
106
+ self.issuer = nil
107
+ end
108
+
109
+ if attributes.key?(:'authorization_endpoint')
110
+ self.authorization_endpoint = attributes[:'authorization_endpoint']
111
+ else
112
+ self.authorization_endpoint = nil
113
+ end
114
+
115
+ if attributes.key?(:'token_endpoint')
116
+ self.token_endpoint = attributes[:'token_endpoint']
117
+ else
118
+ self.token_endpoint = nil
119
+ end
120
+
121
+ if attributes.key?(:'device_authorization_endpoint')
122
+ self.device_authorization_endpoint = attributes[:'device_authorization_endpoint']
123
+ end
124
+
125
+ if attributes.key?(:'revocation_endpoint')
126
+ self.revocation_endpoint = attributes[:'revocation_endpoint']
127
+ end
128
+
129
+ if attributes.key?(:'scopes_supported')
130
+ if (value = attributes[:'scopes_supported']).is_a?(Array)
131
+ self.scopes_supported = value
132
+ end
133
+ end
134
+
135
+ if attributes.key?(:'response_types_supported')
136
+ if (value = attributes[:'response_types_supported']).is_a?(Array)
137
+ self.response_types_supported = value
138
+ end
139
+ end
140
+
141
+ if attributes.key?(:'grant_types_supported')
142
+ if (value = attributes[:'grant_types_supported']).is_a?(Array)
143
+ self.grant_types_supported = value
144
+ end
145
+ end
146
+
147
+ if attributes.key?(:'code_challenge_methods_supported')
148
+ if (value = attributes[:'code_challenge_methods_supported']).is_a?(Array)
149
+ self.code_challenge_methods_supported = value
150
+ end
151
+ end
152
+
153
+ if attributes.key?(:'client_id_metadata_document_supported')
154
+ self.client_id_metadata_document_supported = attributes[:'client_id_metadata_document_supported']
155
+ end
156
+ end
157
+
158
+ # Show invalid properties with the reasons. Usually used together with valid?
159
+ # @return Array for valid properties with the reasons
160
+ def list_invalid_properties
161
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
162
+ invalid_properties = Array.new
163
+ if @issuer.nil?
164
+ invalid_properties.push('invalid value for "issuer", issuer cannot be nil.')
165
+ end
166
+
167
+ if @authorization_endpoint.nil?
168
+ invalid_properties.push('invalid value for "authorization_endpoint", authorization_endpoint cannot be nil.')
169
+ end
170
+
171
+ if @token_endpoint.nil?
172
+ invalid_properties.push('invalid value for "token_endpoint", token_endpoint cannot be nil.')
173
+ end
174
+
175
+ invalid_properties
176
+ end
177
+
178
+ # Check to see if the all the properties in the model are valid
179
+ # @return true if the model is valid
180
+ def valid?
181
+ warn '[DEPRECATED] the `valid?` method is obsolete'
182
+ return false if @issuer.nil?
183
+ return false if @authorization_endpoint.nil?
184
+ return false if @token_endpoint.nil?
185
+ true
186
+ end
187
+
188
+ # Custom attribute writer method with validation
189
+ # @param [Object] issuer Value to be assigned
190
+ def issuer=(issuer)
191
+ if issuer.nil?
192
+ fail ArgumentError, 'issuer cannot be nil'
193
+ end
194
+
195
+ @issuer = issuer
196
+ end
197
+
198
+ # Custom attribute writer method with validation
199
+ # @param [Object] authorization_endpoint Value to be assigned
200
+ def authorization_endpoint=(authorization_endpoint)
201
+ if authorization_endpoint.nil?
202
+ fail ArgumentError, 'authorization_endpoint cannot be nil'
203
+ end
204
+
205
+ @authorization_endpoint = authorization_endpoint
206
+ end
207
+
208
+ # Custom attribute writer method with validation
209
+ # @param [Object] token_endpoint Value to be assigned
210
+ def token_endpoint=(token_endpoint)
211
+ if token_endpoint.nil?
212
+ fail ArgumentError, 'token_endpoint cannot be nil'
213
+ end
214
+
215
+ @token_endpoint = token_endpoint
216
+ end
217
+
218
+ # Checks equality by comparing each attribute.
219
+ # @param [Object] Object to be compared
220
+ def ==(o)
221
+ return true if self.equal?(o)
222
+ self.class == o.class &&
223
+ issuer == o.issuer &&
224
+ authorization_endpoint == o.authorization_endpoint &&
225
+ token_endpoint == o.token_endpoint &&
226
+ device_authorization_endpoint == o.device_authorization_endpoint &&
227
+ revocation_endpoint == o.revocation_endpoint &&
228
+ scopes_supported == o.scopes_supported &&
229
+ response_types_supported == o.response_types_supported &&
230
+ grant_types_supported == o.grant_types_supported &&
231
+ code_challenge_methods_supported == o.code_challenge_methods_supported &&
232
+ client_id_metadata_document_supported == o.client_id_metadata_document_supported
233
+ end
234
+
235
+ # @see the `==` method
236
+ # @param [Object] Object to be compared
237
+ def eql?(o)
238
+ self == o
239
+ end
240
+
241
+ # Calculates hash code according to all attributes.
242
+ # @return [Integer] Hash code
243
+ def hash
244
+ [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].hash
245
+ end
246
+
247
+ # Builds the object from hash
248
+ # @param [Hash] attributes Model attributes in the form of hash
249
+ # @return [Object] Returns the model itself
250
+ def self.build_from_hash(attributes)
251
+ return nil unless attributes.is_a?(Hash)
252
+ attributes = attributes.transform_keys(&:to_sym)
253
+ transformed_hash = {}
254
+ openapi_types.each_pair do |key, type|
255
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
256
+ transformed_hash["#{key}"] = nil
257
+ elsif type =~ /\AArray<(.*)>/i
258
+ # check to ensure the input is an array given that the attribute
259
+ # is documented as an array but the input is not
260
+ if attributes[attribute_map[key]].is_a?(Array)
261
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
262
+ end
263
+ elsif !attributes[attribute_map[key]].nil?
264
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
265
+ end
266
+ end
267
+ new(transformed_hash)
268
+ end
269
+
270
+ # Returns the object in the form of hash
271
+ # @return [Hash] Returns the object in the form of hash
272
+ def to_hash
273
+ hash = {}
274
+ self.class.attribute_map.each_pair do |attr, param|
275
+ value = self.send(attr)
276
+ if value.nil?
277
+ is_nullable = self.class.openapi_nullable.include?(attr)
278
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
279
+ end
280
+
281
+ hash[param] = _to_hash(value)
282
+ end
283
+ hash
284
+ end
285
+
286
+ end
287
+
288
+ 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.09.13
6
+ The version of the OpenAPI document: 2026.09.15
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.09.13
6
+ The version of the OpenAPI document: 2026.09.15
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -0,0 +1,235 @@
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.09.15
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
+ class TokenResponse < ApiModelBase
18
+ attr_accessor :access_token
19
+
20
+ attr_accessor :token_type
21
+
22
+ attr_accessor :expires_in
23
+
24
+ attr_accessor :refresh_token
25
+
26
+ # What was actually granted, which may be narrower than what was asked for.
27
+ attr_accessor :scope
28
+
29
+ # Attribute mapping from ruby-style variable name to JSON key.
30
+ def self.attribute_map
31
+ {
32
+ :'access_token' => :'access_token',
33
+ :'token_type' => :'token_type',
34
+ :'expires_in' => :'expires_in',
35
+ :'refresh_token' => :'refresh_token',
36
+ :'scope' => :'scope'
37
+ }
38
+ end
39
+
40
+ # Returns attribute mapping this model knows about
41
+ def self.acceptable_attribute_map
42
+ attribute_map
43
+ end
44
+
45
+ # Returns all the JSON keys this model knows about
46
+ def self.acceptable_attributes
47
+ acceptable_attribute_map.values
48
+ end
49
+
50
+ # Attribute type mapping.
51
+ def self.openapi_types
52
+ {
53
+ :'access_token' => :'String',
54
+ :'token_type' => :'String',
55
+ :'expires_in' => :'Integer',
56
+ :'refresh_token' => :'String',
57
+ :'scope' => :'String'
58
+ }
59
+ end
60
+
61
+ # List of attributes with nullable: true
62
+ def self.openapi_nullable
63
+ Set.new([
64
+ ])
65
+ end
66
+
67
+ # Initializes the object
68
+ # @param [Hash] attributes Model attributes in the form of hash
69
+ def initialize(attributes = {})
70
+ if (!attributes.is_a?(Hash))
71
+ fail ArgumentError, "The input argument (attributes) must be a hash in `VPNDetection::TokenResponse` initialize method"
72
+ end
73
+
74
+ # check to see if the attribute exists and convert string to symbol for hash key
75
+ acceptable_attribute_map = self.class.acceptable_attribute_map
76
+ attributes = attributes.each_with_object({}) { |(k, v), h|
77
+ if (!acceptable_attribute_map.key?(k.to_sym))
78
+ fail ArgumentError, "`#{k}` is not a valid attribute in `VPNDetection::TokenResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
79
+ end
80
+ h[k.to_sym] = v
81
+ }
82
+
83
+ if attributes.key?(:'access_token')
84
+ self.access_token = attributes[:'access_token']
85
+ else
86
+ self.access_token = nil
87
+ end
88
+
89
+ if attributes.key?(:'token_type')
90
+ self.token_type = attributes[:'token_type']
91
+ else
92
+ self.token_type = nil
93
+ end
94
+
95
+ if attributes.key?(:'expires_in')
96
+ self.expires_in = attributes[:'expires_in']
97
+ else
98
+ self.expires_in = nil
99
+ end
100
+
101
+ if attributes.key?(:'refresh_token')
102
+ self.refresh_token = attributes[:'refresh_token']
103
+ end
104
+
105
+ if attributes.key?(:'scope')
106
+ self.scope = attributes[:'scope']
107
+ end
108
+ end
109
+
110
+ # Show invalid properties with the reasons. Usually used together with valid?
111
+ # @return Array for valid properties with the reasons
112
+ def list_invalid_properties
113
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
114
+ invalid_properties = Array.new
115
+ if @access_token.nil?
116
+ invalid_properties.push('invalid value for "access_token", access_token cannot be nil.')
117
+ end
118
+
119
+ if @token_type.nil?
120
+ invalid_properties.push('invalid value for "token_type", token_type cannot be nil.')
121
+ end
122
+
123
+ if @expires_in.nil?
124
+ invalid_properties.push('invalid value for "expires_in", expires_in cannot be nil.')
125
+ end
126
+
127
+ invalid_properties
128
+ end
129
+
130
+ # Check to see if the all the properties in the model are valid
131
+ # @return true if the model is valid
132
+ def valid?
133
+ warn '[DEPRECATED] the `valid?` method is obsolete'
134
+ return false if @access_token.nil?
135
+ return false if @token_type.nil?
136
+ return false if @expires_in.nil?
137
+ true
138
+ end
139
+
140
+ # Custom attribute writer method with validation
141
+ # @param [Object] access_token Value to be assigned
142
+ def access_token=(access_token)
143
+ if access_token.nil?
144
+ fail ArgumentError, 'access_token cannot be nil'
145
+ end
146
+
147
+ @access_token = access_token
148
+ end
149
+
150
+ # Custom attribute writer method with validation
151
+ # @param [Object] token_type Value to be assigned
152
+ def token_type=(token_type)
153
+ if token_type.nil?
154
+ fail ArgumentError, 'token_type cannot be nil'
155
+ end
156
+
157
+ @token_type = token_type
158
+ end
159
+
160
+ # Custom attribute writer method with validation
161
+ # @param [Object] expires_in Value to be assigned
162
+ def expires_in=(expires_in)
163
+ if expires_in.nil?
164
+ fail ArgumentError, 'expires_in cannot be nil'
165
+ end
166
+
167
+ @expires_in = expires_in
168
+ end
169
+
170
+ # Checks equality by comparing each attribute.
171
+ # @param [Object] Object to be compared
172
+ def ==(o)
173
+ return true if self.equal?(o)
174
+ self.class == o.class &&
175
+ access_token == o.access_token &&
176
+ token_type == o.token_type &&
177
+ expires_in == o.expires_in &&
178
+ refresh_token == o.refresh_token &&
179
+ scope == o.scope
180
+ end
181
+
182
+ # @see the `==` method
183
+ # @param [Object] Object to be compared
184
+ def eql?(o)
185
+ self == o
186
+ end
187
+
188
+ # Calculates hash code according to all attributes.
189
+ # @return [Integer] Hash code
190
+ def hash
191
+ [access_token, token_type, expires_in, refresh_token, scope].hash
192
+ end
193
+
194
+ # Builds the object from hash
195
+ # @param [Hash] attributes Model attributes in the form of hash
196
+ # @return [Object] Returns the model itself
197
+ def self.build_from_hash(attributes)
198
+ return nil unless attributes.is_a?(Hash)
199
+ attributes = attributes.transform_keys(&:to_sym)
200
+ transformed_hash = {}
201
+ openapi_types.each_pair do |key, type|
202
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
203
+ transformed_hash["#{key}"] = nil
204
+ elsif type =~ /\AArray<(.*)>/i
205
+ # check to ensure the input is an array given that the attribute
206
+ # is documented as an array but the input is not
207
+ if attributes[attribute_map[key]].is_a?(Array)
208
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
209
+ end
210
+ elsif !attributes[attribute_map[key]].nil?
211
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
212
+ end
213
+ end
214
+ new(transformed_hash)
215
+ end
216
+
217
+ # Returns the object in the form of hash
218
+ # @return [Hash] Returns the object in the form of hash
219
+ def to_hash
220
+ hash = {}
221
+ self.class.attribute_map.each_pair do |attr, param|
222
+ value = self.send(attr)
223
+ if value.nil?
224
+ is_nullable = self.class.openapi_nullable.include?(attr)
225
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
226
+ end
227
+
228
+ hash[param] = _to_hash(value)
229
+ end
230
+ hash
231
+ end
232
+
233
+ end
234
+
235
+ 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.09.13
6
+ The version of the OpenAPI document: 2026.09.15
7
7
  Contact: support@vpndetection.io
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.25.0
@@ -14,7 +14,7 @@ module VPNDetection
14
14
  # method, which runs each request as it builds it.
15
15
  LOOKUP_PATH = '/{ip}'
16
16
  MYIP_PATH = '/myip'
17
- ACCOUNT_ME_PATH = '/api/v1/account/me'
17
+ ENTITLEMENT_PATH = '/api/v1/entitlement'
18
18
 
19
19
  # The generated Configuration applies EVERY security scheme the spec lists,
20
20
  # so a keyless client would send `Authorization: Bearer `, an empty
@@ -99,19 +99,19 @@ module VPNDetection
99
99
  )
100
100
  end
101
101
 
102
- def account_request
102
+ def entitlement_request
103
103
  build_request(
104
- :GET, ACCOUNT_ME_PATH,
104
+ :GET, ENTITLEMENT_PATH,
105
105
  header_params: { 'Accept' => 'application/json' },
106
106
  auth_names: %w[bearerAuth apiKeyHeader apiKeyQuery],
107
107
  )
108
108
  end
109
109
 
110
- def self.account_result(response)
110
+ def self.entitlement_result(response)
111
111
  raise Error.from_transport(response) if transport_failure?(response)
112
112
  raise Error.from_status(response.code, response.headers, response.body) unless response.success?
113
113
 
114
- AccountMe.build_from_hash(parse_object(response))
114
+ Entitlement.build_from_hash(parse_object(response))
115
115
  end
116
116
 
117
117
  def self.lookup_result(response)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module VPNDetection
4
- VERSION = '4.0.1'
4
+ VERSION = '5.0.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: 4.0.1
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mslm Dev
@@ -49,8 +49,12 @@ files:
49
49
  - README.md
50
50
  - lib/vpndetection.rb
51
51
  - lib/vpndetection/api/account_wire_api.rb
52
+ - lib/vpndetection/api/api_keys_wire_api.rb
53
+ - lib/vpndetection/api/authorization_wire_api.rb
52
54
  - lib/vpndetection/api/database_wire_api.rb
55
+ - lib/vpndetection/api/entitlement_wire_api.rb
53
56
  - lib/vpndetection/api/lookup_wire_api.rb
57
+ - lib/vpndetection/api/organization_wire_api.rb
54
58
  - lib/vpndetection/api_client.rb
55
59
  - lib/vpndetection/api_error.rb
56
60
  - lib/vpndetection/api_model_base.rb
@@ -64,11 +68,16 @@ files:
64
68
  - lib/vpndetection/middleware.rb
65
69
  - lib/vpndetection/middleware/condition.rb
66
70
  - lib/vpndetection/middleware/core.rb
67
- - lib/vpndetection/models/account_apikey.rb
68
- - lib/vpndetection/models/account_error.rb
69
- - lib/vpndetection/models/account_me.rb
70
- - lib/vpndetection/models/account_plan.rb
71
- - lib/vpndetection/models/account_usage.rb
71
+ - lib/vpndetection/models/account_create_apikey_request.rb
72
+ - lib/vpndetection/models/account_created_apikey.rb
73
+ - lib/vpndetection/models/account_org.rb
74
+ - lib/vpndetection/models/account_org_ref.rb
75
+ - lib/vpndetection/models/account_org_wrap.rb
76
+ - lib/vpndetection/models/account_rc.rb
77
+ - lib/vpndetection/models/account_revealed_apikey.rb
78
+ - lib/vpndetection/models/account_user.rb
79
+ - lib/vpndetection/models/apikey_detail.rb
80
+ - lib/vpndetection/models/apikey_list.rb
72
81
  - lib/vpndetection/models/class_detail.rb
73
82
  - lib/vpndetection/models/database.rb
74
83
  - lib/vpndetection/models/database_checksums_response.rb
@@ -79,13 +88,23 @@ files:
79
88
  - lib/vpndetection/models/database_metadata_column.rb
80
89
  - lib/vpndetection/models/database_version.rb
81
90
  - lib/vpndetection/models/db_checksums.rb
91
+ - lib/vpndetection/models/device_authorization.rb
82
92
  - lib/vpndetection/models/download.rb
83
93
  - lib/vpndetection/models/download_list.rb
94
+ - lib/vpndetection/models/entitlement.rb
95
+ - lib/vpndetection/models/entitlement_apikey.rb
96
+ - lib/vpndetection/models/entitlement_error.rb
97
+ - lib/vpndetection/models/entitlement_plan.rb
98
+ - lib/vpndetection/models/entitlement_usage.rb
84
99
  - lib/vpndetection/models/error_envelope.rb
100
+ - lib/vpndetection/models/identity.rb
85
101
  - lib/vpndetection/models/lookup_error.rb
86
102
  - lib/vpndetection/models/lookup_response.rb
103
+ - lib/vpndetection/models/oauth_error.rb
104
+ - lib/vpndetection/models/oauth_metadata.rb
87
105
  - lib/vpndetection/models/proxy_detail.rb
88
106
  - lib/vpndetection/models/standing.rb
107
+ - lib/vpndetection/models/token_response.rb
89
108
  - lib/vpndetection/models/vpn_detail.rb
90
109
  - lib/vpndetection/result.rb
91
110
  - lib/vpndetection/retries.rb