iron_titan 0.3.10 → 0.4.0

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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +201 -0
  3. data/README.md +6 -5
  4. data/lib/iron_titan/api/groups_api.rb +34 -31
  5. data/lib/iron_titan/api/jobs_api.rb +140 -182
  6. data/lib/iron_titan/api/runner_api.rb +43 -47
  7. data/lib/iron_titan/api_client.rb +48 -8
  8. data/lib/iron_titan/api_error.rb +12 -1
  9. data/lib/iron_titan/configuration.rb +23 -0
  10. data/lib/iron_titan/models/complete.rb +63 -27
  11. data/lib/iron_titan/models/error.rb +59 -21
  12. data/lib/iron_titan/models/error_body.rb +61 -24
  13. data/lib/iron_titan/models/group.rb +112 -28
  14. data/lib/iron_titan/models/group_wrapper.rb +60 -21
  15. data/lib/iron_titan/models/groups_wrapper.rb +60 -21
  16. data/lib/iron_titan/models/id_status.rb +89 -28
  17. data/lib/iron_titan/models/job.rb +168 -90
  18. data/lib/iron_titan/models/job_wrapper.rb +60 -21
  19. data/lib/iron_titan/models/jobs_wrapper.rb +62 -24
  20. data/lib/iron_titan/models/new_job.rb +91 -42
  21. data/lib/iron_titan/models/new_jobs_wrapper.rb +60 -21
  22. data/lib/iron_titan/models/start.rb +59 -21
  23. data/lib/iron_titan/version.rb +13 -2
  24. data/lib/iron_titan.rb +12 -1
  25. data/spec/api/groups_api_spec.rb +16 -17
  26. data/spec/api/jobs_api_spec.rb +37 -78
  27. data/spec/api/runner_api_spec.rb +20 -21
  28. data/spec/api_client_spec.rb +296 -0
  29. data/spec/configuration_spec.rb +48 -0
  30. data/spec/models/complete_spec.rb +16 -17
  31. data/spec/models/error_body_spec.rb +15 -12
  32. data/spec/models/error_spec.rb +14 -7
  33. data/spec/models/group_spec.rb +33 -12
  34. data/spec/models/group_wrapper_spec.rb +14 -7
  35. data/spec/models/groups_wrapper_spec.rb +14 -7
  36. data/spec/models/id_status_spec.rb +18 -12
  37. data/spec/models/job_spec.rb +43 -88
  38. data/spec/models/job_wrapper_spec.rb +14 -7
  39. data/spec/models/jobs_wrapper_spec.rb +15 -12
  40. data/spec/models/new_job_spec.rb +20 -37
  41. data/spec/models/new_jobs_wrapper_spec.rb +14 -7
  42. data/spec/models/start_spec.rb +14 -7
  43. data/spec/spec_helper.rb +122 -0
  44. metadata +9 -2
@@ -3,29 +3,39 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.10
6
+ OpenAPI spec version: 0.4.0
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
10
+ Licensed under the Apache License, Version 2.0 (the "License");
11
+ you may not use this file except in compliance with the License.
12
+ You may obtain a copy of the License at
13
+
14
+ http://www.apache.org/licenses/LICENSE-2.0
15
+
16
+ Unless required by applicable law or agreed to in writing, software
17
+ distributed under the License is distributed on an "AS IS" BASIS,
18
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ See the License for the specific language governing permissions and
20
+ limitations under the License.
10
21
 
11
22
  =end
12
23
 
13
24
  require 'date'
14
25
 
15
26
  module IronTitan
27
+
16
28
  class JobsWrapper
17
29
  attr_accessor :jobs
18
30
 
19
31
  attr_accessor :error
20
32
 
33
+
21
34
  # Attribute mapping from ruby-style variable name to JSON key.
22
35
  def self.attribute_map
23
36
  {
24
-
25
37
  :'jobs' => :'jobs',
26
-
27
38
  :'error' => :'error'
28
-
29
39
  }
30
40
  end
31
41
 
@@ -34,30 +44,45 @@ module IronTitan
34
44
  {
35
45
  :'jobs' => :'Array<Job>',
36
46
  :'error' => :'ErrorBody'
37
-
38
47
  }
39
48
  end
40
49
 
50
+ # Initializes the object
51
+ # @param [Hash] attributes Model attributes in the form of hash
41
52
  def initialize(attributes = {})
