pulp_ansible_client 0.12.0.dev1640315727 → 0.12.0.dev1640747746

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pulp_ansible_client might be problematic. Click here for more details.

@@ -15,57 +15,57 @@ require 'date'
15
15
  module PulpAnsibleClient
16
16
  # A serializer for Git Collection Remotes.
17
17
  class AnsibleGitRemoteResponse
18
- # The URL of an external content source.
19
- attr_accessor :url
20
-
21
- # The proxy URL. Format: scheme://host:port
22
- attr_accessor :proxy_url
18
+ attr_accessor :pulp_labels
23
19
 
24
- # Timestamp of creation.
25
- attr_accessor :pulp_created
20
+ # A unique name for this remote.
21
+ attr_accessor :name
26
22
 
27
- # If True, TLS peer validation must be performed.
28
- attr_accessor :tls_validation
23
+ # A PEM encoded client certificate used for authentication.
24
+ attr_accessor :client_cert
29
25
 
30
- # A PEM encoded CA certificate used to validate the server certificate presented by the remote server.
31
- attr_accessor :ca_cert
26
+ # aiohttp.ClientTimeout.sock_connect (q.v.) for download-connections. The default is null, which will cause the default from the aiohttp library to be used.
27
+ attr_accessor :sock_connect_timeout
32
28
 
33
- # Headers for aiohttp.Clientsession
34
- attr_accessor :headers
29
+ # Timestamp of creation.
30
+ attr_accessor :pulp_created
35
31
 
36
- # Limits requests per second for each concurrent downloader
37
- attr_accessor :rate_limit
32
+ # The proxy URL. Format: scheme://host:port
33
+ attr_accessor :proxy_url
38
34
 
39
35
  # Timestamp of the most recent update of the remote.
40
36
  attr_accessor :pulp_last_updated
41
37
 
42
- # aiohttp.ClientTimeout.total (q.v.) for download-connections. The default is null, which will cause the default from the aiohttp library to be used.
43
- attr_accessor :total_timeout
38
+ # If True, TLS peer validation must be performed.
39
+ attr_accessor :tls_validation
40
+
41
+ # The URL of an external content source.
42
+ attr_accessor :url
44
43
 
45
44
  attr_accessor :pulp_href
46
45
 
47
- # A PEM encoded client certificate used for authentication.
48
- attr_accessor :client_cert
46
+ # Headers for aiohttp.Clientsession
47
+ attr_accessor :headers
49
48
 
50
49
  # aiohttp.ClientTimeout.connect (q.v.) for download-connections. The default is null, which will cause the default from the aiohttp library to be used.
51
50
  attr_accessor :connect_timeout
52
51
 
53
- # Total number of simultaneous connections. If not set then the default value will be used.
54
- attr_accessor :download_concurrency
55
-
56
52
  # Maximum number of retry attempts after a download failure. If not set then the default value (3) will be used.
57
53
  attr_accessor :max_retries
58
54
 
59
- # A unique name for this remote.
60
- attr_accessor :name
61
-
62
55
  # aiohttp.ClientTimeout.sock_read (q.v.) for download-connections. The default is null, which will cause the default from the aiohttp library to be used.
63
56
  attr_accessor :sock_read_timeout
64
57
 
65
- attr_accessor :pulp_labels
58
+ # Limits requests per second for each concurrent downloader
59
+ attr_accessor :rate_limit
66
60
 
67
- # aiohttp.ClientTimeout.sock_connect (q.v.) for download-connections. The default is null, which will cause the default from the aiohttp library to be used.
68
- attr_accessor :sock_connect_timeout
61
+ # A PEM encoded CA certificate used to validate the server certificate presented by the remote server.
62
+ attr_accessor :ca_cert
63
+
64
+ # Total number of simultaneous connections. If not set then the default value will be used.
65
+ attr_accessor :download_concurrency
66
+
67
+ # aiohttp.ClientTimeout.total (q.v.) for download-connections. The default is null, which will cause the default from the aiohttp library to be used.
68
+ attr_accessor :total_timeout
69
69
 
70
70
  # If True, only metadata about the content will be stored in Pulp. Clients will retrieve content from the remote URL.
71
71
  attr_accessor :metadata_only
@@ -76,24 +76,24 @@ module PulpAnsibleClient
76
76
  # Attribute mapping from ruby-style variable name to JSON key.
