autosde_openapi_client 1.0.0 → 1.0.1

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