42
53
  return unless attributes.is_a?(Hash)
43
54
 
44
55
  # convert string to symbol for hash key
45
- attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
56
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
46
57
 
47
-
48
- if attributes[:'jobs']
58
+ if attributes.has_key?(:'jobs')
49
59
  if (value = attributes[:'jobs']).is_a?(Array)
50
60
  self.jobs = value
51
61
  end
52
62
  end
53
-
54
- if attributes[:'error']
63
+
64
+ if attributes.has_key?(:'error')
55
65
  self.error = attributes[:'error']
56
66
  end
57
-
67
+
58
68
  end
59
69
 
60
- # Check equality by comparing each attribute.
70
+ # Show invalid properties with the reasons. Usually used together with valid?
71
+ # @return Array for valid properies with the reasons
72
+ def list_invalid_properties
73
+ invalid_properties = Array.new
74
+ return invalid_properties
75
+ end
76
+
77
+ # Check to see if the all the properties in the model are valid
78
+ # @return true if the model is valid
79
+ def valid?
80
+ return false if @jobs.nil?
81
+ return true
82
+ end
83
+
84
+ # Checks equality by comparing each attribute.
85
+ # @param [Object] Object to be compared
61
86
  def ==(o)
62
87
  return true if self.equal?(o)
63
88
  self.class == o.class &&
@@ -66,35 +91,41 @@ module IronTitan
66
91
  end
67
92
 
68
93
  # @see the `==` method
94
+ # @param [Object] Object to be compared
69
95
  def eql?(o)
70
96
  self == o
71
97
  end
72
98
 
73
- # Calculate hash code according to all attributes.
99
+ # Calculates hash code according to all attributes.
100
+ # @return [Fixnum] Hash code
74
101
  def hash
75
102
  [jobs, error].hash
76
103
  end
77
104
 
78
- # build the object from hash
105
+ # Builds the object from hash
106
+ # @param [Hash] attributes Model attributes in the form of hash
107
+ # @return [Object] Returns the model itself
79
108
  def build_from_hash(attributes)
80
109
  return nil unless attributes.is_a?(Hash)
81
110
  self.class.swagger_types.each_pair do |key, type|
82
111
  if type =~ /^Array<(.*)>/i
112
+ # check to ensure the input is an array given that the the attribute
113
+ # is documented as an array but the input is not
83
114
  if attributes[self.class.attribute_map[key]].is_a?(Array)
84
115
  self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
85
- else
86
- #TODO show warning in debug mode
87
116
  end
88
117
  elsif !attributes[self.class.attribute_map[key]].nil?
89
118
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
90
- else
91
- # data not found in attributes(hash), not an issue as the data can be optional
92
- end
119
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
93
120
  end
94
121
 
95
122
  self
96
123
  end
97
124
 
125
+ # Deserializes the data based on type
126
+ # @param string type Data type
127
+ # @param string value Value to be deserialized
128
+ # @return [Object] Deserialized data
98
129
  def _deserialize(type, value)
99
130
  case type.to_sym
100
131
  when :DateTime
@@ -128,21 +159,25 @@ module IronTitan
128
159
  end
129
160
  end
130
161
  else # model
131
- _model = IronTitan.const_get(type).new
132
- _model.build_from_hash(value)
162
+ temp_model = IronTitan.const_get(type).new
163
+ temp_model.build_from_hash(value)
133
164
  end
134
165
  end
135
166
 
167
+ # Returns the string representation of the object
168
+ # @return [String] String presentation of the object
136
169
  def to_s
137
170
  to_hash.to_s
138
171
  end
139
172
 
140
- # to_body is an alias to to_body (backward compatibility))
173
+ # to_body is an alias to to_hash (backward compatibility)
174
+ # @return [Hash] Returns the object in the form of hash
141
175
  def to_body
142
176
  to_hash
143
177
  end
144
178
 
145
- # return the object in the form of hash
179
+ # Returns the object in the form of hash
180
+ # @return [Hash] Returns the object in the form of hash
146
181
  def to_hash
147
182
  hash = {}
148
183
  self.class.attribute_map.each_pair do |attr, param|
@@ -153,8 +188,10 @@ module IronTitan
153
188
  hash
154
189
  end
155
190
 
156
- # Method to output non-array value in the form of hash
191
+ # Outputs non-array value in the form of hash
157
192
  # For object, use to_hash. Otherwise, just return the value