77
77
  def self.attribute_map
78
78
  {
79
- :'url' => :'url',
80
- :'proxy_url' => :'proxy_url',
79
+ :'pulp_labels' => :'pulp_labels',
80
+ :'name' => :'name',
81
+ :'client_cert' => :'client_cert',
82
+ :'sock_connect_timeout' => :'sock_connect_timeout',
81
83
  :'pulp_created' => :'pulp_created',
82
- :'tls_validation' => :'tls_validation',
83
- :'ca_cert' => :'ca_cert',
84
- :'headers' => :'headers',
85
- :'rate_limit' => :'rate_limit',
84
+ :'proxy_url' => :'proxy_url',
86
85
  :'pulp_last_updated' => :'pulp_last_updated',
87
- :'total_timeout' => :'total_timeout',
86
+ :'tls_validation' => :'tls_validation',
87
+ :'url' => :'url',
88
88
  :'pulp_href' => :'pulp_href',
89
- :'client_cert' => :'client_cert',
89
+ :'headers' => :'headers',
90
90
  :'connect_timeout' => :'connect_timeout',
91
- :'download_concurrency' => :'download_concurrency',
92
91
  :'max_retries' => :'max_retries',
93
- :'name' => :'name',
94
92
  :'sock_read_timeout' => :'sock_read_timeout',
95
- :'pulp_labels' => :'pulp_labels',
96
- :'sock_connect_timeout' => :'sock_connect_timeout',
93
+ :'rate_limit' => :'rate_limit',
94
+ :'ca_cert' => :'ca_cert',
95
+ :'download_concurrency' => :'download_concurrency',
96
+ :'total_timeout' => :'total_timeout',
97
97
  :'metadata_only' => :'metadata_only',
98
98
  :'git_ref' => :'git_ref'
99
99
  }
@@ -102,24 +102,24 @@ module PulpAnsibleClient
102
102
  # Attribute type mapping.
103
103
  def self.openapi_types
104
104
  {
105
- :'url' => :'String',
106
- :'proxy_url' => :'String',
105
+ :'pulp_labels' => :'Object',
106
+ :'name' => :'String',
107
+ :'client_cert' => :'String',
108
+ :'sock_connect_timeout' => :'Float',
107
109
  :'pulp_created' => :'DateTime',
108
- :'tls_validation' => :'Boolean',
109
- :'ca_cert' => :'String',
110
- :'headers' => :'Array<Object>',
111
- :'rate_limit' => :'Integer',
110
+ :'proxy_url' => :'String',
112
111
  :'pulp_last_updated' => :'DateTime',
113
- :'total_timeout' => :'Float',
112
+ :'tls_validation' => :'Boolean',
113
+ :'url' => :'String',
114
114
  :'pulp_href' => :'String',
115
- :'client_cert' => :'String',
115
+ :'headers' => :'Array<Object>',
116
116
  :'connect_timeout' => :'Float',
117
- :'download_concurrency' => :'Integer',
118
117
  :'max_retries' => :'Integer',
119
- :'name' => :'String',
120
118
  :'sock_read_timeout' => :'Float',
121
- :'pulp_labels' => :'Object',
122
- :'sock_connect_timeout' => :'Float',
119
+ :'rate_limit' => :'Integer',
120
+ :'ca_cert' => :'String',
121
+ :'download_concurrency' => :'Integer',
122
+ :'total_timeout' => :'Float',
123
123
  :'metadata_only' => :'Boolean',
124
124
  :'git_ref' => :'String'
125
125
  }
@@ -128,16 +128,16 @@ module PulpAnsibleClient
128
128
  # List of attributes with nullable: true
129
129
  def self.openapi_nullable
130
130
  Set.new([
131
- :'proxy_url',
132
- :'ca_cert',
133
- :'rate_limit',
134
- :'total_timeout',
135
131
  :'client_cert',
132
+ :'sock_connect_timeout',
133
+ :'proxy_url',
136
134
  :'connect_timeout',
137
- :'download_concurrency',
138
135
  :'max_retries',
139
136
  :'sock_read_timeout',
140
- :'sock_connect_timeout',
137
+ :'rate_limit',
138
+ :'ca_cert',
139
+ :'download_concurrency',
140
+ :'total_timeout',
141
141
  ])
