vericred_client 0.0.23 → 0.0.25

Sign up to get free protection for your applications and to get access to all the features.
Files changed (476) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +826 -28
  3. data/docs/ACAPlan.md +35 -35
  4. data/docs/ACAPlan2018.md +36 -36
  5. data/docs/ACAPlan2018SearchResponse.md +1 -1
  6. data/docs/ACAPlan2018SearchResult.md +39 -39
  7. data/docs/ACAPlanPre2018.md +35 -35
  8. data/docs/ACAPlanPre2018SearchResponse.md +1 -1
  9. data/docs/ACAPlanPre2018SearchResult.md +38 -38
  10. data/docs/Address.md +14 -0
  11. data/docs/AncillaryPlanIdentifier.md +9 -0
  12. data/docs/BasePlanSearchResponse.md +1 -1
  13. data/docs/CarrierGroupRequest.md +1 -1
  14. data/docs/CarrierRequest.md +2 -2
  15. data/docs/CarrierSubsidiary.md +2 -2
  16. data/docs/CarrierVerificationDentalPlansApi.md +63 -0
  17. data/docs/CarrierVerificationMedicalPlansApi.md +63 -0
  18. data/docs/CarrierVerificationVisionPlansApi.md +63 -0
  19. data/docs/County.md +1 -1
  20. data/docs/CountyBulk.md +1 -1
  21. data/docs/DentalPlan.md +7 -7
  22. data/docs/DentalPlanBenefits.md +22 -22
  23. data/docs/DentalPlanSearchRequest.md +1 -2
  24. data/docs/DentalPlanUpdate.md +5 -5
  25. data/docs/DentalPlansApi.md +118 -4
  26. data/docs/DependentCreate.md +12 -0
  27. data/docs/DependentCreateRequest.md +12 -0
  28. data/docs/DependentShow.md +12 -0
  29. data/docs/Drug.md +3 -3
  30. data/docs/DrugCoverage.md +3 -3
  31. data/docs/DrugCoverageResponse.md +2 -2
  32. data/docs/DrugPackage.md +1 -1
  33. data/docs/DrugSearchResponse.md +2 -2
  34. data/docs/EmbargoRequest.md +3 -2
  35. data/docs/FormularyResponse.md +1 -1
  36. data/docs/GroupCreate.md +14 -0
  37. data/docs/GroupCreateRequest.md +9 -0
  38. data/docs/GroupCreateResponse.md +9 -0
  39. data/docs/GroupShow.md +15 -0
  40. data/docs/GroupShowResponse.md +9 -0
  41. data/docs/GroupUpdate.md +14 -0
  42. data/docs/GroupUpdateRequest.md +9 -0
  43. data/docs/IssuerRequest.md +7 -7
  44. data/docs/LocationCreate.md +13 -0
  45. data/docs/LocationShow.md +14 -0
  46. data/docs/LocationUpdate.md +14 -0
  47. data/docs/MajorMedicalPlansApi.md +122 -0
  48. data/docs/MedicalPlanBenefits.md +35 -35
  49. data/docs/MedicalPlanUpdate.md +21 -20
  50. data/docs/MedicalPlansApi.md +0 -114
  51. data/docs/MedicareAdvantagePlan.md +25 -0
  52. data/docs/MedicareAdvantagePlanBenefits.md +148 -0
  53. data/docs/MedicareAdvantagePlanSearchRequest.md +12 -0
  54. data/docs/MedicareAdvantagePlanSearchResponse.md +9 -0
  55. data/docs/MedicareAdvantagePlanShowResponse.md +8 -0
  56. data/docs/MemberCreate.md +17 -0
  57. data/docs/MemberRateShow.md +13 -0
  58. data/docs/MemberRateShowRequest.md +10 -0
  59. data/docs/MemberRatesShowResponse.md +9 -0
  60. data/docs/MemberShow.md +18 -0
  61. data/docs/MembersCreateRequest.md +9 -0
  62. data/docs/MembersCreateResponse.md +8 -0
  63. data/docs/MembersShowResponse.md +8 -0
  64. data/docs/MetaPlanSearchResponse.md +1 -1
  65. data/docs/NetworkComparisonResponse.md +1 -1
  66. data/docs/NetworkDetails.md +1 -1
  67. data/docs/NetworkSize.md +1 -1
  68. data/docs/NetworksApi.md +17 -12
  69. data/docs/PlanCounty.md +1 -1
  70. data/docs/PlanCountyBulk.md +1 -1
  71. data/docs/PlanMedicare.md +1 -1
  72. data/docs/PlanMedicareBulk.md +2 -2
  73. data/docs/PlanPricingMedicare.md +3 -3
  74. data/docs/PlanSearchResponse.md +1 -1
  75. data/docs/PlansApi.md +0 -169
  76. data/docs/PlansBulkACA2018.md +8 -0
  77. data/docs/PlansBulkACAPre2018.md +8 -0
  78. data/docs/PlansBulkBase.md +7 -0
  79. data/docs/PlansBulkDental.md +7 -0
  80. data/docs/PlansBulkVision.md +7 -0
  81. data/docs/Provider.md +2 -2
  82. data/docs/ProviderDetails.md +5 -3
  83. data/docs/ProviderNetworkEventNotification.md +3 -3
  84. data/docs/ProviderNetworks.md +11 -0
  85. data/docs/ProviderShowResponse.md +1 -1
  86. data/docs/ProvidersApi.md +1 -56
  87. data/docs/QuoteCreate.md +15 -0
  88. data/docs/QuoteCreateRequest.md +8 -0
  89. data/docs/QuoteCreateResponse.md +8 -0
  90. data/docs/QuoteShow.md +17 -0
  91. data/docs/QuoteShowResponse.md +8 -0
  92. data/docs/QuotingApi.md +344 -0
  93. data/docs/RateRequest.md +24 -24
  94. data/docs/RateSearch.md +23 -18
  95. data/docs/RateShow.md +12 -0
  96. data/docs/RateShowRequest.md +10 -0
  97. data/docs/RatesShowResponse.md +9 -0
  98. data/docs/RequestPlanFind.md +2 -2
  99. data/docs/RequestPlanFindCarrierVerification.md +3 -3
  100. data/docs/RequestProviderNotificationSubscription.md +1 -1
  101. data/docs/RequestProvidersSearch.md +1 -1
  102. data/docs/RequestRatesSearch.md +1 -1
  103. data/docs/RxCuiIdentifier.md +1 -1
  104. data/docs/RxCuiIdentifierSearchResponse.md +1 -1
  105. data/docs/State.md +2 -2
  106. data/docs/SupplementalOptions.md +13 -0
  107. data/docs/V7Network.md +10 -0
  108. data/docs/V7NetworkComparisonResponse.md +9 -0
  109. data/docs/V7NetworkDetails.md +11 -0
  110. data/docs/V7NetworkDetailsResponse.md +8 -0
  111. data/docs/V7NetworkSearchResponse.md +9 -0
  112. data/docs/V7ProviderDetails.md +33 -0
  113. data/docs/V7ProviderNetworks.md +12 -0
  114. data/docs/VisionPlan.md +7 -7
  115. data/docs/VisionPlanBenefits.md +22 -15
  116. data/docs/VisionPlanSearchRequest.md +1 -2
  117. data/docs/VisionPlanUpdate.md +5 -5
  118. data/docs/VisionPlansApi.md +114 -0
  119. data/docs/ZipCountiesResponse.md +1 -1
  120. data/docs/ZipCountyBulk.md +1 -1
  121. data/lib/vericred_client/api/carrier_groups_api.rb +754 -15
  122. data/lib/vericred_client/api/carrier_verification_dental_plans_api.rb +1026 -0
  123. data/lib/vericred_client/api/carrier_verification_medical_plans_api.rb +1026 -0
  124. data/lib/vericred_client/api/carrier_verification_plans_api.rb +754 -15
  125. data/lib/vericred_client/api/carrier_verification_vision_plans_api.rb +1026 -0
  126. data/lib/vericred_client/api/carriers_api.rb +754 -15
  127. data/lib/vericred_client/api/dental_plans_api.rb +874 -18
  128. data/lib/vericred_client/api/drug_coverages_api.rb +754 -15
  129. data/lib/vericred_client/api/drug_packages_api.rb +754 -15
  130. data/lib/vericred_client/api/drugs_api.rb +754 -15
  131. data/lib/vericred_client/api/embargoes_api.rb +754 -15
  132. data/lib/vericred_client/api/formularies_api.rb +754 -15
  133. data/lib/vericred_client/api/issuers_api.rb +754 -15
  134. data/lib/vericred_client/api/major_medical_plans_api.rb +1086 -0
  135. data/lib/vericred_client/api/medical_plans_api.rb +754 -132
  136. data/lib/vericred_client/api/network_sizes_api.rb +754 -15
  137. data/lib/vericred_client/api/networks_api.rb +773 -27
  138. data/lib/vericred_client/api/plans_api.rb +754 -189
  139. data/lib/vericred_client/api/provider_notification_subscriptions_api.rb +754 -15
  140. data/lib/vericred_client/api/providers_api.rb +756 -74
  141. data/lib/vericred_client/api/quoting_api.rb +1316 -0
  142. data/lib/vericred_client/api/rates_api.rb +754 -15
  143. data/lib/vericred_client/api/vision_plans_api.rb +871 -15
  144. data/lib/vericred_client/api/zip_counties_api.rb +754 -15
  145. data/lib/vericred_client/api_client.rb +754 -15
  146. data/lib/vericred_client/api_error.rb +754 -15
  147. data/lib/vericred_client/configuration.rb +754 -15
  148. data/lib/vericred_client/models/aca_plan.rb +1165 -426
  149. data/lib/vericred_client/models/aca_plan2018.rb +1174 -435
  150. data/lib/vericred_client/models/aca_plan2018_search_response.rb +765 -26
  151. data/lib/vericred_client/models/aca_plan2018_search_result.rb +1203 -464
  152. data/lib/vericred_client/models/aca_plan2018_show_response.rb +754 -15
  153. data/lib/vericred_client/models/aca_plan_pre2018.rb +1165 -426
  154. data/lib/vericred_client/models/aca_plan_pre2018_search_response.rb +765 -26
  155. data/lib/vericred_client/models/aca_plan_pre2018_search_result.rb +1202 -463
  156. data/lib/vericred_client/models/aca_plan_pre2018_show_response.rb +754 -15
  157. data/lib/vericred_client/models/address.rb +1195 -0
  158. data/lib/vericred_client/models/ancillary_plan_identifier.rb +1145 -0
  159. data/lib/vericred_client/models/base.rb +754 -15
  160. data/lib/vericred_client/models/base_plan_search_response.rb +768 -29
  161. data/lib/vericred_client/models/carrier.rb +754 -15
  162. data/lib/vericred_client/models/carrier_group_request.rb +765 -26
  163. data/lib/vericred_client/models/carrier_request.rb +769 -30
  164. data/lib/vericred_client/models/carrier_subsidiary.rb +778 -39
  165. data/lib/vericred_client/models/county.rb +765 -26
  166. data/lib/vericred_client/models/county_bulk.rb +768 -29
  167. data/lib/vericred_client/models/dental_plan.rb +825 -86
  168. data/lib/vericred_client/models/dental_plan_benefits.rb +927 -188
  169. data/lib/vericred_client/models/dental_plan_search_applicant.rb +754 -15
  170. data/lib/vericred_client/models/dental_plan_search_request.rb +768 -39
  171. data/lib/vericred_client/models/dental_plan_search_response.rb +754 -15
  172. data/lib/vericred_client/models/dental_plan_show_response.rb +754 -15
  173. data/lib/vericred_client/models/dental_plan_update.rb +804 -65
  174. data/lib/vericred_client/models/dental_plan_update_request.rb +754 -15
  175. data/lib/vericred_client/models/dependent_create.rb +1175 -0
  176. data/lib/vericred_client/models/dependent_create_request.rb +1175 -0
  177. data/lib/vericred_client/models/dependent_show.rb +1175 -0
  178. data/lib/vericred_client/models/drug.rb +781 -42
  179. data/lib/vericred_client/models/drug_coverage.rb +781 -42
  180. data/lib/vericred_client/models/drug_coverage_response.rb +769 -30
  181. data/lib/vericred_client/models/drug_package.rb +765 -26
  182. data/lib/vericred_client/models/drug_search_response.rb +771 -32
  183. data/lib/vericred_client/models/embargo_request.rb +790 -39
  184. data/lib/vericred_client/models/formulary.rb +754 -15
  185. data/lib/vericred_client/models/formulary_drug_package_response.rb +754 -15
  186. data/lib/vericred_client/models/formulary_response.rb +768 -29
  187. data/lib/vericred_client/models/group_create.rb +1195 -0
  188. data/lib/vericred_client/models/group_create_request.rb +1147 -0
  189. data/lib/vericred_client/models/group_create_response.rb +1147 -0
  190. data/lib/vericred_client/models/group_show.rb +1205 -0
  191. data/lib/vericred_client/models/group_show_response.rb +1147 -0
  192. data/lib/vericred_client/models/group_update.rb +1195 -0
  193. data/lib/vericred_client/models/group_update_request.rb +1147 -0
  194. data/lib/vericred_client/models/issuer_request.rb +819 -80
  195. data/lib/vericred_client/models/location_create.rb +1185 -0
  196. data/lib/vericred_client/models/location_show.rb +1195 -0
  197. data/lib/vericred_client/models/location_update.rb +1195 -0
  198. data/lib/vericred_client/models/medical_plan_benefits.rb +1084 -345
  199. data/lib/vericred_client/models/medical_plan_update.rb +930 -181
  200. data/lib/vericred_client/models/medical_plan_update_request.rb +754 -15
  201. data/lib/vericred_client/models/medicare_advantage_plan.rb +1309 -0
  202. data/lib/vericred_client/models/medicare_advantage_plan_benefits.rb +2535 -0
  203. data/lib/vericred_client/models/medicare_advantage_plan_search_request.rb +1175 -0
  204. data/lib/vericred_client/models/medicare_advantage_plan_search_response.rb +1147 -0
  205. data/lib/vericred_client/models/medicare_advantage_plan_show_response.rb +1135 -0
  206. data/lib/vericred_client/models/member_create.rb +1227 -0
  207. data/lib/vericred_client/models/member_rate_show.rb +1185 -0
  208. data/lib/vericred_client/models/member_rate_show_request.rb +1155 -0
  209. data/lib/vericred_client/models/member_rates_show_response.rb +1147 -0
  210. data/lib/vericred_client/models/member_show.rb +1237 -0
  211. data/lib/vericred_client/models/members_create_request.rb +1147 -0
  212. data/lib/vericred_client/models/members_create_response.rb +1137 -0
  213. data/lib/vericred_client/models/members_show_response.rb +1137 -0
  214. data/lib/vericred_client/models/meta.rb +754 -15
  215. data/lib/vericred_client/models/meta_plan_search_response.rb +768 -29
  216. data/lib/vericred_client/models/network.rb +754 -15
  217. data/lib/vericred_client/models/network_comparison.rb +754 -15
  218. data/lib/vericred_client/models/network_comparison_request.rb +754 -15
  219. data/lib/vericred_client/models/network_comparison_response.rb +770 -31
  220. data/lib/vericred_client/models/network_details.rb +770 -31
  221. data/lib/vericred_client/models/network_details_response.rb +754 -15
  222. data/lib/vericred_client/models/network_search_response.rb +754 -15
  223. data/lib/vericred_client/models/network_size.rb +765 -26
  224. data/lib/vericred_client/models/notification_subscription.rb +754 -15
  225. data/lib/vericred_client/models/notification_subscription_response.rb +754 -15
  226. data/lib/vericred_client/models/plan.rb +754 -15
  227. data/lib/vericred_client/models/plan_county.rb +768 -29
  228. data/lib/vericred_client/models/plan_county_bulk.rb +768 -29
  229. data/lib/vericred_client/models/plan_deleted.rb +754 -15
  230. data/lib/vericred_client/models/plan_identifier.rb +754 -15
  231. data/lib/vericred_client/models/plan_medicare.rb +768 -29
  232. data/lib/vericred_client/models/plan_medicare_bulk.rb +775 -36
  233. data/lib/vericred_client/models/plan_pricing_medicare.rb +782 -43
  234. data/lib/vericred_client/models/plan_search_response.rb +765 -26
  235. data/lib/vericred_client/models/plan_show_response.rb +754 -15
  236. data/lib/vericred_client/models/plans_bulk_aca2018.rb +1135 -0
  237. data/lib/vericred_client/models/plans_bulk_aca_pre2018.rb +1135 -0
  238. data/lib/vericred_client/models/plans_bulk_base.rb +1125 -0
  239. data/lib/vericred_client/models/plans_bulk_dental.rb +1125 -0
  240. data/lib/vericred_client/models/plans_bulk_vision.rb +1125 -0
  241. data/lib/vericred_client/models/provider.rb +780 -41
  242. data/lib/vericred_client/models/provider_details.rb +813 -50
  243. data/lib/vericred_client/models/provider_geocode.rb +754 -15
  244. data/lib/vericred_client/models/provider_network_event_notification.rb +790 -51
  245. data/lib/vericred_client/models/provider_networks.rb +1165 -0
  246. data/lib/vericred_client/models/provider_show_response.rb +755 -16
  247. data/lib/vericred_client/models/providers_geocode_response.rb +754 -15
  248. data/lib/vericred_client/models/providers_search_response.rb +754 -15
  249. data/lib/vericred_client/models/quote_create.rb +1207 -0
  250. data/lib/vericred_client/models/quote_create_request.rb +1135 -0
  251. data/lib/vericred_client/models/quote_create_response.rb +1135 -0
  252. data/lib/vericred_client/models/quote_show.rb +1227 -0
  253. data/lib/vericred_client/models/quote_show_response.rb +1135 -0
  254. data/lib/vericred_client/models/rate_request.rb +990 -251
  255. data/lib/vericred_client/models/rate_search.rb +978 -189
  256. data/lib/vericred_client/models/rate_show.rb +1175 -0
  257. data/lib/vericred_client/models/rate_show_request.rb +1155 -0
  258. data/lib/vericred_client/models/rates_show_response.rb +1147 -0
  259. data/lib/vericred_client/models/rating_area.rb +754 -15
  260. data/lib/vericred_client/models/request_plan_find.rb +777 -38
  261. data/lib/vericred_client/models/request_plan_find_applicant.rb +754 -15
  262. data/lib/vericred_client/models/request_plan_find_carrier_verification.rb +792 -53
  263. data/lib/vericred_client/models/request_plan_find_drug_package.rb +754 -15
  264. data/lib/vericred_client/models/request_plan_find_provider.rb +754 -15
  265. data/lib/vericred_client/models/request_provider_notification_subscription.rb +768 -29
  266. data/lib/vericred_client/models/request_providers_search.rb +767 -26
  267. data/lib/vericred_client/models/request_rates_search.rb +768 -29
  268. data/lib/vericred_client/models/response_rates_search.rb +754 -15
  269. data/lib/vericred_client/models/rx_cui_identifier.rb +765 -26
  270. data/lib/vericred_client/models/rx_cui_identifier_search_response.rb +768 -29
  271. data/lib/vericred_client/models/service_area.rb +754 -15
  272. data/lib/vericred_client/models/service_area_zip_county.rb +754 -15
  273. data/lib/vericred_client/models/state.rb +778 -39
  274. data/lib/vericred_client/models/state_network_size_request.rb +754 -15
  275. data/lib/vericred_client/models/state_network_size_response.rb +754 -15
  276. data/lib/vericred_client/models/supplemental_options.rb +1187 -0
  277. data/lib/vericred_client/models/v7_network.rb +1155 -0
  278. data/lib/vericred_client/models/v7_network_comparison_response.rb +1149 -0
  279. data/lib/vericred_client/models/v7_network_details.rb +1167 -0
  280. data/lib/vericred_client/models/v7_network_details_response.rb +1135 -0
  281. data/lib/vericred_client/models/v7_network_search_response.rb +1147 -0
  282. data/lib/vericred_client/models/v7_provider_details.rb +1395 -0
  283. data/lib/vericred_client/models/v7_provider_networks.rb +1175 -0
  284. data/lib/vericred_client/models/vision_plan.rb +825 -86
  285. data/lib/vericred_client/models/vision_plan_benefits.rb +937 -128
  286. data/lib/vericred_client/models/vision_plan_search_applicant.rb +754 -15
  287. data/lib/vericred_client/models/vision_plan_search_request.rb +768 -39
  288. data/lib/vericred_client/models/vision_plan_search_response.rb +754 -15
  289. data/lib/vericred_client/models/vision_plan_show_response.rb +754 -15
  290. data/lib/vericred_client/models/vision_plan_update.rb +804 -65
  291. data/lib/vericred_client/models/vision_plan_update_request.rb +754 -15
  292. data/lib/vericred_client/models/zip_code.rb +754 -15
  293. data/lib/vericred_client/models/zip_counties_response.rb +770 -31
  294. data/lib/vericred_client/models/zip_county.rb +754 -15
  295. data/lib/vericred_client/models/zip_county_bulk.rb +765 -26
  296. data/lib/vericred_client/models/zip_county_response.rb +754 -15
  297. data/lib/vericred_client/version.rb +755 -16
  298. data/lib/vericred_client.rb +809 -15
  299. data/spec/api/carrier_groups_api_spec.rb +754 -15
  300. data/spec/api/carrier_verification_dental_plans_api_spec.rb +993 -0
  301. data/spec/api/carrier_verification_medical_plans_api_spec.rb +993 -0
  302. data/spec/api/carrier_verification_plans_api_spec.rb +754 -15
  303. data/spec/api/carrier_verification_vision_plans_api_spec.rb +993 -0
  304. data/spec/api/carriers_api_spec.rb +754 -15
  305. data/spec/api/dental_plans_api_spec.rb +780 -16
  306. data/spec/api/drug_coverages_api_spec.rb +754 -15
  307. data/spec/api/drug_packages_api_spec.rb +754 -15
  308. data/spec/api/drugs_api_spec.rb +754 -15
  309. data/spec/api/embargoes_api_spec.rb +754 -15
  310. data/spec/api/formularies_api_spec.rb +754 -15
  311. data/spec/api/issuers_api_spec.rb +754 -15
  312. data/spec/api/major_medical_plans_api_spec.rb +1006 -0
  313. data/spec/api/medical_plans_api_spec.rb +754 -40
  314. data/spec/api/network_sizes_api_spec.rb +754 -15
  315. data/spec/api/networks_api_spec.rb +760 -18
  316. data/spec/api/plans_api_spec.rb +754 -52
  317. data/spec/api/provider_notification_subscriptions_api_spec.rb +754 -15
  318. data/spec/api/providers_api_spec.rb +755 -28
  319. data/spec/api/quoting_api_spec.rb +1055 -0
  320. data/spec/api/rates_api_spec.rb +754 -15
  321. data/spec/api/vision_plans_api_spec.rb +779 -15
  322. data/spec/api/zip_counties_api_spec.rb +754 -15
  323. data/spec/api_client_spec.rb +754 -15
  324. data/spec/configuration_spec.rb +754 -15
  325. data/spec/models/aca_plan2018_search_response_spec.rb +756 -17
  326. data/spec/models/aca_plan2018_search_result_spec.rb +839 -100
  327. data/spec/models/aca_plan2018_show_response_spec.rb +754 -15
  328. data/spec/models/aca_plan2018_spec.rb +843 -104
  329. data/spec/models/aca_plan_pre2018_search_response_spec.rb +756 -17
  330. data/spec/models/aca_plan_pre2018_search_result_spec.rb +839 -100
  331. data/spec/models/aca_plan_pre2018_show_response_spec.rb +754 -15
  332. data/spec/models/aca_plan_pre2018_spec.rb +837 -98
  333. data/spec/models/aca_plan_spec.rb +837 -98
  334. data/spec/models/address_spec.rb +1024 -0
  335. data/spec/models/ancillary_plan_identifier_spec.rb +994 -0
  336. data/spec/models/base_plan_search_response_spec.rb +756 -17
  337. data/spec/models/base_spec.rb +754 -15
  338. data/spec/models/carrier_group_request_spec.rb +756 -17
  339. data/spec/models/carrier_request_spec.rb +756 -17
  340. data/spec/models/carrier_spec.rb +754 -15
  341. data/spec/models/carrier_subsidiary_spec.rb +758 -19
  342. data/spec/models/county_bulk_spec.rb +757 -18
  343. data/spec/models/county_spec.rb +756 -17
  344. data/spec/models/dental_plan_benefits_spec.rb +782 -43
  345. data/spec/models/dental_plan_search_applicant_spec.rb +754 -15
  346. data/spec/models/dental_plan_search_request_spec.rb +758 -25
  347. data/spec/models/dental_plan_search_response_spec.rb +754 -15
  348. data/spec/models/dental_plan_show_response_spec.rb +754 -15
  349. data/spec/models/dental_plan_spec.rb +767 -28
  350. data/spec/models/dental_plan_update_request_spec.rb +754 -15
  351. data/spec/models/dental_plan_update_spec.rb +763 -24
  352. data/spec/models/dependent_create_request_spec.rb +1012 -0
  353. data/spec/models/dependent_create_spec.rb +1012 -0
  354. data/spec/models/dependent_show_spec.rb +1012 -0
  355. data/spec/models/drug_coverage_response_spec.rb +756 -17
  356. data/spec/models/drug_coverage_spec.rb +758 -19
  357. data/spec/models/drug_package_spec.rb +756 -17
  358. data/spec/models/drug_search_response_spec.rb +756 -17
  359. data/spec/models/drug_spec.rb +758 -19
  360. data/spec/models/embargo_request_spec.rb +766 -21
  361. data/spec/models/formulary_drug_package_response_spec.rb +754 -15
  362. data/spec/models/formulary_response_spec.rb +756 -17
  363. data/spec/models/formulary_spec.rb +754 -15
  364. data/spec/models/group_create_request_spec.rb +994 -0
  365. data/spec/models/group_create_response_spec.rb +994 -0
  366. data/spec/models/group_create_spec.rb +1024 -0
  367. data/spec/models/group_show_response_spec.rb +994 -0
  368. data/spec/models/group_show_spec.rb +1030 -0
  369. data/spec/models/group_update_request_spec.rb +994 -0
  370. data/spec/models/group_update_spec.rb +1024 -0
  371. data/spec/models/issuer_request_spec.rb +765 -26
  372. data/spec/models/location_create_spec.rb +1018 -0
  373. data/spec/models/location_show_spec.rb +1024 -0
  374. data/spec/models/location_update_spec.rb +1024 -0
  375. data/spec/models/medical_plan_benefits_spec.rb +801 -62
  376. data/spec/models/medical_plan_update_request_spec.rb +754 -15
  377. data/spec/models/medical_plan_update_spec.rb +792 -47
  378. data/spec/models/medicare_advantage_plan_benefits_spec.rb +1828 -0
  379. data/spec/models/medicare_advantage_plan_search_request_spec.rb +1012 -0
  380. data/spec/models/medicare_advantage_plan_search_response_spec.rb +994 -0
  381. data/spec/models/medicare_advantage_plan_show_response_spec.rb +988 -0
  382. data/spec/models/medicare_advantage_plan_spec.rb +1090 -0
  383. data/spec/models/member_create_spec.rb +1042 -0
  384. data/spec/models/member_rate_show_request_spec.rb +1000 -0
  385. data/spec/models/member_rate_show_spec.rb +1018 -0
  386. data/spec/models/member_rates_show_response_spec.rb +994 -0
  387. data/spec/models/member_show_spec.rb +1048 -0
  388. data/spec/models/members_create_request_spec.rb +994 -0
  389. data/spec/models/members_create_response_spec.rb +988 -0
  390. data/spec/models/members_show_response_spec.rb +988 -0
  391. data/spec/models/meta_plan_search_response_spec.rb +757 -18
  392. data/spec/models/meta_spec.rb +754 -15
  393. data/spec/models/network_comparison_request_spec.rb +754 -15
  394. data/spec/models/network_comparison_response_spec.rb +756 -17
  395. data/spec/models/network_comparison_spec.rb +754 -15
  396. data/spec/models/network_details_response_spec.rb +754 -15
  397. data/spec/models/network_details_spec.rb +757 -18
  398. data/spec/models/network_search_response_spec.rb +754 -15
  399. data/spec/models/network_size_spec.rb +756 -17
  400. data/spec/models/network_spec.rb +754 -15
  401. data/spec/models/notification_subscription_response_spec.rb +754 -15
  402. data/spec/models/notification_subscription_spec.rb +754 -15
  403. data/spec/models/plan_county_bulk_spec.rb +756 -17
  404. data/spec/models/plan_county_spec.rb +756 -17
  405. data/spec/models/plan_deleted_spec.rb +754 -15
  406. data/spec/models/plan_identifier_spec.rb +754 -15
  407. data/spec/models/plan_medicare_bulk_spec.rb +763 -24
  408. data/spec/models/plan_medicare_spec.rb +760 -21
  409. data/spec/models/plan_pricing_medicare_spec.rb +761 -22
  410. data/spec/models/plan_search_response_spec.rb +756 -17
  411. data/spec/models/plan_show_response_spec.rb +754 -15
  412. data/spec/models/plan_spec.rb +754 -15
  413. data/spec/models/plans_bulk_aca2018_spec.rb +988 -0
  414. data/spec/models/plans_bulk_aca_pre2018_spec.rb +988 -0
  415. data/spec/models/plans_bulk_base_spec.rb +982 -0
  416. data/spec/models/plans_bulk_dental_spec.rb +982 -0
  417. data/spec/models/plans_bulk_vision_spec.rb +982 -0
  418. data/spec/models/provider_details_spec.rb +779 -28
  419. data/spec/models/provider_geocode_spec.rb +754 -15
  420. data/spec/models/provider_network_event_notification_spec.rb +760 -21
  421. data/spec/models/provider_networks_spec.rb +1006 -0
  422. data/spec/models/provider_show_response_spec.rb +754 -15
  423. data/spec/models/provider_spec.rb +762 -23
  424. data/spec/models/providers_geocode_response_spec.rb +754 -15
  425. data/spec/models/providers_search_response_spec.rb +754 -15
  426. data/spec/models/quote_create_request_spec.rb +988 -0
  427. data/spec/models/quote_create_response_spec.rb +988 -0
  428. data/spec/models/quote_create_spec.rb +1030 -0
  429. data/spec/models/quote_show_response_spec.rb +988 -0
  430. data/spec/models/quote_show_spec.rb +1042 -0
  431. data/spec/models/rate_request_spec.rb +884 -145
  432. data/spec/models/rate_search_spec.rb +886 -117
  433. data/spec/models/rate_show_request_spec.rb +1000 -0
  434. data/spec/models/rate_show_spec.rb +1012 -0
  435. data/spec/models/rates_show_response_spec.rb +994 -0
  436. data/spec/models/rating_area_spec.rb +754 -15
  437. data/spec/models/request_plan_find_applicant_spec.rb +754 -15
  438. data/spec/models/request_plan_find_carrier_verification_spec.rb +761 -22
  439. data/spec/models/request_plan_find_drug_package_spec.rb +754 -15
  440. data/spec/models/request_plan_find_provider_spec.rb +754 -15
  441. data/spec/models/request_plan_find_spec.rb +759 -20
  442. data/spec/models/request_provider_notification_subscription_spec.rb +757 -18
  443. data/spec/models/request_providers_search_spec.rb +758 -19
  444. data/spec/models/request_rates_search_spec.rb +756 -17
  445. data/spec/models/response_rates_search_spec.rb +754 -15
  446. data/spec/models/rx_cui_identifier_search_response_spec.rb +756 -17
  447. data/spec/models/rx_cui_identifier_spec.rb +756 -17
  448. data/spec/models/service_area_spec.rb +754 -15
  449. data/spec/models/service_area_zip_county_spec.rb +754 -15
  450. data/spec/models/state_network_size_request_spec.rb +754 -15
  451. data/spec/models/state_network_size_response_spec.rb +754 -15
  452. data/spec/models/state_spec.rb +762 -23
  453. data/spec/models/supplemental_options_spec.rb +1018 -0
  454. data/spec/models/v7_network_comparison_response_spec.rb +994 -0
  455. data/spec/models/v7_network_details_response_spec.rb +988 -0
  456. data/spec/models/v7_network_details_spec.rb +1006 -0
  457. data/spec/models/v7_network_search_response_spec.rb +994 -0
  458. data/spec/models/v7_network_spec.rb +1000 -0
  459. data/spec/models/v7_provider_details_spec.rb +1138 -0
  460. data/spec/models/v7_provider_networks_spec.rb +1012 -0
  461. data/spec/models/vision_plan_benefits_spec.rb +813 -32
  462. data/spec/models/vision_plan_search_applicant_spec.rb +754 -15
  463. data/spec/models/vision_plan_search_request_spec.rb +758 -25
  464. data/spec/models/vision_plan_search_response_spec.rb +754 -15
  465. data/spec/models/vision_plan_show_response_spec.rb +754 -15
  466. data/spec/models/vision_plan_spec.rb +767 -28
  467. data/spec/models/vision_plan_update_request_spec.rb +754 -15
  468. data/spec/models/vision_plan_update_spec.rb +763 -24
  469. data/spec/models/zip_code_spec.rb +754 -15
  470. data/spec/models/zip_counties_response_spec.rb +756 -17
  471. data/spec/models/zip_county_bulk_spec.rb +757 -18
  472. data/spec/models/zip_county_response_spec.rb +754 -15
  473. data/spec/models/zip_county_spec.rb +754 -15
  474. data/spec/spec_helper.rb +754 -15
  475. data/vericred_client.gemspec +754 -15
  476. metadata +315 -95
