nutanix_volumes 0.1.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 (480) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +11 -0
  3. data/Gemfile +9 -0
  4. data/README.md +290 -0
  5. data/Rakefile +10 -0
  6. data/docs/AssociateCategory202Response.md +20 -0
  7. data/docs/AssociateCategory4XXResponse.md +20 -0
  8. data/docs/AttachIscsiClient202Response.md +20 -0
  9. data/docs/AttachIscsiClient4XXResponse.md +20 -0
  10. data/docs/AttachVm202Response.md +20 -0
  11. data/docs/AttachVm4XXResponse.md +20 -0
  12. data/docs/CommonV10ConfigEntityReference.md +24 -0
  13. data/docs/CommonV10ConfigEntityType.md +15 -0
  14. data/docs/CommonV10ConfigFQDN.md +18 -0
  15. data/docs/CommonV10ConfigFlag.md +20 -0
  16. data/docs/CommonV10ConfigIPAddressOrFQDN.md +22 -0
  17. data/docs/CommonV10ConfigIPv4Address.md +20 -0
  18. data/docs/CommonV10ConfigIPv6Address.md +20 -0
  19. data/docs/CommonV10ConfigKVPair.md +20 -0
  20. data/docs/CommonV10ConfigKVPairValue.md +59 -0
  21. data/docs/CommonV10ConfigMapOfStringWrapper.md +18 -0
  22. data/docs/CommonV10ConfigMessage.md +24 -0
  23. data/docs/CommonV10ConfigMessageSeverity.md +15 -0
  24. data/docs/CommonV10ConfigMetadata.md +26 -0
  25. data/docs/CommonV10ConfigTenantAwareModel.md +18 -0
  26. data/docs/CommonV10ResponseApiLink.md +20 -0
  27. data/docs/CommonV10ResponseApiResponseMetadata.md +26 -0
  28. data/docs/CommonV10ResponseExternalizableAbstractModel.md +22 -0
  29. data/docs/CommonV10StatsDownSamplingOperator.md +15 -0
  30. data/docs/CreateVolumeDisk202Response.md +20 -0
  31. data/docs/CreateVolumeDisk4XXResponse.md +20 -0
  32. data/docs/CreateVolumeGroup202Response.md +20 -0
  33. data/docs/CreateVolumeGroup4XXResponse.md +20 -0
  34. data/docs/DeleteVolumeDiskById202Response.md +20 -0
  35. data/docs/DeleteVolumeDiskById4XXResponse.md +20 -0
  36. data/docs/DeleteVolumeGroupById202Response.md +20 -0
  37. data/docs/DeleteVolumeGroupById4XXResponse.md +20 -0
  38. data/docs/DetachIscsiClient202Response.md +20 -0
  39. data/docs/DetachIscsiClient4XXResponse.md +20 -0
  40. data/docs/DetachVm202Response.md +20 -0
  41. data/docs/DetachVm4XXResponse.md +20 -0
  42. data/docs/DisassociateCategory202Response.md +20 -0
  43. data/docs/DisassociateCategory4XXResponse.md +20 -0
  44. data/docs/GetIscsiClientById200Response.md +20 -0
  45. data/docs/GetIscsiClientById4XXResponse.md +20 -0
  46. data/docs/GetVolumeDiskById200Response.md +20 -0
  47. data/docs/GetVolumeDiskById4XXResponse.md +20 -0
  48. data/docs/GetVolumeDiskStats200Response.md +20 -0
  49. data/docs/GetVolumeDiskStats4XXResponse.md +20 -0
  50. data/docs/GetVolumeGroupById200Response.md +20 -0
  51. data/docs/GetVolumeGroupById4XXResponse.md +20 -0
  52. data/docs/GetVolumeGroupMetadataById200Response.md +20 -0
  53. data/docs/GetVolumeGroupMetadataById4XXResponse.md +20 -0
  54. data/docs/GetVolumeGroupStats200Response.md +20 -0
  55. data/docs/GetVolumeGroupStats4XXResponse.md +20 -0
  56. data/docs/IscsiClientsApi.md +253 -0
  57. data/docs/ListCategoryAssociationsByVolumeGroupId200Response.md +20 -0
  58. data/docs/ListCategoryAssociationsByVolumeGroupId4XXResponse.md +20 -0
  59. data/docs/ListExternalIscsiAttachmentsByVolumeGroupId200Response.md +20 -0
  60. data/docs/ListExternalIscsiAttachmentsByVolumeGroupId4XXResponse.md +20 -0
  61. data/docs/ListIscsiClients200Response.md +20 -0
  62. data/docs/ListIscsiClients4XXResponse.md +20 -0
  63. data/docs/ListVmAttachmentsByVolumeGroupId200Response.md +20 -0
  64. data/docs/ListVmAttachmentsByVolumeGroupId4XXResponse.md +20 -0
  65. data/docs/ListVolumeDisksByVolumeGroupId200Response.md +20 -0
  66. data/docs/ListVolumeDisksByVolumeGroupId4XXResponse.md +20 -0
  67. data/docs/ListVolumeGroups200Response.md +20 -0
  68. data/docs/ListVolumeGroups4XXResponse.md +20 -0
  69. data/docs/PrismV40ConfigTaskReference.md +18 -0
  70. data/docs/RevertVolumeGroup202Response.md +20 -0
  71. data/docs/RevertVolumeGroup4XXResponse.md +20 -0
  72. data/docs/UpdateIscsiClientById202Response.md +20 -0
  73. data/docs/UpdateIscsiClientById4XXResponse.md +20 -0
  74. data/docs/UpdateVolumeDiskById202Response.md +20 -0
  75. data/docs/UpdateVolumeDiskById4XXResponse.md +20 -0
  76. data/docs/UpdateVolumeGroupById202Response.md +20 -0
  77. data/docs/UpdateVolumeGroupById4XXResponse.md +20 -0
  78. data/docs/VolumeGroupsApi.md +1887 -0
  79. data/docs/VolumesV40ConfigAssociateCategoryApiResponse.md +20 -0
  80. data/docs/VolumesV40ConfigAttachIscsiClientApiResponse.md +20 -0
  81. data/docs/VolumesV40ConfigAttachNvmfClientApiResponse.md +20 -0
  82. data/docs/VolumesV40ConfigAttachVmApiResponse.md +20 -0
  83. data/docs/VolumesV40ConfigAttachmentType.md +15 -0
  84. data/docs/VolumesV40ConfigAuthenticationType.md +15 -0
  85. data/docs/VolumesV40ConfigCategoryDetails.md +24 -0
  86. data/docs/VolumesV40ConfigCategoryEntityReferences.md +18 -0
  87. data/docs/VolumesV40ConfigCluster.md +20 -0
  88. data/docs/VolumesV40ConfigCreateVolumeDiskApiResponse.md +20 -0
  89. data/docs/VolumesV40ConfigCreateVolumeGroupApiResponse.md +20 -0
  90. data/docs/VolumesV40ConfigDeleteVolumeDiskApiResponse.md +20 -0
  91. data/docs/VolumesV40ConfigDeleteVolumeGroupApiResponse.md +20 -0
  92. data/docs/VolumesV40ConfigDetachIscsiClientApiResponse.md +20 -0
  93. data/docs/VolumesV40ConfigDetachNvmfClientApiResponse.md +20 -0
  94. data/docs/VolumesV40ConfigDetachVmApiResponse.md +20 -0
  95. data/docs/VolumesV40ConfigDisassociateCategoryApiResponse.md +20 -0
  96. data/docs/VolumesV40ConfigDiskStorageFeatures.md +18 -0
  97. data/docs/VolumesV40ConfigFlashMode.md +18 -0
  98. data/docs/VolumesV40ConfigGetIscsiClientApiResponse.md +20 -0
  99. data/docs/VolumesV40ConfigGetIscsiClientApiResponseData.md +49 -0
  100. data/docs/VolumesV40ConfigGetVolumeDiskApiResponse.md +20 -0
  101. data/docs/VolumesV40ConfigGetVolumeDiskApiResponseData.md +49 -0
  102. data/docs/VolumesV40ConfigGetVolumeGroupApiResponse.md +20 -0
  103. data/docs/VolumesV40ConfigGetVolumeGroupApiResponseData.md +49 -0
  104. data/docs/VolumesV40ConfigGetVolumeGroupMetadataApiResponse.md +20 -0
  105. data/docs/VolumesV40ConfigGetVolumeGroupMetadataApiResponseData.md +49 -0
  106. data/docs/VolumesV40ConfigIscsiClient.md +38 -0
  107. data/docs/VolumesV40ConfigIscsiClientAttachment.md +20 -0
  108. data/docs/VolumesV40ConfigIscsiFeatures.md +20 -0
  109. data/docs/VolumesV40ConfigListCategoryAssociationsApiResponse.md +20 -0
  110. data/docs/VolumesV40ConfigListCategoryAssociationsApiResponseData.md +49 -0
  111. data/docs/VolumesV40ConfigListExternalIscsiAttachmentsApiResponse.md +20 -0
  112. data/docs/VolumesV40ConfigListExternalIscsiAttachmentsApiResponseData.md +49 -0
  113. data/docs/VolumesV40ConfigListIscsiClientsApiResponse.md +20 -0
  114. data/docs/VolumesV40ConfigListIscsiClientsApiResponseData.md +49 -0
  115. data/docs/VolumesV40ConfigListVmAttachmentsApiResponse.md +20 -0
  116. data/docs/VolumesV40ConfigListVmAttachmentsApiResponseData.md +49 -0
  117. data/docs/VolumesV40ConfigListVolumeDisksApiResponse.md +20 -0
  118. data/docs/VolumesV40ConfigListVolumeDisksApiResponseData.md +49 -0
  119. data/docs/VolumesV40ConfigListVolumeGroupsApiResponse.md +20 -0
  120. data/docs/VolumesV40ConfigListVolumeGroupsApiResponseData.md +49 -0
  121. data/docs/VolumesV40ConfigMigrateVolumeGroupApiResponse.md +20 -0
  122. data/docs/VolumesV40ConfigNvmfClient.md +28 -0
  123. data/docs/VolumesV40ConfigNvmfClientAttachment.md +24 -0
  124. data/docs/VolumesV40ConfigPauseVolumeGroupSynchronousReplicationApiResponse.md +20 -0
  125. data/docs/VolumesV40ConfigProtocol.md +15 -0
  126. data/docs/VolumesV40ConfigResumeVolumeGroupSynchronousReplicationApiResponse.md +20 -0
  127. data/docs/VolumesV40ConfigResumeVolumeGroupSynchronousReplicationApiResponseData.md +47 -0
  128. data/docs/VolumesV40ConfigRevertSpec.md +18 -0
  129. data/docs/VolumesV40ConfigRevertVolumeGroupApiResponse.md +20 -0
  130. data/docs/VolumesV40ConfigSharingStatus.md +15 -0
  131. data/docs/VolumesV40ConfigStorageFeatures.md +18 -0
  132. data/docs/VolumesV40ConfigTargetParam.md +20 -0
  133. data/docs/VolumesV40ConfigUpdateIscsiClientApiResponse.md +20 -0
  134. data/docs/VolumesV40ConfigUpdateIscsiClientApiResponseData.md +49 -0
  135. data/docs/VolumesV40ConfigUpdateIscsiClientByIdApiResponse.md +20 -0
  136. data/docs/VolumesV40ConfigUpdateVolumeDiskApiResponse.md +20 -0
  137. data/docs/VolumesV40ConfigUpdateVolumeDiskByIdApiResponse.md +20 -0
  138. data/docs/VolumesV40ConfigUpdateVolumeGroupApiResponse.md +20 -0
  139. data/docs/VolumesV40ConfigUpdateVolumeGroupByIdApiResponse.md +20 -0
  140. data/docs/VolumesV40ConfigUpdateVolumeGroupMetadataApiResponse.md +20 -0
  141. data/docs/VolumesV40ConfigUpdateVolumeGroupMetadataInfoApiResponse.md +20 -0
  142. data/docs/VolumesV40ConfigUsageType.md +15 -0
  143. data/docs/VolumesV40ConfigVmAttachment.md +20 -0
  144. data/docs/VolumesV40ConfigVolumeDisk.md +34 -0
  145. data/docs/VolumesV40ConfigVolumeGroup.md +54 -0
  146. data/docs/VolumesV40ConfigVolumeGroupAttachmentSite.md +15 -0
  147. data/docs/VolumesV40ConfigVolumeGroupMetadata.md +20 -0
  148. data/docs/VolumesV40ErrorAppMessage.md +28 -0
  149. data/docs/VolumesV40ErrorErrorResponse.md +18 -0
  150. data/docs/VolumesV40ErrorErrorResponseError.md +49 -0
  151. data/docs/VolumesV40ErrorMessageSeverity.md +15 -0
  152. data/docs/VolumesV40ErrorSchemaValidationError.md +26 -0
  153. data/docs/VolumesV40ErrorSchemaValidationErrorMessage.md +22 -0
  154. data/docs/VolumesV40StatsGetVolumeDiskStatsApiResponse.md +20 -0
  155. data/docs/VolumesV40StatsGetVolumeDiskStatsApiResponseData.md +49 -0
  156. data/docs/VolumesV40StatsGetVolumeGroupStatsApiResponse.md +20 -0
  157. data/docs/VolumesV40StatsGetVolumeGroupStatsApiResponseData.md +49 -0
  158. data/docs/VolumesV40StatsTimeValuePair.md +20 -0
  159. data/docs/VolumesV40StatsVolumeDiskStats.md +44 -0
  160. data/docs/VolumesV40StatsVolumeGroupStats.md +44 -0
  161. data/git_push.sh +57 -0
  162. data/lib/nutanix_volumes/api/iscsi_clients_api.rb +270 -0
  163. data/lib/nutanix_volumes/api/volume_groups_api.rb +2003 -0
  164. data/lib/nutanix_volumes/api_client.rb +394 -0
  165. data/lib/nutanix_volumes/api_error.rb +58 -0
  166. data/lib/nutanix_volumes/configuration.rb +315 -0
  167. data/lib/nutanix_volumes/models/associate_category202_response.rb +224 -0
  168. data/lib/nutanix_volumes/models/associate_category4_xx_response.rb +224 -0
  169. data/lib/nutanix_volumes/models/attach_iscsi_client202_response.rb +224 -0
  170. data/lib/nutanix_volumes/models/attach_iscsi_client4_xx_response.rb +224 -0
  171. data/lib/nutanix_volumes/models/attach_vm202_response.rb +224 -0
  172. data/lib/nutanix_volumes/models/attach_vm4_xx_response.rb +224 -0
  173. data/lib/nutanix_volumes/models/common_v10_config_entity_reference.rb +336 -0
  174. data/lib/nutanix_volumes/models/common_v10_config_entity_type.rb +68 -0
  175. data/lib/nutanix_volumes/models/common_v10_config_flag.rb +256 -0
  176. data/lib/nutanix_volumes/models/common_v10_config_fqdn.rb +237 -0
  177. data/lib/nutanix_volumes/models/common_v10_config_ip_address_or_fqdn.rb +233 -0
  178. data/lib/nutanix_volumes/models/common_v10_config_ipv4_address.rb +284 -0
  179. data/lib/nutanix_volumes/models/common_v10_config_ipv6_address.rb +284 -0
  180. data/lib/nutanix_volumes/models/common_v10_config_kv_pair.rb +253 -0
  181. data/lib/nutanix_volumes/models/common_v10_config_kv_pair_value.rb +111 -0
  182. data/lib/nutanix_volumes/models/common_v10_config_map_of_string_wrapper.rb +218 -0
  183. data/lib/nutanix_volumes/models/common_v10_config_message.rb +268 -0
  184. data/lib/nutanix_volumes/models/common_v10_config_message_severity.rb +43 -0
  185. data/lib/nutanix_volumes/models/common_v10_config_metadata.rb +366 -0
  186. data/lib/nutanix_volumes/models/common_v10_config_tenant_aware_model.rb +237 -0
  187. data/lib/nutanix_volumes/models/common_v10_response_api_link.rb +226 -0
  188. data/lib/nutanix_volumes/models/common_v10_response_api_response_metadata.rb +376 -0
  189. data/lib/nutanix_volumes/models/common_v10_response_externalizable_abstract_model.rb +312 -0
  190. data/lib/nutanix_volumes/models/common_v10_stats_down_sampling_operator.rb +46 -0
  191. data/lib/nutanix_volumes/models/create_volume_disk202_response.rb +224 -0
  192. data/lib/nutanix_volumes/models/create_volume_disk4_xx_response.rb +224 -0
  193. data/lib/nutanix_volumes/models/create_volume_group202_response.rb +224 -0
  194. data/lib/nutanix_volumes/models/create_volume_group4_xx_response.rb +224 -0
  195. data/lib/nutanix_volumes/models/delete_volume_disk_by_id202_response.rb +224 -0
  196. data/lib/nutanix_volumes/models/delete_volume_disk_by_id4_xx_response.rb +224 -0
  197. data/lib/nutanix_volumes/models/delete_volume_group_by_id202_response.rb +224 -0
  198. data/lib/nutanix_volumes/models/delete_volume_group_by_id4_xx_response.rb +224 -0
  199. data/lib/nutanix_volumes/models/detach_iscsi_client202_response.rb +224 -0
  200. data/lib/nutanix_volumes/models/detach_iscsi_client4_xx_response.rb +224 -0
  201. data/lib/nutanix_volumes/models/detach_vm202_response.rb +224 -0
  202. data/lib/nutanix_volumes/models/detach_vm4_xx_response.rb +224 -0
  203. data/lib/nutanix_volumes/models/disassociate_category202_response.rb +224 -0
  204. data/lib/nutanix_volumes/models/disassociate_category4_xx_response.rb +224 -0
  205. data/lib/nutanix_volumes/models/get_iscsi_client_by_id200_response.rb +224 -0
  206. data/lib/nutanix_volumes/models/get_iscsi_client_by_id4_xx_response.rb +224 -0
  207. data/lib/nutanix_volumes/models/get_volume_disk_by_id200_response.rb +224 -0
  208. data/lib/nutanix_volumes/models/get_volume_disk_by_id4_xx_response.rb +224 -0
  209. data/lib/nutanix_volumes/models/get_volume_disk_stats200_response.rb +224 -0
  210. data/lib/nutanix_volumes/models/get_volume_disk_stats4_xx_response.rb +224 -0
  211. data/lib/nutanix_volumes/models/get_volume_group_by_id200_response.rb +224 -0
  212. data/lib/nutanix_volumes/models/get_volume_group_by_id4_xx_response.rb +224 -0
  213. data/lib/nutanix_volumes/models/get_volume_group_metadata_by_id200_response.rb +224 -0
  214. data/lib/nutanix_volumes/models/get_volume_group_metadata_by_id4_xx_response.rb +224 -0
  215. data/lib/nutanix_volumes/models/get_volume_group_stats200_response.rb +224 -0
  216. data/lib/nutanix_volumes/models/get_volume_group_stats4_xx_response.rb +224 -0
  217. data/lib/nutanix_volumes/models/list_category_associations_by_volume_group_id200_response.rb +226 -0
  218. data/lib/nutanix_volumes/models/list_category_associations_by_volume_group_id4_xx_response.rb +224 -0
  219. data/lib/nutanix_volumes/models/list_external_iscsi_attachments_by_volume_group_id200_response.rb +226 -0
  220. data/lib/nutanix_volumes/models/list_external_iscsi_attachments_by_volume_group_id4_xx_response.rb +224 -0
  221. data/lib/nutanix_volumes/models/list_iscsi_clients200_response.rb +226 -0
  222. data/lib/nutanix_volumes/models/list_iscsi_clients4_xx_response.rb +224 -0
  223. data/lib/nutanix_volumes/models/list_vm_attachments_by_volume_group_id200_response.rb +226 -0
  224. data/lib/nutanix_volumes/models/list_vm_attachments_by_volume_group_id4_xx_response.rb +224 -0
  225. data/lib/nutanix_volumes/models/list_volume_disks_by_volume_group_id200_response.rb +226 -0
  226. data/lib/nutanix_volumes/models/list_volume_disks_by_volume_group_id4_xx_response.rb +224 -0
  227. data/lib/nutanix_volumes/models/list_volume_groups200_response.rb +226 -0
  228. data/lib/nutanix_volumes/models/list_volume_groups4_xx_response.rb +224 -0
  229. data/lib/nutanix_volumes/models/prism_v40_config_task_reference.rb +237 -0
  230. data/lib/nutanix_volumes/models/revert_volume_group202_response.rb +224 -0
  231. data/lib/nutanix_volumes/models/revert_volume_group4_xx_response.rb +224 -0
  232. data/lib/nutanix_volumes/models/update_iscsi_client_by_id202_response.rb +224 -0
  233. data/lib/nutanix_volumes/models/update_iscsi_client_by_id4_xx_response.rb +224 -0
  234. data/lib/nutanix_volumes/models/update_volume_disk_by_id202_response.rb +224 -0
  235. data/lib/nutanix_volumes/models/update_volume_disk_by_id4_xx_response.rb +224 -0
  236. data/lib/nutanix_volumes/models/update_volume_group_by_id202_response.rb +224 -0
  237. data/lib/nutanix_volumes/models/update_volume_group_by_id4_xx_response.rb +224 -0
  238. data/lib/nutanix_volumes/models/volumes_v40_config_associate_category_api_response.rb +224 -0
  239. data/lib/nutanix_volumes/models/volumes_v40_config_attach_iscsi_client_api_response.rb +224 -0
  240. data/lib/nutanix_volumes/models/volumes_v40_config_attach_nvmf_client_api_response.rb +224 -0
  241. data/lib/nutanix_volumes/models/volumes_v40_config_attach_vm_api_response.rb +224 -0
  242. data/lib/nutanix_volumes/models/volumes_v40_config_attachment_type.rb +43 -0
  243. data/lib/nutanix_volumes/models/volumes_v40_config_authentication_type.rb +42 -0
  244. data/lib/nutanix_volumes/models/volumes_v40_config_category_details.rb +344 -0
  245. data/lib/nutanix_volumes/models/volumes_v40_config_category_entity_references.rb +246 -0
  246. data/lib/nutanix_volumes/models/volumes_v40_config_cluster.rb +265 -0
  247. data/lib/nutanix_volumes/models/volumes_v40_config_create_volume_disk_api_response.rb +224 -0
  248. data/lib/nutanix_volumes/models/volumes_v40_config_create_volume_group_api_response.rb +224 -0
  249. data/lib/nutanix_volumes/models/volumes_v40_config_delete_volume_disk_api_response.rb +224 -0
  250. data/lib/nutanix_volumes/models/volumes_v40_config_delete_volume_group_api_response.rb +224 -0
  251. data/lib/nutanix_volumes/models/volumes_v40_config_detach_iscsi_client_api_response.rb +224 -0
  252. data/lib/nutanix_volumes/models/volumes_v40_config_detach_nvmf_client_api_response.rb +224 -0
  253. data/lib/nutanix_volumes/models/volumes_v40_config_detach_vm_api_response.rb +224 -0
  254. data/lib/nutanix_volumes/models/volumes_v40_config_disassociate_category_api_response.rb +224 -0
  255. data/lib/nutanix_volumes/models/volumes_v40_config_disk_storage_features.rb +215 -0
  256. data/lib/nutanix_volumes/models/volumes_v40_config_flash_mode.rb +218 -0
  257. data/lib/nutanix_volumes/models/volumes_v40_config_get_iscsi_client_api_response.rb +224 -0
  258. data/lib/nutanix_volumes/models/volumes_v40_config_get_iscsi_client_api_response_data.rb +105 -0
  259. data/lib/nutanix_volumes/models/volumes_v40_config_get_volume_disk_api_response.rb +224 -0
  260. data/lib/nutanix_volumes/models/volumes_v40_config_get_volume_disk_api_response_data.rb +105 -0
  261. data/lib/nutanix_volumes/models/volumes_v40_config_get_volume_group_api_response.rb +224 -0
  262. data/lib/nutanix_volumes/models/volumes_v40_config_get_volume_group_api_response_data.rb +105 -0
  263. data/lib/nutanix_volumes/models/volumes_v40_config_get_volume_group_metadata_api_response.rb +224 -0
  264. data/lib/nutanix_volumes/models/volumes_v40_config_get_volume_group_metadata_api_response_data.rb +105 -0
  265. data/lib/nutanix_volumes/models/volumes_v40_config_iscsi_client.rb +508 -0
  266. data/lib/nutanix_volumes/models/volumes_v40_config_iscsi_client_attachment.rb +268 -0
  267. data/lib/nutanix_volumes/models/volumes_v40_config_iscsi_features.rb +275 -0
  268. data/lib/nutanix_volumes/models/volumes_v40_config_list_category_associations_api_response.rb +224 -0
  269. data/lib/nutanix_volumes/models/volumes_v40_config_list_category_associations_api_response_data.rb +105 -0
  270. data/lib/nutanix_volumes/models/volumes_v40_config_list_external_iscsi_attachments_api_response.rb +224 -0
  271. data/lib/nutanix_volumes/models/volumes_v40_config_list_external_iscsi_attachments_api_response_data.rb +105 -0
  272. data/lib/nutanix_volumes/models/volumes_v40_config_list_iscsi_clients_api_response.rb +224 -0
  273. data/lib/nutanix_volumes/models/volumes_v40_config_list_iscsi_clients_api_response_data.rb +105 -0
  274. data/lib/nutanix_volumes/models/volumes_v40_config_list_vm_attachments_api_response.rb +224 -0
  275. data/lib/nutanix_volumes/models/volumes_v40_config_list_vm_attachments_api_response_data.rb +105 -0
  276. data/lib/nutanix_volumes/models/volumes_v40_config_list_volume_disks_api_response.rb +224 -0
  277. data/lib/nutanix_volumes/models/volumes_v40_config_list_volume_disks_api_response_data.rb +105 -0
  278. data/lib/nutanix_volumes/models/volumes_v40_config_list_volume_groups_api_response.rb +224 -0
  279. data/lib/nutanix_volumes/models/volumes_v40_config_list_volume_groups_api_response_data.rb +105 -0
  280. data/lib/nutanix_volumes/models/volumes_v40_config_migrate_volume_group_api_response.rb +224 -0
  281. data/lib/nutanix_volumes/models/volumes_v40_config_nvmf_client.rb +412 -0
  282. data/lib/nutanix_volumes/models/volumes_v40_config_nvmf_client_attachment.rb +343 -0
  283. data/lib/nutanix_volumes/models/volumes_v40_config_pause_volume_group_synchronous_replication_api_response.rb +224 -0
  284. data/lib/nutanix_volumes/models/volumes_v40_config_protocol.rb +43 -0
  285. data/lib/nutanix_volumes/models/volumes_v40_config_resume_volume_group_synchronous_replication_api_response.rb +224 -0
  286. data/lib/nutanix_volumes/models/volumes_v40_config_resume_volume_group_synchronous_replication_api_response_data.rb +104 -0
  287. data/lib/nutanix_volumes/models/volumes_v40_config_revert_spec.rb +244 -0
  288. data/lib/nutanix_volumes/models/volumes_v40_config_revert_volume_group_api_response.rb +224 -0
  289. data/lib/nutanix_volumes/models/volumes_v40_config_sharing_status.rb +42 -0
  290. data/lib/nutanix_volumes/models/volumes_v40_config_storage_features.rb +215 -0
  291. data/lib/nutanix_volumes/models/volumes_v40_config_target_param.rb +273 -0
  292. data/lib/nutanix_volumes/models/volumes_v40_config_update_iscsi_client_api_response.rb +224 -0
  293. data/lib/nutanix_volumes/models/volumes_v40_config_update_iscsi_client_api_response_data.rb +105 -0
  294. data/lib/nutanix_volumes/models/volumes_v40_config_update_iscsi_client_by_id_api_response.rb +224 -0
  295. data/lib/nutanix_volumes/models/volumes_v40_config_update_volume_disk_api_response.rb +224 -0
  296. data/lib/nutanix_volumes/models/volumes_v40_config_update_volume_disk_by_id_api_response.rb +224 -0
  297. data/lib/nutanix_volumes/models/volumes_v40_config_update_volume_group_api_response.rb +224 -0
  298. data/lib/nutanix_volumes/models/volumes_v40_config_update_volume_group_by_id_api_response.rb +224 -0
  299. data/lib/nutanix_volumes/models/volumes_v40_config_update_volume_group_metadata_api_response.rb +224 -0
  300. data/lib/nutanix_volumes/models/volumes_v40_config_update_volume_group_metadata_info_api_response.rb +224 -0
  301. data/lib/nutanix_volumes/models/volumes_v40_config_usage_type.rb +44 -0
  302. data/lib/nutanix_volumes/models/volumes_v40_config_vm_attachment.rb +254 -0
  303. data/lib/nutanix_volumes/models/volumes_v40_config_volume_disk.rb +466 -0
  304. data/lib/nutanix_volumes/models/volumes_v40_config_volume_group.rb +657 -0
  305. data/lib/nutanix_volumes/models/volumes_v40_config_volume_group_attachment_site.rb +42 -0
  306. data/lib/nutanix_volumes/models/volumes_v40_config_volume_group_metadata.rb +255 -0
  307. data/lib/nutanix_volumes/models/volumes_v40_error_app_message.rb +291 -0
  308. data/lib/nutanix_volumes/models/volumes_v40_error_error_response.rb +215 -0
  309. data/lib/nutanix_volumes/models/volumes_v40_error_error_response_error.rb +105 -0
  310. data/lib/nutanix_volumes/models/volumes_v40_error_message_severity.rb +43 -0
  311. data/lib/nutanix_volumes/models/volumes_v40_error_schema_validation_error.rb +258 -0
  312. data/lib/nutanix_volumes/models/volumes_v40_error_schema_validation_error_message.rb +236 -0
  313. data/lib/nutanix_volumes/models/volumes_v40_stats_get_volume_disk_stats_api_response.rb +224 -0
  314. data/lib/nutanix_volumes/models/volumes_v40_stats_get_volume_disk_stats_api_response_data.rb +105 -0
  315. data/lib/nutanix_volumes/models/volumes_v40_stats_get_volume_group_stats_api_response.rb +224 -0
  316. data/lib/nutanix_volumes/models/volumes_v40_stats_get_volume_group_stats_api_response_data.rb +105 -0
  317. data/lib/nutanix_volumes/models/volumes_v40_stats_time_value_pair.rb +225 -0
  318. data/lib/nutanix_volumes/models/volumes_v40_stats_volume_disk_stats.rb +743 -0
  319. data/lib/nutanix_volumes/models/volumes_v40_stats_volume_group_stats.rb +743 -0
  320. data/lib/nutanix_volumes/version.rb +15 -0
  321. data/lib/nutanix_volumes.rb +194 -0
  322. data/nutanix_volumes.gemspec +39 -0
  323. data/spec/api/iscsi_clients_api_spec.rb +79 -0
  324. data/spec/api/volume_groups_api_spec.rb +370 -0
  325. data/spec/models/associate_category202_response_spec.rb +42 -0
  326. data/spec/models/associate_category4_xx_response_spec.rb +42 -0
  327. data/spec/models/attach_iscsi_client202_response_spec.rb +42 -0
  328. data/spec/models/attach_iscsi_client4_xx_response_spec.rb +42 -0
  329. data/spec/models/attach_vm202_response_spec.rb +42 -0
  330. data/spec/models/attach_vm4_xx_response_spec.rb +42 -0
  331. data/spec/models/common_v10_config_entity_reference_spec.rb +54 -0
  332. data/spec/models/common_v10_config_entity_type_spec.rb +30 -0
  333. data/spec/models/common_v10_config_flag_spec.rb +42 -0
  334. data/spec/models/common_v10_config_fqdn_spec.rb +36 -0
  335. data/spec/models/common_v10_config_ip_address_or_fqdn_spec.rb +48 -0
  336. data/spec/models/common_v10_config_ipv4_address_spec.rb +42 -0
  337. data/spec/models/common_v10_config_ipv6_address_spec.rb +42 -0
  338. data/spec/models/common_v10_config_kv_pair_spec.rb +42 -0
  339. data/spec/models/common_v10_config_kv_pair_value_spec.rb +32 -0
  340. data/spec/models/common_v10_config_map_of_string_wrapper_spec.rb +36 -0
  341. data/spec/models/common_v10_config_message_severity_spec.rb +30 -0
  342. data/spec/models/common_v10_config_message_spec.rb +54 -0
  343. data/spec/models/common_v10_config_metadata_spec.rb +60 -0
  344. data/spec/models/common_v10_config_tenant_aware_model_spec.rb +36 -0
  345. data/spec/models/common_v10_response_api_link_spec.rb +42 -0
  346. data/spec/models/common_v10_response_api_response_metadata_spec.rb +60 -0
  347. data/spec/models/common_v10_response_externalizable_abstract_model_spec.rb +48 -0
  348. data/spec/models/common_v10_stats_down_sampling_operator_spec.rb +30 -0
  349. data/spec/models/create_volume_disk202_response_spec.rb +42 -0
  350. data/spec/models/create_volume_disk4_xx_response_spec.rb +42 -0
  351. data/spec/models/create_volume_group202_response_spec.rb +42 -0
  352. data/spec/models/create_volume_group4_xx_response_spec.rb +42 -0
  353. data/spec/models/delete_volume_disk_by_id202_response_spec.rb +42 -0
  354. data/spec/models/delete_volume_disk_by_id4_xx_response_spec.rb +42 -0
  355. data/spec/models/delete_volume_group_by_id202_response_spec.rb +42 -0
  356. data/spec/models/delete_volume_group_by_id4_xx_response_spec.rb +42 -0
  357. data/spec/models/detach_iscsi_client202_response_spec.rb +42 -0
  358. data/spec/models/detach_iscsi_client4_xx_response_spec.rb +42 -0
  359. data/spec/models/detach_vm202_response_spec.rb +42 -0
  360. data/spec/models/detach_vm4_xx_response_spec.rb +42 -0
  361. data/spec/models/disassociate_category202_response_spec.rb +42 -0
  362. data/spec/models/disassociate_category4_xx_response_spec.rb +42 -0
  363. data/spec/models/get_iscsi_client_by_id200_response_spec.rb +42 -0
  364. data/spec/models/get_iscsi_client_by_id4_xx_response_spec.rb +42 -0
  365. data/spec/models/get_volume_disk_by_id200_response_spec.rb +42 -0
  366. data/spec/models/get_volume_disk_by_id4_xx_response_spec.rb +42 -0
  367. data/spec/models/get_volume_disk_stats200_response_spec.rb +42 -0
  368. data/spec/models/get_volume_disk_stats4_xx_response_spec.rb +42 -0
  369. data/spec/models/get_volume_group_by_id200_response_spec.rb +42 -0
  370. data/spec/models/get_volume_group_by_id4_xx_response_spec.rb +42 -0
  371. data/spec/models/get_volume_group_metadata_by_id200_response_spec.rb +42 -0
  372. data/spec/models/get_volume_group_metadata_by_id4_xx_response_spec.rb +42 -0
  373. data/spec/models/get_volume_group_stats200_response_spec.rb +42 -0
  374. data/spec/models/get_volume_group_stats4_xx_response_spec.rb +42 -0
  375. data/spec/models/list_category_associations_by_volume_group_id200_response_spec.rb +42 -0
  376. data/spec/models/list_category_associations_by_volume_group_id4_xx_response_spec.rb +42 -0
  377. data/spec/models/list_external_iscsi_attachments_by_volume_group_id200_response_spec.rb +42 -0
  378. data/spec/models/list_external_iscsi_attachments_by_volume_group_id4_xx_response_spec.rb +42 -0
  379. data/spec/models/list_iscsi_clients200_response_spec.rb +42 -0
  380. data/spec/models/list_iscsi_clients4_xx_response_spec.rb +42 -0
  381. data/spec/models/list_vm_attachments_by_volume_group_id200_response_spec.rb +42 -0
  382. data/spec/models/list_vm_attachments_by_volume_group_id4_xx_response_spec.rb +42 -0
  383. data/spec/models/list_volume_disks_by_volume_group_id200_response_spec.rb +42 -0
  384. data/spec/models/list_volume_disks_by_volume_group_id4_xx_response_spec.rb +42 -0
  385. data/spec/models/list_volume_groups200_response_spec.rb +42 -0
  386. data/spec/models/list_volume_groups4_xx_response_spec.rb +42 -0
  387. data/spec/models/prism_v40_config_task_reference_spec.rb +36 -0
  388. data/spec/models/revert_volume_group202_response_spec.rb +42 -0
  389. data/spec/models/revert_volume_group4_xx_response_spec.rb +42 -0
  390. data/spec/models/update_iscsi_client_by_id202_response_spec.rb +42 -0
  391. data/spec/models/update_iscsi_client_by_id4_xx_response_spec.rb +42 -0
  392. data/spec/models/update_volume_disk_by_id202_response_spec.rb +42 -0
  393. data/spec/models/update_volume_disk_by_id4_xx_response_spec.rb +42 -0
  394. data/spec/models/update_volume_group_by_id202_response_spec.rb +42 -0
  395. data/spec/models/update_volume_group_by_id4_xx_response_spec.rb +42 -0
  396. data/spec/models/volumes_v40_config_associate_category_api_response_spec.rb +42 -0
  397. data/spec/models/volumes_v40_config_attach_iscsi_client_api_response_spec.rb +42 -0
  398. data/spec/models/volumes_v40_config_attach_nvmf_client_api_response_spec.rb +42 -0
  399. data/spec/models/volumes_v40_config_attach_vm_api_response_spec.rb +42 -0
  400. data/spec/models/volumes_v40_config_attachment_type_spec.rb +30 -0
  401. data/spec/models/volumes_v40_config_authentication_type_spec.rb +30 -0
  402. data/spec/models/volumes_v40_config_category_details_spec.rb +54 -0
  403. data/spec/models/volumes_v40_config_category_entity_references_spec.rb +36 -0
  404. data/spec/models/volumes_v40_config_cluster_spec.rb +42 -0
  405. data/spec/models/volumes_v40_config_create_volume_disk_api_response_spec.rb +42 -0
  406. data/spec/models/volumes_v40_config_create_volume_group_api_response_spec.rb +42 -0
  407. data/spec/models/volumes_v40_config_delete_volume_disk_api_response_spec.rb +42 -0
  408. data/spec/models/volumes_v40_config_delete_volume_group_api_response_spec.rb +42 -0
  409. data/spec/models/volumes_v40_config_detach_iscsi_client_api_response_spec.rb +42 -0
  410. data/spec/models/volumes_v40_config_detach_nvmf_client_api_response_spec.rb +42 -0
  411. data/spec/models/volumes_v40_config_detach_vm_api_response_spec.rb +42 -0
  412. data/spec/models/volumes_v40_config_disassociate_category_api_response_spec.rb +42 -0
  413. data/spec/models/volumes_v40_config_disk_storage_features_spec.rb +36 -0
  414. data/spec/models/volumes_v40_config_flash_mode_spec.rb +36 -0
  415. data/spec/models/volumes_v40_config_get_iscsi_client_api_response_data_spec.rb +32 -0
  416. data/spec/models/volumes_v40_config_get_iscsi_client_api_response_spec.rb +42 -0
  417. data/spec/models/volumes_v40_config_get_volume_disk_api_response_data_spec.rb +32 -0
  418. data/spec/models/volumes_v40_config_get_volume_disk_api_response_spec.rb +42 -0
  419. data/spec/models/volumes_v40_config_get_volume_group_api_response_data_spec.rb +32 -0
  420. data/spec/models/volumes_v40_config_get_volume_group_api_response_spec.rb +42 -0
  421. data/spec/models/volumes_v40_config_get_volume_group_metadata_api_response_data_spec.rb +32 -0
  422. data/spec/models/volumes_v40_config_get_volume_group_metadata_api_response_spec.rb +42 -0
  423. data/spec/models/volumes_v40_config_iscsi_client_attachment_spec.rb +42 -0
  424. data/spec/models/volumes_v40_config_iscsi_client_spec.rb +96 -0
  425. data/spec/models/volumes_v40_config_iscsi_features_spec.rb +42 -0
  426. data/spec/models/volumes_v40_config_list_category_associations_api_response_data_spec.rb +32 -0
  427. data/spec/models/volumes_v40_config_list_category_associations_api_response_spec.rb +42 -0
  428. data/spec/models/volumes_v40_config_list_external_iscsi_attachments_api_response_data_spec.rb +32 -0
  429. data/spec/models/volumes_v40_config_list_external_iscsi_attachments_api_response_spec.rb +42 -0
  430. data/spec/models/volumes_v40_config_list_iscsi_clients_api_response_data_spec.rb +32 -0
  431. data/spec/models/volumes_v40_config_list_iscsi_clients_api_response_spec.rb +42 -0
  432. data/spec/models/volumes_v40_config_list_vm_attachments_api_response_data_spec.rb +32 -0
  433. data/spec/models/volumes_v40_config_list_vm_attachments_api_response_spec.rb +42 -0
  434. data/spec/models/volumes_v40_config_list_volume_disks_api_response_data_spec.rb +32 -0
  435. data/spec/models/volumes_v40_config_list_volume_disks_api_response_spec.rb +42 -0
  436. data/spec/models/volumes_v40_config_list_volume_groups_api_response_data_spec.rb +32 -0
  437. data/spec/models/volumes_v40_config_list_volume_groups_api_response_spec.rb +42 -0
  438. data/spec/models/volumes_v40_config_migrate_volume_group_api_response_spec.rb +42 -0
  439. data/spec/models/volumes_v40_config_nvmf_client_attachment_spec.rb +54 -0
  440. data/spec/models/volumes_v40_config_nvmf_client_spec.rb +66 -0
  441. data/spec/models/volumes_v40_config_pause_volume_group_synchronous_replication_api_response_spec.rb +42 -0
  442. data/spec/models/volumes_v40_config_protocol_spec.rb +30 -0
  443. data/spec/models/volumes_v40_config_resume_volume_group_synchronous_replication_api_response_data_spec.rb +32 -0
  444. data/spec/models/volumes_v40_config_resume_volume_group_synchronous_replication_api_response_spec.rb +42 -0
  445. data/spec/models/volumes_v40_config_revert_spec_spec.rb +36 -0
  446. data/spec/models/volumes_v40_config_revert_volume_group_api_response_spec.rb +42 -0
  447. data/spec/models/volumes_v40_config_sharing_status_spec.rb +30 -0
  448. data/spec/models/volumes_v40_config_storage_features_spec.rb +36 -0
  449. data/spec/models/volumes_v40_config_target_param_spec.rb +42 -0
  450. data/spec/models/volumes_v40_config_update_iscsi_client_api_response_data_spec.rb +32 -0
  451. data/spec/models/volumes_v40_config_update_iscsi_client_api_response_spec.rb +42 -0
  452. data/spec/models/volumes_v40_config_update_iscsi_client_by_id_api_response_spec.rb +42 -0
  453. data/spec/models/volumes_v40_config_update_volume_disk_api_response_spec.rb +42 -0
  454. data/spec/models/volumes_v40_config_update_volume_disk_by_id_api_response_spec.rb +42 -0
  455. data/spec/models/volumes_v40_config_update_volume_group_api_response_spec.rb +42 -0
  456. data/spec/models/volumes_v40_config_update_volume_group_by_id_api_response_spec.rb +42 -0
  457. data/spec/models/volumes_v40_config_update_volume_group_metadata_api_response_spec.rb +42 -0
  458. data/spec/models/volumes_v40_config_update_volume_group_metadata_info_api_response_spec.rb +42 -0
  459. data/spec/models/volumes_v40_config_usage_type_spec.rb +30 -0
  460. data/spec/models/volumes_v40_config_vm_attachment_spec.rb +42 -0
  461. data/spec/models/volumes_v40_config_volume_disk_spec.rb +84 -0
  462. data/spec/models/volumes_v40_config_volume_group_attachment_site_spec.rb +30 -0
  463. data/spec/models/volumes_v40_config_volume_group_metadata_spec.rb +42 -0
  464. data/spec/models/volumes_v40_config_volume_group_spec.rb +144 -0
  465. data/spec/models/volumes_v40_error_app_message_spec.rb +66 -0
  466. data/spec/models/volumes_v40_error_error_response_error_spec.rb +32 -0
  467. data/spec/models/volumes_v40_error_error_response_spec.rb +36 -0
  468. data/spec/models/volumes_v40_error_message_severity_spec.rb +30 -0
  469. data/spec/models/volumes_v40_error_schema_validation_error_message_spec.rb +48 -0
  470. data/spec/models/volumes_v40_error_schema_validation_error_spec.rb +60 -0
  471. data/spec/models/volumes_v40_stats_get_volume_disk_stats_api_response_data_spec.rb +32 -0
  472. data/spec/models/volumes_v40_stats_get_volume_disk_stats_api_response_spec.rb +42 -0
  473. data/spec/models/volumes_v40_stats_get_volume_group_stats_api_response_data_spec.rb +32 -0
  474. data/spec/models/volumes_v40_stats_get_volume_group_stats_api_response_spec.rb +42 -0
  475. data/spec/models/volumes_v40_stats_time_value_pair_spec.rb +42 -0
  476. data/spec/models/volumes_v40_stats_volume_disk_stats_spec.rb +114 -0
  477. data/spec/models/volumes_v40_stats_volume_group_stats_spec.rb +114 -0
  478. data/spec/spec_helper.rb +111 -0
  479. data/swagger-volumes-v4.0-all.yaml +8140 -0
  480. metadata +714 -0
