ibm_cloud_power 2.1.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (808) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +172 -30
  3. data/docs/AccessConfig.md +15 -0
  4. data/docs/AddHost.md +22 -0
  5. data/docs/AddServerVirtualSerialNumber.md +20 -0
  6. data/docs/AvailableHost.md +22 -0
  7. data/docs/AvailableHostCapacity.md +20 -0
  8. data/docs/AvailableHostResourceCapacity.md +18 -0
  9. data/docs/CapabilitiesDetails.md +20 -0
  10. data/docs/CloudConnectionEndpointVPC.md +1 -1
  11. data/docs/CloudConnectionVirtualPrivateClouds.md +1 -1
  12. data/docs/CloudConnectionVirtualPrivateCloudsVirtualPrivateClouds.md +14 -13
  13. data/docs/CloudConnectionVpc.md +20 -0
  14. data/docs/CreateCosImageImportJob.md +7 -3
  15. data/docs/CreateDataVolume.md +4 -2
  16. data/docs/CreateImage.md +6 -4
  17. data/docs/CreateServerVirtualSerialNumber.md +20 -0
  18. data/docs/Datacenter.md +28 -0
  19. data/docs/DatacenterLocation.md +24 -0
  20. data/docs/Datacenters.md +18 -0
  21. data/docs/DatacentersApi.md +253 -0
  22. data/docs/DeleteServerVirtualSerialNumber.md +18 -0
  23. data/docs/DeploymentTarget.md +20 -0
  24. data/docs/DisasterRecovery.md +20 -0
  25. data/docs/DisasterRecoveryLocation.md +1 -1
  26. data/docs/GetBulkVolume.md +18 -0
  27. data/docs/GetServerVirtualSerialNumber.md +20 -0
  28. data/docs/Host.md +34 -0
  29. data/docs/HostCapacity.md +20 -0
  30. data/docs/HostCreate.md +20 -0
  31. data/docs/HostGroup.md +28 -0
  32. data/docs/HostGroupCreate.md +22 -0
  33. data/docs/HostGroupShareOp.md +20 -0
  34. data/docs/HostGroupSummary.md +22 -0
  35. data/docs/HostGroupsApi.md +632 -0
  36. data/docs/HostPut.md +18 -0
  37. data/docs/HostResourceCapacity.md +24 -0
  38. data/docs/Image.md +6 -0
  39. data/docs/ImageImportDetails.md +22 -0
  40. data/docs/ImageReference.md +2 -0
  41. data/docs/MultiVolumesCreate.md +4 -2
  42. data/docs/Network.md +9 -3
  43. data/docs/NetworkAddressGroup.md +26 -0
  44. data/docs/NetworkAddressGroupAddMember.md +18 -0
  45. data/docs/NetworkAddressGroupCreate.md +20 -0
  46. data/docs/NetworkAddressGroupMember.md +20 -0
  47. data/docs/NetworkAddressGroupUpdate.md +18 -0
  48. data/docs/NetworkAddressGroups.md +18 -0
  49. data/docs/NetworkAddressGroupsApi.md +451 -0
  50. data/docs/NetworkAddressTranslation.md +18 -0
  51. data/docs/NetworkCloudConnections.md +20 -0
  52. data/docs/NetworkCreate.md +6 -2
  53. data/docs/NetworkInterface.md +36 -0
  54. data/docs/NetworkInterfaceCreate.md +22 -0
  55. data/docs/NetworkInterfaceInstance.md +20 -0
  56. data/docs/NetworkInterfaceUpdate.md +20 -0
  57. data/docs/NetworkInterfaces.md +18 -0
  58. data/docs/NetworkPortPvmInstance.md +1 -1
  59. data/docs/NetworkReference.md +8 -2
  60. data/docs/NetworkSecurityGroup.md +30 -0
  61. data/docs/NetworkSecurityGroupAddMember.md +20 -0
  62. data/docs/NetworkSecurityGroupAddRule.md +30 -0
  63. data/docs/NetworkSecurityGroupClone.md +18 -0
  64. data/docs/NetworkSecurityGroupCreate.md +20 -0
  65. data/docs/NetworkSecurityGroupMember.md +26 -0
  66. data/docs/NetworkSecurityGroupMoveMember.md +20 -0
  67. data/docs/NetworkSecurityGroupRule.md +28 -0
  68. data/docs/NetworkSecurityGroupRulePort.md +20 -0
  69. data/docs/NetworkSecurityGroupRuleProtocol.md +22 -0
  70. data/docs/NetworkSecurityGroupRuleProtocolTcpFlag.md +18 -0
  71. data/docs/NetworkSecurityGroupRuleRemote.md +20 -0
  72. data/docs/NetworkSecurityGroupUpdate.md +18 -0
  73. data/docs/NetworkSecurityGroups.md +18 -0
  74. data/docs/NetworkSecurityGroupsAction.md +18 -0
  75. data/docs/NetworkSecurityGroupsApi.md +779 -0
  76. data/docs/NetworksApi.md +334 -0
  77. data/docs/PCloudCloudConnectionsApi.md +10 -10
  78. data/docs/PCloudImagesApi.md +15 -9
  79. data/docs/PCloudNetworksApi.md +12 -2
  80. data/docs/PCloudPVMInstancesApi.md +80 -78
  81. data/docs/PCloudPlacementGroupsApi.md +1 -1
  82. data/docs/PCloudPodCapacityApi.md +72 -0
  83. data/docs/PCloudSAPApi.md +10 -4
  84. data/docs/PCloudSPPPlacementGroupsApi.md +2 -2
  85. data/docs/PCloudSharedProcessorPoolsApi.md +1 -1
  86. data/docs/PCloudSnapshotsApi.md +1 -1
  87. data/docs/PCloudStorageTiersApi.md +70 -0
  88. data/docs/PCloudTasksApi.md +1 -1
  89. data/docs/PCloudTenantsSSHKeysApi.md +1 -1
  90. data/docs/PCloudVirtualSerialNumberApi.md +531 -0
  91. data/docs/PCloudVolumeGroupsApi.md +7 -5
  92. data/docs/PCloudVolumesApi.md +169 -21
  93. data/docs/PVMInstance.md +12 -0
  94. data/docs/PVMInstanceAction.md +1 -1
  95. data/docs/PVMInstanceAddNetwork.md +3 -1
  96. data/docs/PVMInstanceCapture.md +3 -1
  97. data/docs/PVMInstanceConfiguration.md +26 -0
  98. data/docs/PVMInstanceCores.md +22 -0
  99. data/docs/PVMInstanceCreate.md +11 -3
  100. data/docs/PVMInstanceDelete.md +18 -0
  101. data/docs/PVMInstanceMemory.md +22 -0
  102. data/docs/PVMInstanceNetwork.md +6 -0
  103. data/docs/PVMInstanceOperatingSystem.md +20 -0
  104. data/docs/PVMInstanceReference.md +11 -1
  105. data/docs/PVMInstanceReferenceV2.md +48 -0
  106. data/docs/PVMInstanceUpdateResponse.md +6 -2
  107. data/docs/PVMInstanceV2Health.md +18 -0
  108. data/docs/PVMInstanceV2NetworkPort.md +26 -0
  109. data/docs/PVMInstanceVirtualCores.md +22 -0
  110. data/docs/PVMInstanceVolumeUpdate.md +1 -1
  111. data/docs/PVMInstancesV2.md +18 -0
  112. data/docs/PodCapacity.md +22 -0
  113. data/docs/PodData.md +36 -0
  114. data/docs/PvmInstanceDeployment.md +24 -0
  115. data/docs/PvmInstanceHost.md +20 -0
  116. data/docs/PvmInstancePlacementGroup.md +18 -0
  117. data/docs/RemoveVirtualSerialNumber.md +18 -0
  118. data/docs/ReplicationService.md +20 -0
  119. data/docs/ReplicationTargetLocation.md +20 -0
  120. data/docs/SAPCreate.md +9 -3
  121. data/docs/SAPProfile.md +13 -1
  122. data/docs/Secondary.md +20 -0
  123. data/docs/SharedProcessorPool.md +7 -1
  124. data/docs/SharedProcessorPoolCreate.md +5 -1
  125. data/docs/SharedProcessorPoolServer.md +2 -2
  126. data/docs/Snapshot.md +3 -1
  127. data/docs/SnapshotCreate.md +2 -0
  128. data/docs/SnapshotCreateResponse.md +5 -1
  129. data/docs/SnapshotList.md +18 -0
  130. data/docs/SnapshotV1.md +30 -0
  131. data/docs/SnapshotsApi.md +261 -0
  132. data/docs/StorageController.md +26 -0
  133. data/docs/StoragePoolCapacity.md +6 -0
  134. data/docs/StoragePoolCombined.md +22 -0
  135. data/docs/StoragePoolMap.md +20 -0
  136. data/docs/StorageTier.md +22 -0
  137. data/docs/SupportedSystems.md +20 -0
  138. data/docs/System.md +16 -2
  139. data/docs/SystemPool.md +2 -0
  140. data/docs/SystemPoolCapacity.md +30 -0
  141. data/docs/SystemResources.md +32 -0
  142. data/docs/UpdateServerVirtualSerialNumber.md +18 -0
  143. data/docs/UpdateVirtualSerialNumber.md +18 -0
  144. data/docs/VirtualSerialNumber.md +22 -0
  145. data/docs/Volume.md +9 -3
  146. data/docs/VolumeAction.md +4 -2
  147. data/docs/VolumeGroup.md +7 -1
  148. data/docs/VolumeGroupDetails.md +6 -0
  149. data/docs/VolumeInfo.md +2 -0
  150. data/docs/VolumeOnboardingCreate.md +3 -1
  151. data/docs/VolumeReference.md +10 -2
  152. data/docs/VolumeSnapshotList.md +18 -0
  153. data/docs/VolumesCloneAsyncRequest.md +7 -1
  154. data/docs/VolumesCloneExecute.md +8 -2
  155. data/docs/VolumesCloneRequest.md +1 -1
  156. data/docs/VolumesDelete.md +18 -0
  157. data/docs/VolumesDeleteResponse.md +18 -0
  158. data/docs/VolumesDetach.md +22 -0
  159. data/docs/VolumesDetachmentResponse.md +18 -0
  160. data/docs/Workspace.md +30 -0
  161. data/docs/WorkspaceDetails.md +26 -0
  162. data/docs/WorkspaceLocation.md +22 -0
  163. data/docs/WorkspaceNetworkSecurityGroupsDetails.md +18 -0
  164. data/docs/WorkspacePowerEdgeRouterDetails.md +22 -0
  165. data/docs/Workspaces.md +18 -0
  166. data/docs/WorkspacesApi.md +130 -0
  167. data/ibm_cloud_power.gemspec +4 -4
  168. data/lib/ibm_cloud_power/api/datacenters_api.rb +254 -0
  169. data/lib/ibm_cloud_power/api/host_groups_api.rb +646 -0
  170. data/lib/ibm_cloud_power/api/network_address_groups_api.rb +476 -0
  171. data/lib/ibm_cloud_power/api/network_security_groups_api.rb +828 -0
  172. data/lib/ibm_cloud_power/api/networks_api.rb +363 -0
  173. data/lib/ibm_cloud_power/api/p_cloud_cloud_connections_api.rb +9 -9
  174. data/lib/ibm_cloud_power/api/p_cloud_disaster_recovery_api.rb +3 -3
  175. data/lib/ibm_cloud_power/api/p_cloud_events_api.rb +7 -12
  176. data/lib/ibm_cloud_power/api/p_cloud_images_api.rb +14 -8
  177. data/lib/ibm_cloud_power/api/p_cloud_instances_api.rb +3 -3
  178. data/lib/ibm_cloud_power/api/p_cloud_jobs_api.rb +3 -3
  179. data/lib/ibm_cloud_power/api/p_cloud_networks_api.rb +15 -5
  180. data/lib/ibm_cloud_power/api/p_cloud_placement_groups_api.rb +4 -4
  181. data/lib/ibm_cloud_power/api/{p_cloud_system_pools_api.rb → p_cloud_pod_capacity_api.rb} +19 -17
  182. data/lib/ibm_cloud_power/api/p_cloud_pvm_instances_api.rb +81 -87
  183. data/lib/ibm_cloud_power/api/p_cloud_sap_api.rb +17 -3
  184. data/lib/ibm_cloud_power/api/p_cloud_shared_processor_pools_api.rb +4 -4
  185. data/lib/ibm_cloud_power/api/p_cloud_snapshots_api.rb +4 -4
  186. data/lib/ibm_cloud_power/api/p_cloud_spp_placement_groups_api.rb +5 -5
  187. data/lib/ibm_cloud_power/api/p_cloud_storage_capacity_api.rb +3 -3
  188. data/lib/ibm_cloud_power/api/p_cloud_storage_tiers_api.rb +83 -0
  189. data/lib/ibm_cloud_power/api/p_cloud_tasks_api.rb +4 -4
  190. data/lib/ibm_cloud_power/api/p_cloud_tenants_api.rb +3 -3
  191. data/lib/ibm_cloud_power/api/p_cloud_tenants_ssh_keys_api.rb +4 -4
  192. data/lib/ibm_cloud_power/api/p_cloud_virtual_serial_number_api.rb +571 -0
  193. data/lib/ibm_cloud_power/api/p_cloud_volume_groups_api.rb +8 -6
  194. data/lib/ibm_cloud_power/api/p_cloud_volume_onboarding_api.rb +3 -3
  195. data/lib/ibm_cloud_power/api/p_cloud_volumes_api.rb +181 -15
  196. data/lib/ibm_cloud_power/api/p_cloud_vpn_connections_api.rb +3 -3
  197. data/lib/ibm_cloud_power/api/p_cloud_vpn_policies_api.rb +3 -3
  198. data/lib/ibm_cloud_power/api/snapshots_api.rb +262 -0
  199. data/lib/ibm_cloud_power/api/workspaces_api.rb +138 -0
  200. data/lib/ibm_cloud_power/api_client.rb +4 -6
  201. data/lib/ibm_cloud_power/api_error.rb +3 -3
  202. data/lib/ibm_cloud_power/configuration.rb +6 -7
  203. data/lib/ibm_cloud_power/models/{cloud_connection_speed.rb → access_config.rb} +11 -14
  204. data/lib/ibm_cloud_power/models/add_host.rb +250 -0
  205. data/lib/ibm_cloud_power/models/add_server_virtual_serial_number.rb +234 -0
  206. data/lib/ibm_cloud_power/models/auxiliary_volume_for_onboarding.rb +29 -4
  207. data/lib/ibm_cloud_power/models/auxiliary_volumes_for_onboarding.rb +3 -4
  208. data/lib/ibm_cloud_power/models/available_host.rb +240 -0
  209. data/lib/ibm_cloud_power/models/available_host_capacity.rb +229 -0
  210. data/lib/ibm_cloud_power/models/available_host_resource_capacity.rb +223 -0
  211. data/lib/ibm_cloud_power/models/capabilities_details.rb +229 -0
  212. data/lib/ibm_cloud_power/models/clone_task_reference.rb +3 -4
  213. data/lib/ibm_cloud_power/models/clone_task_status.rb +3 -4
  214. data/lib/ibm_cloud_power/models/cloned_volume.rb +3 -4
  215. data/lib/ibm_cloud_power/models/cloned_volume_detail.rb +5 -14
  216. data/lib/ibm_cloud_power/models/cloud_connection.rb +5 -4
  217. data/lib/ibm_cloud_power/models/cloud_connection_create.rb +5 -4
  218. data/lib/ibm_cloud_power/models/cloud_connection_create_response.rb +5 -4
  219. data/lib/ibm_cloud_power/models/cloud_connection_endpoint_classic.rb +4 -4
  220. data/lib/ibm_cloud_power/models/cloud_connection_endpoint_classic_update.rb +4 -4
  221. data/lib/ibm_cloud_power/models/cloud_connection_endpoint_vpc.rb +4 -5
  222. data/lib/ibm_cloud_power/models/cloud_connection_gre_tunnel.rb +3 -4
  223. data/lib/ibm_cloud_power/models/cloud_connection_gre_tunnel_create.rb +3 -4
  224. data/lib/ibm_cloud_power/models/cloud_connection_update.rb +5 -4
  225. data/lib/ibm_cloud_power/models/cloud_connection_virtual_private_clouds.rb +4 -5
  226. data/lib/ibm_cloud_power/models/cloud_connection_virtual_private_clouds_virtual_private_clouds.rb +39 -29
  227. data/lib/ibm_cloud_power/models/cloud_connection_vpc.rb +6 -7
  228. data/lib/ibm_cloud_power/models/cloud_connections.rb +3 -4
  229. data/lib/ibm_cloud_power/models/cloud_instance.rb +5 -14
  230. data/lib/ibm_cloud_power/models/cloud_instance_reference.rb +4 -9
  231. data/lib/ibm_cloud_power/models/cloud_instance_usage_limits.rb +3 -4
  232. data/lib/ibm_cloud_power/models/console_language.rb +3 -4
  233. data/lib/ibm_cloud_power/models/console_languages.rb +3 -4
  234. data/lib/ibm_cloud_power/models/create_cos_image_import_job.rb +30 -10
  235. data/lib/ibm_cloud_power/models/create_data_volume.rb +16 -7
  236. data/lib/ibm_cloud_power/models/create_image.rb +33 -11
  237. data/lib/ibm_cloud_power/models/create_server_virtual_serial_number.rb +234 -0
  238. data/lib/ibm_cloud_power/models/datacenter.rb +332 -0
  239. data/lib/ibm_cloud_power/models/datacenter_location.rb +269 -0
  240. data/lib/ibm_cloud_power/models/datacenters.rb +226 -0
  241. data/lib/ibm_cloud_power/models/dead_peer_detection.rb +3 -4
  242. data/lib/ibm_cloud_power/models/delete_server_virtual_serial_number.rb +219 -0
  243. data/lib/ibm_cloud_power/models/deployment_target.rb +273 -0
  244. data/lib/ibm_cloud_power/models/disaster_recovery.rb +229 -0
  245. data/lib/ibm_cloud_power/models/disaster_recovery_location.rb +6 -9
  246. data/lib/ibm_cloud_power/models/disaster_recovery_locations.rb +3 -4
  247. data/lib/ibm_cloud_power/models/error.rb +3 -4
  248. data/lib/ibm_cloud_power/models/event.rb +3 -4
  249. data/lib/ibm_cloud_power/models/event_user.rb +3 -4
  250. data/lib/ibm_cloud_power/models/events.rb +3 -4
  251. data/lib/ibm_cloud_power/models/export_image.rb +3 -4
  252. data/lib/ibm_cloud_power/models/flash_copy_mapping.rb +3 -4
  253. data/lib/ibm_cloud_power/models/get_bulk_volume.rb +226 -0
  254. data/lib/ibm_cloud_power/models/get_server_virtual_serial_number.rb +239 -0
  255. data/lib/ibm_cloud_power/models/host.rb +300 -0
  256. data/lib/ibm_cloud_power/models/host_capacity.rb +229 -0
  257. data/lib/ibm_cloud_power/models/host_create.rb +242 -0
  258. data/lib/ibm_cloud_power/models/host_group.rb +274 -0
  259. data/lib/ibm_cloud_power/models/host_group_create.rb +254 -0
  260. data/lib/ibm_cloud_power/models/host_group_share_op.rb +232 -0
  261. data/lib/ibm_cloud_power/models/host_group_summary.rb +239 -0
  262. data/lib/ibm_cloud_power/models/{options.rb → host_put.rb} +18 -17
  263. data/lib/ibm_cloud_power/models/host_resource_capacity.rb +265 -0
  264. data/lib/ibm_cloud_power/models/ike_policies.rb +3 -4
  265. data/lib/ibm_cloud_power/models/ike_policy.rb +3 -4
  266. data/lib/ibm_cloud_power/models/ike_policy_authentication.rb +6 -9
  267. data/lib/ibm_cloud_power/models/ike_policy_create.rb +3 -4
  268. data/lib/ibm_cloud_power/models/ike_policy_ref.rb +3 -4
  269. data/lib/ibm_cloud_power/models/ike_policy_update.rb +3 -4
  270. data/lib/ibm_cloud_power/models/image.rb +41 -5
  271. data/lib/ibm_cloud_power/models/image_import_details.rb +312 -0
  272. data/lib/ibm_cloud_power/models/image_reference.rb +15 -10
  273. data/lib/ibm_cloud_power/models/image_specifications.rb +3 -4
  274. data/lib/ibm_cloud_power/models/image_volume.rb +3 -4
  275. data/lib/ibm_cloud_power/models/images.rb +3 -4
  276. data/lib/ibm_cloud_power/models/ip_address_range.rb +3 -4
  277. data/lib/ibm_cloud_power/models/ip_sec_policies.rb +3 -4
  278. data/lib/ibm_cloud_power/models/ip_sec_policy.rb +3 -4
  279. data/lib/ibm_cloud_power/models/ip_sec_policy_create.rb +3 -4
  280. data/lib/ibm_cloud_power/models/ip_sec_policy_ref.rb +3 -4
  281. data/lib/ibm_cloud_power/models/ip_sec_policy_update.rb +3 -4
  282. data/lib/ibm_cloud_power/models/ipsec_policy_authentication.rb +6 -9
  283. data/lib/ibm_cloud_power/models/job.rb +5 -14
  284. data/lib/ibm_cloud_power/models/job_reference.rb +3 -4
  285. data/lib/ibm_cloud_power/models/jobs.rb +3 -4
  286. data/lib/ibm_cloud_power/models/maximum_storage_allocation.rb +3 -4
  287. data/lib/ibm_cloud_power/models/min_max_default.rb +3 -4
  288. data/lib/ibm_cloud_power/models/multi_volumes_create.rb +16 -7
  289. data/lib/ibm_cloud_power/models/network.rb +60 -13
  290. data/lib/ibm_cloud_power/models/{cloud_connection_virtual_private_clouds_virtual_private_clouds_inner.rb → network_address_group.rb} +54 -46
  291. data/lib/ibm_cloud_power/models/network_address_group_add_member.rb +224 -0
  292. data/lib/ibm_cloud_power/models/network_address_group_create.rb +236 -0
  293. data/lib/ibm_cloud_power/models/network_address_group_member.rb +239 -0
  294. data/lib/ibm_cloud_power/models/network_address_group_update.rb +219 -0
  295. data/lib/ibm_cloud_power/models/network_address_groups.rb +221 -0
  296. data/lib/ibm_cloud_power/models/network_address_translation.rb +220 -0
  297. data/lib/ibm_cloud_power/models/{network_cloud_connections_inner.rb → network_cloud_connections.rb} +6 -7
  298. data/lib/ibm_cloud_power/models/network_create.rb +77 -9
  299. data/lib/ibm_cloud_power/models/network_create.rb.orig +393 -0
  300. data/lib/ibm_cloud_power/models/network_id.rb +3 -4
  301. data/lib/ibm_cloud_power/models/network_ids.rb +3 -4
  302. data/lib/ibm_cloud_power/models/network_interface.rb +342 -0
  303. data/lib/ibm_cloud_power/models/network_interface_create.rb +241 -0
  304. data/lib/ibm_cloud_power/models/network_interface_instance.rb +230 -0
  305. data/lib/ibm_cloud_power/models/network_interface_update.rb +229 -0
  306. data/lib/ibm_cloud_power/models/network_interfaces.rb +226 -0
  307. data/lib/ibm_cloud_power/models/network_ip_address_metrics.rb +3 -4
  308. data/lib/ibm_cloud_power/models/network_port.rb +3 -4
  309. data/lib/ibm_cloud_power/models/network_port_create.rb +3 -4
  310. data/lib/ibm_cloud_power/models/network_port_pvm_instance.rb +4 -5
  311. data/lib/ibm_cloud_power/models/network_port_update.rb +3 -4
  312. data/lib/ibm_cloud_power/models/network_ports.rb +3 -4
  313. data/lib/ibm_cloud_power/models/network_reference.rb +59 -12
  314. data/lib/ibm_cloud_power/models/network_security_group.rb +300 -0
  315. data/lib/ibm_cloud_power/models/network_security_group_add_member.rb +273 -0
  316. data/lib/ibm_cloud_power/models/network_security_group_add_rule.rb +326 -0
  317. data/lib/ibm_cloud_power/models/network_security_group_clone.rb +224 -0
  318. data/lib/ibm_cloud_power/models/network_security_group_create.rb +236 -0
  319. data/lib/ibm_cloud_power/models/network_security_group_member.rb +308 -0
  320. data/lib/ibm_cloud_power/models/network_security_group_move_member.rb +239 -0
  321. data/lib/ibm_cloud_power/models/{ike_policy_template.rb → network_security_group_rule.rb} +91 -85
  322. data/lib/ibm_cloud_power/models/network_security_group_rule_port.rb +259 -0
  323. data/lib/ibm_cloud_power/models/{cloud_instance_create.rb → network_security_group_rule_protocol.rb} +77 -95
  324. data/lib/ibm_cloud_power/models/network_security_group_rule_protocol_tcp_flag.rb +253 -0
  325. data/lib/ibm_cloud_power/models/network_security_group_rule_remote.rb +263 -0
  326. data/lib/ibm_cloud_power/models/network_security_group_update.rb +219 -0
  327. data/lib/ibm_cloud_power/models/network_security_groups.rb +221 -0
  328. data/lib/ibm_cloud_power/models/network_security_groups_action.rb +258 -0
  329. data/lib/ibm_cloud_power/models/network_update.rb +3 -4
  330. data/lib/ibm_cloud_power/models/networks.rb +3 -4
  331. data/lib/ibm_cloud_power/models/operation.rb +3 -4
  332. data/lib/ibm_cloud_power/models/operations.rb +3 -4
  333. data/lib/ibm_cloud_power/models/peer_subnet_update.rb +3 -4
  334. data/lib/ibm_cloud_power/models/peer_subnets.rb +3 -4
  335. data/lib/ibm_cloud_power/models/peering_network.rb +3 -4
  336. data/lib/ibm_cloud_power/models/pin_policy.rb +6 -9
  337. data/lib/ibm_cloud_power/models/placement_group.rb +3 -4
  338. data/lib/ibm_cloud_power/models/placement_group_create.rb +3 -4
  339. data/lib/ibm_cloud_power/models/placement_group_server.rb +3 -4
  340. data/lib/ibm_cloud_power/models/placement_groups.rb +3 -4
  341. data/lib/ibm_cloud_power/models/pod_capacity.rb +243 -0
  342. data/lib/ibm_cloud_power/models/pod_data.rb +360 -0
  343. data/lib/ibm_cloud_power/models/pvm_instance.rb +68 -5
  344. data/lib/ibm_cloud_power/models/pvm_instance_action.rb +6 -7
  345. data/lib/ibm_cloud_power/models/pvm_instance_add_network.rb +19 -8
  346. data/lib/ibm_cloud_power/models/pvm_instance_capture.rb +17 -8
  347. data/lib/ibm_cloud_power/models/pvm_instance_configuration.rb +261 -0
  348. data/lib/ibm_cloud_power/models/pvm_instance_console.rb +3 -4
  349. data/lib/ibm_cloud_power/models/pvm_instance_cores.rb +244 -0
  350. data/lib/ibm_cloud_power/models/pvm_instance_create.rb +69 -10
  351. data/lib/ibm_cloud_power/models/pvm_instance_delete.rb +219 -0
  352. data/lib/ibm_cloud_power/models/pvm_instance_deployment.rb +290 -0
  353. data/lib/ibm_cloud_power/models/pvm_instance_fault.rb +3 -4
  354. data/lib/ibm_cloud_power/models/pvm_instance_health.rb +3 -4
  355. data/lib/ibm_cloud_power/models/pvm_instance_host.rb +229 -0
  356. data/lib/ibm_cloud_power/models/pvm_instance_memory.rb +244 -0
  357. data/lib/ibm_cloud_power/models/pvm_instance_multi_create.rb +3 -4
  358. data/lib/ibm_cloud_power/models/pvm_instance_network.rb +38 -5
  359. data/lib/ibm_cloud_power/models/pvm_instance_networks.rb +3 -4
  360. data/lib/ibm_cloud_power/models/{cloud_connection_endpoint_gre.rb → pvm_instance_operating_system.rb} +26 -24
  361. data/lib/ibm_cloud_power/models/pvm_instance_operation.rb +3 -4
  362. data/lib/ibm_cloud_power/models/pvm_instance_placement_group.rb +224 -0
  363. data/lib/ibm_cloud_power/models/pvm_instance_reference.rb +63 -10
  364. data/lib/ibm_cloud_power/models/pvm_instance_reference_v2.rb +395 -0
  365. data/lib/ibm_cloud_power/models/pvm_instance_remove_network.rb +3 -4
  366. data/lib/ibm_cloud_power/models/pvm_instance_update.rb +5 -4
  367. data/lib/ibm_cloud_power/models/pvm_instance_update_response.rb +30 -9
  368. data/lib/ibm_cloud_power/models/pvm_instance_v2_health.rb +225 -0
  369. data/lib/ibm_cloud_power/models/{ip_sec_policy_template.rb → pvm_instance_v2_network_port.rb} +89 -81
  370. data/lib/ibm_cloud_power/models/pvm_instance_virtual_cores.rb +263 -0
  371. data/lib/ibm_cloud_power/models/pvm_instance_volume_update.rb +4 -5
  372. data/lib/ibm_cloud_power/models/pvm_instances.rb +3 -4
  373. data/lib/ibm_cloud_power/models/pvm_instances_v2.rb +226 -0
  374. data/lib/ibm_cloud_power/models/remote_copy_relationship.rb +3 -4
  375. data/lib/ibm_cloud_power/models/remove_virtual_serial_number.rb +224 -0
  376. data/lib/ibm_cloud_power/models/replication_service.rb +241 -0
  377. data/lib/ibm_cloud_power/models/{ip_sec_policy_options.rb → replication_target_location.rb} +55 -50
  378. data/lib/ibm_cloud_power/models/sap_create.rb +61 -8
  379. data/lib/ibm_cloud_power/models/sap_profile.rb +95 -8
  380. data/lib/ibm_cloud_power/models/sap_profile_reference.rb +3 -4
  381. data/lib/ibm_cloud_power/models/sap_profiles.rb +3 -4
  382. data/lib/ibm_cloud_power/models/secondary.rb +235 -0
  383. data/lib/ibm_cloud_power/models/shared_processor_pool.rb +37 -8
  384. data/lib/ibm_cloud_power/models/shared_processor_pool_create.rb +28 -13
  385. data/lib/ibm_cloud_power/models/shared_processor_pool_detail.rb +4 -9
  386. data/lib/ibm_cloud_power/models/shared_processor_pool_placement_group.rb +3 -4
  387. data/lib/ibm_cloud_power/models/shared_processor_pool_server.rb +5 -6
  388. data/lib/ibm_cloud_power/models/shared_processor_pool_update.rb +4 -4
  389. data/lib/ibm_cloud_power/models/shared_processor_pools.rb +3 -4
  390. data/lib/ibm_cloud_power/models/site.rb +3 -4
  391. data/lib/ibm_cloud_power/models/snapshot.rb +15 -6
  392. data/lib/ibm_cloud_power/models/snapshot_create.rb +44 -5
  393. data/lib/ibm_cloud_power/models/snapshot_create_response.rb +27 -8
  394. data/lib/ibm_cloud_power/models/snapshot_list.rb +226 -0
  395. data/lib/ibm_cloud_power/models/snapshot_restore.rb +3 -4
  396. data/lib/ibm_cloud_power/models/snapshot_update.rb +29 -4
  397. data/lib/ibm_cloud_power/models/snapshot_v1.rb +304 -0
  398. data/lib/ibm_cloud_power/models/snapshots.rb +3 -4
  399. data/lib/ibm_cloud_power/models/software_licenses.rb +3 -4
  400. data/lib/ibm_cloud_power/models/spp_placement_group.rb +3 -4
  401. data/lib/ibm_cloud_power/models/spp_placement_group_create.rb +42 -4
  402. data/lib/ibm_cloud_power/models/spp_placement_groups.rb +3 -4
  403. data/lib/ibm_cloud_power/models/src.rb +3 -4
  404. data/lib/ibm_cloud_power/models/ssh_key.rb +3 -4
  405. data/lib/ibm_cloud_power/models/ssh_keys.rb +3 -4
  406. data/lib/ibm_cloud_power/models/status.rb +3 -4
  407. data/lib/ibm_cloud_power/models/status_description.rb +3 -4
  408. data/lib/ibm_cloud_power/models/status_description_error.rb +3 -4
  409. data/lib/ibm_cloud_power/models/stock_image.rb +3 -4
  410. data/lib/ibm_cloud_power/models/storage_affinity.rb +3 -4
  411. data/lib/ibm_cloud_power/models/storage_controller.rb +287 -0
  412. data/lib/ibm_cloud_power/models/storage_pool_capacity.rb +34 -5
  413. data/lib/ibm_cloud_power/models/{cloud_instance_update.rb → storage_pool_combined.rb} +44 -49
  414. data/lib/ibm_cloud_power/models/storage_pool_map.rb +227 -0
  415. data/lib/ibm_cloud_power/models/storage_pools_capacity.rb +4 -4
  416. data/lib/ibm_cloud_power/models/storage_tier.rb +276 -0
  417. data/lib/ibm_cloud_power/models/storage_type_capacity.rb +4 -4
  418. data/lib/ibm_cloud_power/models/storage_types_capacity.rb +4 -4
  419. data/lib/ibm_cloud_power/models/supported_systems.rb +243 -0
  420. data/lib/ibm_cloud_power/models/system.rb +78 -9
  421. data/lib/ibm_cloud_power/models/system_pool.rb +19 -5
  422. data/lib/ibm_cloud_power/models/system_pool_capacity.rb +312 -0
  423. data/lib/ibm_cloud_power/models/system_resources.rb +325 -0
  424. data/lib/ibm_cloud_power/models/task.rb +3 -4
  425. data/lib/ibm_cloud_power/models/task_reference.rb +3 -4
  426. data/lib/ibm_cloud_power/models/tenant.rb +3 -4
  427. data/lib/ibm_cloud_power/models/tenant_update.rb +3 -4
  428. data/lib/ibm_cloud_power/models/update_server_virtual_serial_number.rb +219 -0
  429. data/lib/ibm_cloud_power/models/update_virtual_serial_number.rb +224 -0
  430. data/lib/ibm_cloud_power/models/update_volume.rb +3 -4
  431. data/lib/ibm_cloud_power/models/virtual_cores.rb +3 -4
  432. data/lib/ibm_cloud_power/models/virtual_serial_number.rb +254 -0
  433. data/lib/ibm_cloud_power/models/volume.rb +42 -13
  434. data/lib/ibm_cloud_power/models/volume_action.rb +17 -13
  435. data/lib/ibm_cloud_power/models/volume_group.rb +40 -8
  436. data/lib/ibm_cloud_power/models/volume_group_action.rb +3 -4
  437. data/lib/ibm_cloud_power/models/volume_group_action_reset.rb +3 -4
  438. data/lib/ibm_cloud_power/models/volume_group_action_start.rb +3 -4
  439. data/lib/ibm_cloud_power/models/volume_group_action_stop.rb +3 -4
  440. data/lib/ibm_cloud_power/models/volume_group_create.rb +29 -4
  441. data/lib/ibm_cloud_power/models/volume_group_create_response.rb +3 -4
  442. data/lib/ibm_cloud_power/models/volume_group_details.rb +37 -5
  443. data/lib/ibm_cloud_power/models/volume_group_remote_copy_relationships.rb +3 -4
  444. data/lib/ibm_cloud_power/models/volume_group_storage_details.rb +3 -4
  445. data/lib/ibm_cloud_power/models/volume_group_update.rb +3 -4
  446. data/lib/ibm_cloud_power/models/volume_groups.rb +3 -4
  447. data/lib/ibm_cloud_power/models/volume_groups_details.rb +3 -4
  448. data/lib/ibm_cloud_power/models/volume_info.rb +14 -5
  449. data/lib/ibm_cloud_power/models/volume_onboarding.rb +3 -4
  450. data/lib/ibm_cloud_power/models/volume_onboarding_common.rb +3 -4
  451. data/lib/ibm_cloud_power/models/volume_onboarding_create.rb +17 -8
  452. data/lib/ibm_cloud_power/models/volume_onboarding_create_response.rb +3 -4
  453. data/lib/ibm_cloud_power/models/volume_onboarding_failure.rb +3 -4
  454. data/lib/ibm_cloud_power/models/volume_onboardings.rb +3 -4
  455. data/lib/ibm_cloud_power/models/volume_reference.rb +46 -7
  456. data/lib/ibm_cloud_power/models/volume_remote_copy_relationship.rb +3 -4
  457. data/lib/ibm_cloud_power/models/volume_snapshot_list.rb +221 -0
  458. data/lib/ibm_cloud_power/models/volumes.rb +3 -4
  459. data/lib/ibm_cloud_power/models/volumes_attach.rb +3 -4
  460. data/lib/ibm_cloud_power/models/volumes_attachment_response.rb +3 -4
  461. data/lib/ibm_cloud_power/models/volumes_clone.rb +3 -4
  462. data/lib/ibm_cloud_power/models/volumes_clone_async_request.rb +35 -6
  463. data/lib/ibm_cloud_power/models/volumes_clone_cancel.rb +3 -4
  464. data/lib/ibm_cloud_power/models/volumes_clone_create.rb +3 -4
  465. data/lib/ibm_cloud_power/models/volumes_clone_detail.rb +3 -4
  466. data/lib/ibm_cloud_power/models/volumes_clone_execute.rb +38 -9
  467. data/lib/ibm_cloud_power/models/volumes_clone_request.rb +4 -5
  468. data/lib/ibm_cloud_power/models/volumes_clone_response.rb +3 -4
  469. data/lib/ibm_cloud_power/models/volumes_clones.rb +3 -4
  470. data/lib/ibm_cloud_power/models/volumes_delete.rb +226 -0
  471. data/lib/ibm_cloud_power/models/volumes_delete_response.rb +219 -0
  472. data/lib/ibm_cloud_power/models/volumes_detach.rb +245 -0
  473. data/lib/ibm_cloud_power/models/volumes_detachment_response.rb +224 -0
  474. data/lib/ibm_cloud_power/models/vpn_connection.rb +3 -4
  475. data/lib/ibm_cloud_power/models/vpn_connection_create.rb +3 -4
  476. data/lib/ibm_cloud_power/models/vpn_connection_create_response.rb +3 -4
  477. data/lib/ibm_cloud_power/models/vpn_connection_update.rb +3 -4
  478. data/lib/ibm_cloud_power/models/vpn_connections.rb +3 -4
  479. data/lib/ibm_cloud_power/models/{pvm_instance_clone.rb → workspace.rb} +81 -80
  480. data/lib/ibm_cloud_power/models/{ike_policy_options.rb → workspace_details.rb} +51 -56
  481. data/lib/ibm_cloud_power/models/workspace_location.rb +244 -0
  482. data/lib/ibm_cloud_power/models/workspace_network_security_groups_details.rb +258 -0
  483. data/lib/ibm_cloud_power/models/workspace_power_edge_router_details.rb +307 -0
  484. data/lib/ibm_cloud_power/models/workspaces.rb +226 -0
  485. data/lib/ibm_cloud_power/version.rb +4 -4
  486. data/lib/ibm_cloud_power.rb +111 -14
  487. data/spec/api/datacenters_api_spec.rb +77 -0
  488. data/spec/api/host_groups_api_spec.rb +144 -0
  489. data/spec/api/network_address_groups_api_spec.rb +114 -0
  490. data/spec/api/network_security_groups_api_spec.rb +174 -0
  491. data/spec/api/networks_api_spec.rb +95 -0
  492. data/spec/api/p_cloud_cloud_connections_api_spec.rb +20 -20
  493. data/spec/api/p_cloud_disaster_recovery_api_spec.rb +3 -3
  494. data/spec/api/p_cloud_events_api_spec.rb +6 -5
  495. data/spec/api/p_cloud_images_api_spec.rb +87 -10
  496. data/spec/api/p_cloud_instances_api_spec.rb +4 -27
  497. data/spec/api/p_cloud_jobs_api_spec.rb +5 -5
  498. data/spec/api/p_cloud_networks_api_spec.rb +13 -8
  499. data/spec/api/p_cloud_placement_groups_api_spec.rb +15 -15
  500. data/spec/api/{p_cloud_system_pools_api_spec.rb → p_cloud_pod_capacity_api_spec.rb} +14 -13
  501. data/spec/api/p_cloud_pvm_instances_api_spec.rb +86 -22
  502. data/spec/api/p_cloud_sap_api_spec.rb +5 -3
  503. data/spec/api/p_cloud_shared_processor_pools_api_spec.rb +3 -3
  504. data/spec/api/p_cloud_snapshots_api_spec.rb +4 -4
  505. data/spec/api/p_cloud_spp_placement_groups_api_spec.rb +3 -3
  506. data/spec/api/p_cloud_storage_capacity_api_spec.rb +3 -3
  507. data/spec/api/p_cloud_storage_tiers_api_spec.rb +46 -0
  508. data/spec/api/p_cloud_tasks_api_spec.rb +5 -5
  509. data/spec/api/p_cloud_tenants_api_spec.rb +4 -4
  510. data/spec/api/p_cloud_tenants_ssh_keys_api_spec.rb +7 -7
  511. data/spec/api/p_cloud_virtual_serial_number_api_spec.rb +131 -0
  512. data/spec/api/p_cloud_volume_groups_api_spec.rb +5 -4
  513. data/spec/api/p_cloud_volume_onboarding_api_spec.rb +3 -3
  514. data/spec/api/p_cloud_volumes_api_spec.rb +182 -12
  515. data/spec/api/p_cloud_vpn_connections_api_spec.rb +3 -15
  516. data/spec/api/p_cloud_vpn_policies_api_spec.rb +3 -3
  517. data/spec/api/snapshots_api_spec.rb +81 -0
  518. data/spec/api/workspaces_api_spec.rb +56 -0
  519. data/spec/api_client_spec.rb +3 -3
  520. data/spec/configuration_spec.rb +3 -3
  521. data/spec/models/access_config_spec.rb +28 -0
  522. data/spec/models/{ip_sec_policy_options_spec.rb → add_host_spec.rb} +12 -12
  523. data/spec/models/add_server_virtual_serial_number_spec.rb +40 -0
  524. data/spec/models/auxiliary_volume_for_onboarding_spec.rb +3 -3
  525. data/spec/models/auxiliary_volumes_for_onboarding_spec.rb +3 -3
  526. data/spec/models/available_host_capacity_spec.rb +40 -0
  527. data/spec/models/available_host_resource_capacity_spec.rb +34 -0
  528. data/spec/models/available_host_spec.rb +46 -0
  529. data/spec/models/capabilities_details_spec.rb +40 -0
  530. data/spec/models/clone_task_reference_spec.rb +6 -13
  531. data/spec/models/clone_task_status_spec.rb +14 -21
  532. data/spec/models/cloned_volume_detail_spec.rb +8 -15
  533. data/spec/models/cloned_volume_spec.rb +8 -15
  534. data/spec/models/cloud_connection_create_response_spec.rb +19 -13
  535. data/spec/models/cloud_connection_create_spec.rb +35 -14
  536. data/spec/models/cloud_connection_endpoint_classic_spec.rb +6 -13
  537. data/spec/models/cloud_connection_endpoint_classic_update_spec.rb +3 -3
  538. data/spec/models/cloud_connection_endpoint_vpc_spec.rb +6 -13
  539. data/spec/models/cloud_connection_gre_tunnel_create_spec.rb +3 -3
  540. data/spec/models/cloud_connection_gre_tunnel_spec.rb +7 -20
  541. data/spec/models/cloud_connection_spec.rb +22 -23
  542. data/spec/models/cloud_connection_update_spec.rb +15 -18
  543. data/spec/models/cloud_connection_virtual_private_clouds_spec.rb +6 -13
  544. data/spec/models/cloud_connection_virtual_private_clouds_virtual_private_clouds_spec.rb +9 -16
  545. data/spec/models/cloud_connection_vpc_spec.rb +11 -18
  546. data/spec/models/cloud_connections_spec.rb +6 -13
  547. data/spec/models/cloud_instance_reference_spec.rb +12 -19
  548. data/spec/models/cloud_instance_spec.rb +17 -24
  549. data/spec/models/cloud_instance_usage_limits_spec.rb +15 -22
  550. data/spec/models/console_language_spec.rb +3 -3
  551. data/spec/models/console_languages_spec.rb +3 -3
  552. data/spec/models/create_cos_image_import_job_spec.rb +15 -3
  553. data/spec/models/create_data_volume_spec.rb +44 -21
  554. data/spec/models/create_image_spec.rb +39 -28
  555. data/spec/models/create_server_virtual_serial_number_spec.rb +40 -0
  556. data/spec/models/{ike_policy_options_spec.rb → datacenter_location_spec.rb} +13 -13
  557. data/spec/models/datacenter_spec.rb +72 -0
  558. data/spec/models/datacenters_spec.rb +34 -0
  559. data/spec/models/dead_peer_detection_spec.rb +3 -3
  560. data/spec/models/delete_server_virtual_serial_number_spec.rb +34 -0
  561. data/spec/models/deployment_target_spec.rb +44 -0
  562. data/spec/models/disaster_recovery_location_spec.rb +3 -3
  563. data/spec/models/disaster_recovery_locations_spec.rb +3 -3
  564. data/spec/models/disaster_recovery_spec.rb +40 -0
  565. data/spec/models/error_spec.rb +8 -15
  566. data/spec/models/event_spec.rb +18 -25
  567. data/spec/models/event_user_spec.rb +8 -15
  568. data/spec/models/events_spec.rb +6 -13
  569. data/spec/models/export_image_spec.rb +9 -16
  570. data/spec/models/flash_copy_mapping_spec.rb +3 -3
  571. data/spec/models/get_bulk_volume_spec.rb +34 -0
  572. data/spec/models/get_server_virtual_serial_number_spec.rb +40 -0
  573. data/spec/models/host_capacity_spec.rb +40 -0
  574. data/spec/models/host_create_spec.rb +40 -0
  575. data/spec/models/host_group_create_spec.rb +46 -0
  576. data/spec/models/host_group_share_op_spec.rb +40 -0
  577. data/spec/models/host_group_spec.rb +64 -0
  578. data/spec/models/host_group_summary_spec.rb +46 -0
  579. data/spec/models/{options_spec.rb → host_put_spec.rb} +10 -10
  580. data/spec/models/{ip_sec_policy_template_spec.rb → host_resource_capacity_spec.rb} +13 -13
  581. data/spec/models/host_spec.rb +82 -0
  582. data/spec/models/ike_policies_spec.rb +3 -3
  583. data/spec/models/ike_policy_authentication_spec.rb +3 -3
  584. data/spec/models/ike_policy_create_spec.rb +4 -8
  585. data/spec/models/ike_policy_ref_spec.rb +3 -3
  586. data/spec/models/ike_policy_spec.rb +4 -8
  587. data/spec/models/ike_policy_update_spec.rb +4 -8
  588. data/spec/models/image_import_details_spec.rb +58 -0
  589. data/spec/models/image_reference_spec.rb +26 -21
  590. data/spec/models/image_spec.rb +39 -22
  591. data/spec/models/image_specifications_spec.rb +10 -17
  592. data/spec/models/image_volume_spec.rb +8 -15
  593. data/spec/models/images_spec.rb +6 -13
  594. data/spec/models/ip_address_range_spec.rb +8 -15
  595. data/spec/models/ip_sec_policies_spec.rb +3 -3
  596. data/spec/models/ip_sec_policy_create_spec.rb +4 -8
  597. data/spec/models/ip_sec_policy_ref_spec.rb +3 -3
  598. data/spec/models/ip_sec_policy_spec.rb +4 -8
  599. data/spec/models/ip_sec_policy_update_spec.rb +4 -8
  600. data/spec/models/ipsec_policy_authentication_spec.rb +3 -3
  601. data/spec/models/job_reference_spec.rb +3 -3
  602. data/spec/models/job_spec.rb +3 -3
  603. data/spec/models/jobs_spec.rb +3 -3
  604. data/spec/models/maximum_storage_allocation_spec.rb +8 -15
  605. data/spec/models/min_max_default_spec.rb +8 -15
  606. data/spec/models/multi_volumes_create_spec.rb +50 -21
  607. data/spec/models/network_address_group_add_member_spec.rb +34 -0
  608. data/spec/models/network_address_group_create_spec.rb +40 -0
  609. data/spec/models/network_address_group_member_spec.rb +40 -0
  610. data/spec/models/{ike_policy_template_spec.rb → network_address_group_spec.rb} +14 -14
  611. data/spec/models/network_address_group_update_spec.rb +34 -0
  612. data/spec/models/network_address_groups_spec.rb +34 -0
  613. data/spec/models/network_address_translation_spec.rb +34 -0
  614. data/spec/models/{network_cloud_connections_inner_spec.rb → network_cloud_connections_spec.rb} +9 -9
  615. data/spec/models/network_create_spec.rb +28 -23
  616. data/spec/models/network_id_spec.rb +3 -3
  617. data/spec/models/network_ids_spec.rb +3 -3
  618. data/spec/models/network_interface_create_spec.rb +46 -0
  619. data/spec/models/network_interface_instance_spec.rb +40 -0
  620. data/spec/models/network_interface_spec.rb +88 -0
  621. data/spec/models/network_interface_update_spec.rb +40 -0
  622. data/spec/models/network_interfaces_spec.rb +34 -0
  623. data/spec/models/network_ip_address_metrics_spec.rb +8 -15
  624. data/spec/models/network_port_create_spec.rb +6 -13
  625. data/spec/models/network_port_pvm_instance_spec.rb +8 -15
  626. data/spec/models/network_port_spec.rb +17 -18
  627. data/spec/models/network_port_update_spec.rb +6 -13
  628. data/spec/models/network_ports_spec.rb +6 -13
  629. data/spec/models/network_reference_spec.rb +39 -22
  630. data/spec/models/network_security_group_add_member_spec.rb +44 -0
  631. data/spec/models/network_security_group_add_rule_spec.rb +74 -0
  632. data/spec/models/network_security_group_clone_spec.rb +34 -0
  633. data/spec/models/network_security_group_create_spec.rb +40 -0
  634. data/spec/models/network_security_group_member_spec.rb +62 -0
  635. data/spec/models/network_security_group_move_member_spec.rb +40 -0
  636. data/spec/models/network_security_group_rule_port_spec.rb +40 -0
  637. data/spec/models/network_security_group_rule_protocol_spec.rb +54 -0
  638. data/spec/models/network_security_group_rule_protocol_tcp_flag_spec.rb +38 -0
  639. data/spec/models/network_security_group_rule_remote_spec.rb +44 -0
  640. data/spec/models/network_security_group_rule_spec.rb +68 -0
  641. data/spec/models/network_security_group_spec.rb +70 -0
  642. data/spec/models/network_security_group_update_spec.rb +34 -0
  643. data/spec/models/network_security_groups_action_spec.rb +38 -0
  644. data/spec/models/network_security_groups_spec.rb +34 -0
  645. data/spec/models/network_spec.rb +48 -25
  646. data/spec/models/network_update_spec.rb +9 -16
  647. data/spec/models/networks_spec.rb +6 -13
  648. data/spec/models/operation_spec.rb +3 -3
  649. data/spec/models/operations_spec.rb +9 -16
  650. data/spec/models/peer_subnet_update_spec.rb +3 -3
  651. data/spec/models/peer_subnets_spec.rb +3 -3
  652. data/spec/models/peering_network_spec.rb +9 -16
  653. data/spec/models/pin_policy_spec.rb +6 -13
  654. data/spec/models/placement_group_create_spec.rb +7 -14
  655. data/spec/models/placement_group_server_spec.rb +6 -13
  656. data/spec/models/placement_group_spec.rb +13 -20
  657. data/spec/models/placement_groups_spec.rb +6 -13
  658. data/spec/models/pod_capacity_spec.rb +46 -0
  659. data/spec/models/{pvm_instance_clone_spec.rb → pod_data_spec.rb} +27 -26
  660. data/spec/models/pvm_instance_action_spec.rb +8 -15
  661. data/spec/models/pvm_instance_add_network_spec.rb +13 -14
  662. data/spec/models/pvm_instance_capture_spec.rb +20 -21
  663. data/spec/models/{cloud_connection_virtual_private_clouds_virtual_private_clouds_inner_spec.rb → pvm_instance_configuration_spec.rb} +19 -13
  664. data/spec/models/pvm_instance_console_spec.rb +6 -13
  665. data/spec/models/pvm_instance_cores_spec.rb +46 -0
  666. data/spec/models/pvm_instance_create_spec.rb +99 -36
  667. data/spec/models/pvm_instance_delete_spec.rb +34 -0
  668. data/spec/models/pvm_instance_deployment_spec.rb +56 -0
  669. data/spec/models/pvm_instance_fault_spec.rb +9 -16
  670. data/spec/models/pvm_instance_health_spec.rb +9 -16
  671. data/spec/models/pvm_instance_host_spec.rb +40 -0
  672. data/spec/models/pvm_instance_memory_spec.rb +46 -0
  673. data/spec/models/pvm_instance_multi_create_spec.rb +13 -20
  674. data/spec/models/pvm_instance_network_spec.rb +32 -21
  675. data/spec/models/pvm_instance_networks_spec.rb +6 -13
  676. data/spec/models/pvm_instance_operating_system_spec.rb +40 -0
  677. data/spec/models/pvm_instance_operation_spec.rb +12 -19
  678. data/spec/models/pvm_instance_placement_group_spec.rb +34 -0
  679. data/spec/models/pvm_instance_reference_spec.rb +116 -39
  680. data/spec/models/pvm_instance_reference_v2_spec.rb +124 -0
  681. data/spec/models/pvm_instance_remove_network_spec.rb +6 -13
  682. data/spec/models/pvm_instance_spec.rb +124 -41
  683. data/spec/models/pvm_instance_update_response_spec.rb +30 -19
  684. data/spec/models/pvm_instance_update_spec.rb +26 -21
  685. data/spec/models/pvm_instance_v2_health_spec.rb +34 -0
  686. data/spec/models/pvm_instance_v2_network_port_spec.rb +66 -0
  687. data/spec/models/pvm_instance_virtual_cores_spec.rb +46 -0
  688. data/spec/models/pvm_instance_volume_update_spec.rb +6 -13
  689. data/spec/models/pvm_instances_spec.rb +6 -13
  690. data/spec/models/pvm_instances_v2_spec.rb +34 -0
  691. data/spec/models/remote_copy_relationship_spec.rb +3 -3
  692. data/spec/models/remove_virtual_serial_number_spec.rb +34 -0
  693. data/spec/models/{cloud_connection_endpoint_gre_spec.rb → replication_service_spec.rb} +10 -17
  694. data/spec/models/replication_target_location_spec.rb +44 -0
  695. data/spec/models/sap_create_spec.rb +65 -18
  696. data/spec/models/sap_profile_reference_spec.rb +8 -15
  697. data/spec/models/sap_profile_spec.rb +51 -18
  698. data/spec/models/sap_profiles_spec.rb +6 -13
  699. data/spec/models/secondary_spec.rb +40 -0
  700. data/spec/models/shared_processor_pool_create_spec.rb +15 -3
  701. data/spec/models/shared_processor_pool_detail_spec.rb +3 -3
  702. data/spec/models/shared_processor_pool_placement_group_spec.rb +3 -3
  703. data/spec/models/shared_processor_pool_server_spec.rb +3 -3
  704. data/spec/models/shared_processor_pool_spec.rb +21 -3
  705. data/spec/models/shared_processor_pool_update_spec.rb +3 -3
  706. data/spec/models/shared_processor_pools_spec.rb +3 -3
  707. data/spec/models/site_spec.rb +3 -3
  708. data/spec/models/snapshot_create_response_spec.rb +18 -13
  709. data/spec/models/snapshot_create_spec.rb +14 -15
  710. data/spec/models/snapshot_list_spec.rb +34 -0
  711. data/spec/models/snapshot_restore_spec.rb +6 -13
  712. data/spec/models/snapshot_spec.rb +22 -23
  713. data/spec/models/snapshot_update_spec.rb +8 -15
  714. data/spec/models/snapshot_v1_spec.rb +70 -0
  715. data/spec/models/snapshots_spec.rb +6 -13
  716. data/spec/models/software_licenses_spec.rb +10 -17
  717. data/spec/models/spp_placement_group_create_spec.rb +3 -3
  718. data/spec/models/spp_placement_group_spec.rb +3 -3
  719. data/spec/models/spp_placement_groups_spec.rb +3 -3
  720. data/spec/models/src_spec.rb +8 -15
  721. data/spec/models/ssh_key_spec.rb +9 -16
  722. data/spec/models/ssh_keys_spec.rb +6 -13
  723. data/spec/models/status_description_error_spec.rb +3 -3
  724. data/spec/models/status_description_spec.rb +3 -3
  725. data/spec/models/status_spec.rb +3 -3
  726. data/spec/models/stock_image_spec.rb +8 -15
  727. data/spec/models/storage_affinity_spec.rb +3 -3
  728. data/spec/models/{vp_naa_s_options_spec.rb → storage_controller_spec.rb} +14 -14
  729. data/spec/models/storage_pool_capacity_spec.rb +26 -15
  730. data/spec/models/storage_pool_combined_spec.rb +46 -0
  731. data/spec/models/storage_pool_map_spec.rb +40 -0
  732. data/spec/models/storage_pools_capacity_spec.rb +6 -13
  733. data/spec/models/storage_tier_spec.rb +50 -0
  734. data/spec/models/storage_type_capacity_spec.rb +9 -16
  735. data/spec/models/storage_types_capacity_spec.rb +6 -13
  736. data/spec/models/supported_systems_spec.rb +40 -0
  737. data/spec/models/{cloud_instance_create_spec.rb → system_pool_capacity_spec.rb} +16 -23
  738. data/spec/models/system_pool_spec.rb +17 -18
  739. data/spec/models/system_resources_spec.rb +76 -0
  740. data/spec/models/system_spec.rb +48 -13
  741. data/spec/models/task_reference_spec.rb +8 -15
  742. data/spec/models/task_spec.rb +15 -22
  743. data/spec/models/tenant_spec.rb +13 -20
  744. data/spec/models/tenant_update_spec.rb +6 -13
  745. data/spec/models/update_server_virtual_serial_number_spec.rb +34 -0
  746. data/spec/models/update_virtual_serial_number_spec.rb +34 -0
  747. data/spec/models/update_volume_spec.rb +9 -16
  748. data/spec/models/virtual_cores_spec.rb +8 -15
  749. data/spec/models/virtual_serial_number_spec.rb +46 -0
  750. data/spec/models/volume_action_spec.rb +9 -3
  751. data/spec/models/volume_group_action_reset_spec.rb +3 -3
  752. data/spec/models/volume_group_action_spec.rb +3 -3
  753. data/spec/models/volume_group_action_start_spec.rb +3 -3
  754. data/spec/models/volume_group_action_stop_spec.rb +3 -3
  755. data/spec/models/volume_group_create_response_spec.rb +3 -3
  756. data/spec/models/volume_group_create_spec.rb +3 -3
  757. data/spec/models/volume_group_details_spec.rb +21 -3
  758. data/spec/models/volume_group_remote_copy_relationships_spec.rb +3 -3
  759. data/spec/models/volume_group_spec.rb +21 -3
  760. data/spec/models/volume_group_storage_details_spec.rb +3 -3
  761. data/spec/models/volume_group_update_spec.rb +3 -3
  762. data/spec/models/volume_groups_details_spec.rb +3 -3
  763. data/spec/models/volume_groups_spec.rb +3 -3
  764. data/spec/models/volume_info_spec.rb +13 -14
  765. data/spec/models/volume_onboarding_common_spec.rb +3 -3
  766. data/spec/models/volume_onboarding_create_response_spec.rb +3 -3
  767. data/spec/models/volume_onboarding_create_spec.rb +9 -3
  768. data/spec/models/volume_onboarding_failure_spec.rb +3 -3
  769. data/spec/models/volume_onboarding_spec.rb +3 -3
  770. data/spec/models/volume_onboardings_spec.rb +3 -3
  771. data/spec/models/volume_reference_spec.rb +123 -24
  772. data/spec/models/volume_remote_copy_relationship_spec.rb +3 -3
  773. data/spec/models/volume_snapshot_list_spec.rb +34 -0
  774. data/spec/models/volume_spec.rb +117 -24
  775. data/spec/models/volumes_attach_spec.rb +3 -3
  776. data/spec/models/volumes_attachment_response_spec.rb +3 -3
  777. data/spec/models/volumes_clone_async_request_spec.rb +25 -14
  778. data/spec/models/volumes_clone_cancel_spec.rb +6 -13
  779. data/spec/models/volumes_clone_create_spec.rb +7 -14
  780. data/spec/models/volumes_clone_detail_spec.rb +15 -22
  781. data/spec/models/volumes_clone_execute_spec.rb +24 -13
  782. data/spec/models/volumes_clone_request_spec.rb +7 -14
  783. data/spec/models/volumes_clone_response_spec.rb +8 -15
  784. data/spec/models/volumes_clone_spec.rb +14 -21
  785. data/spec/models/volumes_clones_spec.rb +6 -13
  786. data/spec/models/volumes_delete_response_spec.rb +34 -0
  787. data/spec/models/volumes_delete_spec.rb +34 -0
  788. data/spec/models/volumes_detach_spec.rb +46 -0
  789. data/spec/models/volumes_detachment_response_spec.rb +34 -0
  790. data/spec/models/volumes_spec.rb +6 -13
  791. data/spec/models/vpn_connection_create_response_spec.rb +3 -3
  792. data/spec/models/vpn_connection_create_spec.rb +3 -3
  793. data/spec/models/vpn_connection_spec.rb +3 -3
  794. data/spec/models/vpn_connection_update_spec.rb +3 -3
  795. data/spec/models/vpn_connections_spec.rb +3 -3
  796. data/spec/models/{cloud_instance_update_spec.rb → workspace_details_spec.rb} +14 -21
  797. data/spec/models/workspace_location_spec.rb +46 -0
  798. data/spec/models/workspace_network_security_groups_details_spec.rb +38 -0
  799. data/spec/models/workspace_power_edge_router_details_spec.rb +58 -0
  800. data/spec/models/workspace_spec.rb +74 -0
  801. data/spec/models/workspaces_spec.rb +34 -0
  802. data/spec/spec_helper.rb +3 -3
  803. metadata +502 -124
  804. data/Gemfile.lock +0 -72
  805. data/ibm_cloud_power-2.1.0.gem +0 -0
  806. data/lib/ibm_cloud_power/models/vp_naa_s_options.rb +0 -280
  807. data/spec/models/cloud_connection_speed_spec.rb +0 -35
  808. data/test.rb +0 -32