142
142
  end
143
143
 
@@ -156,78 +156,78 @@ module PulpAnsibleClient
156
156
  h[k.to_sym] = v
157
157
  }
158
158
 
159
- if attributes.key?(:'url')
160
- self.url = attributes[:'url']
161
- end
162
-
163
- if attributes.key?(:'proxy_url')
164
- self.proxy_url = attributes[:'proxy_url']
159
+ if attributes.key?(:'pulp_labels')
160
+ self.pulp_labels = attributes[:'pulp_labels']
165
161
  end
166
162
 
167
- if attributes.key?(:'pulp_created')
168
- self.pulp_created = attributes[:'pulp_created']
163
+ if attributes.key?(:'name')
164
+ self.name = attributes[:'name']
169
165
  end
170
166
 
171
- if attributes.key?(:'tls_validation')
172
- self.tls_validation = attributes[:'tls_validation']
167
+ if attributes.key?(:'client_cert')
168
+ self.client_cert = attributes[:'client_cert']
173
169
  end
174
170
 
175
- if attributes.key?(:'ca_cert')
176
- self.ca_cert = attributes[:'ca_cert']
171
+ if attributes.key?(:'sock_connect_timeout')
172
+ self.sock_connect_timeout = attributes[:'sock_connect_timeout']
177
173
  end
178
174
 
179
- if attributes.key?(:'headers')
180
- if (value = attributes[:'headers']).is_a?(Array)
181
- self.headers = value
182
- end
175
+ if attributes.key?(:'pulp_created')
176
+ self.pulp_created = attributes[:'pulp_created']
183
177
  end
184
178
 
185
- if attributes.key?(:'rate_limit')
186
- self.rate_limit = attributes[:'rate_limit']
179
+ if attributes.key?(:'proxy_url')
180
+ self.proxy_url = attributes[:'proxy_url']
187
181
  end
188
182
 
189
183
  if attributes.key?(:'pulp_last_updated')
190
184
  self.pulp_last_updated = attributes[:'pulp_last_updated']
191
185
  end
192
186
 
193
- if attributes.key?(:'total_timeout')
194
- self.total_timeout = attributes[:'total_timeout']
187
+ if attributes.key?(:'tls_validation')
188
+ self.tls_validation = attributes[:'tls_validation']
189
+ end
190
+
191
+ if attributes.key?(:'url')
192
+ self.url = attributes[:'url']
195
193
  end
196
194
 
197
195
  if attributes.key?(:'pulp_href')
198
196
  self.pulp_href = attributes[:'pulp_href']
199
197
  end
200
198
 
201
- if attributes.key?(:'client_cert')
202
- self.client_cert = attributes[:'client_cert']
199
+ if attributes.key?(:'headers')
200
+ if (value = attributes[:'headers']).is_a?(Array)
201
+ self.headers = value
202
+ end
203
203
  end
204
204
 
205
205
  if attributes.key?(:'connect_timeout')
206
206
  self.connect_timeout = attributes[:'connect_timeout']
207
207
  end
208
208
 
209
- if attributes.key?(:'download_concurrency')
210
- self.download_concurrency = attributes[:'download_concurrency']
211
- end
212
-
213
209
  if attributes.key?(:'max_retries')
214
210
  self.max_retries = attributes[:'max_retries']
215
211
  end
216
212
 
217
- if attributes.key?(:'name')
218
- self.name = attributes[:'name']
219
- end
220
-
221
213
  if attributes.key?(:'sock_read_timeout')
222
214
  self.sock_read_timeout = attributes[:'sock_read_timeout']
223
215
  end
224
216
 
225
- if attributes.key?(:'pulp_labels')
226
- self.pulp_labels = attributes[:'pulp_labels']
217
+ if attributes.key?(:'rate_limit')
218
+ self.rate_limit = attributes[:'rate_limit']
227
219
  end
228
220
 
229
- if attributes.key?(:'sock_connect_timeout')
230
- self.sock_connect_timeout = attributes[:'sock_connect_timeout']
221
+ if attributes.key?(:'ca_cert')
222
+ self.ca_cert = attributes[:'ca_cert']
223
+ end
224
+
225
+ if attributes.key?(:'download_concurrency')
226
+ self.download_concurrency = attributes[:'download_concurrency']
227
+ end
228
+
229
+ if attributes.key?(:'total_timeout')
230
+ self.total_timeout = attributes[:'total_timeout']
231
231
  end
