ory-kratos-client 0.5.4.alpha1 → 0.5.5.alpha2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -7
  3. data/docs/AdminApi.md +382 -143
  4. data/docs/CompleteSelfServiceLoginFlowWithPasswordMethod.md +12 -11
  5. data/docs/CompleteSelfServiceRecoveryFlowWithLinkMethod.md +10 -9
  6. data/docs/CompleteSelfServiceSettingsFlowWithPasswordMethod.md +10 -9
  7. data/docs/CompleteSelfServiceVerificationFlowWithLinkMethod.md +10 -9
  8. data/docs/CreateIdentity.md +10 -9
  9. data/docs/CreateRecoveryLink.md +10 -9
  10. data/docs/ErrorContainer.md +10 -9
  11. data/docs/FormField.md +20 -19
  12. data/docs/GenericError.md +8 -7
  13. data/docs/GenericErrorPayload.md +20 -19
  14. data/docs/HealthApi.md +50 -15
  15. data/docs/HealthNotReadyStatus.md +8 -7
  16. data/docs/HealthStatus.md +8 -7
  17. data/docs/Identity.md +18 -17
  18. data/docs/LoginFlow.md +24 -23
  19. data/docs/LoginFlowMethod.md +10 -9
  20. data/docs/LoginFlowMethodConfig.md +16 -15
  21. data/docs/LoginViaApiResponse.md +10 -9
  22. data/docs/Message.md +14 -13
  23. data/docs/PublicApi.md +707 -237
  24. data/docs/RecoveryAddress.md +12 -11
  25. data/docs/RecoveryFlow.md +24 -23
  26. data/docs/RecoveryFlowMethod.md +10 -9
  27. data/docs/RecoveryFlowMethodConfig.md +14 -13
  28. data/docs/RecoveryLink.md +10 -9
  29. data/docs/RegistrationFlow.md +22 -21
  30. data/docs/RegistrationFlowMethod.md +10 -9
  31. data/docs/RegistrationFlowMethodConfig.md +16 -15
  32. data/docs/RegistrationViaApiResponse.md +12 -11
  33. data/docs/RevokeSession.md +8 -7
  34. data/docs/Session.md +18 -17
  35. data/docs/SettingsFlow.md +26 -25
  36. data/docs/SettingsFlowMethod.md +10 -9
  37. data/docs/SettingsFlowMethodConfig.md +14 -13
  38. data/docs/SettingsViaApiResponse.md +10 -9
  39. data/docs/UpdateIdentity.md +10 -9
  40. data/docs/VerifiableAddress.md +18 -17
  41. data/docs/VerificationFlow.md +24 -23
  42. data/docs/VerificationFlowMethod.md +10 -9
  43. data/docs/VerificationFlowMethodConfig.md +14 -13
  44. data/docs/Version.md +8 -7
  45. data/docs/VersionApi.md +26 -9
  46. data/lib/ory-kratos-client.rb +2 -2
  47. data/lib/ory-kratos-client/api/admin_api.rb +58 -44
  48. data/lib/ory-kratos-client/api/health_api.rb +10 -8
  49. data/lib/ory-kratos-client/api/public_api.rb +113 -86
  50. data/lib/ory-kratos-client/api/version_api.rb +6 -5
  51. data/lib/ory-kratos-client/api_client.rb +50 -48
  52. data/lib/ory-kratos-client/api_error.rb +2 -2
  53. data/lib/ory-kratos-client/configuration.rb +34 -7
  54. data/lib/ory-kratos-client/models/complete_self_service_login_flow_with_password_method.rb +20 -8
  55. data/lib/ory-kratos-client/models/complete_self_service_recovery_flow_with_link_method.rb +20 -8
  56. data/lib/ory-kratos-client/models/complete_self_service_settings_flow_with_password_method.rb +20 -8
  57. data/lib/ory-kratos-client/models/complete_self_service_verification_flow_with_link_method.rb +20 -8
  58. data/lib/ory-kratos-client/models/create_identity.rb +20 -8
  59. data/lib/ory-kratos-client/models/create_recovery_link.rb +20 -8
  60. data/lib/ory-kratos-client/models/error_container.rb +20 -8
  61. data/lib/ory-kratos-client/models/form_field.rb +20 -8
  62. data/lib/ory-kratos-client/models/generic_error.rb +20 -8
  63. data/lib/ory-kratos-client/models/generic_error_payload.rb +20 -8
  64. data/lib/ory-kratos-client/models/health_not_ready_status.rb +20 -8
  65. data/lib/ory-kratos-client/models/health_status.rb +20 -8
  66. data/lib/ory-kratos-client/models/identity.rb +20 -8
  67. data/lib/ory-kratos-client/models/login_flow.rb +22 -10
  68. data/lib/ory-kratos-client/models/login_flow_method.rb +20 -8
  69. data/lib/ory-kratos-client/models/login_flow_method_config.rb +20 -8
  70. data/lib/ory-kratos-client/models/login_via_api_response.rb +20 -8
  71. data/lib/ory-kratos-client/models/message.rb +20 -8
  72. data/lib/ory-kratos-client/models/recovery_address.rb +20 -8
  73. data/lib/ory-kratos-client/models/recovery_flow.rb +22 -10
  74. data/lib/ory-kratos-client/models/recovery_flow_method.rb +20 -8
  75. data/lib/ory-kratos-client/models/recovery_flow_method_config.rb +20 -8
  76. data/lib/ory-kratos-client/models/recovery_link.rb +21 -9
  77. data/lib/ory-kratos-client/models/registration_flow.rb +22 -10
  78. data/lib/ory-kratos-client/models/registration_flow_method.rb +20 -8
  79. data/lib/ory-kratos-client/models/registration_flow_method_config.rb +20 -8
  80. data/lib/ory-kratos-client/models/registration_via_api_response.rb +20 -8
  81. data/lib/ory-kratos-client/models/revoke_session.rb +20 -8
  82. data/lib/ory-kratos-client/models/session.rb +23 -11
  83. data/lib/ory-kratos-client/models/settings_flow.rb +22 -10
  84. data/lib/ory-kratos-client/models/settings_flow_method.rb +20 -8
  85. data/lib/ory-kratos-client/models/settings_flow_method_config.rb +20 -8
  86. data/lib/ory-kratos-client/models/settings_via_api_response.rb +20 -8
  87. data/lib/ory-kratos-client/models/update_identity.rb +20 -8
  88. data/lib/ory-kratos-client/models/verifiable_address.rb +21 -9
  89. data/lib/ory-kratos-client/models/verification_flow.rb +22 -10
  90. data/lib/ory-kratos-client/models/verification_flow_method.rb +20 -8
  91. data/lib/ory-kratos-client/models/verification_flow_method_config.rb +20 -8
  92. data/lib/ory-kratos-client/models/version.rb +20 -8
  93. data/lib/ory-kratos-client/version.rb +3 -3
  94. data/ory-kratos-client.gemspec +4 -5
  95. data/spec/api_client_spec.rb +3 -3
  96. data/spec/configuration_spec.rb +2 -2
  97. data/spec/spec_helper.rb +2 -2
  98. metadata +48 -68
