vericred_client 0.0.11 → 0.0.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (319) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +92 -21
  3. data/docs/ACAPlan.md +96 -0
  4. data/docs/ACAPlan2018.md +97 -0
  5. data/docs/ACAPlan2018SearchResponse.md +10 -0
  6. data/docs/ACAPlan2018SearchResult.md +100 -0
  7. data/docs/ACAPlan2018ShowResponse.md +8 -0
  8. data/docs/ACAPlanPre2018.md +96 -0
  9. data/docs/ACAPlanPre2018SearchResponse.md +10 -0
  10. data/docs/{PlanSearchResult.md → ACAPlanPre2018SearchResult.md} +30 -11
  11. data/docs/ACAPlanPre2018ShowResponse.md +8 -0
  12. data/docs/BasePlanSearchResponse.md +9 -0
  13. data/docs/Carrier.md +0 -1
  14. data/docs/CarrierGroupRequest.md +10 -0
  15. data/docs/CarrierGroupsApi.md +119 -0
  16. data/docs/CarrierRequest.md +11 -0
  17. data/docs/CarrierSubsidiary.md +1 -0
  18. data/docs/CarrierVerificationPlansApi.md +63 -0
  19. data/docs/CarriersApi.md +119 -0
  20. data/docs/DentalPlan.md +20 -0
  21. data/docs/DentalPlanBenefits.md +30 -0
  22. data/docs/DentalPlanSearchApplicant.md +10 -0
  23. data/docs/DentalPlanSearchRequest.md +15 -0
  24. data/docs/DentalPlanSearchResponse.md +9 -0
  25. data/docs/DentalPlanShowResponse.md +8 -0
  26. data/docs/DentalPlanUpdate.md +16 -0
  27. data/docs/DentalPlanUpdateRequest.md +8 -0
  28. data/docs/DentalPlansApi.md +174 -0
  29. data/docs/DrugCoverage.md +1 -0
  30. data/docs/DrugCoverageResponse.md +1 -2
  31. data/docs/EmbargoRequest.md +13 -0
  32. data/docs/EmbargoesApi.md +119 -0
  33. data/docs/FormulariesApi.md +70 -0
  34. data/docs/IssuerRequest.md +19 -0
  35. data/docs/IssuersApi.md +119 -0
  36. data/docs/MedicalPlansApi.md +122 -0
  37. data/docs/{PlanSearchResponseMeta.md → MetaPlanSearchResponse.md} +2 -1
  38. data/docs/NetworkComparison.md +13 -0
  39. data/docs/NetworkComparisonRequest.md +10 -0
  40. data/docs/NetworkComparisonResponse.md +9 -0
  41. data/docs/NetworksApi.md +58 -0
  42. data/docs/NotificationSubscription.md +8 -0
  43. data/docs/NotificationSubscriptionResponse.md +8 -0
  44. data/docs/Plan.md +2 -61
  45. data/docs/PlanDeleted.md +7 -0
  46. data/docs/PlanIdentifier.md +9 -0
  47. data/docs/PlanMedicare.md +19 -0
  48. data/docs/PlanMedicareBulk.md +21 -0
  49. data/docs/PlanPricingMedicare.md +15 -0
  50. data/docs/PlanSearchResponse.md +1 -1
  51. data/docs/PlanShowResponse.md +1 -1
  52. data/docs/PlansApi.md +111 -1
  53. data/docs/Provider.md +1 -1
  54. data/docs/ProviderDetails.md +1 -1
  55. data/docs/ProviderNetworkEventNotification.md +13 -0
  56. data/docs/ProviderNotificationSubscriptionsApi.md +173 -0
  57. data/docs/ProvidersApi.md +68 -18
  58. data/docs/RateRequest.md +148 -0
  59. data/docs/RateSearch.md +143 -0
  60. data/docs/RatesApi.md +119 -0
  61. data/docs/RequestPlanFind.md +2 -0
  62. data/docs/RequestPlanFindCarrierVerification.md +23 -0
  63. data/docs/RequestProviderNotificationSubscription.md +10 -0
  64. data/docs/RequestProvidersSearch.md +1 -0
  65. data/docs/RequestRatesSearch.md +10 -0
  66. data/docs/ResponseRatesSearch.md +8 -0
  67. data/docs/RxCuiIdentifier.md +11 -0
  68. data/docs/RxCuiIdentifierSearchResponse.md +9 -0
  69. data/docs/VisionPlan.md +20 -0
  70. data/docs/VisionPlanBenefits.md +25 -0
  71. data/docs/VisionPlanSearchApplicant.md +10 -0
  72. data/docs/VisionPlanSearchRequest.md +15 -0
  73. data/docs/VisionPlanSearchResponse.md +9 -0
  74. data/docs/VisionPlanShowResponse.md +8 -0
  75. data/docs/VisionPlanUpdate.md +16 -0
  76. data/docs/VisionPlanUpdateRequest.md +8 -0
  77. data/docs/VisionPlansApi.md +174 -0
  78. data/lib/vericred_client/api/carrier_groups_api.rb +346 -0
  79. data/lib/vericred_client/api/carrier_verification_plans_api.rb +287 -0
  80. data/lib/vericred_client/api/carriers_api.rb +346 -0
  81. data/lib/vericred_client/api/dental_plans_api.rb +403 -0
  82. data/lib/vericred_client/api/drug_coverages_api.rb +5 -3
  83. data/lib/vericred_client/api/drug_packages_api.rb +5 -3
  84. data/lib/vericred_client/api/drugs_api.rb +5 -3
  85. data/lib/vericred_client/api/embargoes_api.rb +346 -0
  86. data/lib/vericred_client/api/formularies_api.rb +295 -0
  87. data/lib/vericred_client/api/issuers_api.rb +346 -0
  88. data/lib/vericred_client/api/medical_plans_api.rb +347 -0
  89. data/lib/vericred_client/api/network_sizes_api.rb +5 -3
  90. data/lib/vericred_client/api/networks_api.rb +66 -3
  91. data/lib/vericred_client/api/plans_api.rb +122 -3
  92. data/lib/vericred_client/api/provider_notification_subscriptions_api.rb +395 -0
  93. data/lib/vericred_client/api/providers_api.rb +82 -27
  94. data/lib/vericred_client/api/rates_api.rb +346 -0
  95. data/lib/vericred_client/api/vision_plans_api.rb +403 -0
  96. data/lib/vericred_client/api/zip_counties_api.rb +5 -3
  97. data/lib/vericred_client/api_client.rb +5 -3
  98. data/lib/vericred_client/api_error.rb +5 -3
  99. data/lib/vericred_client/configuration.rb +5 -3
  100. data/lib/vericred_client/models/aca_plan.rb +1284 -0
  101. data/lib/vericred_client/models/aca_plan2018.rb +1294 -0
  102. data/lib/vericred_client/models/aca_plan2018_search_response.rb +420 -0
  103. data/lib/vericred_client/models/aca_plan2018_search_result.rb +1324 -0
  104. data/lib/vericred_client/models/aca_plan2018_show_response.rb +396 -0
  105. data/lib/vericred_client/models/aca_plan_pre2018.rb +1284 -0
  106. data/lib/vericred_client/models/aca_plan_pre2018_search_response.rb +420 -0
  107. data/lib/vericred_client/models/{plan_search_result.rb → aca_plan_pre2018_search_result.rb} +294 -98
  108. data/lib/vericred_client/models/aca_plan_pre2018_show_response.rb +396 -0
  109. data/lib/vericred_client/models/base.rb +5 -3
  110. data/lib/vericred_client/models/base_plan_search_response.rb +408 -0
  111. data/lib/vericred_client/models/carrier.rb +9 -17
  112. data/lib/vericred_client/models/carrier_group_request.rb +416 -0
  113. data/lib/vericred_client/models/carrier_request.rb +426 -0
  114. data/lib/vericred_client/models/carrier_subsidiary.rb +19 -7
  115. data/lib/vericred_client/models/county.rb +5 -3
  116. data/lib/vericred_client/models/county_bulk.rb +5 -3
  117. data/lib/vericred_client/models/dental_plan.rb +518 -0
  118. data/lib/vericred_client/models/dental_plan_benefits.rb +616 -0
  119. data/lib/vericred_client/models/dental_plan_search_applicant.rb +416 -0
  120. data/lib/vericred_client/models/dental_plan_search_request.rb +468 -0
  121. data/lib/vericred_client/models/dental_plan_search_response.rb +408 -0
  122. data/lib/vericred_client/models/dental_plan_show_response.rb +396 -0
  123. data/lib/vericred_client/models/dental_plan_update.rb +478 -0
  124. data/lib/vericred_client/models/dental_plan_update_request.rb +396 -0
  125. data/lib/vericred_client/models/drug.rb +5 -3
  126. data/lib/vericred_client/models/drug_coverage.rb +18 -4
  127. data/lib/vericred_client/models/drug_coverage_response.rb +12 -24
  128. data/lib/vericred_client/models/drug_package.rb +5 -3
  129. data/lib/vericred_client/models/drug_search_response.rb +5 -3
  130. data/lib/vericred_client/models/embargo_request.rb +446 -0
  131. data/lib/vericred_client/models/formulary.rb +5 -3
  132. data/lib/vericred_client/models/formulary_drug_package_response.rb +5 -3
  133. data/lib/vericred_client/models/formulary_response.rb +5 -3
  134. data/lib/vericred_client/models/issuer_request.rb +506 -0
  135. data/lib/vericred_client/models/meta.rb +5 -3
  136. data/lib/vericred_client/models/{plan_search_response_meta.rb → meta_plan_search_response.rb} +20 -8
  137. data/lib/vericred_client/models/network.rb +5 -3
  138. data/lib/vericred_client/models/network_comparison.rb +446 -0
  139. data/lib/vericred_client/models/network_comparison_request.rb +418 -0
  140. data/lib/vericred_client/models/network_comparison_response.rb +410 -0
  141. data/lib/vericred_client/models/network_details.rb +5 -3
  142. data/lib/vericred_client/models/network_details_response.rb +5 -3
  143. data/lib/vericred_client/models/network_search_response.rb +5 -3
  144. data/lib/vericred_client/models/network_size.rb +5 -3
  145. data/lib/vericred_client/models/notification_subscription.rb +396 -0
  146. data/lib/vericred_client/models/notification_subscription_response.rb +396 -0
  147. data/lib/vericred_client/models/plan.rb +28 -616
  148. data/lib/vericred_client/models/plan_county.rb +5 -3
  149. data/lib/vericred_client/models/plan_county_bulk.rb +5 -3
  150. data/lib/vericred_client/models/plan_deleted.rb +386 -0
  151. data/lib/vericred_client/models/plan_identifier.rb +406 -0
  152. data/lib/vericred_client/models/plan_medicare.rb +510 -0
  153. data/lib/vericred_client/models/plan_medicare_bulk.rb +530 -0
  154. data/lib/vericred_client/models/plan_pricing_medicare.rb +466 -0
  155. data/lib/vericred_client/models/plan_search_response.rb +21 -19
  156. data/lib/vericred_client/models/plan_show_response.rb +6 -4
  157. data/lib/vericred_client/models/provider.rb +21 -17
  158. data/lib/vericred_client/models/provider_details.rb +18 -14
  159. data/lib/vericred_client/models/provider_geocode.rb +5 -3
  160. data/lib/vericred_client/models/provider_network_event_notification.rb +450 -0
  161. data/lib/vericred_client/models/provider_show_response.rb +5 -3
  162. data/lib/vericred_client/models/providers_geocode_response.rb +5 -3
  163. data/lib/vericred_client/models/providers_search_response.rb +5 -3
  164. data/lib/vericred_client/models/rate_request.rb +1796 -0
  165. data/lib/vericred_client/models/rate_search.rb +1746 -0
  166. data/lib/vericred_client/models/rating_area.rb +5 -3
  167. data/lib/vericred_client/models/request_plan_find.rb +26 -4
  168. data/lib/vericred_client/models/request_plan_find_applicant.rb +5 -3
  169. data/lib/vericred_client/models/request_plan_find_carrier_verification.rb +556 -0
  170. data/lib/vericred_client/models/request_plan_find_drug_package.rb +5 -3
  171. data/lib/vericred_client/models/request_plan_find_provider.rb +5 -3
  172. data/lib/vericred_client/models/request_provider_notification_subscription.rb +418 -0
  173. data/lib/vericred_client/models/request_providers_search.rb +18 -4
  174. data/lib/vericred_client/models/request_rates_search.rb +416 -0
  175. data/lib/vericred_client/models/response_rates_search.rb +396 -0
  176. data/lib/vericred_client/models/{applicant.rb → rx_cui_identifier.rb} +23 -51
  177. data/lib/vericred_client/models/rx_cui_identifier_search_response.rb +408 -0
  178. data/lib/vericred_client/models/service_area.rb +5 -3
  179. data/lib/vericred_client/models/service_area_zip_county.rb +5 -3
  180. data/lib/vericred_client/models/state.rb +5 -3
  181. data/lib/vericred_client/models/state_network_size_request.rb +5 -3
  182. data/lib/vericred_client/models/state_network_size_response.rb +5 -3
  183. data/lib/vericred_client/models/vision_plan.rb +518 -0
  184. data/lib/vericred_client/models/vision_plan_benefits.rb +566 -0
  185. data/lib/vericred_client/models/vision_plan_search_applicant.rb +416 -0
  186. data/lib/vericred_client/models/vision_plan_search_request.rb +468 -0
  187. data/lib/vericred_client/models/vision_plan_search_response.rb +408 -0
  188. data/lib/vericred_client/models/vision_plan_show_response.rb +396 -0
  189. data/lib/vericred_client/models/vision_plan_update.rb +478 -0
  190. data/lib/vericred_client/models/vision_plan_update_request.rb +396 -0
  191. data/lib/vericred_client/models/zip_code.rb +5 -3
  192. data/lib/vericred_client/models/zip_counties_response.rb +5 -3
  193. data/lib/vericred_client/models/zip_county.rb +5 -3
  194. data/lib/vericred_client/models/zip_county_bulk.rb +5 -3
  195. data/lib/vericred_client/models/zip_county_response.rb +5 -3
  196. data/lib/vericred_client/version.rb +6 -4
  197. data/lib/vericred_client.rb +66 -6
  198. data/spec/api/carrier_groups_api_spec.rb +267 -0
  199. data/spec/api/carrier_verification_plans_api_spec.rb +254 -0
  200. data/spec/api/carriers_api_spec.rb +267 -0
  201. data/spec/api/dental_plans_api_spec.rb +279 -0
  202. data/spec/api/drug_coverages_api_spec.rb +5 -3
  203. data/spec/api/drug_packages_api_spec.rb +5 -3
  204. data/spec/api/drugs_api_spec.rb +5 -3
  205. data/spec/api/embargoes_api_spec.rb +267 -0
  206. data/spec/api/formularies_api_spec.rb +257 -0
  207. data/spec/api/issuers_api_spec.rb +267 -0
  208. data/spec/api/medical_plans_api_spec.rb +267 -0
  209. data/spec/api/network_sizes_api_spec.rb +5 -3
  210. data/spec/api/networks_api_spec.rb +18 -3
  211. data/spec/api/plans_api_spec.rb +30 -3
  212. data/spec/api/provider_notification_subscriptions_api_spec.rb +278 -0
  213. data/spec/api/providers_api_spec.rb +23 -10
  214. data/spec/api/rates_api_spec.rb +267 -0
  215. data/spec/api/vision_plans_api_spec.rb +279 -0
  216. data/spec/api/zip_counties_api_spec.rb +5 -3
  217. data/spec/api_client_spec.rb +5 -3
  218. data/spec/configuration_spec.rb +5 -3
  219. data/spec/models/aca_plan2018_search_response_spec.rb +261 -0
  220. data/spec/models/aca_plan2018_search_result_spec.rb +801 -0
  221. data/spec/models/aca_plan2018_show_response_spec.rb +249 -0
  222. data/spec/models/aca_plan2018_spec.rb +783 -0
  223. data/spec/models/aca_plan_pre2018_search_response_spec.rb +261 -0
  224. data/spec/models/aca_plan_pre2018_search_result_spec.rb +795 -0
  225. data/spec/models/aca_plan_pre2018_show_response_spec.rb +249 -0
  226. data/spec/models/aca_plan_pre2018_spec.rb +777 -0
  227. data/spec/models/{plan_search_result_spec.rb → aca_plan_spec.rb} +149 -51
  228. data/spec/models/base_plan_search_response_spec.rb +255 -0
  229. data/spec/models/base_spec.rb +5 -3
  230. data/spec/models/carrier_group_request_spec.rb +261 -0
  231. data/spec/models/carrier_request_spec.rb +267 -0
  232. data/spec/models/carrier_spec.rb +5 -9
  233. data/spec/models/carrier_subsidiary_spec.rb +11 -3
  234. data/spec/models/county_bulk_spec.rb +5 -3
  235. data/spec/models/county_spec.rb +5 -3
  236. data/spec/models/dental_plan_benefits_spec.rb +381 -0
  237. data/spec/models/dental_plan_search_applicant_spec.rb +261 -0
  238. data/spec/models/dental_plan_search_request_spec.rb +291 -0
  239. data/spec/models/dental_plan_search_response_spec.rb +255 -0
  240. data/spec/models/dental_plan_show_response_spec.rb +249 -0
  241. data/spec/models/dental_plan_spec.rb +321 -0
  242. data/spec/models/dental_plan_update_request_spec.rb +249 -0
  243. data/spec/models/dental_plan_update_spec.rb +297 -0
  244. data/spec/models/drug_coverage_response_spec.rb +6 -10
  245. data/spec/models/drug_coverage_spec.rb +11 -3
  246. data/spec/models/drug_package_spec.rb +5 -3
  247. data/spec/models/drug_search_response_spec.rb +5 -3
  248. data/spec/models/drug_spec.rb +5 -3
  249. data/spec/models/{applicant_spec.rb → embargo_request_spec.rb} +17 -21
  250. data/spec/models/formulary_drug_package_response_spec.rb +5 -3
  251. data/spec/models/formulary_response_spec.rb +5 -3
  252. data/spec/models/formulary_spec.rb +5 -3
  253. data/spec/models/issuer_request_spec.rb +315 -0
  254. data/spec/models/meta_plan_search_response_spec.rb +261 -0
  255. data/spec/models/meta_spec.rb +5 -3
  256. data/spec/models/network_comparison_request_spec.rb +261 -0
  257. data/spec/models/network_comparison_response_spec.rb +255 -0
  258. data/spec/models/network_comparison_spec.rb +279 -0
  259. data/spec/models/network_details_response_spec.rb +5 -3
  260. data/spec/models/network_details_spec.rb +5 -3
  261. data/spec/models/network_search_response_spec.rb +5 -3
  262. data/spec/models/network_size_spec.rb +5 -3
  263. data/spec/models/network_spec.rb +5 -3
  264. data/spec/models/notification_subscription_response_spec.rb +249 -0
  265. data/spec/models/notification_subscription_spec.rb +249 -0
  266. data/spec/models/plan_county_bulk_spec.rb +5 -3
  267. data/spec/models/plan_county_spec.rb +5 -3
  268. data/spec/models/plan_deleted_spec.rb +243 -0
  269. data/spec/models/{plan_search_response_meta_spec.rb → plan_identifier_spec.rb} +13 -11
  270. data/spec/models/plan_medicare_bulk_spec.rb +327 -0
  271. data/spec/models/plan_medicare_spec.rb +315 -0
  272. data/spec/models/plan_pricing_medicare_spec.rb +291 -0
  273. data/spec/models/plan_search_response_spec.rb +7 -5
  274. data/spec/models/plan_show_response_spec.rb +5 -3
  275. data/spec/models/plan_spec.rb +8 -360
  276. data/spec/models/provider_details_spec.rb +11 -9
  277. data/spec/models/provider_geocode_spec.rb +5 -3
  278. data/spec/models/provider_network_event_notification_spec.rb +279 -0
  279. data/spec/models/provider_show_response_spec.rb +5 -3
  280. data/spec/models/provider_spec.rb +11 -9
  281. data/spec/models/providers_geocode_response_spec.rb +5 -3
  282. data/spec/models/providers_search_response_spec.rb +5 -3
  283. data/spec/models/rate_request_spec.rb +1089 -0
  284. data/spec/models/rate_search_spec.rb +1059 -0
  285. data/spec/models/rating_area_spec.rb +5 -3
  286. data/spec/models/request_plan_find_applicant_spec.rb +5 -3
  287. data/spec/models/request_plan_find_carrier_verification_spec.rb +339 -0
  288. data/spec/models/request_plan_find_drug_package_spec.rb +5 -3
  289. data/spec/models/request_plan_find_provider_spec.rb +5 -3
  290. data/spec/models/request_plan_find_spec.rb +17 -3
  291. data/spec/models/request_provider_notification_subscription_spec.rb +261 -0
  292. data/spec/models/request_providers_search_spec.rb +11 -3
  293. data/spec/models/request_rates_search_spec.rb +261 -0
  294. data/spec/models/response_rates_search_spec.rb +249 -0
  295. data/spec/models/rx_cui_identifier_search_response_spec.rb +255 -0
  296. data/spec/models/rx_cui_identifier_spec.rb +267 -0
  297. data/spec/models/service_area_spec.rb +5 -3
  298. data/spec/models/service_area_zip_county_spec.rb +5 -3
  299. data/spec/models/state_network_size_request_spec.rb +5 -3
  300. data/spec/models/state_network_size_response_spec.rb +5 -3
  301. data/spec/models/state_spec.rb +5 -3
  302. data/spec/models/vision_plan_benefits_spec.rb +351 -0
  303. data/spec/models/vision_plan_search_applicant_spec.rb +261 -0
  304. data/spec/models/vision_plan_search_request_spec.rb +291 -0
  305. data/spec/models/vision_plan_search_response_spec.rb +255 -0
  306. data/spec/models/vision_plan_show_response_spec.rb +249 -0
  307. data/spec/models/vision_plan_spec.rb +321 -0
  308. data/spec/models/vision_plan_update_request_spec.rb +249 -0
  309. data/spec/models/vision_plan_update_spec.rb +297 -0
  310. data/spec/models/zip_code_spec.rb +5 -3
  311. data/spec/models/zip_counties_response_spec.rb +5 -3
  312. data/spec/models/zip_county_bulk_spec.rb +5 -3
  313. data/spec/models/zip_county_response_spec.rb +5 -3
  314. data/spec/models/zip_county_spec.rb +5 -3
  315. data/spec/spec_helper.rb +5 -3
  316. data/vericred_client.gemspec +5 -3
  317. metadata +247 -16
  318. data/docs/Applicant.md +0 -14
  319. data/git_push.sh +0 -67