232
232
 
233
233
  if attributes.key?(:'metadata_only')
@@ -243,32 +243,32 @@ module PulpAnsibleClient
243
243
  # @return Array for valid properties with the reasons
244
244
  def list_invalid_properties
245
245
  invalid_properties = Array.new
246
- if @url.nil?
247
- invalid_properties.push('invalid value for "url", url cannot be nil.')
248
- end
249
-
250
- if !@total_timeout.nil? && @total_timeout < 0.0
251
- invalid_properties.push('invalid value for "total_timeout", must be greater than or equal to 0.0.')
246
+ if @name.nil?
247
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
252
248
  end
253
249
 
254
- if !@connect_timeout.nil? && @connect_timeout < 0.0
255
- invalid_properties.push('invalid value for "connect_timeout", must be greater than or equal to 0.0.')
250
+ if !@sock_connect_timeout.nil? && @sock_connect_timeout < 0.0
251
+ invalid_properties.push('invalid value for "sock_connect_timeout", must be greater than or equal to 0.0.')
256
252
  end
257
253
 
258
- if !@download_concurrency.nil? && @download_concurrency < 1
259
- invalid_properties.push('invalid value for "download_concurrency", must be greater than or equal to 1.')
254
+ if @url.nil?
255
+ invalid_properties.push('invalid value for "url", url cannot be nil.')
260
256
  end
261
257
 
262
- if @name.nil?
263
- invalid_properties.push('invalid value for "name", name cannot be nil.')
258
+ if !@connect_timeout.nil? && @connect_timeout < 0.0
259
+ invalid_properties.push('invalid value for "connect_timeout", must be greater than or equal to 0.0.')
264
260
  end
265
261
 
266
262
  if !@sock_read_timeout.nil? && @sock_read_timeout < 0.0
267
263
  invalid_properties.push('invalid value for "sock_read_timeout", must be greater than or equal to 0.0.')
268
264
  end
269
265
 
270
- if !@sock_connect_timeout.nil? && @sock_connect_timeout < 0.0
271
- invalid_properties.push('invalid value for "sock_connect_timeout", must be greater than or equal to 0.0.')
266
+ if !@download_concurrency.nil? && @download_concurrency < 1
267
+ invalid_properties.push('invalid value for "download_concurrency", must be greater than or equal to 1.')
268
+ end
269
+
270
+ if !@total_timeout.nil? && @total_timeout < 0.0
271
+ invalid_properties.push('invalid value for "total_timeout", must be greater than or equal to 0.0.')
272
272
  end
273
273
 
274
274
  invalid_properties
@@ -277,24 +277,24 @@ module PulpAnsibleClient
277
277
  # Check to see if the all the properties in the model are valid
278
278
  # @return true if the model is valid
279
279
  def valid?
280
+ return false if @name.nil?
281
+ return false if !@sock_connect_timeout.nil? && @sock_connect_timeout < 0.0
280
282
  return false if @url.nil?
281
- return false if !@total_timeout.nil? && @total_timeout < 0.0
282
283
  return false if !@connect_timeout.nil? && @connect_timeout < 0.0
283
- return false if !@download_concurrency.nil? && @download_concurrency < 1
284
- return false if @name.nil?
285
284
  return false if !@sock_read_timeout.nil? && @sock_read_timeout < 0.0
286
- return false if !@sock_connect_timeout.nil? && @sock_connect_timeout < 0.0
285
+ return false if !@download_concurrency.nil? && @download_concurrency < 1
286
+ return false if !@total_timeout.nil? && @total_timeout < 0.0
287
287
  true
288
288
  end
289
289
 
290
290
  # Custom attribute writer method with validation
291
- # @param [Object] total_timeout Value to be assigned
292
- def total_timeout=(total_timeout)
293
- if !total_timeout.nil? && total_timeout < 0.0
294
- fail ArgumentError, 'invalid value for "total_timeout", must be greater than or equal to 0.0.'
291
+ # @param [Object] sock_connect_timeout Value to be assigned
292
+ def sock_connect_timeout=(sock_connect_timeout)
293
+ if !sock_connect_timeout.nil? && sock_connect_timeout < 0.0
294
+ fail ArgumentError, 'invalid value for "sock_connect_timeout", must be greater than or equal to 0.0.'
295
295
  end
