autosde_openapi_client 1.0.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 (181) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +207 -0
  4. data/Rakefile +10 -0
  5. data/autosde_openapi_client.gemspec +39 -0
  6. data/docs/AbstractCapability.md +19 -0
  7. data/docs/AbstractCapabilityApi.md +204 -0
  8. data/docs/Account.md +21 -0
  9. data/docs/AccountApi.md +256 -0
  10. data/docs/AccountPostRequest.md +19 -0
  11. data/docs/AccountPostResponse.md +23 -0
  12. data/docs/Address.md +31 -0
  13. data/docs/AddressApi.md +204 -0
  14. data/docs/AddressCreate.md +31 -0
  15. data/docs/AuthResponse.md +17 -0
  16. data/docs/Authentication.md +19 -0
  17. data/docs/AuthenticationApi.md +53 -0
  18. data/docs/AutoSDEProject.md +55 -0
  19. data/docs/AutoSDEProjectApi.md +204 -0
  20. data/docs/AutoSDERole.md +19 -0
  21. data/docs/AutoSDERoleApi.md +204 -0
  22. data/docs/CapabilityTranslation.md +35 -0
  23. data/docs/CapabilityTranslationApi.md +204 -0
  24. data/docs/CapabilityTranslationCreate.md +31 -0
  25. data/docs/Host.md +29 -0
  26. data/docs/HostApi.md +204 -0
  27. data/docs/HostCreate.md +39 -0
  28. data/docs/HostVolumeConnection.md +23 -0
  29. data/docs/HostVolumeConnectionApi.md +204 -0
  30. data/docs/HostVolumeConnectionCreate.md +21 -0
  31. data/docs/NativeCapability.md +23 -0
  32. data/docs/NativeCapabilityApi.md +204 -0
  33. data/docs/Profile.md +25 -0
  34. data/docs/ProfileApi.md +204 -0
  35. data/docs/ProvisioningStrategy.md +19 -0
  36. data/docs/ProvisioningStrategyApi.md +204 -0
  37. data/docs/Service.md +35 -0
  38. data/docs/ServiceAbstractCapabilityValue.md +21 -0
  39. data/docs/ServiceApi.md +256 -0
  40. data/docs/ServiceCreate.md +33 -0
  41. data/docs/ServiceResourceAttachment.md +23 -0
  42. data/docs/ServiceResourceAttachmentApi.md +204 -0
  43. data/docs/StorageResource.md +33 -0
  44. data/docs/StorageResourceApi.md +256 -0
  45. data/docs/StorageResourceCreate.md +31 -0
  46. data/docs/StorageResourceResponse.md +33 -0
  47. data/docs/StorageSystem.md +29 -0
  48. data/docs/StorageSystemApi.md +204 -0
  49. data/docs/StorageSystemCreate.md +49 -0
  50. data/docs/SystemType.md +25 -0
  51. data/docs/SystemTypeApi.md +204 -0
  52. data/docs/SystemTypeCreate.md +27 -0
  53. data/docs/Volume.md +31 -0
  54. data/docs/VolumeApi.md +256 -0
  55. data/docs/VolumeCreate.md +27 -0
  56. data/docs/VolumeResponse.md +31 -0
  57. data/docs/VolumeSafeDelete.md +21 -0
  58. data/docs/VolumeSafeDeleteApi.md +204 -0
  59. data/docs/VolumeSafeDeleteCreate.md +17 -0
  60. data/docs/VolumeUpdate.md +17 -0
  61. data/git_push.sh +58 -0
  62. data/lib/autosde_openapi_client.rb +94 -0
  63. data/lib/autosde_openapi_client/api/abstract_capability_api.rb +250 -0
  64. data/lib/autosde_openapi_client/api/account_api.rb +316 -0
  65. data/lib/autosde_openapi_client/api/address_api.rb +250 -0
  66. data/lib/autosde_openapi_client/api/authentication_api.rb +82 -0
  67. data/lib/autosde_openapi_client/api/auto_sde_project_api.rb +250 -0
  68. data/lib/autosde_openapi_client/api/auto_sde_role_api.rb +250 -0
  69. data/lib/autosde_openapi_client/api/capability_translation_api.rb +250 -0
  70. data/lib/autosde_openapi_client/api/host_api.rb +250 -0
  71. data/lib/autosde_openapi_client/api/host_volume_connection_api.rb +250 -0
  72. data/lib/autosde_openapi_client/api/native_capability_api.rb +250 -0
  73. data/lib/autosde_openapi_client/api/profile_api.rb +250 -0
  74. data/lib/autosde_openapi_client/api/provisioning_strategy_api.rb +250 -0
  75. data/lib/autosde_openapi_client/api/service_api.rb +316 -0
  76. data/lib/autosde_openapi_client/api/service_resource_attachment_api.rb +250 -0
  77. data/lib/autosde_openapi_client/api/storage_resource_api.rb +316 -0
  78. data/lib/autosde_openapi_client/api/storage_system_api.rb +250 -0
  79. data/lib/autosde_openapi_client/api/system_type_api.rb +250 -0
  80. data/lib/autosde_openapi_client/api/volume_api.rb +316 -0
  81. data/lib/autosde_openapi_client/api/volume_safe_delete_api.rb +250 -0
  82. data/lib/autosde_openapi_client/api_client.rb +388 -0
  83. data/lib/autosde_openapi_client/api_error.rb +57 -0
  84. data/lib/autosde_openapi_client/configuration.rb +266 -0
  85. data/lib/autosde_openapi_client/models/abstract_capability.rb +218 -0
  86. data/lib/autosde_openapi_client/models/account.rb +228 -0
  87. data/lib/autosde_openapi_client/models/account_post_request.rb +218 -0
  88. data/lib/autosde_openapi_client/models/account_post_response.rb +238 -0
  89. data/lib/autosde_openapi_client/models/address.rb +328 -0
  90. data/lib/autosde_openapi_client/models/address_create.rb +330 -0
  91. data/lib/autosde_openapi_client/models/auth_response.rb +208 -0
  92. data/lib/autosde_openapi_client/models/authentication.rb +218 -0
  93. data/lib/autosde_openapi_client/models/auto_sde_project.rb +398 -0
  94. data/lib/autosde_openapi_client/models/auto_sde_role.rb +218 -0
  95. data/lib/autosde_openapi_client/models/capability_translation.rb +328 -0
  96. data/lib/autosde_openapi_client/models/capability_translation_create.rb +310 -0
  97. data/lib/autosde_openapi_client/models/host.rb +321 -0
  98. data/lib/autosde_openapi_client/models/host_create.rb +382 -0
  99. data/lib/autosde_openapi_client/models/host_volume_connection.rb +275 -0
  100. data/lib/autosde_openapi_client/models/host_volume_connection_create.rb +265 -0
  101. data/lib/autosde_openapi_client/models/native_capability.rb +239 -0
  102. data/lib/autosde_openapi_client/models/profile.rb +283 -0
  103. data/lib/autosde_openapi_client/models/provisioning_strategy.rb +257 -0
  104. data/lib/autosde_openapi_client/models/service.rb +339 -0
  105. data/lib/autosde_openapi_client/models/service_abstract_capability_value.rb +227 -0
  106. data/lib/autosde_openapi_client/models/service_create.rb +327 -0
  107. data/lib/autosde_openapi_client/models/service_resource_attachment.rb +238 -0
  108. data/lib/autosde_openapi_client/models/storage_resource.rb +342 -0
  109. data/lib/autosde_openapi_client/models/storage_resource_create.rb +333 -0
  110. data/lib/autosde_openapi_client/models/storage_resource_response.rb +343 -0
  111. data/lib/autosde_openapi_client/models/storage_system.rb +333 -0
  112. data/lib/autosde_openapi_client/models/storage_system_create.rb +448 -0
  113. data/lib/autosde_openapi_client/models/system_type.rb +321 -0
  114. data/lib/autosde_openapi_client/models/system_type_create.rb +333 -0
  115. data/lib/autosde_openapi_client/models/volume.rb +316 -0
  116. data/lib/autosde_openapi_client/models/volume_create.rb +299 -0
  117. data/lib/autosde_openapi_client/models/volume_response.rb +318 -0
  118. data/lib/autosde_openapi_client/models/volume_safe_delete.rb +227 -0
  119. data/lib/autosde_openapi_client/models/volume_safe_delete_create.rb +207 -0
  120. data/lib/autosde_openapi_client/models/volume_update.rb +208 -0
  121. data/lib/autosde_openapi_client/version.rb +15 -0
  122. data/site_manager_oas.json +3992 -0
  123. data/spec/api/abstract_capability_api_spec.rb +74 -0
  124. data/spec/api/account_api_spec.rb +85 -0
  125. data/spec/api/address_api_spec.rb +74 -0
  126. data/spec/api/authentication_api_spec.rb +45 -0
  127. data/spec/api/auto_sde_project_api_spec.rb +74 -0
  128. data/spec/api/auto_sde_role_api_spec.rb +74 -0
  129. data/spec/api/capability_translation_api_spec.rb +74 -0
  130. data/spec/api/host_api_spec.rb +74 -0
  131. data/spec/api/host_volume_connection_api_spec.rb +74 -0
  132. data/spec/api/native_capability_api_spec.rb +74 -0
  133. data/spec/api/profile_api_spec.rb +74 -0
  134. data/spec/api/provisioning_strategy_api_spec.rb +74 -0
  135. data/spec/api/service_api_spec.rb +85 -0
  136. data/spec/api/service_resource_attachment_api_spec.rb +74 -0
  137. data/spec/api/storage_resource_api_spec.rb +85 -0
  138. data/spec/api/storage_system_api_spec.rb +74 -0
  139. data/spec/api/system_type_api_spec.rb +74 -0
  140. data/spec/api/volume_api_spec.rb +85 -0
  141. data/spec/api/volume_safe_delete_api_spec.rb +74 -0
  142. data/spec/api_client_spec.rb +226 -0
  143. data/spec/configuration_spec.rb +42 -0
  144. data/spec/models/abstract_capability_spec.rb +47 -0
  145. data/spec/models/account_post_request_spec.rb +47 -0
  146. data/spec/models/account_post_response_spec.rb +59 -0
  147. data/spec/models/account_spec.rb +53 -0
  148. data/spec/models/address_create_spec.rb +91 -0
  149. data/spec/models/address_spec.rb +91 -0
  150. data/spec/models/auth_response_spec.rb +41 -0
  151. data/spec/models/authentication_spec.rb +47 -0
  152. data/spec/models/auto_sde_project_spec.rb +155 -0
  153. data/spec/models/auto_sde_role_spec.rb +47 -0
  154. data/spec/models/capability_translation_create_spec.rb +83 -0
  155. data/spec/models/capability_translation_spec.rb +95 -0
  156. data/spec/models/host_create_spec.rb +119 -0
  157. data/spec/models/host_spec.rb +85 -0
  158. data/spec/models/host_volume_connection_create_spec.rb +57 -0
  159. data/spec/models/host_volume_connection_spec.rb +63 -0
  160. data/spec/models/native_capability_spec.rb +59 -0
  161. data/spec/models/profile_spec.rb +69 -0
  162. data/spec/models/provisioning_strategy_spec.rb +51 -0
  163. data/spec/models/service_abstract_capability_value_spec.rb +53 -0
  164. data/spec/models/service_create_spec.rb +93 -0
  165. data/spec/models/service_resource_attachment_spec.rb +59 -0
  166. data/spec/models/service_spec.rb +99 -0
  167. data/spec/models/storage_resource_create_spec.rb +91 -0
  168. data/spec/models/storage_resource_response_spec.rb +97 -0
  169. data/spec/models/storage_resource_spec.rb +97 -0
  170. data/spec/models/storage_system_create_spec.rb +149 -0
  171. data/spec/models/storage_system_spec.rb +85 -0
  172. data/spec/models/system_type_create_spec.rb +79 -0
  173. data/spec/models/system_type_spec.rb +73 -0
  174. data/spec/models/volume_create_spec.rb +75 -0
  175. data/spec/models/volume_response_spec.rb +87 -0
  176. data/spec/models/volume_safe_delete_create_spec.rb +41 -0
  177. data/spec/models/volume_safe_delete_spec.rb +53 -0
  178. data/spec/models/volume_spec.rb +87 -0
  179. data/spec/models/volume_update_spec.rb +41 -0
  180. data/spec/spec_helper.rb +111 -0
  181. metadata +340 -0
