trinsic_api 2.2.0 → 2.3.0.pre.alpha2

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 (100) hide show
  1. checksums.yaml +4 -4
  2. data/docs/AddRedirectUriResponse.md +18 -0
  3. data/docs/AttachmentAccessKeys.md +2 -0
  4. data/docs/ContractField.md +2 -0
  5. data/docs/ContractIdentifierField.md +22 -0
  6. data/docs/CreateHostedProviderSessionResponse.md +1 -1
  7. data/docs/CreateVerificationProfileResponse.md +18 -0
  8. data/docs/CreateWidgetSessionResponse.md +1 -1
  9. data/docs/EnvironmentRedirectUrisAddRequest.md +18 -0
  10. data/docs/EnvironmentRedirectUrisApi.md +222 -0
  11. data/docs/FaydaProviderOutput.md +18 -0
  12. data/docs/Identifier.md +22 -0
  13. data/docs/IdentityData.md +5 -1
  14. data/docs/IntegrationStep.md +1 -1
  15. data/docs/KenyaNidBiometric2Input.md +22 -0
  16. data/docs/KenyaNidInput.md +1 -1
  17. data/docs/KenyaNidLookup2Input.md +18 -0
  18. data/docs/KenyaNidMatch2Input.md +28 -0
  19. data/docs/ListEnvironmentRedirectUrisResponse.md +20 -0
  20. data/docs/ListVerificationProfilesResponse.md +20 -0
  21. data/docs/MexicoCurpProviderOutput.md +18 -0
  22. data/docs/NigeriaNinInput.md +1 -1
  23. data/docs/PhilippinesDigitalNidProviderOutput.md +18 -0
  24. data/docs/PhilippinesPhysicalNidProviderOutput.md +18 -0
  25. data/docs/ProviderContract.md +2 -0
  26. data/docs/ProviderInput.md +8 -0
  27. data/docs/ProviderOutput.md +26 -0
  28. data/docs/RedirectUriResponse.md +20 -0
  29. data/docs/SexV1.md +15 -0
  30. data/docs/SouthAfricaNidInput.md +1 -1
  31. data/docs/SouthAfricaNidLookup2Input.md +18 -0
  32. data/docs/SpidBillingInformation.md +22 -0
  33. data/docs/SpidInput.md +3 -1
  34. data/docs/SpidProviderOutput.md +44 -0
  35. data/docs/VerificationProfileResponse.md +28 -0
  36. data/docs/VerificationProfilesApi.md +231 -0
  37. data/lib/trinsic_api/api/environment_redirect_uris_api.rb +228 -0
  38. data/lib/trinsic_api/api/verification_profiles_api.rb +273 -0
  39. data/lib/trinsic_api/models/add_redirect_uri_response.rb +237 -0
  40. data/lib/trinsic_api/models/attachment_access_keys.rb +11 -1
  41. data/lib/trinsic_api/models/contract_field.rb +28 -1
  42. data/lib/trinsic_api/models/contract_identifier_field.rb +315 -0
  43. data/lib/trinsic_api/models/create_verification_profile_response.rb +238 -0
  44. data/lib/trinsic_api/models/environment_redirect_uris_add_request.rb +237 -0
  45. data/lib/trinsic_api/models/fayda_provider_output.rb +222 -0
  46. data/lib/trinsic_api/models/identifier.rb +289 -0
  47. data/lib/trinsic_api/models/identity_data.rb +43 -5
  48. data/lib/trinsic_api/models/kenya_nid_biometric2_input.rb +246 -0
  49. data/lib/trinsic_api/models/kenya_nid_input.rb +1 -1
  50. data/lib/trinsic_api/models/kenya_nid_lookup2_input.rb +222 -0
  51. data/lib/trinsic_api/models/kenya_nid_match2_input.rb +299 -0
  52. data/lib/trinsic_api/models/list_environment_redirect_uris_response.rb +268 -0
  53. data/lib/trinsic_api/models/list_verification_profiles_response.rb +266 -0
  54. data/lib/trinsic_api/models/mexico_curp_provider_output.rb +222 -0
  55. data/lib/trinsic_api/models/nigeria_nin_input.rb +1 -1
  56. data/lib/trinsic_api/models/philippines_digital_nid_provider_output.rb +238 -0
  57. data/lib/trinsic_api/models/philippines_physical_nid_provider_output.rb +238 -0
  58. data/lib/trinsic_api/models/provider_contract.rb +14 -1
  59. data/lib/trinsic_api/models/provider_input.rb +45 -1
  60. data/lib/trinsic_api/models/provider_output.rb +261 -0
  61. data/lib/trinsic_api/models/redirect_uri_response.rb +263 -0
  62. data/lib/trinsic_api/models/sex_v1.rb +42 -0
  63. data/lib/trinsic_api/models/south_africa_nid_input.rb +1 -1
  64. data/lib/trinsic_api/models/south_africa_nid_lookup2_input.rb +222 -0
  65. data/lib/trinsic_api/models/spid_billing_information.rb +293 -0
  66. data/lib/trinsic_api/models/spid_input.rb +16 -5
  67. data/lib/trinsic_api/models/spid_provider_output.rb +397 -0
  68. data/lib/trinsic_api/models/verification_profile_response.rb +375 -0
  69. data/lib/trinsic_api/version.rb +1 -1
  70. data/lib/trinsic_api.rb +23 -0
  71. data/spec/api/environment_redirect_uris_api_spec.rb +72 -0
  72. data/spec/api/verification_profiles_api_spec.rb +76 -0
  73. data/spec/models/add_redirect_uri_response_spec.rb +36 -0
  74. data/spec/models/attachment_access_keys_spec.rb +6 -0
  75. data/spec/models/contract_field_spec.rb +6 -0
  76. data/spec/models/contract_identifier_field_spec.rb +48 -0
  77. data/spec/models/create_verification_profile_response_spec.rb +36 -0
  78. data/spec/models/environment_redirect_uris_add_request_spec.rb +36 -0
  79. data/spec/models/fayda_provider_output_spec.rb +36 -0
  80. data/spec/models/identifier_spec.rb +48 -0
  81. data/spec/models/identity_data_spec.rb +12 -0
  82. data/spec/models/kenya_nid_biometric2_input_spec.rb +48 -0
  83. data/spec/models/kenya_nid_lookup2_input_spec.rb +36 -0
  84. data/spec/models/kenya_nid_match2_input_spec.rb +66 -0
  85. data/spec/models/list_environment_redirect_uris_response_spec.rb +42 -0
  86. data/spec/models/list_verification_profiles_response_spec.rb +42 -0
  87. data/spec/models/mexico_curp_provider_output_spec.rb +36 -0
  88. data/spec/models/philippines_digital_nid_provider_output_spec.rb +36 -0
  89. data/spec/models/philippines_physical_nid_provider_output_spec.rb +36 -0
  90. data/spec/models/provider_contract_spec.rb +6 -0
  91. data/spec/models/provider_input_spec.rb +24 -0
  92. data/spec/models/provider_output_spec.rb +60 -0
  93. data/spec/models/redirect_uri_response_spec.rb +42 -0
  94. data/spec/models/sex_v1_spec.rb +30 -0
  95. data/spec/models/south_africa_nid_lookup2_input_spec.rb +36 -0
  96. data/spec/models/spid_billing_information_spec.rb +48 -0
  97. data/spec/models/spid_input_spec.rb +6 -0
  98. data/spec/models/spid_provider_output_spec.rb +114 -0
  99. data/spec/models/verification_profile_response_spec.rb +66 -0
  100. metadata +94 -2
