change_healthcare-eligibility 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +130 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +7 -0
  7. data/Gemfile +4 -0
  8. data/Gemfile.lock +59 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +64 -0
  11. data/Rakefile +6 -0
  12. data/bin/console +11 -0
  13. data/bin/rspec +29 -0
  14. data/bin/setup +8 -0
  15. data/change_healthcare-eligibility.gemspec +44 -0
  16. data/lib/change_healthcare/eligibility.rb +13 -0
  17. data/lib/change_healthcare/eligibility/inspector.rb +82 -0
  18. data/lib/change_healthcare/eligibility/swagger_client.rb +81 -0
  19. data/lib/change_healthcare/eligibility/swagger_client/api_client.rb +388 -0
  20. data/lib/change_healthcare/eligibility/swagger_client/api_error.rb +40 -0
  21. data/lib/change_healthcare/eligibility/swagger_client/configuration.rb +202 -0
  22. data/lib/change_healthcare/eligibility/swagger_client/eligibility_api.rb +198 -0
  23. data/lib/change_healthcare/eligibility/swagger_client/models/additional_identification.rb +266 -0
  24. data/lib/change_healthcare/eligibility/swagger_client/models/additional_information.rb +185 -0
  25. data/lib/change_healthcare/eligibility/swagger_client/models/address.rb +218 -0
  26. data/lib/change_healthcare/eligibility/swagger_client/models/benefits_additional_information.rb +376 -0
  27. data/lib/change_healthcare/eligibility/swagger_client/models/benefits_date_information.rb +340 -0
  28. data/lib/change_healthcare/eligibility/swagger_client/models/benefits_information.rb +338 -0
  29. data/lib/change_healthcare/eligibility/swagger_client/models/benefits_related_entity.rb +240 -0
  30. data/lib/change_healthcare/eligibility/swagger_client/models/benefits_service_delivery.rb +220 -0
  31. data/lib/change_healthcare/eligibility/swagger_client/models/composite_medical_procedure_identifier.rb +218 -0
  32. data/lib/change_healthcare/eligibility/swagger_client/models/eligibility_additional_information.rb +200 -0
  33. data/lib/change_healthcare/eligibility/swagger_client/models/encounter.rb +359 -0
  34. data/lib/change_healthcare/eligibility/swagger_client/models/error.rb +205 -0
  35. data/lib/change_healthcare/eligibility/swagger_client/models/health_care_diagnosis_code.rb +190 -0
  36. data/lib/change_healthcare/eligibility/swagger_client/models/health_care_information.rb +229 -0
  37. data/lib/change_healthcare/eligibility/swagger_client/models/health_check.rb +190 -0
  38. data/lib/change_healthcare/eligibility/swagger_client/models/information_receiver_name.rb +303 -0
  39. data/lib/change_healthcare/eligibility/swagger_client/models/loop_2000_cd2100_cd_segment_nm1_ref_dmg_ins_mpi_prv_notes_response_member.rb +429 -0
  40. data/lib/change_healthcare/eligibility/swagger_client/models/loop_2100_a_segments_nm1_and_per_notes_information_source_name.rb +293 -0
  41. data/lib/change_healthcare/eligibility/swagger_client/models/loop_2100_a_segments_per_element_per03_8_notes_communication.rb +194 -0
  42. data/lib/change_healthcare/eligibility/swagger_client/models/loop_2100_a_segments_per_notes_information_source_contact_information.rb +198 -0
  43. data/lib/change_healthcare/eligibility/swagger_client/models/loop_2100_bcd_segment_nm1_prv_notes_provider.rb +322 -0
  44. data/lib/change_healthcare/eligibility/swagger_client/models/loop_2100_cd_segment_trn_notes_subscriber_trace_numbers.rb +218 -0
  45. data/lib/change_healthcare/eligibility/swagger_client/models/loop_2110_cd_segments_ref_notes_subscriber_dependent_additional_identification.rb +488 -0
  46. data/lib/change_healthcare/eligibility/swagger_client/models/medical_eligibility.rb +272 -0
  47. data/lib/change_healthcare/eligibility/swagger_client/models/medical_procedure.rb +254 -0
  48. data/lib/change_healthcare/eligibility/swagger_client/models/plan_date_information.rb +340 -0
  49. data/lib/change_healthcare/eligibility/swagger_client/models/plan_status.rb +204 -0
  50. data/lib/change_healthcare/eligibility/swagger_client/models/provider.rb +304 -0
  51. data/lib/change_healthcare/eligibility/swagger_client/models/provider_information.rb +190 -0
  52. data/lib/change_healthcare/eligibility/swagger_client/models/raw_x12_request.rb +190 -0
  53. data/lib/change_healthcare/eligibility/swagger_client/models/request_dependent.rb +452 -0
  54. data/lib/change_healthcare/eligibility/swagger_client/models/request_subscriber.rb +456 -0
  55. data/lib/change_healthcare/eligibility/swagger_client/models/response.rb +322 -0
  56. data/lib/change_healthcare/eligibility/swagger_client/version.rb +17 -0
  57. data/lib/change_healthcare/eligibility/version.rb +5 -0
  58. data/lib/change_healthcare/eligibility/wrapper.rb +124 -0
  59. metadata +214 -0
