vericred_client 0.0.3 → 0.0.4
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.
- checksums.yaml +4 -4
- data/README.md +30 -20
- data/docs/Applicant.md +2 -2
- data/docs/{InlineResponse2001.md → Base.md} +2 -2
- data/docs/Carrier.md +1 -1
- data/docs/County.md +3 -3
- data/docs/CountyBulk.md +10 -0
- data/docs/Drug.md +2 -1
- data/docs/DrugCoverage.md +4 -4
- data/docs/DrugCoverageResponse.md +9 -0
- data/docs/DrugPackage.md +9 -0
- data/docs/DrugSearchResponse.md +9 -0
- data/docs/DrugsApi.md +59 -0
- data/docs/Meta.md +8 -0
- data/docs/Plan.md +22 -6
- data/docs/PlanCounty.md +1 -1
- data/docs/PlanCountyBulk.md +10 -0
- data/docs/PlanFindResponse.md +9 -0
- data/docs/PlanSearchResult.md +26 -8
- data/docs/PlansApi.md +11 -11
- data/docs/Pricing.md +7 -1
- data/docs/Provider.md +9 -6
- data/docs/ProviderResponse.md +10 -0
- data/docs/ProvidersApi.md +19 -21
- data/docs/RatingArea.md +2 -2
- data/docs/RequestPlanFind.md +15 -0
- data/docs/State.md +4 -4
- data/docs/ZipCountiesApi.md +7 -8
- data/docs/ZipCountyBulk.md +11 -0
- data/docs/ZipCountyResponse.md +10 -0
- data/lib/vericred_client.rb +14 -6
- data/lib/vericred_client/api/{drug_coverage_api.rb → drugs_api.rb} +25 -19
- data/lib/vericred_client/api/plans_api.rb +14 -16
- data/lib/vericred_client/api/providers_api.rb +29 -29
- data/lib/vericred_client/api/zip_counties_api.rb +12 -12
- data/lib/vericred_client/api_client.rb +1 -1
- data/lib/vericred_client/api_error.rb +1 -1
- data/lib/vericred_client/models/applicant.rb +14 -12
- data/lib/vericred_client/models/{inline_response_200_1.rb → base.rb} +10 -9
- data/lib/vericred_client/models/carrier.rb +15 -15
- data/lib/vericred_client/models/carrier_subsidiary.rb +1 -1
- data/lib/vericred_client/models/county.rb +18 -14
- data/lib/vericred_client/models/county_bulk.rb +318 -0
- data/lib/vericred_client/models/drug.rb +27 -15
- data/lib/vericred_client/models/drug_coverage.rb +38 -32
- data/lib/vericred_client/models/drug_coverage_response.rb +310 -0
- data/lib/vericred_client/models/drug_package.rb +308 -0
- data/lib/vericred_client/models/drug_search_response.rb +310 -0
- data/lib/vericred_client/models/meta.rb +298 -0
- data/lib/vericred_client/models/plan.rb +196 -22
- data/lib/vericred_client/models/plan_county.rb +15 -15
- data/lib/vericred_client/models/plan_county_bulk.rb +318 -0
- data/lib/vericred_client/models/{inline_response_200.rb → plan_find_response.rb} +13 -11
- data/lib/vericred_client/models/plan_search_result.rb +236 -42
- data/lib/vericred_client/models/pricing.rb +63 -3
- data/lib/vericred_client/models/provider.rb +51 -9
- data/lib/vericred_client/models/provider_response.rb +322 -0
- data/lib/vericred_client/models/rating_area.rb +5 -5
- data/lib/vericred_client/models/{query.rb → request_plan_find.rb} +14 -6
- data/lib/vericred_client/models/state.rb +29 -25
- data/lib/vericred_client/models/zip_code.rb +1 -1
- data/lib/vericred_client/models/zip_county.rb +1 -1
- data/lib/vericred_client/models/zip_county_bulk.rb +328 -0
- data/lib/vericred_client/models/{inline_response_200_2.rb → zip_county_response.rb} +20 -17
- data/lib/vericred_client/version.rb +2 -2
- data/spec/api/{drug_coverage_api_spec.rb → drugs_api_spec.rb} +14 -17
- data/spec/api/plans_api_spec.rb +7 -69
- data/spec/api/providers_api_spec.rb +12 -28
- data/spec/api/zip_counties_api_spec.rb +6 -13
- metadata +31 -15
- data/docs/DrugCoverageApi.md +0 -54
- data/docs/InlineResponse200.md +0 -9
- data/docs/InlineResponse2002.md +0 -10
- data/docs/Query.md +0 -15
@@ -116,7 +116,7 @@ The response would be
|
|
116
116
|
|
117
117
|
|
118
118
|
|
119
|
-
OpenAPI spec version:
|
119
|
+
OpenAPI spec version: 1.0.0
|
120
120
|
|
121
121
|
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
122
122
|
|
@@ -127,30 +127,30 @@ require 'date'
|
|
127
127
|
|
128
128
|
module VericredClient
|
129
129
|
class PlanCounty
|
130
|
+
# Foreign key to county
|
131
|
+
attr_accessor :county_id
|
132
|
+
|
130
133
|
# Primary key
|
131
134
|
attr_accessor :id
|
132
135
|
|
133
136
|
# Foreign key to plan
|
134
137
|
attr_accessor :plan_id
|
135
138
|
|
136
|
-
# Foreign key to county
|
137
|
-
attr_accessor :county_id
|
138
|
-
|
139
139
|
# Attribute mapping from ruby-style variable name to JSON key.
|
140
140
|
def self.attribute_map
|
141
141
|
{
|
142
|
+
:'county_id' => :'county_id',
|
142
143
|
:'id' => :'id',
|
143
|
-
:'plan_id' => :'plan_id'
|
144
|
-
:'county_id' => :'county_id'
|
144
|
+
:'plan_id' => :'plan_id'
|
145
145
|
}
|
146
146
|
end
|
147
147
|
|
148
148
|
# Attribute type mapping.
|
149
149
|
def self.swagger_types
|
150
150
|
{
|
151
|
+
:'county_id' => :'Integer',
|
151
152
|
:'id' => :'Integer',
|
152
|
-
:'plan_id' => :'Integer'
|
153
|
-
:'county_id' => :'Integer'
|
153
|
+
:'plan_id' => :'Integer'
|
154
154
|
}
|
155
155
|
end
|
156
156
|
|
@@ -162,6 +162,10 @@ module VericredClient
|
|
162
162
|
# convert string to symbol for hash key
|
163
163
|
attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
|
164
164
|
|
165
|
+
if attributes.has_key?(:'county_id')
|
166
|
+
self.county_id = attributes[:'county_id']
|
167
|
+
end
|
168
|
+
|
165
169
|
if attributes.has_key?(:'id')
|
166
170
|
self.id = attributes[:'id']
|
167
171
|
end
|
@@ -170,10 +174,6 @@ module VericredClient
|
|
170
174
|
self.plan_id = attributes[:'plan_id']
|
171
175
|
end
|
172
176
|
|
173
|
-
if attributes.has_key?(:'county_id')
|
174
|
-
self.county_id = attributes[:'county_id']
|
175
|
-
end
|
176
|
-
|
177
177
|
end
|
178
178
|
|
179
179
|
# Show invalid properties with the reasons. Usually used together with valid?
|
@@ -193,9 +193,9 @@ module VericredClient
|
|
193
193
|
def ==(o)
|
194
194
|
return true if self.equal?(o)
|
195
195
|
self.class == o.class &&
|
196
|
+
county_id == o.county_id &&
|
196
197
|
id == o.id &&
|
197
|
-
plan_id == o.plan_id
|
198
|
-
county_id == o.county_id
|
198
|
+
plan_id == o.plan_id
|
199
199
|
end
|
200
200
|
|
201
201
|
# @see the `==` method
|
@@ -207,7 +207,7 @@ module VericredClient
|
|
207
207
|
# Calculates hash code according to all attributes.
|
208
208
|
# @return [Fixnum] Hash code
|
209
209
|
def hash
|
210
|
-
[id, plan_id
|
210
|
+
[county_id, id, plan_id].hash
|
211
211
|
end
|
212
212
|
|
213
213
|
# Builds the object from hash
|
@@ -0,0 +1,318 @@
|
|
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/access_code?access_code=vericred&cms_token=3545ca52af07bde85b7c0c3aa9d1985e) 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 PlanCountyBulk
|
130
|
+
# Foreign key to county
|
131
|
+
attr_accessor :county_id
|
132
|
+
|
133
|
+
# Primary key
|
134
|
+
attr_accessor :id
|
135
|
+
|
136
|
+
# Foreign key to plan
|
137
|
+
attr_accessor :plan_id
|
138
|
+
|
139
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
140
|
+
def self.attribute_map
|
141
|
+
{
|
142
|
+
:'county_id' => :'county_id',
|
143
|
+
:'id' => :'id',
|
144
|
+
:'plan_id' => :'plan_id'
|
145
|
+
}
|
146
|
+
end
|
147
|
+
|
148
|
+
# Attribute type mapping.
|
149
|
+
def self.swagger_types
|
150
|
+
{
|
151
|
+
:'county_id' => :'Integer',
|
152
|
+
:'id' => :'Integer',
|
153
|
+
:'plan_id' => :'Integer'
|
154
|
+
}
|
155
|
+
end
|
156
|
+
|
157
|
+
# Initializes the object
|
158
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
159
|
+
def initialize(attributes = {})
|
160
|
+
return unless attributes.is_a?(Hash)
|
161
|
+
|
162
|
+
# convert string to symbol for hash key
|
163
|
+
attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
|
164
|
+
|
165
|
+
if attributes.has_key?(:'county_id')
|
166
|
+
self.county_id = attributes[:'county_id']
|
167
|
+
end
|
168
|
+
|
169
|
+
if attributes.has_key?(:'id')
|
170
|
+
self.id = attributes[:'id']
|
171
|
+
end
|
172
|
+
|
173
|
+
if attributes.has_key?(:'plan_id')
|
174
|
+
self.plan_id = attributes[:'plan_id']
|
175
|
+
end
|
176
|
+
|
177
|
+
end
|
178
|
+
|
179
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
180
|
+
# @return Array for valid properies with the reasons
|
181
|
+
def list_invalid_properties
|
182
|
+
invalid_properties = Array.new
|
183
|
+
return invalid_properties
|
184
|
+
end
|
185
|
+
|
186
|
+
# Check to see if the all the properties in the model are valid
|
187
|
+
# @return true if the model is valid
|
188
|
+
def valid?
|
189
|
+
end
|
190
|
+
|
191
|
+
# Checks equality by comparing each attribute.
|
192
|
+
# @param [Object] Object to be compared
|
193
|
+
def ==(o)
|
194
|
+
return true if self.equal?(o)
|
195
|
+
self.class == o.class &&
|
196
|
+
county_id == o.county_id &&
|
197
|
+
id == o.id &&
|
198
|
+
plan_id == o.plan_id
|
199
|
+
end
|
200
|
+
|
201
|
+
# @see the `==` method
|
202
|
+
# @param [Object] Object to be compared
|
203
|
+
def eql?(o)
|
204
|
+
self == o
|
205
|
+
end
|
206
|
+
|
207
|
+
# Calculates hash code according to all attributes.
|
208
|
+
# @return [Fixnum] Hash code
|
209
|
+
def hash
|
210
|
+
[county_id, id, plan_id].hash
|
211
|
+
end
|
212
|
+
|
213
|
+
# Builds the object from hash
|
214
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
215
|
+
# @return [Object] Returns the model itself
|
216
|
+
def build_from_hash(attributes)
|
217
|
+
return nil unless attributes.is_a?(Hash)
|
218
|
+
self.class.swagger_types.each_pair do |key, type|
|
219
|
+
if type =~ /^Array<(.*)>/i
|
220
|
+
# check to ensure the input is an array given that the the attribute
|
221
|
+
# is documented as an array but the input is not
|
222
|
+
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
223
|
+
self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
|
224
|
+
end
|
225
|
+
elsif !attributes[self.class.attribute_map[key]].nil?
|
226
|
+
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
|
227
|
+
end # or else data not found in attributes(hash), not an issue as the data can be optional
|
228
|
+
end
|
229
|
+
|
230
|
+
self
|
231
|
+
end
|
232
|
+
|
233
|
+
# Deserializes the data based on type
|
234
|
+
# @param string type Data type
|
235
|
+
# @param string value Value to be deserialized
|
236
|
+
# @return [Object] Deserialized data
|
237
|
+
def _deserialize(type, value)
|
238
|
+
case type.to_sym
|
239
|
+
when :DateTime
|
240
|
+
DateTime.parse(value)
|
241
|
+
when :Date
|
242
|
+
Date.parse(value)
|
243
|
+
when :String
|
244
|
+
value.to_s
|
245
|
+
when :Integer
|
246
|
+
value.to_i
|
247
|
+
when :Float
|
248
|
+
value.to_f
|
249
|
+
when :BOOLEAN
|
250
|
+
if value.to_s =~ /^(true|t|yes|y|1)$/i
|
251
|
+
true
|
252
|
+
else
|
253
|
+
false
|
254
|
+
end
|
255
|
+
when :Object
|
256
|
+
# generic object (usually a Hash), return directly
|
257
|
+
value
|
258
|
+
when /\AArray<(?<inner_type>.+)>\z/
|
259
|
+
inner_type = Regexp.last_match[:inner_type]
|
260
|
+
value.map { |v| _deserialize(inner_type, v) }
|
261
|
+
when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
|
262
|
+
k_type = Regexp.last_match[:k_type]
|
263
|
+
v_type = Regexp.last_match[:v_type]
|
264
|
+
{}.tap do |hash|
|
265
|
+
value.each do |k, v|
|
266
|
+
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
267
|
+
end
|
268
|
+
end
|
269
|
+
else # model
|
270
|
+
temp_model = VericredClient.const_get(type).new
|
271
|
+
temp_model.build_from_hash(value)
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
# Returns the string representation of the object
|
276
|
+
# @return [String] String presentation of the object
|
277
|
+
def to_s
|
278
|
+
to_hash.to_s
|
279
|
+
end
|
280
|
+
|
281
|
+
# to_body is an alias to to_hash (backward compatibility)
|
282
|
+
# @return [Hash] Returns the object in the form of hash
|
283
|
+
def to_body
|
284
|
+
to_hash
|
285
|
+
end
|
286
|
+
|
287
|
+
# Returns the object in the form of hash
|
288
|
+
# @return [Hash] Returns the object in the form of hash
|
289
|
+
def to_hash
|
290
|
+
hash = {}
|
291
|
+
self.class.attribute_map.each_pair do |attr, param|
|
292
|
+
value = self.send(attr)
|
293
|
+
next if value.nil?
|
294
|
+
hash[param] = _to_hash(value)
|
295
|
+
end
|
296
|
+
hash
|
297
|
+
end
|
298
|
+
|
299
|
+
# Outputs non-array value in the form of hash
|
300
|
+
# For object, use to_hash. Otherwise, just return the value
|
301
|
+
# @param [Object] value Any valid value
|
302
|
+
# @return [Hash] Returns the value in the form of hash
|
303
|
+
def _to_hash(value)
|
304
|
+
if value.is_a?(Array)
|
305
|
+
value.compact.map{ |v| _to_hash(v) }
|
306
|
+
elsif value.is_a?(Hash)
|
307
|
+
{}.tap do |hash|
|
308
|
+
value.each { |k, v| hash[k] = _to_hash(v) }
|
309
|
+
end
|
310
|
+
elsif value.respond_to? :to_hash
|
311
|
+
value.to_hash
|
312
|
+
else
|
313
|
+
value
|
314
|
+
end
|
315
|
+
end
|
316
|
+
|
317
|
+
end
|
318
|
+
end
|
@@ -116,7 +116,7 @@ The response would be
|
|
116
116
|
|
117
117
|
|
118
118
|
|
119
|
-
OpenAPI spec version:
|
119
|
+
OpenAPI spec version: 1.0.0
|
120
120
|
|
121
121
|
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
122
122
|
|
@@ -126,24 +126,26 @@ Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
126
126
|
require 'date'
|
127
127
|
|
128
128
|
module VericredClient
|
129
|
-
class
|
129
|
+
class PlanFindResponse
|
130
|
+
# Metadata for query
|
130
131
|
attr_accessor :meta
|
131
132
|
|
132
|
-
|
133
|
+
# Plan search results
|
134
|
+
attr_accessor :plans
|
133
135
|
|
134
136
|
# Attribute mapping from ruby-style variable name to JSON key.
|
135
137
|
def self.attribute_map
|
136
138
|
{
|
137
139
|
:'meta' => :'meta',
|
138
|
-
:'
|
140
|
+
:'plans' => :'plans'
|
139
141
|
}
|
140
142
|
end
|
141
143
|
|
142
144
|
# Attribute type mapping.
|
143
145
|
def self.swagger_types
|
144
146
|
{
|
145
|
-
:'meta' => :'
|
146
|
-
:'
|
147
|
+
:'meta' => :'Meta',
|
148
|
+
:'plans' => :'Array<Plan>'
|
147
149
|
}
|
148
150
|
end
|
149
151
|
|
@@ -159,9 +161,9 @@ module VericredClient
|
|
159
161
|
self.meta = attributes[:'meta']
|
160
162
|
end
|
161
163
|
|
162
|
-
if attributes.has_key?(:'
|
163
|
-
if (value = attributes[:'
|
164
|
-
self.
|
164
|
+
if attributes.has_key?(:'plans')
|
165
|
+
if (value = attributes[:'plans']).is_a?(Array)
|
166
|
+
self.plans = value
|
165
167
|
end
|
166
168
|
end
|
167
169
|
|
@@ -185,7 +187,7 @@ module VericredClient
|
|
185
187
|
return true if self.equal?(o)
|
186
188
|
self.class == o.class &&
|
187
189
|
meta == o.meta &&
|
188
|
-
|
190
|
+
plans == o.plans
|
189
191
|
end
|
190
192
|
|
191
193
|
# @see the `==` method
|
@@ -197,7 +199,7 @@ module VericredClient
|
|
197
199
|
# Calculates hash code according to all attributes.
|
198
200
|
# @return [Fixnum] Hash code
|
199
201
|
def hash
|
200
|
-
[meta,
|
202
|
+
[meta, plans].hash
|
201
203
|
end
|
202
204
|
|
203
205
|
# Builds the object from hash
|