vericred_client 0.0.11 → 0.0.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (319) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +92 -21
  3. data/docs/ACAPlan.md +96 -0
  4. data/docs/ACAPlan2018.md +97 -0
  5. data/docs/ACAPlan2018SearchResponse.md +10 -0
  6. data/docs/ACAPlan2018SearchResult.md +100 -0
  7. data/docs/ACAPlan2018ShowResponse.md +8 -0
  8. data/docs/ACAPlanPre2018.md +96 -0
  9. data/docs/ACAPlanPre2018SearchResponse.md +10 -0
  10. data/docs/{PlanSearchResult.md → ACAPlanPre2018SearchResult.md} +30 -11
  11. data/docs/ACAPlanPre2018ShowResponse.md +8 -0
  12. data/docs/BasePlanSearchResponse.md +9 -0
  13. data/docs/Carrier.md +0 -1
  14. data/docs/CarrierGroupRequest.md +10 -0
  15. data/docs/CarrierGroupsApi.md +119 -0
  16. data/docs/CarrierRequest.md +11 -0
  17. data/docs/CarrierSubsidiary.md +1 -0
  18. data/docs/CarrierVerificationPlansApi.md +63 -0
  19. data/docs/CarriersApi.md +119 -0
  20. data/docs/DentalPlan.md +20 -0
  21. data/docs/DentalPlanBenefits.md +30 -0
  22. data/docs/DentalPlanSearchApplicant.md +10 -0
  23. data/docs/DentalPlanSearchRequest.md +15 -0
  24. data/docs/DentalPlanSearchResponse.md +9 -0
  25. data/docs/DentalPlanShowResponse.md +8 -0
  26. data/docs/DentalPlanUpdate.md +16 -0
  27. data/docs/DentalPlanUpdateRequest.md +8 -0
  28. data/docs/DentalPlansApi.md +174 -0
  29. data/docs/DrugCoverage.md +1 -0
  30. data/docs/DrugCoverageResponse.md +1 -2
  31. data/docs/EmbargoRequest.md +13 -0
  32. data/docs/EmbargoesApi.md +119 -0
  33. data/docs/FormulariesApi.md +70 -0
  34. data/docs/IssuerRequest.md +19 -0
  35. data/docs/IssuersApi.md +119 -0
  36. data/docs/MedicalPlansApi.md +122 -0
  37. data/docs/{PlanSearchResponseMeta.md → MetaPlanSearchResponse.md} +2 -1
  38. data/docs/NetworkComparison.md +13 -0
  39. data/docs/NetworkComparisonRequest.md +10 -0
  40. data/docs/NetworkComparisonResponse.md +9 -0
  41. data/docs/NetworksApi.md +58 -0
  42. data/docs/NotificationSubscription.md +8 -0
  43. data/docs/NotificationSubscriptionResponse.md +8 -0
  44. data/docs/Plan.md +2 -61
  45. data/docs/PlanDeleted.md +7 -0
  46. data/docs/PlanIdentifier.md +9 -0
  47. data/docs/PlanMedicare.md +19 -0
  48. data/docs/PlanMedicareBulk.md +21 -0
  49. data/docs/PlanPricingMedicare.md +15 -0
  50. data/docs/PlanSearchResponse.md +1 -1
  51. data/docs/PlanShowResponse.md +1 -1
  52. data/docs/PlansApi.md +111 -1
  53. data/docs/Provider.md +1 -1
  54. data/docs/ProviderDetails.md +1 -1
  55. data/docs/ProviderNetworkEventNotification.md +13 -0
  56. data/docs/ProviderNotificationSubscriptionsApi.md +173 -0
  57. data/docs/ProvidersApi.md +68 -18
  58. data/docs/RateRequest.md +148 -0
  59. data/docs/RateSearch.md +143 -0
  60. data/docs/RatesApi.md +119 -0
  61. data/docs/RequestPlanFind.md +2 -0
  62. data/docs/RequestPlanFindCarrierVerification.md +23 -0
  63. data/docs/RequestProviderNotificationSubscription.md +10 -0
  64. data/docs/RequestProvidersSearch.md +1 -0
  65. data/docs/RequestRatesSearch.md +10 -0
  66. data/docs/ResponseRatesSearch.md +8 -0
  67. data/docs/RxCuiIdentifier.md +11 -0
  68. data/docs/RxCuiIdentifierSearchResponse.md +9 -0
  69. data/docs/VisionPlan.md +20 -0
  70. data/docs/VisionPlanBenefits.md +25 -0
  71. data/docs/VisionPlanSearchApplicant.md +10 -0
  72. data/docs/VisionPlanSearchRequest.md +15 -0
  73. data/docs/VisionPlanSearchResponse.md +9 -0
  74. data/docs/VisionPlanShowResponse.md +8 -0
  75. data/docs/VisionPlanUpdate.md +16 -0
  76. data/docs/VisionPlanUpdateRequest.md +8 -0
  77. data/docs/VisionPlansApi.md +174 -0
  78. data/lib/vericred_client/api/carrier_groups_api.rb +346 -0
  79. data/lib/vericred_client/api/carrier_verification_plans_api.rb +287 -0
  80. data/lib/vericred_client/api/carriers_api.rb +346 -0
  81. data/lib/vericred_client/api/dental_plans_api.rb +403 -0
  82. data/lib/vericred_client/api/drug_coverages_api.rb +5 -3
  83. data/lib/vericred_client/api/drug_packages_api.rb +5 -3
  84. data/lib/vericred_client/api/drugs_api.rb +5 -3
  85. data/lib/vericred_client/api/embargoes_api.rb +346 -0
  86. data/lib/vericred_client/api/formularies_api.rb +295 -0
  87. data/lib/vericred_client/api/issuers_api.rb +346 -0
  88. data/lib/vericred_client/api/medical_plans_api.rb +347 -0
  89. data/lib/vericred_client/api/network_sizes_api.rb +5 -3
  90. data/lib/vericred_client/api/networks_api.rb +66 -3
  91. data/lib/vericred_client/api/plans_api.rb +122 -3
  92. data/lib/vericred_client/api/provider_notification_subscriptions_api.rb +395 -0
  93. data/lib/vericred_client/api/providers_api.rb +82 -27
  94. data/lib/vericred_client/api/rates_api.rb +346 -0
  95. data/lib/vericred_client/api/vision_plans_api.rb +403 -0
  96. data/lib/vericred_client/api/zip_counties_api.rb +5 -3
  97. data/lib/vericred_client/api_client.rb +5 -3
  98. data/lib/vericred_client/api_error.rb +5 -3
  99. data/lib/vericred_client/configuration.rb +5 -3
  100. data/lib/vericred_client/models/aca_plan.rb +1284 -0
  101. data/lib/vericred_client/models/aca_plan2018.rb +1294 -0
  102. data/lib/vericred_client/models/aca_plan2018_search_response.rb +420 -0
  103. data/lib/vericred_client/models/aca_plan2018_search_result.rb +1324 -0
  104. data/lib/vericred_client/models/aca_plan2018_show_response.rb +396 -0
  105. data/lib/vericred_client/models/aca_plan_pre2018.rb +1284 -0
  106. data/lib/vericred_client/models/aca_plan_pre2018_search_response.rb +420 -0
  107. data/lib/vericred_client/models/{plan_search_result.rb → aca_plan_pre2018_search_result.rb} +294 -98
  108. data/lib/vericred_client/models/aca_plan_pre2018_show_response.rb +396 -0
  109. data/lib/vericred_client/models/base.rb +5 -3
  110. data/lib/vericred_client/models/base_plan_search_response.rb +408 -0
  111. data/lib/vericred_client/models/carrier.rb +9 -17
  112. data/lib/vericred_client/models/carrier_group_request.rb +416 -0
  113. data/lib/vericred_client/models/carrier_request.rb +426 -0
  114. data/lib/vericred_client/models/carrier_subsidiary.rb +19 -7
  115. data/lib/vericred_client/models/county.rb +5 -3
  116. data/lib/vericred_client/models/county_bulk.rb +5 -3
  117. data/lib/vericred_client/models/dental_plan.rb +518 -0
  118. data/lib/vericred_client/models/dental_plan_benefits.rb +616 -0
  119. data/lib/vericred_client/models/dental_plan_search_applicant.rb +416 -0
  120. data/lib/vericred_client/models/dental_plan_search_request.rb +468 -0
  121. data/lib/vericred_client/models/dental_plan_search_response.rb +408 -0
  122. data/lib/vericred_client/models/dental_plan_show_response.rb +396 -0
  123. data/lib/vericred_client/models/dental_plan_update.rb +478 -0
  124. data/lib/vericred_client/models/dental_plan_update_request.rb +396 -0
  125. data/lib/vericred_client/models/drug.rb +5 -3
  126. data/lib/vericred_client/models/drug_coverage.rb +18 -4
  127. data/lib/vericred_client/models/drug_coverage_response.rb +12 -24
  128. data/lib/vericred_client/models/drug_package.rb +5 -3
  129. data/lib/vericred_client/models/drug_search_response.rb +5 -3
  130. data/lib/vericred_client/models/embargo_request.rb +446 -0
  131. data/lib/vericred_client/models/formulary.rb +5 -3
  132. data/lib/vericred_client/models/formulary_drug_package_response.rb +5 -3
  133. data/lib/vericred_client/models/formulary_response.rb +5 -3
  134. data/lib/vericred_client/models/issuer_request.rb +506 -0
  135. data/lib/vericred_client/models/meta.rb +5 -3
  136. data/lib/vericred_client/models/{plan_search_response_meta.rb → meta_plan_search_response.rb} +20 -8
  137. data/lib/vericred_client/models/network.rb +5 -3
  138. data/lib/vericred_client/models/network_comparison.rb +446 -0
  139. data/lib/vericred_client/models/network_comparison_request.rb +418 -0
  140. data/lib/vericred_client/models/network_comparison_response.rb +410 -0
  141. data/lib/vericred_client/models/network_details.rb +5 -3
  142. data/lib/vericred_client/models/network_details_response.rb +5 -3
  143. data/lib/vericred_client/models/network_search_response.rb +5 -3
  144. data/lib/vericred_client/models/network_size.rb +5 -3
  145. data/lib/vericred_client/models/notification_subscription.rb +396 -0
  146. data/lib/vericred_client/models/notification_subscription_response.rb +396 -0
  147. data/lib/vericred_client/models/plan.rb +28 -616
  148. data/lib/vericred_client/models/plan_county.rb +5 -3
  149. data/lib/vericred_client/models/plan_county_bulk.rb +5 -3
  150. data/lib/vericred_client/models/plan_deleted.rb +386 -0
  151. data/lib/vericred_client/models/plan_identifier.rb +406 -0
  152. data/lib/vericred_client/models/plan_medicare.rb +510 -0
  153. data/lib/vericred_client/models/plan_medicare_bulk.rb +530 -0
  154. data/lib/vericred_client/models/plan_pricing_medicare.rb +466 -0
  155. data/lib/vericred_client/models/plan_search_response.rb +21 -19
  156. data/lib/vericred_client/models/plan_show_response.rb +6 -4
  157. data/lib/vericred_client/models/provider.rb +21 -17
  158. data/lib/vericred_client/models/provider_details.rb +18 -14
  159. data/lib/vericred_client/models/provider_geocode.rb +5 -3
  160. data/lib/vericred_client/models/provider_network_event_notification.rb +450 -0
  161. data/lib/vericred_client/models/provider_show_response.rb +5 -3
  162. data/lib/vericred_client/models/providers_geocode_response.rb +5 -3
  163. data/lib/vericred_client/models/providers_search_response.rb +5 -3
  164. data/lib/vericred_client/models/rate_request.rb +1796 -0
  165. data/lib/vericred_client/models/rate_search.rb +1746 -0
  166. data/lib/vericred_client/models/rating_area.rb +5 -3
  167. data/lib/vericred_client/models/request_plan_find.rb +26 -4
  168. data/lib/vericred_client/models/request_plan_find_applicant.rb +5 -3
  169. data/lib/vericred_client/models/request_plan_find_carrier_verification.rb +556 -0
  170. data/lib/vericred_client/models/request_plan_find_drug_package.rb +5 -3
  171. data/lib/vericred_client/models/request_plan_find_provider.rb +5 -3
  172. data/lib/vericred_client/models/request_provider_notification_subscription.rb +418 -0
  173. data/lib/vericred_client/models/request_providers_search.rb +18 -4
  174. data/lib/vericred_client/models/request_rates_search.rb +416 -0
  175. data/lib/vericred_client/models/response_rates_search.rb +396 -0
  176. data/lib/vericred_client/models/{applicant.rb → rx_cui_identifier.rb} +23 -51
  177. data/lib/vericred_client/models/rx_cui_identifier_search_response.rb +408 -0
  178. data/lib/vericred_client/models/service_area.rb +5 -3
  179. data/lib/vericred_client/models/service_area_zip_county.rb +5 -3
  180. data/lib/vericred_client/models/state.rb +5 -3
  181. data/lib/vericred_client/models/state_network_size_request.rb +5 -3
  182. data/lib/vericred_client/models/state_network_size_response.rb +5 -3
  183. data/lib/vericred_client/models/vision_plan.rb +518 -0
  184. data/lib/vericred_client/models/vision_plan_benefits.rb +566 -0
  185. data/lib/vericred_client/models/vision_plan_search_applicant.rb +416 -0
  186. data/lib/vericred_client/models/vision_plan_search_request.rb +468 -0
  187. data/lib/vericred_client/models/vision_plan_search_response.rb +408 -0
  188. data/lib/vericred_client/models/vision_plan_show_response.rb +396 -0
  189. data/lib/vericred_client/models/vision_plan_update.rb +478 -0
  190. data/lib/vericred_client/models/vision_plan_update_request.rb +396 -0
  191. data/lib/vericred_client/models/zip_code.rb +5 -3
  192. data/lib/vericred_client/models/zip_counties_response.rb +5 -3
  193. data/lib/vericred_client/models/zip_county.rb +5 -3
  194. data/lib/vericred_client/models/zip_county_bulk.rb +5 -3
  195. data/lib/vericred_client/models/zip_county_response.rb +5 -3
  196. data/lib/vericred_client/version.rb +6 -4
  197. data/lib/vericred_client.rb +66 -6
  198. data/spec/api/carrier_groups_api_spec.rb +267 -0
  199. data/spec/api/carrier_verification_plans_api_spec.rb +254 -0
  200. data/spec/api/carriers_api_spec.rb +267 -0
  201. data/spec/api/dental_plans_api_spec.rb +279 -0
  202. data/spec/api/drug_coverages_api_spec.rb +5 -3
  203. data/spec/api/drug_packages_api_spec.rb +5 -3
  204. data/spec/api/drugs_api_spec.rb +5 -3
  205. data/spec/api/embargoes_api_spec.rb +267 -0
  206. data/spec/api/formularies_api_spec.rb +257 -0
  207. data/spec/api/issuers_api_spec.rb +267 -0
  208. data/spec/api/medical_plans_api_spec.rb +267 -0
  209. data/spec/api/network_sizes_api_spec.rb +5 -3
  210. data/spec/api/networks_api_spec.rb +18 -3
  211. data/spec/api/plans_api_spec.rb +30 -3
  212. data/spec/api/provider_notification_subscriptions_api_spec.rb +278 -0
  213. data/spec/api/providers_api_spec.rb +23 -10
  214. data/spec/api/rates_api_spec.rb +267 -0
  215. data/spec/api/vision_plans_api_spec.rb +279 -0
  216. data/spec/api/zip_counties_api_spec.rb +5 -3
  217. data/spec/api_client_spec.rb +5 -3
  218. data/spec/configuration_spec.rb +5 -3
  219. data/spec/models/aca_plan2018_search_response_spec.rb +261 -0
  220. data/spec/models/aca_plan2018_search_result_spec.rb +801 -0
  221. data/spec/models/aca_plan2018_show_response_spec.rb +249 -0
  222. data/spec/models/aca_plan2018_spec.rb +783 -0
  223. data/spec/models/aca_plan_pre2018_search_response_spec.rb +261 -0
  224. data/spec/models/aca_plan_pre2018_search_result_spec.rb +795 -0
  225. data/spec/models/aca_plan_pre2018_show_response_spec.rb +249 -0
  226. data/spec/models/aca_plan_pre2018_spec.rb +777 -0
  227. data/spec/models/{plan_search_result_spec.rb → aca_plan_spec.rb} +149 -51
  228. data/spec/models/base_plan_search_response_spec.rb +255 -0
  229. data/spec/models/base_spec.rb +5 -3
  230. data/spec/models/carrier_group_request_spec.rb +261 -0
  231. data/spec/models/carrier_request_spec.rb +267 -0
  232. data/spec/models/carrier_spec.rb +5 -9
  233. data/spec/models/carrier_subsidiary_spec.rb +11 -3
  234. data/spec/models/county_bulk_spec.rb +5 -3
  235. data/spec/models/county_spec.rb +5 -3
  236. data/spec/models/dental_plan_benefits_spec.rb +381 -0
  237. data/spec/models/dental_plan_search_applicant_spec.rb +261 -0
  238. data/spec/models/dental_plan_search_request_spec.rb +291 -0
  239. data/spec/models/dental_plan_search_response_spec.rb +255 -0
  240. data/spec/models/dental_plan_show_response_spec.rb +249 -0
  241. data/spec/models/dental_plan_spec.rb +321 -0
  242. data/spec/models/dental_plan_update_request_spec.rb +249 -0
  243. data/spec/models/dental_plan_update_spec.rb +297 -0
  244. data/spec/models/drug_coverage_response_spec.rb +6 -10
  245. data/spec/models/drug_coverage_spec.rb +11 -3
  246. data/spec/models/drug_package_spec.rb +5 -3
  247. data/spec/models/drug_search_response_spec.rb +5 -3
  248. data/spec/models/drug_spec.rb +5 -3
  249. data/spec/models/{applicant_spec.rb → embargo_request_spec.rb} +17 -21
  250. data/spec/models/formulary_drug_package_response_spec.rb +5 -3
  251. data/spec/models/formulary_response_spec.rb +5 -3
  252. data/spec/models/formulary_spec.rb +5 -3
  253. data/spec/models/issuer_request_spec.rb +315 -0
  254. data/spec/models/meta_plan_search_response_spec.rb +261 -0
  255. data/spec/models/meta_spec.rb +5 -3
  256. data/spec/models/network_comparison_request_spec.rb +261 -0
  257. data/spec/models/network_comparison_response_spec.rb +255 -0
  258. data/spec/models/network_comparison_spec.rb +279 -0
  259. data/spec/models/network_details_response_spec.rb +5 -3
  260. data/spec/models/network_details_spec.rb +5 -3
  261. data/spec/models/network_search_response_spec.rb +5 -3
  262. data/spec/models/network_size_spec.rb +5 -3
  263. data/spec/models/network_spec.rb +5 -3
  264. data/spec/models/notification_subscription_response_spec.rb +249 -0
  265. data/spec/models/notification_subscription_spec.rb +249 -0
  266. data/spec/models/plan_county_bulk_spec.rb +5 -3
  267. data/spec/models/plan_county_spec.rb +5 -3
  268. data/spec/models/plan_deleted_spec.rb +243 -0
  269. data/spec/models/{plan_search_response_meta_spec.rb → plan_identifier_spec.rb} +13 -11
  270. data/spec/models/plan_medicare_bulk_spec.rb +327 -0
  271. data/spec/models/plan_medicare_spec.rb +315 -0
  272. data/spec/models/plan_pricing_medicare_spec.rb +291 -0
  273. data/spec/models/plan_search_response_spec.rb +7 -5
  274. data/spec/models/plan_show_response_spec.rb +5 -3
  275. data/spec/models/plan_spec.rb +8 -360
  276. data/spec/models/provider_details_spec.rb +11 -9
  277. data/spec/models/provider_geocode_spec.rb +5 -3
  278. data/spec/models/provider_network_event_notification_spec.rb +279 -0
  279. data/spec/models/provider_show_response_spec.rb +5 -3
  280. data/spec/models/provider_spec.rb +11 -9
  281. data/spec/models/providers_geocode_response_spec.rb +5 -3
  282. data/spec/models/providers_search_response_spec.rb +5 -3
  283. data/spec/models/rate_request_spec.rb +1089 -0
  284. data/spec/models/rate_search_spec.rb +1059 -0
  285. data/spec/models/rating_area_spec.rb +5 -3
  286. data/spec/models/request_plan_find_applicant_spec.rb +5 -3
  287. data/spec/models/request_plan_find_carrier_verification_spec.rb +339 -0
  288. data/spec/models/request_plan_find_drug_package_spec.rb +5 -3
  289. data/spec/models/request_plan_find_provider_spec.rb +5 -3
  290. data/spec/models/request_plan_find_spec.rb +17 -3
  291. data/spec/models/request_provider_notification_subscription_spec.rb +261 -0
  292. data/spec/models/request_providers_search_spec.rb +11 -3
  293. data/spec/models/request_rates_search_spec.rb +261 -0
  294. data/spec/models/response_rates_search_spec.rb +249 -0
  295. data/spec/models/rx_cui_identifier_search_response_spec.rb +255 -0
  296. data/spec/models/rx_cui_identifier_spec.rb +267 -0
  297. data/spec/models/service_area_spec.rb +5 -3
  298. data/spec/models/service_area_zip_county_spec.rb +5 -3
  299. data/spec/models/state_network_size_request_spec.rb +5 -3
  300. data/spec/models/state_network_size_response_spec.rb +5 -3
  301. data/spec/models/state_spec.rb +5 -3
  302. data/spec/models/vision_plan_benefits_spec.rb +351 -0
  303. data/spec/models/vision_plan_search_applicant_spec.rb +261 -0
  304. data/spec/models/vision_plan_search_request_spec.rb +291 -0
  305. data/spec/models/vision_plan_search_response_spec.rb +255 -0
  306. data/spec/models/vision_plan_show_response_spec.rb +249 -0
  307. data/spec/models/vision_plan_spec.rb +321 -0
  308. data/spec/models/vision_plan_update_request_spec.rb +249 -0
  309. data/spec/models/vision_plan_update_spec.rb +297 -0
  310. data/spec/models/zip_code_spec.rb +5 -3
  311. data/spec/models/zip_counties_response_spec.rb +5 -3
  312. data/spec/models/zip_county_bulk_spec.rb +5 -3
  313. data/spec/models/zip_county_response_spec.rb +5 -3
  314. data/spec/models/zip_county_spec.rb +5 -3
  315. data/spec/spec_helper.rb +5 -3
  316. data/vericred_client.gemspec +5 -3
  317. metadata +247 -16
  318. data/docs/Applicant.md +0 -14
  319. data/git_push.sh +0 -67
