vericred_client 0.0.1

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 (59) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +225 -0
  3. data/docs/Applicant.md +14 -0
  4. data/docs/Carrier.md +10 -0
  5. data/docs/CarrierSubsidiary.md +9 -0
  6. data/docs/County.md +16 -0
  7. data/docs/Drug.md +10 -0
  8. data/docs/DrugCoverage.md +13 -0
  9. data/docs/DrugCoverageApi.md +60 -0
  10. data/docs/InlineResponse200.md +9 -0
  11. data/docs/InlineResponse2001.md +8 -0
  12. data/docs/InlineResponse2002.md +10 -0
  13. data/docs/Plan.md +53 -0
  14. data/docs/PlanCounty.md +10 -0
  15. data/docs/PlanSearchResult.md +54 -0
  16. data/docs/PlansApi.md +118 -0
  17. data/docs/Pricing.md +12 -0
  18. data/docs/Provider.md +31 -0
  19. data/docs/ProvidersApi.md +135 -0
  20. data/docs/Query.md +15 -0
  21. data/docs/RatingArea.md +9 -0
  22. data/docs/State.md +15 -0
  23. data/docs/ZipCode.md +9 -0
  24. data/docs/ZipCountiesApi.md +63 -0
  25. data/docs/ZipCounty.md +10 -0
  26. data/lib/vericred_client/api/drug_coverage_api.rb +201 -0
  27. data/lib/vericred_client/api/plans_api.rb +317 -0
  28. data/lib/vericred_client/api/providers_api.rb +303 -0
  29. data/lib/vericred_client/api/zip_counties_api.rb +208 -0
  30. data/lib/vericred_client/api_client.rb +474 -0
  31. data/lib/vericred_client/api_error.rb +149 -0
  32. data/lib/vericred_client/configuration.rb +163 -0
  33. data/lib/vericred_client/models/applicant.rb +358 -0
  34. data/lib/vericred_client/models/carrier.rb +318 -0
  35. data/lib/vericred_client/models/carrier_subsidiary.rb +308 -0
  36. data/lib/vericred_client/models/county.rb +360 -0
  37. data/lib/vericred_client/models/drug.rb +318 -0
  38. data/lib/vericred_client/models/drug_coverage.rb +348 -0
  39. data/lib/vericred_client/models/inline_response_200.rb +308 -0
  40. data/lib/vericred_client/models/inline_response_200_1.rb +297 -0
  41. data/lib/vericred_client/models/inline_response_200_2.rb +321 -0
  42. data/lib/vericred_client/models/plan.rb +748 -0
  43. data/lib/vericred_client/models/plan_county.rb +318 -0
  44. data/lib/vericred_client/models/plan_search_result.rb +758 -0
  45. data/lib/vericred_client/models/pricing.rb +338 -0
  46. data/lib/vericred_client/models/provider.rb +528 -0
  47. data/lib/vericred_client/models/query.rb +364 -0
  48. data/lib/vericred_client/models/rating_area.rb +308 -0
  49. data/lib/vericred_client/models/state.rb +368 -0
  50. data/lib/vericred_client/models/zip_code.rb +308 -0
  51. data/lib/vericred_client/models/zip_county.rb +318 -0
  52. data/lib/vericred_client/version.rb +128 -0
  53. data/lib/vericred_client.rb +175 -0
  54. data/spec/api/drug_coverage_api_spec.rb +168 -0
  55. data/spec/api/plans_api_spec.rb +226 -0
  56. data/spec/api/providers_api_spec.rb +202 -0
  57. data/spec/api/zip_counties_api_spec.rb +171 -0
  58. data/vericred_client.gemspec +31 -0
  59. metadata +285 -0
