vericred_client 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +31 -18
  3. data/docs/Applicant.md +3 -3
  4. data/docs/Carrier.md +1 -1
  5. data/docs/County.md +3 -3
  6. data/docs/Drug.md +3 -3
  7. data/docs/DrugCoverage.md +4 -4
  8. data/docs/DrugCoverageResponse.md +3 -1
  9. data/docs/DrugPackage.md +1 -1
  10. data/docs/DrugSearchResponse.md +2 -1
  11. data/docs/DrugsApi.md +71 -10
  12. data/docs/Meta.md +1 -1
  13. data/docs/Network.md +9 -0
  14. data/docs/NetworkSearchResponse.md +9 -0
  15. data/docs/NetworksApi.md +58 -0
  16. data/docs/Plan.md +10 -10
  17. data/docs/PlanCounty.md +1 -1
  18. data/docs/PlanCountyBulk.md +1 -1
  19. data/docs/{PlanFindResponse.md → PlanSearchResponse.md} +2 -1
  20. data/docs/PlanSearchResult.md +14 -14
  21. data/docs/PlansApi.md +69 -6
  22. data/docs/Provider.md +7 -6
  23. data/docs/ProvidersApi.md +39 -30
  24. data/docs/{ProviderResponse.md → ProvidersSearchResponse.md} +1 -1
  25. data/docs/RequestPlanFind.md +3 -2
  26. data/docs/RequestPlanFindApplicant.md +8 -0
  27. data/docs/RequestPlanFindProvider.md +8 -0
  28. data/docs/RequestProvidersSearch.md +17 -0
  29. data/docs/State.md +4 -4
  30. data/docs/ZipCountiesApi.md +11 -4
  31. data/docs/ZipCountiesResponse.md +11 -0
  32. data/docs/ZipCountyBulk.md +1 -1
  33. data/docs/ZipCountyResponse.md +2 -1
  34. data/lib/vericred_client/api/drugs_api.rb +86 -14
  35. data/lib/vericred_client/api/networks_api.rb +198 -0
  36. data/lib/vericred_client/api/plans_api.rb +134 -14
  37. data/lib/vericred_client/api/providers_api.rb +65 -59
  38. data/lib/vericred_client/api/zip_counties_api.rb +8 -5
  39. data/lib/vericred_client/api_client.rb +1 -1
  40. data/lib/vericred_client/api_error.rb +1 -1
  41. data/lib/vericred_client/models/applicant.rb +13 -15
  42. data/lib/vericred_client/models/base.rb +1 -1
  43. data/lib/vericred_client/models/carrier.rb +15 -15
  44. data/lib/vericred_client/models/carrier_subsidiary.rb +1 -1
  45. data/lib/vericred_client/models/county.rb +12 -16
  46. data/lib/vericred_client/models/county_bulk.rb +1 -1
  47. data/lib/vericred_client/models/drug.rb +26 -26
  48. data/lib/vericred_client/models/drug_coverage.rb +32 -38
  49. data/lib/vericred_client/models/drug_coverage_response.rb +40 -16
  50. data/lib/vericred_client/models/drug_package.rb +15 -15
  51. data/lib/vericred_client/models/drug_search_response.rb +21 -9
  52. data/lib/vericred_client/models/meta.rb +8 -8
  53. data/lib/vericred_client/models/network.rb +308 -0
  54. data/lib/vericred_client/models/{plan_find_response.rb → network_search_response.rb} +11 -11
  55. data/lib/vericred_client/models/plan.rb +62 -72
  56. data/lib/vericred_client/models/plan_county.rb +15 -15
  57. data/lib/vericred_client/models/plan_county_bulk.rb +15 -15
  58. data/lib/vericred_client/models/plan_search_response.rb +322 -0
  59. data/lib/vericred_client/models/plan_search_result.rb +102 -112
  60. data/lib/vericred_client/models/pricing.rb +1 -1
  61. data/lib/vericred_client/models/provider.rb +24 -22
  62. data/lib/vericred_client/models/{provider_response.rb → providers_search_response.rb} +2 -2
  63. data/lib/vericred_client/models/rating_area.rb +1 -1
  64. data/lib/vericred_client/models/request_plan_find.rb +16 -4
  65. data/lib/vericred_client/models/request_plan_find_applicant.rb +298 -0
  66. data/lib/vericred_client/models/request_plan_find_provider.rb +298 -0
  67. data/lib/vericred_client/models/request_providers_search.rb +372 -0
  68. data/lib/vericred_client/models/state.rb +25 -29
  69. data/lib/vericred_client/models/zip_code.rb +1 -1
  70. data/lib/vericred_client/models/zip_counties_response.rb +336 -0
  71. data/lib/vericred_client/models/zip_county.rb +1 -1
  72. data/lib/vericred_client/models/zip_county_bulk.rb +12 -12
  73. data/lib/vericred_client/models/zip_county_response.rb +21 -11
  74. data/lib/vericred_client/version.rb +2 -2
  75. data/lib/vericred_client.rb +10 -3
  76. data/spec/api/drugs_api_spec.rb +26 -5
  77. data/spec/api/networks_api_spec.rb +166 -0
  78. data/spec/api/plans_api_spec.rb +66 -6
  79. data/spec/api/providers_api_spec.rb +27 -19
  80. data/spec/api/zip_counties_api_spec.rb +4 -3
  81. metadata +22 -6