@@ -3,10 +3,10 @@
3
3
 
4
4
  #Welcome to the ORY Kratos HTTP API documentation!
5
5
 
6
- The version of the OpenAPI document: v0.5.4-alpha.1
6
+ The version of the OpenAPI document: v0.5.5-alpha.2
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ OpenAPI Generator version: 5.0.0
10
10
 
11
11
  =end
12
12
 
@@ -51,15 +51,16 @@ module OryHydraClient
51
51
  form_params = opts[:form_params] || {}
52
52
 
53
53
  # http body (model)
54
- post_body = opts[:body]
54
+ post_body = opts[:debug_body]
55
55
 
56
56
  # return_type
57
- return_type = opts[:return_type] || 'Version'
57
+ return_type = opts[:debug_return_type] || 'Version'
58
58
 
59
59
  # auth_names
60
- auth_names = opts[:auth_names] || []
60
+ auth_names = opts[:debug_auth_names] || []
61
61
 
62
62
  new_options = opts.merge(
63
+ :operation => :"VersionApi.get_version",
63
64
  :header_params => header_params,
64
65
  :query_params => query_params,
65
66
  :form_params => form_params,
@@ -3,10 +3,10 @@
3
3
 
4
4
  #Welcome to the ORY Kratos HTTP API documentation!
5
5
 
6
- The version of the OpenAPI document: v0.5.4-alpha.1
6
+ The version of the OpenAPI document: v0.5.5-alpha.2
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ OpenAPI Generator version: 5.0.0
10
10
 
11
11
  =end
12
12
 
@@ -14,6 +14,7 @@ require 'date'
14
14
  require 'json'
15
15
  require 'logger'
16
16
  require 'tempfile'
17
+ require 'time'
17
18
  require 'typhoeus'
18
19
 
19
20
  module OryHydraClient
@@ -86,7 +87,7 @@ module OryHydraClient
86
87
  # @option opts [Object] :body HTTP body (JSON/XML)
87
88
  # @return [Typhoeus::Request] A Typhoeus Request
88
89
  def build_request(http_method, path, opts = {})
89
- url = build_request_url(path)
90
+ url = build_request_url(path, opts)
90
91
  http_method = http_method.to_sym.downcase
91
92
 
92
93
  header_params = @default_headers.merge(opts[:header_params] || {})
@@ -155,6 +156,44 @@ module OryHydraClient
155
156
  data
156
157
  end
157
158
 
159
+ # Save response body into a file in (the defined) temporary folder, using the filename
160
+ # from the "Content-Disposition" header if provided, otherwise a random filename.
161
+ # The response body is written to the file in chunks in order to handle files which
162
+ # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
163
+ # process can use.
164
+ #
165
+ # @see Configuration#temp_folder_path
166
+ def download_file(request)
167
+ tempfile = nil
168
+ encoding = nil
169
+ request.on_headers do |response|
170
+ content_disposition = response.headers['Content-Disposition']
171
+ if content_disposition && content_disposition =~ /filename=/i
172
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
173
+ prefix = sanitize_filename(filename)
174
+ else
175
+ prefix = 'download-'
176
+ end
177
+ prefix = prefix + '-' unless prefix.end_with?('-')
178
+ encoding = response.body.encoding
179
+ tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
180
+ @tempfile = tempfile
181
+ end
182
+ request.on_body do |chunk|
183
+ chunk.force_encoding(encoding)
184
+ tempfile.write(chunk)
185
+ end
186
+ request.on_complete do |response|
187
+ if tempfile
188
+ tempfile.close
189
+ @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
190
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
191
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
192
+ "explicitly with `tempfile.delete`"
193
+ end
194
+ end
195
+ end
196
+
158
197
  # Check if the given MIME is a JSON MIME.
159
198
  # JSON MIME examples:
160
199
  # application/json
@@ -191,7 +230,7 @@ module OryHydraClient
191
230
  begin
192
231
  data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
193
232
  rescue JSON::ParserError => e
194
- if %w(String Date DateTime).include?(return_type)
233
+ if %w(String Date Time).include?(return_type)
195
234
  data = body
196
235
  else
197
236
  raise e
@@ -216,9 +255,9 @@ module OryHydraClient
216
255
  data.to_f
217
256
  when 'Boolean'
218
257
  data == true
219
- when 'DateTime'
258
+ when 'Time'
220
259
  # parse date time (expecting ISO 8601 format)
221
- DateTime.parse data
260
+ Time.parse data
222
261
  when 'Date'
223
262
  # parse date time (expecting ISO 8601 format)
224
263
  Date.parse data
@@ -236,46 +275,9 @@ module OryHydraClient
236
275
  data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
237
276
  end
238
277
  else
239
- # models, e.g. Pet
240
- OryHydraClient.const_get(return_type).build_from_hash(data)
241
- end
242
- end
243
-
244
- # Save response body into a file in (the defined) temporary folder, using the filename
245
- # from the "Content-Disposition" header if provided, otherwise a random filename.
246
- # The response body is written to the file in chunks in order to handle files which
247
- # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
248
- # process can use.
249
- #
250
- # @see Configuration#temp_folder_path
251
- def download_file(request)
252
- tempfile = nil
253
- encoding = nil
254
- request.on_headers do |response|
255
- content_disposition = response.headers['Content-Disposition']
256
- if content_disposition && content_disposition =~ /filename=/i
257
- filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
258
- prefix = sanitize_filename(filename)
259
- else
260
- prefix = 'download-'
261
- end
262
- prefix = prefix + '-' unless prefix.end_with?('-')
263
- encoding = response.body.encoding
264
- tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
265
- @tempfile = tempfile
266
- end
267
- request.on_body do |chunk|
268
- chunk.force_encoding(encoding)
269
- tempfile.write(chunk)
270
- end
271
- request.on_complete do |response|
272
- if tempfile
273
- tempfile.close
274
- @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
275
- "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
276
- "will be deleted automatically with GC. It's also recommended to delete the temp file "\
277
- "explicitly with `tempfile.delete`"
278
- end
278
+ # models (e.g. Pet) or oneOf
279
+ klass = OryHydraClient.const_get(return_type)
280
+ klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
279
281
  end
280
282
  end
281
283
 
@@ -288,10 +290,10 @@ module OryHydraClient
288
290
  filename.gsub(/.*[\/\\]/, '')
289
291
  end
290
292
 
291
- def build_request_url(path)
293
+ def build_request_url(path, opts = {})
292
294
  # Add leading and trailing slashes to path
293
295
  path = "/#{path}".gsub(/\/+/, '/')
294
- @config.base_url + path
296
+ @config.base_url(opts[:operation]) + path
295
297
  end
296
298
 
297
299
  # Update hearder and query params based on authentication settings.
@@ -3,10 +3,10 @@
3
3
 
4
4
  #Welcome to the ORY Kratos HTTP API documentation!
5
5
 
6
- The version of the OpenAPI document: v0.5.4-alpha.1
6
+ The version of the OpenAPI document: v0.5.5-alpha.2
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ OpenAPI Generator version: 5.0.0
10
10
 
11
11
  =end
12
12
 
@@ -3,10 +3,10 @@
3
3
 
4
4
  #Welcome to the ORY Kratos HTTP API documentation!
5
5
 
6
- The version of the OpenAPI document: v0.5.4-alpha.1
6
+ The version of the OpenAPI document: v0.5.5-alpha.2
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ OpenAPI Generator version: 5.0.0
10
10
 
11
11
  =end
12
12
 
@@ -21,6 +21,18 @@ module OryHydraClient
21
21
  # Defines url base path
22
22
  attr_accessor :base_path
23
23
 
24
+ # Define server configuration index
25
+ attr_accessor :server_index
26
+
27
+ # Define server operation configuration index
28
+ attr_accessor :server_operation_index
29
+
30
+ # Default server variables
31
+ attr_accessor :server_variables
32
+
33
+ # Default server operation variables
34
+ attr_accessor :server_operation_variables
35
+
24
36
  # Defines API keys used with API Key authentications.
25
37
  #
26
38
  # @return [Hash] key: parameter name, value: parameter value (API key)
@@ -129,6 +141,10 @@ module OryHydraClient
129
141
  @scheme = 'http'
130
142
  @host = 'localhost'
131
143
  @base_path = ''
144
+ @server_index = 0
145
+ @server_operation_index = {}
146
+ @server_variables = {}
147
+ @server_operation_variables = {}
132
148
  @api_key = {}
133
149
  @api_key_prefix = {}
134
150
  @timeout = 0
@@ -171,8 +187,12 @@ module OryHydraClient
171
187
  @base_path = '' if @base_path == '/'
172
188
  end
173
189
 
174
- def base_url
175
- "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '')
190
+ # Returns base URL for specified operation based on server settings
191
+ def base_url(operation = nil)
192
+ index = server_operation_index.fetch(operation, server_index)
193
+ return "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') if index == nil
194
+
195
+ server_url(index, server_operation_variables.fetch(operation, server_variables), operation_server_settings[operation])
176
196
  end
177
197
 
178
198
  # Gets API key (with prefix if set).
@@ -213,12 +233,17 @@ module OryHydraClient
213
233
  ]