193
+ # @param [Object] value Any valid value
194
+ # @return [Hash] Returns the value in the form of hash
158
195
  def _to_hash(value)
159
196
  if value.is_a?(Array)
160
197
  value.compact.map{ |v| _to_hash(v) }
@@ -170,4 +207,5 @@ module IronTitan
170
207
  end
171
208
 
172
209
  end
210
+
173
211
  end
@@ -3,18 +3,30 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.10
6
+ OpenAPI spec version: 0.4.0
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
10
+ Licensed under the Apache License, Version 2.0 (the "License");
11
+ you may not use this file except in compliance with the License.
12
+ You may obtain a copy of the License at
13
+
14
+ http://www.apache.org/licenses/LICENSE-2.0
15
+
16
+ Unless required by applicable law or agreed to in writing, software
17
+ distributed under the License is distributed on an "AS IS" BASIS,
18
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ See the License for the specific language governing permissions and
20
+ limitations under the License.
10
21
 
11
22
  =end
12
23
 
13
24
  require 'date'
14
25
 
15
26
  module IronTitan
27
+
16
28
  class NewJob
17
- # Name of image to use.
29
+ # Name of Docker image to use. This is optional and can be used to override the image defined at the group level.
18
30
  attr_accessor :image
19
31
 
20
32
  # Payload for the job. This is what you pass into each job to make it do something.
@@ -23,36 +35,29 @@ module IronTitan
23
35
  # Number of seconds to wait before queueing the job for consumption for the first time. Must be a positive integer. Jobs with a delay start in state \"delayed\" and transition to \"running\" after delay seconds.
24
36
  attr_accessor :delay
25
37
 
26
- # Maximum runtime in seconds. If a consumer retrieves the\njob, but does not change it's status within timeout seconds, the job\nis considered failed, with reason timeout (Titan may allow a small\ngrace period). The consumer should also kill the job after timeout\nseconds. If a consumer tries to change status after Titan has already\ntimed out the job, the consumer will be ignored.\n
38
+ # Maximum runtime in seconds. If a consumer retrieves the job, but does not change it's status within timeout seconds, the job is considered failed, with reason timeout (Titan may allow a small grace period). The consumer should also kill the job after timeout seconds. If a consumer tries to change status after Titan has already timed out the job, the consumer will be ignored.
27
39
  attr_accessor :timeout
28
40
 
29
41
  # Priority of the job. Higher has more priority. 3 levels from 0-2. Jobs at same priority are processed in FIFO order.
30
42
  attr_accessor :priority
31
43
 
32
- # \"Number of automatic retries this job is allowed. A retry will be attempted if a task fails. Max 25. Automatic retries are performed by titan when a task reaches a failed state and has `max_retries` > 0. A retry is performed by queueing a new job with the same image id and payload. The new job's max_retries is one less than the original. The new job's `retry_of` field is set to the original Job ID. Titan will delay the new job for retries_delay seconds before queueing it. Cancelled or successful tasks are never automatically retried.\"\n
44
+ # \"Number of automatic retries this job is allowed. A retry will be attempted if a task fails. Max 25. Automatic retries are performed by titan when a task reaches a failed state and has `max_retries` > 0. A retry is performed by queueing a new job with the same image id and payload. The new job's max_retries is one less than the original. The new job's `retry_of` field is set to the original Job ID. Titan will delay the new job for retries_delay seconds before queueing it. Cancelled or successful tasks are never automatically retried.\"
33
45
  attr_accessor :max_retries
34
46
 
35
47
  # Time in seconds to wait before retrying the job. Must be a non-negative integer.
36
48
  attr_accessor :retries_delay
37
49
 
50
+
38
51
  # Attribute mapping from ruby-style variable name to JSON key.
39
52
  def self.attribute_map
40
53
  {
41
-
42
54
  :'image' => :'image',
43
-
44
55
  :'payload' => :'payload',
45
-
46
56
  :'delay' => :'delay',
47
-
48
57
  :'timeout' => :'timeout',
49
-
50
58
  :'priority' => :'priority',
51
-
52
59
  :'max_retries' => :'max_retries',
53
-
54
60
  :'retries_delay' => :'retries_delay'
55
-
56
61
  }
57
62
  end
58
63
 