@@ -0,0 +1,198 @@
1
+ =begin
2
+ Vericred API
3
+
4
+ Vericred's API allows you to search for Health Plans that a specific doctor
5
+ accepts.
6
+
7
+ ## Getting Started
8
+
9
+ Visit our [Developer Portal](https://vericred.3scale.net) to
10
+ create an account.
11
+
12
+ Once you have created an account, you can create one Application for
13
+ Production and another for our Sandbox (select the appropriate Plan when
14
+ you create the Application).
15
+
16
+ ## Authentication
17
+
18
+ To authenticate, pass the API Key you created in the Developer Portal as
19
+ a `Vericred-Api-Key` header.
20
+
21
+ `curl -H 'Vericred-Api-Key: YOUR_KEY' "https://api.vericred.com/providers?search_term=Foo&zip_code=11215"`
22
+
23
+ ## Versioning
24
+
25
+ Vericred's API default to the latest version. However, if you need a specific
26
+ version, you can request it with an `Accept-Version` header.
27
+
28
+ The current version is `v3`. Previous versions are `v1` and `v2`.
29
+
30
+ `curl -H 'Vericred-Api-Key: YOUR_KEY' -H 'Accept-Version: v2' "https://api.vericred.com/providers?search_term=Foo&zip_code=11215"`
31
+
32
+ ## Pagination
33
+
34
+ Most endpoints are not paginated. It will be noted in the documentation if/when
35
+ an endpoint is paginated.
36
+
37
+ When pagination is present, a `meta` stanza will be present in the response
38
+ with the total number of records
39
+
40
+ ```
41
+ {
42
+ things: [{ id: 1 }, { id: 2 }],
43
+ meta: { total: 500 }
44
+ }
45
+ ```
46
+
47
+ ## Sideloading
48
+
49
+ When we return multiple levels of an object graph (e.g. `Provider`s and their `State`s
50
+ we sideload the associated data. In this example, we would provide an Array of
51
+ `State`s and a `state_id` for each provider. This is done primarily to reduce the
52
+ payload size since many of the `Provider`s will share a `State`
53
+
54
+ ```
55
+ {
56
+ providers: [{ id: 1, state_id: 1}, { id: 2, state_id: 1 }],
57
+ states: [{ id: 1, code: 'NY' }]
58
+ }
59
+ ```
60
+
61
+ If you need the second level of the object graph, you can just match the
62
+ corresponding id.
63
+
64
+ ## Selecting specific data
65
+
66
+ All endpoints allow you to specify which fields you would like to return.
67
+ This allows you to limit the response to contain only the data you need.
68
+
69
+ For example, let's take a request that returns the following JSON by default
70
+
71
+ ```
72
+ {
73
+ provider: {
74
+ id: 1,
75
+ name: 'John',
76
+ phone: '1234567890',
77
+ field_we_dont_care_about: 'value_we_dont_care_about'
78
+ },
79
+ states: [{
80
+ id: 1,
81
+ name: 'New York',
82
+ code: 'NY',
83
+ field_we_dont_care_about: 'value_we_dont_care_about'
84
+ }]
85
+ }
86
+ ```
87
+
88
+ To limit our results to only return the fields we care about, we specify the
89
+ `select` query string parameter for the corresponding fields in the JSON
90
+ document.
91
+
92
+ In this case, we want to select `name` and `phone` from the `provider` key,
93
+ so we would add the parameters `select=provider.name,provider.phone`.
94
+ We also want the `name` and `code` from the `states` key, so we would
95
+ add the parameters `select=states.name,staes.code`. The id field of
96
+ each document is always returned whether or not it is requested.
97
+
98
+ Our final request would be `GET /providers/12345?select=provider.name,provider.phone,states.name,states.code`
99
+
100
+ The response would be
101
+
102
+ ```
103
+ {
104
+ provider: {
105
+ id: 1,
106
+ name: 'John',
107
+ phone: '1234567890'
108
+ },
109
+ states: [{
110
+ id: 1,
111
+ name: 'New York',
112
+ code: 'NY'
113
+ }]
114
+ }
115
+ ```
116
+
117
+
118
+
119
+ OpenAPI spec version: 1.0.0
120
+
121
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
122
+
123
+
124
+ =end
125
+
126
+ require "uri"
127
+
128
+ module VericredClient
129
+ class NetworksApi
130
+ attr_accessor :api_client
131
+
132
+ def initialize(api_client = ApiClient.default)
133
+ @api_client = api_client
134
+ end
135
+
136
+ # Networks
137
+ # A network is a list of the doctors, other health care providers,
138
+ and hospitals that a plan has contracted with to provide medical care to
139
+ its members.
140
+ # @param carrier_id Carrier HIOS Issuer ID
141
+ # @param [Hash] opts the optional parameters
142
+ # @return [NetworkSearchResponse]
143
+ def list_networks(carrier_id, opts = {})
144
+ data, _status_code, _headers = list_networks_with_http_info(carrier_id, opts)
145
+ return data
146
+ end
147
+
148
+ # Networks
149
+ # A network is a list of the doctors, other health care providers,
150
+ and hospitals that a plan has contracted with to provide medical care to
151
+ its members.
152
+ # @param carrier_id Carrier HIOS Issuer ID
153
+ # @param [Hash] opts the optional parameters
154
+ # @return [Array<(NetworkSearchResponse, Fixnum, Hash)>] NetworkSearchResponse data, response status code and response headers
155
+ def list_networks_with_http_info(carrier_id, opts = {})
156
+ if @api_client.config.debugging
157
+ @api_client.config.logger.debug "Calling API: NetworksApi.list_networks ..."
158
+ end
159
+ # verify the required parameter 'carrier_id' is set
160
+ fail ArgumentError, "Missing the required parameter 'carrier_id' when calling NetworksApi.list_networks" if carrier_id.nil?
161
+ # resource path
162
+ local_var_path = "/networks".sub('{format}','json')
163
+
164
+ # query parameters
165
+ query_params = {}
166
+ query_params[:'carrier_id'] = carrier_id
167
+
168
+ # header parameters
169
+ header_params = {}
170
+
171
+ # HTTP header 'Accept' (if needed)
172
+ local_header_accept = ['application/json']
173
+ local_header_accept_result = @api_client.select_header_accept(local_header_accept) and header_params['Accept'] = local_header_accept_result
174
+
175
+ # HTTP header 'Content-Type'
176
+ local_header_content_type = ['application/json']
177
+ header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)
178
+
179
+ # form parameters
180
+ form_params = {}
181
+
182
+ # http body (model)
183
+ post_body = nil
184
+ auth_names = []
185
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
186
+ :header_params => header_params,
187
+ :query_params => query_params,
188
+ :form_params => form_params,
189
+ :body => post_body,
190
+ :auth_names => auth_names,
191
+ :return_type => 'NetworkSearchResponse')
192
+ if @api_client.config.debugging
193
+ @api_client.config.logger.debug "API called: NetworksApi#list_networks\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
194
+ end
195
+ return data, status_code, headers
196
+ end
197
+ end
198
+ end
@@ -6,7 +6,7 @@ accepts.
6
6
 