214
234
  end
215
235
 
236
+ def operation_server_settings
237
+ {
238
+ }
239
+ end
240
+
216
241
  # Returns URL based on server settings
217
242
  #
218
243
  # @param index array index of the server settings
219
244
  # @param variables hash of variable and the corresponding value
220
- def server_url(index, variables = {})
221
- servers = server_settings
245
+ def server_url(index, variables = {}, servers = nil)
246
+ servers = server_settings if servers == nil
222
247
 
223
248
  # check array index out of bound
224
249
  if (index < 0 || index >= servers.size)
@@ -228,10 +253,12 @@ module OryHydraClient
228
253
  server = servers[index]
229
254
  url = server[:url]
230
255
 
256
+ return url unless server.key? :variables
257
+
231
258
  # go through variable and assign a value
232
259
  server[:variables].each do |name, variable|
233
260
  if variables.key?(name)
234
- if (server[:variables][name][:enum_values].include? variables[name])
261
+ if (!server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name]))
235
262
  url.gsub! "{" + name.to_s + "}", variables[name]
236
263
  else
237
264
  fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
@@ -3,14 +3,15 @@
3
3
 
4
4
  #Welcome to the ORY Kratos HTTP API documentation!
5
5
 
6
- The version of the OpenAPI document: v0.5.4-alpha.1
6
+ The version of the OpenAPI document: v0.5.5-alpha.2
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ OpenAPI Generator version: 5.0.0
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
+ require 'time'
14
15
 