@@ -66,56 +71,87 @@ module IronTitan
66
71
  :'priority' => :'Integer',
67
72
  :'max_retries' => :'Integer',
68
73
  :'retries_delay' => :'Integer'
69
-
70
74
  }
71
75
  end
72
76
 
77
+ # Initializes the object
78
+ # @param [Hash] attributes Model attributes in the form of hash
73
79
  def initialize(attributes = {})
74
80
  return unless attributes.is_a?(Hash)
75
81
 
76
82
  # convert string to symbol for hash key
77
- attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
83
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
78
84
 
79
-
80
- if attributes[:'image']
85
+ if attributes.has_key?(:'image')
81
86
  self.image = attributes[:'image']
82
87
  end
83
-
84
- if attributes[:'payload']
88
+
89
+ if attributes.has_key?(:'payload')
85
90
  self.payload = attributes[:'payload']
86
91
  end
87
-
88
- if attributes[:'delay']
92
+
93
+ if attributes.has_key?(:'delay')
89
94
  self.delay = attributes[:'delay']
90
95
  else
91
96
  self.delay = 0
92
97
  end
93
-
94
- if attributes[:'timeout']
98
+
99
+ if attributes.has_key?(:'timeout')
95
100
  self.timeout = attributes[:'timeout']
96
101
  else
97
102
  self.timeout = 60
98
103
  end
99
-
100
- if attributes[:'priority']
104
+
105
+ if attributes.has_key?(:'priority')
101
106
  self.priority = attributes[:'priority']
102
107
  end
103
-
104
- if attributes[:'max_retries']
108
+
109
+ if attributes.has_key?(:'max_retries')
105
110
  self.max_retries = attributes[:'max_retries']
106
111
  else
107
112
  self.max_retries = 0
108
113
  end
109
-
110
- if attributes[:'retries_delay']
114
+
115
+ if attributes.has_key?(:'retries_delay')
111
116
  self.retries_delay = attributes[:'retries_delay']
112
117
  else
113
118
  self.retries_delay = 60
114
119
  end
115
-
120
+
121
+ end
122
+
123
+ # Show invalid properties with the reasons. Usually used together with valid?
124
+ # @return Array for valid properies with the reasons
125
+ def list_invalid_properties
126
+ invalid_properties = Array.new
127
+ return invalid_properties
128
+ end
129
+
130
+ # Check to see if the all the properties in the model are valid
131
+ # @return true if the model is valid
132
+ def valid?
133
+ return false if @image.nil?
134
+ return false if @payload.to_s.length <
135
+ return false if @priority.nil?
136
+ return true
137
+ end
138
+
139
+ # Custom attribute writer method with validation
140
+ # @param [Object] payload Value to be assigned
141
+ def payload=(payload)
142
+ if payload.nil?
143
+ fail ArgumentError, "payload cannot be nil"
144
+ end
145
+
146
+ if payload.to_s.length <
147
+ fail ArgumentError, "invalid value for 'payload', the character length must be great than or equal to ."
148
+ end
149
+
150
+ @payload = payload
116
151
  end
117
152
 
118
- # Check equality by comparing each attribute.
153
+ # Checks equality by comparing each attribute.
154
+ # @param [Object] Object to be compared
119
155
  def ==(o)
120
156
  return true if self.equal?(o)
121
157
  self.class == o.class &&
@@ -129,35 +165,41 @@ module IronTitan
129
165
  end
130
166
 
131
167
  # @see the `==` method
168
+ # @param [Object] Object to be compared
132
169
  def eql?(o)
133
170
  self == o
134
171
  end
135
172
 
136
- # Calculate hash code according to all attributes.
173
+ # Calculates hash code according to all attributes.
174
+ # @return [Fixnum] Hash code
137
175
  def hash
138
176
  [image, payload, delay, timeout, priority, max_retries, retries_delay].hash
139
177
  end
140
178
 
141
- # build the object from hash
179
+ # Builds the object from hash
180
+ # @param [Hash] attributes Model attributes in the form of hash
181
+ # @return [Object] Returns the model itself
142
182
  def build_from_hash(attributes)
143
183
  return nil unless attributes.is_a?(Hash)
144
184
  self.class.swagger_types.each_pair do |key, type|
145
185
  if type =~ /^Array<(.*)>/i