@@ -0,0 +1,268 @@
1
+ =begin
2
+ #Trinsic API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+
6
+ The version of the OpenAPI document: v1
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.13.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module TrinsicApi
17
+ # Response from listing redirect URIs within an environment.
18
+ class ListEnvironmentRedirectUrisResponse
19
+ # List of redirect uris within the environment.
20
+ attr_accessor :uris
21
+
22
+ # Whether there are additional pages of uris to retrieve
23
+ attr_accessor :more
24
+
25
+ # Attribute mapping from ruby-style variable name to JSON key.
26
+ def self.attribute_map
27
+ {
28
+ :'uris' => :'uris',
29
+ :'more' => :'more'
30
+ }
31
+ end
32
+
33
+ # Returns attribute mapping this model knows about
34
+ def self.acceptable_attribute_map
35
+ attribute_map
36
+ end
37
+
38
+ # Returns all the JSON keys this model knows about
39
+ def self.acceptable_attributes
40
+ acceptable_attribute_map.values
41
+ end
42
+
43
+ # Attribute type mapping.
44
+ def self.openapi_types
45
+ {
46
+ :'uris' => :'Array<RedirectUriResponse>',
47
+ :'more' => :'Boolean'
48
+ }
49
+ end
50
+
51
+ # List of attributes with nullable: true
52
+ def self.openapi_nullable
53
+ Set.new([
54
+ ])
55
+ end
56
+
57
+ # Initializes the object
58
+ # @param [Hash] attributes Model attributes in the form of hash
59
+ def initialize(attributes = {})
60
+ if (!attributes.is_a?(Hash))
61
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TrinsicApi::ListEnvironmentRedirectUrisResponse` initialize method"
62
+ end
63
+
64
+ # check to see if the attribute exists and convert string to symbol for hash key
65
+ acceptable_attribute_map = self.class.acceptable_attribute_map
66
+ attributes = attributes.each_with_object({}) { |(k, v), h|
67
+ if (!acceptable_attribute_map.key?(k.to_sym))
68
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TrinsicApi::ListEnvironmentRedirectUrisResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
69
+ end
70
+ h[k.to_sym] = v
71
+ }
72
+
73
+ if attributes.key?(:'uris')
74
+ if (value = attributes[:'uris']).is_a?(Array)
75
+ self.uris = value
76
+ end
77
+ else
78
+ self.uris = nil
79
+ end
80
+
81
+ if attributes.key?(:'more')
82
+ self.more = attributes[:'more']
83
+ else
84
+ self.more = nil
85
+ end
86
+ end
87
+
88
+ # Show invalid properties with the reasons. Usually used together with valid?
89
+ # @return Array for valid properties with the reasons
90
+ def list_invalid_properties
91
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
92
+ invalid_properties = Array.new
93
+ if @uris.nil?
94
+ invalid_properties.push('invalid value for "uris", uris cannot be nil.')
95
+ end
96
+
97
+ if @more.nil?
98
+ invalid_properties.push('invalid value for "more", more cannot be nil.')
99
+ end
100
+
101
+ invalid_properties
102
+ end
103
+
104
+ # Check to see if the all the properties in the model are valid
105
+ # @return true if the model is valid
106
+ def valid?
107
+ warn '[DEPRECATED] the `valid?` method is obsolete'
108
+ return false if @uris.nil?
109
+ return false if @more.nil?
110
+ true
111
+ end
112
+
113
+ # Custom attribute writer method with validation
114
+ # @param [Object] uris Value to be assigned
115
+ def uris=(uris)
116
+ if uris.nil?
117
+ fail ArgumentError, 'uris cannot be nil'
118
+ end
119
+
120
+ @uris = uris
121
+ end
122
+
123
+ # Custom attribute writer method with validation
124
+ # @param [Object] more Value to be assigned
125
+ def more=(more)
126
+ if more.nil?
127
+ fail ArgumentError, 'more cannot be nil'
128
+ end
129
+
130
+ @more = more
131
+ end
132
+
133
+ # Checks equality by comparing each attribute.
134
+ # @param [Object] Object to be compared
135
+ def ==(o)
136
+ return true if self.equal?(o)
137
+ self.class == o.class &&
138
+ uris == o.uris &&
139
+ more == o.more
140
+ end
141
+
142
+ # @see the `==` method
143
+ # @param [Object] Object to be compared
144
+ def eql?(o)
145
+ self == o
146
+ end
147
+
148
+ # Calculates hash code according to all attributes.
149
+ # @return [Integer] Hash code
150
+ def hash
151
+ [uris, more].hash
152
+ end
153
+
154
+ # Builds the object from hash
155
+ # @param [Hash] attributes Model attributes in the form of hash
156
+ # @return [Object] Returns the model itself
157
+ def self.build_from_hash(attributes)
158
+ return nil unless attributes.is_a?(Hash)
159
+ attributes = attributes.transform_keys(&:to_sym)
160
+ transformed_hash = {}
161
+ openapi_types.each_pair do |key, type|
162
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
163
+ transformed_hash["#{key}"] = nil
164
+ elsif type =~ /\AArray<(.*)>/i
165
+ # check to ensure the input is an array given that the attribute
166
+ # is documented as an array but the input is not
167
+ if attributes[attribute_map[key]].is_a?(Array)
168
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
169
+ end
170
+ elsif !attributes[attribute_map[key]].nil?
171
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
172
+ end
173
+ end
174
+ new(transformed_hash)
175
+ end
176
+
177
+ # Deserializes the data based on type
178
+ # @param string type Data type
179
+ # @param string value Value to be deserialized
180
+ # @return [Object] Deserialized data
181
+ def self._deserialize(type, value)
182
+ case type.to_sym
183
+ when :Time
184
+ Time.parse(value)
185
+ when :Date
186
+ Date.parse(value)
187
+ when :String
188
+ value.to_s
189
+ when :Integer
190
+ value.to_i
191
+ when :Float
192
+ value.to_f
193
+ when :Boolean
194
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
195
+ true
196
+ else
197
+ false
198
+ end
199
+ when :Object
200
+ # generic object (usually a Hash), return directly
201
+ value
202
+ when /\AArray<(?<inner_type>.+)>\z/
203
+ inner_type = Regexp.last_match[:inner_type]
204
+ value.map { |v| _deserialize(inner_type, v) }
205
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
206
+ k_type = Regexp.last_match[:k_type]
207
+ v_type = Regexp.last_match[:v_type]
208
+ {}.tap do |hash|
209
+ value.each do |k, v|
210
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
211
+ end
212
+ end
213
+ else # model
214
+ # models (e.g. Pet) or oneOf
215
+ klass = TrinsicApi.const_get(type)
216
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
217
+ end
218
+ end
219
+
220
+ # Returns the string representation of the object
221
+ # @return [String] String presentation of the object
222
+ def to_s
223
+ to_hash.to_s
224
+ end
225
+
226
+ # to_body is an alias to to_hash (backward compatibility)
227
+ # @return [Hash] Returns the object in the form of hash
228
+ def to_body
229
+ to_hash
230
+ end
231
+
232
+ # Returns the object in the form of hash
233
+ # @return [Hash] Returns the object in the form of hash
234
+ def to_hash
235
+ hash = {}
236
+ self.class.attribute_map.each_pair do |attr, param|
237
+ value = self.send(attr)
238
+ if value.nil?
239
+ is_nullable = self.class.openapi_nullable.include?(attr)
240
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
241
+ end
242
+
243
+ hash[param] = _to_hash(value)
244
+ end
245
+ hash
246
+ end
247
+
248
+ # Outputs non-array value in the form of hash
249
+ # For object, use to_hash. Otherwise, just return the value
250
+ # @param [Object] value Any valid value
251
+ # @return [Hash] Returns the value in the form of hash
252
+ def _to_hash(value)
253
+ if value.is_a?(Array)
254
+ value.compact.map { |v| _to_hash(v) }
255
+ elsif value.is_a?(Hash)
256
+ {}.tap do |hash|
257
+ value.each { |k, v| hash[k] = _to_hash(v) }
258
+ end
259
+ elsif value.respond_to? :to_hash
260
+ value.to_hash
261
+ else
262
+ value
263
+ end
264
+ end
265
+
266
+ end
267
+
268
+ end
@@ -0,0 +1,266 @@
1
+ =begin
2
+ #Trinsic API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+
6
+ The version of the OpenAPI document: v1
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.13.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module TrinsicApi
17
+ class ListVerificationProfilesResponse
18
+ attr_accessor :verification_profiles
19
+
20
+ # Whether there are additional pages of verification profiles to retrieve
21
+ attr_accessor :more
22
+
23
+ # Attribute mapping from ruby-style variable name to JSON key.
24
+ def self.attribute_map
25
+ {
26
+ :'verification_profiles' => :'verificationProfiles',
27
+ :'more' => :'more'
28
+ }
29
+ end
30
+
31
+ # Returns attribute mapping this model knows about
32
+ def self.acceptable_attribute_map
33
+ attribute_map
34
+ end
35
+
36
+ # Returns all the JSON keys this model knows about
37
+ def self.acceptable_attributes
38
+ acceptable_attribute_map.values
39
+ end
40
+
41
+ # Attribute type mapping.
42
+ def self.openapi_types
43
+ {
44
+ :'verification_profiles' => :'Array<VerificationProfileResponse>',
45
+ :'more' => :'Boolean'
46
+ }
47
+ end
48
+
49
+ # List of attributes with nullable: true
50
+ def self.openapi_nullable
51
+ Set.new([
52
+ ])
53
+ end
54
+
55
+ # Initializes the object
56
+ # @param [Hash] attributes Model attributes in the form of hash
57
+ def initialize(attributes = {})
58
+ if (!attributes.is_a?(Hash))
59
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TrinsicApi::ListVerificationProfilesResponse` initialize method"
60
+ end
61
+
62
+ # check to see if the attribute exists and convert string to symbol for hash key
63
+ acceptable_attribute_map = self.class.acceptable_attribute_map
64
+ attributes = attributes.each_with_object({}) { |(k, v), h|
65
+ if (!acceptable_attribute_map.key?(k.to_sym))
66
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TrinsicApi::ListVerificationProfilesResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
67
+ end
68
+ h[k.to_sym] = v
69
+ }
70
+
71
+ if attributes.key?(:'verification_profiles')
72
+ if (value = attributes[:'verification_profiles']).is_a?(Array)
73
+ self.verification_profiles = value
74
+ end
75
+ else
76
+ self.verification_profiles = nil
77
+ end
78
+
79
+ if attributes.key?(:'more')
80
+ self.more = attributes[:'more']
81
+ else
82
+ self.more = nil
83
+ end
84
+ end
85
+
86
+ # Show invalid properties with the reasons. Usually used together with valid?
87
+ # @return Array for valid properties with the reasons
88
+ def list_invalid_properties
89
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
90
+ invalid_properties = Array.new
91
+ if @verification_profiles.nil?
92
+ invalid_properties.push('invalid value for "verification_profiles", verification_profiles cannot be nil.')
93
+ end
94
+
95
+ if @more.nil?
96
+ invalid_properties.push('invalid value for "more", more cannot be nil.')
97
+ end
98
+
99
+ invalid_properties
100
+ end
101
+
102
+ # Check to see if the all the properties in the model are valid
103
+ # @return true if the model is valid
104
+ def valid?
105
+ warn '[DEPRECATED] the `valid?` method is obsolete'
106
+ return false if @verification_profiles.nil?
107
+ return false if @more.nil?
108
+ true
109
+ end
110
+
111
+ # Custom attribute writer method with validation
112
+ # @param [Object] verification_profiles Value to be assigned
113
+ def verification_profiles=(verification_profiles)
114
+ if verification_profiles.nil?
115
+ fail ArgumentError, 'verification_profiles cannot be nil'
116
+ end
117
+
118
+ @verification_profiles = verification_profiles
119
+ end
120
+
121
+ # Custom attribute writer method with validation
122
+ # @param [Object] more Value to be assigned
123
+ def more=(more)
124
+ if more.nil?
125
+ fail ArgumentError, 'more cannot be nil'
126
+ end
127
+
128
+ @more = more
129
+ end
130
+
131
+ # Checks equality by comparing each attribute.
132
+ # @param [Object] Object to be compared
133
+ def ==(o)
134
+ return true if self.equal?(o)
135
+ self.class == o.class &&
136
+ verification_profiles == o.verification_profiles &&
137
+ more == o.more
138
+ end
139
+
140
+ # @see the `==` method
141
+ # @param [Object] Object to be compared
142
+ def eql?(o)
143
+ self == o
144
+ end
145
+
146
+ # Calculates hash code according to all attributes.
147
+ # @return [Integer] Hash code
148
+ def hash
149
+ [verification_profiles, more].hash
150
+ end
151
+
152
+ # Builds the object from hash
153
+ # @param [Hash] attributes Model attributes in the form of hash
154
+ # @return [Object] Returns the model itself
155
+ def self.build_from_hash(attributes)
156
+ return nil unless attributes.is_a?(Hash)
157
+ attributes = attributes.transform_keys(&:to_sym)
158
+ transformed_hash = {}
159
+ openapi_types.each_pair do |key, type|
160
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
161
+ transformed_hash["#{key}"] = nil
162
+ elsif type =~ /\AArray<(.*)>/i
163
+ # check to ensure the input is an array given that the attribute
164
+ # is documented as an array but the input is not
165
+ if attributes[attribute_map[key]].is_a?(Array)
166
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
167
+ end
168
+ elsif !attributes[attribute_map[key]].nil?
169
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
170
+ end
171
+ end
172
+ new(transformed_hash)
173
+ end
174
+
175
+ # Deserializes the data based on type
176
+ # @param string type Data type
177
+ # @param string value Value to be deserialized
178
+ # @return [Object] Deserialized data
179
+ def self._deserialize(type, value)
180
+ case type.to_sym
181
+ when :Time
182
+ Time.parse(value)
183
+ when :Date
184
+ Date.parse(value)
185
+ when :String
186
+ value.to_s
187
+ when :Integer
188
+ value.to_i
189
+ when :Float
190
+ value.to_f
191
+ when :Boolean
192
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
193
+ true
194
+ else
195
+ false
196
+ end
197
+ when :Object
198
+ # generic object (usually a Hash), return directly
199
+ value
200
+ when /\AArray<(?<inner_type>.+)>\z/
201
+ inner_type = Regexp.last_match[:inner_type]
202
+ value.map { |v| _deserialize(inner_type, v) }
203
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
204
+ k_type = Regexp.last_match[:k_type]
205
+ v_type = Regexp.last_match[:v_type]
206
+ {}.tap do |hash|
207
+ value.each do |k, v|
208
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
209
+ end
210
+ end
211
+ else # model
212
+ # models (e.g. Pet) or oneOf
213
+ klass = TrinsicApi.const_get(type)
214
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
215
+ end
216
+ end
217
+
218
+ # Returns the string representation of the object
219
+ # @return [String] String presentation of the object
220
+ def to_s
221
+ to_hash.to_s
222
+ end
223
+
224
+ # to_body is an alias to to_hash (backward compatibility)
225
+ # @return [Hash] Returns the object in the form of hash
226
+ def to_body
227
+ to_hash
228
+ end
229
+
230
+ # Returns the object in the form of hash
231
+ # @return [Hash] Returns the object in the form of hash
232
+ def to_hash
233
+ hash = {}
234
+ self.class.attribute_map.each_pair do |attr, param|
235
+ value = self.send(attr)
236
+ if value.nil?
237
+ is_nullable = self.class.openapi_nullable.include?(attr)
238
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
239
+ end
240
+
241
+ hash[param] = _to_hash(value)
242
+ end
243
+ hash
244
+ end
245
+
246
+ # Outputs non-array value in the form of hash
247
+ # For object, use to_hash. Otherwise, just return the value
248
+ # @param [Object] value Any valid value
249
+ # @return [Hash] Returns the value in the form of hash
250
+ def _to_hash(value)
251
+ if value.is_a?(Array)
252
+ value.compact.map { |v| _to_hash(v) }
253
+ elsif value.is_a?(Hash)
254
+ {}.tap do |hash|
255
+ value.each { |k, v| hash[k] = _to_hash(v) }
256
+ end
257
+ elsif value.respond_to? :to_hash
258
+ value.to_hash
259
+ else
260
+ value
261
+ end
262
+ end
263
+
264
+ end
265
+
266
+ end