15
16
  module OryHydraClient
16
17
  class CompleteSelfServiceLoginFlowWithPasswordMethod
@@ -32,6 +33,11 @@ module OryHydraClient
32
33
  }
33
34
  end
34
35
 
36
+ # Returns all the JSON keys this model knows about
37
+ def self.acceptable_attributes
38
+ attribute_map.values
39
+ end
40
+
35
41
  # Attribute type mapping.
36
42
  def self.openapi_types
37
43
  {
@@ -123,7 +129,9 @@ module OryHydraClient
123
129
  def build_from_hash(attributes)
124
130
  return nil unless attributes.is_a?(Hash)
125
131
  self.class.openapi_types.each_pair do |key, type|
126
- if type =~ /\AArray<(.*)>/i
132
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
133
+ self.send("#{key}=", nil)
134
+ elsif type =~ /\AArray<(.*)>/i
127
135
  # check to ensure the input is an array given that the attribute
128
136
  # is documented as an array but the input is not
129
137
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -131,7 +139,7 @@ module OryHydraClient
131
139
  end
132
140
  elsif !attributes[self.class.attribute_map[key]].nil?
133
141
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
134
- end # or else data not found in attributes(hash), not an issue as the data can be optional
142
+ end
135
143
  end
136
144
 
137
145
  self
@@ -143,8 +151,8 @@ module OryHydraClient
143
151
  # @return [Object] Deserialized data
144
152
  def _deserialize(type, value)
145
153
  case type.to_sym
146
- when :DateTime
147
- DateTime.parse(value)
154
+ when :Time
155
+ Time.parse(value)
148
156
  when :Date
149
157
  Date.parse(value)
150
158
  when :String
@@ -174,7 +182,9 @@ module OryHydraClient
174
182
  end
175
183
  end
176
184
  else # model
177
- OryHydraClient.const_get(type).build_from_hash(value)
185
+ # models (e.g. Pet) or oneOf
186
+ klass = OryHydraClient.const_get(type)
187
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
178
188
  end
179
189
  end
180
190
 
@@ -200,7 +210,7 @@ module OryHydraClient
200
210
  is_nullable = self.class.openapi_nullable.include?(attr)
201
211
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
202
212
  end
203
-
213
+
204
214
  hash[param] = _to_hash(value)
205
215
  end
206
216
  hash
@@ -223,5 +233,7 @@ module OryHydraClient
223
233
  value
224
234
  end
225
235
  end
236
+
226
237
  end
238
+
227
239
  end
@@ -3,14 +3,15 @@
3
3
 
4
4
  #Welcome to the ORY Kratos HTTP API documentation!
5
5
 
6
- The version of the OpenAPI document: v0.5.4-alpha.1
6
+ The version of the OpenAPI document: v0.5.5-alpha.2
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ OpenAPI Generator version: 5.0.0
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
+ require 'time'
14
15
 
15
16
  module OryHydraClient
16
17
  class CompleteSelfServiceRecoveryFlowWithLinkMethod
@@ -28,6 +29,11 @@ module OryHydraClient
28
29
  }