296
296
 
297
- @total_timeout = total_timeout
297
+ @sock_connect_timeout = sock_connect_timeout
298
298
  end
299
299
 
300
300
  # Custom attribute writer method with validation
@@ -307,16 +307,6 @@ module PulpAnsibleClient
307
307
  @connect_timeout = connect_timeout
308
308
  end
309
309
 
310
- # Custom attribute writer method with validation
311
- # @param [Object] download_concurrency Value to be assigned
312
- def download_concurrency=(download_concurrency)
313
- if !download_concurrency.nil? && download_concurrency < 1
314
- fail ArgumentError, 'invalid value for "download_concurrency", must be greater than or equal to 1.'
315
- end
316
-
317
- @download_concurrency = download_concurrency
318
- end
319
-
320
310
  # Custom attribute writer method with validation
321
311
  # @param [Object] sock_read_timeout Value to be assigned
322
312
  def sock_read_timeout=(sock_read_timeout)
@@ -328,13 +318,23 @@ module PulpAnsibleClient
328
318
  end
329
319
 
330
320
  # Custom attribute writer method with validation
331
- # @param [Object] sock_connect_timeout Value to be assigned
332
- def sock_connect_timeout=(sock_connect_timeout)
333
- if !sock_connect_timeout.nil? && sock_connect_timeout < 0.0
334
- fail ArgumentError, 'invalid value for "sock_connect_timeout", must be greater than or equal to 0.0.'
321
+ # @param [Object] download_concurrency Value to be assigned
322
+ def download_concurrency=(download_concurrency)
323
+ if !download_concurrency.nil? && download_concurrency < 1
324
+ fail ArgumentError, 'invalid value for "download_concurrency", must be greater than or equal to 1.'
335
325
  end
336
326
 
337
- @sock_connect_timeout = sock_connect_timeout
327
+ @download_concurrency = download_concurrency
328
+ end
329
+
330
+ # Custom attribute writer method with validation
331
+ # @param [Object] total_timeout Value to be assigned
332
+ def total_timeout=(total_timeout)
333
+ if !total_timeout.nil? && total_timeout < 0.0
334
+ fail ArgumentError, 'invalid value for "total_timeout", must be greater than or equal to 0.0.'
335
+ end
336
+
337
+ @total_timeout = total_timeout
338
338
  end
339
339
 
340
340
  # Checks equality by comparing each attribute.
@@ -342,24 +342,24 @@ module PulpAnsibleClient
342
342
  def ==(o)
343
343
  return true if self.equal?(o)
344
344
  self.class == o.class &&
345
- url == o.url &&
346
- proxy_url == o.proxy_url &&
345
+ pulp_labels == o.pulp_labels &&
346
+ name == o.name &&
347
+ client_cert == o.client_cert &&
348
+ sock_connect_timeout == o.sock_connect_timeout &&
347
349
  pulp_created == o.pulp_created &&
348
- tls_validation == o.tls_validation &&
349
- ca_cert == o.ca_cert &&
350
- headers == o.headers &&
351
- rate_limit == o.rate_limit &&
350
+ proxy_url == o.proxy_url &&
352
351
  pulp_last_updated == o.pulp_last_updated &&
353
- total_timeout == o.total_timeout &&
352
+ tls_validation == o.tls_validation &&
353
+ url == o.url &&
354
354
  pulp_href == o.pulp_href &&
355
- client_cert == o.client_cert &&
355
+ headers == o.headers &&
356
356
  connect_timeout == o.connect_timeout &&
357
- download_concurrency == o.download_concurrency &&
358
357
  max_retries == o.max_retries &&
359
- name == o.name &&
360
358
  sock_read_timeout == o.sock_read_timeout &&
361
- pulp_labels == o.pulp_labels &&
362
- sock_connect_timeout == o.sock_connect_timeout &&
359
+ rate_limit == o.rate_limit &&
360
+ ca_cert == o.ca_cert &&
361
+ download_concurrency == o.download_concurrency &&
362
+ total_timeout == o.total_timeout &&
363
363
  metadata_only == o.metadata_only &&