7
7
  ## Getting Started
8
8
 
9
- Visit our [Developer Portal](https://vericred.3scale.net/access_code?access_code=vericred&cms_token=3545ca52af07bde85b7c0c3aa9d1985e) to
9
+ Visit our [Developer Portal](https://vericred.3scale.net) to
10
10
  create an account.
11
11
 
12
12
  Once you have created an account, you can create one Application for
@@ -133,27 +133,147 @@ module VericredClient
133
133
  @api_client = api_client
134
134
  end
135
135
 
136
- #
137
- #
136
+ # Find Plans
137
+ # ### Location Information
138
+
139
+ Searching for a set of plans requires a `zip_code` and `fips_code`
140
+ code. These are used to determine pricing and availabity
141
+ of health plans.
142
+
143
+ Optionally, you may provide a list of Applicants or Providers
144
+
145
+ ### Applicants
146
+
147
+ This is a list of people who will be covered by the plan. We
148
+ use this list to calculate the premium. You must include `age`
149
+ and can include `smoker`, which also factors into pricing in some
150
+ states.
151
+
152
+ Applicants *must* include an age. If smoker is omitted, its value is assumed
153
+ to be false.
154
+
155
+ #### Multiple Applicants
156
+ To get pricing for multiple applicants, just append multiple sets
157
+ of data to the URL with the age and smoking status of each applicant
158
+ next to each other.
159
+
160
+ For example, given two applicants - one age 32 and a non-smoker and one
161
+ age 29 and a smoker, you could use the following request
162
+
163
+ `GET /plans?zip_code=07451&fips_code=33025&applicants[][age]=32&applicants[][age]=29&applicants[][smoker]=true`
164
+
165
+ It would also be acceptible to include `applicants[][smoker]=false` after the
166
+ first applicant's age.
167
+
168
+ ### Providers
169
+
170
+ We identify Providers (Doctors) by their National Practitioner
171
+ Index number (NPI). If you pass a list of Providers, keyed by
172
+ their NPI number, we will return a list of which Providers are
173
+ in and out of network for each plan returned.
174
+
175
+ For example, if we had two providers with the NPI numbers `12345` and `23456`
176
+ you would make the following request
177
+
178
+ `GET /plans?zip_code=07451&fips_code=33025&providers[][npi]=12345&providers[][npi]=23456`
179
+
180
+ ### Enrollment Date
181
+
182
+ To calculate plan pricing and availability, we default to the current date
183
+ as the enrollment date. To specify a date in the future (or the past), pass
184
+ a string with the format `YYYY-MM-DD` in the `enrollment_date` parameter.
185
+
186
+ `GET /plans?zip_code=07451&fips_code=33025&enrollment_date=2016-01-01`
187
+
188
+ ### Subsidy
189
+
190
+ On-marketplace plans are eligible for a subsidy based on the
191
+ `household_size` and `household_income` of the applicants. If you
192
+ pass those values, we will calculate the `subsidized_premium`
193
+ and return it for each plan. If no values are provided, the
194
+ `subsidized_premium` will be the same as the `premium`
195
+
196
+ `GET /plans?zip_code=07451&fips_code=33025&household_size=4&household_income=40000`
197
+
138
198
  # @param [Hash] opts the optional parameters
139
199
  # @option opts [RequestPlanFind] :body
140
- # @return [PlanFindResponse]
141
- def post_plans_find(opts = {})
142
- data, _status_code, _headers = post_plans_find_with_http_info(opts)
200
+ # @return [PlanSearchResponse]
201
+ def find_plans(opts = {})
202
+ data, _status_code, _headers = find_plans_with_http_info(opts)
143
203
  return data
144
204
  end
145
205
 
146
- #
147
- #
206
+ # Find Plans
207
+ # ### Location Information
208
+
209
+ Searching for a set of plans requires a &#x60;zip_code&#x60; and &#x60;fips_code&#x60;
210
+ code. These are used to determine pricing and availabity
211
+ of health plans.
212
+
213
+ Optionally, you may provide a list of Applicants or Providers
214
+
215
+ ### Applicants
216
+
217
+ This is a list of people who will be covered by the plan. We
218
+ use this list to calculate the premium. You must include &#x60;age&#x60;
219
+ and can include &#x60;smoker&#x60;, which also factors into pricing in some
220
+ states.
221
+
222
+ Applicants *must* include an age. If smoker is omitted, its value is assumed
223
+ to be false.
224
+
225
+ #### Multiple Applicants
226
+ To get pricing for multiple applicants, just append multiple sets
227
+ of data to the URL with the age and smoking status of each applicant
228
+ next to each other.
229
+
230
+ For example, given two applicants - one age 32 and a non-smoker and one
231
+ age 29 and a smoker, you could use the following request
232
+
233
+ &#x60;GET /plans?zip_code&#x3D;07451&amp;fips_code&#x3D;33025&amp;applicants[][age]&#x3D;32&amp;applicants[][age]&#x3D;29&amp;applicants[][smoker]&#x3D;true&#x60;
234
+
235
+ It would also be acceptible to include &#x60;applicants[][smoker]&#x3D;false&#x60; after the
236
+ first applicant&#39;s age.
237
+
238
+ ### Providers
239
+
240
+ We identify Providers (Doctors) by their National Practitioner
241
+ Index number (NPI). If you pass a list of Providers, keyed by
242
+ their NPI number, we will return a list of which Providers are
243
+ in and out of network for each plan returned.
244
+
245
+ For example, if we had two providers with the NPI numbers &#x60;12345&#x60; and &#x60;23456&#x60;
246
+ you would make the following request
247
+
248
+ &#x60;GET /plans?zip_code&#x3D;07451&amp;fips_code&#x3D;33025&amp;providers[][npi]&#x3D;12345&amp;providers[][npi]&#x3D;23456&#x60;
249
+
250
+ ### Enrollment Date
251
+
252
+ To calculate plan pricing and availability, we default to the current date
253
+ as the enrollment date. To specify a date in the future (or the past), pass
254
+ a string with the format &#x60;YYYY-MM-DD&#x60; in the &#x60;enrollment_date&#x60; parameter.
255
+
256
+ &#x60;GET /plans?zip_code&#x3D;07451&amp;fips_code&#x3D;33025&amp;enrollment_date&#x3D;2016-01-01&#x60;
257
+
258
+ ### Subsidy
259
+
260
+ On-marketplace plans are eligible for a subsidy based on the
261
+ &#x60;household_size&#x60; and &#x60;household_income&#x60; of the applicants. If you
262
+ pass those values, we will calculate the &#x60;subsidized_premium&#x60;
263
+ and return it for each plan. If no values are provided, the
264
+ &#x60;subsidized_premium&#x60; will be the same as the &#x60;premium&#x60;
265
+
266
+ &#x60;GET /plans?zip_code&#x3D;07451&amp;fips_code&#x3D;33025&amp;household_size&#x3D;4&amp;household_income&#x3D;40000&#x60;
267
+
148
268
  # @param [Hash] opts the optional parameters
149
269
  # @option opts [RequestPlanFind] :body
150
- # @return [Array<(PlanFindResponse, Fixnum, Hash)>] PlanFindResponse data, response status code and response headers
151
- def post_plans_find_with_http_info(opts = {})
270
+ # @return [Array<(PlanSearchResponse, Fixnum, Hash)>] PlanSearchResponse data, response status code and response headers
271
+ def find_plans_with_http_info(opts = {})
152
272
  if @api_client.config.debugging
153
- @api_client.config.logger.debug "Calling API: PlansApi.post_plans_find ..."
273
+ @api_client.config.logger.debug "Calling API: PlansApi.find_plans ..."
154
274
  end
155
275
  # resource path
156
- local_var_path = "/plans/find".sub('{format}','json')
276
+ local_var_path = "/plans/search".sub('{format}','json')
157
277
 
158
278
  # query parameters
159
279
  query_params = {}
@@ -181,9 +301,9 @@ module VericredClient
181
301
  :form_params => form_params,
182
302
  :body => post_body,
183
303
  :auth_names => auth_names,
184
- :return_type => 'PlanFindResponse')
304
+ :return_type => 'PlanSearchResponse')
185
305
  if @api_client.config.debugging