@@ -0,0 +1,456 @@
1
+ # #Eligibility
2
+ #
3
+ # Reference for developers
4
+ #
5
+ # OpenAPI spec version: v3
6
+ #
7
+ # Generated by: https://github.com/swagger-api/swagger-codegen.git
8
+ # Swagger Codegen version: 2.4.17
9
+ #
10
+
11
+ require 'date'
12
+
13
+ module ChangeHealthcare
14
+ module Eligibility
15
+ module SwaggerClient
16
+ # Loop: 2100C, Notes: Subscriber Detail
17
+ class RequestSubscriber
18
+ # Loop: 2100[C|D], Segment: REF Notes: Additional Identification
19
+ attr_accessor :additional_identification
20
+
21
+ # Loop: 2100[C|D], Segment: N3 and N4, Notes: Address
22
+ attr_accessor :address
23
+
24
+ # Loop: 2110[C|D], Segment: DTP, Element: DTP03, Notes: DTP01=102, DTP02=RD8 Retired
25
+ attr_accessor :beginning_card_issue_date
26
+
27
+ # Loop: 2110[C|D], Segment: DTP, Element: DTP03, Notes: DTP01=291, DTP02=RD8 Retired
28
+ attr_accessor :beginning_plan_issue_date
29
+
30
+ # Loop: 2100C Segment: INS, Element: INS17, Notes: Birth Sequence Number - must be exactly 9 positive unsigned numeric characters.
31
+ attr_accessor :birth_sequence_number
32
+
33
+ # Loop: 2100C Segment: REF, Element: REF02, Notes: REF01=3H Case Number
34
+ attr_accessor :case_number
35
+
36
+ # Loop: 2110C Segment: EQ, Element: EQ03, Notes: Retired, Not Used
37
+ attr_accessor :coverage_level_code
38
+
39
+ # Loop: 2100[C|D], Segment: DMG, Element: DMG02, Notes: date of birth in CCYYMMDD
40
+ attr_accessor :date_of_birth
41
+
42
+ # Loop: 2110[C|D], Segment: DTP, Element: DTP03, Notes: DTP01=102, DTP02=RD8 Retired
43
+ attr_accessor :end_card_issue_date
44
+
45
+ # Loop: 2110[C|D], Segment: DTP, Element: DTP03, Notes: DTP01=291, DTP02=RD8 Retired
46
+ attr_accessor :end_plan_issue_date
47
+
48
+ # Loop: 2100[C|D], Segment: MN1, Element: NM104, Notes: firstName 1-35 alphanumberic characters
49
+ attr_accessor :first_name
50
+
51
+ # Loop: 2100[C|D], Segment: DMG, Element: DMG03, Notes: gender 1 character 'M' or 'F'
52
+ attr_accessor :gender
53
+
54
+ # Loop: 2100[C|D], Segment: REF, Element: REF02, Notes: REF01=6P Group Number
55
+ attr_accessor :group_number
56
+
57
+ # Loop: 2100[C|D], Segment: HI, Element: HI01-1 HI01-2, Notes: Health Care Diagnosis
58
+ attr_accessor :health_care_code_information
59
+
60
+ # Loop: 2100[C|D], Segment: REF, Element: REF02, Notes: REF01=HJ Identity Card Number
61
+ attr_accessor :id_card
62
+
63
+ # Loop: 2110[C|D], Segment: DTP, Element: DTP03, Notes: DTP01=102, DTP02=D8 Retired
64
+ attr_accessor :id_card_issue_date
65
+
66
+ # Loop: 2100[C|D], Segment: MN1, Element: NM103, Notes: lastName 1-60 alphanumberic characters
67
+ attr_accessor :last_name
68
+
69
+ # Loop: 2110C Segment: REF, Element: REF02, Notes: REF01=NQ Medicaid Recipient Identification Number
70
+ attr_accessor :medicaid_recipient_identification_number
71
+
72
+ # Loop: 2100[C|D] Segment: MN1, Element: NM109, Notes: NM108=MI, memberId 2-80 alphanumberic characters
73
+ attr_accessor :member_id
74
+
75
+ # Loop: 2100[C|D], Segment: MN1, Element: NM105, Notes: middleName 1-25 alphanumberic characters
76
+ attr_accessor :middle_name
77
+
78
+ # Loop: 2110[C|D], Segment: DTP, Element: DTP03, Notes: DTP01=291, DTP02=D8 Retired
79
+ attr_accessor :plan_issue_date
80
+
81
+ # Loop: 2100[C|D], Segment: PRV, Element: PRV01, Notes: Provider Code
82
+ attr_accessor :provider_code
83
+
84
+ # Loop: 2100[C|D], Segment: PRV, Element: PRV03, Notes: Provider Identifier
85
+ attr_accessor :provider_identifier
86
+
87
+ # Loop: 2100[C|D], Segment: PRV, Element: PRV02, Notes: Reference Identification Qualifier
88
+ attr_accessor :reference_identification_qualifier
89
+
90
+ # Loop: 2110C Segment: ATM, Element: ATM02, Notes: ATM01=R Spend Down
91
+ attr_accessor :spend_down_amount
92
+
93
+ # Loop: 2110C Segment: ATM, Element: ATM02, Notes: ATM01=PB Billed Amount
94
+ attr_accessor :spend_down_total_billed_amount
95
+
96
+ # Loop: 2100[C|D], Segment: REF, Element: REF02, Notes: REF01=SY Social Security Number
97
+ attr_accessor :ssn
98
+
99
+ # Loop: 2100[C|D], Segment: MN1, Element: NM107, Notes: lastName 1-10 alphanumberic characters
100
+ attr_accessor :suffix
101
+
102
+ class EnumAttributeValidator
103
+ attr_reader :datatype, :allowable_values
104
+
105
+ def initialize(datatype, allowable_values)
106
+ @allowable_values = allowable_values.map do |value|
107
+ case datatype.to_s
108
+ when /Integer/i
109
+ value.to_i
110
+ when /Float/i
111
+ value.to_f
112
+ else
113
+ value
114
+ end
115
+ end
116
+ end
117
+
118
+ def valid?(value)
119
+ !value || allowable_values.include?(value)
120
+ end
121
+ end
122
+
123
+ # Attribute mapping from ruby-style variable name to JSON key.
124
+ def self.attribute_map
125
+ {
126
+ 'additional_identification': :additionalIdentification,
127
+ 'address': :address,
128
+ 'beginning_card_issue_date': :beginningCardIssueDate,
129
+ 'beginning_plan_issue_date': :beginningPlanIssueDate,
130
+ 'birth_sequence_number': :birthSequenceNumber,
131
+ 'case_number': :caseNumber,
132
+ 'coverage_level_code': :coverageLevelCode,
133
+ 'date_of_birth': :dateOfBirth,
134
+ 'end_card_issue_date': :endCardIssueDate,
135
+ 'end_plan_issue_date': :endPlanIssueDate,
136
+ 'first_name': :firstName,
137
+ 'gender': :gender,
138
+ 'group_number': :groupNumber,
139
+ 'health_care_code_information': :healthCareCodeInformation,
140
+ 'id_card': :idCard,
141
+ 'id_card_issue_date': :idCardIssueDate,
142
+ 'last_name': :lastName,
143
+ 'medicaid_recipient_identification_number': :medicaidRecipientIdentificationNumber,
144
+ 'member_id': :memberId,
145
+ 'middle_name': :middleName,
146
+ 'plan_issue_date': :planIssueDate,
147
+ 'provider_code': :providerCode,
148
+ 'provider_identifier': :providerIdentifier,
149
+ 'reference_identification_qualifier': :referenceIdentificationQualifier,
150
+ 'spend_down_amount': :spendDownAmount,
151
+ 'spend_down_total_billed_amount': :spendDownTotalBilledAmount,
152
+ 'ssn': :ssn,
153
+ 'suffix': :suffix
154
+ }
155
+ end
156
+
157
+ # Attribute type mapping.
158
+ def self.swagger_types
159
+ {
160
+ 'additional_identification': :AdditionalIdentification,
161
+ 'address': :Address,
162
+ 'beginning_card_issue_date': :String,
163
+ 'beginning_plan_issue_date': :String,
164
+ 'birth_sequence_number': :String,
165
+ 'case_number': :String,
166
+ 'coverage_level_code': :String,
167
+ 'date_of_birth': :String,
168
+ 'end_card_issue_date': :String,
169
+ 'end_plan_issue_date': :String,
170
+ 'first_name': :String,
171
+ 'gender': :String,
172
+ 'group_number': :String,
173
+ 'health_care_code_information': :'Array<HealthCareInformation>',
174
+ 'id_card': :String,
175
+ 'id_card_issue_date': :String,
176
+ 'last_name': :String,
177
+ 'medicaid_recipient_identification_number': :String,
178
+ 'member_id': :String,
179
+ 'middle_name': :String,
180
+ 'plan_issue_date': :String,
181
+ 'provider_code': :String,
182
+ 'provider_identifier': :String,
183
+ 'reference_identification_qualifier': :String,
184
+ 'spend_down_amount': :String,
185
+ 'spend_down_total_billed_amount': :String,
186
+ 'ssn': :String,
187
+ 'suffix': :String
188
+ }
189
+ end
190
+
191
+ # Initializes the object
192
+ # @param [Hash] attributes Model attributes in the form of hash
193
+ def initialize(attributes = {})
194
+ return unless attributes.is_a?(Hash)
195
+
196
+ # convert string to symbol for hash key
197
+ attributes = attributes.transform_keys(&:to_sym)
198
+
199
+ self.additional_identification = attributes[:additionalIdentification] if attributes.key?(:additionalIdentification)
200
+
201
+ self.address = attributes[:address] if attributes.key?(:address)
202
+
203
+ self.beginning_card_issue_date = attributes[:beginningCardIssueDate] if attributes.key?(:beginningCardIssueDate)
204
+
205
+ self.beginning_plan_issue_date = attributes[:beginningPlanIssueDate] if attributes.key?(:beginningPlanIssueDate)
206
+
207
+ self.birth_sequence_number = attributes[:birthSequenceNumber] if attributes.key?(:birthSequenceNumber)
208
+
209
+ self.case_number = attributes[:caseNumber] if attributes.key?(:caseNumber)
210
+
211
+ self.coverage_level_code = attributes[:coverageLevelCode] if attributes.key?(:coverageLevelCode)
212
+
213
+ self.date_of_birth = attributes[:dateOfBirth] if attributes.key?(:dateOfBirth)
214
+
215
+ self.end_card_issue_date = attributes[:endCardIssueDate] if attributes.key?(:endCardIssueDate)
216
+
217
+ self.end_plan_issue_date = attributes[:endPlanIssueDate] if attributes.key?(:endPlanIssueDate)
218
+
219
+ self.first_name = attributes[:firstName] if attributes.key?(:firstName)
220
+
221
+ self.gender = attributes[:gender] if attributes.key?(:gender)
222
+
223
+ self.group_number = attributes[:groupNumber] if attributes.key?(:groupNumber)
224
+
225
+ if attributes.key?(:healthCareCodeInformation)
226
+ if (value = attributes[:healthCareCodeInformation]).is_a?(Array)
227
+ self.health_care_code_information = value
228
+ end
229
+ end
230
+
231
+ self.id_card = attributes[:idCard] if attributes.key?(:idCard)
232
+
233
+ self.id_card_issue_date = attributes[:idCardIssueDate] if attributes.key?(:idCardIssueDate)
234
+
235
+ self.last_name = attributes[:lastName] if attributes.key?(:lastName)
236
+
237
+ if attributes.key?(:medicaidRecipientIdentificationNumber)
238
+ self.medicaid_recipient_identification_number = attributes[:medicaidRecipientIdentificationNumber]
239
+ end
240
+
241
+ self.member_id = attributes[:memberId] if attributes.key?(:memberId)
242
+
243
+ self.middle_name = attributes[:middleName] if attributes.key?(:middleName)
244
+
245
+ self.plan_issue_date = attributes[:planIssueDate] if attributes.key?(:planIssueDate)
246
+
247
+ self.provider_code = attributes[:providerCode] if attributes.key?(:providerCode)
248
+
249
+ self.provider_identifier = attributes[:providerIdentifier] if attributes.key?(:providerIdentifier)
250
+
251
+ self.reference_identification_qualifier = attributes[:referenceIdentificationQualifier] if attributes.key?(:referenceIdentificationQualifier)
252
+
253
+ self.spend_down_amount = attributes[:spendDownAmount] if attributes.key?(:spendDownAmount)
254
+
255
+ self.spend_down_total_billed_amount = attributes[:spendDownTotalBilledAmount] if attributes.key?(:spendDownTotalBilledAmount)
256
+
257
+ self.ssn = attributes[:ssn] if attributes.key?(:ssn)
258
+
259
+ self.suffix = attributes[:suffix] if attributes.key?(:suffix)
260
+ end
261
+
262
+ # Show invalid properties with the reasons. Usually used together with valid?
263
+ # @return Array for valid properties with the reasons
264
+ def list_invalid_properties
265
+ []
266
+ end
267
+
268
+ # Check to see if the all the properties in the model are valid
269
+ # @return true if the model is valid
270
+ def valid?
271
+ provider_code_validator = EnumAttributeValidator.new('String', %w[AD AT BI CO CV H HH LA OT P1 P2 PC PE R RF SK SU])
272
+ return false unless provider_code_validator.valid?(@provider_code)
273
+
274
+ reference_identification_qualifier_validator = EnumAttributeValidator.new('String', %w[9K D3 EI HPI PXC SY TJ])
275
+ return false unless reference_identification_qualifier_validator.valid?(@reference_identification_qualifier)
276
+
277
+ true
278
+ end
279
+
280
+ # Custom attribute writer method checking allowed values (enum).
281
+ # @param [Object] provider_code Object to be assigned
282
+ def provider_code=(provider_code)
283
+ validator = EnumAttributeValidator.new('String', %w[AD AT BI CO CV H HH LA OT P1 P2 PC PE R RF SK SU])
284
+ raise ArgumentError, %(invalid value for "provider_code", must be one of #{validator.allowable_values}.) unless validator.valid?(provider_code)
285
+
286
+ @provider_code = provider_code
287
+ end
288
+
289
+ # Custom attribute writer method checking allowed values (enum).
290
+ # @param [Object] reference_identification_qualifier Object to be assigned
291
+ def reference_identification_qualifier=(reference_identification_qualifier)
292
+ validator = EnumAttributeValidator.new('String', %w[9K D3 EI HPI PXC SY TJ])
293
+ unless validator.valid?(reference_identification_qualifier)
294
+ raise ArgumentError, %(invalid value for "reference_identification_qualifier", must be one of #{validator.allowable_values}.)
295
+ end
296
+
297
+ @reference_identification_qualifier = reference_identification_qualifier
298
+ end
299
+
300
+ # Checks equality by comparing each attribute.
301
+ # @param [Object] Object to be compared
302
+ def ==(o)
303
+ return true if equal?(o)
304
+
305
+ self.class == o.class &&
306
+ additional_identification == o.additional_identification &&
307
+ address == o.address &&
308
+ beginning_card_issue_date == o.beginning_card_issue_date &&
309
+ beginning_plan_issue_date == o.beginning_plan_issue_date &&
310
+ birth_sequence_number == o.birth_sequence_number &&
311
+ case_number == o.case_number &&
312
+ coverage_level_code == o.coverage_level_code &&
313
+ date_of_birth == o.date_of_birth &&
314
+ end_card_issue_date == o.end_card_issue_date &&
315
+ end_plan_issue_date == o.end_plan_issue_date &&
316
+ first_name == o.first_name &&
317
+ gender == o.gender &&
318
+ group_number == o.group_number &&
319
+ health_care_code_information == o.health_care_code_information &&
320
+ id_card == o.id_card &&
321
+ id_card_issue_date == o.id_card_issue_date &&
322
+ last_name == o.last_name &&
323
+ medicaid_recipient_identification_number == o.medicaid_recipient_identification_number &&
324
+ member_id == o.member_id &&
325
+ middle_name == o.middle_name &&
326
+ plan_issue_date == o.plan_issue_date &&
327
+ provider_code == o.provider_code &&
328
+ provider_identifier == o.provider_identifier &&
329
+ reference_identification_qualifier == o.reference_identification_qualifier &&
330
+ spend_down_amount == o.spend_down_amount &&
331
+ spend_down_total_billed_amount == o.spend_down_total_billed_amount &&
332
+ ssn == o.ssn &&
333
+ suffix == o.suffix
334
+ end
335
+
336
+ # @see the `==` method
337
+ # @param [Object] Object to be compared
338
+ def eql?(o)
339
+ self == o
340
+ end
341
+
342
+ # Calculates hash code according to all attributes.
343
+ # @return [Fixnum] Hash code
344
+ def hash
345
+ [additional_identification, address, beginning_card_issue_date, beginning_plan_issue_date, birth_sequence_number, case_number, coverage_level_code, date_of_birth, end_card_issue_date, end_plan_issue_date, first_name, gender, group_number, health_care_code_information, id_card, id_card_issue_date, last_name, medicaid_recipient_identification_number, member_id, middle_name, plan_issue_date, provider_code, provider_identifier, reference_identification_qualifier, spend_down_amount, spend_down_total_billed_amount, ssn, suffix].hash
346
+ end
347
+
348
+ # Builds the object from hash
349
+ # @param [Hash] attributes Model attributes in the form of hash
350
+ # @return [Object] Returns the model itself
351
+ def build_from_hash(attributes)
352
+ return nil unless attributes.is_a?(Hash)
353
+
354
+ self.class.swagger_types.each_pair do |key, type|
355
+ if type =~ /\AArray<(.*)>/i
356
+ # check to ensure the input is an array given that the attribute
357
+ # is documented as an array but the input is not
358
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
359
+ send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize(Regexp.last_match(1), v) })
360
+ end
361
+ elsif !attributes[self.class.attribute_map[key]].nil?
362
+ send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
363
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
364
+ end
365
+
366
+ self
367
+ end
368
+
369
+ # Deserializes the data based on type
370
+ # @param string type Data type
371
+ # @param string value Value to be deserialized
372
+ # @return [Object] Deserialized data
373
+ def _deserialize(type, value)
374
+ case type.to_sym
375
+ when :DateTime
376
+ DateTime.parse(value)
377
+ when :Date
378
+ Date.parse(value)
379
+ when :String
380
+ value.to_s
381
+ when :Integer
382
+ value.to_i
383
+ when :Float
384
+ value.to_f
385
+ when :BOOLEAN
386
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
387
+ true
388
+ else
389
+ false
390
+ end
391
+ when :Object
392
+ # generic object (usually a Hash), return directly
393
+ value
394
+ when /\AArray<(?<inner_type>.+)>\z/
395
+ inner_type = Regexp.last_match[:inner_type]
396
+ value.map { |v| _deserialize(inner_type, v) }
397
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
398
+ k_type = Regexp.last_match[:k_type]
399
+ v_type = Regexp.last_match[:v_type]
400
+ {}.tap do |hash|
401
+ value.each do |k, v|
402
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
403
+ end
404
+ end
405
+ else # model
406
+ temp_model = SwaggerClient.const_get(type).new
407
+ temp_model.build_from_hash(value)
408
+ end
409
+ end
410
+
411
+ # Returns the string representation of the object
412
+ # @return [String] String presentation of the object
413
+ def to_s
414
+ to_hash.to_s
415
+ end
416
+
417
+ # to_body is an alias to to_hash (backward compatibility)
418
+ # @return [Hash] Returns the object in the form of hash
419
+ def to_body
420
+ to_hash
421
+ end
422
+
423
+ # Returns the object in the form of hash
424
+ # @return [Hash] Returns the object in the form of hash
425
+ def to_hash
426
+ hash = {}
427
+ self.class.attribute_map.each_pair do |attr, param|
428
+ value = send(attr)
429
+ next if value.nil?
430
+
431
+ hash[param] = _to_hash(value)
432
+ end
433
+ hash
434
+ end
435
+
436
+ # Outputs non-array value in the form of hash
437
+ # For object, use to_hash. Otherwise, just return the value
438
+ # @param [Object] value Any valid value
439
+ # @return [Hash] Returns the value in the form of hash
440
+ def _to_hash(value)
441
+ if value.is_a?(Array)
442
+ value.compact.map { |v| _to_hash(v) }
443
+ elsif value.is_a?(Hash)
444
+ {}.tap do |hash|
445
+ value.each { |k, v| hash[k] = _to_hash(v) }
446
+ end
447
+ elsif value.respond_to? :to_hash
448
+ value.to_hash
449
+ else
450
+ value
451
+ end
452
+ end
453
+ end
454
+ end
455
+ end
456
+ end