vericred_client 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,372 @@
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 'date'
127
+
128
+ module VericredClient
129
+ class RequestProvidersSearch
130
+ # Limit results to Providers who accept at least one insurance
131
+ plan. Note that the inverse of this filter is not supported and
132
+ any value will evaluate to true
133
+ attr_accessor :accepts_insurance
134
+
135
+ # List of HIOS ids
136
+ attr_accessor :hios_ids
137
+
138
+ # Page number
139
+ attr_accessor :page
140
+
141
+ # Number of records to return per page
142
+ attr_accessor :per_page
143
+
144
+ # Radius (in miles) to use to limit results
145
+ attr_accessor :radius
146
+
147
+ # String to search by
148
+ attr_accessor :search_term
149
+
150
+ # Zip Code to search near
151
+ attr_accessor :zip_code
152
+
153
+ # Either organization or individual
154
+ attr_accessor :type
155
+
156
+ # Attribute mapping from ruby-style variable name to JSON key.
157
+ def self.attribute_map
158
+ {
159
+ :'accepts_insurance' => :'accepts_insurance',
160
+ :'hios_ids' => :'hios_ids',
161
+ :'page' => :'page',
162
+ :'per_page' => :'per_page',
163
+ :'radius' => :'radius',
164
+ :'search_term' => :'search_term',
165
+ :'zip_code' => :'zip_code',
166
+ :'type' => :'type'
167
+ }
168
+ end
169
+
170
+ # Attribute type mapping.
171
+ def self.swagger_types
172
+ {
173
+ :'accepts_insurance' => :'BOOLEAN',
174
+ :'hios_ids' => :'Array<String>',
175
+ :'page' => :'Integer',
176
+ :'per_page' => :'Integer',
177
+ :'radius' => :'Integer',
178
+ :'search_term' => :'String',
179
+ :'zip_code' => :'String',
180
+ :'type' => :'String'
181
+ }
182
+ end
183
+
184
+ # Initializes the object
185
+ # @param [Hash] attributes Model attributes in the form of hash
186
+ def initialize(attributes = {})
187
+ return unless attributes.is_a?(Hash)
188
+
189
+ # convert string to symbol for hash key
190
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
191
+
192
+ if attributes.has_key?(:'accepts_insurance')
193
+ self.accepts_insurance = attributes[:'accepts_insurance']
194
+ end
195
+
196
+ if attributes.has_key?(:'hios_ids')
197
+ if (value = attributes[:'hios_ids']).is_a?(Array)
198
+ self.hios_ids = value
199
+ end
200
+ end
201
+
202
+ if attributes.has_key?(:'page')
203
+ self.page = attributes[:'page']
204
+ end
205
+
206
+ if attributes.has_key?(:'per_page')
207
+ self.per_page = attributes[:'per_page']
208
+ end
209
+
210
+ if attributes.has_key?(:'radius')
211
+ self.radius = attributes[:'radius']
212
+ end
213
+
214
+ if attributes.has_key?(:'search_term')
215
+ self.search_term = attributes[:'search_term']
216
+ end
217
+
218
+ if attributes.has_key?(:'zip_code')
219
+ self.zip_code = attributes[:'zip_code']
220
+ end
221
+
222
+ if attributes.has_key?(:'type')
223
+ self.type = attributes[:'type']
224
+ end
225
+
226
+ end
227
+
228
+ # Show invalid properties with the reasons. Usually used together with valid?
229
+ # @return Array for valid properies with the reasons
230
+ def list_invalid_properties
231
+ invalid_properties = Array.new
232
+ return invalid_properties
233
+ end
234
+
235
+ # Check to see if the all the properties in the model are valid
236
+ # @return true if the model is valid
237
+ def valid?
238
+ end
239
+
240
+ # Checks equality by comparing each attribute.
241
+ # @param [Object] Object to be compared
242
+ def ==(o)
243
+ return true if self.equal?(o)
244
+ self.class == o.class &&
245
+ accepts_insurance == o.accepts_insurance &&
246
+ hios_ids == o.hios_ids &&
247
+ page == o.page &&
248
+ per_page == o.per_page &&
249
+ radius == o.radius &&
250
+ search_term == o.search_term &&
251
+ zip_code == o.zip_code &&
252
+ type == o.type
253
+ end
254
+
255
+ # @see the `==` method
256
+ # @param [Object] Object to be compared
257
+ def eql?(o)
258
+ self == o
259
+ end
260
+
261
+ # Calculates hash code according to all attributes.
262
+ # @return [Fixnum] Hash code
263
+ def hash
264
+ [accepts_insurance, hios_ids, page, per_page, radius, search_term, zip_code, type].hash
265
+ end
266
+
267
+ # Builds the object from hash
268
+ # @param [Hash] attributes Model attributes in the form of hash
269
+ # @return [Object] Returns the model itself
270
+ def build_from_hash(attributes)
271
+ return nil unless attributes.is_a?(Hash)
272
+ self.class.swagger_types.each_pair do |key, type|
273
+ if type =~ /^Array<(.*)>/i
274
+ # check to ensure the input is an array given that the the attribute
275
+ # is documented as an array but the input is not
276
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
277
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
278
+ end
279
+ elsif !attributes[self.class.attribute_map[key]].nil?
280
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
281
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
282
+ end
283
+
284
+ self
285
+ end
286
+
287
+ # Deserializes the data based on type
288
+ # @param string type Data type
289
+ # @param string value Value to be deserialized
290
+ # @return [Object] Deserialized data
291
+ def _deserialize(type, value)
292
+ case type.to_sym
293
+ when :DateTime
294
+ DateTime.parse(value)
295
+ when :Date
296
+ Date.parse(value)
297
+ when :String
298
+ value.to_s
299
+ when :Integer
300
+ value.to_i
301
+ when :Float
302
+ value.to_f
303
+ when :BOOLEAN
304
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
305
+ true
306
+ else
307
+ false
308
+ end
309
+ when :Object
310
+ # generic object (usually a Hash), return directly
311
+ value
312
+ when /\AArray<(?<inner_type>.+)>\z/
313
+ inner_type = Regexp.last_match[:inner_type]
314
+ value.map { |v| _deserialize(inner_type, v) }
315
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
316
+ k_type = Regexp.last_match[:k_type]
317
+ v_type = Regexp.last_match[:v_type]
318
+ {}.tap do |hash|
319
+ value.each do |k, v|
320
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
321
+ end
322
+ end
323
+ else # model
324
+ temp_model = VericredClient.const_get(type).new
325
+ temp_model.build_from_hash(value)
326
+ end
327
+ end
328
+
329
+ # Returns the string representation of the object
330
+ # @return [String] String presentation of the object
331
+ def to_s
332
+ to_hash.to_s
333
+ end
334
+
335
+ # to_body is an alias to to_hash (backward compatibility)
336
+ # @return [Hash] Returns the object in the form of hash
337
+ def to_body
338
+ to_hash
339
+ end
340
+
341
+ # Returns the object in the form of hash
342
+ # @return [Hash] Returns the object in the form of hash
343
+ def to_hash
344
+ hash = {}
345
+ self.class.attribute_map.each_pair do |attr, param|
346
+ value = self.send(attr)
347
+ next if value.nil?
348
+ hash[param] = _to_hash(value)
349
+ end
350
+ hash
351
+ end
352
+
353
+ # Outputs non-array value in the form of hash
354
+ # For object, use to_hash. Otherwise, just return the value
355
+ # @param [Object] value Any valid value
356
+ # @return [Hash] Returns the value in the form of hash
357
+ def _to_hash(value)
358
+ if value.is_a?(Array)
359
+ value.compact.map{ |v| _to_hash(v) }
360
+ elsif value.is_a?(Hash)
361
+ {}.tap do |hash|
362
+ value.each { |k, v| hash[k] = _to_hash(v) }
363
+ end
364
+ elsif value.respond_to? :to_hash
365
+ value.to_hash
366
+ else
367
+ value
368
+ end
369
+ end
370
+
371
+ end
372
+ 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
@@ -127,15 +127,18 @@ require 'date'
127
127
 