186
- @api_client.config.logger.debug "API called: PlansApi#post_plans_find\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
306
+ @api_client.config.logger.debug "API called: PlansApi#find_plans\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
187
307
  end
188
308
  return data, status_code, headers
189
309
  end
@@ -6,7 +6,7 @@ accepts.
6
6
 
7
7
  ## Getting Started
8
8
 
9
- Visit our [Developer Portal](https://vericred.3scale.net/access_code?access_code=vericred&cms_token=3545ca52af07bde85b7c0c3aa9d1985e) to
9
+ Visit our [Developer Portal](https://vericred.3scale.net) to
10
10
  create an account.
11
11
 
12
12
  Once you have created an account, you can create one Application for
@@ -133,53 +133,34 @@ module VericredClient
133
133
  @api_client = api_client
134
134
  end
135
135
 
136
- #
137
- #
138
- # @param search_term String to search by
139
- # @param zip_code Zip Code to search near
136
+ # Find a Provider
137
+ # To retrieve a specific provider, just perform a GET using his NPI number
138
+ # @param npi NPI number
140
139
  # @param [Hash] opts the optional parameters
141
- # @option opts [String] :accepts_insurance Limit results to Providers who accept at least one insurance plan. Note that the inverse of this filter is not supported and any value will evaluate to true
142
- # @option opts [String] :page Page number
143
- # @option opts [String] :per_page Number of records to return per page
144
- # @option opts [String] :radius Radius (in miles) to use to limit results
145
- # @option opts [String] :type Either organization or individual
146
- # @return [ProviderResponse]
147
- def get_providers(search_term, zip_code, opts = {})
148
- data, _status_code, _headers = get_providers_with_http_info(search_term, zip_code, opts)
140
+ # @option opts [String] :vericred_api_key API Key
141
+ # @return [Provider]
142
+ def get_provider(npi, opts = {})
143
+ data, _status_code, _headers = get_provider_with_http_info(npi, opts)
149
144
  return data
150
145
  end
151
146
 
152
- #
153
- #
154
- # @param search_term String to search by
155
- # @param zip_code Zip Code to search near
147
+ # Find a Provider
148
+ # To retrieve a specific provider, just perform a GET using his NPI number
149
+ # @param npi NPI number
156
150
  # @param [Hash] opts the optional parameters
157
- # @option opts [String] :accepts_insurance Limit results to Providers who accept at least one insurance plan. Note that the inverse of this filter is not supported and any value will evaluate to true
158
- # @option opts [String] :page Page number
159
- # @option opts [String] :per_page Number of records to return per page
160
- # @option opts [String] :radius Radius (in miles) to use to limit results
161
- # @option opts [String] :type Either organization or individual
162
- # @return [Array<(ProviderResponse, Fixnum, Hash)>] ProviderResponse data, response status code and response headers
163
- def get_providers_with_http_info(search_term, zip_code, opts = {})
151
+ # @option opts [String] :vericred_api_key API Key
152
+ # @return [Array<(Provider, Fixnum, Hash)>] Provider data, response status code and response headers
153
+ def get_provider_with_http_info(npi, opts = {})
164
154
  if @api_client.config.debugging
165
- @api_client.config.logger.debug "Calling API: ProvidersApi.get_providers ..."
155
+ @api_client.config.logger.debug "Calling API: ProvidersApi.get_provider ..."
166
156
  end
167
- # verify the required parameter 'search_term' is set
168
- fail ArgumentError, "Missing the required parameter 'search_term' when calling ProvidersApi.get_providers" if search_term.nil?
169
- # verify the required parameter 'zip_code' is set
170
- fail ArgumentError, "Missing the required parameter 'zip_code' when calling ProvidersApi.get_providers" if zip_code.nil?
157
+ # verify the required parameter 'npi' is set
158
+ fail ArgumentError, "Missing the required parameter 'npi' when calling ProvidersApi.get_provider" if npi.nil?
171
159
  # resource path
172
- local_var_path = "/providers".sub('{format}','json')
160
+ local_var_path = "/providers/{npi}".sub('{format}','json').sub('{' + 'npi' + '}', npi.to_s)
173
161
 
174
162
  # query parameters
175
163
  query_params = {}
176
- query_params[:'search_term'] = search_term
177
- query_params[:'zip_code'] = zip_code
178
- query_params[:'accepts_insurance'] = opts[:'accepts_insurance'] if opts[:'accepts_insurance']
179
- query_params[:'page'] = opts[:'page'] if opts[:'page']
180
- query_params[:'per_page'] = opts[:'per_page'] if opts[:'per_page']
181
- query_params[:'radius'] = opts[:'radius'] if opts[:'radius']
182
- query_params[:'type'] = opts[:'type'] if opts[:'type']
183
164
 
184
165
  # header parameters
185
166
  header_params = {}
@@ -191,6 +172,7 @@ module VericredClient
191
172
  # HTTP header 'Content-Type'
192
173
  local_header_content_type = []
193
174
  header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)
175
+ header_params[:'Vericred-Api-Key'] = opts[:'vericred_api_key'] if opts[:'vericred_api_key']
194
176
 
195
177
  # form parameters
196
178
  form_params = {}
@@ -204,36 +186,60 @@ module VericredClient
204
186
  :form_params => form_params,
205
187
  :body => post_body,
206
188
  :auth_names => auth_names,
207
- :return_type => 'ProviderResponse')
189
+ :return_type => 'Provider')
208
190
  if @api_client.config.debugging