186
+ # check to ensure the input is an array given that the the attribute
187
+ # is documented as an array but the input is not
146
188
  if attributes[self.class.attribute_map[key]].is_a?(Array)
147
189
  self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
148
- else
149
- #TODO show warning in debug mode
150
190
  end
151
191
  elsif !attributes[self.class.attribute_map[key]].nil?
152
192
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
153
- else
154
- # data not found in attributes(hash), not an issue as the data can be optional
155
- end
193
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
156
194
  end
157
195
 
158
196
  self
159
197
  end
160
198
 
199
+ # Deserializes the data based on type
200
+ # @param string type Data type
201
+ # @param string value Value to be deserialized
202
+ # @return [Object] Deserialized data
161
203
  def _deserialize(type, value)
162
204
  case type.to_sym
163
205
  when :DateTime
@@ -191,21 +233,25 @@ module IronTitan
191
233
  end
192
234
  end
193
235
  else # model
194
- _model = IronTitan.const_get(type).new
195
- _model.build_from_hash(value)
236
+ temp_model = IronTitan.const_get(type).new
237
+ temp_model.build_from_hash(value)
196
238
  end
197
239
  end
198
240
 
241
+ # Returns the string representation of the object
242
+ # @return [String] String presentation of the object
199
243
  def to_s
200
244
  to_hash.to_s
201
245
  end
202
246
 
203
- # to_body is an alias to to_body (backward compatibility))
247
+ # to_body is an alias to to_hash (backward compatibility)
248
+ # @return [Hash] Returns the object in the form of hash
204
249
  def to_body
205
250
  to_hash
206
251
  end
207
252
 
208
- # return the object in the form of hash
253
+ # Returns the object in the form of hash
254
+ # @return [Hash] Returns the object in the form of hash
209
255
  def to_hash
210
256
  hash = {}
211
257
  self.class.attribute_map.each_pair do |attr, param|
@@ -216,8 +262,10 @@ module IronTitan
216
262
  hash
217
263
  end
218
264
 
219
- # Method to output non-array value in the form of hash
265
+ # Outputs non-array value in the form of hash
220
266
  # For object, use to_hash. Otherwise, just return the value
267
+ # @param [Object] value Any valid value
268
+ # @return [Hash] Returns the value in the form of hash
221
269
  def _to_hash(value)
222
270
  if value.is_a?(Array)
223
271
  value.compact.map{ |v| _to_hash(v) }
@@ -233,4 +281,5 @@ module IronTitan
233
281
  end
234
282
 
235
283
  end
284
+
236
285
  end
@@ -3,25 +3,36 @@ Titan API
3
3
 
4
4
  The ultimate, language agnostic, container based job processing framework.
5
5
 
6
- OpenAPI spec version: 0.3.10
6
+ OpenAPI spec version: 0.4.0
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
 
10
+ Licensed under the Apache License, Version 2.0 (the "License");
11
+ you may not use this file except in compliance with the License.
12
+ You may obtain a copy of the License at
13
+
14
+ http://www.apache.org/licenses/LICENSE-2.0
15
+
16
+ Unless required by applicable law or agreed to in writing, software
17
+ distributed under the License is distributed on an "AS IS" BASIS,
18
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ See the License for the specific language governing permissions and
20
+ limitations under the License.
10
21
 
11
22
  =end
12
23
 
13
24
  require 'date'
14
25
 
15
26
  module IronTitan
27
+
16
28
  class NewJobsWrapper
17
29
  attr_accessor :jobs
18
30
 
31
+
19
32
  # Attribute mapping from ruby-style variable name to JSON key.
20
33
  def self.attribute_map
21
34
  {
22
-
23
35
  :'jobs' => :'jobs'
24
-
25
36
  }
26
37
  end
27
38
 
@@ -29,26 +40,41 @@ module IronTitan
29
40
  def self.swagger_types
30
41
  {
31
42
  :'jobs' => :'Array<NewJob>'
32
-
33
43
  }
34
44
  end
35
45
 
46
+ # Initializes the object
47
+ # @param [Hash] attributes Model attributes in the form of hash
36
48
  def initialize(attributes = {})
37
49
  return unless attributes.is_a?(Hash)
38
50
 
39
51
  # convert string to symbol for hash key
40
- attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
52
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
41
53
 
42
-
43
- if attributes[:'jobs']
54
+ if attributes.has_key?(:'jobs')
44
55
  if (value = attributes[:'jobs']).is_a?(Array)