@@ -0,0 +1,273 @@
1
+ =begin
2
+ #Power Cloud API
3
+
4
+ #IBM Power Cloud API for Power Hardware / Infrastructure
5
+
6
+ The version of the OpenAPI document: 2.3.1
7
+ Contact: ismirlia@us.ibm.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.4.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module IbmCloudPower
17
+ class NetworkSecurityGroupAddMember
18
+ # The target member to add. An IP4 address if ipv4-address type or a network interface ID if network-interface type
19
+ attr_accessor :target
20
+
21
+ # The type of member
22
+ attr_accessor :type
23
+
24
+ class EnumAttributeValidator
25
+ attr_reader :datatype
26
+ attr_reader :allowable_values
27
+
28
+ def initialize(datatype, allowable_values)
29
+ @allowable_values = allowable_values.map do |value|
30
+ case datatype.to_s
31
+ when /Integer/i
32
+ value.to_i
33
+ when /Float/i
34
+ value.to_f
35
+ else
36
+ value
37
+ end
38
+ end
39
+ end
40
+
41
+ def valid?(value)
42
+ !value || allowable_values.include?(value)
43
+ end
44
+ end
45
+
46
+ # Attribute mapping from ruby-style variable name to JSON key.
47
+ def self.attribute_map
48
+ {
49
+ :'target' => :'target',
50
+ :'type' => :'type'
51
+ }
52
+ end
53
+
54
+ # Returns all the JSON keys this model knows about
55
+ def self.acceptable_attributes
56
+ attribute_map.values
57
+ end
58
+
59
+ # Attribute type mapping.
60
+ def self.openapi_types
61
+ {
62
+ :'target' => :'String',
63
+ :'type' => :'String'
64
+ }
65
+ end
66
+
67
+ # List of attributes with nullable: true
68
+ def self.openapi_nullable
69
+ Set.new([
70
+ ])
71
+ end
72
+
73
+ # Initializes the object
74
+ # @param [Hash] attributes Model attributes in the form of hash
75
+ def initialize(attributes = {})
76
+ if (!attributes.is_a?(Hash))
77
+ fail ArgumentError, "The input argument (attributes) must be a hash in `IbmCloudPower::NetworkSecurityGroupAddMember` initialize method"
78
+ end
79
+
80
+ # check to see if the attribute exists and convert string to symbol for hash key
81
+ attributes = attributes.each_with_object({}) { |(k, v), h|
82
+ if (!self.class.attribute_map.key?(k.to_sym))
83
+ fail ArgumentError, "`#{k}` is not a valid attribute in `IbmCloudPower::NetworkSecurityGroupAddMember`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
84
+ end
85
+ h[k.to_sym] = v
86
+ }
87
+
88
+ if attributes.key?(:'target')
89
+ self.target = attributes[:'target']
90
+ end
91
+
92
+ if attributes.key?(:'type')
93
+ self.type = attributes[:'type']
94
+ end
95
+ end
96
+
97
+ # Show invalid properties with the reasons. Usually used together with valid?
98
+ # @return Array for valid properties with the reasons
99
+ def list_invalid_properties
100
+ invalid_properties = Array.new
101
+ if @target.nil?
102
+ invalid_properties.push('invalid value for "target", target cannot be nil.')
103
+ end
104
+
105
+ if @type.nil?
106
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
107
+ end
108
+
109
+ invalid_properties
110
+ end
111
+
112
+ # Check to see if the all the properties in the model are valid
113
+ # @return true if the model is valid
114
+ def valid?
115
+ return false if @target.nil?
116
+ return false if @type.nil?
117
+ type_validator = EnumAttributeValidator.new('String', ["ipv4-address", "network-interface"])
118
+ return false unless type_validator.valid?(@type)
119
+ true
120
+ end
121
+
122
+ # Custom attribute writer method checking allowed values (enum).
123
+ # @param [Object] type Object to be assigned
124
+ def type=(type)
125
+ validator = EnumAttributeValidator.new('String', ["ipv4-address", "network-interface"])
126
+ unless validator.valid?(type)
127
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
128
+ end
129
+ @type = type
130
+ end
131
+
132
+ # Checks equality by comparing each attribute.
133
+ # @param [Object] Object to be compared
134
+ def ==(o)
135
+ return true if self.equal?(o)
136
+ self.class == o.class &&
137
+ target == o.target &&
138
+ type == o.type
139
+ end
140
+
141
+ # @see the `==` method
142
+ # @param [Object] Object to be compared
143
+ def eql?(o)
144
+ self == o
145
+ end
146
+
147
+ # Calculates hash code according to all attributes.
148
+ # @return [Integer] Hash code
149
+ def hash
150
+ [target, type].hash
151
+ end
152
+
153
+ # Builds the object from hash
154
+ # @param [Hash] attributes Model attributes in the form of hash
155
+ # @return [Object] Returns the model itself
156
+ def self.build_from_hash(attributes)
157
+ new.build_from_hash(attributes)
158
+ end
159
+
160
+ # Builds the object from hash
161
+ # @param [Hash] attributes Model attributes in the form of hash
162
+ # @return [Object] Returns the model itself
163
+ def build_from_hash(attributes)
164
+ return nil unless attributes.is_a?(Hash)
165
+ self.class.openapi_types.each_pair do |key, type|
166
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
167
+ self.send("#{key}=", nil)
168
+ elsif type =~ /\AArray<(.*)>/i
169
+ # check to ensure the input is an array given that the attribute
170
+ # is documented as an array but the input is not
171
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
172
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
173
+ end
174
+ elsif !attributes[self.class.attribute_map[key]].nil?
175
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
176
+ end
177
+ end
178
+
179
+ self
180
+ end
181
+
182
+ # Deserializes the data based on type
183
+ # @param string type Data type
184
+ # @param string value Value to be deserialized
185
+ # @return [Object] Deserialized data
186
+ def _deserialize(type, value)
187
+ case type.to_sym
188
+ when :Time
189
+ Time.parse(value)
190
+ when :Date
191
+ Date.parse(value)
192
+ when :String
193
+ value.to_s
194
+ when :Integer
195
+ value.to_i
196
+ when :Float
197
+ value.to_f
198
+ when :Boolean
199
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
200
+ true
201
+ else
202
+ false
203
+ end
204
+ when :Object
205
+ # generic object (usually a Hash), return directly
206
+ value
207
+ when /\AArray<(?<inner_type>.+)>\z/
208
+ inner_type = Regexp.last_match[:inner_type]
209
+ value.map { |v| _deserialize(inner_type, v) }
210
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
211
+ k_type = Regexp.last_match[:k_type]
212
+ v_type = Regexp.last_match[:v_type]
213
+ {}.tap do |hash|
214
+ value.each do |k, v|
215
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
216
+ end
217
+ end
218
+ else # model
219
+ # models (e.g. Pet) or oneOf
220
+ klass = IbmCloudPower.const_get(type)
221
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
222
+ end
223
+ end
224
+
225
+ # Returns the string representation of the object
226
+ # @return [String] String presentation of the object
227
+ def to_s
228
+ to_hash.to_s
229
+ end
230
+
231
+ # to_body is an alias to to_hash (backward compatibility)
232
+ # @return [Hash] Returns the object in the form of hash
233
+ def to_body
234
+ to_hash
235
+ end
236
+
237
+ # Returns the object in the form of hash
238
+ # @return [Hash] Returns the object in the form of hash
239
+ def to_hash
240
+ hash = {}
241
+ self.class.attribute_map.each_pair do |attr, param|
242
+ value = self.send(attr)
243
+ if value.nil?
244
+ is_nullable = self.class.openapi_nullable.include?(attr)
245
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
246
+ end
247
+
248
+ hash[param] = _to_hash(value)
249
+ end
250
+ hash
251
+ end
252
+
253
+ # Outputs non-array value in the form of hash
254
+ # For object, use to_hash. Otherwise, just return the value
255
+ # @param [Object] value Any valid value
256
+ # @return [Hash] Returns the value in the form of hash
257
+ def _to_hash(value)
258
+ if value.is_a?(Array)
259
+ value.compact.map { |v| _to_hash(v) }
260
+ elsif value.is_a?(Hash)
261
+ {}.tap do |hash|
262
+ value.each { |k, v| hash[k] = _to_hash(v) }
263
+ end
264
+ elsif value.respond_to? :to_hash
265
+ value.to_hash
266
+ else
267
+ value
268
+ end
269
+ end
270
+
271
+ end
272
+
273
+ end
@@ -0,0 +1,326 @@
1
+ =begin
2
+ #Power Cloud API
3
+
4
+ #IBM Power Cloud API for Power Hardware / Infrastructure
5
+
6
+ The version of the OpenAPI document: 2.3.1
7
+ Contact: ismirlia@us.ibm.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.4.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module IbmCloudPower
17
+ class NetworkSecurityGroupAddRule
18
+ # The action to take if the rule matches network traffic
19
+ attr_accessor :action
20
+
21
+ attr_accessor :destination_port
22
+
23
+ attr_accessor :destination_ports
24
+
25
+ attr_accessor :protocol
26
+
27
+ attr_accessor :remote
28
+
29
+ attr_accessor :source_port
30
+
31
+ attr_accessor :source_ports
32
+
33
+ class EnumAttributeValidator
34
+ attr_reader :datatype
35
+ attr_reader :allowable_values
36
+
37
+ def initialize(datatype, allowable_values)
38
+ @allowable_values = allowable_values.map do |value|
39
+ case datatype.to_s
40
+ when /Integer/i
41
+ value.to_i
42
+ when /Float/i
43
+ value.to_f
44
+ else
45
+ value
46
+ end
47
+ end
48
+ end
49
+
50
+ def valid?(value)
51
+ !value || allowable_values.include?(value)
52
+ end
53
+ end
54
+
55
+ # Attribute mapping from ruby-style variable name to JSON key.
56
+ def self.attribute_map
57
+ {
58
+ :'action' => :'action',
59
+ :'destination_port' => :'destinationPort',
60
+ :'destination_ports' => :'destinationPorts',
61
+ :'protocol' => :'protocol',
62
+ :'remote' => :'remote',
63
+ :'source_port' => :'sourcePort',
64
+ :'source_ports' => :'sourcePorts'
65
+ }
66
+ end
67
+
68
+ # Returns all the JSON keys this model knows about
69
+ def self.acceptable_attributes
70
+ attribute_map.values
71
+ end
72
+
73
+ # Attribute type mapping.
74
+ def self.openapi_types
75
+ {
76
+ :'action' => :'String',
77
+ :'destination_port' => :'NetworkSecurityGroupRulePort',
78
+ :'destination_ports' => :'NetworkSecurityGroupRulePort',
79
+ :'protocol' => :'NetworkSecurityGroupRuleProtocol',
80
+ :'remote' => :'NetworkSecurityGroupRuleRemote',
81
+ :'source_port' => :'NetworkSecurityGroupRulePort',
82
+ :'source_ports' => :'NetworkSecurityGroupRulePort'
83
+ }
84
+ end
85
+
86
+ # List of attributes with nullable: true
87
+ def self.openapi_nullable
88
+ Set.new([
89
+ :'destination_port',
90
+ :'destination_ports',
91
+ :'source_port',
92
+ :'source_ports'
93
+ ])
94
+ end
95
+
96
+ # Initializes the object
97
+ # @param [Hash] attributes Model attributes in the form of hash
98
+ def initialize(attributes = {})
99
+ if (!attributes.is_a?(Hash))
100
+ fail ArgumentError, "The input argument (attributes) must be a hash in `IbmCloudPower::NetworkSecurityGroupAddRule` initialize method"
101
+ end
102
+
103
+ # check to see if the attribute exists and convert string to symbol for hash key
104
+ attributes = attributes.each_with_object({}) { |(k, v), h|
105
+ if (!self.class.attribute_map.key?(k.to_sym))
106
+ fail ArgumentError, "`#{k}` is not a valid attribute in `IbmCloudPower::NetworkSecurityGroupAddRule`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
107
+ end
108
+ h[k.to_sym] = v
109
+ }
110
+
111
+ if attributes.key?(:'action')
112
+ self.action = attributes[:'action']
113
+ end
114
+
115
+ if attributes.key?(:'destination_port')
116
+ self.destination_port = attributes[:'destination_port']
117
+ end
118
+
119
+ if attributes.key?(:'destination_ports')
120
+ self.destination_ports = attributes[:'destination_ports']
121
+ end
122
+
123
+ if attributes.key?(:'protocol')
124
+ self.protocol = attributes[:'protocol']
125
+ end
126
+
127
+ if attributes.key?(:'remote')
128
+ self.remote = attributes[:'remote']
129
+ end
130
+
131
+ if attributes.key?(:'source_port')
132
+ self.source_port = attributes[:'source_port']
133
+ end
134
+
135
+ if attributes.key?(:'source_ports')
136
+ self.source_ports = attributes[:'source_ports']
137
+ end
138
+ end
139
+
140
+ # Show invalid properties with the reasons. Usually used together with valid?
141
+ # @return Array for valid properties with the reasons
142
+ def list_invalid_properties
143
+ invalid_properties = Array.new
144
+ if @action.nil?
145
+ invalid_properties.push('invalid value for "action", action cannot be nil.')
146
+ end
147
+
148
+ if @protocol.nil?
149
+ invalid_properties.push('invalid value for "protocol", protocol cannot be nil.')
150
+ end
151
+
152
+ if @remote.nil?
153
+ invalid_properties.push('invalid value for "remote", remote cannot be nil.')
154
+ end
155
+
156
+ invalid_properties
157
+ end
158
+
159
+ # Check to see if the all the properties in the model are valid
160
+ # @return true if the model is valid
161
+ def valid?
162
+ return false if @action.nil?
163
+ action_validator = EnumAttributeValidator.new('String', ["allow", "deny"])
164
+ return false unless action_validator.valid?(@action)
165
+ return false if @protocol.nil?
166
+ return false if @remote.nil?
167
+ true
168
+ end
169
+
170
+ # Custom attribute writer method checking allowed values (enum).
171
+ # @param [Object] action Object to be assigned
172
+ def action=(action)
173
+ validator = EnumAttributeValidator.new('String', ["allow", "deny"])
174
+ unless validator.valid?(action)
175
+ fail ArgumentError, "invalid value for \"action\", must be one of #{validator.allowable_values}."
176
+ end
177
+ @action = action
178
+ end
179
+
180
+ # Checks equality by comparing each attribute.
181
+ # @param [Object] Object to be compared
182
+ def ==(o)
183
+ return true if self.equal?(o)
184
+ self.class == o.class &&
185
+ action == o.action &&
186
+ destination_port == o.destination_port &&
187
+ destination_ports == o.destination_ports &&
188
+ protocol == o.protocol &&
189
+ remote == o.remote &&
190
+ source_port == o.source_port &&
191
+ source_ports == o.source_ports
192
+ end
193
+
194
+ # @see the `==` method
195
+ # @param [Object] Object to be compared
196
+ def eql?(o)
197
+ self == o
198
+ end
199
+
200
+ # Calculates hash code according to all attributes.
201
+ # @return [Integer] Hash code
202
+ def hash
203
+ [action, destination_port, destination_ports, protocol, remote, source_port, source_ports].hash
204
+ end
205
+
206
+ # Builds the object from hash
207
+ # @param [Hash] attributes Model attributes in the form of hash
208
+ # @return [Object] Returns the model itself
209
+ def self.build_from_hash(attributes)
210
+ new.build_from_hash(attributes)
211
+ end
212
+
213
+ # Builds the object from hash
214
+ # @param [Hash] attributes Model attributes in the form of hash
215
+ # @return [Object] Returns the model itself
216
+ def build_from_hash(attributes)
217
+ return nil unless attributes.is_a?(Hash)
218
+ self.class.openapi_types.each_pair do |key, type|
219
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
220
+ self.send("#{key}=", nil)
221
+ elsif type =~ /\AArray<(.*)>/i
222
+ # check to ensure the input is an array given that the attribute
223
+ # is documented as an array but the input is not
224
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
225
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
226
+ end
227
+ elsif !attributes[self.class.attribute_map[key]].nil?
228
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
229
+ end
230
+ end
231
+
232
+ self
233
+ end
234
+
235
+ # Deserializes the data based on type
236
+ # @param string type Data type
237
+ # @param string value Value to be deserialized
238
+ # @return [Object] Deserialized data
239
+ def _deserialize(type, value)
240
+ case type.to_sym
241
+ when :Time
242
+ Time.parse(value)
243
+ when :Date
244
+ Date.parse(value)
245
+ when :String
246
+ value.to_s
247
+ when :Integer
248
+ value.to_i
249
+ when :Float
250
+ value.to_f
251
+ when :Boolean
252
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
253
+ true
254
+ else
255
+ false
256
+ end
257
+ when :Object
258
+ # generic object (usually a Hash), return directly
259
+ value
260
+ when /\AArray<(?<inner_type>.+)>\z/
261
+ inner_type = Regexp.last_match[:inner_type]
262
+ value.map { |v| _deserialize(inner_type, v) }
263
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
264
+ k_type = Regexp.last_match[:k_type]
265
+ v_type = Regexp.last_match[:v_type]
266
+ {}.tap do |hash|
267
+ value.each do |k, v|
268
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
269
+ end
270
+ end
271
+ else # model
272
+ # models (e.g. Pet) or oneOf
273
+ klass = IbmCloudPower.const_get(type)
274
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
275
+ end
276
+ end
277
+
278
+ # Returns the string representation of the object
279
+ # @return [String] String presentation of the object
280
+ def to_s
281
+ to_hash.to_s
282
+ end
283
+
284
+ # to_body is an alias to to_hash (backward compatibility)
285
+ # @return [Hash] Returns the object in the form of hash
286
+ def to_body
287
+ to_hash
288
+ end
289
+
290
+ # Returns the object in the form of hash
291
+ # @return [Hash] Returns the object in the form of hash
292
+ def to_hash
293
+ hash = {}
294
+ self.class.attribute_map.each_pair do |attr, param|
295
+ value = self.send(attr)
296
+ if value.nil?
297
+ is_nullable = self.class.openapi_nullable.include?(attr)
298
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
299
+ end
300
+
301
+ hash[param] = _to_hash(value)
302
+ end
303
+ hash
304
+ end
305
+
306
+ # Outputs non-array value in the form of hash
307
+ # For object, use to_hash. Otherwise, just return the value
308
+ # @param [Object] value Any valid value
309
+ # @return [Hash] Returns the value in the form of hash
310
+ def _to_hash(value)
311
+ if value.is_a?(Array)
312
+ value.compact.map { |v| _to_hash(v) }
313
+ elsif value.is_a?(Hash)
314
+ {}.tap do |hash|
315
+ value.each { |k, v| hash[k] = _to_hash(v) }
316
+ end
317
+ elsif value.respond_to? :to_hash
318
+ value.to_hash
319
+ else
320
+ value
321
+ end
322
+ end
323
+
324
+ end
325
+
326
+ end