209
- @api_client.config.logger.debug "API called: ProvidersApi#get_providers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
191
+ @api_client.config.logger.debug "API called: ProvidersApi#get_provider\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
210
192
  end
211
193
  return data, status_code, headers
212
194
  end
213
195
 
214
- #
215
- #
216
- # @param npi NPI number
196
+ # Find Providers
197
+ # All `Provider` searches require a `zip_code`, which we use for weighting
198
+ the search results to favor `Provider`s that are near the user. For example,
199
+ we would want "Dr. John Smith" who is 5 miles away to appear before
200
+ "Dr. John Smith" who is 100 miles away.
201
+
202
+ The weighting also allows for non-exact matches. In our prior example, we
203
+ would want "Dr. Jon Smith" who is 2 miles away to appear before the exact
204
+ match "Dr. John Smith" who is 100 miles away because it is more likely that
205
+ the user just entered an incorrect name.
206
+
207
+ The free text search also supports Specialty name search and "body part"
208
+ Specialty name search. So, searching "John Smith nose" would return
209
+ "Dr. John Smith", the ENT Specialist before "Dr. John Smith" the Internist.
210
+
217
211
  # @param [Hash] opts the optional parameters
218
- # @return [ProviderResponse]
219
- def get_providers_npi(npi, opts = {})
220
- data, _status_code, _headers = get_providers_npi_with_http_info(npi, opts)
212
+ # @option opts [RequestProvidersSearch] :body
213
+ # @return [ProvidersSearchResponse]
214
+ def get_providers(opts = {})
215
+ data, _status_code, _headers = get_providers_with_http_info(opts)
221
216
  return data