@@ -0,0 +1,2535 @@
1
+ =begin
2
+ #Vericred API
3
+
4
+ ## Getting Started
5
+
6
+ ## Signing Up
7
+
8
+ Visit our [Developer Portal](https://developers.vericred.com) to
9
+ create an account.
10
+
11
+ Once you have created an account, you can create one Application for your
12
+ Production environment and another for a Sandbox (select the appropriate Plan when you create the Application).
13
+
14
+ ## SDKs
15
+
16
+ Our API follows standard REST conventions, so you can use any HTTP client
17
+ to integrate with us. You will likely find it easier to use one of our
18
+ [autogenerated SDKs](https://github.com/vericred/?query=vericred-),
19
+ which we make available for several common programming languages.
20
+
21
+ ## Authentication
22
+
23
+ To authenticate, pass the API Key you created in the Developer Portal as
24
+ a `Vericred-Api-Key` header.
25
+
26
+ `curl -H 'Vericred-Api-Key: YOUR_KEY' "https://api.vericred.com/providers?search_term=Foo&zip_code=11215"`
27
+
28
+ ## Versioning
29
+
30
+ Vericred's API default to the latest version. However, if you need a specific
31
+ version, you can request it with an `Accept-Version` header.
32
+
33
+ The current version is `v4`. We also support `v2` and `v3`
34
+
35
+ `curl -H 'Vericred-Api-Key: YOUR_KEY' -H 'Accept-Version: v3' "https://api.vericred.com/providers?search_term=Foo&zip_code=11215"`
36
+
37
+ ## Pagination
38
+
39
+ Endpoints that accept `page` and `per_page` parameters are paginated. They expose
40
+ four additional fields that contain data about your position in the response,
41
+ namely `Total`, `Per-Page`, `Link`, and `Page` as described in [RFC-5988](https://tools.ietf.org/html/rfc5988).
42
+
43
+ For example, to display 5 results per page and view the second page of a
44
+ `GET` to `/networks`, your final request would be `GET /networks?....page=2&per_page=5`.
45
+
46
+ ## Sideloading
47
+
48
+ When we return multiple levels of an object graph (e.g. `Provider`s and their
49
+ `State`s we typically the associated data. In this example, we would
50
+ provide an Array of `State`s and a `state_id` for each provider. This is
51
+ done primarily to reduce the payload size since many of the `Provider`s
52
+ will share a `State`
53
+
54
+ ### Simplified Example
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` in the query string for a `GET` or the body for a `POST`.
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,states.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
+ # Plan and Rate Data
118
+
119
+ Vericred's Plan and Rate Data let you search and quote Major Medical and Ancillary Insurance Plans in a given area for a particular family in the Individual Market or a group of families in the Small Group Market. Vericred provides the relevant data via this API and via our Bulk Format (documented [below](#Bulk Plan and Rate Data))
120
+
121
+ ## Plans
122
+
123
+ A Plan defines a set of Benefits available to its purchaser. For example, a Major Medical Plan would specify cost-share Benefits for services like a Primary Care Provider visit, a Specialist visit or an Emergency Room visit. A Dental Plan might specify Benefits for Periodontics and Fluroride Treatments. The Benefits for each Product type ([Major Medical](#header-major-medical), [Dental](#header-dental), and [Vision](#header-vision)) are documented below.
124
+
125
+ ### Benefits Format
126
+
127
+ Benefits for Plans can be quite complex. With the goals of capturing and standardizing the complexity while retaining a human-readable format, we have developed a [Bakus-Naur Form](https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form)(BNF) context-free grammar, with which we present Benefits.
128
+
129
+ Benefit cost-share strings are formatted to capture:
130
+ * Network tiers
131
+ * Compound or conditional cost-share
132
+ * Limits on the cost-share
133
+ * Benefit-specific maximum out-of-pocket costs
134
+
135
+ **Example #1**
136
+ As an example, we would represent [this Summary of Benefits & Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/33602TX0780032.pdf) as:
137
+
138
+ * **Hospital stay facility fees**:
139
+ - Network Provider: `$400 copay/admit plus 20% coinsurance`
140
+ - Out-of-Network Provider: `$1,500 copay/admit plus 50% coinsurance`
141
+ - 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`
142
+
143
+ * **Rehabilitation services:**
144
+ - Network Provider: `20% coinsurance`
145
+ - Out-of-Network Provider: `50% coinsurance`
146
+ - Limitations & Exceptions: `35 visit maximum per benefit period combined with Chiropractic care.`
147
+ - Vericred's format for this benefit: `In-Network: 20% after deductible / Out-of-Network: 50% after deductible | limit: 35 visit(s) per Benefit Period`
148
+
149
+ **Example #2**
150
+ 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.
151
+ * **Specialty drugs:**
152
+ - Network Provider: `40% coinsurance up to a $500 maximum for up to a 30 day supply`
153
+ - Out-of-Network Provider `Not covered`
154
+ - Vericred's format for this benefit: `In-Network: 40% after deductible, up to $500 per script / Out-of-Network: 100%`
155
+
156
+ **BNF**
157
+
158
+ Here's a description of the benefits summary string, represented as a context-free grammar:
159
+
160
+ ```
161
+ root ::= coverage
162
+
163
+ coverage ::= (simple_coverage | tiered_coverage) (space pipe space coverage_modifier)?
164
+ tiered_coverage ::= tier (space slash space tier)*
165
+ tier ::= tier_name colon space (tier_coverage | not_applicable)
166
+ tier_coverage ::= simple_coverage (space (then | or | and) space simple_coverage)* tier_limitation?
167
+ simple_coverage ::= (pre_coverage_limitation space)? coverage_amount (space post_coverage_limitation)? (comma? space coverage_condition)?
168
+ coverage_modifier ::= limit_condition colon space (((simple_coverage | simple_limitation) (semicolon space see_carrier_documentation)?) | see_carrier_documentation | waived_if_admitted | shared_across_tiers)
169
+ waived_if_admitted ::= ("copay" space)? "waived if admitted"
170
+ simple_limitation ::= pre_coverage_limitation space "copay applies"
171
+ tier_name ::= "In-Network-Tier-2" | "Out-of-Network" | "In-Network"
172
+ limit_condition ::= "limit" | "condition"
173
+ tier_limitation ::= comma space "up to" space (currency | (integer space time_unit plural?)) (space post_coverage_limitation)?
174
+ coverage_amount ::= currency | unlimited | included | unknown | percentage | (digits space (treatment_unit | time_unit) plural?)
175
+ pre_coverage_limitation ::= first space digits space time_unit plural?
176
+ post_coverage_limitation ::= (((then space currency) | "per condition") space)? "per" space (treatment_unit | (integer space time_unit) | time_unit) plural?
177
+ coverage_condition ::= ("before deductible" | "after deductible" | "penalty" | allowance | "in-state" | "out-of-state") (space allowance)?
178
+ allowance ::= upto_allowance | after_allowance
179
+ upto_allowance ::= "up to" space (currency space)? "allowance"
180
+ after_allowance ::= "after" space (currency space)? "allowance"
181
+ see_carrier_documentation ::= "see carrier documentation for more information"
182
+ shared_across_tiers ::= "shared across all tiers"
183
+ unknown ::= "unknown"
184
+ unlimited ::= /[uU]nlimited/
185
+ included ::= /[iI]ncluded in [mM]edical/
186
+ 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/)
187
+ treatment_unit ::= /[pP]erson/ | /[gG]roup/ | /[cC]ondition/ | /[sS]cript/ | /[vV]isit/ | /[eE]xam/ | /[iI]tem/ | /[sS]tay/ | /[tT]reatment/ | /[aA]dmission/ | /[eE]pisode/
188
+ comma ::= ","
189
+ colon ::= ":"
190
+ semicolon ::= ";"
191
+ pipe ::= "|"
192
+ slash ::= "/"
193
+ plural ::= "(s)" | "s"
194
+ then ::= "then" | ("," space) | space
195
+ or ::= "or"
196
+ and ::= "and"
197
+ not_applicable ::= "Not Applicable" | "N/A" | "NA"
198
+ first ::= "first"
199
+ currency ::= "$" number
200
+ percentage ::= number "%"
201
+ number ::= float | integer
202
+ float ::= digits "." digits
203
+ integer ::= /[0-9]/+ (comma_int | under_int)*
204
+ comma_int ::= ("," /[0-9]/*3) !"_"
205
+ under_int ::= ("_" /[0-9]/*3) !","
206
+ digits ::= /[0-9]/+ ("_" /[0-9]/+)*
207
+ space ::= /[ \t]/+
208
+ ```
209
+
210
+
211
+ ### Major Medical
212
+
213
+ Vericred's data covers all Major Medical Plans available in the Individual and Small Groups (2-50 or 2-100) Markets in the US. These Plans are governed by CMS and are ACA-compliant. We do not include certain Plans that fall outside of the ACA, for example, Faith-Based Plans or Short-Term Medical Plans
214
+
215
+ We support the following Benefits Fields for Major Medical Plans. These represent the vast majority of fields available on a [Summary of Benefits and Coverage](https://www.healthcare.gov/health-care-law-protections/summary-of-benefits-and-coverage/)
216
+
217
+ The following are the appropriate Benefit Fields for Major Medical:
218
+
219
+ - ambulance
220
+ - child\_eye\_exam
221
+ - child\_eyewear
222
+ - chiropractic\_services
223
+ - diagnostic\_test
224
+ - durable\_medical\_equipment
225
+ - emergency\_room
226
+ - family\_drug\_deductible
227
+ - family\_drug\_moop
228
+ - family\_medical\_deductible
229
+ - family\_medical\_moop
230
+ - generic\_drugs
231
+ - habilitation\_services
232
+ - home\_health\_care
233
+ - hospice\_service
234
+ - imaging\_center
235
+ - imaging\_physician
236
+ - individual\_drug\_deductible
237
+ - individual\_drug\_moop
238
+ - individual\_medical\_deductible
239
+ - individual\_medical\_moop
240
+ - inpatient\_birth
241
+ - inpatient\_facility
242
+ - inpatient\_mental\_health
243
+ - inpatient\_physician
244
+ - inpatient\_substance
245
+ - lab\_test
246
+ - non\_preferred\_brand\_drugs
247
+ - nonpreferred\_generic\_drug\_share
248
+ - nonpreferred\_specialty\_drug\_share
249
+ - outpatient\_ambulatory\_care\_center
250
+ - outpatient\_facility
251
+ - outpatient\_mental\_health
252
+ - outpatient\_physician
253
+ - outpatient\_substance
254
+ - postnatal\_care
255
+ - preferred\_brand\_drugs
256
+ - prenatal\_care
257
+ - preventative\_care
258
+ - primary\_care\_physician
259
+ - rehabilitation\_services
260
+ - skilled\_nursing
261
+ - specialist
262
+ - specialty\_drugs
263
+ - urgent\_care
264
+
265
+ ### Dental
266
+
267
+ Dental benefits are less standardized than [Major Medical](#header-major-medical). Because of this, we have captured benefits for the most commonly specified services and procedures. If a Plan only specifies cost-share for "Major", "Minor", "Elective", etc, we determine the category for each of the benefits that we support and display the appropriate value for its category.
268
+
269
+ To view the technical documentation, [click here](#dental-plans).
270
+
271
+ The following are the supported Benefit Fields for Dental:
272
+
273
+ - bridges
274
+ - crowns
275
+ - denture\_relines\_rebases
276
+ - denture\_repair\_and\_adjustments
277
+ - dentures
278
+ - emergency\_treatment
279
+ - endodontics
280
+ - family\_annual\_max
281
+ - family\_deductible
282
+ - fluoride\_treatment
283
+ - implants
284
+ - individual\_annual\_max
285
+ - individual\_deductible
286
+ - inlays
287
+ - onlays
288
+ - oral\_exam
289
+ - oral\_surgery
290
+ - orthodontics\_adult
291
+ - orthodontics\_child
292
+ - periodontal\_maintenance
293
+ - periodontics
294
+ - prophylaxis\_cleaning
295
+ - radiograph\_bitewings
296
+ - radiograph\_other
297
+ - restoration\_fillings
298
+ - sealant
299
+ - simple\_extraction
300
+ - space\_maintainers
301
+
302
+ ### Vision
303
+
304
+ Vision benefits are similar in structure to [Dental](#header-dental). Again, when benefits are broken out by category, we determine the appropriate category for each service or procedure and display the approprate value for its category.
305
+
306
+ To view the technical documentation, [click here](#vision-plans).
307
+
308
+ The following are the supported Benefit Fields for Vision:
309
+
310
+ - eye\_exam
311
+ - retinal\_imaging
312
+ - frame
313
+ - eyeglass\_lenses\_single\_vision
314
+ - eyeglass\_lenses\_bifocal
315
+ - eyeglass\_lenses\_trifocal
316
+ - eyeglass\_lenses\_lenticular
317
+ - uv\_coating
318
+ - tint
319
+ - standard\_antireflective\_coating
320
+ - premium\_antireflective\_coating
321
+ - standard\_polycarbonate\_lenses\_child
322
+ - standard\_polycarbonate\_lenses\_adult
323
+ - standard\_progressive\_lenses
324
+ - premium\_progressive\_lenses
325
+ - standard\_scratch\_resistance
326
+ - polarized\_lenses
327
+ - photochromatic\_lenses
328
+ - standard\_contact\_lens\_fit\_and\_follow\_up
329
+ - premium\_contact\_lens\_fit\_and\_follow\_up
330
+ - contact\_lenses\_conventional
331
+ - contact\_lenses\_disposable
332
+ - contact\_lenses\_medically\_necessary
333
+ - laser\_vision\_correction
334
+ - additional\_pairs\_of\_eyeglasses
335
+
336
+ ## Rates
337
+
338
+ Rates are returned from the API as a part of [Quoting](#header-quoting). We calculate Rates in one of two ways.
339
+
340
+ ### Sheet Rates
341
+ When a Carrier supplies us with Sheet Rates, we display *exactly* the value provided to us. For example, in the Major Medical market, most Carriers provide a single rate for each combination of Applicant age and tobacco status in a given [Rating Area](#header-rating-areas). For example, in Austin, TX, a 21-year-old non-tobacco-user may be $312.41 per month while a 22-year-old tobacco-user may be $401.75 per month. Certain Vision and Dental Carriers supply Sheet Rates as well, though it is less common.
342
+
343
+ ### Rate Factors
344
+ Certain [Major Medical](#header-major-medical) Carriers and most [Vision](#header-vision) and [Dental](#header-dental) Carriers supply Rate Factors. The attributes on which the factors are based are the same as [Sheet Rates](#header-sheet-rates) for the [Major Medical](#header-major-medical) market (due to restrictions on what factors may be used in ACA Plans, which limit the possible factors to age and tobacco status).
345
+
346
+ In [Dental](#header-dental) and [Vision](#header-vision), the types of [Rate Factors](#header-rate-factors) are more varied. For example, SIC Code and Group size in the Group market and Gender in the Individual Market are commonly used [Rate Factors](#header-rate-factors)
347
+
348
+ Other common [Rate Factors](#header-rate-factors) for [Dental](#header-dental) and [Vision](#header-vision) products are Geographic and "Trend" (enrollment date) Factors. In [Major Medical](#header-major-medical), these types of variance are handled by CMS-defined [Rating Areas](#header-rating-areas).
349
+
350
+ In order to calculate a Rate using [Rate Factors](#header-rate-factors), the following methodology is applied:
351
+
352
+ ```
353
+ B = Base Rate
354
+ f = Rate Factor Function 1
355
+ f' = Rate Factor Function 2
356
+
357
+ B * f(x) * f'(y) [* f''(z)] ... = n
358
+ ```
359
+
360
+ ## Rating Areas
361
+ For [Major Medical](#header-major-medical) products, [CMS](https://www.cms.gov/) defines [Rating Areas](https://www.cms.gov/cciio/programs-and-initiatives/health-insurance-market-reforms/state-gra.html). Under the ACA, *all* [Rate Factors](#header-rate-factors) in a Rating Area must be identical for a given time period. E.g. in Arizona, the rate for a 21-year-old non-tobacco user must be identical in all counties contained in Rating Area 1 (Mohave, Coconino, Apache, and Navajo), but *may* be different than the rate for a 21-year-old non-tobacco user in all counties Rating Area 2 (Yavapai county only) for a given year in the Individual Market and a given quartern in the Small Group market.
362
+
363
+ [Rating Areas](#header-rating-areas) are defined either by County, Zip Code or both, depending on the State. Because of this variance, all API endpoints that require a [Location](#header-specifying-the-location) require both `zip_code` and `fips_code` (a county code). [Bulk Data](#bulkplanandratedata) for [Rating Areas](#bulkratingareas) and [Service Areas](#bulkserviceareas) also specifies locations using both `zip_code` and `fips_code`.
364
+
365
+ *Rating Areas do not apply to products other than [Major Medical](#header-major-medical)*
366
+
367
+ ## Service Areas
368
+ CMS mandates that [Major Medical](#header-major-medical) Rates be defined by [Rating Areas](#header-rating-areas), which themselves define a geography in which Plans are offered. Carriers often choose *not* to offer a Plan in and entire [Rating Area](#header-rating-areas) due to network coverage or other factors. Instead, the Carrier would define a [Service Area](#header-service-areas) that specifies where a given Plan is offered.
369
+
370
+ Each Plan is available in a single [Service Area](#header-service-areas) and each [Service Area](#header-service-areas) is defined by either County, Zip Code, or both, depending on the Carrier. Because of this variance, all API endpoints that require a [Location](#header-specifying-the-location) require both `zip_code` and `fips_code` (a county code). [Bulk Data](#bulkplanandratedata) for [Rating Areas](#bulkratingareas) and [Service Areas](#bulkserviceareas) also specifies locations using both `zip_code` and `fips_code`.
371
+
372
+ In [Dental](#header-dental) and [Vision](#header-vision) plans, we use a [Service Area](#header-service-areas) to define availability as well, although it typically mirrors a Geographic [Rate Factor](#header-rate-factors).
373
+
374
+ # Quoting
375
+
376
+ One of the primary use-cases for the Vericred API is to run Quotes to determine the Rate for a given family (in the Individual Market) or group (in the Small Group Market). We support quoting across [Major Medical](#header-major-medical), [Vision](#header-vision), and [Dental](#header-dental). In both cases, the process of generating a Quote is broken out into several steps:
377
+
378
+ 1. Find all available [Plans](#header-plans) in the relevent [Service Areas](#header-service-areas) for the family or group.
379
+ 1. Using [Business Rules](#header-business-rules) for each [Plan](#header-plans), determine if the family or group is eligible for that [Plan](#header-plans).
380
+ 1. Using [Business Rules](#header-business-rules) for each [Plan](#header-plans), determine which members of the family or which members of each family in the group should be considered for Rating.
381
+ 1. Using the [Sheet Rates](#header-sheet-rates) or [Rate Factors](#header-rate-factors) for each [Plan](#header-plans), determine the Rate the family, or for each family in the group.
382
+ 1. If running a [Composite](#compositerates) quote, determine the portion of the total Rate that each family will pay.
383
+
384
+ ## Individual Quotes
385
+ An Individual Quote is one for Plans that are available to a particular family, outside the context of their Employer. In the [Major Medical](#header-major-medical) market, many of these Plans are available on [Healthcare.gov](https://www.healthcare.gov) or the State-Based Exchange for non-Healthcare.gov states. The API supports both on-market and off-market Plans.
386
+
387
+ For details on Major Medical Quoting API calls see [below](#medicalplans-medicalplans-post)
388
+
389
+ ### Specifying the Location
390
+ In order to determine which plans are [available](#header-service-areas) and the [rate](#header-rating-areas) for each Plan, you must specify a location. When creating a [Quote](#header-quoting) for the Individual Market, that information is contained in the `POST` body of the request:
391
+ ```
392
+ POST /plans/medical/search
393
+ {
394
+ ...
395
+ "zip_code": "11201",
396
+ "fips_code": "36047"
397
+ ...
398
+ }
399
+
400
+ ```
401
+
402
+ ### Specifying Applicants
403
+ Applicants are the members of the family being quoted and are specified in the `POST` body of the request.
404
+ ```
405
+ POST /plans/medical/search
406
+ {
407
+ ...
408
+ "applicants": [
409
+ {
410
+ "age": 34,
411
+ "smoker": true,
412
+ "child": false
413
+ },
414
+ {
415
+ "age": 32,
416
+ "smoker": false,
417
+ "child": false
418
+ },
419
+ {
420
+ "age": 4,
421
+ "smoker": false,
422
+ "child": true
423
+ }
424
+ ]
425
+ ...
426
+ }
427
+ ```
428
+
429
+ ### Specifying Enrollment Date
430
+ The `enrollment_date` determines which [Plans](#header-plans) and [Rates](#header-rates) are returned. Specifying an `enrollment_date` in the past allows you to calculate historical data as far back as 2014.
431
+
432
+ ### Plan Benefits
433
+ Plan Benefits are returned in the response for [Individual Quotes](#individualquotes)
434
+ ```
435
+ POST /plans/medical/search
436
+ {
437
+ ...
438
+ }
439
+
440
+ Response:
441
+ {
442
+ "plans": [
443
+ {
444
+ ...
445
+ "individual_medical_deductible": "$5,000",
446
+ "family_medical_deductible": "$10,000"
447
+ ...
448
+ }
449
+
450
+ ]
451
+ }
452
+
453
+ ```
454
+
455
+ ### Premiums
456
+ The value for the family being quoted is returned in the `premium` field. If no [Applicants](#specifyingapplicants) are provided, the `premium` field will be `0`
457
+
458
+ ### Major Medical Quotes
459
+ In order to [Quote](#header-quoting) [Major Medical](#header-major-medical) Plans, send a `POST` to `/plans/medical/search`. In addition, the `age`, `smoker` and `child` attributes of each Applicant must be present.
460
+
461
+ #### Subsidies
462
+ On-market ([Healthcare.gov](https://www.healthcare.gov) and State-Based Exchange) [Major Medical](#header-major-medical) Plans are eligible for government subsidies. The subsidy calculation is based on the percentage of the family's income that the IRS has designated as "affordable" for that family and the Second Lowest-Cost Silver Plan available to that family.
463
+
464
+ In order to calculate subsidies for a family the following parameters must be supplied:
465
+ ```
466
+ POST /plans/medical/search
467
+ {
468
+ ...
469
+ "household_size": 4,
470
+ "household_income": 40000
471
+ ...
472
+ }
473
+ ```
474
+
475
+ The amount that the family will pay after subsidy is returned in the `premium_subsidized` field for each plan.
476
+
477
+ ##### Subsidy Calculation
478
+ Here is how subsidies are calculated. This is fully handled by the Vericred API, but the steps are enumerated below for clarity.
479
+
480
+ 1. Determine the percentage of the [Federal Poverty Level](https://aspe.hhs.gov/poverty-guidelines) for the family based on the household size and income.
481
+ 1. Reference the [CMS table](https://www.irs.gov/pub/irs-drop/rp-17-36.pdf) to determine the appropriate percentage of income for the family to spend on healthcare.
482
+ 1. Multiply that value by the family's income. This is the total amount that the family can spend on healthcare for the year, after the subsidy.
483
+ 1. Find the cost of the Second Least-Expensive Silver Plan available to the family, accounting for the percentage of premium that goes to [Essential Health Benefits](https://www.healthcare.gov/glossary/essential-health-benefits/)
484
+ 1. Calculate the difference in price between the amount the family should spend on healthcare and the Second Least-Expensive Silver Plan's premium. This is the subsidy.
485
+ 1. Apply the subsidy to all on-market Plans available to the family. The subsidized premium can never be below $0 (for example, a low-cost Bronze Plan may be less expensive than the subsidy)
486
+
487
+ #### Cost Sharing Reduction Plans
488
+ [Cost Sharing Reduction (CSR)](https://www.healthcare.gov/glossary/cost-sharing-reduction/) Plans are available to lower income families and offer enhanced benefits for certain Silver Plans at the same cost as the non-CSR Plans available to higher-income families.
489
+
490
+ If a family is eligible for CSR Plans, the Vericred API will return the relevant Plan in place of the non-CSR version.
491
+
492
+ In order to include CSR Plans where applicable, the following parameters must be supplied:
493
+ ```
494
+ POST /plans/medical/search
495
+ {
496
+ ...
497
+ "household_size": 4,
498
+ "household_income": 40000
499
+ ...
500
+ }
501
+ ```
502
+
503
+ #### The Children's Health Insurance Program (CHIP)
504
+ [The Children's Health Insurance Program (CHIP)](https://www.healthcare.gov/medicaid-chip/childrens-health-insurance-program/) provides low-cost health coverage to children in families that earn too much money to qualify for Medicaid.
505
+
506
+ If a family is eligible for CHIP, the Vericred API will include the subsidy in the returned premiums. In order to include CHIP subsidies in premium calculations, the following parameters must be supplied:
507
+ ```
508
+ POST /plans/medical/search
509
+ {
510
+ ...
511
+ "applicants": [
512
+ {
513
+ "age": 34,
514
+ "smoker": true,
515
+ "child": false
516
+ },
517
+ {
518
+ "age": 32,
519
+ "smoker": false,
520
+ "child": false
521
+ },
522
+ {
523
+ "age": 4,
524
+ "smoker": false,
525
+ "child": true
526
+ },
527
+ {
528
+ "age": 4,
529
+ "smoker": false,
530
+ "child": true
531
+ }
532
+ ],
533
+ "household_size": 4,
534
+ "household_income": 40000
535
+ ...
536
+ }
537
+ ```
538
+
539
+ CHIP eligibility is displayed within the meta-tag in the response as `eligible_for_chip_medicaid`:
540
+ ```
541
+ {
542
+ "meta": {
543
+ "total": 150,
544
+ "eligible_for_chip_medicaid": true,
545
+ "premium_tax_credit": 500.20
546
+ },
547
+ "coverages": [],
548
+ "plans": [...]
549
+ }
550
+ ```
551
+
552
+ If you do not want CHIP subsidies to be included in the premiums, simply do not include the `household_income` parameter in the request.
553
+
554
+ ### Dental Quotes
555
+ Quoting [Dental](#header-dental) Plans for a family requires slightly different parameters for [Applicants](#specifyingapplicants), due to the method with which Plans are [rated](#header-rate-factors). The folloiwng example contains the require parameters:
556
+ ```
557
+ POST /plans/dental/search
558
+ {
559
+ ...
560
+ "applicants": [
561
+ {
562
+ "age": 34,
563
+ "gender": "M",
564
+ "child": false
565
+ },
566
+ {
567
+ "age": 32,
568
+ "gender": "F",
569
+ "child": false
570
+ },
571
+ {
572
+ "age": 4,
573
+ "gender": "M",
574
+ "child": true
575
+ }
576
+ ]
577
+ ...
578
+ }
579
+ ```
580
+
581
+ Note that in contrast to [Major Medical Quotes](#majormedicalquotes), [Dental Quotes](#dentalquotes) require `gender`, but *do not* require `smoker`.
582
+
583
+ Also note that [Subsidies](#subsidies) and [Cost Sharing Reduction](#costsharingreductionplans) are *not* relevant for [Dental Quotes](#dentalquotes).
584
+
585
+ ### Vision Quotes
586
+
587
+ Quoting [Vision](#header-vision) Plans for a family requires slightly different parameters for [Applicants](#specifyingapplicants), due to the method with which Plans are [rated](#header-rate-factors). The folloiwng example contains the require parameters:
588
+ ```
589
+ POST /plans/vision/search
590
+ {
591
+ ...
592
+ "applicants": [
593
+ {
594
+ "age": 34,
595
+ "gender": "M",
596
+ "child": false
597
+ },
598
+ {
599
+ "age": 32,
600
+ "gender": "F",
601
+ "child": false
602
+ },
603
+ {
604
+ "age": 4,
605
+ "gender": "M",
606
+ "child": true
607
+ }
608
+ ]
609
+ ...
610
+ }
611
+ ```
612
+
613
+ Note that in contrast to [Major Medical Quotes](#majormedicalquotes), [Vision Quotes](#visionquotes) require `gender`, but *do not* require `smoker`.
614
+
615
+ Also note that [Subsidies](#subsidies) and [Cost Sharing Reduction](#costsharingreductionplans) are *not* relevant for [Vision Quotes](#visionquotes).
616
+
617
+ ## Quotes for Groups
618
+ A Group Quote finds [Plans](#header-plans) and [Rates](#header-rates) for a group of employees for a small business. Different [Plans](#header-plans) are available to small groups than are available in [Individual Quoting](#individualquotes). In addition, [Business Rules](#header-business-rules) that apply across multiple families or based upon employer attributes such as [SIC](https://en.wikipedia.org/wiki/Standard_Industrial_Classification) code factor into rates and availability.
619
+
620
+ In addition, due to performance requirements and for enhanced auditing, [Group Quotes](#groupquotes) are persisted across requests. This means that a given [Quote](#groupquotes) can be retrieved after it has been created.
621
+
622
+ ### Identifiers
623
+ In order to make it easier to cross-reference local copies of data with [Quotes](#header-creating-a-quote) and other data in the Vericred API, most entities allow for the specification of an `external_id` field. You can use this to store a primary or natural key from your system in order to easily match records returned from the API with records in your system.
624
+
625
+ ### Specifying the Group
626
+ Creating a group is the first step in [Group Quoting](#groupquoting). The API requires that certain information such as `sic_code`, and `chamber_association` be provided and returns a the attributes and `id` for the newly created `Group`
627
+
628
+ Full documentation is available [below](#groupscreate)
629
+
630
+ ### Specifying the Locations
631
+ When creating a `Group`, you must also specify one or more `Location`s. Of those `Location`s specified, one must be `primary`. That `Location` is used to calculate Plan eligibility using the relevant [Service Areas](#header-service-areas). Some Carriers use secondary `Location`s to determine eligibility as well, which is why those must be specified as well.
632
+
633
+ ```
634
+ POST /groups
635
+ {
636
+ "group": {
637
+ ...
638
+ },
639
+ "locations": [
640
+ {
641
+ ...
642
+ "zip_code": "11201",
643
+ "fips_code": "36047",
644
+ "primary": true
645
+ ...
646
+ }
647
+ ]
648
+ }
649
+ ```
650
+
651
+ ### Specifying the Census
652
+ A Census is the collection of `Member`s contained in the `Group`. The attributes of each `Member` and his or her `Dependent`s determine the [Rate](#header-rates) for the `Group` as a whole. Certain attributes of the `Member` are important for calculating [Rates](#header-rates) and applying [Business Rules](#header-business-rules). For example, the `Member`'s home address and in which office he or she works are relevant for certain [Business Rules](#header-business-rules).
653
+
654
+ #### Dependent Relationships
655
+ The `Dependent`s for a given `Member` also factor into the [Rates](#header-rates) and application of [Business Rules](#header-business-rules). For example, certain [Plans](#header-plans) cover only `Dependent`s of particular types and/or only `Dependent`s of a particular type who live in the same household as the primary `Member`
656
+
657
+ Valid Dependent Relationships:
658
+ - `adopted_child`
659
+ - `child`
660
+ - `court_appointed_guardian`
661
+ - `dependent_of_dependent`
662
+ - `ex_spouse`
663
+ - `foster_child`
664
+ - `grand_child`
665
+ - `guardian`
666
+ - `life_partner`
667
+ - `other`
668
+ - `sibling`
669
+ - `sponsored_dependent`
670
+ - `spouse`
671
+ - `step_child`
672
+ - `ward`
673
+
674
+ ```
675
+ POST
676
+
677
+ /groups/{id}/members
678
+ {
679
+ "members": [
680
+ ...
681
+ {
682
+ "cobra": false,
683
+ "date_of_birth": "1980-01-01",
684
+ "fips_code": "36047"
685
+ "gender": "M",
686
+ "last_used_tobacco": "2017-01-01",
687
+ "location_id": :location_id
688
+ "retiree": false,
689
+ "zip_code": "11201",
690
+ "dependents": [
691
+ ...
692
+ {
693
+ "relationship": "child",
694
+ "same_household": true
695
+ }
696
+ ...
697
+ ]
698
+ }
699
+ ...
700
+ ]
701
+ }
702
+
703
+ ```
704
+
705
+ ### Creating a Quote
706
+ Once the [Census](#header-specifying-the-census) has been created, we can generate a `Quote` for the `Group`.
707
+
708
+ #### Major Medical Quotes
709
+ To generate a [Major Medical](#header-major-medical) Quote, specify the `product_line` of `Quote` as `medical`
710
+
711
+ ```
712
+ POST /groups/{id}/quotes
713
+ {
714
+ ...
715
+ "product_line": "medical"
716
+ ...
717
+ }
718
+ ```
719
+
720
+ #### Dental Quotes
721
+ To generate a [Dental](#header-dental) Quote, specify the `product_line` of `Quote` as `dental`
722
+
723
+ ```
724
+ POST /groups/{id}/quotes
725
+ {
726
+ ...
727
+ "product_line": "dental"
728
+ ...
729
+ }
730
+ ```
731
+
732
+ #### Vision Quotes
733
+ To generate a [Vision](#header-vision) Quote, specify the `product_line` of `Quote` as `vision`
734
+
735
+ ```
736
+ POST /groups/{id}/quotes
737
+ {
738
+ ...
739
+ "product_line": "vision"
740
+ ...
741
+ }
742
+ ```
743
+
744
+ ### Retrieving Aggregate Rates
745
+ Once you have created a [Quote](#header-creating-a-quote), you can retrieve its aggregate [Rates](#header-rates). [Rates](#header-rates) are broken down by `Member` and `Dependent`, so that you can show the final cost in different scenarios where an employer might cover a different percentage of `Member` and `Dependent` costs.
746
+
747
+ ```
748
+ GET /quotes/{id}/rates
749
+
750
+ Response
751
+ {
752
+ "rates": [
753
+ ...
754
+ {
755
+ "plan_id": "12345NY6789012",
756
+ "total_premium": 2800.0,
757
+ "member_premium": 1000.0,
758
+ "dependent_premium": 1800.0,
759
+ "id": "123abc"
760
+ }
761
+ ...
762
+ ]
763
+ }
764
+ ```
765
+
766
+
767
+ #### Loading Plan Data
768
+ Aggregate [Rates](#header-rates) responses *do not* include [Plan](#header-plans) details in order to keep the payload small. [Plan](#header-plans) data can be retrieved in one of two ways:
769
+
770
+ Loading the [Plan](#header-plans) from the API:
771
+ ```
772
+ GET /plans/{id}
773
+
774
+ Response:
775
+ {
776
+ "plans": [
777
+ ...
778
+ {
779
+ ...
780
+ "individual_medical_deductible": "$5,000",
781
+ "family_medical_deductible": "$10,000",
782
+ ...
783
+ }
784
+ ...
785
+
786
+ ]
787
+ }
788
+ ```
789
+ Pulling in [Bulk Plan Data](#bulkplans) and matching up [Plans](#header-plans) by their `id`.
790
+
791
+ ### Retrieving Member-Level Rates
792
+ In order to retrieve the exact [Rate](#header-rates) for each `Member` and their `Dependents` for given [Plan](#header-plans), you can load Member-Level `Rates`.
793
+
794
+ ```
795
+ GET /rates/{id}/member_rates
796
+
797
+ Response
798
+ {
799
+ "member_rates": [
800
+ ...
801
+ {
802
+ "id": "123abc",
803
+ "member_id": "234def",
804
+ "member_external_id": "externally-supplied-id",
805
+ "member_premium": 500.0,
806
+ "dependent_premium": 600.0,
807
+ "total_premium": 1100.0,
808
+ }
809
+ ...
810
+ ]
811
+ }
812
+
813
+ ```
814
+
815
+ Note that *all* `MemberRate`s are for one particular [Plan](#header-plans) - the one referenced by the parent [Rate](#header-rates).
816
+
817
+ ### Business Rules
818
+ Vericred works with our Carrier partners to acquire and apply Business Rules that can affect either [Plan](#header-plans) availability or the way in which `Member`s and `Dependent`s are rated. For example, one Carrier's Business Rules might specify that `Member`s and `Dependent`s who have used tobacco in the past 4 months are considered "tobacco-users", while another's may specify that period to be 1 year.
819
+
820
+ These rules are applied transparently during the [Quoting](#header-quoting) process and *do not* require any additional action or input on your part.
821
+
822
+ For a full accounting of Business Rules and a list of Carriers whose Business Rules are applied, please contact support@vericred.com
823
+
824
+ ### Composite Rates
825
+ Composite Rates are commonly used in [Major Medical](#header-major-medical), [Dental](#header-dental), and [Vision](#header-vision) [Plans](#header-plans) to simplify operations by charging each family the weighted average of the `Group`'s total premium. The most common methodology is as follows:
826
+
827
+ 1. Calculate the [Rates](#header-rates) for the entire `Group` using [Sheet Rates](#header-sheet-rates) or [Rate Factors](#header-rate-factors) as appropriate
828
+ 1. Categorize each Family within the Group. The categorization differs depending on whether the Composite Rate is 2, 3, or 4-tier
829
+ 1. Multiply the number of Families in each category by the constant for that category. These constants are provided to Vericred by the Carrier. This determines the total number of "Rating Units"
830
+ 1. Divide the total premium calculated in Step 1 by the total number of Rating Units to get the price per Rating Unit
831
+ 1. The [Rate](#header-rates) each Family pays is the constant for that Family's category multiplied by the price per Rating Unit.
832
+
833
+ You can request that a [Quote](#header-quoting) be calculated using Composite Rates when creating it:
834
+ ```
835
+ POST /quotes
836
+ {
837
+ ...
838
+ "rating_method": "4_tier_composite"
839
+ ...
840
+ }
841
+ ```
842
+ If no Composite Rates methodology is available, the Vericred API will return standard age-banded Rates.
843
+
844
+ # Network and Provider Data
845
+
846
+ A `Provider` is an individual or organization in the medical profession. For example, an individual doctor is a `Provider` as are certain clinics and hospitals.
847
+
848
+ `Provider`s are related to `Network`s. A `Network` is a collection of `Provider`s that are under a particular contract with a given `Carrier`. A given `Carrier` will often have multiple `Network`s. For example, there may be a large national `Network` as well as several smaller regional `Network`s.
849
+
850
+ Each `Plan` has a `Network`. A consumer who visits a `Provider` typically incurs fewer costs when visiting a `Provider` in the `Network` covered by his or her `Plan`. The `premium` for a `Plan` is often proportional to the size of its `Network`
851
+
852
+ ## Finding Providers
853
+ In order to determine if a particular `Plan` covers a given `Provider`, you must first identify the `Provider`. To do so, use the [Provider Search API endpoint](#providers-providers-post) and specify some search criteria:
854
+
855
+ ```
856
+ POST /providers/search
857
+ {
858
+ "search_term": "foo",
859
+ "zip_code": "11201"
860
+ }
861
+ ```
862
+
863
+ The API will return an ordered list of `Provider`s who match the query along with their names, addresses, and other demographic data. The `id` field returned refers to the `Provider`'s [NPI number](https://www.cms.gov/Regulations-and-Guidance/Administrative-Simplification/NationalProvIdentStand/). This is the key that is used to identify the `Provider` across different API endpoints.
864
+
865
+ ## Finding Networks
866
+
867
+ A `Network` is a collection of `Provider`s that are under a particular contract with a given `Carrier`. A given `Carrier` will often have multiple `Network`s. For example, there may be a large national `Network` as well as several smaller regional `Network`s.
868
+
869
+ The API supports searching for `Networks` by Carrier, market and state. For more details view the [endpoint documentation](#networks-networks-get)
870
+
871
+ ## Matching Providers to Networks
872
+ In order to determine if a `Provider` is covered by a user's `Plan`, you will need to map the `Provider` to a `Network`. There are several methods to do this using the API
873
+
874
+ ### Using Plan Search
875
+ You can specify one or more `npi` values in the [`plan` search](#majormedicalplans-majormedicalplans-post). To do so, include a list of `providers` in the request
876
+ ```
877
+ POST /plans/medical/search
878
+ {
879
+ ...
880
+ "providers": [
881
+ { "npi": 1234567890 },
882
+ { "npi": 2345678901 }
883
+ ]
884
+ ...
885
+ }
886
+
887
+ The response will then return a list of `in_network_ids` and `out_of_network_ids` for each `Plan`
888
+
889
+ ```
890
+ {
891
+ "plans": [
892
+ ...
893
+ {
894
+ ...
895
+ "id": "12345NY1234567",
896
+ "in_network_ids": [1234567890],
897
+ "out_of_network_ids": [1234567890]
898
+ ...
899
+ },
900
+ {
901
+ ...
902
+ "id": "12345NY2345678",
903
+ "in_network_ids": [1234567890, 1234567890],
904
+ "out_of_network_ids": []
905
+ ...
906
+ }
907
+ ...
908
+ ]
909
+ }
910
+
911
+ Simply reference the `Provider` in question by its `id` for each `Plan` to see if that `Provider` is in-network for the `Plan`.
912
+
913
+ ### Matching by Plan ID
914
+ Given a `Provider`'s `id`, you can retrieve all of his or her `hios_ids`
915
+
916
+ For more details see the [endpoint documentation](#providers-providers-get)
917
+
918
+ ```
919
+ GET /providers/1234567890
920
+ {
921
+ "provider": {
922
+ ...
923
+ "hios_ids": [
924
+ ...
925
+ "12345NY1234567"
926
+ ...
927
+ ]
928
+ ...
929
+ }
930
+ }
931
+ ```
932
+
933
+ The returned `hios_ids` can be used to cross-reference a `Plan`
934
+
935
+ ### Matching by Network
936
+ Once you have an ID returned from the [`Network` search endpoint](#networks-networks-get), you can cross-reference it with the `network_ids` returned from both the [`Provider` search](#providers-providers-post) and [`Provider` details](#providers-providers-get) endpoints.
937
+
938
+ This is useful for large group data or when you are not dealing with `Plan`s directly, but rather at the `Network` level.
939
+
940
+
941
+ OpenAPI spec version: 1.0.0
942
+
943
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
944
+
945
+ Licensed under the Apache License, Version 2.0 (the "License");
946
+ you may not use this file except in compliance with the License.
947
+ You may obtain a copy of the License at
948
+
949
+ http://www.apache.org/licenses/LICENSE-2.0
950
+
951
+ Unless required by applicable law or agreed to in writing, software
952
+ distributed under the License is distributed on an "AS IS" BASIS,
953
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
954
+ See the License for the specific language governing permissions and
955
+ limitations under the License.
956
+
957
+ =end
958
+
959
+ require 'date'
960
+
961
+ module VericredClient
962
+
963
+ class MedicareAdvantagePlanBenefits
964
+ # Ambulance benefit string
965
+ attr_accessor :ambulance
966
+
967
+ # Catastrophic Brand Name benefit string
968
+ attr_accessor :catastrophic_brand_name
969
+
970
+ # Catastrophic Excluded benefit string
971
+ attr_accessor :catastrophic_excluded
972
+
973
+ # Catastrophic Generic benefit string
974
+ attr_accessor :catastrophic_generic
975
+
976
+ # Chemotherapy Drug benefit string
977
+ attr_accessor :chemotherapy_drug
978
+
979
+ # Deductible Annual Drug benefit string
980
+ attr_accessor :deductible_annual_drug
981
+
982
+ # Deductible Annual Medical benefit string
983
+ attr_accessor :deductible_annual_medical
984
+
985
+ # Dental Cleaning benefit string
986
+ attr_accessor :dental_cleaning
987
+
988
+ # Dental Diagnostics Services benefit string
989
+ attr_accessor :dental_diagnostic_services
990
+
991
+ # Dental Endodontics benefit string
992
+ attr_accessor :dental_endodontics
993
+
994
+ # Dental Exam benefit string
995
+ attr_accessor :dental_exam
996
+
997
+ # Dental Extraction benefit string
998
+ attr_accessor :dental_extraction
999
+
1000
+ # Dental Extraction benefit string
1001
+ attr_accessor :dental_fluoride_treatment
1002
+
1003
+ # Dental Medicare Covered Benefits benefit string
1004
+ attr_accessor :dental_medicare_covered_benefits
1005
+
1006
+ # Dental Non-Routine Services benefit string
1007
+ attr_accessor :dental_non_routine_services
1008
+
1009
+ # Dental Peridontics benefit string
1010
+ attr_accessor :dental_periodontics
1011
+
1012
+ # Dental Prosthodontics And Other benefit string
1013
+ attr_accessor :dental_prosthodontics_and_other
1014
+
1015
+ # Dental Prosthodontics And Other benefit string
1016
+ attr_accessor :dental_restorative_services
1017
+
1018
+ # Dental X-rays benefit string
1019
+ attr_accessor :dental_x_rays
1020
+
1021
+ # Diabetes Management Monitoring Supplies benefit string
1022
+ attr_accessor :diabetes_management_monitoring_supplies
1023
+
1024
+ # Diagnostic Lab Service benefit string
1025
+ attr_accessor :diagnostic_lab_service
1026
+
1027
+ # Diagnostic Outpatient X-rays benefit string
1028
+ attr_accessor :diagnostic_outpatient_x_rays
1029
+
1030
+ # Diagnostic Radiology benefit string
1031
+ attr_accessor :diagnostic_radiology
1032
+
1033
+ # Diagnostic Test and Procedures benefit string
1034
+ attr_accessor :diagnostic_test_and_procedures
1035
+
1036
+ # Diagnostic Therapeutic Radiology benefit string
1037
+ attr_accessor :diagnostic_therapeutic_radiology
1038
+
1039
+ # Doctor Visit Primary benefit string
1040
+ attr_accessor :doctor_visit_primary
1041
+
1042
+ # Doctor Visit Specialist benefit string
1043
+ attr_accessor :doctor_visit_specialist
1044
+
1045
+ # Durable Medical Equipment benefit string
1046
+ attr_accessor :durable_medical_equipment
1047
+
1048
+ # Emergency Care benefit string
1049
+ attr_accessor :emergency_care
1050
+
1051
+ # Gap Brand Name benefit string
1052
+ attr_accessor :gap_brand_name
1053
+
1054
+ # Gap Generic benefit string
1055
+ attr_accessor :gap_generic
1056
+
1057
+ # Gap Generic Preferred Mail 1 Month benefit string
1058
+ attr_accessor :gap_generic_preferred_mail_1_month
1059
+
1060
+ # Gap Generic Preferred Mail 3 Month benefit string
1061
+ attr_accessor :gap_generic_preferred_mail_3_month
1062
+
1063
+ # Gap Generic Preferred Retail 1 Month benefit string
1064
+ attr_accessor :gap_generic_preferred_retail_1_month
1065
+
1066
+ # Gap Generic Preferred Retail 3 Month benefit string
1067
+ attr_accessor :gap_generic_preferred_retail_3_month
1068
+
1069
+ # Gap Generic Standard Mail 1 Month benefit string
1070
+ attr_accessor :gap_generic_standard_mail_1_month
1071
+
1072
+ # Gap Generic Standard Mail 3 Month benefit string
1073
+ attr_accessor :gap_generic_standard_mail_3_month
1074
+
1075
+ # Gap Generic Standard Retail 1 Month benefit string
1076
+ attr_accessor :gap_generic_standard_retail_1_month
1077
+
1078
+ # Gap Generic Standard Retail 3 Month benefit string
1079
+ attr_accessor :gap_generic_standard_retail_3_month
1080
+
1081
+ # Gap Non-Preferred Preferred Mail 1 Month benefit string
1082
+ attr_accessor :gap_non_preferred_preferred_mail_1_month
1083
+
1084
+ # Gap Non-Preferred Preferred Mail 3 Month benefit string
1085
+ attr_accessor :gap_non_preferred_preferred_mail_3_month
1086
+
1087
+ # Gap Non-Preferred Preferred Retail 1 Month benefit string
1088
+ attr_accessor :gap_non_preferred_preferred_retail_1_month
1089
+
1090
+ # Gap Non-Preferred Preferred Retail 3 Month benefit string
1091
+ attr_accessor :gap_non_preferred_preferred_retail_3_month
1092
+
1093
+ # Gap Non-Preferred Preferred Mail 1 Month benefit string
1094
+ attr_accessor :gap_non_preferred_standard_mail_1_month
1095
+
1096
+ # Gap Non-Preferred Standard Mail 3 Month benefit string
1097
+ attr_accessor :gap_non_preferred_standard_mail_3_month
1098
+
1099
+ # Gap Non-Preferred Standard Retail 1 Month benefit string
1100
+ attr_accessor :gap_non_preferred_standard_retail_1_month
1101
+
1102
+ # Gap Non-Preferred Standard Retail 3 Month benefit string
1103
+ attr_accessor :gap_non_preferred_standard_retail_3_month
1104
+
1105
+ # Gap Preferred Brand Preferred Mail 1 Month benefit string
1106
+ attr_accessor :gap_preferred_brand_preferred_mail_1_month
1107
+
1108
+ # Gap Preferred Brand Preferred Mail 3 Month benefit string
1109
+ attr_accessor :gap_preferred_brand_preferred_mail_3_month
1110
+
1111
+ # Gap Preferred Brand Preferred Retail 1 Month benefit string
1112
+ attr_accessor :gap_preferred_brand_preferred_retail_1_month
1113
+
1114
+ # Gap Preferred Brand Preferred Retail 3 Month benefit string
1115
+ attr_accessor :gap_preferred_brand_preferred_retail_3_month
1116
+
1117
+ # Gap Preferred Brand Standard Mail 1 Month benefit string
1118
+ attr_accessor :gap_preferred_brand_standard_mail_1_month
1119
+
1120
+ # Gap Preferred Brand Standard Mail 3 Month benefit string
1121
+ attr_accessor :gap_preferred_brand_standard_mail_3_month
1122
+
1123
+ # Gap Preferred Brand Standard Retail 1 Month benefit string
1124
+ attr_accessor :gap_preferred_brand_standard_retail_1_month
1125
+
1126
+ # Gap Preferred Brand Standard Retail 3 Month benefit string
1127
+ attr_accessor :gap_preferred_brand_standard_retail_3_month
1128
+
1129
+ # Gap Preferred Generic Preferred Mail 1 Month benefit string
1130
+ attr_accessor :gap_preferred_generic_preferred_mail_1_month
1131
+
1132
+ # Gap Preferred Generic Preferred Mail 3 Month benefit string
1133
+ attr_accessor :gap_preferred_generic_preferred_mail_3_month
1134
+
1135
+ # Gap Preferred Generic Preferred Retail 1 Month benefit string
1136
+ attr_accessor :gap_preferred_generic_preferred_retail_1_month
1137
+
1138
+ # Gap Preferred Generic Preferred Retail 3 Month benefit string
1139
+ attr_accessor :gap_preferred_generic_preferred_retail_3_month
1140
+
1141
+ # Gap Preferred Generic Standard Mail 1 Month benefit string
1142
+ attr_accessor :gap_preferred_generic_standard_mail_1_month
1143
+
1144
+ # Gap Preferred Generic Standard Mail 3 Month benefit string
1145
+ attr_accessor :gap_preferred_generic_standard_mail_3_month
1146
+
1147
+ # Gap Preferred Generic Standard Retail 1 Month benefit string
1148
+ attr_accessor :gap_preferred_generic_standard_retail_1_month
1149
+
1150
+ # Gap Preferred Generic Standard Retail 3 Month benefit string
1151
+ attr_accessor :gap_preferred_generic_standard_retail_3_month
1152
+
1153
+ # Gap Specialty Preferred Mail 1 Month benefit string
1154
+ attr_accessor :gap_specialty_preferred_mail_1_month
1155
+
1156
+ # Gap Specialty Preferred Mail 3 Month benefit string
1157
+ attr_accessor :gap_specialty_preferred_mail_3_month
1158
+
1159
+ # Gap Specialty Preferred Retail 1 Month benefit string
1160
+ attr_accessor :gap_specialty_preferred_retail_1_month
1161
+
1162
+ # Gap Specialty Preferred Retail 3 Month benefit string
1163
+ attr_accessor :gap_specialty_preferred_retail_3_month
1164
+
1165
+ # Gap Specialty Standard Mail 1 Month benefit string
1166
+ attr_accessor :gap_specialty_standard_mail_1_month
1167
+
1168
+ # Gap Specialty Standard Mail 3 Month benefit string
1169
+ attr_accessor :gap_specialty_standard_mail_3_month
1170
+
1171
+ # Gap Specialty Standard Retail 1 Month benefit string
1172
+ attr_accessor :gap_specialty_standard_retail_1_month
1173
+
1174
+ # Gap Specialty Standard Retail 3 Month benefit string
1175
+ attr_accessor :gap_specialty_standard_retail_3_month
1176
+
1177
+ # Hearing Aids benefit string
1178
+ attr_accessor :hearing_aids
1179
+
1180
+ # Hearing Aids Fitting and Evaluation benefit string
1181
+ attr_accessor :hearing_aids_fitting_and_evaluation
1182
+
1183
+ # Hearing Exam benefit string
1184
+ attr_accessor :hearing_exam
1185
+
1186
+ # Hearing Medicare Covered Benefits benefit string
1187
+ attr_accessor :hearing_medicare_covered_benefits
1188
+
1189
+ # Home Health Care benefit string
1190
+ attr_accessor :home_health_care
1191
+
1192
+ # Hospice benefit string
1193
+ attr_accessor :hospice
1194
+
1195
+ # Initial Generic Preferred Mail 1 Month benefit string
1196
+ attr_accessor :initial_generic_preferred_mail_1_month
1197
+
1198
+ # Initial Generic Preferred Mail 3 Month benefit string
1199
+ attr_accessor :initial_generic_preferred_mail_3_month
1200
+
1201
+ # Initial Generic Preferred Retail 1 Month benefit string
1202
+ attr_accessor :initial_generic_preferred_retail_1_month
1203
+
1204
+ # Initial Generic Preferred Retail 3 Month benefit string
1205
+ attr_accessor :initial_generic_preferred_retail_3_month
1206
+
1207
+ # Initial Generic Standard Mail 1 Month benefit string
1208
+ attr_accessor :initial_generic_standard_mail_1_month
1209
+
1210
+ # Initial Generic Standard Mail 3 Month benefit string
1211
+ attr_accessor :initial_generic_standard_mail_3_month
1212
+
1213
+ # Initial Generic Standard Retail 1 Month benefit string
1214
+ attr_accessor :initial_generic_standard_retail_1_month
1215
+
1216
+ # Initial Generic Standard Retail 3 Month benefit string
1217
+ attr_accessor :initial_generic_standard_retail_3_month
1218
+
1219
+ # Initial Non-Preferred Preferred Mail 1 Month benefit string
1220
+ attr_accessor :initial_non_preferred_preferred_mail_1_month
1221
+
1222
+ # Initial Non-Preferred Preferred Mail 3 Month benefit string
1223
+ attr_accessor :initial_non_preferred_preferred_mail_3_month
1224
+
1225
+ # Initial Non-Preferred Preferred Retail 1 Month benefit string
1226
+ attr_accessor :initial_non_preferred_preferred_retail_1_month
1227
+
1228
+ # Initial Non-Preferred Preferred Retail 3 Month benefit string
1229
+ attr_accessor :initial_non_preferred_preferred_retail_3_month
1230
+
1231
+ # Initial Non-Preferred Preferred Mail 1 Month benefit string
1232
+ attr_accessor :initial_non_preferred_standard_mail_1_month
1233
+
1234
+ # Initial Non-Preferred Standard Mail 3 Month benefit string
1235
+ attr_accessor :initial_non_preferred_standard_mail_3_month
1236
+
1237
+ # Initial Non-Preferred Standard Retail 1 Month benefit string
1238
+ attr_accessor :initial_non_preferred_standard_retail_1_month
1239
+
1240
+ # Initial Non-Preferred Standard Retail 3 Month benefit string
1241
+ attr_accessor :initial_non_preferred_standard_retail_3_month
1242
+
1243
+ # Initial Preferred Brand Preferred Mail 1 Month benefit string
1244
+ attr_accessor :initial_preferred_brand_preferred_mail_1_month
1245
+
1246
+ # Initial Preferred Brand Preferred Mail 3 Month benefit string
1247
+ attr_accessor :initial_preferred_brand_preferred_mail_3_month
1248
+
1249
+ # Initial Preferred Brand Preferred Retail 1 Month benefit string
1250
+ attr_accessor :initial_preferred_brand_preferred_retail_1_month
1251
+
1252
+ # Initial Preferred Brand Preferred Retail 3 Month benefit string
1253
+ attr_accessor :initial_preferred_brand_preferred_retail_3_month
1254
+
1255
+ # Initial Preferred Brand Standard Mail 1 Month benefit string
1256
+ attr_accessor :initial_preferred_brand_standard_mail_1_month
1257
+
1258
+ # Initial Preferred Brand Standard Mail 3 Month benefit string
1259
+ attr_accessor :initial_preferred_brand_standard_mail_3_month
1260
+
1261
+ # Initial Preferred Brand Standard Retail 1 Month benefit string
1262
+ attr_accessor :initial_preferred_brand_standard_retail_1_month
1263
+
1264
+ # Initial Preferred Brand Standard Retail 3 Month benefit string
1265
+ attr_accessor :initial_preferred_brand_standard_retail_3_month
1266
+
1267
+ # Initial Preferred Generic Preferred Mail 1 Month benefit string
1268
+ attr_accessor :initial_preferred_generic_preferred_mail_1_month
1269
+
1270
+ # Initial Preferred Generic Preferred Mail 3 Month benefit string
1271
+ attr_accessor :initial_preferred_generic_preferred_mail_3_month
1272
+
1273
+ # Initial Preferred Generic Preferred Retail 1 Month benefit string
1274
+ attr_accessor :initial_preferred_generic_preferred_retail_1_month
1275
+
1276
+ # Initial Preferred Generic Preferred Retail 3 Month benefit string
1277
+ attr_accessor :initial_preferred_generic_preferred_retail_3_month
1278
+
1279
+ # Initial Preferred Generic Standard Mail 1 Month benefit string
1280
+ attr_accessor :initial_preferred_generic_standard_mail_1_month
1281
+
1282
+ # Initial Preferred Generic Standard Mail 3 Month benefit string
1283
+ attr_accessor :initial_preferred_generic_standard_mail_3_month
1284
+
1285
+ # Initial Preferred Generic Standard Retail 1 Month benefit string
1286
+ attr_accessor :initial_preferred_generic_standard_retail_1_month
1287
+
1288
+ # Initial Preferred Generic Standard Retail 3 Month benefit string
1289
+ attr_accessor :initial_preferred_generic_standard_retail_3_month
1290
+
1291
+ # Initial Specialty Preferred Mail 1 Month benefit string
1292
+ attr_accessor :initial_specialty_preferred_mail_1_month
1293
+
1294
+ # Initial Specialty Preferred Mail 3 Month benefit string
1295
+ attr_accessor :initial_specialty_preferred_mail_3_month
1296
+
1297
+ # Initial Specialty Preferred Retail 1 Month benefit string
1298
+ attr_accessor :initial_specialty_preferred_retail_1_month
1299
+
1300
+ # Initial Specialty Preferred Retail 3 Month benefit string
1301
+ attr_accessor :initial_specialty_preferred_retail_3_month
1302
+
1303
+ # Initial Specialty Standard Mail 1 Month benefit string
1304
+ attr_accessor :initial_specialty_standard_mail_1_month
1305
+
1306
+ # Initial Specialty Standard Mail 3 Month benefit string
1307
+ attr_accessor :initial_specialty_standard_mail_3_month
1308
+
1309
+ # Initial Specialty Standard Retail 1 Month benefit string
1310
+ attr_accessor :initial_specialty_standard_retail_1_month
1311
+
1312
+ # Initial Specialty Standard Retail 3 Month benefit string
1313
+ attr_accessor :initial_specialty_standard_retail_3_month
1314
+
1315
+ # Inpatient Hospital benefit string
1316
+ attr_accessor :inpatient_hospital
1317
+
1318
+ # Medical Chiropractic Services benefit string
1319
+ attr_accessor :medical_chiropractic_services
1320
+
1321
+ # Medical Medicare Advantage Maxiumum Out-Of-Pocket benefit string
1322
+ attr_accessor :medical_moop
1323
+
1324
+ # Medical Medicare Advantage Maxiumum Out-Of-Pocket benefit string
1325
+ attr_accessor :mental_health_inpatient_visit
1326
+
1327
+ # Medical Health Outpatient Group Therapy benefit string
1328
+ attr_accessor :mental_health_outpatient_group_therapy
1329
+
1330
+ # Medical Health Outpatient Individual Therapy benefit string
1331
+ attr_accessor :mental_health_outpatient_individual_therapy
1332
+
1333
+ # Other Part B Drug benefit string
1334
+ attr_accessor :other_part_b_drug
1335
+
1336
+ # Outpatient Hospital benefit string
1337
+ attr_accessor :outpatient_hospital
1338
+
1339
+ # Physical Therapy benefit string
1340
+ attr_accessor :physical_therapy
1341
+
1342
+ # Podiatry Medicare Covered Benefits benefit string
1343
+ attr_accessor :podiatry_medicare_covered_benefits
1344
+
1345
+ # Podiatry Routine Footcare benefit string
1346
+ attr_accessor :podiatry_routine_footcare
1347
+
1348
+ # Preventive Care benefit string
1349
+ attr_accessor :preventive_care
1350
+
1351
+ # Prosthetics benefit string
1352
+ attr_accessor :prosthetics
1353
+
1354
+ # Rehabilitation Occupational Therapy benefit string
1355
+ attr_accessor :rehabilitation_occupational_therapy
1356
+
1357
+ # Rehabilitation Occupational Therapy benefit string
1358
+ attr_accessor :renal_dialysis
1359
+
1360
+ # Rehabilitation Occupational Therapy benefit string
1361
+ attr_accessor :routine_transportation
1362
+
1363
+ # Skilled Nursing Facility benefit string
1364
+ attr_accessor :skilled_nursing_facility
1365
+
1366
+ # Urgent Care benefit string
1367
+ attr_accessor :urgent_care
1368
+
1369
+ # Vision Contact Lenses benefit string
1370
+ attr_accessor :vision_contact_lenses
1371
+
1372
+ # Vision Exam benefit string
1373
+ attr_accessor :vision_exam
1374
+
1375
+ # Vision Eyeglasses Frames and Lenses benefit string
1376
+ attr_accessor :vision_eyeglass_frames_and_lenses
1377
+
1378
+ # Vision Medicare Covered Benefits benefit string
1379
+ attr_accessor :vision_medicare_covered_benefits
1380
+
1381
+ # Vision Upgrades benefit string
1382
+ attr_accessor :vision_upgrades
1383
+
1384
+ # Wellness Program benefit string
1385
+ attr_accessor :wellness_program
1386
+
1387
+
1388
+ # Attribute mapping from ruby-style variable name to JSON key.
1389
+ def self.attribute_map
1390
+ {
1391
+ :'ambulance' => :'ambulance',
1392
+ :'catastrophic_brand_name' => :'catastrophic_brand_name',
1393
+ :'catastrophic_excluded' => :'catastrophic_excluded',
1394
+ :'catastrophic_generic' => :'catastrophic_generic',
1395
+ :'chemotherapy_drug' => :'chemotherapy_drug',
1396
+ :'deductible_annual_drug' => :'deductible_annual_drug',
1397
+ :'deductible_annual_medical' => :'deductible_annual_medical',
1398
+ :'dental_cleaning' => :'dental_cleaning',
1399
+ :'dental_diagnostic_services' => :'dental_diagnostic_services',
1400
+ :'dental_endodontics' => :'dental_endodontics',
1401
+ :'dental_exam' => :'dental_exam',
1402
+ :'dental_extraction' => :'dental_extraction',
1403
+ :'dental_fluoride_treatment' => :'dental_fluoride_treatment',
1404
+ :'dental_medicare_covered_benefits' => :'dental_medicare_covered_benefits',
1405
+ :'dental_non_routine_services' => :'dental_non_routine_services',
1406
+ :'dental_periodontics' => :'dental_periodontics',
1407
+ :'dental_prosthodontics_and_other' => :'dental_prosthodontics_and_other',
1408
+ :'dental_restorative_services' => :'dental_restorative_services',
1409
+ :'dental_x_rays' => :'dental_x_rays',
1410
+ :'diabetes_management_monitoring_supplies' => :'diabetes_management_monitoring_supplies',
1411
+ :'diagnostic_lab_service' => :'diagnostic_lab_service',
1412
+ :'diagnostic_outpatient_x_rays' => :'diagnostic_outpatient_x_rays',
1413
+ :'diagnostic_radiology' => :'diagnostic_radiology',
1414
+ :'diagnostic_test_and_procedures' => :'diagnostic_test_and_procedures',
1415
+ :'diagnostic_therapeutic_radiology' => :'diagnostic_therapeutic_radiology',
1416
+ :'doctor_visit_primary' => :'doctor_visit_primary',
1417
+ :'doctor_visit_specialist' => :'doctor_visit_specialist',
1418
+ :'durable_medical_equipment' => :'durable_medical_equipment',
1419
+ :'emergency_care' => :'emergency_care',
1420
+ :'gap_brand_name' => :'gap_brand_name',
1421
+ :'gap_generic' => :'gap_generic',
1422
+ :'gap_generic_preferred_mail_1_month' => :'gap_generic_preferred_mail_1_month',
1423
+ :'gap_generic_preferred_mail_3_month' => :'gap_generic_preferred_mail_3_month',
1424
+ :'gap_generic_preferred_retail_1_month' => :'gap_generic_preferred_retail_1_month',
1425
+ :'gap_generic_preferred_retail_3_month' => :'gap_generic_preferred_retail_3_month',
1426
+ :'gap_generic_standard_mail_1_month' => :'gap_generic_standard_mail_1_month',
1427
+ :'gap_generic_standard_mail_3_month' => :'gap_generic_standard_mail_3_month',
1428
+ :'gap_generic_standard_retail_1_month' => :'gap_generic_standard_retail_1_month',
1429
+ :'gap_generic_standard_retail_3_month' => :'gap_generic_standard_retail_3_month',
1430
+ :'gap_non_preferred_preferred_mail_1_month' => :'gap_non_preferred_preferred_mail_1_month',
1431
+ :'gap_non_preferred_preferred_mail_3_month' => :'gap_non_preferred_preferred_mail_3_month',
1432
+ :'gap_non_preferred_preferred_retail_1_month' => :'gap_non_preferred_preferred_retail_1_month',
1433
+ :'gap_non_preferred_preferred_retail_3_month' => :'gap_non_preferred_preferred_retail_3_month',
1434
+ :'gap_non_preferred_standard_mail_1_month' => :'gap_non_preferred_standard_mail_1_month',
1435
+ :'gap_non_preferred_standard_mail_3_month' => :'gap_non_preferred_standard_mail_3_month',
1436
+ :'gap_non_preferred_standard_retail_1_month' => :'gap_non_preferred_standard_retail_1_month',
1437
+ :'gap_non_preferred_standard_retail_3_month' => :'gap_non_preferred_standard_retail_3_month',
1438
+ :'gap_preferred_brand_preferred_mail_1_month' => :'gap_preferred_brand_preferred_mail_1_month',
1439
+ :'gap_preferred_brand_preferred_mail_3_month' => :'gap_preferred_brand_preferred_mail_3_month',
1440
+ :'gap_preferred_brand_preferred_retail_1_month' => :'gap_preferred_brand_preferred_retail_1_month',
1441
+ :'gap_preferred_brand_preferred_retail_3_month' => :'gap_preferred_brand_preferred_retail_3_month',
1442
+ :'gap_preferred_brand_standard_mail_1_month' => :'gap_preferred_brand_standard_mail_1_month',
1443
+ :'gap_preferred_brand_standard_mail_3_month' => :'gap_preferred_brand_standard_mail_3_month',
1444
+ :'gap_preferred_brand_standard_retail_1_month' => :'gap_preferred_brand_standard_retail_1_month',
1445
+ :'gap_preferred_brand_standard_retail_3_month' => :'gap_preferred_brand_standard_retail_3_month',
1446
+ :'gap_preferred_generic_preferred_mail_1_month' => :'gap_preferred_generic_preferred_mail_1_month',
1447
+ :'gap_preferred_generic_preferred_mail_3_month' => :'gap_preferred_generic_preferred_mail_3_month',
1448
+ :'gap_preferred_generic_preferred_retail_1_month' => :'gap_preferred_generic_preferred_retail_1_month',
1449
+ :'gap_preferred_generic_preferred_retail_3_month' => :'gap_preferred_generic_preferred_retail_3_month',
1450
+ :'gap_preferred_generic_standard_mail_1_month' => :'gap_preferred_generic_standard_mail_1_month',
1451
+ :'gap_preferred_generic_standard_mail_3_month' => :'gap_preferred_generic_standard_mail_3_month',
1452
+ :'gap_preferred_generic_standard_retail_1_month' => :'gap_preferred_generic_standard_retail_1_month',
1453
+ :'gap_preferred_generic_standard_retail_3_month' => :'gap_preferred_generic_standard_retail_3_month',
1454
+ :'gap_specialty_preferred_mail_1_month' => :'gap_specialty_preferred_mail_1_month',
1455
+ :'gap_specialty_preferred_mail_3_month' => :'gap_specialty_preferred_mail_3_month',
1456
+ :'gap_specialty_preferred_retail_1_month' => :'gap_specialty_preferred_retail_1_month',
1457
+ :'gap_specialty_preferred_retail_3_month' => :'gap_specialty_preferred_retail_3_month',
1458
+ :'gap_specialty_standard_mail_1_month' => :'gap_specialty_standard_mail_1_month',
1459
+ :'gap_specialty_standard_mail_3_month' => :'gap_specialty_standard_mail_3_month',
1460
+ :'gap_specialty_standard_retail_1_month' => :'gap_specialty_standard_retail_1_month',
1461
+ :'gap_specialty_standard_retail_3_month' => :'gap_specialty_standard_retail_3_month',
1462
+ :'hearing_aids' => :'hearing_aids',
1463
+ :'hearing_aids_fitting_and_evaluation' => :'hearing_aids_fitting_and_evaluation',
1464
+ :'hearing_exam' => :'hearing_exam',
1465
+ :'hearing_medicare_covered_benefits' => :'hearing_medicare_covered_benefits',
1466
+ :'home_health_care' => :'home_health_care',
1467
+ :'hospice' => :'hospice',
1468
+ :'initial_generic_preferred_mail_1_month' => :'initial_generic_preferred_mail_1_month',
1469
+ :'initial_generic_preferred_mail_3_month' => :'initial_generic_preferred_mail_3_month',
1470
+ :'initial_generic_preferred_retail_1_month' => :'initial_generic_preferred_retail_1_month',
1471
+ :'initial_generic_preferred_retail_3_month' => :'initial_generic_preferred_retail_3_month',
1472
+ :'initial_generic_standard_mail_1_month' => :'initial_generic_standard_mail_1_month',
1473
+ :'initial_generic_standard_mail_3_month' => :'initial_generic_standard_mail_3_month',
1474
+ :'initial_generic_standard_retail_1_month' => :'initial_generic_standard_retail_1_month',
1475
+ :'initial_generic_standard_retail_3_month' => :'initial_generic_standard_retail_3_month',
1476
+ :'initial_non_preferred_preferred_mail_1_month' => :'initial_non_preferred_preferred_mail_1_month',
1477
+ :'initial_non_preferred_preferred_mail_3_month' => :'initial_non_preferred_preferred_mail_3_month',
1478
+ :'initial_non_preferred_preferred_retail_1_month' => :'initial_non_preferred_preferred_retail_1_month',
1479
+ :'initial_non_preferred_preferred_retail_3_month' => :'initial_non_preferred_preferred_retail_3_month',
1480
+ :'initial_non_preferred_standard_mail_1_month' => :'initial_non_preferred_standard_mail_1_month',
1481
+ :'initial_non_preferred_standard_mail_3_month' => :'initial_non_preferred_standard_mail_3_month',
1482
+ :'initial_non_preferred_standard_retail_1_month' => :'initial_non_preferred_standard_retail_1_month',
1483
+ :'initial_non_preferred_standard_retail_3_month' => :'initial_non_preferred_standard_retail_3_month',
1484
+ :'initial_preferred_brand_preferred_mail_1_month' => :'initial_preferred_brand_preferred_mail_1_month',
1485
+ :'initial_preferred_brand_preferred_mail_3_month' => :'initial_preferred_brand_preferred_mail_3_month',
1486
+ :'initial_preferred_brand_preferred_retail_1_month' => :'initial_preferred_brand_preferred_retail_1_month',
1487
+ :'initial_preferred_brand_preferred_retail_3_month' => :'initial_preferred_brand_preferred_retail_3_month',
1488
+ :'initial_preferred_brand_standard_mail_1_month' => :'initial_preferred_brand_standard_mail_1_month',
1489
+ :'initial_preferred_brand_standard_mail_3_month' => :'initial_preferred_brand_standard_mail_3_month',
1490
+ :'initial_preferred_brand_standard_retail_1_month' => :'initial_preferred_brand_standard_retail_1_month',
1491
+ :'initial_preferred_brand_standard_retail_3_month' => :'initial_preferred_brand_standard_retail_3_month',
1492
+ :'initial_preferred_generic_preferred_mail_1_month' => :'initial_preferred_generic_preferred_mail_1_month',
1493
+ :'initial_preferred_generic_preferred_mail_3_month' => :'initial_preferred_generic_preferred_mail_3_month',
1494
+ :'initial_preferred_generic_preferred_retail_1_month' => :'initial_preferred_generic_preferred_retail_1_month',
1495
+ :'initial_preferred_generic_preferred_retail_3_month' => :'initial_preferred_generic_preferred_retail_3_month',
1496
+ :'initial_preferred_generic_standard_mail_1_month' => :'initial_preferred_generic_standard_mail_1_month',
1497
+ :'initial_preferred_generic_standard_mail_3_month' => :'initial_preferred_generic_standard_mail_3_month',
1498
+ :'initial_preferred_generic_standard_retail_1_month' => :'initial_preferred_generic_standard_retail_1_month',
1499
+ :'initial_preferred_generic_standard_retail_3_month' => :'initial_preferred_generic_standard_retail_3_month',
1500
+ :'initial_specialty_preferred_mail_1_month' => :'initial_specialty_preferred_mail_1_month',
1501
+ :'initial_specialty_preferred_mail_3_month' => :'initial_specialty_preferred_mail_3_month',
1502
+ :'initial_specialty_preferred_retail_1_month' => :'initial_specialty_preferred_retail_1_month',
1503
+ :'initial_specialty_preferred_retail_3_month' => :'initial_specialty_preferred_retail_3_month',
1504
+ :'initial_specialty_standard_mail_1_month' => :'initial_specialty_standard_mail_1_month',
1505
+ :'initial_specialty_standard_mail_3_month' => :'initial_specialty_standard_mail_3_month',
1506
+ :'initial_specialty_standard_retail_1_month' => :'initial_specialty_standard_retail_1_month',
1507
+ :'initial_specialty_standard_retail_3_month' => :'initial_specialty_standard_retail_3_month',
1508
+ :'inpatient_hospital' => :'inpatient_hospital',
1509
+ :'medical_chiropractic_services' => :'medical_chiropractic_services',
1510
+ :'medical_moop' => :'medical_moop',
1511
+ :'mental_health_inpatient_visit' => :'mental_health_inpatient_visit',
1512
+ :'mental_health_outpatient_group_therapy' => :'mental_health_outpatient_group_therapy',
1513
+ :'mental_health_outpatient_individual_therapy' => :'mental_health_outpatient_individual_therapy',
1514
+ :'other_part_b_drug' => :'other_part_b_drug',
1515
+ :'outpatient_hospital' => :'outpatient_hospital',
1516
+ :'physical_therapy' => :'physical_therapy',
1517
+ :'podiatry_medicare_covered_benefits' => :'podiatry_medicare_covered_benefits',
1518
+ :'podiatry_routine_footcare' => :'podiatry_routine_footcare',
1519
+ :'preventive_care' => :'preventive_care',
1520
+ :'prosthetics' => :'prosthetics',
1521
+ :'rehabilitation_occupational_therapy' => :'rehabilitation_occupational_therapy',
1522
+ :'renal_dialysis' => :'renal_dialysis',
1523
+ :'routine_transportation' => :'routine_transportation',
1524
+ :'skilled_nursing_facility' => :'skilled_nursing_facility',
1525
+ :'urgent_care' => :'urgent_care',
1526
+ :'vision_contact_lenses' => :'vision_contact_lenses',
1527
+ :'vision_exam' => :'vision_exam',
1528
+ :'vision_eyeglass_frames_and_lenses' => :'vision_eyeglass_frames_and_lenses',
1529
+ :'vision_medicare_covered_benefits' => :'vision_medicare_covered_benefits',
1530
+ :'vision_upgrades' => :'vision_upgrades',
1531
+ :'wellness_program' => :'wellness_program'
1532
+ }
1533
+ end
1534
+
1535
+ # Attribute type mapping.
1536
+ def self.swagger_types
1537
+ {
1538
+ :'ambulance' => :'String',
1539
+ :'catastrophic_brand_name' => :'String',
1540
+ :'catastrophic_excluded' => :'String',
1541
+ :'catastrophic_generic' => :'String',
1542
+ :'chemotherapy_drug' => :'String',
1543
+ :'deductible_annual_drug' => :'String',
1544
+ :'deductible_annual_medical' => :'String',
1545
+ :'dental_cleaning' => :'String',
1546
+ :'dental_diagnostic_services' => :'String',
1547
+ :'dental_endodontics' => :'String',
1548
+ :'dental_exam' => :'String',
1549
+ :'dental_extraction' => :'String',
1550
+ :'dental_fluoride_treatment' => :'String',
1551
+ :'dental_medicare_covered_benefits' => :'String',
1552
+ :'dental_non_routine_services' => :'String',
1553
+ :'dental_periodontics' => :'String',
1554
+ :'dental_prosthodontics_and_other' => :'String',
1555
+ :'dental_restorative_services' => :'String',
1556
+ :'dental_x_rays' => :'String',
1557
+ :'diabetes_management_monitoring_supplies' => :'String',
1558
+ :'diagnostic_lab_service' => :'String',
1559
+ :'diagnostic_outpatient_x_rays' => :'String',
1560
+ :'diagnostic_radiology' => :'String',
1561
+ :'diagnostic_test_and_procedures' => :'String',
1562
+ :'diagnostic_therapeutic_radiology' => :'String',
1563
+ :'doctor_visit_primary' => :'String',
1564
+ :'doctor_visit_specialist' => :'String',
1565
+ :'durable_medical_equipment' => :'String',
1566
+ :'emergency_care' => :'String',
1567
+ :'gap_brand_name' => :'String',
1568
+ :'gap_generic' => :'String',
1569
+ :'gap_generic_preferred_mail_1_month' => :'String',
1570
+ :'gap_generic_preferred_mail_3_month' => :'String',
1571
+ :'gap_generic_preferred_retail_1_month' => :'String',
1572
+ :'gap_generic_preferred_retail_3_month' => :'String',
1573
+ :'gap_generic_standard_mail_1_month' => :'String',
1574
+ :'gap_generic_standard_mail_3_month' => :'String',
1575
+ :'gap_generic_standard_retail_1_month' => :'String',
1576
+ :'gap_generic_standard_retail_3_month' => :'String',
1577
+ :'gap_non_preferred_preferred_mail_1_month' => :'String',
1578
+ :'gap_non_preferred_preferred_mail_3_month' => :'String',
1579
+ :'gap_non_preferred_preferred_retail_1_month' => :'String',
1580
+ :'gap_non_preferred_preferred_retail_3_month' => :'String',
1581
+ :'gap_non_preferred_standard_mail_1_month' => :'String',
1582
+ :'gap_non_preferred_standard_mail_3_month' => :'String',
1583
+ :'gap_non_preferred_standard_retail_1_month' => :'String',
1584
+ :'gap_non_preferred_standard_retail_3_month' => :'String',
1585
+ :'gap_preferred_brand_preferred_mail_1_month' => :'String',
1586
+ :'gap_preferred_brand_preferred_mail_3_month' => :'String',
1587
+ :'gap_preferred_brand_preferred_retail_1_month' => :'String',
1588
+ :'gap_preferred_brand_preferred_retail_3_month' => :'String',
1589
+ :'gap_preferred_brand_standard_mail_1_month' => :'String',
1590
+ :'gap_preferred_brand_standard_mail_3_month' => :'String',
1591
+ :'gap_preferred_brand_standard_retail_1_month' => :'String',
1592
+ :'gap_preferred_brand_standard_retail_3_month' => :'String',
1593
+ :'gap_preferred_generic_preferred_mail_1_month' => :'String',
1594
+ :'gap_preferred_generic_preferred_mail_3_month' => :'String',
1595
+ :'gap_preferred_generic_preferred_retail_1_month' => :'String',
1596
+ :'gap_preferred_generic_preferred_retail_3_month' => :'String',
1597
+ :'gap_preferred_generic_standard_mail_1_month' => :'String',
1598
+ :'gap_preferred_generic_standard_mail_3_month' => :'String',
1599
+ :'gap_preferred_generic_standard_retail_1_month' => :'String',
1600
+ :'gap_preferred_generic_standard_retail_3_month' => :'String',
1601
+ :'gap_specialty_preferred_mail_1_month' => :'String',
1602
+ :'gap_specialty_preferred_mail_3_month' => :'String',
1603
+ :'gap_specialty_preferred_retail_1_month' => :'String',
1604
+ :'gap_specialty_preferred_retail_3_month' => :'String',
1605
+ :'gap_specialty_standard_mail_1_month' => :'String',
1606
+ :'gap_specialty_standard_mail_3_month' => :'String',
1607
+ :'gap_specialty_standard_retail_1_month' => :'String',
1608
+ :'gap_specialty_standard_retail_3_month' => :'String',
1609
+ :'hearing_aids' => :'String',
1610
+ :'hearing_aids_fitting_and_evaluation' => :'String',
1611
+ :'hearing_exam' => :'String',
1612
+ :'hearing_medicare_covered_benefits' => :'String',
1613
+ :'home_health_care' => :'String',
1614
+ :'hospice' => :'String',
1615
+ :'initial_generic_preferred_mail_1_month' => :'String',
1616
+ :'initial_generic_preferred_mail_3_month' => :'String',
1617
+ :'initial_generic_preferred_retail_1_month' => :'String',
1618
+ :'initial_generic_preferred_retail_3_month' => :'String',
1619
+ :'initial_generic_standard_mail_1_month' => :'String',
1620
+ :'initial_generic_standard_mail_3_month' => :'String',
1621
+ :'initial_generic_standard_retail_1_month' => :'String',
1622
+ :'initial_generic_standard_retail_3_month' => :'String',
1623
+ :'initial_non_preferred_preferred_mail_1_month' => :'String',
1624
+ :'initial_non_preferred_preferred_mail_3_month' => :'String',
1625
+ :'initial_non_preferred_preferred_retail_1_month' => :'String',
1626
+ :'initial_non_preferred_preferred_retail_3_month' => :'String',
1627
+ :'initial_non_preferred_standard_mail_1_month' => :'String',
1628
+ :'initial_non_preferred_standard_mail_3_month' => :'String',
1629
+ :'initial_non_preferred_standard_retail_1_month' => :'String',
1630
+ :'initial_non_preferred_standard_retail_3_month' => :'String',
1631
+ :'initial_preferred_brand_preferred_mail_1_month' => :'String',
1632
+ :'initial_preferred_brand_preferred_mail_3_month' => :'String',
1633
+ :'initial_preferred_brand_preferred_retail_1_month' => :'String',
1634
+ :'initial_preferred_brand_preferred_retail_3_month' => :'String',
1635
+ :'initial_preferred_brand_standard_mail_1_month' => :'String',
1636
+ :'initial_preferred_brand_standard_mail_3_month' => :'String',
1637
+ :'initial_preferred_brand_standard_retail_1_month' => :'String',
1638
+ :'initial_preferred_brand_standard_retail_3_month' => :'String',
1639
+ :'initial_preferred_generic_preferred_mail_1_month' => :'String',
1640
+ :'initial_preferred_generic_preferred_mail_3_month' => :'String',
1641
+ :'initial_preferred_generic_preferred_retail_1_month' => :'String',
1642
+ :'initial_preferred_generic_preferred_retail_3_month' => :'String',
1643
+ :'initial_preferred_generic_standard_mail_1_month' => :'String',
1644
+ :'initial_preferred_generic_standard_mail_3_month' => :'String',
1645
+ :'initial_preferred_generic_standard_retail_1_month' => :'String',
1646
+ :'initial_preferred_generic_standard_retail_3_month' => :'String',
1647
+ :'initial_specialty_preferred_mail_1_month' => :'String',
1648
+ :'initial_specialty_preferred_mail_3_month' => :'String',
1649
+ :'initial_specialty_preferred_retail_1_month' => :'String',
1650
+ :'initial_specialty_preferred_retail_3_month' => :'String',
1651
+ :'initial_specialty_standard_mail_1_month' => :'String',
1652
+ :'initial_specialty_standard_mail_3_month' => :'String',
1653
+ :'initial_specialty_standard_retail_1_month' => :'String',
1654
+ :'initial_specialty_standard_retail_3_month' => :'String',
1655
+ :'inpatient_hospital' => :'String',
1656
+ :'medical_chiropractic_services' => :'String',
1657
+ :'medical_moop' => :'String',
1658
+ :'mental_health_inpatient_visit' => :'String',
1659
+ :'mental_health_outpatient_group_therapy' => :'String',
1660
+ :'mental_health_outpatient_individual_therapy' => :'String',
1661
+ :'other_part_b_drug' => :'String',
1662
+ :'outpatient_hospital' => :'String',
1663
+ :'physical_therapy' => :'String',
1664
+ :'podiatry_medicare_covered_benefits' => :'String',
1665
+ :'podiatry_routine_footcare' => :'String',
1666
+ :'preventive_care' => :'String',
1667
+ :'prosthetics' => :'String',
1668
+ :'rehabilitation_occupational_therapy' => :'String',
1669
+ :'renal_dialysis' => :'String',
1670
+ :'routine_transportation' => :'String',
1671
+ :'skilled_nursing_facility' => :'String',
1672
+ :'urgent_care' => :'String',
1673
+ :'vision_contact_lenses' => :'String',
1674
+ :'vision_exam' => :'String',
1675
+ :'vision_eyeglass_frames_and_lenses' => :'String',
1676
+ :'vision_medicare_covered_benefits' => :'String',
1677
+ :'vision_upgrades' => :'String',
1678
+ :'wellness_program' => :'String'
1679
+ }
1680
+ end
1681
+
1682
+ # Initializes the object
1683
+ # @param [Hash] attributes Model attributes in the form of hash
1684
+ def initialize(attributes = {})
1685
+ return unless attributes.is_a?(Hash)
1686
+
1687
+ # convert string to symbol for hash key
1688
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
1689
+
1690
+ if attributes.has_key?(:'ambulance')
1691
+ self.ambulance = attributes[:'ambulance']
1692
+ end
1693
+
1694
+ if attributes.has_key?(:'catastrophic_brand_name')
1695
+ self.catastrophic_brand_name = attributes[:'catastrophic_brand_name']
1696
+ end
1697
+
1698
+ if attributes.has_key?(:'catastrophic_excluded')
1699
+ self.catastrophic_excluded = attributes[:'catastrophic_excluded']
1700
+ end
1701
+
1702
+ if attributes.has_key?(:'catastrophic_generic')
1703
+ self.catastrophic_generic = attributes[:'catastrophic_generic']
1704
+ end
1705
+
1706
+ if attributes.has_key?(:'chemotherapy_drug')
1707
+ self.chemotherapy_drug = attributes[:'chemotherapy_drug']
1708
+ end
1709
+
1710
+ if attributes.has_key?(:'deductible_annual_drug')
1711
+ self.deductible_annual_drug = attributes[:'deductible_annual_drug']
1712
+ end
1713
+
1714
+ if attributes.has_key?(:'deductible_annual_medical')
1715
+ self.deductible_annual_medical = attributes[:'deductible_annual_medical']
1716
+ end
1717
+
1718
+ if attributes.has_key?(:'dental_cleaning')
1719
+ self.dental_cleaning = attributes[:'dental_cleaning']
1720
+ end
1721
+
1722
+ if attributes.has_key?(:'dental_diagnostic_services')
1723
+ self.dental_diagnostic_services = attributes[:'dental_diagnostic_services']
1724
+ end
1725
+
1726
+ if attributes.has_key?(:'dental_endodontics')
1727
+ self.dental_endodontics = attributes[:'dental_endodontics']
1728
+ end
1729
+
1730
+ if attributes.has_key?(:'dental_exam')
1731
+ self.dental_exam = attributes[:'dental_exam']
1732
+ end
1733
+
1734
+ if attributes.has_key?(:'dental_extraction')
1735
+ self.dental_extraction = attributes[:'dental_extraction']
1736
+ end
1737
+
1738
+ if attributes.has_key?(:'dental_fluoride_treatment')
1739
+ self.dental_fluoride_treatment = attributes[:'dental_fluoride_treatment']
1740
+ end
1741
+
1742
+ if attributes.has_key?(:'dental_medicare_covered_benefits')
1743
+ self.dental_medicare_covered_benefits = attributes[:'dental_medicare_covered_benefits']
1744
+ end
1745
+
1746
+ if attributes.has_key?(:'dental_non_routine_services')
1747
+ self.dental_non_routine_services = attributes[:'dental_non_routine_services']
1748
+ end
1749
+
1750
+ if attributes.has_key?(:'dental_periodontics')
1751
+ self.dental_periodontics = attributes[:'dental_periodontics']
1752
+ end
1753
+
1754
+ if attributes.has_key?(:'dental_prosthodontics_and_other')
1755
+ self.dental_prosthodontics_and_other = attributes[:'dental_prosthodontics_and_other']
1756
+ end
1757
+
1758
+ if attributes.has_key?(:'dental_restorative_services')
1759
+ self.dental_restorative_services = attributes[:'dental_restorative_services']
1760
+ end
1761
+
1762
+ if attributes.has_key?(:'dental_x_rays')
1763
+ self.dental_x_rays = attributes[:'dental_x_rays']
1764
+ end
1765
+
1766
+ if attributes.has_key?(:'diabetes_management_monitoring_supplies')
1767
+ self.diabetes_management_monitoring_supplies = attributes[:'diabetes_management_monitoring_supplies']
1768
+ end
1769
+
1770
+ if attributes.has_key?(:'diagnostic_lab_service')
1771
+ self.diagnostic_lab_service = attributes[:'diagnostic_lab_service']
1772
+ end
1773
+
1774
+ if attributes.has_key?(:'diagnostic_outpatient_x_rays')
1775
+ self.diagnostic_outpatient_x_rays = attributes[:'diagnostic_outpatient_x_rays']
1776
+ end
1777
+
1778
+ if attributes.has_key?(:'diagnostic_radiology')
1779
+ self.diagnostic_radiology = attributes[:'diagnostic_radiology']
1780
+ end
1781
+
1782
+ if attributes.has_key?(:'diagnostic_test_and_procedures')
1783
+ self.diagnostic_test_and_procedures = attributes[:'diagnostic_test_and_procedures']
1784
+ end
1785
+
1786
+ if attributes.has_key?(:'diagnostic_therapeutic_radiology')
1787
+ self.diagnostic_therapeutic_radiology = attributes[:'diagnostic_therapeutic_radiology']
1788
+ end
1789
+
1790
+ if attributes.has_key?(:'doctor_visit_primary')
1791
+ self.doctor_visit_primary = attributes[:'doctor_visit_primary']
1792
+ end
1793
+
1794
+ if attributes.has_key?(:'doctor_visit_specialist')
1795
+ self.doctor_visit_specialist = attributes[:'doctor_visit_specialist']
1796
+ end
1797
+
1798
+ if attributes.has_key?(:'durable_medical_equipment')
1799
+ self.durable_medical_equipment = attributes[:'durable_medical_equipment']
1800
+ end
1801
+
1802
+ if attributes.has_key?(:'emergency_care')
1803
+ self.emergency_care = attributes[:'emergency_care']
1804
+ end
1805
+
1806
+ if attributes.has_key?(:'gap_brand_name')
1807
+ self.gap_brand_name = attributes[:'gap_brand_name']
1808
+ end
1809
+
1810
+ if attributes.has_key?(:'gap_generic')
1811
+ self.gap_generic = attributes[:'gap_generic']
1812
+ end
1813
+
1814
+ if attributes.has_key?(:'gap_generic_preferred_mail_1_month')
1815
+ self.gap_generic_preferred_mail_1_month = attributes[:'gap_generic_preferred_mail_1_month']
1816
+ end
1817
+
1818
+ if attributes.has_key?(:'gap_generic_preferred_mail_3_month')
1819
+ self.gap_generic_preferred_mail_3_month = attributes[:'gap_generic_preferred_mail_3_month']
1820
+ end
1821
+
1822
+ if attributes.has_key?(:'gap_generic_preferred_retail_1_month')
1823
+ self.gap_generic_preferred_retail_1_month = attributes[:'gap_generic_preferred_retail_1_month']
1824
+ end
1825
+
1826
+ if attributes.has_key?(:'gap_generic_preferred_retail_3_month')
1827
+ self.gap_generic_preferred_retail_3_month = attributes[:'gap_generic_preferred_retail_3_month']
1828
+ end
1829
+
1830
+ if attributes.has_key?(:'gap_generic_standard_mail_1_month')
1831
+ self.gap_generic_standard_mail_1_month = attributes[:'gap_generic_standard_mail_1_month']
1832
+ end
1833
+
1834
+ if attributes.has_key?(:'gap_generic_standard_mail_3_month')
1835
+ self.gap_generic_standard_mail_3_month = attributes[:'gap_generic_standard_mail_3_month']
1836
+ end
1837
+
1838
+ if attributes.has_key?(:'gap_generic_standard_retail_1_month')
1839
+ self.gap_generic_standard_retail_1_month = attributes[:'gap_generic_standard_retail_1_month']
1840
+ end
1841
+
1842
+ if attributes.has_key?(:'gap_generic_standard_retail_3_month')
1843
+ self.gap_generic_standard_retail_3_month = attributes[:'gap_generic_standard_retail_3_month']
1844
+ end
1845
+
1846
+ if attributes.has_key?(:'gap_non_preferred_preferred_mail_1_month')
1847
+ self.gap_non_preferred_preferred_mail_1_month = attributes[:'gap_non_preferred_preferred_mail_1_month']
1848
+ end
1849
+
1850
+ if attributes.has_key?(:'gap_non_preferred_preferred_mail_3_month')
1851
+ self.gap_non_preferred_preferred_mail_3_month = attributes[:'gap_non_preferred_preferred_mail_3_month']
1852
+ end
1853
+
1854
+ if attributes.has_key?(:'gap_non_preferred_preferred_retail_1_month')
1855
+ self.gap_non_preferred_preferred_retail_1_month = attributes[:'gap_non_preferred_preferred_retail_1_month']
1856
+ end
1857
+
1858
+ if attributes.has_key?(:'gap_non_preferred_preferred_retail_3_month')
1859
+ self.gap_non_preferred_preferred_retail_3_month = attributes[:'gap_non_preferred_preferred_retail_3_month']
1860
+ end
1861
+
1862
+ if attributes.has_key?(:'gap_non_preferred_standard_mail_1_month')
1863
+ self.gap_non_preferred_standard_mail_1_month = attributes[:'gap_non_preferred_standard_mail_1_month']
1864
+ end
1865
+
1866
+ if attributes.has_key?(:'gap_non_preferred_standard_mail_3_month')
1867
+ self.gap_non_preferred_standard_mail_3_month = attributes[:'gap_non_preferred_standard_mail_3_month']
1868
+ end
1869
+
1870
+ if attributes.has_key?(:'gap_non_preferred_standard_retail_1_month')
1871
+ self.gap_non_preferred_standard_retail_1_month = attributes[:'gap_non_preferred_standard_retail_1_month']
1872
+ end
1873
+
1874
+ if attributes.has_key?(:'gap_non_preferred_standard_retail_3_month')
1875
+ self.gap_non_preferred_standard_retail_3_month = attributes[:'gap_non_preferred_standard_retail_3_month']
1876
+ end
1877
+
1878
+ if attributes.has_key?(:'gap_preferred_brand_preferred_mail_1_month')
1879
+ self.gap_preferred_brand_preferred_mail_1_month = attributes[:'gap_preferred_brand_preferred_mail_1_month']
1880
+ end
1881
+
1882
+ if attributes.has_key?(:'gap_preferred_brand_preferred_mail_3_month')
1883
+ self.gap_preferred_brand_preferred_mail_3_month = attributes[:'gap_preferred_brand_preferred_mail_3_month']
1884
+ end
1885
+
1886
+ if attributes.has_key?(:'gap_preferred_brand_preferred_retail_1_month')
1887
+ self.gap_preferred_brand_preferred_retail_1_month = attributes[:'gap_preferred_brand_preferred_retail_1_month']
1888
+ end
1889
+
1890
+ if attributes.has_key?(:'gap_preferred_brand_preferred_retail_3_month')
1891
+ self.gap_preferred_brand_preferred_retail_3_month = attributes[:'gap_preferred_brand_preferred_retail_3_month']
1892
+ end
1893
+
1894
+ if attributes.has_key?(:'gap_preferred_brand_standard_mail_1_month')
1895
+ self.gap_preferred_brand_standard_mail_1_month = attributes[:'gap_preferred_brand_standard_mail_1_month']
1896
+ end
1897
+
1898
+ if attributes.has_key?(:'gap_preferred_brand_standard_mail_3_month')
1899
+ self.gap_preferred_brand_standard_mail_3_month = attributes[:'gap_preferred_brand_standard_mail_3_month']
1900
+ end
1901
+
1902
+ if attributes.has_key?(:'gap_preferred_brand_standard_retail_1_month')
1903
+ self.gap_preferred_brand_standard_retail_1_month = attributes[:'gap_preferred_brand_standard_retail_1_month']
1904
+ end
1905
+
1906
+ if attributes.has_key?(:'gap_preferred_brand_standard_retail_3_month')
1907
+ self.gap_preferred_brand_standard_retail_3_month = attributes[:'gap_preferred_brand_standard_retail_3_month']
1908
+ end
1909
+
1910
+ if attributes.has_key?(:'gap_preferred_generic_preferred_mail_1_month')
1911
+ self.gap_preferred_generic_preferred_mail_1_month = attributes[:'gap_preferred_generic_preferred_mail_1_month']
1912
+ end
1913
+
1914
+ if attributes.has_key?(:'gap_preferred_generic_preferred_mail_3_month')
1915
+ self.gap_preferred_generic_preferred_mail_3_month = attributes[:'gap_preferred_generic_preferred_mail_3_month']
1916
+ end
1917
+
1918
+ if attributes.has_key?(:'gap_preferred_generic_preferred_retail_1_month')
1919
+ self.gap_preferred_generic_preferred_retail_1_month = attributes[:'gap_preferred_generic_preferred_retail_1_month']
1920
+ end
1921
+
1922
+ if attributes.has_key?(:'gap_preferred_generic_preferred_retail_3_month')
1923
+ self.gap_preferred_generic_preferred_retail_3_month = attributes[:'gap_preferred_generic_preferred_retail_3_month']
1924
+ end
1925
+
1926
+ if attributes.has_key?(:'gap_preferred_generic_standard_mail_1_month')
1927
+ self.gap_preferred_generic_standard_mail_1_month = attributes[:'gap_preferred_generic_standard_mail_1_month']
1928
+ end
1929
+
1930
+ if attributes.has_key?(:'gap_preferred_generic_standard_mail_3_month')
1931
+ self.gap_preferred_generic_standard_mail_3_month = attributes[:'gap_preferred_generic_standard_mail_3_month']
1932
+ end
1933
+
1934
+ if attributes.has_key?(:'gap_preferred_generic_standard_retail_1_month')
1935
+ self.gap_preferred_generic_standard_retail_1_month = attributes[:'gap_preferred_generic_standard_retail_1_month']
1936
+ end
1937
+
1938
+ if attributes.has_key?(:'gap_preferred_generic_standard_retail_3_month')
1939
+ self.gap_preferred_generic_standard_retail_3_month = attributes[:'gap_preferred_generic_standard_retail_3_month']
1940
+ end
1941
+
1942
+ if attributes.has_key?(:'gap_specialty_preferred_mail_1_month')
1943
+ self.gap_specialty_preferred_mail_1_month = attributes[:'gap_specialty_preferred_mail_1_month']
1944
+ end
1945
+
1946
+ if attributes.has_key?(:'gap_specialty_preferred_mail_3_month')
1947
+ self.gap_specialty_preferred_mail_3_month = attributes[:'gap_specialty_preferred_mail_3_month']
1948
+ end
1949
+
1950
+ if attributes.has_key?(:'gap_specialty_preferred_retail_1_month')
1951
+ self.gap_specialty_preferred_retail_1_month = attributes[:'gap_specialty_preferred_retail_1_month']
1952
+ end
1953
+
1954
+ if attributes.has_key?(:'gap_specialty_preferred_retail_3_month')
1955
+ self.gap_specialty_preferred_retail_3_month = attributes[:'gap_specialty_preferred_retail_3_month']
1956
+ end
1957
+
1958
+ if attributes.has_key?(:'gap_specialty_standard_mail_1_month')
1959
+ self.gap_specialty_standard_mail_1_month = attributes[:'gap_specialty_standard_mail_1_month']
1960
+ end
1961
+
1962
+ if attributes.has_key?(:'gap_specialty_standard_mail_3_month')
1963
+ self.gap_specialty_standard_mail_3_month = attributes[:'gap_specialty_standard_mail_3_month']
1964
+ end
1965
+
1966
+ if attributes.has_key?(:'gap_specialty_standard_retail_1_month')
1967
+ self.gap_specialty_standard_retail_1_month = attributes[:'gap_specialty_standard_retail_1_month']
1968
+ end
1969
+
1970
+ if attributes.has_key?(:'gap_specialty_standard_retail_3_month')
1971
+ self.gap_specialty_standard_retail_3_month = attributes[:'gap_specialty_standard_retail_3_month']
1972
+ end
1973
+
1974
+ if attributes.has_key?(:'hearing_aids')
1975
+ self.hearing_aids = attributes[:'hearing_aids']
1976
+ end
1977
+
1978
+ if attributes.has_key?(:'hearing_aids_fitting_and_evaluation')
1979
+ self.hearing_aids_fitting_and_evaluation = attributes[:'hearing_aids_fitting_and_evaluation']
1980
+ end
1981
+
1982
+ if attributes.has_key?(:'hearing_exam')
1983
+ self.hearing_exam = attributes[:'hearing_exam']
1984
+ end
1985
+
1986
+ if attributes.has_key?(:'hearing_medicare_covered_benefits')
1987
+ self.hearing_medicare_covered_benefits = attributes[:'hearing_medicare_covered_benefits']
1988
+ end
1989
+
1990
+ if attributes.has_key?(:'home_health_care')
1991
+ self.home_health_care = attributes[:'home_health_care']
1992
+ end
1993
+
1994
+ if attributes.has_key?(:'hospice')
1995
+ self.hospice = attributes[:'hospice']
1996
+ end
1997
+
1998
+ if attributes.has_key?(:'initial_generic_preferred_mail_1_month')
1999
+ self.initial_generic_preferred_mail_1_month = attributes[:'initial_generic_preferred_mail_1_month']
2000
+ end
2001
+
2002
+ if attributes.has_key?(:'initial_generic_preferred_mail_3_month')
2003
+ self.initial_generic_preferred_mail_3_month = attributes[:'initial_generic_preferred_mail_3_month']
2004
+ end
2005
+
2006
+ if attributes.has_key?(:'initial_generic_preferred_retail_1_month')
2007
+ self.initial_generic_preferred_retail_1_month = attributes[:'initial_generic_preferred_retail_1_month']
2008
+ end
2009
+
2010
+ if attributes.has_key?(:'initial_generic_preferred_retail_3_month')
2011
+ self.initial_generic_preferred_retail_3_month = attributes[:'initial_generic_preferred_retail_3_month']
2012
+ end
2013
+
2014
+ if attributes.has_key?(:'initial_generic_standard_mail_1_month')
2015
+ self.initial_generic_standard_mail_1_month = attributes[:'initial_generic_standard_mail_1_month']
2016
+ end
2017
+
2018
+ if attributes.has_key?(:'initial_generic_standard_mail_3_month')
2019
+ self.initial_generic_standard_mail_3_month = attributes[:'initial_generic_standard_mail_3_month']
2020
+ end
2021
+
2022
+ if attributes.has_key?(:'initial_generic_standard_retail_1_month')
2023
+ self.initial_generic_standard_retail_1_month = attributes[:'initial_generic_standard_retail_1_month']
2024
+ end
2025
+
2026
+ if attributes.has_key?(:'initial_generic_standard_retail_3_month')
2027
+ self.initial_generic_standard_retail_3_month = attributes[:'initial_generic_standard_retail_3_month']
2028
+ end
2029
+
2030
+ if attributes.has_key?(:'initial_non_preferred_preferred_mail_1_month')
2031
+ self.initial_non_preferred_preferred_mail_1_month = attributes[:'initial_non_preferred_preferred_mail_1_month']
2032
+ end
2033
+
2034
+ if attributes.has_key?(:'initial_non_preferred_preferred_mail_3_month')
2035
+ self.initial_non_preferred_preferred_mail_3_month = attributes[:'initial_non_preferred_preferred_mail_3_month']
2036
+ end
2037
+
2038
+ if attributes.has_key?(:'initial_non_preferred_preferred_retail_1_month')
2039
+ self.initial_non_preferred_preferred_retail_1_month = attributes[:'initial_non_preferred_preferred_retail_1_month']
2040
+ end
2041
+
2042
+ if attributes.has_key?(:'initial_non_preferred_preferred_retail_3_month')
2043
+ self.initial_non_preferred_preferred_retail_3_month = attributes[:'initial_non_preferred_preferred_retail_3_month']
2044
+ end
2045
+
2046
+ if attributes.has_key?(:'initial_non_preferred_standard_mail_1_month')
2047
+ self.initial_non_preferred_standard_mail_1_month = attributes[:'initial_non_preferred_standard_mail_1_month']
2048
+ end
2049
+
2050
+ if attributes.has_key?(:'initial_non_preferred_standard_mail_3_month')
2051
+ self.initial_non_preferred_standard_mail_3_month = attributes[:'initial_non_preferred_standard_mail_3_month']
2052
+ end
2053
+
2054
+ if attributes.has_key?(:'initial_non_preferred_standard_retail_1_month')
2055
+ self.initial_non_preferred_standard_retail_1_month = attributes[:'initial_non_preferred_standard_retail_1_month']
2056
+ end
2057
+
2058
+ if attributes.has_key?(:'initial_non_preferred_standard_retail_3_month')
2059
+ self.initial_non_preferred_standard_retail_3_month = attributes[:'initial_non_preferred_standard_retail_3_month']
2060
+ end
2061
+
2062
+ if attributes.has_key?(:'initial_preferred_brand_preferred_mail_1_month')
2063
+ self.initial_preferred_brand_preferred_mail_1_month = attributes[:'initial_preferred_brand_preferred_mail_1_month']
2064
+ end
2065
+
2066
+ if attributes.has_key?(:'initial_preferred_brand_preferred_mail_3_month')
2067
+ self.initial_preferred_brand_preferred_mail_3_month = attributes[:'initial_preferred_brand_preferred_mail_3_month']
2068
+ end
2069
+
2070
+ if attributes.has_key?(:'initial_preferred_brand_preferred_retail_1_month')
2071
+ self.initial_preferred_brand_preferred_retail_1_month = attributes[:'initial_preferred_brand_preferred_retail_1_month']
2072
+ end
2073
+
2074
+ if attributes.has_key?(:'initial_preferred_brand_preferred_retail_3_month')
2075
+ self.initial_preferred_brand_preferred_retail_3_month = attributes[:'initial_preferred_brand_preferred_retail_3_month']
2076
+ end
2077
+
2078
+ if attributes.has_key?(:'initial_preferred_brand_standard_mail_1_month')
2079
+ self.initial_preferred_brand_standard_mail_1_month = attributes[:'initial_preferred_brand_standard_mail_1_month']
2080
+ end
2081
+
2082
+ if attributes.has_key?(:'initial_preferred_brand_standard_mail_3_month')
2083
+ self.initial_preferred_brand_standard_mail_3_month = attributes[:'initial_preferred_brand_standard_mail_3_month']
2084
+ end
2085
+
2086
+ if attributes.has_key?(:'initial_preferred_brand_standard_retail_1_month')
2087
+ self.initial_preferred_brand_standard_retail_1_month = attributes[:'initial_preferred_brand_standard_retail_1_month']
2088
+ end
2089
+
2090
+ if attributes.has_key?(:'initial_preferred_brand_standard_retail_3_month')
2091
+ self.initial_preferred_brand_standard_retail_3_month = attributes[:'initial_preferred_brand_standard_retail_3_month']
2092
+ end
2093
+
2094
+ if attributes.has_key?(:'initial_preferred_generic_preferred_mail_1_month')
2095
+ self.initial_preferred_generic_preferred_mail_1_month = attributes[:'initial_preferred_generic_preferred_mail_1_month']
2096
+ end
2097
+
2098
+ if attributes.has_key?(:'initial_preferred_generic_preferred_mail_3_month')
2099
+ self.initial_preferred_generic_preferred_mail_3_month = attributes[:'initial_preferred_generic_preferred_mail_3_month']
2100
+ end
2101
+
2102
+ if attributes.has_key?(:'initial_preferred_generic_preferred_retail_1_month')
2103
+ self.initial_preferred_generic_preferred_retail_1_month = attributes[:'initial_preferred_generic_preferred_retail_1_month']
2104
+ end
2105
+
2106
+ if attributes.has_key?(:'initial_preferred_generic_preferred_retail_3_month')
2107
+ self.initial_preferred_generic_preferred_retail_3_month = attributes[:'initial_preferred_generic_preferred_retail_3_month']
2108
+ end
2109
+
2110
+ if attributes.has_key?(:'initial_preferred_generic_standard_mail_1_month')
2111
+ self.initial_preferred_generic_standard_mail_1_month = attributes[:'initial_preferred_generic_standard_mail_1_month']
2112
+ end
2113
+
2114
+ if attributes.has_key?(:'initial_preferred_generic_standard_mail_3_month')
2115
+ self.initial_preferred_generic_standard_mail_3_month = attributes[:'initial_preferred_generic_standard_mail_3_month']
2116
+ end
2117
+
2118
+ if attributes.has_key?(:'initial_preferred_generic_standard_retail_1_month')
2119
+ self.initial_preferred_generic_standard_retail_1_month = attributes[:'initial_preferred_generic_standard_retail_1_month']
2120
+ end
2121
+
2122
+ if attributes.has_key?(:'initial_preferred_generic_standard_retail_3_month')
2123
+ self.initial_preferred_generic_standard_retail_3_month = attributes[:'initial_preferred_generic_standard_retail_3_month']
2124
+ end
2125
+
2126
+ if attributes.has_key?(:'initial_specialty_preferred_mail_1_month')
2127
+ self.initial_specialty_preferred_mail_1_month = attributes[:'initial_specialty_preferred_mail_1_month']
2128
+ end
2129
+
2130
+ if attributes.has_key?(:'initial_specialty_preferred_mail_3_month')
2131
+ self.initial_specialty_preferred_mail_3_month = attributes[:'initial_specialty_preferred_mail_3_month']
2132
+ end
2133
+
2134
+ if attributes.has_key?(:'initial_specialty_preferred_retail_1_month')
2135
+ self.initial_specialty_preferred_retail_1_month = attributes[:'initial_specialty_preferred_retail_1_month']
2136
+ end
2137
+
2138
+ if attributes.has_key?(:'initial_specialty_preferred_retail_3_month')
2139
+ self.initial_specialty_preferred_retail_3_month = attributes[:'initial_specialty_preferred_retail_3_month']
2140
+ end
2141
+
2142
+ if attributes.has_key?(:'initial_specialty_standard_mail_1_month')
2143
+ self.initial_specialty_standard_mail_1_month = attributes[:'initial_specialty_standard_mail_1_month']
2144
+ end
2145
+
2146
+ if attributes.has_key?(:'initial_specialty_standard_mail_3_month')
2147
+ self.initial_specialty_standard_mail_3_month = attributes[:'initial_specialty_standard_mail_3_month']
2148
+ end
2149
+
2150
+ if attributes.has_key?(:'initial_specialty_standard_retail_1_month')
2151
+ self.initial_specialty_standard_retail_1_month = attributes[:'initial_specialty_standard_retail_1_month']
2152
+ end
2153
+
2154
+ if attributes.has_key?(:'initial_specialty_standard_retail_3_month')
2155
+ self.initial_specialty_standard_retail_3_month = attributes[:'initial_specialty_standard_retail_3_month']
2156
+ end
2157
+
2158
+ if attributes.has_key?(:'inpatient_hospital')
2159
+ self.inpatient_hospital = attributes[:'inpatient_hospital']
2160
+ end
2161
+
2162
+ if attributes.has_key?(:'medical_chiropractic_services')
2163
+ self.medical_chiropractic_services = attributes[:'medical_chiropractic_services']
2164
+ end
2165
+
2166
+ if attributes.has_key?(:'medical_moop')
2167
+ self.medical_moop = attributes[:'medical_moop']
2168
+ end
2169
+
2170
+ if attributes.has_key?(:'mental_health_inpatient_visit')
2171
+ self.mental_health_inpatient_visit = attributes[:'mental_health_inpatient_visit']
2172
+ end
2173
+
2174
+ if attributes.has_key?(:'mental_health_outpatient_group_therapy')
2175
+ self.mental_health_outpatient_group_therapy = attributes[:'mental_health_outpatient_group_therapy']
2176
+ end
2177
+
2178
+ if attributes.has_key?(:'mental_health_outpatient_individual_therapy')
2179
+ self.mental_health_outpatient_individual_therapy = attributes[:'mental_health_outpatient_individual_therapy']
2180
+ end
2181
+
2182
+ if attributes.has_key?(:'other_part_b_drug')
2183
+ self.other_part_b_drug = attributes[:'other_part_b_drug']
2184
+ end
2185
+
2186
+ if attributes.has_key?(:'outpatient_hospital')
2187
+ self.outpatient_hospital = attributes[:'outpatient_hospital']
2188
+ end
2189
+
2190
+ if attributes.has_key?(:'physical_therapy')
2191
+ self.physical_therapy = attributes[:'physical_therapy']
2192
+ end
2193
+
2194
+ if attributes.has_key?(:'podiatry_medicare_covered_benefits')
2195
+ self.podiatry_medicare_covered_benefits = attributes[:'podiatry_medicare_covered_benefits']
2196
+ end
2197
+
2198
+ if attributes.has_key?(:'podiatry_routine_footcare')
2199
+ self.podiatry_routine_footcare = attributes[:'podiatry_routine_footcare']
2200
+ end
2201
+
2202
+ if attributes.has_key?(:'preventive_care')
2203
+ self.preventive_care = attributes[:'preventive_care']
2204
+ end
2205
+
2206
+ if attributes.has_key?(:'prosthetics')
2207
+ self.prosthetics = attributes[:'prosthetics']
2208
+ end
2209
+
2210
+ if attributes.has_key?(:'rehabilitation_occupational_therapy')
2211
+ self.rehabilitation_occupational_therapy = attributes[:'rehabilitation_occupational_therapy']
2212
+ end
2213
+
2214
+ if attributes.has_key?(:'renal_dialysis')
2215
+ self.renal_dialysis = attributes[:'renal_dialysis']
2216
+ end
2217
+
2218
+ if attributes.has_key?(:'routine_transportation')
2219
+ self.routine_transportation = attributes[:'routine_transportation']
2220
+ end
2221
+
2222
+ if attributes.has_key?(:'skilled_nursing_facility')
2223
+ self.skilled_nursing_facility = attributes[:'skilled_nursing_facility']
2224
+ end
2225
+
2226
+ if attributes.has_key?(:'urgent_care')
2227
+ self.urgent_care = attributes[:'urgent_care']
2228
+ end
2229
+
2230
+ if attributes.has_key?(:'vision_contact_lenses')
2231
+ self.vision_contact_lenses = attributes[:'vision_contact_lenses']
2232
+ end
2233
+
2234
+ if attributes.has_key?(:'vision_exam')
2235
+ self.vision_exam = attributes[:'vision_exam']
2236
+ end
2237
+
2238
+ if attributes.has_key?(:'vision_eyeglass_frames_and_lenses')
2239
+ self.vision_eyeglass_frames_and_lenses = attributes[:'vision_eyeglass_frames_and_lenses']
2240
+ end
2241
+
2242
+ if attributes.has_key?(:'vision_medicare_covered_benefits')
2243
+ self.vision_medicare_covered_benefits = attributes[:'vision_medicare_covered_benefits']
2244
+ end
2245
+
2246
+ if attributes.has_key?(:'vision_upgrades')
2247
+ self.vision_upgrades = attributes[:'vision_upgrades']
2248
+ end
2249
+
2250
+ if attributes.has_key?(:'wellness_program')
2251
+ self.wellness_program = attributes[:'wellness_program']
2252
+ end
2253
+
2254
+ end
2255
+
2256
+ # Show invalid properties with the reasons. Usually used together with valid?
2257
+ # @return Array for valid properies with the reasons
2258
+ def list_invalid_properties
2259
+ invalid_properties = Array.new
2260
+ return invalid_properties
2261
+ end
2262
+
2263
+ # Check to see if the all the properties in the model are valid
2264
+ # @return true if the model is valid
2265
+ def valid?
2266
+ return true
2267
+ end
2268
+
2269
+ # Checks equality by comparing each attribute.
2270
+ # @param [Object] Object to be compared
2271
+ def ==(o)
2272
+ return true if self.equal?(o)
2273
+ self.class == o.class &&
2274
+ ambulance == o.ambulance &&
2275
+ catastrophic_brand_name == o.catastrophic_brand_name &&
2276
+ catastrophic_excluded == o.catastrophic_excluded &&
2277
+ catastrophic_generic == o.catastrophic_generic &&
2278
+ chemotherapy_drug == o.chemotherapy_drug &&
2279
+ deductible_annual_drug == o.deductible_annual_drug &&
2280
+ deductible_annual_medical == o.deductible_annual_medical &&
2281
+ dental_cleaning == o.dental_cleaning &&
2282
+ dental_diagnostic_services == o.dental_diagnostic_services &&
2283
+ dental_endodontics == o.dental_endodontics &&
2284
+ dental_exam == o.dental_exam &&
2285
+ dental_extraction == o.dental_extraction &&
2286
+ dental_fluoride_treatment == o.dental_fluoride_treatment &&
2287
+ dental_medicare_covered_benefits == o.dental_medicare_covered_benefits &&
2288
+ dental_non_routine_services == o.dental_non_routine_services &&
2289
+ dental_periodontics == o.dental_periodontics &&
2290
+ dental_prosthodontics_and_other == o.dental_prosthodontics_and_other &&
2291
+ dental_restorative_services == o.dental_restorative_services &&
2292
+ dental_x_rays == o.dental_x_rays &&
2293
+ diabetes_management_monitoring_supplies == o.diabetes_management_monitoring_supplies &&
2294
+ diagnostic_lab_service == o.diagnostic_lab_service &&
2295
+ diagnostic_outpatient_x_rays == o.diagnostic_outpatient_x_rays &&
2296
+ diagnostic_radiology == o.diagnostic_radiology &&
2297
+ diagnostic_test_and_procedures == o.diagnostic_test_and_procedures &&
2298
+ diagnostic_therapeutic_radiology == o.diagnostic_therapeutic_radiology &&
2299
+ doctor_visit_primary == o.doctor_visit_primary &&
2300
+ doctor_visit_specialist == o.doctor_visit_specialist &&
2301
+ durable_medical_equipment == o.durable_medical_equipment &&
2302
+ emergency_care == o.emergency_care &&
2303
+ gap_brand_name == o.gap_brand_name &&
2304
+ gap_generic == o.gap_generic &&
2305
+ gap_generic_preferred_mail_1_month == o.gap_generic_preferred_mail_1_month &&
2306
+ gap_generic_preferred_mail_3_month == o.gap_generic_preferred_mail_3_month &&
2307
+ gap_generic_preferred_retail_1_month == o.gap_generic_preferred_retail_1_month &&
2308
+ gap_generic_preferred_retail_3_month == o.gap_generic_preferred_retail_3_month &&
2309
+ gap_generic_standard_mail_1_month == o.gap_generic_standard_mail_1_month &&
2310
+ gap_generic_standard_mail_3_month == o.gap_generic_standard_mail_3_month &&
2311
+ gap_generic_standard_retail_1_month == o.gap_generic_standard_retail_1_month &&
2312
+ gap_generic_standard_retail_3_month == o.gap_generic_standard_retail_3_month &&
2313
+ gap_non_preferred_preferred_mail_1_month == o.gap_non_preferred_preferred_mail_1_month &&
2314
+ gap_non_preferred_preferred_mail_3_month == o.gap_non_preferred_preferred_mail_3_month &&
2315
+ gap_non_preferred_preferred_retail_1_month == o.gap_non_preferred_preferred_retail_1_month &&
2316
+ gap_non_preferred_preferred_retail_3_month == o.gap_non_preferred_preferred_retail_3_month &&
2317
+ gap_non_preferred_standard_mail_1_month == o.gap_non_preferred_standard_mail_1_month &&
2318
+ gap_non_preferred_standard_mail_3_month == o.gap_non_preferred_standard_mail_3_month &&
2319
+ gap_non_preferred_standard_retail_1_month == o.gap_non_preferred_standard_retail_1_month &&
2320
+ gap_non_preferred_standard_retail_3_month == o.gap_non_preferred_standard_retail_3_month &&
2321
+ gap_preferred_brand_preferred_mail_1_month == o.gap_preferred_brand_preferred_mail_1_month &&
2322
+ gap_preferred_brand_preferred_mail_3_month == o.gap_preferred_brand_preferred_mail_3_month &&
2323
+ gap_preferred_brand_preferred_retail_1_month == o.gap_preferred_brand_preferred_retail_1_month &&
2324
+ gap_preferred_brand_preferred_retail_3_month == o.gap_preferred_brand_preferred_retail_3_month &&
2325
+ gap_preferred_brand_standard_mail_1_month == o.gap_preferred_brand_standard_mail_1_month &&
2326
+ gap_preferred_brand_standard_mail_3_month == o.gap_preferred_brand_standard_mail_3_month &&
2327
+ gap_preferred_brand_standard_retail_1_month == o.gap_preferred_brand_standard_retail_1_month &&
2328
+ gap_preferred_brand_standard_retail_3_month == o.gap_preferred_brand_standard_retail_3_month &&
2329
+ gap_preferred_generic_preferred_mail_1_month == o.gap_preferred_generic_preferred_mail_1_month &&
2330
+ gap_preferred_generic_preferred_mail_3_month == o.gap_preferred_generic_preferred_mail_3_month &&
2331
+ gap_preferred_generic_preferred_retail_1_month == o.gap_preferred_generic_preferred_retail_1_month &&
2332
+ gap_preferred_generic_preferred_retail_3_month == o.gap_preferred_generic_preferred_retail_3_month &&
2333
+ gap_preferred_generic_standard_mail_1_month == o.gap_preferred_generic_standard_mail_1_month &&
2334
+ gap_preferred_generic_standard_mail_3_month == o.gap_preferred_generic_standard_mail_3_month &&
2335
+ gap_preferred_generic_standard_retail_1_month == o.gap_preferred_generic_standard_retail_1_month &&
2336
+ gap_preferred_generic_standard_retail_3_month == o.gap_preferred_generic_standard_retail_3_month &&
2337
+ gap_specialty_preferred_mail_1_month == o.gap_specialty_preferred_mail_1_month &&
2338
+ gap_specialty_preferred_mail_3_month == o.gap_specialty_preferred_mail_3_month &&
2339
+ gap_specialty_preferred_retail_1_month == o.gap_specialty_preferred_retail_1_month &&
2340
+ gap_specialty_preferred_retail_3_month == o.gap_specialty_preferred_retail_3_month &&
2341
+ gap_specialty_standard_mail_1_month == o.gap_specialty_standard_mail_1_month &&
2342
+ gap_specialty_standard_mail_3_month == o.gap_specialty_standard_mail_3_month &&
2343
+ gap_specialty_standard_retail_1_month == o.gap_specialty_standard_retail_1_month &&
2344
+ gap_specialty_standard_retail_3_month == o.gap_specialty_standard_retail_3_month &&
2345
+ hearing_aids == o.hearing_aids &&
2346
+ hearing_aids_fitting_and_evaluation == o.hearing_aids_fitting_and_evaluation &&
2347
+ hearing_exam == o.hearing_exam &&
2348
+ hearing_medicare_covered_benefits == o.hearing_medicare_covered_benefits &&
2349
+ home_health_care == o.home_health_care &&
2350
+ hospice == o.hospice &&
2351
+ initial_generic_preferred_mail_1_month == o.initial_generic_preferred_mail_1_month &&
2352
+ initial_generic_preferred_mail_3_month == o.initial_generic_preferred_mail_3_month &&
2353
+ initial_generic_preferred_retail_1_month == o.initial_generic_preferred_retail_1_month &&
2354
+ initial_generic_preferred_retail_3_month == o.initial_generic_preferred_retail_3_month &&
2355
+ initial_generic_standard_mail_1_month == o.initial_generic_standard_mail_1_month &&
2356
+ initial_generic_standard_mail_3_month == o.initial_generic_standard_mail_3_month &&
2357
+ initial_generic_standard_retail_1_month == o.initial_generic_standard_retail_1_month &&
2358
+ initial_generic_standard_retail_3_month == o.initial_generic_standard_retail_3_month &&
2359
+ initial_non_preferred_preferred_mail_1_month == o.initial_non_preferred_preferred_mail_1_month &&
2360
+ initial_non_preferred_preferred_mail_3_month == o.initial_non_preferred_preferred_mail_3_month &&
2361
+ initial_non_preferred_preferred_retail_1_month == o.initial_non_preferred_preferred_retail_1_month &&
2362
+ initial_non_preferred_preferred_retail_3_month == o.initial_non_preferred_preferred_retail_3_month &&
2363
+ initial_non_preferred_standard_mail_1_month == o.initial_non_preferred_standard_mail_1_month &&
2364
+ initial_non_preferred_standard_mail_3_month == o.initial_non_preferred_standard_mail_3_month &&
2365
+ initial_non_preferred_standard_retail_1_month == o.initial_non_preferred_standard_retail_1_month &&
2366
+ initial_non_preferred_standard_retail_3_month == o.initial_non_preferred_standard_retail_3_month &&
2367
+ initial_preferred_brand_preferred_mail_1_month == o.initial_preferred_brand_preferred_mail_1_month &&
2368
+ initial_preferred_brand_preferred_mail_3_month == o.initial_preferred_brand_preferred_mail_3_month &&
2369
+ initial_preferred_brand_preferred_retail_1_month == o.initial_preferred_brand_preferred_retail_1_month &&
2370
+ initial_preferred_brand_preferred_retail_3_month == o.initial_preferred_brand_preferred_retail_3_month &&
2371
+ initial_preferred_brand_standard_mail_1_month == o.initial_preferred_brand_standard_mail_1_month &&
2372
+ initial_preferred_brand_standard_mail_3_month == o.initial_preferred_brand_standard_mail_3_month &&
2373
+ initial_preferred_brand_standard_retail_1_month == o.initial_preferred_brand_standard_retail_1_month &&
2374
+ initial_preferred_brand_standard_retail_3_month == o.initial_preferred_brand_standard_retail_3_month &&
2375
+ initial_preferred_generic_preferred_mail_1_month == o.initial_preferred_generic_preferred_mail_1_month &&
2376
+ initial_preferred_generic_preferred_mail_3_month == o.initial_preferred_generic_preferred_mail_3_month &&
2377
+ initial_preferred_generic_preferred_retail_1_month == o.initial_preferred_generic_preferred_retail_1_month &&
2378
+ initial_preferred_generic_preferred_retail_3_month == o.initial_preferred_generic_preferred_retail_3_month &&
2379
+ initial_preferred_generic_standard_mail_1_month == o.initial_preferred_generic_standard_mail_1_month &&
2380
+ initial_preferred_generic_standard_mail_3_month == o.initial_preferred_generic_standard_mail_3_month &&
2381
+ initial_preferred_generic_standard_retail_1_month == o.initial_preferred_generic_standard_retail_1_month &&
2382
+ initial_preferred_generic_standard_retail_3_month == o.initial_preferred_generic_standard_retail_3_month &&
2383
+ initial_specialty_preferred_mail_1_month == o.initial_specialty_preferred_mail_1_month &&
2384
+ initial_specialty_preferred_mail_3_month == o.initial_specialty_preferred_mail_3_month &&
2385
+ initial_specialty_preferred_retail_1_month == o.initial_specialty_preferred_retail_1_month &&
2386
+ initial_specialty_preferred_retail_3_month == o.initial_specialty_preferred_retail_3_month &&
2387
+ initial_specialty_standard_mail_1_month == o.initial_specialty_standard_mail_1_month &&
2388
+ initial_specialty_standard_mail_3_month == o.initial_specialty_standard_mail_3_month &&
2389
+ initial_specialty_standard_retail_1_month == o.initial_specialty_standard_retail_1_month &&
2390
+ initial_specialty_standard_retail_3_month == o.initial_specialty_standard_retail_3_month &&
2391
+ inpatient_hospital == o.inpatient_hospital &&
2392
+ medical_chiropractic_services == o.medical_chiropractic_services &&
2393
+ medical_moop == o.medical_moop &&
2394
+ mental_health_inpatient_visit == o.mental_health_inpatient_visit &&
2395
+ mental_health_outpatient_group_therapy == o.mental_health_outpatient_group_therapy &&
2396
+ mental_health_outpatient_individual_therapy == o.mental_health_outpatient_individual_therapy &&
2397
+ other_part_b_drug == o.other_part_b_drug &&
2398
+ outpatient_hospital == o.outpatient_hospital &&
2399
+ physical_therapy == o.physical_therapy &&
2400
+ podiatry_medicare_covered_benefits == o.podiatry_medicare_covered_benefits &&
2401
+ podiatry_routine_footcare == o.podiatry_routine_footcare &&
2402
+ preventive_care == o.preventive_care &&
2403
+ prosthetics == o.prosthetics &&
2404
+ rehabilitation_occupational_therapy == o.rehabilitation_occupational_therapy &&
2405
+ renal_dialysis == o.renal_dialysis &&
2406
+ routine_transportation == o.routine_transportation &&
2407
+ skilled_nursing_facility == o.skilled_nursing_facility &&
2408
+ urgent_care == o.urgent_care &&
2409
+ vision_contact_lenses == o.vision_contact_lenses &&
2410
+ vision_exam == o.vision_exam &&
2411
+ vision_eyeglass_frames_and_lenses == o.vision_eyeglass_frames_and_lenses &&
2412
+ vision_medicare_covered_benefits == o.vision_medicare_covered_benefits &&
2413
+ vision_upgrades == o.vision_upgrades &&
2414
+ wellness_program == o.wellness_program
2415
+ end
2416
+
2417
+ # @see the `==` method
2418
+ # @param [Object] Object to be compared
2419
+ def eql?(o)
2420
+ self == o
2421
+ end
2422
+
2423
+ # Calculates hash code according to all attributes.
2424
+ # @return [Fixnum] Hash code
2425
+ def hash
2426
+ [ambulance, catastrophic_brand_name, catastrophic_excluded, catastrophic_generic, chemotherapy_drug, deductible_annual_drug, deductible_annual_medical, dental_cleaning, dental_diagnostic_services, dental_endodontics, dental_exam, dental_extraction, dental_fluoride_treatment, dental_medicare_covered_benefits, dental_non_routine_services, dental_periodontics, dental_prosthodontics_and_other, dental_restorative_services, dental_x_rays, diabetes_management_monitoring_supplies, diagnostic_lab_service, diagnostic_outpatient_x_rays, diagnostic_radiology, diagnostic_test_and_procedures, diagnostic_therapeutic_radiology, doctor_visit_primary, doctor_visit_specialist, durable_medical_equipment, emergency_care, gap_brand_name, gap_generic, gap_generic_preferred_mail_1_month, gap_generic_preferred_mail_3_month, gap_generic_preferred_retail_1_month, gap_generic_preferred_retail_3_month, gap_generic_standard_mail_1_month, gap_generic_standard_mail_3_month, gap_generic_standard_retail_1_month, gap_generic_standard_retail_3_month, gap_non_preferred_preferred_mail_1_month, gap_non_preferred_preferred_mail_3_month, gap_non_preferred_preferred_retail_1_month, gap_non_preferred_preferred_retail_3_month, gap_non_preferred_standard_mail_1_month, gap_non_preferred_standard_mail_3_month, gap_non_preferred_standard_retail_1_month, gap_non_preferred_standard_retail_3_month, gap_preferred_brand_preferred_mail_1_month, gap_preferred_brand_preferred_mail_3_month, gap_preferred_brand_preferred_retail_1_month, gap_preferred_brand_preferred_retail_3_month, gap_preferred_brand_standard_mail_1_month, gap_preferred_brand_standard_mail_3_month, gap_preferred_brand_standard_retail_1_month, gap_preferred_brand_standard_retail_3_month, gap_preferred_generic_preferred_mail_1_month, gap_preferred_generic_preferred_mail_3_month, gap_preferred_generic_preferred_retail_1_month, gap_preferred_generic_preferred_retail_3_month, gap_preferred_generic_standard_mail_1_month, gap_preferred_generic_standard_mail_3_month, gap_preferred_generic_standard_retail_1_month, gap_preferred_generic_standard_retail_3_month, gap_specialty_preferred_mail_1_month, gap_specialty_preferred_mail_3_month, gap_specialty_preferred_retail_1_month, gap_specialty_preferred_retail_3_month, gap_specialty_standard_mail_1_month, gap_specialty_standard_mail_3_month, gap_specialty_standard_retail_1_month, gap_specialty_standard_retail_3_month, hearing_aids, hearing_aids_fitting_and_evaluation, hearing_exam, hearing_medicare_covered_benefits, home_health_care, hospice, initial_generic_preferred_mail_1_month, initial_generic_preferred_mail_3_month, initial_generic_preferred_retail_1_month, initial_generic_preferred_retail_3_month, initial_generic_standard_mail_1_month, initial_generic_standard_mail_3_month, initial_generic_standard_retail_1_month, initial_generic_standard_retail_3_month, initial_non_preferred_preferred_mail_1_month, initial_non_preferred_preferred_mail_3_month, initial_non_preferred_preferred_retail_1_month, initial_non_preferred_preferred_retail_3_month, initial_non_preferred_standard_mail_1_month, initial_non_preferred_standard_mail_3_month, initial_non_preferred_standard_retail_1_month, initial_non_preferred_standard_retail_3_month, initial_preferred_brand_preferred_mail_1_month, initial_preferred_brand_preferred_mail_3_month, initial_preferred_brand_preferred_retail_1_month, initial_preferred_brand_preferred_retail_3_month, initial_preferred_brand_standard_mail_1_month, initial_preferred_brand_standard_mail_3_month, initial_preferred_brand_standard_retail_1_month, initial_preferred_brand_standard_retail_3_month, initial_preferred_generic_preferred_mail_1_month, initial_preferred_generic_preferred_mail_3_month, initial_preferred_generic_preferred_retail_1_month, initial_preferred_generic_preferred_retail_3_month, initial_preferred_generic_standard_mail_1_month, initial_preferred_generic_standard_mail_3_month, initial_preferred_generic_standard_retail_1_month, initial_preferred_generic_standard_retail_3_month, initial_specialty_preferred_mail_1_month, initial_specialty_preferred_mail_3_month, initial_specialty_preferred_retail_1_month, initial_specialty_preferred_retail_3_month, initial_specialty_standard_mail_1_month, initial_specialty_standard_mail_3_month, initial_specialty_standard_retail_1_month, initial_specialty_standard_retail_3_month, inpatient_hospital, medical_chiropractic_services, medical_moop, mental_health_inpatient_visit, mental_health_outpatient_group_therapy, mental_health_outpatient_individual_therapy, other_part_b_drug, outpatient_hospital, physical_therapy, podiatry_medicare_covered_benefits, podiatry_routine_footcare, preventive_care, prosthetics, rehabilitation_occupational_therapy, renal_dialysis, routine_transportation, skilled_nursing_facility, urgent_care, vision_contact_lenses, vision_exam, vision_eyeglass_frames_and_lenses, vision_medicare_covered_benefits, vision_upgrades, wellness_program].hash
2427
+ end
2428
+
2429
+ # Builds the object from hash
2430
+ # @param [Hash] attributes Model attributes in the form of hash
2431
+ # @return [Object] Returns the model itself
2432
+ def build_from_hash(attributes)
2433
+ return nil unless attributes.is_a?(Hash)
2434
+ self.class.swagger_types.each_pair do |key, type|
2435
+ if type =~ /\AArray<(.*)>/i
2436
+ # check to ensure the input is an array given that the the attribute
2437
+ # is documented as an array but the input is not
2438
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
2439
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
2440
+ end
2441
+ elsif !attributes[self.class.attribute_map[key]].nil?
2442
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
2443
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
2444
+ end
2445
+
2446
+ self
2447
+ end
2448
+
2449
+ # Deserializes the data based on type
2450
+ # @param string type Data type
2451
+ # @param string value Value to be deserialized
2452
+ # @return [Object] Deserialized data
2453
+ def _deserialize(type, value)
2454
+ case type.to_sym
2455
+ when :DateTime
2456
+ DateTime.parse(value)
2457
+ when :Date
2458
+ Date.parse(value)
2459
+ when :String
2460
+ value.to_s
2461
+ when :Integer
2462
+ value.to_i
2463
+ when :Float
2464
+ value.to_f
2465
+ when :BOOLEAN
2466
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
2467
+ true
2468
+ else
2469
+ false
2470
+ end
2471
+ when :Object
2472
+ # generic object (usually a Hash), return directly
2473
+ value
2474
+ when /\AArray<(?<inner_type>.+)>\z/
2475
+ inner_type = Regexp.last_match[:inner_type]
2476
+ value.map { |v| _deserialize(inner_type, v) }
2477
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
2478
+ k_type = Regexp.last_match[:k_type]
2479
+ v_type = Regexp.last_match[:v_type]
2480
+ {}.tap do |hash|
2481
+ value.each do |k, v|
2482
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
2483
+ end
2484
+ end
2485
+ else # model
2486
+ temp_model = VericredClient.const_get(type).new
2487
+ temp_model.build_from_hash(value)
2488
+ end
2489
+ end
2490
+
2491
+ # Returns the string representation of the object
2492
+ # @return [String] String presentation of the object
2493
+ def to_s
2494
+ to_hash.to_s
2495
+ end
2496
+
2497
+ # to_body is an alias to to_hash (backward compatibility)
2498
+ # @return [Hash] Returns the object in the form of hash
2499
+ def to_body
2500
+ to_hash
2501
+ end
2502
+
2503
+ # Returns the object in the form of hash
2504
+ # @return [Hash] Returns the object in the form of hash
2505
+ def to_hash
2506
+ hash = {}
2507
+ self.class.attribute_map.each_pair do |attr, param|
2508
+ value = self.send(attr)
2509
+ next if value.nil?
2510
+ hash[param] = _to_hash(value)
2511
+ end
2512
+ hash
2513
+ end
2514
+
2515
+ # Outputs non-array value in the form of hash
2516
+ # For object, use to_hash. Otherwise, just return the value
2517
+ # @param [Object] value Any valid value
2518
+ # @return [Hash] Returns the value in the form of hash
2519
+ def _to_hash(value)
2520
+ if value.is_a?(Array)
2521
+ value.compact.map{ |v| _to_hash(v) }
2522
+ elsif value.is_a?(Hash)
2523
+ {}.tap do |hash|
2524
+ value.each { |k, v| hash[k] = _to_hash(v) }
2525
+ end
2526
+ elsif value.respond_to? :to_hash
2527
+ value.to_hash
2528
+ else
2529
+ value
2530
+ end
2531
+ end
2532
+
2533
+ end
2534
+
2535
+ end