artikcloud 2.0.8 → 2.1.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 (197) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +5 -2
  3. data/LICENSE +1 -1
  4. data/README.md +39 -4
  5. data/Rakefile +8 -0
  6. data/artikcloud.gemspec +5 -16
  7. data/docs/Device.md +2 -0
  8. data/docs/DeviceShareInfo.md +8 -0
  9. data/docs/DeviceSharing.md +11 -0
  10. data/docs/DeviceSharingArray.md +8 -0
  11. data/docs/DeviceSharingEnvelope.md +11 -0
  12. data/docs/DeviceSharingId.md +8 -0
  13. data/docs/DeviceStatus.md +9 -0
  14. data/docs/DeviceStatusBatch.md +11 -0
  15. data/docs/DeviceStatusData.md +12 -0
  16. data/docs/DeviceStatusPut.md +8 -0
  17. data/docs/DeviceStatusPutData.md +8 -0
  18. data/docs/DevicessharesApi.md +235 -0
  19. data/docs/DevicestatusApi.md +183 -0
  20. data/docs/NotifMessage.md +15 -0
  21. data/docs/NotifMessageArray.md +8 -0
  22. data/docs/NotifMessagesResponse.md +12 -0
  23. data/docs/Subscription.md +24 -0
  24. data/docs/SubscriptionArray.md +8 -0
  25. data/docs/SubscriptionEnvelope.md +8 -0
  26. data/docs/SubscriptionInfo.md +20 -0
  27. data/docs/SubscriptionsApi.md +342 -0
  28. data/docs/SubscriptionsEnvelope.md +11 -0
  29. data/docs/TaskParameters.md +2 -0
  30. data/docs/UpdateParameters.md +8 -0
  31. data/docs/UsersApi.md +67 -1
  32. data/docs/ValidationCallbackInfo.md +9 -0
  33. data/git_push.sh +0 -12
  34. data/lib/artikcloud.rb +24 -13
  35. data/lib/artikcloud/api/device_types_api.rb +7 -55
  36. data/lib/artikcloud/api/devices_api.rb +12 -66
  37. data/lib/artikcloud/api/devices_management_api.rb +16 -118
  38. data/lib/artikcloud/api/devicesshares_api.rb +244 -0
  39. data/lib/artikcloud/api/devicestatus_api.rb +190 -0
  40. data/lib/artikcloud/api/export_api.rb +5 -41
  41. data/lib/artikcloud/api/messages_api.rb +10 -76
  42. data/lib/artikcloud/api/registrations_api.rb +4 -34
  43. data/lib/artikcloud/api/rules_api.rb +5 -41
  44. data/lib/artikcloud/api/subscriptions_api.rb +346 -0
  45. data/lib/artikcloud/api/tags_api.rb +4 -34
  46. data/lib/artikcloud/api/tokens_api.rb +5 -33
  47. data/lib/artikcloud/api/users_api.rb +79 -67
  48. data/lib/artikcloud/api_client.rb +17 -20
  49. data/lib/artikcloud/api_error.rb +8 -18
  50. data/lib/artikcloud/configuration.rb +1 -13
  51. data/lib/artikcloud/models/ack_envelope.rb +4 -16
  52. data/lib/artikcloud/models/acknowledgement.rb +4 -16
  53. data/lib/artikcloud/models/action.rb +4 -16
  54. data/lib/artikcloud/models/action_array.rb +4 -16
  55. data/lib/artikcloud/models/action_details.rb +4 -16
  56. data/lib/artikcloud/models/action_details_array.rb +4 -16
  57. data/lib/artikcloud/models/action_in.rb +4 -16
  58. data/lib/artikcloud/models/action_out.rb +4 -16
  59. data/lib/artikcloud/models/actions.rb +4 -16
  60. data/lib/artikcloud/models/aggregate_data.rb +4 -16
  61. data/lib/artikcloud/models/aggregates_histogram_data.rb +4 -16
  62. data/lib/artikcloud/models/aggregates_histogram_response.rb +4 -16
  63. data/lib/artikcloud/models/aggregates_response.rb +4 -16
  64. data/lib/artikcloud/models/app_properties.rb +8 -16
  65. data/lib/artikcloud/models/check_token_message.rb +4 -16
  66. data/lib/artikcloud/models/check_token_response.rb +4 -16
  67. data/lib/artikcloud/models/device.rb +28 -20
  68. data/lib/artikcloud/models/device_array.rb +4 -16
  69. data/lib/artikcloud/models/device_envelope.rb +8 -16
  70. data/lib/artikcloud/models/device_reg_complete_request.rb +4 -16
  71. data/lib/artikcloud/models/device_reg_confirm_user_request.rb +4 -16
  72. data/lib/artikcloud/models/device_reg_confirm_user_response.rb +4 -16
  73. data/lib/artikcloud/models/device_reg_confirm_user_response_envelope.rb +4 -16
  74. data/lib/artikcloud/models/device_reg_status_response.rb +4 -16
  75. data/lib/artikcloud/models/device_reg_status_response_envelope.rb +4 -16
  76. data/lib/artikcloud/models/device_share_info.rb +188 -0
  77. data/lib/artikcloud/models/device_sharing.rb +218 -0
  78. data/lib/artikcloud/models/device_sharing_array.rb +189 -0
  79. data/lib/artikcloud/models/device_sharing_envelope.rb +214 -0
  80. data/lib/artikcloud/models/device_sharing_id.rb +188 -0
  81. data/lib/artikcloud/models/device_status.rb +196 -0
  82. data/lib/artikcloud/models/device_status_batch.rb +216 -0
  83. data/lib/artikcloud/models/device_status_data.rb +225 -0
  84. data/lib/artikcloud/models/device_status_put.rb +187 -0
  85. data/lib/artikcloud/models/device_status_put_data.rb +187 -0
  86. data/lib/artikcloud/models/device_task.rb +4 -16
  87. data/lib/artikcloud/models/device_task_update_request.rb +4 -16
  88. data/lib/artikcloud/models/device_task_update_response.rb +4 -16
  89. data/lib/artikcloud/models/device_token.rb +20 -16
  90. data/lib/artikcloud/models/device_token_envelope.rb +8 -16
  91. data/lib/artikcloud/models/device_type.rb +4 -16
  92. data/lib/artikcloud/models/device_type_array.rb +4 -16
  93. data/lib/artikcloud/models/device_type_envelope.rb +8 -16
  94. data/lib/artikcloud/models/device_type_info.rb +4 -16
  95. data/lib/artikcloud/models/device_type_info_envelope.rb +4 -16
  96. data/lib/artikcloud/models/device_types_envelope.rb +16 -16
  97. data/lib/artikcloud/models/device_types_info.rb +4 -16
  98. data/lib/artikcloud/models/device_types_info_envelope.rb +4 -16
  99. data/lib/artikcloud/models/devices_envelope.rb +16 -16
  100. data/lib/artikcloud/models/error_envelope.rb +4 -16
  101. data/lib/artikcloud/models/event_feed_data.rb +4 -16
  102. data/lib/artikcloud/models/export_data.rb +4 -16
  103. data/lib/artikcloud/models/export_data_array.rb +4 -16
  104. data/lib/artikcloud/models/export_history_response.rb +4 -16
  105. data/lib/artikcloud/models/export_normalized_messages_response.rb +4 -16
  106. data/lib/artikcloud/models/export_request.rb +4 -16
  107. data/lib/artikcloud/models/export_request_data.rb +4 -16
  108. data/lib/artikcloud/models/export_request_info.rb +4 -16
  109. data/lib/artikcloud/models/export_request_response.rb +4 -16
  110. data/lib/artikcloud/models/export_response.rb +4 -16
  111. data/lib/artikcloud/models/export_status_response.rb +4 -16
  112. data/lib/artikcloud/models/field_path.rb +4 -16
  113. data/lib/artikcloud/models/field_presence.rb +8 -16
  114. data/lib/artikcloud/models/field_presence_envelope.rb +32 -16
  115. data/lib/artikcloud/models/fields_actions.rb +4 -16
  116. data/lib/artikcloud/models/manifest_properties.rb +8 -16
  117. data/lib/artikcloud/models/manifest_properties_envelope.rb +8 -16
  118. data/lib/artikcloud/models/manifest_versions.rb +8 -16
  119. data/lib/artikcloud/models/manifest_versions_envelope.rb +8 -16
  120. data/lib/artikcloud/models/message.rb +4 -16
  121. data/lib/artikcloud/models/message_action.rb +4 -16
  122. data/lib/artikcloud/models/message_id.rb +4 -16
  123. data/lib/artikcloud/models/message_id_envelope.rb +4 -16
  124. data/lib/artikcloud/models/message_in.rb +4 -16
  125. data/lib/artikcloud/models/message_out.rb +4 -16
  126. data/lib/artikcloud/models/metadata_envelope.rb +4 -16
  127. data/lib/artikcloud/models/metadata_properties_envelope.rb +4 -16
  128. data/lib/artikcloud/models/metadata_query_envelope.rb +4 -16
  129. data/lib/artikcloud/models/non_empty_string.rb +4 -16
  130. data/lib/artikcloud/models/normalized_action.rb +36 -16
  131. data/lib/artikcloud/models/normalized_actions_envelope.rb +16 -16
  132. data/lib/artikcloud/models/normalized_message.rb +36 -16
  133. data/lib/artikcloud/models/normalized_messages_envelope.rb +16 -16
  134. data/lib/artikcloud/models/notif_message.rb +252 -0
  135. data/lib/artikcloud/models/notif_message_array.rb +189 -0
  136. data/lib/artikcloud/models/notif_messages_response.rb +223 -0
  137. data/lib/artikcloud/models/output_rule.rb +4 -16
  138. data/lib/artikcloud/models/presence_envelope.rb +4 -16
  139. data/lib/artikcloud/models/presence_model.rb +4 -16
  140. data/lib/artikcloud/models/properties_envelope.rb +8 -16
  141. data/lib/artikcloud/models/refresh_token_response.rb +4 -16
  142. data/lib/artikcloud/models/register_message.rb +4 -16
  143. data/lib/artikcloud/models/rule_array.rb +4 -16
  144. data/lib/artikcloud/models/rule_creation_info.rb +4 -16
  145. data/lib/artikcloud/models/rule_envelope.rb +4 -16
  146. data/lib/artikcloud/models/rule_error.rb +4 -16
  147. data/lib/artikcloud/models/rule_update_info.rb +4 -16
  148. data/lib/artikcloud/models/rule_warning_output.rb +4 -16
  149. data/lib/artikcloud/models/rules_envelope.rb +4 -16
  150. data/lib/artikcloud/models/snapshot_response.rb +4 -16
  151. data/lib/artikcloud/models/snapshot_responses.rb +4 -16
  152. data/lib/artikcloud/models/snapshots_response_envelope.rb +4 -16
  153. data/lib/artikcloud/models/subscription.rb +348 -0
  154. data/lib/artikcloud/models/subscription_array.rb +189 -0
  155. data/lib/artikcloud/models/subscription_envelope.rb +187 -0
  156. data/lib/artikcloud/models/subscription_info.rb +308 -0
  157. data/lib/artikcloud/models/subscriptions_envelope.rb +214 -0
  158. data/lib/artikcloud/models/tag.rb +4 -16
  159. data/lib/artikcloud/models/tag_array.rb +4 -16
  160. data/lib/artikcloud/models/tags_envelope.rb +4 -16
  161. data/lib/artikcloud/models/task.rb +4 -16
  162. data/lib/artikcloud/models/task_by_did.rb +4 -16
  163. data/lib/artikcloud/models/task_by_did_list.rb +4 -16
  164. data/lib/artikcloud/models/task_by_did_list_envelope.rb +4 -16
  165. data/lib/artikcloud/models/task_envelope.rb +4 -16
  166. data/lib/artikcloud/models/task_history.rb +4 -16
  167. data/lib/artikcloud/models/task_history_list.rb +4 -16
  168. data/lib/artikcloud/models/task_list.rb +4 -16
  169. data/lib/artikcloud/models/task_list_envelope.rb +4 -16
  170. data/lib/artikcloud/models/task_parameters.rb +25 -17
  171. data/lib/artikcloud/models/task_request.rb +4 -16
  172. data/lib/artikcloud/models/task_status.rb +4 -16
  173. data/lib/artikcloud/models/task_status_counts.rb +4 -16
  174. data/lib/artikcloud/models/task_statuses.rb +4 -16
  175. data/lib/artikcloud/models/task_statuses_envelope.rb +4 -16
  176. data/lib/artikcloud/models/task_statuses_history_envelope.rb +4 -16
  177. data/lib/artikcloud/models/task_update_request.rb +4 -16
  178. data/lib/artikcloud/models/task_update_response.rb +4 -16
  179. data/lib/artikcloud/models/tasks_status_counts.rb +4 -16
  180. data/lib/artikcloud/models/token.rb +4 -16
  181. data/lib/artikcloud/models/token_info.rb +4 -16
  182. data/lib/artikcloud/models/token_info_success_response.rb +4 -16
  183. data/lib/artikcloud/models/token_request.rb +4 -16
  184. data/lib/artikcloud/models/token_response.rb +4 -16
  185. data/lib/artikcloud/models/unregister_device_response.rb +4 -16
  186. data/lib/artikcloud/models/unregister_device_response_envelope.rb +4 -16
  187. data/lib/artikcloud/models/update_parameters.rb +188 -0
  188. data/lib/artikcloud/models/user.rb +28 -16
  189. data/lib/artikcloud/models/user_envelope.rb +8 -16
  190. data/lib/artikcloud/models/validation_callback_info.rb +198 -0
  191. data/lib/artikcloud/models/web_socket_error.rb +4 -16
  192. data/lib/artikcloud/version.rb +2 -14
  193. data/pom.xml +1 -1
  194. data/spec/api/devicesshares_api_spec.rb +87 -0
  195. data/spec/api/devicestatus_api_spec.rb +75 -0
  196. data/spec/api/subscriptions_api_spec.rb +112 -0
  197. metadata +58 -26