@@ -0,0 +1,743 @@
1
+ =begin
2
+ #Nutanix Volumes APIs
3
+
4
+ #Configure volumes.
5
+
6
+ The version of the OpenAPI document: 4.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.9.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module NutanixVolumes
17
+ # A model that stores the Volume group stats.
18
+ class VolumesV40StatsVolumeGroupStats
19
+ # A globally unique identifier that represents the tenant that owns this entity. The system automatically assigns it, and it and is immutable from an API consumer perspective (some use cases may cause this Id to change - For instance, a use case may require the transfer of ownership of the entity, but these cases are handled automatically on the server).
20
+ attr_accessor :tenant_id
21
+
22
+ # A globally unique identifier of an instance that is suitable for external consumption.
23
+ attr_accessor :ext_id
24
+
25
+ # A HATEOAS style link for the response. Each link contains a user-friendly name identifying the link and an address for retrieving the particular resource.
26
+ attr_accessor :links
27
+
28
+ # Uuid of the Volume Group.
29
+ attr_accessor :volume_group_ext_id
30
+
31
+ # Controller user bytes.
32
+ attr_accessor :controller_user_bytes
33
+
34
+ # Controller I/O rate measured in iops.
35
+ attr_accessor :controller_num_iops
36
+
37
+ # Controller read I/O measured in iops.
38
+ attr_accessor :controller_num_read_iops
39
+
40
+ # Controller write I/O measured in iops.
41
+ attr_accessor :controller_num_write_iops
42
+
43
+ # Controller I/O bandwidth measured in Kbps.
44
+ attr_accessor :controller_io_bandwidth_k_bps
45
+
46
+ # Controller read I/O bandwidth measured in Kbps.
47
+ attr_accessor :controller_read_io_bandwidth_k_bps
48
+
49
+ # Controller write I/O bandwidth measured in Kbps.
50
+ attr_accessor :controller_write_io_bandwidth_k_bps
51
+
52
+ # Controller average I/O latency measured in microseconds.
53
+ attr_accessor :controller_avg_io_latency_usecs
54
+
55
+ # Controller average read I/O latency measured in microseconds.
56
+ attr_accessor :controller_avg_read_io_latency_usecs
57
+
58
+ # Controller average write I/O latency measured in microseconds.
59
+ attr_accessor :controller_avg_write_io_latency_usecs
60
+
61
+ # Attribute mapping from ruby-style variable name to JSON key.
62
+ def self.attribute_map
63
+ {
64
+ :'tenant_id' => :'tenantId',
65
+ :'ext_id' => :'extId',
66
+ :'links' => :'links',
67
+ :'volume_group_ext_id' => :'volumeGroupExtId',
68
+ :'controller_user_bytes' => :'controllerUserBytes',
69
+ :'controller_num_iops' => :'controllerNumIOPS',
70
+ :'controller_num_read_iops' => :'controllerNumReadIOPS',
71
+ :'controller_num_write_iops' => :'controllerNumWriteIOPS',
72
+ :'controller_io_bandwidth_k_bps' => :'controllerIOBandwidthKBps',
73
+ :'controller_read_io_bandwidth_k_bps' => :'controllerReadIOBandwidthKBps',
74
+ :'controller_write_io_bandwidth_k_bps' => :'controllerWriteIOBandwidthKBps',
75
+ :'controller_avg_io_latency_usecs' => :'controllerAvgIOLatencyUsecs',
76
+ :'controller_avg_read_io_latency_usecs' => :'controllerAvgReadIOLatencyUsecs',
77
+ :'controller_avg_write_io_latency_usecs' => :'controllerAvgWriteIOLatencyUsecs'
78
+ }
79
+ end
80
+
81
+ # Returns all the JSON keys this model knows about
82
+ def self.acceptable_attributes
83
+ attribute_map.values
84
+ end
85
+
86
+ # Attribute type mapping.
87
+ def self.openapi_types
88
+ {
89
+ :'tenant_id' => :'String',
90
+ :'ext_id' => :'String',
91
+ :'links' => :'Array<CommonV10ResponseApiLink>',
92
+ :'volume_group_ext_id' => :'String',
93
+ :'controller_user_bytes' => :'Array<VolumesV40StatsTimeValuePair>',
94
+ :'controller_num_iops' => :'Array<VolumesV40StatsTimeValuePair>',
95
+ :'controller_num_read_iops' => :'Array<VolumesV40StatsTimeValuePair>',
96
+ :'controller_num_write_iops' => :'Array<VolumesV40StatsTimeValuePair>',
97
+ :'controller_io_bandwidth_k_bps' => :'Array<VolumesV40StatsTimeValuePair>',
98
+ :'controller_read_io_bandwidth_k_bps' => :'Array<VolumesV40StatsTimeValuePair>',
99
+ :'controller_write_io_bandwidth_k_bps' => :'Array<VolumesV40StatsTimeValuePair>',
100
+ :'controller_avg_io_latency_usecs' => :'Array<VolumesV40StatsTimeValuePair>',
101
+ :'controller_avg_read_io_latency_usecs' => :'Array<VolumesV40StatsTimeValuePair>',
102
+ :'controller_avg_write_io_latency_usecs' => :'Array<VolumesV40StatsTimeValuePair>'
103
+ }
104
+ end
105
+
106
+ # List of attributes with nullable: true
107
+ def self.openapi_nullable
108
+ Set.new([
109
+ :'ext_id',
110
+ ])
111
+ end
112
+
113
+ # List of class defined in allOf (OpenAPI v3)
114
+ def self.openapi_all_of
115
+ [
116
+ :'CommonV10ResponseExternalizableAbstractModel'
117
+ ]
118
+ end
119
+
120
+ # Initializes the object
121
+ # @param [Hash] attributes Model attributes in the form of hash
122
+ def initialize(attributes = {})
123
+ if (!attributes.is_a?(Hash))
124
+ fail ArgumentError, "The input argument (attributes) must be a hash in `NutanixVolumes::VolumesV40StatsVolumeGroupStats` initialize method"
125
+ end
126
+
127
+ # check to see if the attribute exists and convert string to symbol for hash key
128
+ attributes = attributes.each_with_object({}) { |(k, v), h|
129
+ if (!self.class.attribute_map.key?(k.to_sym))
130
+ fail ArgumentError, "`#{k}` is not a valid attribute in `NutanixVolumes::VolumesV40StatsVolumeGroupStats`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
131
+ end
132
+ h[k.to_sym] = v
133
+ }
134
+
135
+ if attributes.key?(:'tenant_id')
136
+ self.tenant_id = attributes[:'tenant_id']
137
+ end
138
+
139
+ if attributes.key?(:'ext_id')
140
+ self.ext_id = attributes[:'ext_id']
141
+ end
142
+
143
+ if attributes.key?(:'links')
144
+ if (value = attributes[:'links']).is_a?(Array)
145
+ self.links = value
146
+ end
147
+ end
148
+
149
+ if attributes.key?(:'volume_group_ext_id')
150
+ self.volume_group_ext_id = attributes[:'volume_group_ext_id']
151
+ end
152
+
153
+ if attributes.key?(:'controller_user_bytes')
154
+ if (value = attributes[:'controller_user_bytes']).is_a?(Array)
155
+ self.controller_user_bytes = value
156
+ end
157
+ end
158
+
159
+ if attributes.key?(:'controller_num_iops')
160
+ if (value = attributes[:'controller_num_iops']).is_a?(Array)
161
+ self.controller_num_iops = value
162
+ end
163
+ end
164
+
165
+ if attributes.key?(:'controller_num_read_iops')
166
+ if (value = attributes[:'controller_num_read_iops']).is_a?(Array)
167
+ self.controller_num_read_iops = value
168
+ end
169
+ end
170
+
171
+ if attributes.key?(:'controller_num_write_iops')
172
+ if (value = attributes[:'controller_num_write_iops']).is_a?(Array)
173
+ self.controller_num_write_iops = value
174
+ end
175
+ end
176
+
177
+ if attributes.key?(:'controller_io_bandwidth_k_bps')
178
+ if (value = attributes[:'controller_io_bandwidth_k_bps']).is_a?(Array)
179
+ self.controller_io_bandwidth_k_bps = value
180
+ end
181
+ end
182
+
183
+ if attributes.key?(:'controller_read_io_bandwidth_k_bps')
184
+ if (value = attributes[:'controller_read_io_bandwidth_k_bps']).is_a?(Array)
185
+ self.controller_read_io_bandwidth_k_bps = value
186
+ end
187
+ end
188
+
189
+ if attributes.key?(:'controller_write_io_bandwidth_k_bps')
190
+ if (value = attributes[:'controller_write_io_bandwidth_k_bps']).is_a?(Array)
191
+ self.controller_write_io_bandwidth_k_bps = value
192
+ end
193
+ end
194
+
195
+ if attributes.key?(:'controller_avg_io_latency_usecs')
196
+ if (value = attributes[:'controller_avg_io_latency_usecs']).is_a?(Array)
197
+ self.controller_avg_io_latency_usecs = value
198
+ end
199
+ end
200
+
201
+ if attributes.key?(:'controller_avg_read_io_latency_usecs')
202
+ if (value = attributes[:'controller_avg_read_io_latency_usecs']).is_a?(Array)
203
+ self.controller_avg_read_io_latency_usecs = value
204
+ end
205
+ end
206
+
207
+ if attributes.key?(:'controller_avg_write_io_latency_usecs')
208
+ if (value = attributes[:'controller_avg_write_io_latency_usecs']).is_a?(Array)
209
+ self.controller_avg_write_io_latency_usecs = value
210
+ end
211
+ end
212
+ end
213
+
214
+ # Show invalid properties with the reasons. Usually used together with valid?
215
+ # @return Array for valid properties with the reasons
216
+ def list_invalid_properties
217
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
218
+ invalid_properties = Array.new
219
+ pattern = Regexp.new(/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/)
220
+ if !@tenant_id.nil? && @tenant_id !~ pattern
221
+ invalid_properties.push("invalid value for \"tenant_id\", must conform to the pattern #{pattern}.")
222
+ end
223
+
224
+ pattern = Regexp.new(/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/)
225
+ if !@ext_id.nil? && @ext_id !~ pattern
226
+ invalid_properties.push("invalid value for \"ext_id\", must conform to the pattern #{pattern}.")
227
+ end
228
+
229
+ if !@links.nil? && @links.length > 20
230
+ invalid_properties.push('invalid value for "links", number of items must be less than or equal to 20.')
231
+ end
232
+
233
+ if !@links.nil? && @links.length < 0
234
+ invalid_properties.push('invalid value for "links", number of items must be greater than or equal to 0.')
235
+ end
236
+
237
+ pattern = Regexp.new(/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/)
238
+ if !@volume_group_ext_id.nil? && @volume_group_ext_id !~ pattern
239
+ invalid_properties.push("invalid value for \"volume_group_ext_id\", must conform to the pattern #{pattern}.")
240
+ end
241
+
242
+ if !@controller_user_bytes.nil? && @controller_user_bytes.length > 100
243
+ invalid_properties.push('invalid value for "controller_user_bytes", number of items must be less than or equal to 100.')
244
+ end
245
+
246
+ if !@controller_user_bytes.nil? && @controller_user_bytes.length < 0
247
+ invalid_properties.push('invalid value for "controller_user_bytes", number of items must be greater than or equal to 0.')
248
+ end
249
+
250
+ if !@controller_num_iops.nil? && @controller_num_iops.length > 100
251
+ invalid_properties.push('invalid value for "controller_num_iops", number of items must be less than or equal to 100.')
252
+ end
253
+
254
+ if !@controller_num_iops.nil? && @controller_num_iops.length < 0
255
+ invalid_properties.push('invalid value for "controller_num_iops", number of items must be greater than or equal to 0.')
256
+ end
257
+
258
+ if !@controller_num_read_iops.nil? && @controller_num_read_iops.length > 100
259
+ invalid_properties.push('invalid value for "controller_num_read_iops", number of items must be less than or equal to 100.')
260
+ end
261
+
262
+ if !@controller_num_read_iops.nil? && @controller_num_read_iops.length < 0
263
+ invalid_properties.push('invalid value for "controller_num_read_iops", number of items must be greater than or equal to 0.')
264
+ end
265
+
266
+ if !@controller_num_write_iops.nil? && @controller_num_write_iops.length > 100
267
+ invalid_properties.push('invalid value for "controller_num_write_iops", number of items must be less than or equal to 100.')
268
+ end
269
+
270
+ if !@controller_num_write_iops.nil? && @controller_num_write_iops.length < 0
271
+ invalid_properties.push('invalid value for "controller_num_write_iops", number of items must be greater than or equal to 0.')
272
+ end
273
+
274
+ if !@controller_io_bandwidth_k_bps.nil? && @controller_io_bandwidth_k_bps.length > 100
275
+ invalid_properties.push('invalid value for "controller_io_bandwidth_k_bps", number of items must be less than or equal to 100.')
276
+ end
277
+
278
+ if !@controller_io_bandwidth_k_bps.nil? && @controller_io_bandwidth_k_bps.length < 0
279
+ invalid_properties.push('invalid value for "controller_io_bandwidth_k_bps", number of items must be greater than or equal to 0.')
280
+ end
281
+
282
+ if !@controller_read_io_bandwidth_k_bps.nil? && @controller_read_io_bandwidth_k_bps.length > 100
283
+ invalid_properties.push('invalid value for "controller_read_io_bandwidth_k_bps", number of items must be less than or equal to 100.')
284
+ end
285
+
286
+ if !@controller_read_io_bandwidth_k_bps.nil? && @controller_read_io_bandwidth_k_bps.length < 0
287
+ invalid_properties.push('invalid value for "controller_read_io_bandwidth_k_bps", number of items must be greater than or equal to 0.')
288
+ end
289
+
290
+ if !@controller_write_io_bandwidth_k_bps.nil? && @controller_write_io_bandwidth_k_bps.length > 100
291
+ invalid_properties.push('invalid value for "controller_write_io_bandwidth_k_bps", number of items must be less than or equal to 100.')
292
+ end
293
+
294
+ if !@controller_write_io_bandwidth_k_bps.nil? && @controller_write_io_bandwidth_k_bps.length < 0
295
+ invalid_properties.push('invalid value for "controller_write_io_bandwidth_k_bps", number of items must be greater than or equal to 0.')
296
+ end
297
+
298
+ if !@controller_avg_io_latency_usecs.nil? && @controller_avg_io_latency_usecs.length > 100
299
+ invalid_properties.push('invalid value for "controller_avg_io_latency_usecs", number of items must be less than or equal to 100.')
300
+ end
301
+
302
+ if !@controller_avg_io_latency_usecs.nil? && @controller_avg_io_latency_usecs.length < 0
303
+ invalid_properties.push('invalid value for "controller_avg_io_latency_usecs", number of items must be greater than or equal to 0.')
304
+ end
305
+
306
+ if !@controller_avg_read_io_latency_usecs.nil? && @controller_avg_read_io_latency_usecs.length > 100
307
+ invalid_properties.push('invalid value for "controller_avg_read_io_latency_usecs", number of items must be less than or equal to 100.')
308
+ end
309
+
310
+ if !@controller_avg_read_io_latency_usecs.nil? && @controller_avg_read_io_latency_usecs.length < 0
311
+ invalid_properties.push('invalid value for "controller_avg_read_io_latency_usecs", number of items must be greater than or equal to 0.')
312
+ end
313
+
314
+ if !@controller_avg_write_io_latency_usecs.nil? && @controller_avg_write_io_latency_usecs.length > 100
315
+ invalid_properties.push('invalid value for "controller_avg_write_io_latency_usecs", number of items must be less than or equal to 100.')
316
+ end
317
+
318
+ if !@controller_avg_write_io_latency_usecs.nil? && @controller_avg_write_io_latency_usecs.length < 0
319
+ invalid_properties.push('invalid value for "controller_avg_write_io_latency_usecs", number of items must be greater than or equal to 0.')
320
+ end
321
+
322
+ invalid_properties
323
+ end
324
+
325
+ # Check to see if the all the properties in the model are valid
326
+ # @return true if the model is valid
327
+ def valid?
328
+ warn '[DEPRECATED] the `valid?` method is obsolete'
329
+ return false if !@tenant_id.nil? && @tenant_id !~ Regexp.new(/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/)
330
+ return false if !@ext_id.nil? && @ext_id !~ Regexp.new(/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/)
331
+ return false if !@links.nil? && @links.length > 20
332
+ return false if !@links.nil? && @links.length < 0
333
+ return false if !@volume_group_ext_id.nil? && @volume_group_ext_id !~ Regexp.new(/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/)
334
+ return false if !@controller_user_bytes.nil? && @controller_user_bytes.length > 100
335
+ return false if !@controller_user_bytes.nil? && @controller_user_bytes.length < 0
336
+ return false if !@controller_num_iops.nil? && @controller_num_iops.length > 100
337
+ return false if !@controller_num_iops.nil? && @controller_num_iops.length < 0
338
+ return false if !@controller_num_read_iops.nil? && @controller_num_read_iops.length > 100
339
+ return false if !@controller_num_read_iops.nil? && @controller_num_read_iops.length < 0
340
+ return false if !@controller_num_write_iops.nil? && @controller_num_write_iops.length > 100
341
+ return false if !@controller_num_write_iops.nil? && @controller_num_write_iops.length < 0
342
+ return false if !@controller_io_bandwidth_k_bps.nil? && @controller_io_bandwidth_k_bps.length > 100
343
+ return false if !@controller_io_bandwidth_k_bps.nil? && @controller_io_bandwidth_k_bps.length < 0
344
+ return false if !@controller_read_io_bandwidth_k_bps.nil? && @controller_read_io_bandwidth_k_bps.length > 100
345
+ return false if !@controller_read_io_bandwidth_k_bps.nil? && @controller_read_io_bandwidth_k_bps.length < 0
346
+ return false if !@controller_write_io_bandwidth_k_bps.nil? && @controller_write_io_bandwidth_k_bps.length > 100
347
+ return false if !@controller_write_io_bandwidth_k_bps.nil? && @controller_write_io_bandwidth_k_bps.length < 0
348
+ return false if !@controller_avg_io_latency_usecs.nil? && @controller_avg_io_latency_usecs.length > 100
349
+ return false if !@controller_avg_io_latency_usecs.nil? && @controller_avg_io_latency_usecs.length < 0
350
+ return false if !@controller_avg_read_io_latency_usecs.nil? && @controller_avg_read_io_latency_usecs.length > 100
351
+ return false if !@controller_avg_read_io_latency_usecs.nil? && @controller_avg_read_io_latency_usecs.length < 0
352
+ return false if !@controller_avg_write_io_latency_usecs.nil? && @controller_avg_write_io_latency_usecs.length > 100
353
+ return false if !@controller_avg_write_io_latency_usecs.nil? && @controller_avg_write_io_latency_usecs.length < 0
354
+ true
355
+ end
356
+
357
+ # Custom attribute writer method with validation
358
+ # @param [Object] tenant_id Value to be assigned
359
+ def tenant_id=(tenant_id)
360
+ if tenant_id.nil?
361
+ fail ArgumentError, 'tenant_id cannot be nil'
362
+ end
363
+
364
+ pattern = Regexp.new(/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/)
365
+ if tenant_id !~ pattern
366
+ fail ArgumentError, "invalid value for \"tenant_id\", must conform to the pattern #{pattern}."
367
+ end
368
+
369
+ @tenant_id = tenant_id
370
+ end
371
+
372
+ # Custom attribute writer method with validation
373
+ # @param [Object] ext_id Value to be assigned
374
+ def ext_id=(ext_id)
375
+ pattern = Regexp.new(/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/)
376
+ if !ext_id.nil? && ext_id !~ pattern
377
+ fail ArgumentError, "invalid value for \"ext_id\", must conform to the pattern #{pattern}."
378
+ end
379
+
380
+ @ext_id = ext_id
381
+ end
382
+
383
+ # Custom attribute writer method with validation
384
+ # @param [Object] links Value to be assigned
385
+ def links=(links)
386
+ if links.nil?
387
+ fail ArgumentError, 'links cannot be nil'
388
+ end
389
+
390
+ if links.length > 20
391
+ fail ArgumentError, 'invalid value for "links", number of items must be less than or equal to 20.'
392
+ end
393
+
394
+ if links.length < 0
395
+ fail ArgumentError, 'invalid value for "links", number of items must be greater than or equal to 0.'
396
+ end
397
+
398
+ @links = links
399
+ end
400
+
401
+ # Custom attribute writer method with validation
402
+ # @param [Object] volume_group_ext_id Value to be assigned
403
+ def volume_group_ext_id=(volume_group_ext_id)
404
+ if volume_group_ext_id.nil?
405
+ fail ArgumentError, 'volume_group_ext_id cannot be nil'
406
+ end
407
+
408
+ pattern = Regexp.new(/^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$/)
409
+ if volume_group_ext_id !~ pattern
410
+ fail ArgumentError, "invalid value for \"volume_group_ext_id\", must conform to the pattern #{pattern}."
411
+ end
412
+
413
+ @volume_group_ext_id = volume_group_ext_id
414
+ end
415
+
416
+ # Custom attribute writer method with validation
417
+ # @param [Object] controller_user_bytes Value to be assigned
418
+ def controller_user_bytes=(controller_user_bytes)
419
+ if controller_user_bytes.nil?
420
+ fail ArgumentError, 'controller_user_bytes cannot be nil'
421
+ end
422
+
423
+ if controller_user_bytes.length > 100
424
+ fail ArgumentError, 'invalid value for "controller_user_bytes", number of items must be less than or equal to 100.'
425
+ end
426
+
427
+ if controller_user_bytes.length < 0
428
+ fail ArgumentError, 'invalid value for "controller_user_bytes", number of items must be greater than or equal to 0.'
429
+ end
430
+
431
+ @controller_user_bytes = controller_user_bytes
432
+ end
433
+
434
+ # Custom attribute writer method with validation
435
+ # @param [Object] controller_num_iops Value to be assigned
436
+ def controller_num_iops=(controller_num_iops)
437
+ if controller_num_iops.nil?
438
+ fail ArgumentError, 'controller_num_iops cannot be nil'
439
+ end
440
+
441
+ if controller_num_iops.length > 100
442
+ fail ArgumentError, 'invalid value for "controller_num_iops", number of items must be less than or equal to 100.'
443
+ end
444
+
445
+ if controller_num_iops.length < 0
446
+ fail ArgumentError, 'invalid value for "controller_num_iops", number of items must be greater than or equal to 0.'
447
+ end
448
+
449
+ @controller_num_iops = controller_num_iops
450
+ end
451
+
452
+ # Custom attribute writer method with validation
453
+ # @param [Object] controller_num_read_iops Value to be assigned
454
+ def controller_num_read_iops=(controller_num_read_iops)
455
+ if controller_num_read_iops.nil?
456
+ fail ArgumentError, 'controller_num_read_iops cannot be nil'
457
+ end
458
+
459
+ if controller_num_read_iops.length > 100
460
+ fail ArgumentError, 'invalid value for "controller_num_read_iops", number of items must be less than or equal to 100.'
461
+ end
462
+
463
+ if controller_num_read_iops.length < 0
464
+ fail ArgumentError, 'invalid value for "controller_num_read_iops", number of items must be greater than or equal to 0.'
465
+ end
466
+
467
+ @controller_num_read_iops = controller_num_read_iops
468
+ end
469
+
470
+ # Custom attribute writer method with validation
471
+ # @param [Object] controller_num_write_iops Value to be assigned
472
+ def controller_num_write_iops=(controller_num_write_iops)
473
+ if controller_num_write_iops.nil?
474
+ fail ArgumentError, 'controller_num_write_iops cannot be nil'
475
+ end
476
+
477
+ if controller_num_write_iops.length > 100
478
+ fail ArgumentError, 'invalid value for "controller_num_write_iops", number of items must be less than or equal to 100.'
479
+ end
480
+
481
+ if controller_num_write_iops.length < 0
482
+ fail ArgumentError, 'invalid value for "controller_num_write_iops", number of items must be greater than or equal to 0.'
483
+ end
484
+
485
+ @controller_num_write_iops = controller_num_write_iops
486
+ end
487
+
488
+ # Custom attribute writer method with validation
489
+ # @param [Object] controller_io_bandwidth_k_bps Value to be assigned
490
+ def controller_io_bandwidth_k_bps=(controller_io_bandwidth_k_bps)
491
+ if controller_io_bandwidth_k_bps.nil?
492
+ fail ArgumentError, 'controller_io_bandwidth_k_bps cannot be nil'
493
+ end
494
+
495
+ if controller_io_bandwidth_k_bps.length > 100
496
+ fail ArgumentError, 'invalid value for "controller_io_bandwidth_k_bps", number of items must be less than or equal to 100.'
497
+ end
498
+
499
+ if controller_io_bandwidth_k_bps.length < 0
500
+ fail ArgumentError, 'invalid value for "controller_io_bandwidth_k_bps", number of items must be greater than or equal to 0.'
501
+ end
502
+
503
+ @controller_io_bandwidth_k_bps = controller_io_bandwidth_k_bps
504
+ end
505
+
506
+ # Custom attribute writer method with validation
507
+ # @param [Object] controller_read_io_bandwidth_k_bps Value to be assigned
508
+ def controller_read_io_bandwidth_k_bps=(controller_read_io_bandwidth_k_bps)
509
+ if controller_read_io_bandwidth_k_bps.nil?
510
+ fail ArgumentError, 'controller_read_io_bandwidth_k_bps cannot be nil'
511
+ end
512
+
513
+ if controller_read_io_bandwidth_k_bps.length > 100
514
+ fail ArgumentError, 'invalid value for "controller_read_io_bandwidth_k_bps", number of items must be less than or equal to 100.'
515
+ end
516
+
517
+ if controller_read_io_bandwidth_k_bps.length < 0
518
+ fail ArgumentError, 'invalid value for "controller_read_io_bandwidth_k_bps", number of items must be greater than or equal to 0.'
519
+ end
520
+
521
+ @controller_read_io_bandwidth_k_bps = controller_read_io_bandwidth_k_bps
522
+ end
523
+
524
+ # Custom attribute writer method with validation
525
+ # @param [Object] controller_write_io_bandwidth_k_bps Value to be assigned
526
+ def controller_write_io_bandwidth_k_bps=(controller_write_io_bandwidth_k_bps)
527
+ if controller_write_io_bandwidth_k_bps.nil?
528
+ fail ArgumentError, 'controller_write_io_bandwidth_k_bps cannot be nil'
529
+ end
530
+
531
+ if controller_write_io_bandwidth_k_bps.length > 100
532
+ fail ArgumentError, 'invalid value for "controller_write_io_bandwidth_k_bps", number of items must be less than or equal to 100.'
533
+ end
534
+
535
+ if controller_write_io_bandwidth_k_bps.length < 0
536
+ fail ArgumentError, 'invalid value for "controller_write_io_bandwidth_k_bps", number of items must be greater than or equal to 0.'
537
+ end
538
+
539
+ @controller_write_io_bandwidth_k_bps = controller_write_io_bandwidth_k_bps
540
+ end
541
+
542
+ # Custom attribute writer method with validation
543
+ # @param [Object] controller_avg_io_latency_usecs Value to be assigned
544
+ def controller_avg_io_latency_usecs=(controller_avg_io_latency_usecs)
545
+ if controller_avg_io_latency_usecs.nil?
546
+ fail ArgumentError, 'controller_avg_io_latency_usecs cannot be nil'
547
+ end
548
+
549
+ if controller_avg_io_latency_usecs.length > 100
550
+ fail ArgumentError, 'invalid value for "controller_avg_io_latency_usecs", number of items must be less than or equal to 100.'
551
+ end
552
+
553
+ if controller_avg_io_latency_usecs.length < 0
554
+ fail ArgumentError, 'invalid value for "controller_avg_io_latency_usecs", number of items must be greater than or equal to 0.'
555
+ end
556
+
557
+ @controller_avg_io_latency_usecs = controller_avg_io_latency_usecs
558
+ end
559
+
560
+ # Custom attribute writer method with validation
561
+ # @param [Object] controller_avg_read_io_latency_usecs Value to be assigned
562
+ def controller_avg_read_io_latency_usecs=(controller_avg_read_io_latency_usecs)
563
+ if controller_avg_read_io_latency_usecs.nil?
564
+ fail ArgumentError, 'controller_avg_read_io_latency_usecs cannot be nil'
565
+ end
566
+
567
+ if controller_avg_read_io_latency_usecs.length > 100
568
+ fail ArgumentError, 'invalid value for "controller_avg_read_io_latency_usecs", number of items must be less than or equal to 100.'
569
+ end
570
+
571
+ if controller_avg_read_io_latency_usecs.length < 0
572
+ fail ArgumentError, 'invalid value for "controller_avg_read_io_latency_usecs", number of items must be greater than or equal to 0.'
573
+ end
574
+
575
+ @controller_avg_read_io_latency_usecs = controller_avg_read_io_latency_usecs
576
+ end
577
+
578
+ # Custom attribute writer method with validation
579
+ # @param [Object] controller_avg_write_io_latency_usecs Value to be assigned
580
+ def controller_avg_write_io_latency_usecs=(controller_avg_write_io_latency_usecs)
581
+ if controller_avg_write_io_latency_usecs.nil?
582
+ fail ArgumentError, 'controller_avg_write_io_latency_usecs cannot be nil'
583
+ end
584
+
585
+ if controller_avg_write_io_latency_usecs.length > 100
586
+ fail ArgumentError, 'invalid value for "controller_avg_write_io_latency_usecs", number of items must be less than or equal to 100.'
587
+ end
588
+
589
+ if controller_avg_write_io_latency_usecs.length < 0
590
+ fail ArgumentError, 'invalid value for "controller_avg_write_io_latency_usecs", number of items must be greater than or equal to 0.'
591
+ end
592
+
593
+ @controller_avg_write_io_latency_usecs = controller_avg_write_io_latency_usecs
594
+ end
595
+
596
+ # Checks equality by comparing each attribute.
597
+ # @param [Object] Object to be compared
598
+ def ==(o)
599
+ return true if self.equal?(o)
600
+ self.class == o.class &&
601
+ tenant_id == o.tenant_id &&
602
+ ext_id == o.ext_id &&
603
+ links == o.links &&
604
+ volume_group_ext_id == o.volume_group_ext_id &&
605
+ controller_user_bytes == o.controller_user_bytes &&
606
+ controller_num_iops == o.controller_num_iops &&
607
+ controller_num_read_iops == o.controller_num_read_iops &&
608
+ controller_num_write_iops == o.controller_num_write_iops &&
609
+ controller_io_bandwidth_k_bps == o.controller_io_bandwidth_k_bps &&
610
+ controller_read_io_bandwidth_k_bps == o.controller_read_io_bandwidth_k_bps &&
611
+ controller_write_io_bandwidth_k_bps == o.controller_write_io_bandwidth_k_bps &&
612
+ controller_avg_io_latency_usecs == o.controller_avg_io_latency_usecs &&
613
+ controller_avg_read_io_latency_usecs == o.controller_avg_read_io_latency_usecs &&
614
+ controller_avg_write_io_latency_usecs == o.controller_avg_write_io_latency_usecs
615
+ end
616
+
617
+ # @see the `==` method
618
+ # @param [Object] Object to be compared
619
+ def eql?(o)
620
+ self == o
621
+ end
622
+
623
+ # Calculates hash code according to all attributes.
624
+ # @return [Integer] Hash code
625
+ def hash
626
+ [tenant_id, ext_id, links, volume_group_ext_id, controller_user_bytes, controller_num_iops, controller_num_read_iops, controller_num_write_iops, controller_io_bandwidth_k_bps, controller_read_io_bandwidth_k_bps, controller_write_io_bandwidth_k_bps, controller_avg_io_latency_usecs, controller_avg_read_io_latency_usecs, controller_avg_write_io_latency_usecs].hash
627
+ end
628
+
629
+ # Builds the object from hash
630
+ # @param [Hash] attributes Model attributes in the form of hash
631
+ # @return [Object] Returns the model itself
632
+ def self.build_from_hash(attributes)
633
+ return nil unless attributes.is_a?(Hash)
634
+ attributes = attributes.transform_keys(&:to_sym)
635
+ transformed_hash = {}
636
+ openapi_types.each_pair do |key, type|
637
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
638
+ transformed_hash["#{key}"] = nil
639
+ elsif type =~ /\AArray<(.*)>/i
640
+ # check to ensure the input is an array given that the attribute
641
+ # is documented as an array but the input is not
642
+ if attributes[attribute_map[key]].is_a?(Array)
643
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
644
+ end
645
+ elsif !attributes[attribute_map[key]].nil?
646
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
647
+ end
648
+ end
649
+ new(transformed_hash)
650
+ end
651
+
652
+ # Deserializes the data based on type
653
+ # @param string type Data type
654
+ # @param string value Value to be deserialized
655
+ # @return [Object] Deserialized data
656
+ def self._deserialize(type, value)
657
+ case type.to_sym
658
+ when :Time
659
+ Time.parse(value)
660
+ when :Date
661
+ Date.parse(value)
662
+ when :String
663
+ value.to_s
664
+ when :Integer
665
+ value.to_i
666
+ when :Float
667
+ value.to_f
668
+ when :Boolean
669
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
670
+ true
671
+ else
672
+ false
673
+ end
674
+ when :Object
675
+ # generic object (usually a Hash), return directly
676
+ value
677
+ when /\AArray<(?<inner_type>.+)>\z/
678
+ inner_type = Regexp.last_match[:inner_type]
679
+ value.map { |v| _deserialize(inner_type, v) }
680
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
681
+ k_type = Regexp.last_match[:k_type]
682
+ v_type = Regexp.last_match[:v_type]
683
+ {}.tap do |hash|
684
+ value.each do |k, v|
685
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
686
+ end
687
+ end
688
+ else # model
689
+ # models (e.g. Pet) or oneOf
690
+ klass = NutanixVolumes.const_get(type)
691
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
692
+ end
693
+ end
694
+
695
+ # Returns the string representation of the object
696
+ # @return [String] String presentation of the object
697
+ def to_s
698
+ to_hash.to_s
699
+ end
700
+
701
+ # to_body is an alias to to_hash (backward compatibility)
702
+ # @return [Hash] Returns the object in the form of hash
703
+ def to_body
704
+ to_hash
705
+ end
706
+
707
+ # Returns the object in the form of hash
708
+ # @return [Hash] Returns the object in the form of hash
709
+ def to_hash
710
+ hash = {}
711
+ self.class.attribute_map.each_pair do |attr, param|
712
+ value = self.send(attr)
713
+ if value.nil?
714
+ is_nullable = self.class.openapi_nullable.include?(attr)
715
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
716
+ end
717
+
718
+ hash[param] = _to_hash(value)
719
+ end
720
+ hash
721
+ end
722
+
723
+ # Outputs non-array value in the form of hash
724
+ # For object, use to_hash. Otherwise, just return the value
725
+ # @param [Object] value Any valid value
726
+ # @return [Hash] Returns the value in the form of hash
727
+ def _to_hash(value)
728
+ if value.is_a?(Array)
729
+ value.compact.map { |v| _to_hash(v) }
730
+ elsif value.is_a?(Hash)
731
+ {}.tap do |hash|
732
+ value.each { |k, v| hash[k] = _to_hash(v) }
733
+ end
734
+ elsif value.respond_to? :to_hash
735
+ value.to_hash
736
+ else
737
+ value
738
+ end
739
+ end
740
+
741
+ end
742
+
743
+ end