222
217
  end
223
218
 
224
- #
225
- #
226
- # @param npi NPI number
219
+ # Find Providers
220
+ # All &#x60;Provider&#x60; searches require a &#x60;zip_code&#x60;, which we use for weighting
221
+ the search results to favor &#x60;Provider&#x60;s that are near the user. For example,
222
+ we would want &quot;Dr. John Smith&quot; who is 5 miles away to appear before
223
+ &quot;Dr. John Smith&quot; who is 100 miles away.
224
+
225
+ The weighting also allows for non-exact matches. In our prior example, we
226
+ would want &quot;Dr. Jon Smith&quot; who is 2 miles away to appear before the exact
227
+ match &quot;Dr. John Smith&quot; who is 100 miles away because it is more likely that
228
+ the user just entered an incorrect name.
229
+
230
+ The free text search also supports Specialty name search and &quot;body part&quot;
231
+ Specialty name search. So, searching &quot;John Smith nose&quot; would return
232
+ &quot;Dr. John Smith&quot;, the ENT Specialist before &quot;Dr. John Smith&quot; the Internist.
233
+
227
234
  # @param [Hash] opts the optional parameters
228
- # @return [Array<(ProviderResponse, Fixnum, Hash)>] ProviderResponse data, response status code and response headers
229
- def get_providers_npi_with_http_info(npi, opts = {})
235
+ # @option opts [RequestProvidersSearch] :body
236
+ # @return [Array<(ProvidersSearchResponse, Fixnum, Hash)>] ProvidersSearchResponse data, response status code and response headers
237
+ def get_providers_with_http_info(opts = {})
230
238
  if @api_client.config.debugging