@@ -0,0 +1,468 @@
1
+ =begin
2
+ #Vericred API
3
+
4
+ #Vericred's API allows you to search for Health Plans that a specific doctor
5
+ accepts.
6
+
7
+ ## Getting Started
8
+
9
+ Visit our [Developer Portal](https://developers.vericred.com) to
10
+ create an account.
11
+
12
+ Once you have created an account, you can create one Application for
13
+ Production and another for our Sandbox (select the appropriate Plan when
14
+ you create the Application).
15
+
16
+ ## SDKs
17
+
18
+ Our API follows standard REST conventions, so you can use any HTTP client
19
+ to integrate with us. You will likely find it easier to use one of our
20
+ [autogenerated SDKs](https://github.com/vericred/?query=vericred-),
21
+ which we make available for several common programming languages.
22
+
23
+ ## Authentication
24
+
25
+ To authenticate, pass the API Key you created in the Developer Portal as
26
+ a `Vericred-Api-Key` header.
27
+
28
+ `curl -H 'Vericred-Api-Key: YOUR_KEY' "https://api.vericred.com/providers?search_term=Foo&zip_code=11215"`
29
+
30
+ ## Versioning
31
+
32
+ Vericred's API default to the latest version. However, if you need a specific
33
+ version, you can request it with an `Accept-Version` header.
34
+
35
+ The current version is `v3`. Previous versions are `v1` and `v2`.
36
+
37
+ `curl -H 'Vericred-Api-Key: YOUR_KEY' -H 'Accept-Version: v2' "https://api.vericred.com/providers?search_term=Foo&zip_code=11215"`
38
+
39
+ ## Pagination
40
+
41
+ Endpoints that accept `page` and `per_page` parameters are paginated. They expose
42
+ four additional fields that contain data about your position in the response,
43
+ namely `Total`, `Per-Page`, `Link`, and `Page` as described in [RFC-5988](https://tools.ietf.org/html/rfc5988).
44
+
45
+ For example, to display 5 results per page and view the second page of a
46
+ `GET` to `/networks`, your final request would be `GET /networks?....page=2&per_page=5`.
47
+
48
+ ## Sideloading
49
+
50
+ When we return multiple levels of an object graph (e.g. `Provider`s and their `State`s
51
+ we sideload the associated data. In this example, we would provide an Array of
52
+ `State`s and a `state_id` for each provider. This is done primarily to reduce the
53
+ payload size since many of the `Provider`s will share a `State`
54
+
55
+ ```
56
+ {
57
+ providers: [{ id: 1, state_id: 1}, { id: 2, state_id: 1 }],
58
+ states: [{ id: 1, code: 'NY' }]
59
+ }
60
+ ```
61
+
62
+ If you need the second level of the object graph, you can just match the
63
+ corresponding id.
64
+
65
+ ## Selecting specific data
66
+
67
+ All endpoints allow you to specify which fields you would like to return.
68
+ This allows you to limit the response to contain only the data you need.
69
+
70
+ For example, let's take a request that returns the following JSON by default
71
+
72
+ ```
73
+ {
74
+ provider: {
75
+ id: 1,
76
+ name: 'John',
77
+ phone: '1234567890',
78
+ field_we_dont_care_about: 'value_we_dont_care_about'
79
+ },
80
+ states: [{
81
+ id: 1,
82
+ name: 'New York',
83
+ code: 'NY',
84
+ field_we_dont_care_about: 'value_we_dont_care_about'
85
+ }]
86
+ }
87
+ ```
88
+
89
+ To limit our results to only return the fields we care about, we specify the
90
+ `select` query string parameter for the corresponding fields in the JSON
91
+ document.
92
+
93
+ In this case, we want to select `name` and `phone` from the `provider` key,
94
+ so we would add the parameters `select=provider.name,provider.phone`.
95
+ We also want the `name` and `code` from the `states` key, so we would
96
+ add the parameters `select=states.name,states.code`. The id field of
97
+ each document is always returned whether or not it is requested.
98
+
99
+ Our final request would be `GET /providers/12345?select=provider.name,provider.phone,states.name,states.code`
100
+
101
+ The response would be
102
+
103
+ ```
104
+ {
105
+ provider: {
106
+ id: 1,
107
+ name: 'John',
108
+ phone: '1234567890'
109
+ },
110
+ states: [{
111
+ id: 1,
112
+ name: 'New York',
113
+ code: 'NY'
114
+ }]
115
+ }
116
+ ```
117
+
118
+ ## Benefits summary format
119
+ Benefit cost-share strings are formatted to capture:
120
+ * Network tiers
121
+ * Compound or conditional cost-share
122
+ * Limits on the cost-share
123
+ * Benefit-specific maximum out-of-pocket costs
124
+
125
+ **Example #1**
126
+ As an example, we would represent [this Summary of Benefits & Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/33602TX0780032.pdf) as:
127
+
128
+ * **Hospital stay facility fees**:
129
+ - Network Provider: `$400 copay/admit plus 20% coinsurance`
130
+ - Out-of-Network Provider: `$1,500 copay/admit plus 50% coinsurance`
131
+ - Vericred's format for this benefit: `In-Network: $400 before deductible then 20% after deductible / Out-of-Network: $1,500 before deductible then 50% after deductible`
132
+
133
+ * **Rehabilitation services:**
134
+ - Network Provider: `20% coinsurance`
135
+ - Out-of-Network Provider: `50% coinsurance`
136
+ - Limitations & Exceptions: `35 visit maximum per benefit period combined with Chiropractic care.`
137
+ - Vericred's format for this benefit: `In-Network: 20% after deductible / Out-of-Network: 50% after deductible | limit: 35 visit(s) per Benefit Period`
138
+
139
+ **Example #2**
140
+ In [this other Summary of Benefits & Coverage](https://s3.amazonaws.com/vericred-data/SBC/2017/40733CA0110568.pdf), the **specialty_drugs** cost-share has a maximum out-of-pocket for in-network pharmacies.
141
+ * **Specialty drugs:**
142
+ - Network Provider: `40% coinsurance up to a $500 maximum for up to a 30 day supply`
143
+ - Out-of-Network Provider `Not covered`
144
+ - Vericred's format for this benefit: `In-Network: 40% after deductible, up to $500 per script / Out-of-Network: 100%`
145
+
146
+ **BNF**
147
+
148
+ Here's a description of the benefits summary string, represented as a context-free grammar:
149
+
150
+ ```
151
+ root ::= coverage
152
+
153
+ coverage ::= (simple_coverage | tiered_coverage) (space pipe space coverage_modifier)?
154
+ tiered_coverage ::= tier (space slash space tier)*
155
+ tier ::= tier_name colon space (tier_coverage | not_applicable)
156
+ tier_coverage ::= simple_coverage (space (then | or | and) space simple_coverage)* tier_limitation?
157
+ simple_coverage ::= (pre_coverage_limitation space)? coverage_amount (space post_coverage_limitation)? (comma? space coverage_condition)?
158
+ coverage_modifier ::= limit_condition colon space (((simple_coverage | simple_limitation) (semicolon space see_carrier_documentation)?) | see_carrier_documentation | waived_if_admitted | shared_across_tiers)
159
+ waived_if_admitted ::= ("copay" space)? "waived if admitted"
160
+ simple_limitation ::= pre_coverage_limitation space "copay applies"
161
+ tier_name ::= "In-Network-Tier-2" | "Out-of-Network" | "In-Network"
162
+ limit_condition ::= "limit" | "condition"
163
+ tier_limitation ::= comma space "up to" space (currency | (integer space time_unit plural?)) (space post_coverage_limitation)?
164
+ coverage_amount ::= currency | unlimited | included | unknown | percentage | (digits space (treatment_unit | time_unit) plural?)
165
+ pre_coverage_limitation ::= first space digits space time_unit plural?
166
+ post_coverage_limitation ::= (((then space currency) | "per condition") space)? "per" space (treatment_unit | (integer space time_unit) | time_unit) plural?
167
+ coverage_condition ::= ("before deductible" | "after deductible" | "penalty" | allowance | "in-state" | "out-of-state") (space allowance)?
168
+ allowance ::= upto_allowance | after_allowance
169
+ upto_allowance ::= "up to" space (currency space)? "allowance"
170
+ after_allowance ::= "after" space (currency space)? "allowance"
171
+ see_carrier_documentation ::= "see carrier documentation for more information"
172
+ shared_across_tiers ::= "shared across all tiers"
173
+ unknown ::= "unknown"
174
+ unlimited ::= /[uU]nlimited/
175
+ included ::= /[iI]ncluded in [mM]edical/
176
+ time_unit ::= /[hH]our/ | (((/[cC]alendar/ | /[cC]ontract/) space)? /[yY]ear/) | /[mM]onth/ | /[dD]ay/ | /[wW]eek/ | /[vV]isit/ | /[lL]ifetime/ | ((((/[bB]enefit/ plural?) | /[eE]ligibility/) space)? /[pP]eriod/)
177
+ treatment_unit ::= /[pP]erson/ | /[gG]roup/ | /[cC]ondition/ | /[sS]cript/ | /[vV]isit/ | /[eE]xam/ | /[iI]tem/ | /[sS]tay/ | /[tT]reatment/ | /[aA]dmission/ | /[eE]pisode/
178
+ comma ::= ","
179
+ colon ::= ":"
180
+ semicolon ::= ";"
181
+ pipe ::= "|"
182
+ slash ::= "/"
183
+ plural ::= "(s)" | "s"
184
+ then ::= "then" | ("," space) | space
185
+ or ::= "or"
186
+ and ::= "and"
187
+ not_applicable ::= "Not Applicable" | "N/A" | "NA"
188
+ first ::= "first"
189
+ currency ::= "$" number
190
+ percentage ::= number "%"
191
+ number ::= float | integer
192
+ float ::= digits "." digits
193
+ integer ::= /[0-9]/+ (comma_int | under_int)*
194
+ comma_int ::= ("," /[0-9]/*3) !"_"
195
+ under_int ::= ("_" /[0-9]/*3) !","
196
+ digits ::= /[0-9]/+ ("_" /[0-9]/+)*
197
+ space ::= /[ \t]/+
198
+ ```
199
+
200
+
201
+
202
+ OpenAPI spec version: 1.0.0
203
+
204
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
205
+
206
+ Licensed under the Apache License, Version 2.0 (the "License");
207
+ you may not use this file except in compliance with the License.
208
+ You may obtain a copy of the License at
209
+
210
+ http://www.apache.org/licenses/LICENSE-2.0
211
+
212
+ Unless required by applicable law or agreed to in writing, software
213
+ distributed under the License is distributed on an "AS IS" BASIS,
214
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
215
+ See the License for the specific language governing permissions and
216
+ limitations under the License.
217
+
218
+ =end
219
+
220
+ require 'date'
221
+
222
+ module VericredClient
223
+
224
+ class DentalPlanSearchRequest
225
+ # Applicants for desired plans.
226
+ attr_accessor :applicants
227
+
228
+ # National-level issuer id
229
+ attr_accessor :issuer_id
230
+
231
+ # Date of enrollment
232
+ attr_accessor :enrollment_date
233
+
234
+ # County code to determine eligibility
235
+ attr_accessor :fips_code
236
+
237
+ # 5-digit zip code - this helps determine pricing.
238
+ attr_accessor :zip_code
239
+
240
+ # The audience of plan to search for. Possible values are individual, shop, small_group, medicare_advantage
241
+ attr_accessor :market
242
+
243
+ # Selected page of paginated response.
244
+ attr_accessor :page
245
+
246
+ # Results per page of response.
247
+ attr_accessor :per_page
248
+
249
+
250
+ # Attribute mapping from ruby-style variable name to JSON key.
251
+ def self.attribute_map
252
+ {
253
+ :'applicants' => :'applicants',
254
+ :'issuer_id' => :'issuer_id',
255
+ :'enrollment_date' => :'enrollment_date',
256
+ :'fips_code' => :'fips_code',
257
+ :'zip_code' => :'zip_code',
258
+ :'market' => :'market',
259
+ :'page' => :'page',
260
+ :'per_page' => :'per_page'
261
+ }
262
+ end
263
+
264
+ # Attribute type mapping.
265
+ def self.swagger_types
266
+ {
267
+ :'applicants' => :'Array<DentalPlanSearchApplicant>',
268
+ :'issuer_id' => :'Integer',
269
+ :'enrollment_date' => :'String',
270
+ :'fips_code' => :'String',
271
+ :'zip_code' => :'String',
272
+ :'market' => :'String',
273
+ :'page' => :'Integer',
274
+ :'per_page' => :'Integer'
275
+ }
276
+ end
277
+
278
+ # Initializes the object
279
+ # @param [Hash] attributes Model attributes in the form of hash
280
+ def initialize(attributes = {})
281
+ return unless attributes.is_a?(Hash)
282
+
283
+ # convert string to symbol for hash key
284
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
285
+
286
+ if attributes.has_key?(:'applicants')
287
+ if (value = attributes[:'applicants']).is_a?(Array)
288
+ self.applicants = value
289
+ end
290
+ end
291
+
292
+ if attributes.has_key?(:'issuer_id')
293
+ self.issuer_id = attributes[:'issuer_id']
294
+ end
295
+
296
+ if attributes.has_key?(:'enrollment_date')
297
+ self.enrollment_date = attributes[:'enrollment_date']
298
+ end
299
+
300
+ if attributes.has_key?(:'fips_code')
301
+ self.fips_code = attributes[:'fips_code']
302
+ end
303
+
304
+ if attributes.has_key?(:'zip_code')
305
+ self.zip_code = attributes[:'zip_code']
306
+ end
307
+
308
+ if attributes.has_key?(:'market')
309
+ self.market = attributes[:'market']
310
+ end
311
+
312
+ if attributes.has_key?(:'page')
313
+ self.page = attributes[:'page']
314
+ end
315
+
316
+ if attributes.has_key?(:'per_page')
317
+ self.per_page = attributes[:'per_page']
318
+ end
319
+
320
+ end
321
+
322
+ # Show invalid properties with the reasons. Usually used together with valid?
323
+ # @return Array for valid properies with the reasons
324
+ def list_invalid_properties
325
+ invalid_properties = Array.new
326
+ return invalid_properties
327
+ end
328
+
329
+ # Check to see if the all the properties in the model are valid
330
+ # @return true if the model is valid
331
+ def valid?
332
+ return true
333
+ end
334
+
335
+ # Checks equality by comparing each attribute.
336
+ # @param [Object] Object to be compared
337
+ def ==(o)
338
+ return true if self.equal?(o)
339
+ self.class == o.class &&
340
+ applicants == o.applicants &&
341
+ issuer_id == o.issuer_id &&
342
+ enrollment_date == o.enrollment_date &&
343
+ fips_code == o.fips_code &&
344
+ zip_code == o.zip_code &&
345
+ market == o.market &&
346
+ page == o.page &&
347
+ per_page == o.per_page
348
+ end
349
+
350
+ # @see the `==` method
351
+ # @param [Object] Object to be compared
352
+ def eql?(o)
353
+ self == o
354
+ end
355
+
356
+ # Calculates hash code according to all attributes.
357
+ # @return [Fixnum] Hash code
358
+ def hash
359
+ [applicants, issuer_id, enrollment_date, fips_code, zip_code, market, page, per_page].hash
360
+ end
361
+
362
+ # Builds the object from hash
363
+ # @param [Hash] attributes Model attributes in the form of hash
364
+ # @return [Object] Returns the model itself
365
+ def build_from_hash(attributes)
366
+ return nil unless attributes.is_a?(Hash)
367
+ self.class.swagger_types.each_pair do |key, type|
368
+ if type =~ /\AArray<(.*)>/i
369
+ # check to ensure the input is an array given that the the attribute
370
+ # is documented as an array but the input is not
371
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
372
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
373
+ end
374
+ elsif !attributes[self.class.attribute_map[key]].nil?
375
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
376
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
377
+ end
378
+
379
+ self
380
+ end
381
+
382
+ # Deserializes the data based on type
383
+ # @param string type Data type
384
+ # @param string value Value to be deserialized
385
+ # @return [Object] Deserialized data
386
+ def _deserialize(type, value)
387
+ case type.to_sym
388
+ when :DateTime
389
+ DateTime.parse(value)
390
+ when :Date
391
+ Date.parse(value)
392
+ when :String
393
+ value.to_s
394
+ when :Integer
395
+ value.to_i
396
+ when :Float
397
+ value.to_f
398
+ when :BOOLEAN
399
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
400
+ true
401
+ else
402
+ false
403
+ end
404
+ when :Object
405
+ # generic object (usually a Hash), return directly
406
+ value
407
+ when /\AArray<(?<inner_type>.+)>\z/
408
+ inner_type = Regexp.last_match[:inner_type]
409
+ value.map { |v| _deserialize(inner_type, v) }
410
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
411
+ k_type = Regexp.last_match[:k_type]
412
+ v_type = Regexp.last_match[:v_type]
413
+ {}.tap do |hash|
414
+ value.each do |k, v|
415
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
416
+ end
417
+ end
418
+ else # model
419
+ temp_model = VericredClient.const_get(type).new
420
+ temp_model.build_from_hash(value)
421
+ end
422
+ end
423
+
424
+ # Returns the string representation of the object
425
+ # @return [String] String presentation of the object
426
+ def to_s
427
+ to_hash.to_s
428
+ end
429
+
430
+ # to_body is an alias to to_hash (backward compatibility)
431
+ # @return [Hash] Returns the object in the form of hash
432
+ def to_body
433
+ to_hash
434
+ end
435
+
436
+ # Returns the object in the form of hash
437
+ # @return [Hash] Returns the object in the form of hash
438
+ def to_hash
439
+ hash = {}
440
+ self.class.attribute_map.each_pair do |attr, param|
441
+ value = self.send(attr)
442
+ next if value.nil?
443
+ hash[param] = _to_hash(value)
444
+ end
445
+ hash
446
+ end
447
+
448
+ # Outputs non-array value in the form of hash
449
+ # For object, use to_hash. Otherwise, just return the value
450
+ # @param [Object] value Any valid value
451
+ # @return [Hash] Returns the value in the form of hash
452
+ def _to_hash(value)
453
+ if value.is_a?(Array)
454
+ value.compact.map{ |v| _to_hash(v) }
455
+ elsif value.is_a?(Hash)
456
+ {}.tap do |hash|
457
+ value.each { |k, v| hash[k] = _to_hash(v) }
458
+ end
459
+ elsif value.respond_to? :to_hash
460
+ value.to_hash
461
+ else
462
+ value
463
+ end
464
+ end
465
+
466
+ end
467
+
468
+ end