eilam_test 1.1.15

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 (291) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +271 -0
  5. data/Rakefile +10 -0
  6. data/docs/AbstractCapability.md +20 -0
  7. data/docs/AbstractCapabilityApi.md +276 -0
  8. data/docs/Account.md +22 -0
  9. data/docs/AccountApi.md +346 -0
  10. data/docs/AccountPostRequest.md +20 -0
  11. data/docs/AccountPostResponse.md +24 -0
  12. data/docs/Address.md +32 -0
  13. data/docs/AddressApi.md +276 -0
  14. data/docs/AddressCreate.md +32 -0
  15. data/docs/AuthResponse.md +18 -0
  16. data/docs/Authentication.md +20 -0
  17. data/docs/AuthenticationApi.md +70 -0
  18. data/docs/AutoSDEProject.md +56 -0
  19. data/docs/AutoSDEProjectApi.md +276 -0
  20. data/docs/AutoSDERole.md +20 -0
  21. data/docs/AutoSDERoleApi.md +276 -0
  22. data/docs/CapabilityTranslation.md +36 -0
  23. data/docs/CapabilityTranslationApi.md +276 -0
  24. data/docs/CapabilityTranslationCreate.md +32 -0
  25. data/docs/Event.md +32 -0
  26. data/docs/EventApi.md +276 -0
  27. data/docs/Host.md +30 -0
  28. data/docs/HostApi.md +276 -0
  29. data/docs/HostCluster.md +34 -0
  30. data/docs/HostClusterApi.md +276 -0
  31. data/docs/HostClusterCreate.md +30 -0
  32. data/docs/HostClusterMembership.md +24 -0
  33. data/docs/HostClusterMembershipApi.md +276 -0
  34. data/docs/HostClusterResponse.md +34 -0
  35. data/docs/HostClusterVolumeMapping.md +26 -0
  36. data/docs/HostClusterVolumeMappingApi.md +276 -0
  37. data/docs/HostClusterVolumeMappingCreate.md +24 -0
  38. data/docs/HostClusterVolumeMappingResponse.md +26 -0
  39. data/docs/HostCreate.md +40 -0
  40. data/docs/HostVolumeConnection.md +24 -0
  41. data/docs/HostVolumeConnectionApi.md +276 -0
  42. data/docs/HostVolumeConnectionCreate.md +22 -0
  43. data/docs/Job.md +30 -0
  44. data/docs/JobApi.md +140 -0
  45. data/docs/JobCreate.md +20 -0
  46. data/docs/NativeCapability.md +24 -0
  47. data/docs/NativeCapabilityApi.md +276 -0
  48. data/docs/Profile.md +26 -0
  49. data/docs/ProfileApi.md +276 -0
  50. data/docs/ProvisioningStrategy.md +20 -0
  51. data/docs/ProvisioningStrategyApi.md +276 -0
  52. data/docs/Service.md +36 -0
  53. data/docs/ServiceAbstractCapabilityValue.md +22 -0
  54. data/docs/ServiceApi.md +346 -0
  55. data/docs/ServiceCreate.md +34 -0
  56. data/docs/ServiceResourceAttachment.md +24 -0
  57. data/docs/ServiceResourceAttachmentApi.md +276 -0
  58. data/docs/Snapshot.md +26 -0
  59. data/docs/SnapshotApi.md +276 -0
  60. data/docs/SnapshotCreate.md +24 -0
  61. data/docs/StorageHost.md +36 -0
  62. data/docs/StorageHostApi.md +346 -0
  63. data/docs/StorageHostCreate.md +42 -0
  64. data/docs/StorageHostResponse.md +38 -0
  65. data/docs/StorageHostUpdate.md +22 -0
  66. data/docs/StorageHostVolumeMapping.md +26 -0
  67. data/docs/StorageHostVolumeMappingApi.md +276 -0
  68. data/docs/StorageHostVolumeMappingCreate.md +24 -0
  69. data/docs/StorageHostVolumeMappingResponse.md +26 -0
  70. data/docs/StorageHostWWPNCandidates.md +20 -0
  71. data/docs/StorageHostWWPNCandidatesApi.md +72 -0
  72. data/docs/StorageResource.md +34 -0
  73. data/docs/StorageResourceApi.md +346 -0
  74. data/docs/StorageResourceCreate.md +32 -0
  75. data/docs/StorageResourceResponse.md +34 -0
  76. data/docs/StorageSystem.md +34 -0
  77. data/docs/StorageSystemApi.md +346 -0
  78. data/docs/StorageSystemCreate.md +52 -0
  79. data/docs/StorageSystemUpdate.md +24 -0
  80. data/docs/SystemType.md +26 -0
  81. data/docs/SystemTypeApi.md +276 -0
  82. data/docs/SystemTypeCreate.md +28 -0
  83. data/docs/User.md +38 -0
  84. data/docs/UserApi.md +346 -0
  85. data/docs/UserCreate.md +38 -0
  86. data/docs/UserUpdate.md +30 -0
  87. data/docs/ValidateSystem.md +26 -0
  88. data/docs/ValidateSystemApi.md +75 -0
  89. data/docs/Volume.md +36 -0
  90. data/docs/VolumeApi.md +346 -0
  91. data/docs/VolumeCreate.md +34 -0
  92. data/docs/VolumeResponse.md +36 -0
  93. data/docs/VolumeSafeDelete.md +22 -0
  94. data/docs/VolumeSafeDeleteApi.md +276 -0
  95. data/docs/VolumeSafeDeleteCreate.md +18 -0
  96. data/docs/VolumeUpdate.md +20 -0
  97. data/eilam_test.gemspec +38 -0
  98. data/git_push.sh +58 -0
  99. data/lib/.DS_Store +0 -0
  100. data/lib/eilam_test/.DS_Store +0 -0
  101. data/lib/eilam_test/api/abstract_capability_api.rb +254 -0
  102. data/lib/eilam_test/api/account_api.rb +321 -0
  103. data/lib/eilam_test/api/address_api.rb +254 -0
  104. data/lib/eilam_test/api/authentication_api.rb +83 -0
  105. data/lib/eilam_test/api/auto_sde_project_api.rb +254 -0
  106. data/lib/eilam_test/api/auto_sde_role_api.rb +254 -0
  107. data/lib/eilam_test/api/capability_translation_api.rb +254 -0
  108. data/lib/eilam_test/api/event_api.rb +254 -0
  109. data/lib/eilam_test/api/host_api.rb +254 -0
  110. data/lib/eilam_test/api/host_cluster_api.rb +254 -0
  111. data/lib/eilam_test/api/host_cluster_membership_api.rb +254 -0
  112. data/lib/eilam_test/api/host_cluster_volume_mapping_api.rb +254 -0
  113. data/lib/eilam_test/api/host_volume_connection_api.rb +254 -0
  114. data/lib/eilam_test/api/job_api.rb +136 -0
  115. data/lib/eilam_test/api/native_capability_api.rb +254 -0
  116. data/lib/eilam_test/api/profile_api.rb +254 -0
  117. data/lib/eilam_test/api/provisioning_strategy_api.rb +254 -0
  118. data/lib/eilam_test/api/service_api.rb +321 -0
  119. data/lib/eilam_test/api/service_resource_attachment_api.rb +254 -0
  120. data/lib/eilam_test/api/snapshot_api.rb +254 -0
  121. data/lib/eilam_test/api/storage_host_api.rb +321 -0
  122. data/lib/eilam_test/api/storage_host_volume_mapping_api.rb +254 -0
  123. data/lib/eilam_test/api/storage_host_wwpn_candidates_api.rb +75 -0
  124. data/lib/eilam_test/api/storage_resource_api.rb +321 -0
  125. data/lib/eilam_test/api/storage_system_api.rb +321 -0
  126. data/lib/eilam_test/api/system_type_api.rb +254 -0
  127. data/lib/eilam_test/api/user_api.rb +321 -0
  128. data/lib/eilam_test/api/validate_system_api.rb +83 -0
  129. data/lib/eilam_test/api/volume_api.rb +321 -0
  130. data/lib/eilam_test/api/volume_safe_delete_api.rb +254 -0
  131. data/lib/eilam_test/api_client.rb +390 -0
  132. data/lib/eilam_test/api_error.rb +57 -0
  133. data/lib/eilam_test/configuration.rb +293 -0
  134. data/lib/eilam_test/models/abstract_capability.rb +230 -0
  135. data/lib/eilam_test/models/account.rb +240 -0
  136. data/lib/eilam_test/models/account_post_request.rb +230 -0
  137. data/lib/eilam_test/models/account_post_response.rb +250 -0
  138. data/lib/eilam_test/models/address.rb +340 -0
  139. data/lib/eilam_test/models/address_create.rb +342 -0
  140. data/lib/eilam_test/models/auth_response.rb +220 -0
  141. data/lib/eilam_test/models/authentication.rb +230 -0
  142. data/lib/eilam_test/models/auto_sde_project.rb +410 -0
  143. data/lib/eilam_test/models/auto_sde_role.rb +230 -0
  144. data/lib/eilam_test/models/capability_translation.rb +340 -0
  145. data/lib/eilam_test/models/capability_translation_create.rb +322 -0
  146. data/lib/eilam_test/models/event.rb +289 -0
  147. data/lib/eilam_test/models/host.rb +333 -0
  148. data/lib/eilam_test/models/host_cluster.rb +397 -0
  149. data/lib/eilam_test/models/host_cluster_create.rb +338 -0
  150. data/lib/eilam_test/models/host_cluster_membership.rb +287 -0
  151. data/lib/eilam_test/models/host_cluster_response.rb +398 -0
  152. data/lib/eilam_test/models/host_cluster_volume_mapping.rb +299 -0
  153. data/lib/eilam_test/models/host_cluster_volume_mapping_create.rb +291 -0
  154. data/lib/eilam_test/models/host_cluster_volume_mapping_response.rb +301 -0
  155. data/lib/eilam_test/models/host_create.rb +394 -0
  156. data/lib/eilam_test/models/host_volume_connection.rb +287 -0
  157. data/lib/eilam_test/models/host_volume_connection_create.rb +277 -0
  158. data/lib/eilam_test/models/job.rb +280 -0
  159. data/lib/eilam_test/models/job_create.rb +230 -0
  160. data/lib/eilam_test/models/native_capability.rb +251 -0
  161. data/lib/eilam_test/models/profile.rb +295 -0
  162. data/lib/eilam_test/models/provisioning_strategy.rb +269 -0
  163. data/lib/eilam_test/models/service.rb +351 -0
  164. data/lib/eilam_test/models/service_abstract_capability_value.rb +239 -0
  165. data/lib/eilam_test/models/service_create.rb +339 -0
  166. data/lib/eilam_test/models/service_resource_attachment.rb +250 -0
  167. data/lib/eilam_test/models/snapshot.rb +298 -0
  168. data/lib/eilam_test/models/snapshot_create.rb +288 -0
  169. data/lib/eilam_test/models/storage_host.rb +346 -0
  170. data/lib/eilam_test/models/storage_host_create.rb +388 -0
  171. data/lib/eilam_test/models/storage_host_response.rb +363 -0
  172. data/lib/eilam_test/models/storage_host_update.rb +301 -0
  173. data/lib/eilam_test/models/storage_host_volume_mapping.rb +299 -0
  174. data/lib/eilam_test/models/storage_host_volume_mapping_create.rb +291 -0
  175. data/lib/eilam_test/models/storage_host_volume_mapping_response.rb +301 -0
  176. data/lib/eilam_test/models/storage_host_wwpn_candidates.rb +230 -0
  177. data/lib/eilam_test/models/storage_resource.rb +354 -0
  178. data/lib/eilam_test/models/storage_resource_create.rb +345 -0
  179. data/lib/eilam_test/models/storage_resource_response.rb +355 -0
  180. data/lib/eilam_test/models/storage_system.rb +352 -0
  181. data/lib/eilam_test/models/storage_system_create.rb +455 -0
  182. data/lib/eilam_test/models/storage_system_update.rb +265 -0
  183. data/lib/eilam_test/models/system_type.rb +333 -0
  184. data/lib/eilam_test/models/system_type_create.rb +345 -0
  185. data/lib/eilam_test/models/user.rb +395 -0
  186. data/lib/eilam_test/models/user_create.rb +395 -0
  187. data/lib/eilam_test/models/user_update.rb +280 -0
  188. data/lib/eilam_test/models/validate_system.rb +260 -0
  189. data/lib/eilam_test/models/volume.rb +348 -0
  190. data/lib/eilam_test/models/volume_create.rb +343 -0
  191. data/lib/eilam_test/models/volume_response.rb +350 -0
  192. data/lib/eilam_test/models/volume_safe_delete.rb +239 -0
  193. data/lib/eilam_test/models/volume_safe_delete_create.rb +219 -0
  194. data/lib/eilam_test/models/volume_update.rb +232 -0
  195. data/lib/eilam_test/version.rb +15 -0
  196. data/lib/eilam_test.rb +130 -0
  197. data/spec/api/abstract_capability_api_spec.rb +74 -0
  198. data/spec/api/account_api_spec.rb +85 -0
  199. data/spec/api/address_api_spec.rb +74 -0
  200. data/spec/api/authentication_api_spec.rb +45 -0
  201. data/spec/api/auto_sde_project_api_spec.rb +74 -0
  202. data/spec/api/auto_sde_role_api_spec.rb +74 -0
  203. data/spec/api/capability_translation_api_spec.rb +74 -0
  204. data/spec/api/event_api_spec.rb +74 -0
  205. data/spec/api/host_api_spec.rb +74 -0
  206. data/spec/api/host_cluster_api_spec.rb +74 -0
  207. data/spec/api/host_cluster_membership_api_spec.rb +74 -0
  208. data/spec/api/host_cluster_volume_mapping_api_spec.rb +74 -0
  209. data/spec/api/host_volume_connection_api_spec.rb +74 -0
  210. data/spec/api/job_api_spec.rb +54 -0
  211. data/spec/api/native_capability_api_spec.rb +74 -0
  212. data/spec/api/profile_api_spec.rb +74 -0
  213. data/spec/api/provisioning_strategy_api_spec.rb +74 -0
  214. data/spec/api/service_api_spec.rb +85 -0
  215. data/spec/api/service_resource_attachment_api_spec.rb +74 -0
  216. data/spec/api/snapshot_api_spec.rb +74 -0
  217. data/spec/api/storage_host_api_spec.rb +85 -0
  218. data/spec/api/storage_host_volume_mapping_api_spec.rb +74 -0
  219. data/spec/api/storage_host_wwpn_candidates_api_spec.rb +44 -0
  220. data/spec/api/storage_resource_api_spec.rb +85 -0
  221. data/spec/api/storage_system_api_spec.rb +85 -0
  222. data/spec/api/system_type_api_spec.rb +74 -0
  223. data/spec/api/user_api_spec.rb +85 -0
  224. data/spec/api/validate_system_api_spec.rb +45 -0
  225. data/spec/api/volume_api_spec.rb +85 -0
  226. data/spec/api/volume_safe_delete_api_spec.rb +74 -0
  227. data/spec/api_client_spec.rb +226 -0
  228. data/spec/configuration_spec.rb +42 -0
  229. data/spec/models/abstract_capability_spec.rb +40 -0
  230. data/spec/models/account_post_request_spec.rb +40 -0
  231. data/spec/models/account_post_response_spec.rb +52 -0
  232. data/spec/models/account_spec.rb +46 -0
  233. data/spec/models/address_create_spec.rb +84 -0
  234. data/spec/models/address_spec.rb +84 -0
  235. data/spec/models/auth_response_spec.rb +34 -0
  236. data/spec/models/authentication_spec.rb +40 -0
  237. data/spec/models/auto_sde_project_spec.rb +148 -0
  238. data/spec/models/auto_sde_role_spec.rb +40 -0
  239. data/spec/models/capability_translation_create_spec.rb +76 -0
  240. data/spec/models/capability_translation_spec.rb +88 -0
  241. data/spec/models/event_spec.rb +76 -0
  242. data/spec/models/host_cluster_create_spec.rb +70 -0
  243. data/spec/models/host_cluster_membership_spec.rb +56 -0
  244. data/spec/models/host_cluster_response_spec.rb +86 -0
  245. data/spec/models/host_cluster_spec.rb +86 -0
  246. data/spec/models/host_cluster_volume_mapping_create_spec.rb +56 -0
  247. data/spec/models/host_cluster_volume_mapping_response_spec.rb +62 -0
  248. data/spec/models/host_cluster_volume_mapping_spec.rb +62 -0
  249. data/spec/models/host_create_spec.rb +112 -0
  250. data/spec/models/host_spec.rb +78 -0
  251. data/spec/models/host_volume_connection_create_spec.rb +50 -0
  252. data/spec/models/host_volume_connection_spec.rb +56 -0
  253. data/spec/models/job_create_spec.rb +40 -0
  254. data/spec/models/job_spec.rb +70 -0
  255. data/spec/models/native_capability_spec.rb +52 -0
  256. data/spec/models/profile_spec.rb +62 -0
  257. data/spec/models/provisioning_strategy_spec.rb +44 -0
  258. data/spec/models/service_abstract_capability_value_spec.rb +46 -0
  259. data/spec/models/service_create_spec.rb +86 -0
  260. data/spec/models/service_resource_attachment_spec.rb +52 -0
  261. data/spec/models/service_spec.rb +92 -0
  262. data/spec/models/snapshot_create_spec.rb +56 -0
  263. data/spec/models/snapshot_spec.rb +62 -0
  264. data/spec/models/storage_host_create_spec.rb +114 -0
  265. data/spec/models/storage_host_response_spec.rb +98 -0
  266. data/spec/models/storage_host_spec.rb +92 -0
  267. data/spec/models/storage_host_update_spec.rb +54 -0
  268. data/spec/models/storage_host_volume_mapping_create_spec.rb +56 -0
  269. data/spec/models/storage_host_volume_mapping_response_spec.rb +62 -0
  270. data/spec/models/storage_host_volume_mapping_spec.rb +62 -0
  271. data/spec/models/storage_host_wwpn_candidates_spec.rb +40 -0
  272. data/spec/models/storage_resource_create_spec.rb +84 -0
  273. data/spec/models/storage_resource_response_spec.rb +90 -0
  274. data/spec/models/storage_resource_spec.rb +90 -0
  275. data/spec/models/storage_system_create_spec.rb +148 -0
  276. data/spec/models/storage_system_spec.rb +90 -0
  277. data/spec/models/storage_system_update_spec.rb +52 -0
  278. data/spec/models/system_type_create_spec.rb +72 -0
  279. data/spec/models/system_type_spec.rb +66 -0
  280. data/spec/models/user_create_spec.rb +94 -0
  281. data/spec/models/user_spec.rb +94 -0
  282. data/spec/models/user_update_spec.rb +70 -0
  283. data/spec/models/validate_system_spec.rb +58 -0
  284. data/spec/models/volume_create_spec.rb +86 -0
  285. data/spec/models/volume_response_spec.rb +92 -0
  286. data/spec/models/volume_safe_delete_create_spec.rb +34 -0
  287. data/spec/models/volume_safe_delete_spec.rb +46 -0
  288. data/spec/models/volume_spec.rb +92 -0
  289. data/spec/models/volume_update_spec.rb +40 -0
  290. data/spec/spec_helper.rb +111 -0
  291. metadata +466 -0