128
128
  module VericredClient
129
129
  class State
130
+ # Primary Key of State
131
+ attr_accessor :id
132
+
133
+ # Name of state
134
+ attr_accessor :name
135
+
130
136
  # 2 letter code for state
131
137
  attr_accessor :code
132
138
 
133
139
  # National FIPs number
134
140
  attr_accessor :fips_number
135
141
 
136
- # Primary Key of State
137
- attr_accessor :id
138
-
139
142
  # Last date this state is live for individuals
140
143
  attr_accessor :last_date_for_individual
141
144
 
@@ -148,34 +151,31 @@ module VericredClient
148
151
  # Is this State available for individuals
149
152
  attr_accessor :live_for_consumers
150
153
 
151
- # Name of state
152
- attr_accessor :name
153
-
154
154
  # Attribute mapping from ruby-style variable name to JSON key.
155
155
  def self.attribute_map
156
156
  {
157
+ :'id' => :'id',
158
+ :'name' => :'name',
157
159
  :'code' => :'code',
158
160
  :'fips_number' => :'fips_number',
159
- :'id' => :'id',
160
161
  :'last_date_for_individual' => :'last_date_for_individual',
161
162
  :'last_date_for_shop' => :'last_date_for_shop',
162
163
  :'live_for_business' => :'live_for_business',
163
- :'live_for_consumers' => :'live_for_consumers',
164
- :'name' => :'name'
164
+ :'live_for_consumers' => :'live_for_consumers'
165
165
  }