231
- @api_client.config.logger.debug "Calling API: ProvidersApi.get_providers_npi ..."
239
+ @api_client.config.logger.debug "Calling API: ProvidersApi.get_providers ..."
232
240
  end
233
- # verify the required parameter 'npi' is set
234
- fail ArgumentError, "Missing the required parameter 'npi' when calling ProvidersApi.get_providers_npi" if npi.nil?
235
241
  # resource path
236
- local_var_path = "/providers/{npi}".sub('{format}','json').sub('{' + 'npi' + '}', npi.to_s)
242
+ local_var_path = "/providers/search".sub('{format}','json')
237
243
 
238
244
  # query parameters
239
245
  query_params = {}
@@ -253,17 +259,17 @@ module VericredClient
253
259
  form_params = {}
254
260
 
255
261
  # http body (model)
256
- post_body = nil
257
- auth_names = []
258
- data, status_code, headers = @api_client.call_api(:GET, local_var_path,
262
+ post_body = @api_client.object_to_http_body(opts[:'body'])
263
+ auth_names = []
264
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path,
259
265
  :header_params => header_params,
260
266
  :query_params => query_params,
261
267
  :form_params => form_params,
262
268
  :body => post_body,
263
269
  :auth_names => auth_names,
264
- :return_type => 'ProviderResponse')
270
+ :return_type => 'ProvidersSearchResponse')
265
271
  if @api_client.config.debugging
