ibm_cloud_power 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 (330) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +255 -0
  4. data/Rakefile +10 -0
  5. data/docs/CloneTaskReference.md +19 -0
  6. data/docs/CloneTaskStatus.md +23 -0
  7. data/docs/ClonedVolume.md +19 -0
  8. data/docs/ClonedVolumeDetail.md +19 -0
  9. data/docs/CloudInstance.md +37 -0
  10. data/docs/CloudInstanceCreate.md +29 -0
  11. data/docs/CloudInstanceReference.md +31 -0
  12. data/docs/CloudInstanceUpdate.md +25 -0
  13. data/docs/CloudInstanceUsageLimits.md +37 -0
  14. data/docs/CreateDataVolume.md +29 -0
  15. data/docs/CreateImage.md +37 -0
  16. data/docs/Error.md +19 -0
  17. data/docs/Event.md +33 -0
  18. data/docs/EventUser.md +21 -0
  19. data/docs/Events.md +17 -0
  20. data/docs/ExportImage.md +23 -0
  21. data/docs/IPAddressRange.md +19 -0
  22. data/docs/Image.md +39 -0
  23. data/docs/ImageReference.md +33 -0
  24. data/docs/ImageSpecifications.md +29 -0
  25. data/docs/ImageVolume.md +23 -0
  26. data/docs/Images.md +17 -0
  27. data/docs/MinMaxDefault.md +21 -0
  28. data/docs/MultiVolumesCreate.md +29 -0
  29. data/docs/Network.md +37 -0
  30. data/docs/NetworkCreate.md +29 -0
  31. data/docs/NetworkIpAddressMetrics.md +23 -0
  32. data/docs/NetworkPort.md +29 -0
  33. data/docs/NetworkPortCreate.md +19 -0
  34. data/docs/NetworkPortPvmInstance.md +19 -0
  35. data/docs/NetworkPortUpdate.md +19 -0
  36. data/docs/NetworkPorts.md +17 -0
  37. data/docs/NetworkReference.md +27 -0
  38. data/docs/NetworkUpdate.md +23 -0
  39. data/docs/Networks.md +17 -0
  40. data/docs/Operations.md +21 -0
  41. data/docs/PCloudEventsApi.md +114 -0
  42. data/docs/PCloudImagesApi.md +342 -0
  43. data/docs/PCloudInstancesApi.md +148 -0
  44. data/docs/PCloudNetworksApi.md +504 -0
  45. data/docs/PCloudPVMInstancesApi.md +809 -0
  46. data/docs/PCloudSAPApi.md +150 -0
  47. data/docs/PCloudSnapshotsApi.md +200 -0
  48. data/docs/PCloudSystemPoolsApi.md +54 -0
  49. data/docs/PCloudTasksApi.md +100 -0
  50. data/docs/PCloudTenantsApi.md +102 -0
  51. data/docs/PCloudTenantsSSHKeysApi.md +248 -0
  52. data/docs/PCloudVolumesApi.md +746 -0
  53. data/docs/PVMInstance.md +77 -0
  54. data/docs/PVMInstanceAction.md +17 -0
  55. data/docs/PVMInstanceAddNetwork.md +19 -0
  56. data/docs/PVMInstanceCapture.md +29 -0
  57. data/docs/PVMInstanceClone.md +31 -0
  58. data/docs/PVMInstanceConsole.md +17 -0
  59. data/docs/PVMInstanceCreate.md +53 -0
  60. data/docs/PVMInstanceFault.md +23 -0
  61. data/docs/PVMInstanceHealth.md +21 -0
  62. data/docs/PVMInstanceMultiCreate.md +21 -0
  63. data/docs/PVMInstanceNetwork.md +33 -0
  64. data/docs/PVMInstanceNetworks.md +17 -0
  65. data/docs/PVMInstanceOperation.md +19 -0
  66. data/docs/PVMInstanceReference.md +71 -0
  67. data/docs/PVMInstanceRemoveNetwork.md +17 -0
  68. data/docs/PVMInstanceUpdate.md +33 -0
  69. data/docs/PVMInstanceUpdateResponse.md +27 -0
  70. data/docs/PVMInstanceVolumeUpdate.md +17 -0
  71. data/docs/PVMInstances.md +17 -0
  72. data/docs/PeeringNetwork.md +21 -0
  73. data/docs/PinPolicy.md +16 -0
  74. data/docs/SAPCreate.md +33 -0
  75. data/docs/SAPProfile.md +25 -0
  76. data/docs/SAPProfileReference.md +19 -0
  77. data/docs/SAPProfiles.md +17 -0
  78. data/docs/SRC.md +19 -0
  79. data/docs/SSHKey.md +21 -0
  80. data/docs/SSHKeys.md +17 -0
  81. data/docs/Snapshot.md +35 -0
  82. data/docs/SnapshotCreate.md +21 -0
  83. data/docs/SnapshotCreateResponse.md +17 -0
  84. data/docs/SnapshotRestore.md +17 -0
  85. data/docs/SnapshotUpdate.md +19 -0
  86. data/docs/Snapshots.md +17 -0
  87. data/docs/SoftwareLicenses.md +25 -0
  88. data/docs/StockImage.md +21 -0
  89. data/docs/System.md +21 -0
  90. data/docs/SystemPool.md +31 -0
  91. data/docs/Task.md +33 -0
  92. data/docs/TaskReference.md +19 -0
  93. data/docs/Tenant.md +29 -0
  94. data/docs/TenantUpdate.md +19 -0
  95. data/docs/UpdateVolume.md +23 -0
  96. data/docs/VirtualCores.md +21 -0
  97. data/docs/Volume.md +41 -0
  98. data/docs/VolumeInfo.md +19 -0
  99. data/docs/VolumeReference.md +43 -0
  100. data/docs/Volumes.md +17 -0
  101. data/docs/VolumesClone.md +31 -0
  102. data/docs/VolumesCloneAsyncRequest.md +19 -0
  103. data/docs/VolumesCloneCancel.md +17 -0
  104. data/docs/VolumesCloneCreate.md +19 -0
  105. data/docs/VolumesCloneDetail.md +33 -0
  106. data/docs/VolumesCloneExecute.md +19 -0
  107. data/docs/VolumesCloneRequest.md +19 -0
  108. data/docs/VolumesCloneResponse.md +17 -0
  109. data/docs/VolumesClones.md +17 -0
  110. data/git_push.sh +58 -0
  111. data/ibm_cloud_power.gemspec +38 -0
  112. data/lib/ibm_cloud_power.rb +144 -0
  113. data/lib/ibm_cloud_power/api/p_cloud_events_api.rb +163 -0
  114. data/lib/ibm_cloud_power/api/p_cloud_images_api.rb +473 -0
  115. data/lib/ibm_cloud_power/api/p_cloud_instances_api.rb +210 -0
  116. data/lib/ibm_cloud_power/api/p_cloud_networks_api.rb +719 -0
  117. data/lib/ibm_cloud_power/api/p_cloud_pvm_instances_api.rb +1166 -0
  118. data/lib/ibm_cloud_power/api/p_cloud_sap_api.rb +216 -0
  119. data/lib/ibm_cloud_power/api/p_cloud_snapshots_api.rb +288 -0
  120. data/lib/ibm_cloud_power/api/p_cloud_system_pools_api.rb +82 -0
  121. data/lib/ibm_cloud_power/api/p_cloud_tasks_api.rb +142 -0
  122. data/lib/ibm_cloud_power/api/p_cloud_tenants_api.rb +150 -0
  123. data/lib/ibm_cloud_power/api/p_cloud_tenants_ssh_keys_api.rb +356 -0
  124. data/lib/ibm_cloud_power/api/p_cloud_volumes_api.rb +1065 -0
  125. data/lib/ibm_cloud_power/api_client.rb +387 -0
  126. data/lib/ibm_cloud_power/api_error.rb +57 -0
  127. data/lib/ibm_cloud_power/configuration.rb +241 -0
  128. data/lib/ibm_cloud_power/models/clone_task_reference.rb +229 -0
  129. data/lib/ibm_cloud_power/models/clone_task_status.rb +285 -0
  130. data/lib/ibm_cloud_power/models/cloned_volume.rb +219 -0
  131. data/lib/ibm_cloud_power/models/cloned_volume_detail.rb +227 -0
  132. data/lib/ibm_cloud_power/models/cloud_instance.rb +361 -0
  133. data/lib/ibm_cloud_power/models/cloud_instance_create.rb +294 -0
  134. data/lib/ibm_cloud_power/models/cloud_instance_reference.rb +315 -0
  135. data/lib/ibm_cloud_power/models/cloud_instance_update.rb +249 -0
  136. data/lib/ibm_cloud_power/models/cloud_instance_usage_limits.rb +334 -0
  137. data/lib/ibm_cloud_power/models/create_data_volume.rb +313 -0
  138. data/lib/ibm_cloud_power/models/create_image.rb +360 -0
  139. data/lib/ibm_cloud_power/models/error.rb +217 -0
  140. data/lib/ibm_cloud_power/models/event.rb +357 -0
  141. data/lib/ibm_cloud_power/models/event_user.rb +234 -0
  142. data/lib/ibm_cloud_power/models/events.rb +216 -0
  143. data/lib/ibm_cloud_power/models/export_image.rb +249 -0
  144. data/lib/ibm_cloud_power/models/image.rb +351 -0
  145. data/lib/ibm_cloud_power/models/image_reference.rb +333 -0
  146. data/lib/ibm_cloud_power/models/image_specifications.rb +269 -0
  147. data/lib/ibm_cloud_power/models/image_volume.rb +259 -0
  148. data/lib/ibm_cloud_power/models/images.rb +216 -0
  149. data/lib/ibm_cloud_power/models/ip_address_range.rb +229 -0
  150. data/lib/ibm_cloud_power/models/min_max_default.rb +244 -0
  151. data/lib/ibm_cloud_power/models/multi_volumes_create.rb +313 -0
  152. data/lib/ibm_cloud_power/models/network.rb +395 -0
  153. data/lib/ibm_cloud_power/models/network_create.rb +314 -0
  154. data/lib/ibm_cloud_power/models/network_ip_address_metrics.rb +260 -0
  155. data/lib/ibm_cloud_power/models/network_port.rb +293 -0
  156. data/lib/ibm_cloud_power/models/network_port_create.rb +219 -0
  157. data/lib/ibm_cloud_power/models/network_port_pvm_instance.rb +220 -0
  158. data/lib/ibm_cloud_power/models/network_port_update.rb +219 -0
  159. data/lib/ibm_cloud_power/models/network_ports.rb +216 -0
  160. data/lib/ibm_cloud_power/models/network_reference.rb +325 -0
  161. data/lib/ibm_cloud_power/models/network_update.rb +243 -0
  162. data/lib/ibm_cloud_power/models/networks.rb +216 -0
  163. data/lib/ibm_cloud_power/models/operations.rb +287 -0
  164. data/lib/ibm_cloud_power/models/peering_network.rb +241 -0
  165. data/lib/ibm_cloud_power/models/pin_policy.rb +37 -0
  166. data/lib/ibm_cloud_power/models/pvm_instance.rb +612 -0
  167. data/lib/ibm_cloud_power/models/pvm_instance_action.rb +248 -0
  168. data/lib/ibm_cloud_power/models/pvm_instance_add_network.rb +224 -0
  169. data/lib/ibm_cloud_power/models/pvm_instance_capture.rb +317 -0
  170. data/lib/ibm_cloud_power/models/pvm_instance_clone.rb +328 -0
  171. data/lib/ibm_cloud_power/models/pvm_instance_console.rb +214 -0
  172. data/lib/ibm_cloud_power/models/pvm_instance_create.rb +483 -0
  173. data/lib/ibm_cloud_power/models/pvm_instance_fault.rb +240 -0
  174. data/lib/ibm_cloud_power/models/pvm_instance_health.rb +230 -0
  175. data/lib/ibm_cloud_power/models/pvm_instance_multi_create.rb +279 -0
  176. data/lib/ibm_cloud_power/models/pvm_instance_network.rb +290 -0
  177. data/lib/ibm_cloud_power/models/pvm_instance_networks.rb +216 -0
  178. data/lib/ibm_cloud_power/models/pvm_instance_operation.rb +262 -0
  179. data/lib/ibm_cloud_power/models/pvm_instance_reference.rb +566 -0
  180. data/lib/ibm_cloud_power/models/pvm_instance_remove_network.rb +209 -0
  181. data/lib/ibm_cloud_power/models/pvm_instance_update.rb +322 -0
  182. data/lib/ibm_cloud_power/models/pvm_instance_update_response.rb +292 -0
  183. data/lib/ibm_cloud_power/models/pvm_instance_volume_update.rb +214 -0
  184. data/lib/ibm_cloud_power/models/pvm_instances.rb +216 -0
  185. data/lib/ibm_cloud_power/models/sap_create.rb +311 -0
  186. data/lib/ibm_cloud_power/models/sap_profile.rb +310 -0
  187. data/lib/ibm_cloud_power/models/sap_profile_reference.rb +229 -0
  188. data/lib/ibm_cloud_power/models/sap_profiles.rb +216 -0
  189. data/lib/ibm_cloud_power/models/snapshot.rb +321 -0
  190. data/lib/ibm_cloud_power/models/snapshot_create.rb +236 -0
  191. data/lib/ibm_cloud_power/models/snapshot_create_response.rb +214 -0
  192. data/lib/ibm_cloud_power/models/snapshot_restore.rb +211 -0
  193. data/lib/ibm_cloud_power/models/snapshot_update.rb +219 -0
  194. data/lib/ibm_cloud_power/models/snapshots.rb +216 -0
  195. data/lib/ibm_cloud_power/models/software_licenses.rb +257 -0
  196. data/lib/ibm_cloud_power/models/src.rb +219 -0
  197. data/lib/ibm_cloud_power/models/ssh_key.rb +239 -0
  198. data/lib/ibm_cloud_power/models/ssh_keys.rb +216 -0
  199. data/lib/ibm_cloud_power/models/stock_image.rb +230 -0
  200. data/lib/ibm_cloud_power/models/system.rb +239 -0
  201. data/lib/ibm_cloud_power/models/system_pool.rb +277 -0
  202. data/lib/ibm_cloud_power/models/task.rb +334 -0
  203. data/lib/ibm_cloud_power/models/task_reference.rb +229 -0
  204. data/lib/ibm_cloud_power/models/tenant.rb +295 -0
  205. data/lib/ibm_cloud_power/models/tenant_update.rb +221 -0
  206. data/lib/ibm_cloud_power/models/update_volume.rb +239 -0
  207. data/lib/ibm_cloud_power/models/virtual_cores.rb +253 -0
  208. data/lib/ibm_cloud_power/models/volume.rb +356 -0
  209. data/lib/ibm_cloud_power/models/volume_info.rb +219 -0
  210. data/lib/ibm_cloud_power/models/volume_reference.rb +396 -0
  211. data/lib/ibm_cloud_power/models/volumes.rb +216 -0
  212. data/lib/ibm_cloud_power/models/volumes_clone.rb +284 -0
  213. data/lib/ibm_cloud_power/models/volumes_clone_async_request.rb +231 -0
  214. data/lib/ibm_cloud_power/models/volumes_clone_cancel.rb +209 -0
  215. data/lib/ibm_cloud_power/models/volumes_clone_create.rb +231 -0
  216. data/lib/ibm_cloud_power/models/volumes_clone_detail.rb +296 -0
  217. data/lib/ibm_cloud_power/models/volumes_clone_execute.rb +224 -0
  218. data/lib/ibm_cloud_power/models/volumes_clone_request.rb +231 -0
  219. data/lib/ibm_cloud_power/models/volumes_clone_response.rb +211 -0
  220. data/lib/ibm_cloud_power/models/volumes_clones.rb +211 -0
  221. data/lib/ibm_cloud_power/version.rb +15 -0
  222. data/spec/api/p_cloud_events_api_spec.rb +62 -0
  223. data/spec/api/p_cloud_images_api_spec.rb +117 -0
  224. data/spec/api/p_cloud_instances_api_spec.rb +69 -0
  225. data/spec/api/p_cloud_networks_api_spec.rb +161 -0
  226. data/spec/api/p_cloud_pvm_instances_api_spec.rb +240 -0
  227. data/spec/api/p_cloud_sap_api_spec.rb +70 -0
  228. data/spec/api/p_cloud_snapshots_api_spec.rb +83 -0
  229. data/spec/api/p_cloud_system_pools_api_spec.rb +46 -0
  230. data/spec/api/p_cloud_tasks_api_spec.rb +57 -0
  231. data/spec/api/p_cloud_tenants_api_spec.rb +58 -0
  232. data/spec/api/p_cloud_tenants_ssh_keys_api_spec.rb +95 -0
  233. data/spec/api/p_cloud_volumes_api_spec.rb +223 -0
  234. data/spec/api_client_spec.rb +226 -0
  235. data/spec/configuration_spec.rb +42 -0
  236. data/spec/models/clone_task_reference_spec.rb +47 -0
  237. data/spec/models/clone_task_status_spec.rb +63 -0
  238. data/spec/models/cloned_volume_detail_spec.rb +47 -0
  239. data/spec/models/cloned_volume_spec.rb +47 -0
  240. data/spec/models/cloud_instance_create_spec.rb +77 -0
  241. data/spec/models/cloud_instance_reference_spec.rb +83 -0
  242. data/spec/models/cloud_instance_spec.rb +101 -0
  243. data/spec/models/cloud_instance_update_spec.rb +65 -0
  244. data/spec/models/cloud_instance_usage_limits_spec.rb +101 -0
  245. data/spec/models/create_data_volume_spec.rb +81 -0
  246. data/spec/models/create_image_spec.rb +109 -0
  247. data/spec/models/error_spec.rb +47 -0
  248. data/spec/models/event_spec.rb +93 -0
  249. data/spec/models/event_user_spec.rb +53 -0
  250. data/spec/models/events_spec.rb +41 -0
  251. data/spec/models/export_image_spec.rb +59 -0
  252. data/spec/models/image_reference_spec.rb +89 -0
  253. data/spec/models/image_spec.rb +107 -0
  254. data/spec/models/image_specifications_spec.rb +77 -0
  255. data/spec/models/image_volume_spec.rb +59 -0
  256. data/spec/models/images_spec.rb +41 -0
  257. data/spec/models/ip_address_range_spec.rb +47 -0
  258. data/spec/models/min_max_default_spec.rb +53 -0
  259. data/spec/models/multi_volumes_create_spec.rb +81 -0
  260. data/spec/models/network_create_spec.rb +81 -0
  261. data/spec/models/network_ip_address_metrics_spec.rb +59 -0
  262. data/spec/models/network_port_create_spec.rb +47 -0
  263. data/spec/models/network_port_pvm_instance_spec.rb +47 -0
  264. data/spec/models/network_port_spec.rb +77 -0
  265. data/spec/models/network_port_update_spec.rb +47 -0
  266. data/spec/models/network_ports_spec.rb +41 -0
  267. data/spec/models/network_reference_spec.rb +75 -0
  268. data/spec/models/network_spec.rb +105 -0
  269. data/spec/models/network_update_spec.rb +59 -0
  270. data/spec/models/networks_spec.rb +41 -0
  271. data/spec/models/operations_spec.rb +65 -0
  272. data/spec/models/peering_network_spec.rb +53 -0
  273. data/spec/models/pin_policy_spec.rb +35 -0
  274. data/spec/models/pvm_instance_action_spec.rb +45 -0
  275. data/spec/models/pvm_instance_add_network_spec.rb +47 -0
  276. data/spec/models/pvm_instance_capture_spec.rb +81 -0
  277. data/spec/models/pvm_instance_clone_spec.rb +87 -0
  278. data/spec/models/pvm_instance_console_spec.rb +41 -0
  279. data/spec/models/pvm_instance_create_spec.rb +161 -0
  280. data/spec/models/pvm_instance_fault_spec.rb +59 -0
  281. data/spec/models/pvm_instance_health_spec.rb +53 -0
  282. data/spec/models/pvm_instance_multi_create_spec.rb +61 -0
  283. data/spec/models/pvm_instance_network_spec.rb +89 -0
  284. data/spec/models/pvm_instance_networks_spec.rb +41 -0
  285. data/spec/models/pvm_instance_operation_spec.rb +51 -0
  286. data/spec/models/pvm_instance_reference_spec.rb +207 -0
  287. data/spec/models/pvm_instance_remove_network_spec.rb +41 -0
  288. data/spec/models/pvm_instance_spec.rb +225 -0
  289. data/spec/models/pvm_instance_update_response_spec.rb +75 -0
  290. data/spec/models/pvm_instance_update_spec.rb +93 -0
  291. data/spec/models/pvm_instance_volume_update_spec.rb +41 -0
  292. data/spec/models/pvm_instances_spec.rb +41 -0
  293. data/spec/models/sap_create_spec.rb +89 -0
  294. data/spec/models/sap_profile_reference_spec.rb +47 -0
  295. data/spec/models/sap_profile_spec.rb +69 -0
  296. data/spec/models/sap_profiles_spec.rb +41 -0
  297. data/spec/models/snapshot_create_response_spec.rb +41 -0
  298. data/spec/models/snapshot_create_spec.rb +53 -0
  299. data/spec/models/snapshot_restore_spec.rb +41 -0
  300. data/spec/models/snapshot_spec.rb +95 -0
  301. data/spec/models/snapshot_update_spec.rb +47 -0
  302. data/spec/models/snapshots_spec.rb +41 -0
  303. data/spec/models/software_licenses_spec.rb +65 -0
  304. data/spec/models/src_spec.rb +47 -0
  305. data/spec/models/ssh_key_spec.rb +53 -0
  306. data/spec/models/ssh_keys_spec.rb +41 -0
  307. data/spec/models/stock_image_spec.rb +53 -0
  308. data/spec/models/system_pool_spec.rb +83 -0
  309. data/spec/models/system_spec.rb +53 -0
  310. data/spec/models/task_reference_spec.rb +47 -0
  311. data/spec/models/task_spec.rb +89 -0
  312. data/spec/models/tenant_spec.rb +77 -0
  313. data/spec/models/tenant_update_spec.rb +47 -0
  314. data/spec/models/update_volume_spec.rb +59 -0
  315. data/spec/models/virtual_cores_spec.rb +53 -0
  316. data/spec/models/volume_info_spec.rb +47 -0
  317. data/spec/models/volume_reference_spec.rb +119 -0
  318. data/spec/models/volume_spec.rb +113 -0
  319. data/spec/models/volumes_clone_async_request_spec.rb +47 -0
  320. data/spec/models/volumes_clone_cancel_spec.rb +41 -0
  321. data/spec/models/volumes_clone_create_spec.rb +47 -0
  322. data/spec/models/volumes_clone_detail_spec.rb +89 -0
  323. data/spec/models/volumes_clone_execute_spec.rb +47 -0
  324. data/spec/models/volumes_clone_request_spec.rb +47 -0
  325. data/spec/models/volumes_clone_response_spec.rb +47 -0
  326. data/spec/models/volumes_clone_spec.rb +83 -0
  327. data/spec/models/volumes_clones_spec.rb +41 -0
  328. data/spec/models/volumes_spec.rb +41 -0
  329. data/spec/spec_helper.rb +111 -0
  330. metadata +519 -0