29
30
  end
30
31
 
32
+ # Returns all the JSON keys this model knows about
33
+ def self.acceptable_attributes
34
+ attribute_map.values
35
+ end
36
+
31
37
  # Attribute type mapping.
32
38
  def self.openapi_types
33
39
  {
@@ -113,7 +119,9 @@ module OryHydraClient
113
119
  def build_from_hash(attributes)
114
120
  return nil unless attributes.is_a?(Hash)
115
121
  self.class.openapi_types.each_pair do |key, type|
116
- if type =~ /\AArray<(.*)>/i
122
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
123
+ self.send("#{key}=", nil)
124
+ elsif type =~ /\AArray<(.*)>/i
117
125
  # check to ensure the input is an array given that the attribute
118
126
  # is documented as an array but the input is not
119
127
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -121,7 +129,7 @@ module OryHydraClient
121
129
  end
122
130
  elsif !attributes[self.class.attribute_map[key]].nil?
123
131
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
124
- end # or else data not found in attributes(hash), not an issue as the data can be optional
132
+ end
125
133
  end
126
134
 
127
135
  self
@@ -133,8 +141,8 @@ module OryHydraClient
133
141
  # @return [Object] Deserialized data
134
142
  def _deserialize(type, value)
135
143
  case type.to_sym
136
- when :DateTime
137
- DateTime.parse(value)
144
+ when :Time
145
+ Time.parse(value)
138
146
  when :Date
139
147
  Date.parse(value)
140
148
  when :String
@@ -164,7 +172,9 @@ module OryHydraClient
164
172
  end
165
173
  end
166
174
  else # model
167
- OryHydraClient.const_get(type).build_from_hash(value)
175
+ # models (e.g. Pet) or oneOf
176
+ klass = OryHydraClient.const_get(type)
177
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
168
178
  end
169
179
  end
170
180
 
@@ -190,7 +200,7 @@ module OryHydraClient
190
200
  is_nullable = self.class.openapi_nullable.include?(attr)
191
201
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
192
202
  end
193
-
203
+
194
204
  hash[param] = _to_hash(value)
195
205
  end
196
206
  hash
@@ -213,5 +223,7 @@ module OryHydraClient
213
223
  value
214
224
  end
215
225
  end
226
+
216
227
  end
228
+
217
229
  end