@@ -0,0 +1,1294 @@
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://developers.vericred.com) 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
+ ## SDKs
17
+
18
+ Our API follows standard REST conventions, so you can use any HTTP client
19
+ to integrate with us. You will likely find it easier to use one of our
20
+ [autogenerated SDKs](https://github.com/vericred/?query=vericred-),
21
+ which we make available for several common programming languages.
22
+
23
+ ## Authentication
24
+
25
+ To authenticate, pass the API Key you created in the Developer Portal as
26
+ a `Vericred-Api-Key` header.
27
+
28
+ `curl -H 'Vericred-Api-Key: YOUR_KEY' "https://api.vericred.com/providers?search_term=Foo&zip_code=11215"`
29
+
30
+ ## Versioning
31
+
32
+ Vericred's API default to the latest version. However, if you need a specific
33
+ version, you can request it with an `Accept-Version` header.
34
+
35
+ The current version is `v3`. Previous versions are `v1` and `v2`.
36
+
37
+ `curl -H 'Vericred-Api-Key: YOUR_KEY' -H 'Accept-Version: v2' "https://api.vericred.com/providers?search_term=Foo&zip_code=11215"`
38
+
39
+ ## Pagination
40
+
41
+ Endpoints that accept `page` and `per_page` parameters are paginated. They expose
42
+ four additional fields that contain data about your position in the response,
43
+ namely `Total`, `Per-Page`, `Link`, and `Page` as described in [RFC-5988](https://tools.ietf.org/html/rfc5988).
44
+
45
+ For example, to display 5 results per page and view the second page of a
46
+ `GET` to `/networks`, your final request would be `GET /networks?....page=2&per_page=5`.
47
+
48
+ ## Sideloading
49
+
50
+ When we return multiple levels of an object graph (e.g. `Provider`s and their `State`s
51
+ we sideload the associated data. In this example, we would provide an Array of
52
+ `State`s and a `state_id` for each provider. This is done primarily to reduce the
53
+ payload size since many of the `Provider`s will share a `State`
54
+
55
+ ```
56
+ {
57
+ providers: [{ id: 1, state_id: 1}, { id: 2, state_id: 1 }],
58
+ states: [{ id: 1, code: 'NY' }]
59
+ }
60
+ ```
61
+
62
+ If you need the second level of the object graph, you can just match the
63
+ corresponding id.
64
+
65
+ ## Selecting specific data
66
+
67
+ All endpoints allow you to specify which fields you would like to return.
68
+ This allows you to limit the response to contain only the data you need.
69
+
70
+ For example, let's take a request that returns the following JSON by default
71
+
72
+ ```
73
+ {
74
+ provider: {
75
+ id: 1,
76
+ name: 'John',
77
+ phone: '1234567890',
78
+ field_we_dont_care_about: 'value_we_dont_care_about'
79
+ },
80
+ states: [{
81
+ id: 1,
82
+ name: 'New York',
83
+ code: 'NY',
84
+ field_we_dont_care_about: 'value_we_dont_care_about'
85
+ }]
86
+ }
87
+ ```
88
+
89
+ To limit our results to only return the fields we care about, we specify the
90
+ `select` query string parameter for the corresponding fields in the JSON
91
+ document.
92
+
93
+ In this case, we want to select `name` and `phone` from the `provider` key,
94
+ so we would add the parameters `select=provider.name,provider.phone`.
95
+ We also want the `name` and `code` from the `states` key, so we would
96
+ add the parameters `select=states.name,states.code`. The id field of
97
+ each document is always returned whether or not it is requested.
98
+
99
+ Our final request would be `GET /providers/12345?select=provider.name,provider.phone,states.name,states.code`
100
+
101
+ The response would be
102
+
103
+ ```
104
+ {
105
+ provider: {
106
+ id: 1,
107
+ name: 'John',
108
+ phone: '1234567890'
109
+ },
110
+ states: [{
111
+ id: 1,
112
+ name: 'New York',
113
+ code: 'NY'
114
+ }]
115
+ }
116
+ ```
117
+
118
+ ## Benefits summary format
119
+ Benefit cost-share strings are formatted to capture:
120
+ * Network tiers
121
+ * Compound or conditional cost-share
122
+ * Limits on the cost-share
123
+ * Benefit-specific maximum out-of-pocket costs
124
+
125
+ **Example #1**
126
+ As an example, we would represent [this Summary of Benefits & Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/33602TX0780032.pdf) as:
127
+
128
+ * **Hospital stay facility fees**:
129
+ - Network Provider: `$400 copay/admit plus 20% coinsurance`
130
+ - Out-of-Network Provider: `$1,500 copay/admit plus 50% coinsurance`
131
+ - Vericred's format for this benefit: `In-Network: $400 before deductible then 20% after deductible / Out-of-Network: $1,500 before deductible then 50% after deductible`
132
+
133
+ * **Rehabilitation services:**
134
+ - Network Provider: `20% coinsurance`
135
+ - Out-of-Network Provider: `50% coinsurance`
136
+ - Limitations & Exceptions: `35 visit maximum per benefit period combined with Chiropractic care.`
137
+ - Vericred's format for this benefit: `In-Network: 20% after deductible / Out-of-Network: 50% after deductible | limit: 35 visit(s) per Benefit Period`
138
+
139
+ **Example #2**
140
+ In [this other Summary of Benefits & Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/40733CA0110568.pdf), the **specialty_drugs** cost-share has a maximum out-of-pocket for in-network pharmacies.
141
+ * **Specialty drugs:**
142
+ - Network Provider: `40% coinsurance up to a $500 maximum for up to a 30 day supply`
143
+ - Out-of-Network Provider `Not covered`
144
+ - Vericred's format for this benefit: `In-Network: 40% after deductible, up to $500 per script / Out-of-Network: 100%`
145
+
146
+ **BNF**
147
+
148
+ Here's a description of the benefits summary string, represented as a context-free grammar:
149
+
150
+ ```
151
+ root ::= coverage
152
+
153
+ coverage ::= (simple_coverage | tiered_coverage) (space pipe space coverage_modifier)?
154
+ tiered_coverage ::= tier (space slash space tier)*
155
+ tier ::= tier_name colon space (tier_coverage | not_applicable)
156
+ tier_coverage ::= simple_coverage (space (then | or | and) space simple_coverage)* tier_limitation?
157
+ simple_coverage ::= (pre_coverage_limitation space)? coverage_amount (space post_coverage_limitation)? (comma? space coverage_condition)?
158
+ coverage_modifier ::= limit_condition colon space (((simple_coverage | simple_limitation) (semicolon space see_carrier_documentation)?) | see_carrier_documentation | waived_if_admitted | shared_across_tiers)
159
+ waived_if_admitted ::= ("copay" space)? "waived if admitted"
160
+ simple_limitation ::= pre_coverage_limitation space "copay applies"
161
+ tier_name ::= "In-Network-Tier-2" | "Out-of-Network" | "In-Network"
162
+ limit_condition ::= "limit" | "condition"
163
+ tier_limitation ::= comma space "up to" space (currency | (integer space time_unit plural?)) (space post_coverage_limitation)?
164
+ coverage_amount ::= currency | unlimited | included | unknown | percentage | (digits space (treatment_unit | time_unit) plural?)
165
+ pre_coverage_limitation ::= first space digits space time_unit plural?
166
+ post_coverage_limitation ::= (((then space currency) | "per condition") space)? "per" space (treatment_unit | (integer space time_unit) | time_unit) plural?
167
+ coverage_condition ::= ("before deductible" | "after deductible" | "penalty" | allowance | "in-state" | "out-of-state") (space allowance)?
168
+ allowance ::= upto_allowance | after_allowance
169
+ upto_allowance ::= "up to" space (currency space)? "allowance"
170
+ after_allowance ::= "after" space (currency space)? "allowance"
171
+ see_carrier_documentation ::= "see carrier documentation for more information"
172
+ shared_across_tiers ::= "shared across all tiers"
173
+ unknown ::= "unknown"
174
+ unlimited ::= /[uU]nlimited/
175
+ included ::= /[iI]ncluded in [mM]edical/
176
+ time_unit ::= /[hH]our/ | (((/[cC]alendar/ | /[cC]ontract/) space)? /[yY]ear/) | /[mM]onth/ | /[dD]ay/ | /[wW]eek/ | /[vV]isit/ | /[lL]ifetime/ | ((((/[bB]enefit/ plural?) | /[eE]ligibility/) space)? /[pP]eriod/)
177
+ treatment_unit ::= /[pP]erson/ | /[gG]roup/ | /[cC]ondition/ | /[sS]cript/ | /[vV]isit/ | /[eE]xam/ | /[iI]tem/ | /[sS]tay/ | /[tT]reatment/ | /[aA]dmission/ | /[eE]pisode/
178
+ comma ::= ","
179
+ colon ::= ":"
180
+ semicolon ::= ";"
181
+ pipe ::= "|"
182
+ slash ::= "/"
183
+ plural ::= "(s)" | "s"
184
+ then ::= "then" | ("," space) | space
185
+ or ::= "or"
186
+ and ::= "and"
187
+ not_applicable ::= "Not Applicable" | "N/A" | "NA"
188
+ first ::= "first"
189
+ currency ::= "$" number
190
+ percentage ::= number "%"
191
+ number ::= float | integer
192
+ float ::= digits "." digits
193
+ integer ::= /[0-9]/+ (comma_int | under_int)*
194
+ comma_int ::= ("," /[0-9]/*3) !"_"
195
+ under_int ::= ("_" /[0-9]/*3) !","
196
+ digits ::= /[0-9]/+ ("_" /[0-9]/+)*
197
+ space ::= /[ \t]/+
198
+ ```
199
+
200
+
201
+
202
+ OpenAPI spec version: 1.0.0
203
+
204
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
205
+
206
+ Licensed under the Apache License, Version 2.0 (the "License");
207
+ you may not use this file except in compliance with the License.
208
+ You may obtain a copy of the License at
209
+
210
+ http://www.apache.org/licenses/LICENSE-2.0
211
+
212
+ Unless required by applicable law or agreed to in writing, software
213
+ distributed under the License is distributed on an "AS IS" BASIS,
214
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
215
+ See the License for the specific language governing permissions and
216
+ limitations under the License.
217
+
218
+ =end
219
+
220
+ require 'date'
221
+
222
+ module VericredClient
223
+
224
+ class ACAPlan2018
225
+ # Name of the insurance carrier
226
+ attr_accessor :carrier_name
227
+
228
+ # Alternate name for the Plan
229
+ attr_accessor :display_name
230
+
231
+ # Effective date of coverage.
232
+ attr_accessor :effective_date
233
+
234
+ # Expiration date of coverage.
235
+ attr_accessor :expiration_date
236
+
237
+ # List of identifiers of this Plan
238
+ attr_accessor :identifiers
239
+
240
+ # Marketing name of the plan
241
+ attr_accessor :name
242
+
243
+ # List of Vericred-generated network_ids
244
+ attr_accessor :network_ids
245
+
246
+ # Total number of Providers in network
247
+ attr_accessor :network_size
248
+
249
+ # Category of the plan (e.g. EPO, HMO, PPO, POS, Indemnity, PACE, Medicare-Medicaid, HMO w/POS, Cost, FFS, MSA)
250
+ attr_accessor :plan_type
251
+
252
+ # Foreign key for service area
253
+ attr_accessor :service_area_id
254
+
255
+ # Source of the plan benefit data
256
+ attr_accessor :source
257
+
258
+ # The type of the Plan
259
+ attr_accessor :type
260
+
261
+ # Does the plan provide dental coverage for adults?
262
+ attr_accessor :adult_dental
263
+
264
+ # True if the plan allows dependents up to age 29
265
+ attr_accessor :age29_rider
266
+
267
+ # Benefits string for ambulance coverage
268
+ attr_accessor :ambulance
269
+
270
+ # Link to the summary of benefits and coverage (SBC) document.
271
+ attr_accessor :benefits_summary_url
272
+
273
+ # Link to a location to purchase the plan.
274
+ attr_accessor :buy_link
275
+
276
+ # Does the plan provide dental coverage for children?
277
+ attr_accessor :child_dental
278
+
279
+ # Child eyewear benefits summary
280
+ attr_accessor :child_eyewear
281
+
282
+ # Child eye exam benefits summary
283
+ attr_accessor :child_eye_exam
284
+
285
+ # Phone number to contact the insurance carrier
286
+ attr_accessor :customer_service_phone_number
287
+
288
+ # Benefits summary for durable medical equipment
289
+ attr_accessor :durable_medical_equipment
290
+
291
+ # Diagnostic tests benefit summary
292
+ attr_accessor :diagnostic_test
293
+
294
+ # True if plan does not cover domestic partners
295
+ attr_accessor :dp_rider
296
+
297
+ # Link to the summary of drug benefits for the plan
298
+ attr_accessor :drug_formulary_url
299
+
300
+ # Description of costs when visiting the ER
301
+ attr_accessor :emergency_room
302
+
303
+ # Deductible for drugs when a family is on the plan.
304
+ attr_accessor :family_drug_deductible
305
+
306
+ # Maximum out-of-pocket for drugs when a family is on the plan
307
+ attr_accessor :family_drug_moop
308
+
309
+ # Deductible when a family is on the plan
310
+ attr_accessor :family_medical_deductible
311
+
312
+ # Maximum out-of-pocket when a family is on the plan
313
+ attr_accessor :family_medical_moop
314
+
315
+ # True if plan does not cover family planning
316
+ attr_accessor :fp_rider
317
+
318
+ # Cost for generic drugs
319
+ attr_accessor :generic_drugs
320
+
321
+ # Habilitation services benefits summary
322
+ attr_accessor :habilitation_services
323
+
324
+ #
325
+ attr_accessor :hios_issuer_id
326
+
327
+ # Home health care benefits summary
328
+ attr_accessor :home_health_care
329
+
330
+ # Hospice service benefits summary
331
+ attr_accessor :hospice_service
332
+
333
+ # Is the plan HSA eligible?
334
+ attr_accessor :hsa_eligible
335
+
336
+ # Government-issued HIOS plan ID
337
+ attr_accessor :id
338
+
339
+ # Benefits summary for imaging coverage
340
+ attr_accessor :imaging
341
+
342
+ # Deductible for drugs when an individual is on the plan
343
+ attr_accessor :individual_drug_deductible
344
+
345
+ # Maximum out-of-pocket for drugs when an individual is on the plan
346
+ attr_accessor :individual_drug_moop
347
+
348
+ # Deductible when an individual is on the plan
349
+ attr_accessor :individual_medical_deductible
350
+
351
+ # Maximum out-of-pocket when an individual is on the plan
352
+ attr_accessor :individual_medical_moop
353
+
354
+ # Inpatient birth benefits summary
355
+ attr_accessor :inpatient_birth
356
+
357
+ # Cost under the plan for an inpatient facility
358
+ attr_accessor :inpatient_facility
359
+
360
+ # Inpatient mental helath benefits summary
361
+ attr_accessor :inpatient_mental_health
362
+
363
+ # Cost under the plan for an inpatient physician
364
+ attr_accessor :inpatient_physician
365
+
366
+ # Inpatient substance abuse benefits summary
367
+ attr_accessor :inpatient_substance
368
+
369
+ # List of NPI numbers for Providers passed in who accept this Plan
370
+ attr_accessor :in_network_ids
371
+
372
+ # Plan metal grouping (e.g. platinum, gold, silver, etc)
373
+ attr_accessor :level
374
+
375
+ # Link to a copy of the insurance carrier's logo
376
+ attr_accessor :logo_url
377
+
378
+ # Cost under the plan for non-preferred brand drugs
379
+ attr_accessor :non_preferred_brand_drugs
380
+
381
+ # Is the plan on-market?
382
+ attr_accessor :on_market
383
+
384
+ # Is the plan off-market?
385
+ attr_accessor :off_market
386
+
387
+ # Does this plan provide any out of network coverage?
388
+ attr_accessor :out_of_network_coverage
389
+
390
+ # List of NPI numbers for Providers passed in who do not accept this Plan
391
+ attr_accessor :out_of_network_ids
392
+
393
+ # Benefits summary for outpatient facility coverage
394
+ attr_accessor :outpatient_facility
395
+
396
+ # Benefits summary for outpatient mental health coverage
397
+ attr_accessor :outpatient_mental_health
398
+
399
+ # Benefits summary for outpatient physician coverage
400
+ attr_accessor :outpatient_physician
401
+
402
+ # Outpatient substance abuse benefits summary
403
+ attr_accessor :outpatient_substance
404
+
405
+ # Market in which the plan is offered (on_marketplace, shop, etc)
406
+ attr_accessor :plan_market
407
+
408
+ # Cost under the plan for perferred brand drugs
409
+ attr_accessor :preferred_brand_drugs
410
+
411
+ # Inpatient substance abuse benefits summary
412
+ attr_accessor :prenatal_postnatal_care
413
+
414
+ # Benefits summary for preventative care
415
+ attr_accessor :preventative_care
416
+
417
+ # Cumulative premium amount after subsidy
418
+ attr_accessor :premium_subsidized
419
+
420
+ # Cumulative premium amount
421
+ attr_accessor :premium
422
+
423
+ # Source of the base pricing data
424
+ attr_accessor :premium_source
425
+
426
+ # Cost under the plan to visit a Primary Care Physician
427
+ attr_accessor :primary_care_physician
428
+
429
+ # Benefits summary for rehabilitation services
430
+ attr_accessor :rehabilitation_services
431
+
432
+ # Benefits summary for skilled nursing services
433
+ attr_accessor :skilled_nursing
434
+
435
+ # Cost under the plan to visit a specialist
436
+ attr_accessor :specialist
437
+
438
+ # Cost under the plan for specialty drugs
439
+ attr_accessor :specialty_drugs
440
+
441
+ # Benefits summary for urgent care
442
+ attr_accessor :urgent_care
443
+
444
+ # Percentage of total average costs for covered benefits that a plan will cover.
445
+ attr_accessor :actuarial_value
446
+
447
+ # Chiropractic services benefits summary
448
+ attr_accessor :chiropractic_services
449
+
450
+ # Standard cost share for most benefits
451
+ attr_accessor :coinsurance
452
+
453
+ # Is the individual deductible for each covered person, embedded in the family deductible
454
+ attr_accessor :embedded_deductible
455
+
456
+ # Does the plan's network require a physician referral?
457
+ attr_accessor :gated
458
+
459
+ # Imaging center benefits summary
460
+ attr_accessor :imaging_center
461
+
462
+ # Imaging physician benefits summary
463
+ attr_accessor :imaging_physician
464
+
465
+ # Lab test benefits summary
466
+ attr_accessor :lab_test
467
+
468
+ # Multiple of the standard Rx cost share for orders filled via mail order
469
+ attr_accessor :mail_order_rx
470
+
471
+ # Non-preferred generic drugs benefits summary
472
+ attr_accessor :nonpreferred_generic_drug_share
473
+
474
+ # Non-preferred specialty drugs benefits summary
475
+ attr_accessor :nonpreferred_specialty_drug_share
476
+
477
+ # Outpatient ambulatory care center benefits summary
478
+ attr_accessor :outpatient_ambulatory_care_center
479
+
480
+ # Are deductibles and MOOPs reset on Dec-31 (\"calendar year\"), 365 days after enrollment date (\"plan year\"), or are both options available (\"both\")?
481
+ attr_accessor :plan_calendar
482
+
483
+ # Prenatal care benefits summary
484
+ attr_accessor :prenatal_care
485
+
486
+ # Post-natal care benefits summary
487
+ attr_accessor :postnatal_care
488
+
489
+ # Does the plan cover full-time, year-round, nursing facilities?
490
+ attr_accessor :skilled_nursing_facility_365
491
+
492
+ # Percentage of essential plan benefits
493
+ attr_accessor :essential_health_benefits_percentage
494
+
495
+
496
+ # Attribute mapping from ruby-style variable name to JSON key.
497
+ def self.attribute_map
498
+ {
499
+ :'carrier_name' => :'carrier_name',
500
+ :'display_name' => :'display_name',
501
+ :'effective_date' => :'effective_date',
502
+ :'expiration_date' => :'expiration_date',
503
+ :'identifiers' => :'identifiers',
504
+ :'name' => :'name',
505
+ :'network_ids' => :'network_ids',
506
+ :'network_size' => :'network_size',
507
+ :'plan_type' => :'plan_type',
508
+ :'service_area_id' => :'service_area_id',
509
+ :'source' => :'source',
510
+ :'type' => :'type',
511
+ :'adult_dental' => :'adult_dental',
512
+ :'age29_rider' => :'age29_rider',
513
+ :'ambulance' => :'ambulance',
514
+ :'benefits_summary_url' => :'benefits_summary_url',
515
+ :'buy_link' => :'buy_link',
516
+ :'child_dental' => :'child_dental',
517
+ :'child_eyewear' => :'child_eyewear',
518
+ :'child_eye_exam' => :'child_eye_exam',
519
+ :'customer_service_phone_number' => :'customer_service_phone_number',
520
+ :'durable_medical_equipment' => :'durable_medical_equipment',
521
+ :'diagnostic_test' => :'diagnostic_test',
522
+ :'dp_rider' => :'dp_rider',
523
+ :'drug_formulary_url' => :'drug_formulary_url',
524
+ :'emergency_room' => :'emergency_room',
525
+ :'family_drug_deductible' => :'family_drug_deductible',
526
+ :'family_drug_moop' => :'family_drug_moop',
527
+ :'family_medical_deductible' => :'family_medical_deductible',
528
+ :'family_medical_moop' => :'family_medical_moop',
529
+ :'fp_rider' => :'fp_rider',
530
+ :'generic_drugs' => :'generic_drugs',
531
+ :'habilitation_services' => :'habilitation_services',
532
+ :'hios_issuer_id' => :'hios_issuer_id',
533
+ :'home_health_care' => :'home_health_care',
534
+ :'hospice_service' => :'hospice_service',
535
+ :'hsa_eligible' => :'hsa_eligible',
536
+ :'id' => :'id',
537
+ :'imaging' => :'imaging',
538
+ :'individual_drug_deductible' => :'individual_drug_deductible',
539
+ :'individual_drug_moop' => :'individual_drug_moop',
540
+ :'individual_medical_deductible' => :'individual_medical_deductible',
541
+ :'individual_medical_moop' => :'individual_medical_moop',
542
+ :'inpatient_birth' => :'inpatient_birth',
543
+ :'inpatient_facility' => :'inpatient_facility',
544
+ :'inpatient_mental_health' => :'inpatient_mental_health',
545
+ :'inpatient_physician' => :'inpatient_physician',
546
+ :'inpatient_substance' => :'inpatient_substance',
547
+ :'in_network_ids' => :'in_network_ids',
548
+ :'level' => :'level',
549
+ :'logo_url' => :'logo_url',
550
+ :'non_preferred_brand_drugs' => :'non_preferred_brand_drugs',
551
+ :'on_market' => :'on_market',
552
+ :'off_market' => :'off_market',
553
+ :'out_of_network_coverage' => :'out_of_network_coverage',
554
+ :'out_of_network_ids' => :'out_of_network_ids',
555
+ :'outpatient_facility' => :'outpatient_facility',
556
+ :'outpatient_mental_health' => :'outpatient_mental_health',
557
+ :'outpatient_physician' => :'outpatient_physician',
558
+ :'outpatient_substance' => :'outpatient_substance',
559
+ :'plan_market' => :'plan_market',
560
+ :'preferred_brand_drugs' => :'preferred_brand_drugs',
561
+ :'prenatal_postnatal_care' => :'prenatal_postnatal_care',
562
+ :'preventative_care' => :'preventative_care',
563
+ :'premium_subsidized' => :'premium_subsidized',
564
+ :'premium' => :'premium',
565
+ :'premium_source' => :'premium_source',
566
+ :'primary_care_physician' => :'primary_care_physician',
567
+ :'rehabilitation_services' => :'rehabilitation_services',
568
+ :'skilled_nursing' => :'skilled_nursing',
569
+ :'specialist' => :'specialist',
570
+ :'specialty_drugs' => :'specialty_drugs',
571
+ :'urgent_care' => :'urgent_care',
572
+ :'actuarial_value' => :'actuarial_value',
573
+ :'chiropractic_services' => :'chiropractic_services',
574
+ :'coinsurance' => :'coinsurance',
575
+ :'embedded_deductible' => :'embedded_deductible',
576
+ :'gated' => :'gated',
577
+ :'imaging_center' => :'imaging_center',
578
+ :'imaging_physician' => :'imaging_physician',
579
+ :'lab_test' => :'lab_test',
580
+ :'mail_order_rx' => :'mail_order_rx',
581
+ :'nonpreferred_generic_drug_share' => :'nonpreferred_generic_drug_share',
582
+ :'nonpreferred_specialty_drug_share' => :'nonpreferred_specialty_drug_share',
583
+ :'outpatient_ambulatory_care_center' => :'outpatient_ambulatory_care_center',
584
+ :'plan_calendar' => :'plan_calendar',
585
+ :'prenatal_care' => :'prenatal_care',
586
+ :'postnatal_care' => :'postnatal_care',
587
+ :'skilled_nursing_facility_365' => :'skilled_nursing_facility_365',
588
+ :'essential_health_benefits_percentage' => :'essential_health_benefits_percentage'
589
+ }
590
+ end
591
+
592
+ # Attribute type mapping.
593
+ def self.swagger_types
594
+ {
595
+ :'carrier_name' => :'String',
596
+ :'display_name' => :'String',
597
+ :'effective_date' => :'String',
598
+ :'expiration_date' => :'String',
599
+ :'identifiers' => :'Array<PlanIdentifier>',
600
+ :'name' => :'String',
601
+ :'network_ids' => :'Array<Integer>',
602
+ :'network_size' => :'Integer',
603
+ :'plan_type' => :'String',
604
+ :'service_area_id' => :'String',
605
+ :'source' => :'String',
606
+ :'type' => :'String',
607
+ :'adult_dental' => :'BOOLEAN',
608
+ :'age29_rider' => :'BOOLEAN',
609
+ :'ambulance' => :'String',
610
+ :'benefits_summary_url' => :'String',
611
+ :'buy_link' => :'String',
612
+ :'child_dental' => :'BOOLEAN',
613
+ :'child_eyewear' => :'String',
614
+ :'child_eye_exam' => :'String',
615
+ :'customer_service_phone_number' => :'String',
616
+ :'durable_medical_equipment' => :'String',
617
+ :'diagnostic_test' => :'String',
618
+ :'dp_rider' => :'BOOLEAN',
619
+ :'drug_formulary_url' => :'String',
620
+ :'emergency_room' => :'String',
621
+ :'family_drug_deductible' => :'String',
622
+ :'family_drug_moop' => :'String',
623
+ :'family_medical_deductible' => :'String',
624
+ :'family_medical_moop' => :'String',
625
+ :'fp_rider' => :'BOOLEAN',
626
+ :'generic_drugs' => :'String',
627
+ :'habilitation_services' => :'String',
628
+ :'hios_issuer_id' => :'String',
629
+ :'home_health_care' => :'String',
630
+ :'hospice_service' => :'String',
631
+ :'hsa_eligible' => :'BOOLEAN',
632
+ :'id' => :'String',
633
+ :'imaging' => :'String',
634
+ :'individual_drug_deductible' => :'String',
635
+ :'individual_drug_moop' => :'String',
636
+ :'individual_medical_deductible' => :'String',
637
+ :'individual_medical_moop' => :'String',
638
+ :'inpatient_birth' => :'String',
639
+ :'inpatient_facility' => :'String',
640
+ :'inpatient_mental_health' => :'String',
641
+ :'inpatient_physician' => :'String',
642
+ :'inpatient_substance' => :'String',
643
+ :'in_network_ids' => :'Array<Integer>',
644
+ :'level' => :'String',
645
+ :'logo_url' => :'String',
646
+ :'non_preferred_brand_drugs' => :'String',
647
+ :'on_market' => :'BOOLEAN',
648
+ :'off_market' => :'BOOLEAN',
649
+ :'out_of_network_coverage' => :'BOOLEAN',
650
+ :'out_of_network_ids' => :'Array<Integer>',
651
+ :'outpatient_facility' => :'String',
652
+ :'outpatient_mental_health' => :'String',
653
+ :'outpatient_physician' => :'String',
654
+ :'outpatient_substance' => :'String',
655
+ :'plan_market' => :'String',
656
+ :'preferred_brand_drugs' => :'String',
657
+ :'prenatal_postnatal_care' => :'String',
658
+ :'preventative_care' => :'String',
659
+ :'premium_subsidized' => :'Float',
660
+ :'premium' => :'Float',
661
+ :'premium_source' => :'String',
662
+ :'primary_care_physician' => :'String',
663
+ :'rehabilitation_services' => :'String',
664
+ :'skilled_nursing' => :'String',
665
+ :'specialist' => :'String',
666
+ :'specialty_drugs' => :'String',
667
+ :'urgent_care' => :'String',
668
+ :'actuarial_value' => :'Float',
669
+ :'chiropractic_services' => :'String',
670
+ :'coinsurance' => :'Float',
671
+ :'embedded_deductible' => :'String',
672
+ :'gated' => :'BOOLEAN',
673
+ :'imaging_center' => :'String',
674
+ :'imaging_physician' => :'String',
675
+ :'lab_test' => :'String',
676
+ :'mail_order_rx' => :'Float',
677
+ :'nonpreferred_generic_drug_share' => :'String',
678
+ :'nonpreferred_specialty_drug_share' => :'String',
679
+ :'outpatient_ambulatory_care_center' => :'String',
680
+ :'plan_calendar' => :'String',
681
+ :'prenatal_care' => :'String',
682
+ :'postnatal_care' => :'String',
683
+ :'skilled_nursing_facility_365' => :'String',
684
+ :'essential_health_benefits_percentage' => :'Float'
685
+ }
686
+ end
687
+
688
+ # Initializes the object
689
+ # @param [Hash] attributes Model attributes in the form of hash
690
+ def initialize(attributes = {})
691
+ return unless attributes.is_a?(Hash)
692
+
693
+ # convert string to symbol for hash key
694
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
695
+
696
+ if attributes.has_key?(:'carrier_name')
697
+ self.carrier_name = attributes[:'carrier_name']
698
+ end
699
+
700
+ if attributes.has_key?(:'display_name')
701
+ self.display_name = attributes[:'display_name']
702
+ end
703
+
704
+ if attributes.has_key?(:'effective_date')
705
+ self.effective_date = attributes[:'effective_date']
706
+ end
707
+
708
+ if attributes.has_key?(:'expiration_date')
709
+ self.expiration_date = attributes[:'expiration_date']
710
+ end
711
+
712
+ if attributes.has_key?(:'identifiers')
713
+ if (value = attributes[:'identifiers']).is_a?(Array)
714
+ self.identifiers = value
715
+ end
716
+ end
717
+
718
+ if attributes.has_key?(:'name')
719
+ self.name = attributes[:'name']
720
+ end
721
+
722
+ if attributes.has_key?(:'network_ids')
723
+ if (value = attributes[:'network_ids']).is_a?(Array)
724
+ self.network_ids = value
725
+ end
726
+ end
727
+
728
+ if attributes.has_key?(:'network_size')
729
+ self.network_size = attributes[:'network_size']
730
+ end
731
+
732
+ if attributes.has_key?(:'plan_type')
733
+ self.plan_type = attributes[:'plan_type']
734
+ end
735
+
736
+ if attributes.has_key?(:'service_area_id')
737
+ self.service_area_id = attributes[:'service_area_id']
738
+ end
739
+
740
+ if attributes.has_key?(:'source')
741
+ self.source = attributes[:'source']
742
+ end
743
+
744
+ if attributes.has_key?(:'type')
745
+ self.type = attributes[:'type']
746
+ end
747
+
748
+ if attributes.has_key?(:'adult_dental')
749
+ self.adult_dental = attributes[:'adult_dental']
750
+ end
751
+
752
+ if attributes.has_key?(:'age29_rider')
753
+ self.age29_rider = attributes[:'age29_rider']
754
+ end
755
+
756
+ if attributes.has_key?(:'ambulance')
757
+ self.ambulance = attributes[:'ambulance']
758
+ end
759
+
760
+ if attributes.has_key?(:'benefits_summary_url')
761
+ self.benefits_summary_url = attributes[:'benefits_summary_url']
762
+ end
763
+
764
+ if attributes.has_key?(:'buy_link')
765
+ self.buy_link = attributes[:'buy_link']
766
+ end
767
+
768
+ if attributes.has_key?(:'child_dental')
769
+ self.child_dental = attributes[:'child_dental']
770
+ end
771
+
772
+ if attributes.has_key?(:'child_eyewear')
773
+ self.child_eyewear = attributes[:'child_eyewear']
774
+ end
775
+
776
+ if attributes.has_key?(:'child_eye_exam')
777
+ self.child_eye_exam = attributes[:'child_eye_exam']
778
+ end
779
+
780
+ if attributes.has_key?(:'customer_service_phone_number')
781
+ self.customer_service_phone_number = attributes[:'customer_service_phone_number']
782
+ end
783
+
784
+ if attributes.has_key?(:'durable_medical_equipment')
785
+ self.durable_medical_equipment = attributes[:'durable_medical_equipment']
786
+ end
787
+
788
+ if attributes.has_key?(:'diagnostic_test')
789
+ self.diagnostic_test = attributes[:'diagnostic_test']
790
+ end
791
+
792
+ if attributes.has_key?(:'dp_rider')
793
+ self.dp_rider = attributes[:'dp_rider']
794
+ end
795
+
796
+ if attributes.has_key?(:'drug_formulary_url')
797
+ self.drug_formulary_url = attributes[:'drug_formulary_url']
798
+ end
799
+
800
+ if attributes.has_key?(:'emergency_room')
801
+ self.emergency_room = attributes[:'emergency_room']
802
+ end
803
+
804
+ if attributes.has_key?(:'family_drug_deductible')
805
+ self.family_drug_deductible = attributes[:'family_drug_deductible']
806
+ end
807
+
808
+ if attributes.has_key?(:'family_drug_moop')
809
+ self.family_drug_moop = attributes[:'family_drug_moop']
810
+ end
811
+
812
+ if attributes.has_key?(:'family_medical_deductible')
813
+ self.family_medical_deductible = attributes[:'family_medical_deductible']
814
+ end
815
+
816
+ if attributes.has_key?(:'family_medical_moop')
817
+ self.family_medical_moop = attributes[:'family_medical_moop']
818
+ end
819
+
820
+ if attributes.has_key?(:'fp_rider')
821
+ self.fp_rider = attributes[:'fp_rider']
822
+ end
823
+
824
+ if attributes.has_key?(:'generic_drugs')
825
+ self.generic_drugs = attributes[:'generic_drugs']
826
+ end
827
+
828
+ if attributes.has_key?(:'habilitation_services')
829
+ self.habilitation_services = attributes[:'habilitation_services']
830
+ end
831
+
832
+ if attributes.has_key?(:'hios_issuer_id')
833
+ self.hios_issuer_id = attributes[:'hios_issuer_id']
834
+ end
835
+
836
+ if attributes.has_key?(:'home_health_care')
837
+ self.home_health_care = attributes[:'home_health_care']
838
+ end
839
+
840
+ if attributes.has_key?(:'hospice_service')
841
+ self.hospice_service = attributes[:'hospice_service']
842
+ end
843
+
844
+ if attributes.has_key?(:'hsa_eligible')
845
+ self.hsa_eligible = attributes[:'hsa_eligible']
846
+ end
847
+
848
+ if attributes.has_key?(:'id')
849
+ self.id = attributes[:'id']
850
+ end
851
+
852
+ if attributes.has_key?(:'imaging')
853
+ self.imaging = attributes[:'imaging']
854
+ end
855
+
856
+ if attributes.has_key?(:'individual_drug_deductible')
857
+ self.individual_drug_deductible = attributes[:'individual_drug_deductible']
858
+ end
859
+
860
+ if attributes.has_key?(:'individual_drug_moop')
861
+ self.individual_drug_moop = attributes[:'individual_drug_moop']
862
+ end
863
+
864
+ if attributes.has_key?(:'individual_medical_deductible')
865
+ self.individual_medical_deductible = attributes[:'individual_medical_deductible']
866
+ end
867
+
868
+ if attributes.has_key?(:'individual_medical_moop')
869
+ self.individual_medical_moop = attributes[:'individual_medical_moop']
870
+ end
871
+
872
+ if attributes.has_key?(:'inpatient_birth')
873
+ self.inpatient_birth = attributes[:'inpatient_birth']
874
+ end
875
+
876
+ if attributes.has_key?(:'inpatient_facility')
877
+ self.inpatient_facility = attributes[:'inpatient_facility']
878
+ end
879
+
880
+ if attributes.has_key?(:'inpatient_mental_health')
881
+ self.inpatient_mental_health = attributes[:'inpatient_mental_health']
882
+ end
883
+
884
+ if attributes.has_key?(:'inpatient_physician')
885
+ self.inpatient_physician = attributes[:'inpatient_physician']
886
+ end
887
+
888
+ if attributes.has_key?(:'inpatient_substance')
889
+ self.inpatient_substance = attributes[:'inpatient_substance']
890
+ end
891
+
892
+ if attributes.has_key?(:'in_network_ids')
893
+ if (value = attributes[:'in_network_ids']).is_a?(Array)
894
+ self.in_network_ids = value
895
+ end
896
+ end
897
+
898
+ if attributes.has_key?(:'level')
899
+ self.level = attributes[:'level']
900
+ end
901
+
902
+ if attributes.has_key?(:'logo_url')
903
+ self.logo_url = attributes[:'logo_url']
904
+ end
905
+
906
+ if attributes.has_key?(:'non_preferred_brand_drugs')
907
+ self.non_preferred_brand_drugs = attributes[:'non_preferred_brand_drugs']
908
+ end
909
+
910
+ if attributes.has_key?(:'on_market')
911
+ self.on_market = attributes[:'on_market']
912
+ end
913
+
914
+ if attributes.has_key?(:'off_market')
915
+ self.off_market = attributes[:'off_market']
916
+ end
917
+
918
+ if attributes.has_key?(:'out_of_network_coverage')
919
+ self.out_of_network_coverage = attributes[:'out_of_network_coverage']
920
+ end
921
+
922
+ if attributes.has_key?(:'out_of_network_ids')
923
+ if (value = attributes[:'out_of_network_ids']).is_a?(Array)
924
+ self.out_of_network_ids = value
925
+ end
926
+ end
927
+
928
+ if attributes.has_key?(:'outpatient_facility')
929
+ self.outpatient_facility = attributes[:'outpatient_facility']
930
+ end
931
+
932
+ if attributes.has_key?(:'outpatient_mental_health')
933
+ self.outpatient_mental_health = attributes[:'outpatient_mental_health']
934
+ end
935
+
936
+ if attributes.has_key?(:'outpatient_physician')
937
+ self.outpatient_physician = attributes[:'outpatient_physician']
938
+ end
939
+
940
+ if attributes.has_key?(:'outpatient_substance')
941
+ self.outpatient_substance = attributes[:'outpatient_substance']
942
+ end
943
+
944
+ if attributes.has_key?(:'plan_market')
945
+ self.plan_market = attributes[:'plan_market']
946
+ end
947
+
948
+ if attributes.has_key?(:'preferred_brand_drugs')
949
+ self.preferred_brand_drugs = attributes[:'preferred_brand_drugs']
950
+ end
951
+
952
+ if attributes.has_key?(:'prenatal_postnatal_care')
953
+ self.prenatal_postnatal_care = attributes[:'prenatal_postnatal_care']
954
+ end
955
+
956
+ if attributes.has_key?(:'preventative_care')
957
+ self.preventative_care = attributes[:'preventative_care']
958
+ end
959
+
960
+ if attributes.has_key?(:'premium_subsidized')
961
+ self.premium_subsidized = attributes[:'premium_subsidized']
962
+ end
963
+
964
+ if attributes.has_key?(:'premium')
965
+ self.premium = attributes[:'premium']
966
+ end
967
+
968
+ if attributes.has_key?(:'premium_source')
969
+ self.premium_source = attributes[:'premium_source']
970
+ end
971
+
972
+ if attributes.has_key?(:'primary_care_physician')
973
+ self.primary_care_physician = attributes[:'primary_care_physician']
974
+ end
975
+
976
+ if attributes.has_key?(:'rehabilitation_services')
977
+ self.rehabilitation_services = attributes[:'rehabilitation_services']
978
+ end
979
+
980
+ if attributes.has_key?(:'skilled_nursing')
981
+ self.skilled_nursing = attributes[:'skilled_nursing']
982
+ end
983
+
984
+ if attributes.has_key?(:'specialist')
985
+ self.specialist = attributes[:'specialist']
986
+ end
987
+
988
+ if attributes.has_key?(:'specialty_drugs')
989
+ self.specialty_drugs = attributes[:'specialty_drugs']
990
+ end
991
+
992
+ if attributes.has_key?(:'urgent_care')
993
+ self.urgent_care = attributes[:'urgent_care']
994
+ end
995
+
996
+ if attributes.has_key?(:'actuarial_value')
997
+ self.actuarial_value = attributes[:'actuarial_value']
998
+ end
999
+
1000
+ if attributes.has_key?(:'chiropractic_services')
1001
+ self.chiropractic_services = attributes[:'chiropractic_services']
1002
+ end
1003
+
1004
+ if attributes.has_key?(:'coinsurance')
1005
+ self.coinsurance = attributes[:'coinsurance']
1006
+ end
1007
+
1008
+ if attributes.has_key?(:'embedded_deductible')
1009
+ self.embedded_deductible = attributes[:'embedded_deductible']
1010
+ end
1011
+
1012
+ if attributes.has_key?(:'gated')
1013
+ self.gated = attributes[:'gated']
1014
+ end
1015
+
1016
+ if attributes.has_key?(:'imaging_center')
1017
+ self.imaging_center = attributes[:'imaging_center']
1018
+ end
1019
+
1020
+ if attributes.has_key?(:'imaging_physician')
1021
+ self.imaging_physician = attributes[:'imaging_physician']
1022
+ end
1023
+
1024
+ if attributes.has_key?(:'lab_test')
1025
+ self.lab_test = attributes[:'lab_test']
1026
+ end
1027
+
1028
+ if attributes.has_key?(:'mail_order_rx')
1029
+ self.mail_order_rx = attributes[:'mail_order_rx']
1030
+ end
1031
+
1032
+ if attributes.has_key?(:'nonpreferred_generic_drug_share')
1033
+ self.nonpreferred_generic_drug_share = attributes[:'nonpreferred_generic_drug_share']
1034
+ end
1035
+
1036
+ if attributes.has_key?(:'nonpreferred_specialty_drug_share')
1037
+ self.nonpreferred_specialty_drug_share = attributes[:'nonpreferred_specialty_drug_share']
1038
+ end
1039
+
1040
+ if attributes.has_key?(:'outpatient_ambulatory_care_center')
1041
+ self.outpatient_ambulatory_care_center = attributes[:'outpatient_ambulatory_care_center']
1042
+ end
1043
+
1044
+ if attributes.has_key?(:'plan_calendar')
1045
+ self.plan_calendar = attributes[:'plan_calendar']
1046
+ end
1047
+
1048
+ if attributes.has_key?(:'prenatal_care')
1049
+ self.prenatal_care = attributes[:'prenatal_care']
1050
+ end
1051
+
1052
+ if attributes.has_key?(:'postnatal_care')
1053
+ self.postnatal_care = attributes[:'postnatal_care']
1054
+ end
1055
+
1056
+ if attributes.has_key?(:'skilled_nursing_facility_365')
1057
+ self.skilled_nursing_facility_365 = attributes[:'skilled_nursing_facility_365']
1058
+ end
1059
+
1060
+ if attributes.has_key?(:'essential_health_benefits_percentage')
1061
+ self.essential_health_benefits_percentage = attributes[:'essential_health_benefits_percentage']
1062
+ end
1063
+
1064
+ end
1065
+
1066
+ # Show invalid properties with the reasons. Usually used together with valid?
1067
+ # @return Array for valid properies with the reasons
1068
+ def list_invalid_properties
1069
+ invalid_properties = Array.new
1070
+ return invalid_properties
1071
+ end
1072
+
1073
+ # Check to see if the all the properties in the model are valid
1074
+ # @return true if the model is valid
1075
+ def valid?
1076
+ return true
1077
+ end
1078
+
1079
+ # Checks equality by comparing each attribute.
1080
+ # @param [Object] Object to be compared
1081
+ def ==(o)
1082
+ return true if self.equal?(o)
1083
+ self.class == o.class &&
1084
+ carrier_name == o.carrier_name &&
1085
+ display_name == o.display_name &&
1086
+ effective_date == o.effective_date &&
1087
+ expiration_date == o.expiration_date &&
1088
+ identifiers == o.identifiers &&
1089
+ name == o.name &&
1090
+ network_ids == o.network_ids &&
1091
+ network_size == o.network_size &&
1092
+ plan_type == o.plan_type &&
1093
+ service_area_id == o.service_area_id &&
1094
+ source == o.source &&
1095
+ type == o.type &&
1096
+ adult_dental == o.adult_dental &&
1097
+ age29_rider == o.age29_rider &&
1098
+ ambulance == o.ambulance &&
1099
+ benefits_summary_url == o.benefits_summary_url &&
1100
+ buy_link == o.buy_link &&
1101
+ child_dental == o.child_dental &&
1102
+ child_eyewear == o.child_eyewear &&
1103
+ child_eye_exam == o.child_eye_exam &&
1104
+ customer_service_phone_number == o.customer_service_phone_number &&
1105
+ durable_medical_equipment == o.durable_medical_equipment &&
1106
+ diagnostic_test == o.diagnostic_test &&
1107
+ dp_rider == o.dp_rider &&
1108
+ drug_formulary_url == o.drug_formulary_url &&
1109
+ emergency_room == o.emergency_room &&
1110
+ family_drug_deductible == o.family_drug_deductible &&
1111
+ family_drug_moop == o.family_drug_moop &&
1112
+ family_medical_deductible == o.family_medical_deductible &&
1113
+ family_medical_moop == o.family_medical_moop &&
1114
+ fp_rider == o.fp_rider &&
1115
+ generic_drugs == o.generic_drugs &&
1116
+ habilitation_services == o.habilitation_services &&
1117
+ hios_issuer_id == o.hios_issuer_id &&
1118
+ home_health_care == o.home_health_care &&
1119
+ hospice_service == o.hospice_service &&
1120
+ hsa_eligible == o.hsa_eligible &&
1121
+ id == o.id &&
1122
+ imaging == o.imaging &&
1123
+ individual_drug_deductible == o.individual_drug_deductible &&
1124
+ individual_drug_moop == o.individual_drug_moop &&
1125
+ individual_medical_deductible == o.individual_medical_deductible &&
1126
+ individual_medical_moop == o.individual_medical_moop &&
1127
+ inpatient_birth == o.inpatient_birth &&
1128
+ inpatient_facility == o.inpatient_facility &&
1129
+ inpatient_mental_health == o.inpatient_mental_health &&
1130
+ inpatient_physician == o.inpatient_physician &&
1131
+ inpatient_substance == o.inpatient_substance &&
1132
+ in_network_ids == o.in_network_ids &&
1133
+ level == o.level &&
1134
+ logo_url == o.logo_url &&
1135
+ non_preferred_brand_drugs == o.non_preferred_brand_drugs &&
1136
+ on_market == o.on_market &&
1137
+ off_market == o.off_market &&
1138
+ out_of_network_coverage == o.out_of_network_coverage &&
1139
+ out_of_network_ids == o.out_of_network_ids &&
1140
+ outpatient_facility == o.outpatient_facility &&
1141
+ outpatient_mental_health == o.outpatient_mental_health &&
1142
+ outpatient_physician == o.outpatient_physician &&
1143
+ outpatient_substance == o.outpatient_substance &&
1144
+ plan_market == o.plan_market &&
1145
+ preferred_brand_drugs == o.preferred_brand_drugs &&
1146
+ prenatal_postnatal_care == o.prenatal_postnatal_care &&
1147
+ preventative_care == o.preventative_care &&
1148
+ premium_subsidized == o.premium_subsidized &&
1149
+ premium == o.premium &&
1150
+ premium_source == o.premium_source &&
1151
+ primary_care_physician == o.primary_care_physician &&
1152
+ rehabilitation_services == o.rehabilitation_services &&
1153
+ skilled_nursing == o.skilled_nursing &&
1154
+ specialist == o.specialist &&
1155
+ specialty_drugs == o.specialty_drugs &&
1156
+ urgent_care == o.urgent_care &&
1157
+ actuarial_value == o.actuarial_value &&
1158
+ chiropractic_services == o.chiropractic_services &&
1159
+ coinsurance == o.coinsurance &&
1160
+ embedded_deductible == o.embedded_deductible &&
1161
+ gated == o.gated &&
1162
+ imaging_center == o.imaging_center &&
1163
+ imaging_physician == o.imaging_physician &&
1164
+ lab_test == o.lab_test &&
1165
+ mail_order_rx == o.mail_order_rx &&
1166
+ nonpreferred_generic_drug_share == o.nonpreferred_generic_drug_share &&
1167
+ nonpreferred_specialty_drug_share == o.nonpreferred_specialty_drug_share &&
1168
+ outpatient_ambulatory_care_center == o.outpatient_ambulatory_care_center &&
1169
+ plan_calendar == o.plan_calendar &&
1170
+ prenatal_care == o.prenatal_care &&
1171
+ postnatal_care == o.postnatal_care &&
1172
+ skilled_nursing_facility_365 == o.skilled_nursing_facility_365 &&
1173
+ essential_health_benefits_percentage == o.essential_health_benefits_percentage
1174
+ end
1175
+
1176
+ # @see the `==` method
1177
+ # @param [Object] Object to be compared
1178
+ def eql?(o)
1179
+ self == o
1180
+ end
1181
+
1182
+ # Calculates hash code according to all attributes.
1183
+ # @return [Fixnum] Hash code
1184
+ def hash
1185
+ [carrier_name, display_name, effective_date, expiration_date, identifiers, name, network_ids, network_size, plan_type, service_area_id, source, type, adult_dental, age29_rider, ambulance, benefits_summary_url, buy_link, child_dental, child_eyewear, child_eye_exam, customer_service_phone_number, durable_medical_equipment, diagnostic_test, dp_rider, drug_formulary_url, emergency_room, family_drug_deductible, family_drug_moop, family_medical_deductible, family_medical_moop, fp_rider, generic_drugs, habilitation_services, hios_issuer_id, home_health_care, hospice_service, hsa_eligible, id, imaging, individual_drug_deductible, individual_drug_moop, individual_medical_deductible, individual_medical_moop, inpatient_birth, inpatient_facility, inpatient_mental_health, inpatient_physician, inpatient_substance, in_network_ids, level, logo_url, non_preferred_brand_drugs, on_market, off_market, out_of_network_coverage, out_of_network_ids, outpatient_facility, outpatient_mental_health, outpatient_physician, outpatient_substance, plan_market, preferred_brand_drugs, prenatal_postnatal_care, preventative_care, premium_subsidized, premium, premium_source, primary_care_physician, rehabilitation_services, skilled_nursing, specialist, specialty_drugs, urgent_care, actuarial_value, chiropractic_services, coinsurance, embedded_deductible, gated, imaging_center, imaging_physician, lab_test, mail_order_rx, nonpreferred_generic_drug_share, nonpreferred_specialty_drug_share, outpatient_ambulatory_care_center, plan_calendar, prenatal_care, postnatal_care, skilled_nursing_facility_365, essential_health_benefits_percentage].hash
1186
+ end
1187
+
1188
+ # Builds the object from hash
1189
+ # @param [Hash] attributes Model attributes in the form of hash
1190
+ # @return [Object] Returns the model itself
1191
+ def build_from_hash(attributes)
1192
+ return nil unless attributes.is_a?(Hash)
1193
+ self.class.swagger_types.each_pair do |key, type|
1194
+ if type =~ /\AArray<(.*)>/i
1195
+ # check to ensure the input is an array given that the the attribute
1196
+ # is documented as an array but the input is not
1197
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
1198
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
1199
+ end
1200
+ elsif !attributes[self.class.attribute_map[key]].nil?
1201
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
1202
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
1203
+ end
1204
+
1205
+ self
1206
+ end
1207
+
1208
+ # Deserializes the data based on type
1209
+ # @param string type Data type
1210
+ # @param string value Value to be deserialized
1211
+ # @return [Object] Deserialized data
1212
+ def _deserialize(type, value)
1213
+ case type.to_sym
1214
+ when :DateTime
1215
+ DateTime.parse(value)
1216
+ when :Date
1217
+ Date.parse(value)
1218
+ when :String
1219
+ value.to_s
1220
+ when :Integer
1221
+ value.to_i
1222
+ when :Float
1223
+ value.to_f
1224
+ when :BOOLEAN
1225
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
1226
+ true
1227
+ else
1228
+ false
1229
+ end
1230
+ when :Object
1231
+ # generic object (usually a Hash), return directly
1232
+ value
1233
+ when /\AArray<(?<inner_type>.+)>\z/
1234
+ inner_type = Regexp.last_match[:inner_type]
1235
+ value.map { |v| _deserialize(inner_type, v) }
1236
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
1237
+ k_type = Regexp.last_match[:k_type]
1238
+ v_type = Regexp.last_match[:v_type]
1239
+ {}.tap do |hash|
1240
+ value.each do |k, v|
1241
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
1242
+ end
1243
+ end
1244
+ else # model
1245
+ temp_model = VericredClient.const_get(type).new
1246
+ temp_model.build_from_hash(value)
1247
+ end
1248
+ end
1249
+
1250
+ # Returns the string representation of the object
1251
+ # @return [String] String presentation of the object
1252
+ def to_s
1253
+ to_hash.to_s
1254
+ end
1255
+
1256
+ # to_body is an alias to to_hash (backward compatibility)
1257
+ # @return [Hash] Returns the object in the form of hash
1258
+ def to_body
1259
+ to_hash
1260
+ end
1261
+
1262
+ # Returns the object in the form of hash
1263
+ # @return [Hash] Returns the object in the form of hash
1264
+ def to_hash
1265
+ hash = {}
1266
+ self.class.attribute_map.each_pair do |attr, param|
1267
+ value = self.send(attr)
1268
+ next if value.nil?
1269
+ hash[param] = _to_hash(value)
1270
+ end
1271
+ hash
1272
+ end
1273
+
1274
+ # Outputs non-array value in the form of hash
1275
+ # For object, use to_hash. Otherwise, just return the value
1276
+ # @param [Object] value Any valid value
1277
+ # @return [Hash] Returns the value in the form of hash
1278
+ def _to_hash(value)
1279
+ if value.is_a?(Array)
1280
+ value.compact.map{ |v| _to_hash(v) }
1281
+ elsif value.is_a?(Hash)
1282
+ {}.tap do |hash|
1283
+ value.each { |k, v| hash[k] = _to_hash(v) }
1284
+ end
1285
+ elsif value.respond_to? :to_hash
1286
+ value.to_hash
1287
+ else
1288
+ value
1289
+ end
1290
+ end
1291
+
1292
+ end
1293
+
1294
+ end