364
364
  git_ref == o.git_ref
365
365
  end
@@ -373,7 +373,7 @@ module PulpAnsibleClient
373
373
  # Calculates hash code according to all attributes.
374
374
  # @return [Integer] Hash code
375
375
  def hash
376
- [url, proxy_url, pulp_created, tls_validation, ca_cert, headers, rate_limit, pulp_last_updated, total_timeout, pulp_href, client_cert, connect_timeout, download_concurrency, max_retries, name, sock_read_timeout, pulp_labels, sock_connect_timeout, metadata_only, git_ref].hash
376
+ [pulp_labels, name, client_cert, sock_connect_timeout, pulp_created, proxy_url, pulp_last_updated, tls_validation, url, pulp_href, headers, connect_timeout, max_retries, sock_read_timeout, rate_limit, ca_cert, download_concurrency, total_timeout, metadata_only, git_ref].hash
377
377
  end
378
378
 
379
379
  # Builds the object from hash
@@ -15,14 +15,14 @@ require 'date'
15
15
  module PulpAnsibleClient
16
16
  # A serializer for Role versions.
17
17
  class AnsibleRoleResponse
18
- attr_accessor :pulp_href
19
-
20
18
  # Artifact file representing the physical content
21
19
  attr_accessor :artifact
22
20
 
23
21
  # Timestamp of creation.
24
22
  attr_accessor :pulp_created
25
23
 
24
+ attr_accessor :pulp_href
25
+
26
26
  attr_accessor :version
27
27
 
28
28
  attr_accessor :name
@@ -32,9 +32,9 @@ module PulpAnsibleClient
32
32
  # Attribute mapping from ruby-style variable name to JSON key.
33
33
  def self.attribute_map
34
34
  {
35
- :'pulp_href' => :'pulp_href',
36
35
  :'artifact' => :'artifact',
37
36
  :'pulp_created' => :'pulp_created',
37
+ :'pulp_href' => :'pulp_href',
38
38
  :'version' => :'version',
39
39
  :'name' => :'name',
40
40
  :'namespace' => :'namespace'
@@ -44,9 +44,9 @@ module PulpAnsibleClient
44
44
  # Attribute type mapping.
45
45
  def self.openapi_types
46
46
  {
47
- :'pulp_href' => :'String',
48
47
  :'artifact' => :'String',
49
48
  :'pulp_created' => :'DateTime',
49
+ :'pulp_href' => :'String',
50
50
  :'version' => :'String',
51
51
  :'name' => :'String',
52
52
  :'namespace' => :'String'
@@ -74,10 +74,6 @@ module PulpAnsibleClient
74
74
  h[k.to_sym] = v
75
75
  }
76
76
 
77
- if attributes.key?(:'pulp_href')
78
- self.pulp_href = attributes[:'pulp_href']
79
- end
80
-
81
77
  if attributes.key?(:'artifact')
82
78
  self.artifact = attributes[:'artifact']
83
79
  end
@@ -86,6 +82,10 @@ module PulpAnsibleClient
86
82
  self.pulp_created = attributes[:'pulp_created']
87
83
  end
88
84
 
85
+ if attributes.key?(:'pulp_href')
86
+ self.pulp_href = attributes[:'pulp_href']
87
+ end
88
+
89
89
  if attributes.key?(:'version')
90
90
  self.version = attributes[:'version']
91
91
  end
@@ -137,9 +137,9 @@ module PulpAnsibleClient
137
137
  def ==(o)
138
138
  return true if self.equal?(o)
139
139
  self.class == o.class &&
140
- pulp_href == o.pulp_href &&
141
140
  artifact == o.artifact &&
142
141
  pulp_created == o.pulp_created &&
142
+ pulp_href == o.pulp_href &&
143
143
  version == o.version &&
144
144
  name == o.name &&
145
145
  namespace == o.namespace
@@ -154,7 +154,7 @@ module PulpAnsibleClient
154
154
  # Calculates hash code according to all attributes.
155
155
  # @return [Integer] Hash code
156
156
  def hash
157
- [pulp_href, artifact, pulp_created, version, name, namespace].hash
157
+ [artifact, pulp_created, pulp_href, version, name, namespace].hash
158
158
  end
159
159
 
160
160
  # Builds the object from hash