166
166
  end
167
167
 
168
168
  # Attribute type mapping.
169
169
  def self.swagger_types
170
170
  {
171
+ :'id' => :'Integer',
172
+ :'name' => :'String',
171
173
  :'code' => :'String',
172
174
  :'fips_number' => :'String',
173
- :'id' => :'Integer',
174
175
  :'last_date_for_individual' => :'Date',
175
176
  :'last_date_for_shop' => :'Date',
176
177
  :'live_for_business' => :'BOOLEAN',
177
- :'live_for_consumers' => :'BOOLEAN',
178
- :'name' => :'String'
178
+ :'live_for_consumers' => :'BOOLEAN'
179
179
  }
180
180
  end
181
181
 
@@ -187,6 +187,14 @@ module VericredClient
187
187
  # convert string to symbol for hash key
188
188
  attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
189
189
 
190
+ if attributes.has_key?(:'id')
191
+ self.id = attributes[:'id']
192
+ end
193
+
194
+ if attributes.has_key?(:'name')
195
+ self.name = attributes[:'name']
196
+ end
197
+
190
198
  if attributes.has_key?(:'code')
191
199
  self.code = attributes[:'code']
192
200
  end
@@ -195,10 +203,6 @@ module VericredClient
195
203
  self.fips_number = attributes[:'fips_number']
196
204
  end
197
205
 
198
- if attributes.has_key?(:'id')
199
- self.id = attributes[:'id']
200
- end
201
-
202
206
  if attributes.has_key?(:'last_date_for_individual')
203
207
  self.last_date_for_individual = attributes[:'last_date_for_individual']
204
208
  end
@@ -209,18 +213,10 @@ module VericredClient
209
213
 
210
214
  if attributes.has_key?(:'live_for_business')
211
215
  self.live_for_business = attributes[:'live_for_business']
212
- else
213
- self.live_for_business = false
214
216
  end
215
217
 
216
218
  if attributes.has_key?(:'live_for_consumers')
217
219
  self.live_for_consumers = attributes[:'live_for_consumers']
218
- else
219
- self.live_for_consumers = false
220
- end
221
-
222
- if attributes.has_key?(:'name')
223
- self.name = attributes[:'name']
224
220
  end
225
221
 
226
222
  end
@@ -242,14 +238,14 @@ module VericredClient
242
238
  def ==(o)
243
239
  return true if self.equal?(o)
244
240
  self.class == o.class &&
241
+ id == o.id &&
242
+ name == o.name &&
245
243
  code == o.code &&
246
244
  fips_number == o.fips_number &&
247
- id == o.id &&
248
245
  last_date_for_individual == o.last_date_for_individual &&
249
246
  last_date_for_shop == o.last_date_for_shop &&
250
247
  live_for_business == o.live_for_business &&
251
- live_for_consumers == o.live_for_consumers &&
252
- name == o.name
248
+ live_for_consumers == o.live_for_consumers
253
249
  end
254
250
 
255
251
  # @see the `==` method
@@ -261,7 +257,7 @@ module VericredClient
261
257
  # Calculates hash code according to all attributes.
262
258
  # @return [Fixnum] Hash code
263
259
  def hash
264
- [code, fips_number, id, last_date_for_individual, last_date_for_shop, live_for_business, live_for_consumers, name].hash
260
+ [id, name, code, fips_number, last_date_for_individual, last_date_for_shop, live_for_business, live_for_consumers].hash
265
261
  end
266
262
 
267
263
  # Builds the object from hash
@@ -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