@@ -0,0 +1,339 @@
1
+ =begin
2
+ #Site Manager API
3
+
4
+ #Site Manager API
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: autosde@il.ibm.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module OpenapiClient
16
+ # Service
17
+ class Service
18
+ attr_accessor :capability_values
19
+
20
+ # component_state
21
+ attr_accessor :component_state
22
+
23
+ # description
24
+ attr_accessor :description
25
+
26
+ # name
27
+ attr_accessor :name
28
+
29
+ attr_accessor :profile
30
+
31
+ attr_accessor :project
32
+
33
+ attr_accessor :provisioning_strategy
34
+
35
+ # resource_service
36
+ attr_accessor :resource_service
37
+
38
+ # uuid
39
+ attr_accessor :uuid
40
+
41
+ # The version of the service
42
+ attr_accessor :version
43
+
44
+ class EnumAttributeValidator
45
+ attr_reader :datatype
46
+ attr_reader :allowable_values
47
+
48
+ def initialize(datatype, allowable_values)
49
+ @allowable_values = allowable_values.map do |value|
50
+ case datatype.to_s
51
+ when /Integer/i
52
+ value.to_i
53
+ when /Float/i
54
+ value.to_f
55
+ else
56
+ value
57
+ end
58
+ end
59
+ end
60
+
61
+ def valid?(value)
62
+ !value || allowable_values.include?(value)
63
+ end
64
+ end
65
+
66
+ # Attribute mapping from ruby-style variable name to JSON key.
67
+ def self.attribute_map
68
+ {
69
+ :'capability_values' => :'capability_values',
70
+ :'component_state' => :'component_state',
71
+ :'description' => :'description',
72
+ :'name' => :'name',
73
+ :'profile' => :'profile',
74
+ :'project' => :'project',
75
+ :'provisioning_strategy' => :'provisioning_strategy',
76
+ :'resource_service' => :'resource_service',
77
+ :'uuid' => :'uuid',
78
+ :'version' => :'version'
79
+ }
80
+ end
81
+
82
+ # Attribute type mapping.
83
+ def self.openapi_types
84
+ {
85
+ :'capability_values' => :'ServiceAbstractCapabilityValue',
86
+ :'component_state' => :'String',
87
+ :'description' => :'String',
88
+ :'name' => :'String',
89
+ :'profile' => :'Profile',
90
+ :'project' => :'AutoSDEProject',
91
+ :'provisioning_strategy' => :'ProvisioningStrategy',
92
+ :'resource_service' => :'Boolean',
93
+ :'uuid' => :'String',
94
+ :'version' => :'Integer'
95
+ }
96
+ end
97
+
98
+ # List of attributes with nullable: true
99
+ def self.openapi_nullable
100
+ Set.new([
101
+ ])
102
+ end
103
+
104
+ # Initializes the object
105
+ # @param [Hash] attributes Model attributes in the form of hash
106
+ def initialize(attributes = {})
107
+ if (!attributes.is_a?(Hash))
108
+ fail ArgumentError, "The input argument (attributes) must be a hash in `OpenapiClient::Service` initialize method"
109
+ end
110
+
111
+ # check to see if the attribute exists and convert string to symbol for hash key
112
+ attributes = attributes.each_with_object({}) { |(k, v), h|
113
+ if (!self.class.attribute_map.key?(k.to_sym))
114
+ fail ArgumentError, "`#{k}` is not a valid attribute in `OpenapiClient::Service`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
115
+ end
116
+ h[k.to_sym] = v
117
+ }
118
+
119
+ if attributes.key?(:'capability_values')
120
+ self.capability_values = attributes[:'capability_values']
121
+ end
122
+
123
+ if attributes.key?(:'component_state')
124
+ self.component_state = attributes[:'component_state']
125
+ end
126
+
127
+ if attributes.key?(:'description')
128
+ self.description = attributes[:'description']
129
+ else
130
+ self.description = ''
131
+ end
132
+
133
+ if attributes.key?(:'name')
134
+ self.name = attributes[:'name']
135
+ end
136
+
137
+ if attributes.key?(:'profile')
138
+ self.profile = attributes[:'profile']
139
+ end
140
+
141
+ if attributes.key?(:'project')
142
+ self.project = attributes[:'project']
143
+ end
144
+
145
+ if attributes.key?(:'provisioning_strategy')
146
+ self.provisioning_strategy = attributes[:'provisioning_strategy']
147
+ end
148
+
149
+ if attributes.key?(:'resource_service')
150
+ self.resource_service = attributes[:'resource_service']
151
+ else
152
+ self.resource_service = false
153
+ end
154
+
155
+ if attributes.key?(:'uuid')
156
+ self.uuid = attributes[:'uuid']
157
+ end
158
+
159
+ if attributes.key?(:'version')
160
+ self.version = attributes[:'version']
161
+ else
162
+ self.version = 1
163
+ end
164
+ end
165
+
166
+ # Show invalid properties with the reasons. Usually used together with valid?
167
+ # @return Array for valid properties with the reasons
168
+ def list_invalid_properties
169
+ invalid_properties = Array.new
170
+ if !@component_state.nil? && @component_state.to_s.length > 32
171
+ invalid_properties.push('invalid value for "component_state", the character length must be smaller than or equal to 32.')
172
+ end
173
+
174
+ invalid_properties
175
+ end
176
+
177
+ # Check to see if the all the properties in the model are valid
178
+ # @return true if the model is valid
179
+ def valid?
180
+ component_state_validator = EnumAttributeValidator.new('String', ["PENDING_CREATION", "CREATED", "DELETED", "PENDING_DELETION", "MODIFICATION", "PENDING_MODIFICATION"])
181
+ return false unless component_state_validator.valid?(@component_state)
182
+ return false if !@component_state.nil? && @component_state.to_s.length > 32
183
+ true
184
+ end
185
+
186
+ # Custom attribute writer method checking allowed values (enum).
187
+ # @param [Object] component_state Object to be assigned
188
+ def component_state=(component_state)
189
+ validator = EnumAttributeValidator.new('String', ["PENDING_CREATION", "CREATED", "DELETED", "PENDING_DELETION", "MODIFICATION", "PENDING_MODIFICATION"])
190
+ unless validator.valid?(component_state)
191
+ fail ArgumentError, "invalid value for \"component_state\", must be one of #{validator.allowable_values}."
192
+ end
193
+ @component_state = component_state
194
+ end
195
+
196
+ # Checks equality by comparing each attribute.
197
+ # @param [Object] Object to be compared
198
+ def ==(o)
199
+ return true if self.equal?(o)
200
+ self.class == o.class &&
201
+ capability_values == o.capability_values &&
202
+ component_state == o.component_state &&
203
+ description == o.description &&
204
+ name == o.name &&
205
+ profile == o.profile &&
206
+ project == o.project &&
207
+ provisioning_strategy == o.provisioning_strategy &&
208
+ resource_service == o.resource_service &&
209
+ uuid == o.uuid &&
210
+ version == o.version
211
+ end
212
+
213
+ # @see the `==` method
214
+ # @param [Object] Object to be compared
215
+ def eql?(o)
216
+ self == o
217
+ end
218
+
219
+ # Calculates hash code according to all attributes.
220
+ # @return [Integer] Hash code
221
+ def hash
222
+ [capability_values, component_state, description, name, profile, project, provisioning_strategy, resource_service, uuid, version].hash
223
+ end
224
+
225
+ # Builds the object from hash
226
+ # @param [Hash] attributes Model attributes in the form of hash
227
+ # @return [Object] Returns the model itself
228
+ def self.build_from_hash(attributes)
229
+ new.build_from_hash(attributes)
230
+ end
231
+
232
+ # Builds the object from hash
233
+ # @param [Hash] attributes Model attributes in the form of hash
234
+ # @return [Object] Returns the model itself
235
+ def build_from_hash(attributes)
236
+ return nil unless attributes.is_a?(Hash)
237
+ self.class.openapi_types.each_pair do |key, type|
238
+ if type =~ /\AArray<(.*)>/i
239
+ # check to ensure the input is an array given that the attribute
240
+ # is documented as an array but the input is not
241
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
242
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
243
+ end
244
+ elsif !attributes[self.class.attribute_map[key]].nil?
245
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
246
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
247
+ end
248
+
249
+ self
250
+ end
251
+
252
+ # Deserializes the data based on type
253
+ # @param string type Data type
254
+ # @param string value Value to be deserialized
255
+ # @return [Object] Deserialized data
256
+ def _deserialize(type, value)
257
+ case type.to_sym
258
+ when :DateTime
259
+ DateTime.parse(value)
260
+ when :Date
261
+ Date.parse(value)
262
+ when :String
263
+ value.to_s
264
+ when :Integer
265
+ value.to_i
266
+ when :Float
267
+ value.to_f
268
+ when :Boolean
269
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
270
+ true
271
+ else
272
+ false
273
+ end
274
+ when :Object
275
+ # generic object (usually a Hash), return directly
276
+ value
277
+ when /\AArray<(?<inner_type>.+)>\z/
278
+ inner_type = Regexp.last_match[:inner_type]
279
+ value.map { |v| _deserialize(inner_type, v) }
280
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
281
+ k_type = Regexp.last_match[:k_type]
282
+ v_type = Regexp.last_match[:v_type]
283
+ {}.tap do |hash|
284
+ value.each do |k, v|
285
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
286
+ end
287
+ end
288
+ else # model
289
+ OpenapiClient.const_get(type).build_from_hash(value)
290
+ end
291
+ end
292
+
293
+ # Returns the string representation of the object
294
+ # @return [String] String presentation of the object
295
+ def to_s
296
+ to_hash.to_s
297
+ end
298
+
299
+ # to_body is an alias to to_hash (backward compatibility)
300
+ # @return [Hash] Returns the object in the form of hash
301
+ def to_body
302
+ to_hash
303
+ end
304
+
305
+ # Returns the object in the form of hash
306
+ # @return [Hash] Returns the object in the form of hash
307
+ def to_hash
308
+ hash = {}
309
+ self.class.attribute_map.each_pair do |attr, param|
310
+ value = self.send(attr)
311
+ if value.nil?
312
+ is_nullable = self.class.openapi_nullable.include?(attr)
313
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
314
+ end
315
+
316
+ hash[param] = _to_hash(value)
317
+ end
318
+ hash
319
+ end
320
+
321
+ # Outputs non-array value in the form of hash
322
+ # For object, use to_hash. Otherwise, just return the value
323
+ # @param [Object] value Any valid value
324
+ # @return [Hash] Returns the value in the form of hash
325
+ def _to_hash(value)
326
+ if value.is_a?(Array)
327
+ value.compact.map { |v| _to_hash(v) }
328
+ elsif value.is_a?(Hash)
329
+ {}.tap do |hash|
330
+ value.each { |k, v| hash[k] = _to_hash(v) }
331
+ end
332
+ elsif value.respond_to? :to_hash
333
+ value.to_hash
334
+ else
335
+ value
336
+ end
337
+ end
338
+ end
339
+ end
@@ -0,0 +1,227 @@
1
+ =begin
2
+ #Site Manager API
3
+
4
+ #Site Manager API
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: autosde@il.ibm.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module OpenapiClient
16
+ # ServiceAbstractCapabilityValue
17
+ class ServiceAbstractCapabilityValue
18
+ attr_accessor :abstract_capability
19
+
20
+ # uuid
21
+ attr_accessor :uuid
22
+
23
+ # value
24
+ attr_accessor :value
25
+
26
+ # Attribute mapping from ruby-style variable name to JSON key.
27
+ def self.attribute_map
28
+ {
29
+ :'abstract_capability' => :'abstract_capability',
30
+ :'uuid' => :'uuid',
31
+ :'value' => :'value'
32
+ }
33
+ end
34
+
35
+ # Attribute type mapping.
36
+ def self.openapi_types
37
+ {
38
+ :'abstract_capability' => :'AbstractCapability',
39
+ :'uuid' => :'String',
40
+ :'value' => :'String'
41
+ }
42
+ end
43
+
44
+ # List of attributes with nullable: true
45
+ def self.openapi_nullable
46
+ Set.new([
47
+ ])
48
+ end
49
+
50
+ # Initializes the object
51
+ # @param [Hash] attributes Model attributes in the form of hash
52
+ def initialize(attributes = {})
53
+ if (!attributes.is_a?(Hash))
54
+ fail ArgumentError, "The input argument (attributes) must be a hash in `OpenapiClient::ServiceAbstractCapabilityValue` initialize method"
55
+ end
56
+
57
+ # check to see if the attribute exists and convert string to symbol for hash key
58
+ attributes = attributes.each_with_object({}) { |(k, v), h|
59
+ if (!self.class.attribute_map.key?(k.to_sym))
60
+ fail ArgumentError, "`#{k}` is not a valid attribute in `OpenapiClient::ServiceAbstractCapabilityValue`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
61
+ end
62
+ h[k.to_sym] = v
63
+ }
64
+
65
+ if attributes.key?(:'abstract_capability')
66
+ self.abstract_capability = attributes[:'abstract_capability']
67
+ end
68
+
69
+ if attributes.key?(:'uuid')
70
+ self.uuid = attributes[:'uuid']
71
+ end
72
+
73
+ if attributes.key?(:'value')
74
+ self.value = attributes[:'value']
75
+ end
76
+ end
77
+
78
+ # Show invalid properties with the reasons. Usually used together with valid?
79
+ # @return Array for valid properties with the reasons
80
+ def list_invalid_properties
81
+ invalid_properties = Array.new
82
+ invalid_properties
83
+ end
84
+
85
+ # Check to see if the all the properties in the model are valid
86
+ # @return true if the model is valid
87
+ def valid?
88
+ true
89
+ end
90
+
91
+ # Checks equality by comparing each attribute.
92
+ # @param [Object] Object to be compared
93
+ def ==(o)
94
+ return true if self.equal?(o)
95
+ self.class == o.class &&
96
+ abstract_capability == o.abstract_capability &&
97
+ uuid == o.uuid &&
98
+ value == o.value
99
+ end
100
+
101
+ # @see the `==` method
102
+ # @param [Object] Object to be compared
103
+ def eql?(o)
104
+ self == o
105
+ end
106
+
107
+ # Calculates hash code according to all attributes.
108
+ # @return [Integer] Hash code
109
+ def hash
110
+ [abstract_capability, uuid, value].hash
111
+ end
112
+
113
+ # Builds the object from hash
114
+ # @param [Hash] attributes Model attributes in the form of hash
115
+ # @return [Object] Returns the model itself
116
+ def self.build_from_hash(attributes)
117
+ new.build_from_hash(attributes)
118
+ end
119
+
120
+ # Builds the object from hash
121
+ # @param [Hash] attributes Model attributes in the form of hash
122
+ # @return [Object] Returns the model itself
123
+ def build_from_hash(attributes)
124
+ return nil unless attributes.is_a?(Hash)
125
+ self.class.openapi_types.each_pair do |key, type|
126
+ if type =~ /\AArray<(.*)>/i
127
+ # check to ensure the input is an array given that the attribute
128
+ # is documented as an array but the input is not
129
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
130
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
131
+ end
132
+ elsif !attributes[self.class.attribute_map[key]].nil?
133
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
134
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
135
+ end
136
+
137
+ self
138
+ end
139
+
140
+ # Deserializes the data based on type
141
+ # @param string type Data type
142
+ # @param string value Value to be deserialized
143
+ # @return [Object] Deserialized data
144
+ def _deserialize(type, value)
145
+ case type.to_sym
146
+ when :DateTime
147
+ DateTime.parse(value)
148
+ when :Date
149
+ Date.parse(value)
150
+ when :String
151
+ value.to_s
152
+ when :Integer
153
+ value.to_i
154
+ when :Float
155
+ value.to_f
156
+ when :Boolean
157
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
158
+ true
159
+ else
160
+ false
161
+ end
162
+ when :Object
163
+ # generic object (usually a Hash), return directly
164
+ value
165
+ when /\AArray<(?<inner_type>.+)>\z/
166
+ inner_type = Regexp.last_match[:inner_type]
167
+ value.map { |v| _deserialize(inner_type, v) }
168
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
169
+ k_type = Regexp.last_match[:k_type]
170
+ v_type = Regexp.last_match[:v_type]
171
+ {}.tap do |hash|
172
+ value.each do |k, v|
173
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
174
+ end
175
+ end
176
+ else # model
177
+ OpenapiClient.const_get(type).build_from_hash(value)
178
+ end
179
+ end
180
+
181
+ # Returns the string representation of the object
182
+ # @return [String] String presentation of the object
183
+ def to_s
184
+ to_hash.to_s
185
+ end
186
+
187
+ # to_body is an alias to to_hash (backward compatibility)
188
+ # @return [Hash] Returns the object in the form of hash
189
+ def to_body
190
+ to_hash
191
+ end
192
+
193
+ # Returns the object in the form of hash
194
+ # @return [Hash] Returns the object in the form of hash
195
+ def to_hash
196
+ hash = {}
197
+ self.class.attribute_map.each_pair do |attr, param|
198
+ value = self.send(attr)
199
+ if value.nil?
200
+ is_nullable = self.class.openapi_nullable.include?(attr)
201
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
202
+ end
203
+
204
+ hash[param] = _to_hash(value)
205
+ end
206
+ hash
207
+ end
208
+
209
+ # Outputs non-array value in the form of hash
210
+ # For object, use to_hash. Otherwise, just return the value
211
+ # @param [Object] value Any valid value
212
+ # @return [Hash] Returns the value in the form of hash
213
+ def _to_hash(value)
214
+ if value.is_a?(Array)
215
+ value.compact.map { |v| _to_hash(v) }
216
+ elsif value.is_a?(Hash)
217
+ {}.tap do |hash|
218
+ value.each { |k, v| hash[k] = _to_hash(v) }
219
+ end
220
+ elsif value.respond_to? :to_hash
221
+ value.to_hash
222
+ else
223
+ value
224
+ end
225
+ end
226
+ end
227
+ end