45
56
  self.jobs = value
46
57
  end
47
58
  end
48
-
59
+
60
+ end
61
+
62
+ # Show invalid properties with the reasons. Usually used together with valid?
63
+ # @return Array for valid properies with the reasons
64
+ def list_invalid_properties
65
+ invalid_properties = Array.new
66
+ return invalid_properties
67
+ end
68
+
69
+ # Check to see if the all the properties in the model are valid
70
+ # @return true if the model is valid
71
+ def valid?
72
+ return false if @jobs.nil?
73
+ return true
49
74
  end
50
75
 
51
- # Check equality by comparing each attribute.
76
+ # Checks equality by comparing each attribute.
77
+ # @param [Object] Object to be compared
52
78
  def ==(o)
53
79
  return true if self.equal?(o)
54
80
  self.class == o.class &&
@@ -56,35 +82,41 @@ module IronTitan
56
82
  end
57
83
 
58
84
  # @see the `==` method
85
+ # @param [Object] Object to be compared
59
86
  def eql?(o)
60
87
  self == o
61
88
  end
62
89
 
63
- # Calculate hash code according to all attributes.
90
+ # Calculates hash code according to all attributes.
91
+ # @return [Fixnum] Hash code
64
92
  def hash
65
93
  [jobs].hash
66
94
  end
67
95
 
68
- # build the object from hash
96
+ # Builds the object from hash
97
+ # @param [Hash] attributes Model attributes in the form of hash
98
+ # @return [Object] Returns the model itself
69
99
  def build_from_hash(attributes)
70
100
  return nil unless attributes.is_a?(Hash)
71
101
  self.class.swagger_types.each_pair do |key, type|
72
102
  if type =~ /^Array<(.*)>/i
103
+ # check to ensure the input is an array given that the the attribute
104
+ # is documented as an array but the input is not
73
105
  if attributes[self.class.attribute_map[key]].is_a?(Array)
74
106
  self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
75
- else
76
- #TODO show warning in debug mode
77
107
  end
78
108
  elsif !attributes[self.class.attribute_map[key]].nil?
79
109
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
80
- else
81
- # data not found in attributes(hash), not an issue as the data can be optional
82
- end
110
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
83
111
  end
84
112
 
85
113
  self
86
114
  end
87
115
 
116
+ # Deserializes the data based on type
117
+ # @param string type Data type
118
+ # @param string value Value to be deserialized
119
+ # @return [Object] Deserialized data
88
120
  def _deserialize(type, value)
89
121
  case type.to_sym
90
122
  when :DateTime
@@ -118,21 +150,25 @@ module IronTitan
118
150
  end
119
151
  end
120
152
  else # model
121
- _model = IronTitan.const_get(type).new
122
- _model.build_from_hash(value)
153
+ temp_model = IronTitan.const_get(type).new
154
+ temp_model.build_from_hash(value)
123
155
  end
124
156
  end
125
157
 
158
+ # Returns the string representation of the object
159
+ # @return [String] String presentation of the object
126
160
  def to_s
127
161
  to_hash.to_s
128
162
  end
129
163
 
130
- # to_body is an alias to to_body (backward compatibility))
164
+ # to_body is an alias to to_hash (backward compatibility)
165
+ # @return [Hash] Returns the object in the form of hash
131
166
  def to_body
132
167
  to_hash
133
168
  end
134
169
 
135
- # return the object in the form of hash
170
+ # Returns the object in the form of hash
171
+ # @return [Hash] Returns the object in the form of hash
136
172
  def to_hash
137
173
  hash = {}
138
174
  self.class.attribute_map.each_pair do |attr, param|
@@ -143,8 +179,10 @@ module IronTitan
143
179
  hash
144
180
  end
145
181
 
146
- # Method to output non-array value in the form of hash
182
+ # Outputs non-array value in the form of hash
147
183
  # For object, use to_hash. Otherwise, just return the value
184
+ # @param [Object] value Any valid value
185
+ # @return [Hash] Returns the value in the form of hash
148
186
  def _to_hash(value)
149
187
  if value.is_a?(Array)
150
188
  value.compact.map{ |v| _to_hash(v) }
@@ -160,4 +198,5 @@ module IronTitan
160
198
  end
161
199
 
162
200
  end
201
+
163
202
  end