@@ -0,0 +1,188 @@
1
+ =begin
2
+ #ARTIK Cloud API
3
+
4
+ #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5
+
6
+ OpenAPI spec version: 2.0.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ =end
11
+
12
+ require 'date'
13
+
14
+ module ArtikCloud
15
+ #
16
+ class DeviceSharingId
17
+ # Share ID
18
+ attr_accessor :share_id
19
+
20
+
21
+ # Attribute mapping from ruby-style variable name to JSON key.
22
+ def self.attribute_map
23
+ {
24
+ :'share_id' => :'shareId'
25
+ }
26
+ end
27
+
28
+ # Attribute type mapping.
29
+ def self.swagger_types
30
+ {
31
+ :'share_id' => :'String'
32
+ }
33
+ end
34
+
35
+ # Initializes the object
36
+ # @param [Hash] attributes Model attributes in the form of hash
37
+ def initialize(attributes = {})
38
+ return unless attributes.is_a?(Hash)
39
+
40
+ # convert string to symbol for hash key
41
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
42
+
43
+ if attributes.has_key?(:'shareId')
44
+ self.share_id = attributes[:'shareId']
45
+ end
46
+
47
+ end
48
+
49
+ # Show invalid properties with the reasons. Usually used together with valid?
50
+ # @return Array for valid properies with the reasons
51
+ def list_invalid_properties
52
+ invalid_properties = Array.new
53
+ return invalid_properties
54
+ end
55
+
56
+ # Check to see if the all the properties in the model are valid
57
+ # @return true if the model is valid
58
+ def valid?
59
+ return true
60
+ end
61
+
62
+ # Checks equality by comparing each attribute.
63
+ # @param [Object] Object to be compared
64
+ def ==(o)
65
+ return true if self.equal?(o)
66
+ self.class == o.class &&
67
+ share_id == o.share_id
68
+ end
69
+
70
+ # @see the `==` method
71
+ # @param [Object] Object to be compared
72
+ def eql?(o)
73
+ self == o
74
+ end
75
+
76
+ # Calculates hash code according to all attributes.
77
+ # @return [Fixnum] Hash code
78
+ def hash
79
+ [share_id].hash
80
+ end
81
+
82
+ # Builds the object from hash
83
+ # @param [Hash] attributes Model attributes in the form of hash
84
+ # @return [Object] Returns the model itself
85
+ def build_from_hash(attributes)
86
+ return nil unless attributes.is_a?(Hash)
87
+ self.class.swagger_types.each_pair do |key, type|
88
+ if type =~ /\AArray<(.*)>/i
89
+ # check to ensure the input is an array given that the the attribute
90
+ # is documented as an array but the input is not
91
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
92
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
93
+ end
94
+ elsif !attributes[self.class.attribute_map[key]].nil?
95
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
96
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
97
+ end
98
+
99
+ self
100
+ end
101
+
102
+ # Deserializes the data based on type
103
+ # @param string type Data type
104
+ # @param string value Value to be deserialized
105
+ # @return [Object] Deserialized data
106
+ def _deserialize(type, value)
107
+ case type.to_sym
108
+ when :DateTime
109
+ DateTime.parse(value)
110
+ when :Date
111
+ Date.parse(value)
112
+ when :String
113
+ value.to_s
114
+ when :Integer
115
+ value.to_i
116
+ when :Float
117
+ value.to_f
118
+ when :BOOLEAN
119
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
120
+ true
121
+ else
122
+ false
123
+ end
124
+ when :Object
125
+ # generic object (usually a Hash), return directly
126
+ value
127
+ when /\AArray<(?<inner_type>.+)>\z/
128
+ inner_type = Regexp.last_match[:inner_type]
129
+ value.map { |v| _deserialize(inner_type, v) }
130
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
131
+ k_type = Regexp.last_match[:k_type]
132
+ v_type = Regexp.last_match[:v_type]
133
+ {}.tap do |hash|
134
+ value.each do |k, v|
135
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
136
+ end
137
+ end
138
+ else # model
139
+ temp_model = ArtikCloud.const_get(type).new
140
+ temp_model.build_from_hash(value)
141
+ end
142
+ end
143
+
144
+ # Returns the string representation of the object
145
+ # @return [String] String presentation of the object
146
+ def to_s
147
+ to_hash.to_s
148
+ end
149
+
150
+ # to_body is an alias to to_hash (backward compatibility)
151
+ # @return [Hash] Returns the object in the form of hash
152
+ def to_body
153
+ to_hash
154
+ end
155
+
156
+ # Returns the object in the form of hash
157
+ # @return [Hash] Returns the object in the form of hash
158
+ def to_hash
159
+ hash = {}
160
+ self.class.attribute_map.each_pair do |attr, param|
161
+ value = self.send(attr)
162
+ next if value.nil?
163
+ hash[param] = _to_hash(value)
164
+ end
165
+ hash
166
+ end
167
+
168
+ # Outputs non-array value in the form of hash
169
+ # For object, use to_hash. Otherwise, just return the value
170
+ # @param [Object] value Any valid value
171
+ # @return [Hash] Returns the value in the form of hash
172
+ def _to_hash(value)
173
+ if value.is_a?(Array)
174
+ value.compact.map{ |v| _to_hash(v) }
175
+ elsif value.is_a?(Hash)
176
+ {}.tap do |hash|
177
+ value.each { |k, v| hash[k] = _to_hash(v) }
178
+ end
179
+ elsif value.respond_to? :to_hash
180
+ value.to_hash
181
+ else
182
+ value
183
+ end
184
+ end
185
+
186
+ end
187
+
188
+ end
@@ -0,0 +1,196 @@
1
+ =begin
2
+ #ARTIK Cloud API
3
+
4
+ #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5
+
6
+ OpenAPI spec version: 2.0.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ =end
11
+
12
+ require 'date'
13
+
14
+ module ArtikCloud
15
+ #
16
+ class DeviceStatus
17
+ attr_accessor :data
18
+
19
+ attr_accessor :did
20
+
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'data' => :'data',
26
+ :'did' => :'did'
27
+ }
28
+ end
29
+
30
+ # Attribute type mapping.
31
+ def self.swagger_types
32
+ {
33
+ :'data' => :'DeviceStatusData',
34
+ :'did' => :'String'
35
+ }
36
+ end
37
+
38
+ # Initializes the object
39
+ # @param [Hash] attributes Model attributes in the form of hash
40
+ def initialize(attributes = {})
41
+ return unless attributes.is_a?(Hash)
42
+
43
+ # convert string to symbol for hash key
44
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
45
+
46
+ if attributes.has_key?(:'data')
47
+ self.data = attributes[:'data']
48
+ end
49
+
50
+ if attributes.has_key?(:'did')
51
+ self.did = attributes[:'did']
52
+ end
53
+
54
+ end
55
+
56
+ # Show invalid properties with the reasons. Usually used together with valid?
57
+ # @return Array for valid properies with the reasons
58
+ def list_invalid_properties
59
+ invalid_properties = Array.new
60
+ return invalid_properties
61
+ end
62
+
63
+ # Check to see if the all the properties in the model are valid
64
+ # @return true if the model is valid
65
+ def valid?
66
+ return true
67
+ end
68
+
69
+ # Checks equality by comparing each attribute.
70
+ # @param [Object] Object to be compared
71
+ def ==(o)
72
+ return true if self.equal?(o)
73
+ self.class == o.class &&
74
+ data == o.data &&
75
+ did == o.did
76
+ end
77
+
78
+ # @see the `==` method
79
+ # @param [Object] Object to be compared
80
+ def eql?(o)
81
+ self == o
82
+ end
83
+
84
+ # Calculates hash code according to all attributes.
85
+ # @return [Fixnum] Hash code
86
+ def hash
87
+ [data, did].hash
88
+ end
89
+
90
+ # Builds the object from hash
91
+ # @param [Hash] attributes Model attributes in the form of hash
92
+ # @return [Object] Returns the model itself
93
+ def build_from_hash(attributes)
94
+ return nil unless attributes.is_a?(Hash)
95
+ self.class.swagger_types.each_pair do |key, type|
96
+ if type =~ /\AArray<(.*)>/i
97
+ # check to ensure the input is an array given that the the attribute
98
+ # is documented as an array but the input is not
99
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
100
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
101
+ end
102
+ elsif !attributes[self.class.attribute_map[key]].nil?
103
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
104
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
105
+ end
106
+
107
+ self
108
+ end
109
+
110
+ # Deserializes the data based on type
111
+ # @param string type Data type
112
+ # @param string value Value to be deserialized
113
+ # @return [Object] Deserialized data
114
+ def _deserialize(type, value)
115
+ case type.to_sym
116
+ when :DateTime
117
+ DateTime.parse(value)
118
+ when :Date
119
+ Date.parse(value)
120
+ when :String
121
+ value.to_s
122
+ when :Integer
123
+ value.to_i
124
+ when :Float
125
+ value.to_f
126
+ when :BOOLEAN
127
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
128
+ true
129
+ else
130
+ false
131
+ end
132
+ when :Object
133
+ # generic object (usually a Hash), return directly
134
+ value
135
+ when /\AArray<(?<inner_type>.+)>\z/
136
+ inner_type = Regexp.last_match[:inner_type]
137
+ value.map { |v| _deserialize(inner_type, v) }
138
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
139
+ k_type = Regexp.last_match[:k_type]
140
+ v_type = Regexp.last_match[:v_type]
141
+ {}.tap do |hash|
142
+ value.each do |k, v|
143
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
144
+ end
145
+ end
146
+ else # model
147
+ temp_model = ArtikCloud.const_get(type).new
148
+ temp_model.build_from_hash(value)
149
+ end
150
+ end
151
+
152
+ # Returns the string representation of the object
153
+ # @return [String] String presentation of the object
154
+ def to_s
155
+ to_hash.to_s
156
+ end
157
+
158
+ # to_body is an alias to to_hash (backward compatibility)
159
+ # @return [Hash] Returns the object in the form of hash
160
+ def to_body
161
+ to_hash
162
+ end
163
+
164
+ # Returns the object in the form of hash
165
+ # @return [Hash] Returns the object in the form of hash
166
+ def to_hash
167
+ hash = {}
168
+ self.class.attribute_map.each_pair do |attr, param|
169
+ value = self.send(attr)
170
+ next if value.nil?
171
+ hash[param] = _to_hash(value)
172
+ end
173
+ hash
174
+ end
175
+
176
+ # Outputs non-array value in the form of hash
177
+ # For object, use to_hash. Otherwise, just return the value
178
+ # @param [Object] value Any valid value
179
+ # @return [Hash] Returns the value in the form of hash
180
+ def _to_hash(value)
181
+ if value.is_a?(Array)
182
+ value.compact.map{ |v| _to_hash(v) }
183
+ elsif value.is_a?(Hash)
184
+ {}.tap do |hash|
185
+ value.each { |k, v| hash[k] = _to_hash(v) }
186
+ end
187
+ elsif value.respond_to? :to_hash
188
+ value.to_hash
189
+ else
190
+ value
191
+ end
192
+ end
193
+
194
+ end
195
+
196
+ end
@@ -0,0 +1,216 @@
1
+ =begin
2
+ #ARTIK Cloud API
3
+
4
+ #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5
+
6
+ OpenAPI spec version: 2.0.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ =end
11
+
12
+ require 'date'
13
+
14
+ module ArtikCloud
15
+ #
16
+ class DeviceStatusBatch
17
+ attr_accessor :total
18
+
19
+ attr_accessor :offset
20
+
21
+ attr_accessor :data
22
+
23
+ attr_accessor :count
24
+
25
+
26
+ # Attribute mapping from ruby-style variable name to JSON key.
27
+ def self.attribute_map
28
+ {
29
+ :'total' => :'total',
30
+ :'offset' => :'offset',
31
+ :'data' => :'data',
32
+ :'count' => :'count'
33
+ }
34
+ end
35
+
36
+ # Attribute type mapping.
37
+ def self.swagger_types
38
+ {
39
+ :'total' => :'Integer',
40
+ :'offset' => :'Integer',
41
+ :'data' => :'Array<DeviceStatus>',
42
+ :'count' => :'Integer'
43
+ }
44
+ end
45
+
46
+ # Initializes the object
47
+ # @param [Hash] attributes Model attributes in the form of hash
48
+ def initialize(attributes = {})
49
+ return unless attributes.is_a?(Hash)
50
+
51
+ # convert string to symbol for hash key
52
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
53
+
54
+ if attributes.has_key?(:'total')
55
+ self.total = attributes[:'total']
56
+ end
57
+
58
+ if attributes.has_key?(:'offset')
59
+ self.offset = attributes[:'offset']
60
+ end
61
+
62
+ if attributes.has_key?(:'data')
63
+ if (value = attributes[:'data']).is_a?(Array)
64
+ self.data = value
65
+ end
66
+ end
67
+
68
+ if attributes.has_key?(:'count')
69
+ self.count = attributes[:'count']
70
+ end
71
+
72
+ end
73
+
74
+ # Show invalid properties with the reasons. Usually used together with valid?
75
+ # @return Array for valid properies with the reasons
76
+ def list_invalid_properties
77
+ invalid_properties = Array.new
78
+ return invalid_properties
79
+ end
80
+
81
+ # Check to see if the all the properties in the model are valid
82
+ # @return true if the model is valid
83
+ def valid?
84
+ return true
85
+ end
86
+
87
+ # Checks equality by comparing each attribute.
88
+ # @param [Object] Object to be compared
89
+ def ==(o)
90
+ return true if self.equal?(o)
91
+ self.class == o.class &&
92
+ total == o.total &&
93
+ offset == o.offset &&
94
+ data == o.data &&
95
+ count == o.count
96
+ end
97
+
98
+ # @see the `==` method
99
+ # @param [Object] Object to be compared
100
+ def eql?(o)
101
+ self == o
102
+ end
103
+
104
+ # Calculates hash code according to all attributes.
105
+ # @return [Fixnum] Hash code
106
+ def hash
107
+ [total, offset, data, count].hash
108
+ end
109
+
110
+ # Builds the object from hash
111
+ # @param [Hash] attributes Model attributes in the form of hash
112
+ # @return [Object] Returns the model itself
113
+ def build_from_hash(attributes)
114
+ return nil unless attributes.is_a?(Hash)
115
+ self.class.swagger_types.each_pair do |key, type|
116
+ if type =~ /\AArray<(.*)>/i
117
+ # check to ensure the input is an array given that the the attribute
118
+ # is documented as an array but the input is not
119
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
120
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
121
+ end
122
+ elsif !attributes[self.class.attribute_map[key]].nil?
123
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
124
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
125
+ end
126
+
127
+ self
128
+ end
129
+
130
+ # Deserializes the data based on type
131
+ # @param string type Data type
132
+ # @param string value Value to be deserialized
133
+ # @return [Object] Deserialized data
134
+ def _deserialize(type, value)
135
+ case type.to_sym
136
+ when :DateTime
137
+ DateTime.parse(value)
138
+ when :Date
139
+ Date.parse(value)
140
+ when :String
141
+ value.to_s
142
+ when :Integer
143
+ value.to_i
144
+ when :Float
145
+ value.to_f
146
+ when :BOOLEAN
147
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
148
+ true
149
+ else
150
+ false
151
+ end
152
+ when :Object
153
+ # generic object (usually a Hash), return directly
154
+ value
155
+ when /\AArray<(?<inner_type>.+)>\z/
156
+ inner_type = Regexp.last_match[:inner_type]
157
+ value.map { |v| _deserialize(inner_type, v) }
158
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
159
+ k_type = Regexp.last_match[:k_type]
160
+ v_type = Regexp.last_match[:v_type]
161
+ {}.tap do |hash|
162
+ value.each do |k, v|
163
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
164
+ end
165
+ end
166
+ else # model
167
+ temp_model = ArtikCloud.const_get(type).new
168
+ temp_model.build_from_hash(value)
169
+ end
170
+ end
171
+
172
+ # Returns the string representation of the object
173
+ # @return [String] String presentation of the object
174
+ def to_s
175
+ to_hash.to_s
176
+ end
177
+
178
+ # to_body is an alias to to_hash (backward compatibility)
179
+ # @return [Hash] Returns the object in the form of hash
180
+ def to_body
181
+ to_hash
182
+ end
183
+
184
+ # Returns the object in the form of hash
185
+ # @return [Hash] Returns the object in the form of hash
186
+ def to_hash
187
+ hash = {}
188
+ self.class.attribute_map.each_pair do |attr, param|
189
+ value = self.send(attr)
190
+ next if value.nil?
191
+ hash[param] = _to_hash(value)
192
+ end
193
+ hash
194
+ end
195
+
196
+ # Outputs non-array value in the form of hash
197
+ # For object, use to_hash. Otherwise, just return the value
198
+ # @param [Object] value Any valid value
199
+ # @return [Hash] Returns the value in the form of hash
200
+ def _to_hash(value)
201
+ if value.is_a?(Array)
202
+ value.compact.map{ |v| _to_hash(v) }
203
+ elsif value.is_a?(Hash)
204
+ {}.tap do |hash|
205
+ value.each { |k, v| hash[k] = _to_hash(v) }
206
+ end
207
+ elsif value.respond_to? :to_hash
208
+ value.to_hash
209
+ else
210
+ value
211
+ end
212
+ end
213
+
214
+ end
215
+
216
+ end