266
- @api_client.config.logger.debug "API called: ProvidersApi#get_providers_npi\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
272
+ @api_client.config.logger.debug "API called: ProvidersApi#get_providers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
267
273
  end
268
274
  return data, status_code, headers
269
275
  end
@@ -6,7 +6,7 @@ accepts.
6
6
 
7
7
  ## Getting Started
8
8
 
9
- Visit our [Developer Portal](https://vericred.3scale.net/access_code?access_code=vericred&cms_token=3545ca52af07bde85b7c0c3aa9d1985e) to
9
+ Visit our [Developer Portal](https://vericred.3scale.net) to
10
10
  create an account.
11
11
 
12
12
  Once you have created an account, you can create one Application for
@@ -133,20 +133,22 @@ module VericredClient
133
133
  @api_client = api_client
134
134
  end
135
135
 
136
- #
137
- #
136
+ # Search for Zip Counties
137
+ # Our `Plan` endpoints require a zip code and a fips (county) code. This is because plan pricing requires both of these elements. Users are unlikely to know their fips code, so we provide this endpoint to look up a `ZipCounty` by zip code and return both the selected zip and fips codes.
138
138
  # @param zip_prefix Partial five-digit Zip
139
139
  # @param [Hash] opts the optional parameters
140
+ # @option opts [String] :vericred_api_key API Key
140
141
  # @return [ZipCountyResponse]
141
142
  def get_zip_counties(zip_prefix, opts = {})
142
143
  data, _status_code, _headers = get_zip_counties_with_http_info(zip_prefix, opts)
143
144
  return data
144
145
  end
145
146
 
146
- #
147
- #
147
+ # Search for Zip Counties
148
+ # Our &#x60;Plan&#x60; endpoints require a zip code and a fips (county) code. This is because plan pricing requires both of these elements. Users are unlikely to know their fips code, so we provide this endpoint to look up a &#x60;ZipCounty&#x60; by zip code and return both the selected zip and fips codes.
148
149
  # @param zip_prefix Partial five-digit Zip
149
150
  # @param [Hash] opts the optional parameters
151
+ # @option opts [String] :vericred_api_key API Key
150
152
  # @return [Array<(ZipCountyResponse, Fixnum, Hash)>] ZipCountyResponse data, response status code and response headers
151
153
  def get_zip_counties_with_http_info(zip_prefix, opts = {})
152
154
  if @api_client.config.debugging
@@ -171,6 +173,7 @@ module VericredClient
171
173
  # HTTP header 'Content-Type'
172
174
  local_header_content_type = []
173
175
  header_params['Content-Type'] = @api_client.select_header_content_type(local_header_content_type)
176
+ header_params[:'Vericred-Api-Key'] = opts[:'vericred_api_key'] if opts[:'vericred_api_key']
174
177
 
175
178
  # form parameters
176
179
  form_params = {}
@@ -6,7 +6,7 @@ accepts.
6
6
 
7
7
  ## Getting Started
8
8
 
9
- Visit our [Developer Portal](https://vericred.3scale.net/access_code?access_code=vericred&cms_token=3545ca52af07bde85b7c0c3aa9d1985e) to
9
+ Visit our [Developer Portal](https://vericred.3scale.net) to
10
10
  create an account.
11
11
 
12
12
  Once you have created an account, you can create one Application for
@@ -6,7 +6,7 @@ accepts.
6
6
 
7
7
  ## Getting Started
8
8
 
9
- Visit our [Developer Portal](https://vericred.3scale.net/access_code?access_code=vericred&cms_token=3545ca52af07bde85b7c0c3aa9d1985e) to
9
+ Visit our [Developer Portal](https://vericred.3scale.net) to
10
10
  create an account.
11
11
 
12
12
  Once you have created an account, you can create one Application for