@@ -0,0 +1,455 @@
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
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module AutosdeOpenapiClient
17
+ # TODO add description
18
+ class StorageSystemCreate
19
+ # auto_add_pools
20
+ attr_accessor :auto_add_pools
21
+
22
+ # auto_setup
23
+ attr_accessor :auto_setup
24
+
25
+ # chap_name
26
+ attr_accessor :chap_name
27
+
28
+ # chap_secret
29
+ attr_accessor :chap_secret
30
+
31
+ # component_state
32
+ attr_accessor :component_state
33
+
34
+ attr_accessor :iqn
35
+
36
+ # management_ip
37
+ attr_accessor :management_ip
38
+
39
+ # name
40
+ attr_accessor :name
41
+
42
+ # password
43
+ attr_accessor :password
44
+
45
+ # port_type
46
+ attr_accessor :port_type
47
+
48
+ # secondary_ip
49
+ attr_accessor :secondary_ip
50
+
51
+ # status
52
+ attr_accessor :status
53
+
54
+ # storage_array
55
+ attr_accessor :storage_array
56
+
57
+ # storage_driver
58
+ attr_accessor :storage_driver
59
+
60
+ # storage_family
61
+ attr_accessor :storage_family
62
+
63
+ attr_accessor :system_type
64
+
65
+ # user
66
+ attr_accessor :user
67
+
68
+ # wwpn
69
+ attr_accessor :wwpn
70
+
71
+ class EnumAttributeValidator
72
+ attr_reader :datatype
73
+ attr_reader :allowable_values
74
+
75
+ def initialize(datatype, allowable_values)
76
+ @allowable_values = allowable_values.map do |value|
77
+ case datatype.to_s
78
+ when /Integer/i
79
+ value.to_i
80
+ when /Float/i
81
+ value.to_f
82
+ else
83
+ value
84
+ end
85
+ end
86
+ end
87
+
88
+ def valid?(value)
89
+ !value || allowable_values.include?(value)
90
+ end
91
+ end
92
+
93
+ # Attribute mapping from ruby-style variable name to JSON key.
94
+ def self.attribute_map
95
+ {
96
+ :'auto_add_pools' => :'auto_add_pools',
97
+ :'auto_setup' => :'auto_setup',
98
+ :'chap_name' => :'chap_name',
99
+ :'chap_secret' => :'chap_secret',
100
+ :'component_state' => :'component_state',
101
+ :'iqn' => :'iqn',
102
+ :'management_ip' => :'management_ip',
103
+ :'name' => :'name',
104
+ :'password' => :'password',
105
+ :'port_type' => :'port_type',
106
+ :'secondary_ip' => :'secondary_ip',
107
+ :'status' => :'status',
108
+ :'storage_array' => :'storage_array',
109
+ :'storage_driver' => :'storage_driver',
110
+ :'storage_family' => :'storage_family',
111
+ :'system_type' => :'system_type',
112
+ :'user' => :'user',
113
+ :'wwpn' => :'wwpn'
114
+ }
115
+ end
116
+
117
+ # Returns all the JSON keys this model knows about
118
+ def self.acceptable_attributes
119
+ attribute_map.values
120
+ end
121
+
122
+ # Attribute type mapping.
123
+ def self.openapi_types
124
+ {
125
+ :'auto_add_pools' => :'Boolean',
126
+ :'auto_setup' => :'Boolean',
127
+ :'chap_name' => :'String',
128
+ :'chap_secret' => :'String',
129
+ :'component_state' => :'String',
130
+ :'iqn' => :'String',
131
+ :'management_ip' => :'String',
132
+ :'name' => :'String',
133
+ :'password' => :'String',
134
+ :'port_type' => :'String',
135
+ :'secondary_ip' => :'String',
136
+ :'status' => :'String',
137
+ :'storage_array' => :'String',
138
+ :'storage_driver' => :'String',
139
+ :'storage_family' => :'String',
140
+ :'system_type' => :'SystemType',
141
+ :'user' => :'String',
142
+ :'wwpn' => :'String'
143
+ }
144
+ end
145
+
146
+ # List of attributes with nullable: true
147
+ def self.openapi_nullable
148
+ Set.new([
149
+ ])
150
+ end
151
+
152
+ # Initializes the object
153
+ # @param [Hash] attributes Model attributes in the form of hash
154
+ def initialize(attributes = {})
155
+ if (!attributes.is_a?(Hash))
156
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AutosdeOpenapiClient::StorageSystemCreate` initialize method"
157
+ end
158
+
159
+ # check to see if the attribute exists and convert string to symbol for hash key
160
+ attributes = attributes.each_with_object({}) { |(k, v), h|
161
+ if (!self.class.attribute_map.key?(k.to_sym))
162
+ fail ArgumentError, "`#{k}` is not a valid attribute in `AutosdeOpenapiClient::StorageSystemCreate`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
163
+ end
164
+ h[k.to_sym] = v
165
+ }
166
+
167
+ if attributes.key?(:'auto_add_pools')
168
+ self.auto_add_pools = attributes[:'auto_add_pools']
169
+ else
170
+ self.auto_add_pools = false
171
+ end
172
+
173
+ if attributes.key?(:'auto_setup')
174
+ self.auto_setup = attributes[:'auto_setup']
175
+ else
176
+ self.auto_setup = false
177
+ end
178
+
179
+ if attributes.key?(:'chap_name')
180
+ self.chap_name = attributes[:'chap_name']
181
+ end
182
+
183
+ if attributes.key?(:'chap_secret')
184
+ self.chap_secret = attributes[:'chap_secret']
185
+ end
186
+
187
+ if attributes.key?(:'component_state')
188
+ self.component_state = attributes[:'component_state']
189
+ end
190
+
191
+ if attributes.key?(:'iqn')
192
+ self.iqn = attributes[:'iqn']
193
+ end
194
+
195
+ if attributes.key?(:'management_ip')
196
+ self.management_ip = attributes[:'management_ip']
197
+ end
198
+
199
+ if attributes.key?(:'name')
200
+ self.name = attributes[:'name']
201
+ end
202
+
203
+ if attributes.key?(:'password')
204
+ self.password = attributes[:'password']
205
+ end
206
+
207
+ if attributes.key?(:'port_type')
208
+ self.port_type = attributes[:'port_type']
209
+ end
210
+
211
+ if attributes.key?(:'secondary_ip')
212
+ self.secondary_ip = attributes[:'secondary_ip']
213
+ end
214
+
215
+ if attributes.key?(:'status')
216
+ self.status = attributes[:'status']
217
+ end
218
+
219
+ if attributes.key?(:'storage_array')
220
+ self.storage_array = attributes[:'storage_array']
221
+ end
222
+
223
+ if attributes.key?(:'storage_driver')
224
+ self.storage_driver = attributes[:'storage_driver']
225
+ end
226
+
227
+ if attributes.key?(:'storage_family')
228
+ self.storage_family = attributes[:'storage_family']
229
+ end
230
+
231
+ if attributes.key?(:'system_type')
232
+ self.system_type = attributes[:'system_type']
233
+ end
234
+
235
+ if attributes.key?(:'user')
236
+ self.user = attributes[:'user']
237
+ end
238
+
239
+ if attributes.key?(:'wwpn')
240
+ self.wwpn = attributes[:'wwpn']
241
+ end
242
+ end
243
+
244
+ # Show invalid properties with the reasons. Usually used together with valid?
245
+ # @return Array for valid properties with the reasons
246
+ def list_invalid_properties
247
+ invalid_properties = Array.new
248
+ if !@component_state.nil? && @component_state.to_s.length > 32
249
+ invalid_properties.push('invalid value for "component_state", the character length must be smaller than or equal to 32.')
250
+ end
251
+
252
+ invalid_properties
253
+ end
254
+
255
+ # Check to see if the all the properties in the model are valid
256
+ # @return true if the model is valid
257
+ def valid?
258
+ component_state_validator = EnumAttributeValidator.new('String', ["PENDING_CREATION", "CREATED", "DELETED", "PENDING_DELETION", "MODIFICATION", "PENDING_MODIFICATION"])
259
+ return false unless component_state_validator.valid?(@component_state)
260
+ return false if !@component_state.nil? && @component_state.to_s.length > 32
261
+ port_type_validator = EnumAttributeValidator.new('String', ["ISCSI", "FC", "NVMeFC"])
262
+ return false unless port_type_validator.valid?(@port_type)
263
+ storage_family_validator = EnumAttributeValidator.new('String', ["", "ontap_7mode", "ontap_cluster"])
264
+ return false unless storage_family_validator.valid?(@storage_family)
265
+ true
266
+ end
267
+
268
+ # Custom attribute writer method checking allowed values (enum).
269
+ # @param [Object] component_state Object to be assigned
270
+ def component_state=(component_state)
271
+ validator = EnumAttributeValidator.new('String', ["PENDING_CREATION", "CREATED", "DELETED", "PENDING_DELETION", "MODIFICATION", "PENDING_MODIFICATION"])
272
+ unless validator.valid?(component_state)
273
+ fail ArgumentError, "invalid value for \"component_state\", must be one of #{validator.allowable_values}."
274
+ end
275
+ @component_state = component_state
276
+ end
277
+
278
+ # Custom attribute writer method checking allowed values (enum).
279
+ # @param [Object] port_type Object to be assigned
280
+ def port_type=(port_type)
281
+ validator = EnumAttributeValidator.new('String', ["ISCSI", "FC", "NVMeFC"])
282
+ unless validator.valid?(port_type)
283
+ fail ArgumentError, "invalid value for \"port_type\", must be one of #{validator.allowable_values}."
284
+ end
285
+ @port_type = port_type
286
+ end
287
+
288
+ # Custom attribute writer method checking allowed values (enum).
289
+ # @param [Object] storage_family Object to be assigned
290
+ def storage_family=(storage_family)
291
+ validator = EnumAttributeValidator.new('String', ["", "ontap_7mode", "ontap_cluster"])
292
+ unless validator.valid?(storage_family)
293
+ fail ArgumentError, "invalid value for \"storage_family\", must be one of #{validator.allowable_values}."
294
+ end
295
+ @storage_family = storage_family
296
+ end
297
+
298
+ # Checks equality by comparing each attribute.
299
+ # @param [Object] Object to be compared
300
+ def ==(o)
301
+ return true if self.equal?(o)
302
+ self.class == o.class &&
303
+ auto_add_pools == o.auto_add_pools &&
304
+ auto_setup == o.auto_setup &&
305
+ chap_name == o.chap_name &&
306
+ chap_secret == o.chap_secret &&
307
+ component_state == o.component_state &&
308
+ iqn == o.iqn &&
309
+ management_ip == o.management_ip &&
310
+ name == o.name &&
311
+ password == o.password &&
312
+ port_type == o.port_type &&
313
+ secondary_ip == o.secondary_ip &&
314
+ status == o.status &&
315
+ storage_array == o.storage_array &&
316
+ storage_driver == o.storage_driver &&
317
+ storage_family == o.storage_family &&
318
+ system_type == o.system_type &&
319
+ user == o.user &&
320
+ wwpn == o.wwpn
321
+ end
322
+
323
+ # @see the `==` method
324
+ # @param [Object] Object to be compared
325
+ def eql?(o)
326
+ self == o
327
+ end
328
+
329
+ # Calculates hash code according to all attributes.
330
+ # @return [Integer] Hash code
331
+ def hash
332
+ [auto_add_pools, auto_setup, chap_name, chap_secret, component_state, iqn, management_ip, name, password, port_type, secondary_ip, status, storage_array, storage_driver, storage_family, system_type, user, wwpn].hash
333
+ end
334
+
335
+ # Builds the object from hash
336
+ # @param [Hash] attributes Model attributes in the form of hash
337
+ # @return [Object] Returns the model itself
338
+ def self.build_from_hash(attributes)
339
+ new.build_from_hash(attributes)
340
+ end
341
+
342
+ # Builds the object from hash
343
+ # @param [Hash] attributes Model attributes in the form of hash
344
+ # @return [Object] Returns the model itself
345
+ def build_from_hash(attributes)
346
+ return nil unless attributes.is_a?(Hash)
347
+ self.class.openapi_types.each_pair do |key, type|
348
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
349
+ self.send("#{key}=", nil)
350
+ elsif type =~ /\AArray<(.*)>/i
351
+ # check to ensure the input is an array given that the attribute
352
+ # is documented as an array but the input is not
353
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
354
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
355
+ end
356
+ elsif !attributes[self.class.attribute_map[key]].nil?
357
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
358
+ end
359
+ end
360
+
361
+ self
362
+ end
363
+
364
+ # Deserializes the data based on type
365
+ # @param string type Data type
366
+ # @param string value Value to be deserialized
367
+ # @return [Object] Deserialized data
368
+ def _deserialize(type, value)
369
+ case type.to_sym
370
+ when :Time
371
+ Time.parse(value)
372
+ when :Date
373
+ Date.parse(value)
374
+ when :String
375
+ value.to_s
376
+ when :Integer
377
+ value.to_i
378
+ when :Float
379
+ value.to_f
380
+ when :Boolean
381
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
382
+ true
383
+ else
384
+ false
385
+ end
386
+ when :Object
387
+ # generic object (usually a Hash), return directly
388
+ value
389
+ when /\AArray<(?<inner_type>.+)>\z/
390
+ inner_type = Regexp.last_match[:inner_type]
391
+ value.map { |v| _deserialize(inner_type, v) }
392
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
393
+ k_type = Regexp.last_match[:k_type]
394
+ v_type = Regexp.last_match[:v_type]
395
+ {}.tap do |hash|
396
+ value.each do |k, v|
397
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
398
+ end
399
+ end
400
+ else # model
401
+ # models (e.g. Pet) or oneOf
402
+ klass = AutosdeOpenapiClient.const_get(type)
403
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
404
+ end
405
+ end
406
+
407
+ # Returns the string representation of the object
408
+ # @return [String] String presentation of the object
409
+ def to_s
410
+ to_hash.to_s
411
+ end
412
+
413
+ # to_body is an alias to to_hash (backward compatibility)
414
+ # @return [Hash] Returns the object in the form of hash
415
+ def to_body
416
+ to_hash
417
+ end
418
+
419
+ # Returns the object in the form of hash
420
+ # @return [Hash] Returns the object in the form of hash
421
+ def to_hash
422
+ hash = {}
423
+ self.class.attribute_map.each_pair do |attr, param|
424
+ value = self.send(attr)
425
+ if value.nil?
426
+ is_nullable = self.class.openapi_nullable.include?(attr)
427
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
428
+ end
429
+
430
+ hash[param] = _to_hash(value)
431
+ end
432
+ hash
433
+ end
434
+
435
+ # Outputs non-array value in the form of hash
436
+ # For object, use to_hash. Otherwise, just return the value
437
+ # @param [Object] value Any valid value
438
+ # @return [Hash] Returns the value in the form of hash
439
+ def _to_hash(value)
440
+ if value.is_a?(Array)
441
+ value.compact.map { |v| _to_hash(v) }
442
+ elsif value.is_a?(Hash)
443
+ {}.tap do |hash|
444
+ value.each { |k, v| hash[k] = _to_hash(v) }
445
+ end
446
+ elsif value.respond_to? :to_hash
447
+ value.to_hash
448
+ else
449
+ value
450
+ end
451
+ end
452
+
453
+ end
454
+
455
+ end