@@ -0,0 +1,566 @@
1
+ =begin
2
+ #Power Cloud API
3
+
4
+ #IBM Power Cloud API for Power Hardware / Infrastructure
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: kylej@us.ibm.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.0.0-beta2
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module IbmCloudPower
16
+ class PVMInstanceReference
17
+ # PCloud PVM Instance ID
18
+ attr_accessor :pvm_instance_id
19
+
20
+ # Name of the server
21
+ attr_accessor :server_name
22
+
23
+ # The ImageID used by the server
24
+ attr_accessor :image_id
25
+
26
+ # Number of processors allocated
27
+ attr_accessor :processors
28
+
29
+ # Minimum number of processors that can be allocated (for resize)
30
+ attr_accessor :minproc
31
+
32
+ # Maximum number of processors that can be allocated (for resize)
33
+ attr_accessor :maxproc
34
+
35
+ # Processor type (dedicated, shared, capped)
36
+ attr_accessor :proc_type
37
+
38
+ # Amount of memory allocated (in GB)
39
+ attr_accessor :memory
40
+
41
+ # Minimum amount of memory that can be allocated (in GB, for resize)
42
+ attr_accessor :minmem
43
+
44
+ # Maximum amount of memory that can be allocated (in GB, for resize)
45
+ attr_accessor :maxmem
46
+
47
+ # Size of allocated disk (in GB)
48
+ attr_accessor :disk_size
49
+
50
+ # (deprecated - replaced by networks) The list of addresses and their network information
51
+ attr_accessor :addresses
52
+
53
+ # The list of addresses and their network information
54
+ attr_accessor :networks
55
+
56
+ # The status of the instance
57
+ attr_accessor :status
58
+
59
+ # The progress of an operation
60
+ attr_accessor :progress
61
+
62
+ attr_accessor :fault
63
+
64
+ # Date/Time of PVM creation
65
+ attr_accessor :creation_date
66
+
67
+ # Date/Time of PVM last update
68
+ attr_accessor :updated_date
69
+
70
+ # System type used to host the instance
71
+ attr_accessor :sys_type
72
+
73
+ attr_accessor :health
74
+
75
+ # Link to Cloud Instance resource
76
+ attr_accessor :href
77
+
78
+ attr_accessor :software_licenses
79
+
80
+ # The pvm instance SRC lists
81
+ attr_accessor :srcs
82
+
83
+ # VM pinning policy to use [none, soft, hard]
84
+ attr_accessor :pin_policy
85
+
86
+ # Type of the OS [aix, ibmi, redhat, sles]
87
+ attr_accessor :os_type
88
+
89
+ # OS system information (usually version and build)
90
+ attr_accessor :operating_system
91
+
92
+ attr_accessor :sap_profile
93
+
94
+ attr_accessor :virtual_cores
95
+
96
+ class EnumAttributeValidator
97
+ attr_reader :datatype
98
+ attr_reader :allowable_values
99
+
100
+ def initialize(datatype, allowable_values)
101
+ @allowable_values = allowable_values.map do |value|
102
+ case datatype.to_s
103
+ when /Integer/i
104
+ value.to_i
105
+ when /Float/i
106
+ value.to_f
107
+ else
108
+ value
109
+ end
110
+ end
111
+ end
112
+
113
+ def valid?(value)
114
+ !value || allowable_values.include?(value)
115
+ end
116
+ end
117
+
118
+ # Attribute mapping from ruby-style variable name to JSON key.
119
+ def self.attribute_map
120
+ {
121
+ :'pvm_instance_id' => :'pvmInstanceID',
122
+ :'server_name' => :'serverName',
123
+ :'image_id' => :'imageID',
124
+ :'processors' => :'processors',
125
+ :'minproc' => :'minproc',
126
+ :'maxproc' => :'maxproc',
127
+ :'proc_type' => :'procType',
128
+ :'memory' => :'memory',
129
+ :'minmem' => :'minmem',
130
+ :'maxmem' => :'maxmem',
131
+ :'disk_size' => :'diskSize',
132
+ :'addresses' => :'addresses',
133
+ :'networks' => :'networks',
134
+ :'status' => :'status',
135
+ :'progress' => :'progress',
136
+ :'fault' => :'fault',
137
+ :'creation_date' => :'creationDate',
138
+ :'updated_date' => :'updatedDate',
139
+ :'sys_type' => :'sysType',
140
+ :'health' => :'health',
141
+ :'href' => :'href',
142
+ :'software_licenses' => :'softwareLicenses',
143
+ :'srcs' => :'srcs',
144
+ :'pin_policy' => :'pinPolicy',
145
+ :'os_type' => :'osType',
146
+ :'operating_system' => :'operatingSystem',
147
+ :'sap_profile' => :'sapProfile',
148
+ :'virtual_cores' => :'virtualCores'
149
+ }
150
+ end
151
+
152
+ # Attribute type mapping.
153
+ def self.openapi_types
154
+ {
155
+ :'pvm_instance_id' => :'String',
156
+ :'server_name' => :'String',
157
+ :'image_id' => :'String',
158
+ :'processors' => :'Float',
159
+ :'minproc' => :'Float',
160
+ :'maxproc' => :'Float',
161
+ :'proc_type' => :'String',
162
+ :'memory' => :'Float',
163
+ :'minmem' => :'Float',
164
+ :'maxmem' => :'Float',
165
+ :'disk_size' => :'Float',
166
+ :'addresses' => :'Array<PVMInstanceNetwork>',
167
+ :'networks' => :'Array<PVMInstanceNetwork>',
168
+ :'status' => :'String',
169
+ :'progress' => :'Float',
170
+ :'fault' => :'PVMInstanceFault',
171
+ :'creation_date' => :'DateTime',
172
+ :'updated_date' => :'DateTime',
173
+ :'sys_type' => :'String',
174
+ :'health' => :'PVMInstanceHealth',
175
+ :'href' => :'String',
176
+ :'software_licenses' => :'SoftwareLicenses',
177
+ :'srcs' => :'Array<Array<SRC>>',
178
+ :'pin_policy' => :'String',
179
+ :'os_type' => :'String',
180
+ :'operating_system' => :'String',
181
+ :'sap_profile' => :'SAPProfileReference',
182
+ :'virtual_cores' => :'VirtualCores'
183
+ }
184
+ end
185
+
186
+ # List of attributes with nullable: true
187
+ def self.openapi_nullable
188
+ Set.new([
189
+ ])
190
+ end
191
+
192
+ # Initializes the object
193
+ # @param [Hash] attributes Model attributes in the form of hash
194
+ def initialize(attributes = {})
195
+ if (!attributes.is_a?(Hash))
196
+ fail ArgumentError, "The input argument (attributes) must be a hash in `IbmCloudPower::PVMInstanceReference` initialize method"
197
+ end
198
+
199
+ # check to see if the attribute exists and convert string to symbol for hash key
200
+ attributes = attributes.each_with_object({}) { |(k, v), h|
201
+ if (!self.class.attribute_map.key?(k.to_sym))
202
+ fail ArgumentError, "`#{k}` is not a valid attribute in `IbmCloudPower::PVMInstanceReference`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
203
+ end
204
+ h[k.to_sym] = v
205
+ }
206
+
207
+ if attributes.key?(:'pvm_instance_id')
208
+ self.pvm_instance_id = attributes[:'pvm_instance_id']
209
+ end
210
+
211
+ if attributes.key?(:'server_name')
212
+ self.server_name = attributes[:'server_name']
213
+ end
214
+
215
+ if attributes.key?(:'image_id')
216
+ self.image_id = attributes[:'image_id']
217
+ end
218
+
219
+ if attributes.key?(:'processors')
220
+ self.processors = attributes[:'processors']
221
+ end
222
+
223
+ if attributes.key?(:'minproc')
224
+ self.minproc = attributes[:'minproc']
225
+ end
226
+
227
+ if attributes.key?(:'maxproc')
228
+ self.maxproc = attributes[:'maxproc']
229
+ end
230
+
231
+ if attributes.key?(:'proc_type')
232
+ self.proc_type = attributes[:'proc_type']
233
+ else
234
+ self.proc_type = 'dedicated'
235
+ end
236
+
237
+ if attributes.key?(:'memory')
238
+ self.memory = attributes[:'memory']
239
+ end
240
+
241
+ if attributes.key?(:'minmem')
242
+ self.minmem = attributes[:'minmem']
243
+ end
244
+
245
+ if attributes.key?(:'maxmem')
246
+ self.maxmem = attributes[:'maxmem']
247
+ end
248
+
249
+ if attributes.key?(:'disk_size')
250
+ self.disk_size = attributes[:'disk_size']
251
+ end
252
+
253
+ if attributes.key?(:'addresses')
254
+ if (value = attributes[:'addresses']).is_a?(Array)
255
+ self.addresses = value
256
+ end
257
+ end
258
+
259
+ if attributes.key?(:'networks')
260
+ if (value = attributes[:'networks']).is_a?(Array)
261
+ self.networks = value
262
+ end
263
+ end
264
+
265
+ if attributes.key?(:'status')
266
+ self.status = attributes[:'status']
267
+ end
268
+
269
+ if attributes.key?(:'progress')
270
+ self.progress = attributes[:'progress']
271
+ end
272
+
273
+ if attributes.key?(:'fault')
274
+ self.fault = attributes[:'fault']
275
+ end
276
+
277
+ if attributes.key?(:'creation_date')
278
+ self.creation_date = attributes[:'creation_date']
279
+ end
280
+
281
+ if attributes.key?(:'updated_date')
282
+ self.updated_date = attributes[:'updated_date']
283
+ end
284
+
285
+ if attributes.key?(:'sys_type')
286
+ self.sys_type = attributes[:'sys_type']
287
+ end
288
+
289
+ if attributes.key?(:'health')
290
+ self.health = attributes[:'health']
291
+ end
292
+
293
+ if attributes.key?(:'href')
294
+ self.href = attributes[:'href']
295
+ end
296
+
297
+ if attributes.key?(:'software_licenses')
298
+ self.software_licenses = attributes[:'software_licenses']
299
+ end
300
+
301
+ if attributes.key?(:'srcs')
302
+ if (value = attributes[:'srcs']).is_a?(Array)
303
+ self.srcs = value
304
+ end
305
+ end
306
+
307
+ if attributes.key?(:'pin_policy')
308
+ self.pin_policy = attributes[:'pin_policy']
309
+ end
310
+
311
+ if attributes.key?(:'os_type')
312
+ self.os_type = attributes[:'os_type']
313
+ end
314
+
315
+ if attributes.key?(:'operating_system')
316
+ self.operating_system = attributes[:'operating_system']
317
+ end
318
+
319
+ if attributes.key?(:'sap_profile')
320
+ self.sap_profile = attributes[:'sap_profile']
321
+ end
322
+
323
+ if attributes.key?(:'virtual_cores')
324
+ self.virtual_cores = attributes[:'virtual_cores']
325
+ end
326
+ end
327
+
328
+ # Show invalid properties with the reasons. Usually used together with valid?
329
+ # @return Array for valid properties with the reasons
330
+ def list_invalid_properties
331
+ invalid_properties = Array.new
332
+ if @pvm_instance_id.nil?
333
+ invalid_properties.push('invalid value for "pvm_instance_id", pvm_instance_id cannot be nil.')
334
+ end
335
+
336
+ if @server_name.nil?
337
+ invalid_properties.push('invalid value for "server_name", server_name cannot be nil.')
338
+ end
339
+
340
+ if @image_id.nil?
341
+ invalid_properties.push('invalid value for "image_id", image_id cannot be nil.')
342
+ end
343
+
344
+ if @processors.nil?
345
+ invalid_properties.push('invalid value for "processors", processors cannot be nil.')
346
+ end
347
+
348
+ if @proc_type.nil?
349
+ invalid_properties.push('invalid value for "proc_type", proc_type cannot be nil.')
350
+ end
351
+
352
+ if @memory.nil?
353
+ invalid_properties.push('invalid value for "memory", memory cannot be nil.')
354
+ end
355
+
356
+ if @disk_size.nil?
357
+ invalid_properties.push('invalid value for "disk_size", disk_size cannot be nil.')
358
+ end
359
+
360
+ if @status.nil?
361
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
362
+ end
363
+
364
+ if @href.nil?
365
+ invalid_properties.push('invalid value for "href", href cannot be nil.')
366
+ end
367
+
368
+ if @os_type.nil?
369
+ invalid_properties.push('invalid value for "os_type", os_type cannot be nil.')
370
+ end
371
+
372
+ invalid_properties
373
+ end
374
+
375
+ # Check to see if the all the properties in the model are valid
376
+ # @return true if the model is valid
377
+ def valid?
378
+ return false if @pvm_instance_id.nil?
379
+ return false if @server_name.nil?
380
+ return false if @image_id.nil?
381
+ return false if @processors.nil?
382
+ return false if @proc_type.nil?
383
+ proc_type_validator = EnumAttributeValidator.new('String', ["dedicated", "shared", "capped"])
384
+ return false unless proc_type_validator.valid?(@proc_type)
385
+ return false if @memory.nil?
386
+ return false if @disk_size.nil?
387
+ return false if @status.nil?
388
+ return false if @href.nil?
389
+ return false if @os_type.nil?
390
+ true
391
+ end
392
+
393
+ # Custom attribute writer method checking allowed values (enum).
394
+ # @param [Object] proc_type Object to be assigned
395
+ def proc_type=(proc_type)
396
+ validator = EnumAttributeValidator.new('String', ["dedicated", "shared", "capped"])
397
+ unless validator.valid?(proc_type)
398
+ fail ArgumentError, "invalid value for \"proc_type\", must be one of #{validator.allowable_values}."
399
+ end
400
+ @proc_type = proc_type
401
+ end
402
+
403
+ # Checks equality by comparing each attribute.
404
+ # @param [Object] Object to be compared
405
+ def ==(o)
406
+ return true if self.equal?(o)
407
+ self.class == o.class &&
408
+ pvm_instance_id == o.pvm_instance_id &&
409
+ server_name == o.server_name &&
410
+ image_id == o.image_id &&
411
+ processors == o.processors &&
412
+ minproc == o.minproc &&
413
+ maxproc == o.maxproc &&
414
+ proc_type == o.proc_type &&
415
+ memory == o.memory &&
416
+ minmem == o.minmem &&
417
+ maxmem == o.maxmem &&
418
+ disk_size == o.disk_size &&
419
+ addresses == o.addresses &&
420
+ networks == o.networks &&
421
+ status == o.status &&
422
+ progress == o.progress &&
423
+ fault == o.fault &&
424
+ creation_date == o.creation_date &&
425
+ updated_date == o.updated_date &&
426
+ sys_type == o.sys_type &&
427
+ health == o.health &&
428
+ href == o.href &&
429
+ software_licenses == o.software_licenses &&
430
+ srcs == o.srcs &&
431
+ pin_policy == o.pin_policy &&
432
+ os_type == o.os_type &&
433
+ operating_system == o.operating_system &&
434
+ sap_profile == o.sap_profile &&
435
+ virtual_cores == o.virtual_cores
436
+ end
437
+
438
+ # @see the `==` method
439
+ # @param [Object] Object to be compared
440
+ def eql?(o)
441
+ self == o
442
+ end
443
+
444
+ # Calculates hash code according to all attributes.
445
+ # @return [Integer] Hash code
446
+ def hash
447
+ [pvm_instance_id, server_name, image_id, processors, minproc, maxproc, proc_type, memory, minmem, maxmem, disk_size, addresses, networks, status, progress, fault, creation_date, updated_date, sys_type, health, href, software_licenses, srcs, pin_policy, os_type, operating_system, sap_profile, virtual_cores].hash
448
+ end
449
+
450
+ # Builds the object from hash
451
+ # @param [Hash] attributes Model attributes in the form of hash
452
+ # @return [Object] Returns the model itself
453
+ def self.build_from_hash(attributes)
454
+ new.build_from_hash(attributes)
455
+ end
456
+
457
+ # Builds the object from hash
458
+ # @param [Hash] attributes Model attributes in the form of hash
459
+ # @return [Object] Returns the model itself
460
+ def build_from_hash(attributes)
461
+ return nil unless attributes.is_a?(Hash)
462
+ self.class.openapi_types.each_pair do |key, type|
463
+ if type =~ /\AArray<(.*)>/i
464
+ # check to ensure the input is an array given that the attribute
465
+ # is documented as an array but the input is not
466
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
467
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
468
+ end
469
+ elsif !attributes[self.class.attribute_map[key]].nil?
470
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
471
+ elsif attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
472
+ self.send("#{key}=", nil)
473
+ end
474
+ end
475
+
476
+ self
477
+ end
478
+
479
+ # Deserializes the data based on type
480
+ # @param string type Data type
481
+ # @param string value Value to be deserialized
482
+ # @return [Object] Deserialized data
483
+ def _deserialize(type, value)
484
+ case type.to_sym
485
+ when :DateTime
486
+ DateTime.parse(value)
487
+ when :Date
488
+ Date.parse(value)
489
+ when :String
490
+ value.to_s
491
+ when :Integer
492
+ value.to_i
493
+ when :Float
494
+ value.to_f
495
+ when :Boolean
496
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
497
+ true
498
+ else
499
+ false
500
+ end
501
+ when :Object
502
+ # generic object (usually a Hash), return directly
503
+ value
504
+ when /\AArray<(?<inner_type>.+)>\z/
505
+ inner_type = Regexp.last_match[:inner_type]
506
+ value.map { |v| _deserialize(inner_type, v) }
507
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
508
+ k_type = Regexp.last_match[:k_type]
509
+ v_type = Regexp.last_match[:v_type]
510
+ {}.tap do |hash|
511
+ value.each do |k, v|
512
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
513
+ end
514
+ end
515
+ else # model
516
+ IbmCloudPower.const_get(type).build_from_hash(value)
517
+ end
518
+ end
519
+
520
+ # Returns the string representation of the object
521
+ # @return [String] String presentation of the object
522
+ def to_s
523
+ to_hash.to_s
524
+ end
525
+
526
+ # to_body is an alias to to_hash (backward compatibility)
527
+ # @return [Hash] Returns the object in the form of hash
528
+ def to_body
529
+ to_hash
530
+ end
531
+
532
+ # Returns the object in the form of hash
533
+ # @return [Hash] Returns the object in the form of hash
534
+ def to_hash
535
+ hash = {}
536
+ self.class.attribute_map.each_pair do |attr, param|
537
+ value = self.send(attr)
538
+ if value.nil?
539
+ is_nullable = self.class.openapi_nullable.include?(attr)
540
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
541
+ end
542
+
543
+ hash[param] = _to_hash(value)
544
+ end
545
+ hash
546
+ end
547
+
548
+ # Outputs non-array value in the form of hash
549
+ # For object, use to_hash. Otherwise, just return the value
550
+ # @param [Object] value Any valid value
551
+ # @return [Hash] Returns the value in the form of hash
552
+ def _to_hash(value)
553
+ if value.is_a?(Array)
554
+ value.compact.map { |v| _to_hash(v) }
555
+ elsif value.is_a?(Hash)
556
+ {}.tap do |hash|
557
+ value.each { |k, v| hash[k] = _to_hash(v) }
558
+ end
559
+ elsif value.respond_to? :to_hash
560
+ value.to_hash
561
+ else
562
+ value
563
+ end
564
+ end
565
+ end
566
+ end