@@ -0,0 +1,748 @@
1
+ =begin
2
+ Vericred API
3
+
4
+ Vericred's API allows you to search for Health Plans that a specific doctor
5
+ accepts.
6
+
7
+ ## Getting Started
8
+
9
+ Visit our [Developer Portal](https://vericred.3scale.net/access_code?access_code=vericred&cms_token=3545ca52af07bde85b7c0c3aa9d1985e) to
10
+ create an account.
11
+
12
+ Once you have created an account, you can create one Application for
13
+ Production and another for our Sandbox (select the appropriate Plan when
14
+ you create the Application).
15
+
16
+ ## Authentication
17
+
18
+ To authenticate, pass the API Key you created in the Developer Portal as
19
+ a `Vericred-Api-Key` header.
20
+
21
+ `curl -H 'Vericred-Api-Key: YOUR_KEY' "https://api.vericred.com/providers?search_term=Foo&zip_code=11215"`
22
+
23
+ ## Versioning
24
+
25
+ Vericred's API default to the latest version. However, if you need a specific
26
+ version, you can request it with an `Accept-Version` header.
27
+
28
+ The current version is `v3`. Previous versions are `v1` and `v2`.
29
+
30
+ `curl -H 'Vericred-Api-Key: YOUR_KEY' -H 'Accept-Version: v2' "https://api.vericred.com/providers?search_term=Foo&zip_code=11215"`
31
+
32
+ ## Pagination
33
+
34
+ Most endpoints are not paginated. It will be noted in the documentation if/when
35
+ an endpoint is paginated.
36
+
37
+ When pagination is present, a `meta` stanza will be present in the response
38
+ with the total number of records
39
+
40
+ ```
41
+ {
42
+ things: [{ id: 1 }, { id: 2 }],
43
+ meta: { total: 500 }
44
+ }
45
+ ```
46
+
47
+ ## Sideloading
48
+
49
+ When we return multiple levels of an object graph (e.g. `Provider`s and their `State`s
50
+ we sideload the associated data. In this example, we would provide an Array of
51
+ `State`s and a `state_id` for each provider. This is done primarily to reduce the
52
+ payload size since many of the `Provider`s will share a `State`
53
+
54
+ ```
55
+ {
56
+ providers: [{ id: 1, state_id: 1}, { id: 2, state_id: 1 }],
57
+ states: [{ id: 1, code: 'NY' }]
58
+ }
59
+ ```
60
+
61
+ If you need the second level of the object graph, you can just match the
62
+ corresponding id.
63
+
64
+ ## Selecting specific data
65
+
66
+ All endpoints allow you to specify which fields you would like to return.
67
+ This allows you to limit the response to contain only the data you need.
68
+
69
+ For example, let's take a request that returns the following JSON by default
70
+
71
+ ```
72
+ {
73
+ provider: {
74
+ id: 1,
75
+ name: 'John',
76
+ phone: '1234567890',
77
+ field_we_dont_care_about: 'value_we_dont_care_about'
78
+ },
79
+ states: [{
80
+ id: 1,
81
+ name: 'New York',
82
+ code: 'NY',
83
+ field_we_dont_care_about: 'value_we_dont_care_about'
84
+ }]
85
+ }
86
+ ```
87
+
88
+ To limit our results to only return the fields we care about, we specify the
89
+ `select` query string parameter for the corresponding fields in the JSON
90
+ document.
91
+
92
+ In this case, we want to select `name` and `phone` from the `provider` key,
93
+ so we would add the parameters `select=provider.name,provider.phone`.
94
+ We also want the `name` and `code` from the `states` key, so we would
95
+ add the parameters `select=states.name,staes.code`. The id field of
96
+ each document is always returned whether or not it is requested.
97
+
98
+ Our final request would be `GET /providers/12345?select=provider.name,provider.phone,states.name,states.code`
99
+
100
+ The response would be
101
+
102
+ ```
103
+ {
104
+ provider: {
105
+ id: 1,
106
+ name: 'John',
107
+ phone: '1234567890'
108
+ },
109
+ states: [{
110
+ id: 1,
111
+ name: 'New York',
112
+ code: 'NY'
113
+ }]
114
+ }
115
+ ```
116
+
117
+
118
+
119
+ OpenAPI spec version:
120
+
121
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
122
+
123
+
124
+ =end
125
+
126
+ require 'date'
127
+
128
+ module VericredClient
129
+ class Plan
130
+ # Does the plan provide dental coverage for adults?
131
+ attr_accessor :adult_dental
132
+
133
+ # Benefits string for ambulance coverage
134
+ attr_accessor :ambulance
135
+
136
+ # Link to the summary of benefits and coverage (SBC) document.
137
+ attr_accessor :benefits_summary_url
138
+
139
+ # Link to a location to purchase the plan.
140
+ attr_accessor :buy_link
141
+
142
+ # Name of the insurance carrier
143
+ attr_accessor :carrier_name
144
+
145
+ # Does the plan provide dental coverage for children?
146
+ attr_accessor :child_dental
147
+
148
+ # Child eyewear benefits summary
149
+ attr_accessor :child_eyewear
150
+
151
+ # Phone number to contact the insurance carrier
152
+ attr_accessor :customer_service_phone_number
153
+
154
+ # Benefits summary for durable medical equipment
155
+ attr_accessor :durable_medical_equipment
156
+
157
+ # Diagnostic tests benefit summary
158
+ attr_accessor :diagnostic_test
159
+
160
+ # Link to the summary of drug benefits for the plan
161
+ attr_accessor :drug_formulary_url
162
+
163
+ # Description of costs when visiting the ER
164
+ attr_accessor :emergency_room
165
+
166
+ # Deductible for drugs when a family is on the plan.
167
+ attr_accessor :family_drug_deductible
168
+
169
+ # Maximum out-of-pocket for drugs when a family is on the plan
170
+ attr_accessor :family_drug_moop
171
+
172
+ # Deductible when a family is on the plan
173
+ attr_accessor :family_medical_deductible
174
+
175
+ # Maximum out-of-pocket when a family is on the plan
176
+ attr_accessor :family_medical_moop
177
+
178
+ # Cost for generic drugs
179
+ attr_accessor :generic_drugs
180
+
181
+ #
182
+ attr_accessor :hios_issuer_id
183
+
184
+ # Government-issued HIOS plan ID
185
+ attr_accessor :id
186
+
187
+ # Benefits summary for imaging coverage
188
+ attr_accessor :imaging
189
+
190
+ # Deductible for drugs when an individual is on the plan
191
+ attr_accessor :individual_drug_deductible
192
+
193
+ # Maximum out-of-pocket for drugs when an individual is on the plan
194
+ attr_accessor :individual_drug_moop
195
+
196
+ # Deductible when an individual is on the plan
197
+ attr_accessor :individual_medical_deductible
198
+
199
+ # Maximum out-of-pocket when an individual is on the plan
200
+ attr_accessor :individual_medical_moop
201
+
202
+ # Cost under the plan for an inpatient facility
203
+ attr_accessor :inpatient_facility
204
+
205
+ # Cost under the plan for an inpatient physician
206
+ attr_accessor :inpatient_physician
207
+
208
+ # Plan metal grouping (e.g. platinum, gold, silver, etc)
209
+ attr_accessor :level
210
+
211
+ # Link to a copy of the insurance carrier's logo
212
+ attr_accessor :logo_url
213
+
214
+ # Marketing name of the plan
215
+ attr_accessor :name
216
+
217
+ # Total number of Providers in network
218
+ attr_accessor :network_size
219
+
220
+ # Cost under the plan for non-preferred brand drugs
221
+ attr_accessor :non_preferred_brand_drugs
222
+
223
+ # Is the plan on-market?
224
+ attr_accessor :on_market
225
+
226
+ # Is the plan off-market?
227
+ attr_accessor :off_market
228
+
229
+ # Does this plan provide any out of network coverage?
230
+ attr_accessor :out_of_network_coverage
231
+
232
+ # Benefits summary for outpatient facility coverage
233
+ attr_accessor :outpatient_facility
234
+
235
+ # Benefits summary for outpatient mental health coverage
236
+ attr_accessor :outpatient_mental_health
237
+
238
+ # Benefits summary for outpatient physician coverage
239
+ attr_accessor :outpatient_physician
240
+
241
+ # Market in which the plan is offered (on_marketplace, shop, etc)
242
+ attr_accessor :plan_market
243
+
244
+ # Category of the plan (e.g. EPO, HMO, PPO, POS, Indemnity)
245
+ attr_accessor :plan_type
246
+
247
+ # Cost under the plan for perferred brand drugs
248
+ attr_accessor :preferred_brand_drugs
249
+
250
+ # Benefits summary for preventative care
251
+ attr_accessor :preventative_care
252
+
253
+ # Cost under the plan to visit a Primary Care Physician
254
+ attr_accessor :primary_care_physician
255
+
256
+ # Benefits summary for rehabilitation services
257
+ attr_accessor :rehabilitation_services
258
+
259
+ # Cost under the plan to visit a specialist
260
+ attr_accessor :specialist
261
+
262
+ # Cost under the plan for specialty drugs
263
+ attr_accessor :specialty_drugs
264
+
265
+ # Benefits summary for urgent care
266
+ attr_accessor :urgent_care
267
+
268
+ # Attribute mapping from ruby-style variable name to JSON key.
269
+ def self.attribute_map
270
+ {
271
+ :'adult_dental' => :'adult_dental',
272
+ :'ambulance' => :'ambulance',
273
+ :'benefits_summary_url' => :'benefits_summary_url',
274
+ :'buy_link' => :'buy_link',
275
+ :'carrier_name' => :'carrier_name',
276
+ :'child_dental' => :'child_dental',
277
+ :'child_eyewear' => :'child_eyewear',
278
+ :'customer_service_phone_number' => :'customer_service_phone_number',
279
+ :'durable_medical_equipment' => :'durable_medical_equipment',
280
+ :'diagnostic_test' => :'diagnostic_test',
281
+ :'drug_formulary_url' => :'drug_formulary_url',
282
+ :'emergency_room' => :'emergency_room',
283
+ :'family_drug_deductible' => :'family_drug_deductible',
284
+ :'family_drug_moop' => :'family_drug_moop',
285
+ :'family_medical_deductible' => :'family_medical_deductible',
286
+ :'family_medical_moop' => :'family_medical_moop',
287
+ :'generic_drugs' => :'generic_drugs',
288
+ :'hios_issuer_id' => :'hios_issuer_id',
289
+ :'id' => :'id',
290
+ :'imaging' => :'imaging',
291
+ :'individual_drug_deductible' => :'individual_drug_deductible',
292
+ :'individual_drug_moop' => :'individual_drug_moop',
293
+ :'individual_medical_deductible' => :'individual_medical_deductible',
294
+ :'individual_medical_moop' => :'individual_medical_moop',
295
+ :'inpatient_facility' => :'inpatient_facility',
296
+ :'inpatient_physician' => :'inpatient_physician',
297
+ :'level' => :'level',
298
+ :'logo_url' => :'logo_url',
299
+ :'name' => :'name',
300
+ :'network_size' => :'network_size',
301
+ :'non_preferred_brand_drugs' => :'non_preferred_brand_drugs',
302
+ :'on_market' => :'on_market',
303
+ :'off_market' => :'off_market',
304
+ :'out_of_network_coverage' => :'out_of_network_coverage',
305
+ :'outpatient_facility' => :'outpatient_facility',
306
+ :'outpatient_mental_health' => :'outpatient_mental_health',
307
+ :'outpatient_physician' => :'outpatient_physician',
308
+ :'plan_market' => :'plan_market',
309
+ :'plan_type' => :'plan_type',
310
+ :'preferred_brand_drugs' => :'preferred_brand_drugs',
311
+ :'preventative_care' => :'preventative_care',
312
+ :'primary_care_physician' => :'primary_care_physician',
313
+ :'rehabilitation_services' => :'rehabilitation_services',
314
+ :'specialist' => :'specialist',
315
+ :'specialty_drugs' => :'specialty_drugs',
316
+ :'urgent_care' => :'urgent_care'
317
+ }
318
+ end
319
+
320
+ # Attribute type mapping.
321
+ def self.swagger_types
322
+ {
323
+ :'adult_dental' => :'BOOLEAN',
324
+ :'ambulance' => :'String',
325
+ :'benefits_summary_url' => :'String',
326
+ :'buy_link' => :'String',
327
+ :'carrier_name' => :'String',
328
+ :'child_dental' => :'BOOLEAN',
329
+ :'child_eyewear' => :'String',
330
+ :'customer_service_phone_number' => :'String',
331
+ :'durable_medical_equipment' => :'String',
332
+ :'diagnostic_test' => :'String',
333
+ :'drug_formulary_url' => :'String',
334
+ :'emergency_room' => :'String',
335
+ :'family_drug_deductible' => :'String',
336
+ :'family_drug_moop' => :'String',
337
+ :'family_medical_deductible' => :'String',
338
+ :'family_medical_moop' => :'String',
339
+ :'generic_drugs' => :'String',
340
+ :'hios_issuer_id' => :'String',
341
+ :'id' => :'String',
342
+ :'imaging' => :'String',
343
+ :'individual_drug_deductible' => :'String',
344
+ :'individual_drug_moop' => :'String',
345
+ :'individual_medical_deductible' => :'String',
346
+ :'individual_medical_moop' => :'String',
347
+ :'inpatient_facility' => :'String',
348
+ :'inpatient_physician' => :'String',
349
+ :'level' => :'String',
350
+ :'logo_url' => :'String',
351
+ :'name' => :'String',
352
+ :'network_size' => :'Integer',
353
+ :'non_preferred_brand_drugs' => :'String',
354
+ :'on_market' => :'BOOLEAN',
355
+ :'off_market' => :'BOOLEAN',
356
+ :'out_of_network_coverage' => :'BOOLEAN',
357
+ :'outpatient_facility' => :'String',
358
+ :'outpatient_mental_health' => :'String',
359
+ :'outpatient_physician' => :'String',
360
+ :'plan_market' => :'String',
361
+ :'plan_type' => :'String',
362
+ :'preferred_brand_drugs' => :'String',
363
+ :'preventative_care' => :'String',
364
+ :'primary_care_physician' => :'String',
365
+ :'rehabilitation_services' => :'String',
366
+ :'specialist' => :'String',
367
+ :'specialty_drugs' => :'String',
368
+ :'urgent_care' => :'String'
369
+ }
370
+ end
371
+
372
+ # Initializes the object
373
+ # @param [Hash] attributes Model attributes in the form of hash
374
+ def initialize(attributes = {})
375
+ return unless attributes.is_a?(Hash)
376
+
377
+ # convert string to symbol for hash key
378
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
379
+
380
+ if attributes.has_key?(:'adult_dental')
381
+ self.adult_dental = attributes[:'adult_dental']
382
+ end
383
+
384
+ if attributes.has_key?(:'ambulance')
385
+ self.ambulance = attributes[:'ambulance']
386
+ end
387
+
388
+ if attributes.has_key?(:'benefits_summary_url')
389
+ self.benefits_summary_url = attributes[:'benefits_summary_url']
390
+ end
391
+
392
+ if attributes.has_key?(:'buy_link')
393
+ self.buy_link = attributes[:'buy_link']
394
+ end
395
+
396
+ if attributes.has_key?(:'carrier_name')
397
+ self.carrier_name = attributes[:'carrier_name']
398
+ end
399
+
400
+ if attributes.has_key?(:'child_dental')
401
+ self.child_dental = attributes[:'child_dental']
402
+ end
403
+
404
+ if attributes.has_key?(:'child_eyewear')
405
+ self.child_eyewear = attributes[:'child_eyewear']
406
+ end
407
+
408
+ if attributes.has_key?(:'customer_service_phone_number')
409
+ self.customer_service_phone_number = attributes[:'customer_service_phone_number']
410
+ end
411
+
412
+ if attributes.has_key?(:'durable_medical_equipment')
413
+ self.durable_medical_equipment = attributes[:'durable_medical_equipment']
414
+ end
415
+
416
+ if attributes.has_key?(:'diagnostic_test')
417
+ self.diagnostic_test = attributes[:'diagnostic_test']
418
+ end
419
+
420
+ if attributes.has_key?(:'drug_formulary_url')
421
+ self.drug_formulary_url = attributes[:'drug_formulary_url']
422
+ end
423
+
424
+ if attributes.has_key?(:'emergency_room')
425
+ self.emergency_room = attributes[:'emergency_room']
426
+ end
427
+
428
+ if attributes.has_key?(:'family_drug_deductible')
429
+ self.family_drug_deductible = attributes[:'family_drug_deductible']
430
+ end
431
+
432
+ if attributes.has_key?(:'family_drug_moop')
433
+ self.family_drug_moop = attributes[:'family_drug_moop']
434
+ end
435
+
436
+ if attributes.has_key?(:'family_medical_deductible')
437
+ self.family_medical_deductible = attributes[:'family_medical_deductible']
438
+ end
439
+
440
+ if attributes.has_key?(:'family_medical_moop')
441
+ self.family_medical_moop = attributes[:'family_medical_moop']
442
+ end
443
+
444
+ if attributes.has_key?(:'generic_drugs')
445
+ self.generic_drugs = attributes[:'generic_drugs']
446
+ end
447
+
448
+ if attributes.has_key?(:'hios_issuer_id')
449
+ self.hios_issuer_id = attributes[:'hios_issuer_id']
450
+ end
451
+
452
+ if attributes.has_key?(:'id')
453
+ self.id = attributes[:'id']
454
+ end
455
+
456
+ if attributes.has_key?(:'imaging')
457
+ self.imaging = attributes[:'imaging']
458
+ end
459
+
460
+ if attributes.has_key?(:'individual_drug_deductible')
461
+ self.individual_drug_deductible = attributes[:'individual_drug_deductible']
462
+ end
463
+
464
+ if attributes.has_key?(:'individual_drug_moop')
465
+ self.individual_drug_moop = attributes[:'individual_drug_moop']
466
+ end
467
+
468
+ if attributes.has_key?(:'individual_medical_deductible')
469
+ self.individual_medical_deductible = attributes[:'individual_medical_deductible']
470
+ end
471
+
472
+ if attributes.has_key?(:'individual_medical_moop')
473
+ self.individual_medical_moop = attributes[:'individual_medical_moop']
474
+ end
475
+
476
+ if attributes.has_key?(:'inpatient_facility')
477
+ self.inpatient_facility = attributes[:'inpatient_facility']
478
+ end
479
+
480
+ if attributes.has_key?(:'inpatient_physician')
481
+ self.inpatient_physician = attributes[:'inpatient_physician']
482
+ end
483
+
484
+ if attributes.has_key?(:'level')
485
+ self.level = attributes[:'level']
486
+ end
487
+
488
+ if attributes.has_key?(:'logo_url')
489
+ self.logo_url = attributes[:'logo_url']
490
+ end
491
+
492
+ if attributes.has_key?(:'name')
493
+ self.name = attributes[:'name']
494
+ end
495
+
496
+ if attributes.has_key?(:'network_size')
497
+ self.network_size = attributes[:'network_size']
498
+ end
499
+
500
+ if attributes.has_key?(:'non_preferred_brand_drugs')
501
+ self.non_preferred_brand_drugs = attributes[:'non_preferred_brand_drugs']
502
+ end
503
+
504
+ if attributes.has_key?(:'on_market')
505
+ self.on_market = attributes[:'on_market']
506
+ end
507
+
508
+ if attributes.has_key?(:'off_market')
509
+ self.off_market = attributes[:'off_market']
510
+ end
511
+
512
+ if attributes.has_key?(:'out_of_network_coverage')
513
+ self.out_of_network_coverage = attributes[:'out_of_network_coverage']
514
+ end
515
+
516
+ if attributes.has_key?(:'outpatient_facility')
517
+ self.outpatient_facility = attributes[:'outpatient_facility']
518
+ end
519
+
520
+ if attributes.has_key?(:'outpatient_mental_health')
521
+ self.outpatient_mental_health = attributes[:'outpatient_mental_health']
522
+ end
523
+
524
+ if attributes.has_key?(:'outpatient_physician')
525
+ self.outpatient_physician = attributes[:'outpatient_physician']
526
+ end
527
+
528
+ if attributes.has_key?(:'plan_market')
529
+ self.plan_market = attributes[:'plan_market']
530
+ end
531
+
532
+ if attributes.has_key?(:'plan_type')
533
+ self.plan_type = attributes[:'plan_type']
534
+ end
535
+
536
+ if attributes.has_key?(:'preferred_brand_drugs')
537
+ self.preferred_brand_drugs = attributes[:'preferred_brand_drugs']
538
+ end
539
+
540
+ if attributes.has_key?(:'preventative_care')
541
+ self.preventative_care = attributes[:'preventative_care']
542
+ end
543
+
544
+ if attributes.has_key?(:'primary_care_physician')
545
+ self.primary_care_physician = attributes[:'primary_care_physician']
546
+ end
547
+
548
+ if attributes.has_key?(:'rehabilitation_services')
549
+ self.rehabilitation_services = attributes[:'rehabilitation_services']
550
+ end
551
+
552
+ if attributes.has_key?(:'specialist')
553
+ self.specialist = attributes[:'specialist']
554
+ end
555
+
556
+ if attributes.has_key?(:'specialty_drugs')
557
+ self.specialty_drugs = attributes[:'specialty_drugs']
558
+ end
559
+
560
+ if attributes.has_key?(:'urgent_care')
561
+ self.urgent_care = attributes[:'urgent_care']
562
+ end
563
+
564
+ end
565
+
566
+ # Show invalid properties with the reasons. Usually used together with valid?
567
+ # @return Array for valid properies with the reasons
568
+ def list_invalid_properties
569
+ invalid_properties = Array.new
570
+ return invalid_properties
571
+ end
572
+
573
+ # Check to see if the all the properties in the model are valid
574
+ # @return true if the model is valid
575
+ def valid?
576
+ end
577
+
578
+ # Checks equality by comparing each attribute.
579
+ # @param [Object] Object to be compared
580
+ def ==(o)
581
+ return true if self.equal?(o)
582
+ self.class == o.class &&
583
+ adult_dental == o.adult_dental &&
584
+ ambulance == o.ambulance &&
585
+ benefits_summary_url == o.benefits_summary_url &&
586
+ buy_link == o.buy_link &&
587
+ carrier_name == o.carrier_name &&
588
+ child_dental == o.child_dental &&
589
+ child_eyewear == o.child_eyewear &&
590
+ customer_service_phone_number == o.customer_service_phone_number &&
591
+ durable_medical_equipment == o.durable_medical_equipment &&
592
+ diagnostic_test == o.diagnostic_test &&
593
+ drug_formulary_url == o.drug_formulary_url &&
594
+ emergency_room == o.emergency_room &&
595
+ family_drug_deductible == o.family_drug_deductible &&
596
+ family_drug_moop == o.family_drug_moop &&
597
+ family_medical_deductible == o.family_medical_deductible &&
598
+ family_medical_moop == o.family_medical_moop &&
599
+ generic_drugs == o.generic_drugs &&
600
+ hios_issuer_id == o.hios_issuer_id &&
601
+ id == o.id &&
602
+ imaging == o.imaging &&
603
+ individual_drug_deductible == o.individual_drug_deductible &&
604
+ individual_drug_moop == o.individual_drug_moop &&
605
+ individual_medical_deductible == o.individual_medical_deductible &&
606
+ individual_medical_moop == o.individual_medical_moop &&
607
+ inpatient_facility == o.inpatient_facility &&
608
+ inpatient_physician == o.inpatient_physician &&
609
+ level == o.level &&
610
+ logo_url == o.logo_url &&
611
+ name == o.name &&
612
+ network_size == o.network_size &&
613
+ non_preferred_brand_drugs == o.non_preferred_brand_drugs &&
614
+ on_market == o.on_market &&
615
+ off_market == o.off_market &&
616
+ out_of_network_coverage == o.out_of_network_coverage &&
617
+ outpatient_facility == o.outpatient_facility &&
618
+ outpatient_mental_health == o.outpatient_mental_health &&
619
+ outpatient_physician == o.outpatient_physician &&
620
+ plan_market == o.plan_market &&
621
+ plan_type == o.plan_type &&
622
+ preferred_brand_drugs == o.preferred_brand_drugs &&
623
+ preventative_care == o.preventative_care &&
624
+ primary_care_physician == o.primary_care_physician &&
625
+ rehabilitation_services == o.rehabilitation_services &&
626
+ specialist == o.specialist &&
627
+ specialty_drugs == o.specialty_drugs &&
628
+ urgent_care == o.urgent_care
629
+ end
630
+
631
+ # @see the `==` method
632
+ # @param [Object] Object to be compared
633
+ def eql?(o)
634
+ self == o
635
+ end
636
+
637
+ # Calculates hash code according to all attributes.
638
+ # @return [Fixnum] Hash code
639
+ def hash
640
+ [adult_dental, ambulance, benefits_summary_url, buy_link, carrier_name, child_dental, child_eyewear, customer_service_phone_number, durable_medical_equipment, diagnostic_test, drug_formulary_url, emergency_room, family_drug_deductible, family_drug_moop, family_medical_deductible, family_medical_moop, generic_drugs, hios_issuer_id, id, imaging, individual_drug_deductible, individual_drug_moop, individual_medical_deductible, individual_medical_moop, inpatient_facility, inpatient_physician, level, logo_url, name, network_size, non_preferred_brand_drugs, on_market, off_market, out_of_network_coverage, outpatient_facility, outpatient_mental_health, outpatient_physician, plan_market, plan_type, preferred_brand_drugs, preventative_care, primary_care_physician, rehabilitation_services, specialist, specialty_drugs, urgent_care].hash
641
+ end
642
+
643
+ # Builds the object from hash
644
+ # @param [Hash] attributes Model attributes in the form of hash
645
+ # @return [Object] Returns the model itself
646
+ def build_from_hash(attributes)
647
+ return nil unless attributes.is_a?(Hash)
648
+ self.class.swagger_types.each_pair do |key, type|
649
+ if type =~ /^Array<(.*)>/i
650
+ # check to ensure the input is an array given that the the attribute
651
+ # is documented as an array but the input is not
652
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
653
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
654
+ end
655
+ elsif !attributes[self.class.attribute_map[key]].nil?
656
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
657
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
658
+ end
659
+
660
+ self
661
+ end
662
+
663
+ # Deserializes the data based on type
664
+ # @param string type Data type
665
+ # @param string value Value to be deserialized
666
+ # @return [Object] Deserialized data
667
+ def _deserialize(type, value)
668
+ case type.to_sym
669
+ when :DateTime
670
+ DateTime.parse(value)
671
+ when :Date
672
+ Date.parse(value)
673
+ when :String
674
+ value.to_s
675
+ when :Integer
676
+ value.to_i
677
+ when :Float
678
+ value.to_f
679
+ when :BOOLEAN
680
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
681
+ true
682
+ else
683
+ false
684
+ end
685
+ when :Object
686
+ # generic object (usually a Hash), return directly
687
+ value
688
+ when /\AArray<(?<inner_type>.+)>\z/
689
+ inner_type = Regexp.last_match[:inner_type]
690
+ value.map { |v| _deserialize(inner_type, v) }
691
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
692
+ k_type = Regexp.last_match[:k_type]
693
+ v_type = Regexp.last_match[:v_type]
694
+ {}.tap do |hash|
695
+ value.each do |k, v|
696
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
697
+ end
698
+ end
699
+ else # model
700
+ temp_model = VericredClient.const_get(type).new
701
+ temp_model.build_from_hash(value)
702
+ end
703
+ end
704
+
705
+ # Returns the string representation of the object
706
+ # @return [String] String presentation of the object
707
+ def to_s
708
+ to_hash.to_s
709
+ end
710
+
711
+ # to_body is an alias to to_hash (backward compatibility)
712
+ # @return [Hash] Returns the object in the form of hash
713
+ def to_body
714
+ to_hash
715
+ end
716
+
717
+ # Returns the object in the form of hash
718
+ # @return [Hash] Returns the object in the form of hash
719
+ def to_hash
720
+ hash = {}
721
+ self.class.attribute_map.each_pair do |attr, param|
722
+ value = self.send(attr)
723
+ next if value.nil?
724
+ hash[param] = _to_hash(value)
725
+ end
726
+ hash
727
+ end
728
+
729
+ # Outputs non-array value in the form of hash
730
+ # For object, use to_hash. Otherwise, just return the value
731
+ # @param [Object] value Any valid value
732
+ # @return [Hash] Returns the value in the form of hash
733
+ def _to_hash(value)
734
+ if value.is_a?(Array)
735
+ value.compact.map{ |v| _to_hash(v) }
736
+ elsif value.is_a?(Hash)
737
+ {}.tap do |hash|
738
+ value.each { |k, v| hash[k] = _to_hash(v) }
739
+ end
740
+ elsif value.respond_to? :to_hash
741
+ value.to_hash
742
+ else
743
+ value
744
+ end
745
+ end
746
+
747
+ end
748
+ end