onfido 5.0.0 → 5.1.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: dc79ec450f18e140b4d190ad2d68e2480a4bdacc24818ee605223e3dce3749c0
4
- data.tar.gz: 0abfee9a6b0aec0849a0c98caf001775fb9dfd5fcaa04727bf55411a50e91f1d
3
+ metadata.gz: b50846731ee3d1258557cfbb22b8348d5328af3d2f8b0fba18548e37dc8963ea
4
+ data.tar.gz: efef5ee6be4f2f839764d11e1fb00f23d24e554b1e1c5bbb33ec127fbe603534
5
5
  SHA512:
6
- metadata.gz: ee17ead11fb1487cf688a5f54818e5fbe3d0049090c3c5cd072a4c82225bac2d2e7e482eb6995e0cd3b596afcd90799d1e92905dfd7840ecd619f581bc6f6510
7
- data.tar.gz: c6c2de626f28cd9eb007554753356889a087aa8d911d6ad260429a3fe20b018a5ebd78cae1765f573fbd3e88e801745cec9cd88b4000dd47c0743a231a85da78
6
+ metadata.gz: 7460854cfadcc65b683f1087130da5b23f46c3f1e9e4787b9aa5e82a5b8d394e3bea826fd085b70614d5d591e6ab78eff73365bd615ff8bc6e6e7f9f107d9680
7
+ data.tar.gz: 567a9d3e0e751d042022ea2a41691485a1deedddaf91131f3c599e5390638f0e5155c855f4d58a233a69d0e2f3acd072e0f040d0ff022d0fe326a36034c29192
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## v5.0.0 21st February 2025
4
+
5
+ - Release based on Onfido OpenAPI spec version [v5.0.0](https://github.com/onfido/onfido-openapi-spec/releases/tag/v5.0.0):
6
+ - Denote webhook event payload.object.href as a not required property
7
+ - [CAT-1593] Drop invalid enum value from webhook event type
8
+ - Add applicant_id in GET /workflow_runs
9
+ - [CAT-1694] Define document file type as free text
10
+ - Add missing import in ApiClient
11
+ - [DOCCAP-2513] Add download-nfc-face endpoint
12
+ - [CAT-1719] Don't impose a type on deprecated records property in watchlist reports
13
+ - Remove documents property for reports where it's not applicable
14
+ - Update openapi generator version to v7.10.0 (was v7.9.0)
15
+ - Update openapi generator version to v7.11.0 (was v7.10.0)
16
+ - Add tests for Download NFC Face endpoint
17
+ - [Migration Guide](MIGRATION.md#upgrading-from-4x-to-5x)
18
+
3
19
  ## v4.6.0 24th January 2025
4
20
 
5
21
  - Release based on Onfido OpenAPI spec version [v4.6.0](https://github.com/onfido/onfido-openapi-spec/releases/tag/v4.6.0):
data/README.md CHANGED
@@ -14,13 +14,13 @@ This version uses Onfido API v3.6. Refer to our [API versioning guide](https://d
14
14
  ### Installation
15
15
 
16
16
  ```ruby
17
- gem onfido, '~> 5.0.0'
17
+ gem 'onfido', '~> 5.1.0'
18
18
  ```
19
19
 
20
20
  Configure with your API token, region and optional timeout (default value is 30):
21
21
 
22
22
  ```ruby
23
- require onfido
23
+ require 'onfido'
24
24
 
25
25
  Onfido.configure do |config|
26
26
  config.api_token = ENV["ONFIDO_API_TOKEN"]
@@ -1776,6 +1776,69 @@ module Onfido
1776
1776
  return data, status_code, headers
1777
1777
  end
1778
1778
 
1779
+ # Retrieve Applicant Consents
1780
+ # Retrieves consents for single applicant.
1781
+ # @param applicant_id [String]
1782
+ # @param [Hash] opts the optional parameters
1783
+ # @return [Array<ApplicantConsent>]
1784
+ def find_applicant_consents(applicant_id, opts = {})
1785
+ data, _status_code, _headers = find_applicant_consents_with_http_info(applicant_id, opts)
1786
+ data
1787
+ end
1788
+
1789
+ # Retrieve Applicant Consents
1790
+ # Retrieves consents for single applicant.
1791
+ # @param applicant_id [String]
1792
+ # @param [Hash] opts the optional parameters
1793
+ # @return [Array<(Array<ApplicantConsent>, Integer, Hash)>] Array<ApplicantConsent> data, response status code and response headers
1794
+ def find_applicant_consents_with_http_info(applicant_id, opts = {})
1795
+ if @api_client.config.debugging
1796
+ @api_client.config.logger.debug 'Calling API: DefaultApi.find_applicant_consents ...'
1797
+ end
1798
+ # verify the required parameter 'applicant_id' is set
1799
+ if @api_client.config.client_side_validation && applicant_id.nil?
1800
+ fail ArgumentError, "Missing the required parameter 'applicant_id' when calling DefaultApi.find_applicant_consents"
1801
+ end
1802
+ # resource path
1803
+ local_var_path = '/applicants/{applicant_id}/consents'.sub('{' + 'applicant_id' + '}', CGI.escape(applicant_id.to_s))
1804
+
1805
+ # query parameters
1806
+ query_params = opts[:query_params] || {}
1807
+
1808
+ # header parameters
1809
+ header_params = opts[:header_params] || {}
1810
+ # HTTP header 'Accept' (if needed)
1811
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1812
+
1813
+ # form parameters
1814
+ form_params = opts[:form_params] || {}
1815
+
1816
+ # http body (model)
1817
+ post_body = opts[:debug_body]
1818
+
1819
+ # return_type
1820
+ return_type = opts[:debug_return_type] || 'Array<ApplicantConsent>'
1821
+
1822
+ # auth_names
1823
+ auth_names = opts[:debug_auth_names] || ['Token']
1824
+
1825
+ new_options = opts.merge(
1826
+ :operation => :"DefaultApi.find_applicant_consents",
1827
+ :header_params => header_params,
1828
+ :query_params => query_params,
1829
+ :form_params => form_params,
1830
+ :body => post_body,
1831
+ :auth_names => auth_names,
1832
+ :return_type => return_type
1833
+ )
1834
+
1835
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1836
+ if @api_client.config.debugging
1837
+ @api_client.config.logger.debug "API called: DefaultApi#find_applicant_consents\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1838
+ end
1839
+ return data, status_code, headers
1840
+ end
1841
+
1779
1842
  # Retrieve a Check
1780
1843
  # Retrieves a single check. Returns a check object.
1781
1844
  # @param check_id [String]
@@ -35,7 +35,7 @@ module Onfido
35
35
  # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
36
36
  def initialize(config = Configuration.default)
37
37
  @config = config
38
- @user_agent = "onfido-ruby/5.0.0"
38
+ @user_agent = "onfido-ruby/5.1.0"
39
39
  @default_headers = {
40
40
  'Content-Type' => 'application/json',
41
41
  'User-Agent' => @user_agent
@@ -0,0 +1,272 @@
1
+ =begin
2
+ #Onfido API v3.6
3
+
4
+ #The Onfido API (v3.6)
5
+
6
+ The version of the OpenAPI document: v3.6
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.11.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Onfido
17
+ class ApplicantConsent
18
+ attr_accessor :name
19
+
20
+ attr_accessor :granted
21
+
22
+ # The date and time when this applicant consent was granted, if not granted the value is nil.
23
+ attr_accessor :granted_at
24
+
25
+ class EnumAttributeValidator
26
+ attr_reader :datatype
27
+ attr_reader :allowable_values
28
+
29
+ def initialize(datatype, allowable_values)
30
+ @allowable_values = allowable_values.map do |value|
31
+ case datatype.to_s
32
+ when /Integer/i
33
+ value.to_i
34
+ when /Float/i
35
+ value.to_f
36
+ else
37
+ value
38
+ end
39
+ end
40
+ end
41
+
42
+ def valid?(value)
43
+ !value || allowable_values.include?(value)
44
+ end
45
+ end
46
+
47
+ # Attribute mapping from ruby-style variable name to JSON key.
48
+ def self.attribute_map
49
+ {
50
+ :'name' => :'name',
51
+ :'granted' => :'granted',
52
+ :'granted_at' => :'granted_at'
53
+ }
54
+ end
55
+
56
+ # Returns all the JSON keys this model knows about
57
+ def self.acceptable_attributes
58
+ attribute_map.values
59
+ end
60
+
61
+ # Attribute type mapping.
62
+ def self.openapi_types
63
+ {
64
+ :'name' => :'ApplicantConsentName',
65
+ :'granted' => :'Boolean',
66
+ :'granted_at' => :'Time'
67
+ }
68
+ end
69
+
70
+ # List of attributes with nullable: true
71
+ def self.openapi_nullable
72
+ Set.new([
73
+ :'granted_at'
74
+ ])
75
+ end
76
+
77
+ # Initializes the object
78
+ # @param [Hash] attributes Model attributes in the form of hash
79
+ def initialize(attributes = {})
80
+ if (!attributes.is_a?(Hash))
81
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Onfido::ApplicantConsent` initialize method"
82
+ end
83
+
84
+ # check to see if the attribute exists and convert string to symbol for hash key
85
+ attributes = attributes.each_with_object({}) { |(k, v), h|
86
+ if (!self.class.attribute_map.key?(k.to_sym))
87
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Onfido::ApplicantConsent`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
88
+ end
89
+ h[k.to_sym] = v
90
+ }
91
+
92
+ if attributes.key?(:'name')
93
+ self.name = attributes[:'name']
94
+ else
95
+ self.name = nil
96
+ end
97
+
98
+ if attributes.key?(:'granted')
99
+ self.granted = attributes[:'granted']
100
+ else
101
+ self.granted = nil
102
+ end
103
+
104
+ if attributes.key?(:'granted_at')
105
+ self.granted_at = attributes[:'granted_at']
106
+ else
107
+ self.granted_at = nil
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
+ if @name.nil?
117
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
118
+ end
119
+
120
+ if @granted.nil?
121
+ invalid_properties.push('invalid value for "granted", granted cannot be nil.')
122
+ end
123
+
124
+ invalid_properties
125
+ end
126
+
127
+ # Check to see if the all the properties in the model are valid
128
+ # @return true if the model is valid
129
+ def valid?
130
+ warn '[DEPRECATED] the `valid?` method is obsolete'
131
+ return false if @name.nil?
132
+ return false if @granted.nil?
133
+ true
134
+ end
135
+
136
+ # Checks equality by comparing each attribute.
137
+ # @param [Object] Object to be compared
138
+ def ==(o)
139
+ return true if self.equal?(o)
140
+ self.class == o.class &&
141
+ name == o.name &&
142
+ granted == o.granted &&
143
+ granted_at == o.granted_at
144
+ end
145
+
146
+ # @see the `==` method
147
+ # @param [Object] Object to be compared
148
+ def eql?(o)
149
+ self == o
150
+ end
151
+
152
+ # Calculates hash code according to all attributes.
153
+ # @return [Integer] Hash code
154
+ def hash
155
+ [name, granted, granted_at].hash
156
+ end
157
+
158
+ # Builds the object from hash
159
+ # @param [Hash] attributes Model attributes in the form of hash
160
+ # @return [Object] Returns the model itself
161
+ def self.build_from_hash(attributes)
162
+ return nil unless attributes.is_a?(Hash)
163
+ attributes = attributes.transform_keys(&:to_sym)
164
+ transformed_hash = {}
165
+ openapi_types.each_pair do |key, type|
166
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
167
+ transformed_hash["#{key}"] = nil
168
+ elsif type =~ /\AArray<(.*)>/i
169
+ # check to ensure the input is an array given that the attribute
170
+ # is documented as an array but the input is not
171
+ if attributes[attribute_map[key]].is_a?(Array)
172
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
173
+ end
174
+ elsif !attributes[attribute_map[key]].nil?
175
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
176
+ end
177
+ end
178
+ new(transformed_hash)
179
+ end
180
+
181
+ # Deserializes the data based on type
182
+ # @param string type Data type
183
+ # @param string value Value to be deserialized
184
+ # @return [Object] Deserialized data
185
+ def self._deserialize(type, value)
186
+ case type.to_sym
187
+ when :Time
188
+ Time.parse(value)
189
+ when :Date
190
+ Date.parse(value)
191
+ when :String
192
+ value.to_s
193
+ when :Integer
194
+ value.to_i
195
+ when :Float
196
+ value.to_f
197
+ when :Boolean
198
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
199
+ true
200
+ else
201
+ false
202
+ end
203
+ when :Object
204
+ # generic object (usually a Hash), return directly
205
+ value
206
+ when /\AArray<(?<inner_type>.+)>\z/
207
+ inner_type = Regexp.last_match[:inner_type]
208
+ value.map { |v| _deserialize(inner_type, v) }
209
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
210
+ k_type = Regexp.last_match[:k_type]
211
+ v_type = Regexp.last_match[:v_type]
212
+ {}.tap do |hash|
213
+ value.each do |k, v|
214
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
215
+ end
216
+ end
217
+ else # model
218
+ # models (e.g. Pet) or oneOf
219
+ klass = Onfido.const_get(type)
220
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
221
+ end
222
+ end
223
+
224
+ # Returns the string representation of the object
225
+ # @return [String] String presentation of the object
226
+ def to_s
227
+ to_hash.to_s
228
+ end
229
+
230
+ # to_body is an alias to to_hash (backward compatibility)
231
+ # @return [Hash] Returns the object in the form of hash
232
+ def to_body
233
+ to_hash
234
+ end
235
+
236
+ # Returns the object in the form of hash
237
+ # @return [Hash] Returns the object in the form of hash
238
+ def to_hash
239
+ hash = {}
240
+ self.class.attribute_map.each_pair do |attr, param|
241
+ value = self.send(attr)
242
+ if value.nil?
243
+ is_nullable = self.class.openapi_nullable.include?(attr)
244
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
245
+ end
246
+
247
+ hash[param] = _to_hash(value)
248
+ end
249
+ hash
250
+ end
251
+
252
+ # Outputs non-array value in the form of hash
253
+ # For object, use to_hash. Otherwise, just return the value
254
+ # @param [Object] value Any valid value
255
+ # @return [Hash] Returns the value in the form of hash
256
+ def _to_hash(value)
257
+ if value.is_a?(Array)
258
+ value.compact.map { |v| _to_hash(v) }
259
+ elsif value.is_a?(Hash)
260
+ {}.tap do |hash|
261
+ value.each { |k, v| hash[k] = _to_hash(v) }
262
+ end
263
+ elsif value.respond_to? :to_hash
264
+ value.to_hash
265
+ else
266
+ value
267
+ end
268
+ end
269
+
270
+ end
271
+
272
+ end
@@ -15,6 +15,8 @@ require 'time'
15
15
 
16
16
  module Onfido
17
17
  class DeviceIntelligenceBreakdown
18
+ attr_accessor :device
19
+
18
20
  attr_accessor :breakdown
19
21
 
20
22
  attr_accessor :properties
@@ -22,6 +24,7 @@ module Onfido
22
24
  # Attribute mapping from ruby-style variable name to JSON key.
23
25
  def self.attribute_map
24
26
  {
27
+ :'device' => :'device',
25
28
  :'breakdown' => :'breakdown',
26
29
  :'properties' => :'properties'
27
30
  }
@@ -35,6 +38,7 @@ module Onfido
35
38
  # Attribute type mapping.
36
39
  def self.openapi_types
37
40
  {
41
+ :'device' => :'DeviceIntelligenceBreakdownDevice',
38
42
  :'breakdown' => :'DeviceIntelligenceBreakdownBreakdown',
39
43
  :'properties' => :'DeviceIntelligenceBreakdownProperties'
40
44
  }
@@ -61,6 +65,10 @@ module Onfido
61
65
  h[k.to_sym] = v
62
66
  }
63
67
 
68
+ if attributes.key?(:'device')
69
+ self.device = attributes[:'device']
70
+ end
71
+
64
72
  if attributes.key?(:'breakdown')
65
73
  self.breakdown = attributes[:'breakdown']
66
74
  end
@@ -90,6 +98,7 @@ module Onfido
90
98
  def ==(o)
91
99
  return true if self.equal?(o)
92
100
  self.class == o.class &&
101
+ device == o.device &&
93
102
  breakdown == o.breakdown &&
94
103
  properties == o.properties
95
104
  end
@@ -103,7 +112,7 @@ module Onfido
103
112
  # Calculates hash code according to all attributes.
104
113
  # @return [Integer] Hash code
105
114
  def hash
106
- [breakdown, properties].hash
115
+ [device, breakdown, properties].hash
107
116
  end
108
117
 
109
118
  # Builds the object from hash
@@ -32,7 +32,7 @@ module Onfido
32
32
  # Attribute type mapping.
33
33
  def self.openapi_types
34
34
  {
35
- :'device' => :'DeviceIntelligenceBreakdownBreakdownDevice'
35
+ :'device' => :'DeviceIntelligenceBreakdownDevice'
36
36
  }
37
37
  end
38
38
 
@@ -15,7 +15,7 @@ require 'time'
15
15
 
16
16
  module Onfido
17
17
  # Asserts whether the device used to upload the media is trustworthy, i.e. it is a real, physical device.
18
- class DeviceIntelligenceBreakdownBreakdownDevice
18
+ class DeviceIntelligenceBreakdownDevice
19
19
  attr_accessor :breakdown
20
20
 
21
21
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -33,7 +33,7 @@ module Onfido
33
33
  # Attribute type mapping.
34
34
  def self.openapi_types
35
35
  {
36
- :'breakdown' => :'DeviceIntelligenceBreakdownBreakdownDeviceBreakdown'
36
+ :'breakdown' => :'DeviceIntelligenceBreakdownDeviceBreakdown'
37
37
  }
38
38
  end
39
39
 
@@ -47,13 +47,13 @@ module Onfido
47
47
  # @param [Hash] attributes Model attributes in the form of hash
48
48
  def initialize(attributes = {})
49
49
  if (!attributes.is_a?(Hash))
50
- fail ArgumentError, "The input argument (attributes) must be a hash in `Onfido::DeviceIntelligenceBreakdownBreakdownDevice` initialize method"
50
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Onfido::DeviceIntelligenceBreakdownDevice` initialize method"
51
51
  end
52
52
 
53
53
  # check to see if the attribute exists and convert string to symbol for hash key
54
54
  attributes = attributes.each_with_object({}) { |(k, v), h|
55
55
  if (!self.class.attribute_map.key?(k.to_sym))
56
- fail ArgumentError, "`#{k}` is not a valid attribute in `Onfido::DeviceIntelligenceBreakdownBreakdownDevice`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
56
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Onfido::DeviceIntelligenceBreakdownDevice`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
57
57
  end
58
58
  h[k.to_sym] = v
59
59
  }
@@ -14,7 +14,7 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Onfido
17
- class DeviceIntelligenceBreakdownBreakdownDeviceBreakdown
17
+ class DeviceIntelligenceBreakdownDeviceBreakdown
18
18
  attr_accessor :application_authenticity
19
19
 
20
20
  attr_accessor :device_integrity
@@ -54,13 +54,13 @@ module Onfido
54
54
  # @param [Hash] attributes Model attributes in the form of hash
55
55
  def initialize(attributes = {})
56
56
  if (!attributes.is_a?(Hash))
57
- fail ArgumentError, "The input argument (attributes) must be a hash in `Onfido::DeviceIntelligenceBreakdownBreakdownDeviceBreakdown` initialize method"
57
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Onfido::DeviceIntelligenceBreakdownDeviceBreakdown` initialize method"
58
58
  end
59
59
 
60
60
  # check to see if the attribute exists and convert string to symbol for hash key
61
61
  attributes = attributes.each_with_object({}) { |(k, v), h|
62
62
  if (!self.class.attribute_map.key?(k.to_sym))
63
- fail ArgumentError, "`#{k}` is not a valid attribute in `Onfido::DeviceIntelligenceBreakdownBreakdownDeviceBreakdown`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
63
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Onfido::DeviceIntelligenceBreakdownDeviceBreakdown`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
64
64
  end
65
65
  h[k.to_sym] = v
66
66
  }
@@ -117,7 +117,7 @@ module Onfido
117
117
  :'randomized_device' => :'Boolean',
118
118
  :'fake_network_request' => :'Boolean',
119
119
  :'ip_reputation' => :'String',
120
- :'device_fingerprint_reuse' => :'Integer',
120
+ :'device_fingerprint_reuse' => :'Float',
121
121
  :'single_device_used' => :'Boolean',
122
122
  :'document_capture' => :'String',
123
123
  :'biometric_capture' => :'String'