@nutanix-scratch/volumes-js-client 4.0.1 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. package/README.md +33 -20
  2. package/dist/Ntnx-Volumes-js-client-prod.js +1 -1
  3. package/dist/Ntnx-Volumes-js-client.js +590 -562
  4. package/dist/es/ApiClient.d.ts +35 -7
  5. package/dist/es/ApiClient.js +862 -684
  6. package/dist/es/Paginable.d.ts +1 -1
  7. package/dist/es/Paginable.js +144 -183
  8. package/dist/es/apis/iscsiclients-endpoints.d.ts +4 -16
  9. package/dist/es/apis/iscsiclients-endpoints.js +143 -164
  10. package/dist/es/apis/nvmfclients-endpoints.d.ts +57 -0
  11. package/dist/es/apis/nvmfclients-endpoints.js +147 -0
  12. package/dist/es/apis/volumegroups-endpoints.d.ts +37 -75
  13. package/dist/es/apis/volumegroups-endpoints.js +1157 -1109
  14. package/dist/es/index.d.ts +21 -17
  15. package/dist/es/index.js +342 -326
  16. package/dist/es/models/common/v1/config/EntityReference.d.ts +8 -16
  17. package/dist/es/models/common/v1/config/EntityReference.js +228 -272
  18. package/dist/es/models/common/v1/config/EntityType.js +9 -11
  19. package/dist/es/models/common/v1/config/FQDN.d.ts +2 -7
  20. package/dist/es/models/common/v1/config/FQDN.js +141 -180
  21. package/dist/es/models/common/v1/config/Flag.d.ts +2 -8
  22. package/dist/es/models/common/v1/config/Flag.js +170 -211
  23. package/dist/es/models/common/v1/config/IPAddressOrFQDN.d.ts +2 -26
  24. package/dist/es/models/common/v1/config/IPAddressOrFQDN.js +196 -247
  25. package/dist/es/models/common/v1/config/IPv4Address.d.ts +2 -8
  26. package/dist/es/models/common/v1/config/IPv4Address.js +174 -215
  27. package/dist/es/models/common/v1/config/IPv6Address.d.ts +2 -8
  28. package/dist/es/models/common/v1/config/IPv6Address.js +174 -215
  29. package/dist/es/models/common/v1/config/KVPair.d.ts +2 -8
  30. package/dist/es/models/common/v1/config/KVPair.js +225 -270
  31. package/dist/es/models/common/v1/config/MapOfStringWrapper.d.ts +2 -7
  32. package/dist/es/models/common/v1/config/MapOfStringWrapper.js +139 -178
  33. package/dist/es/models/common/v1/config/Message.d.ts +2 -10
  34. package/dist/es/models/common/v1/config/Message.js +213 -258
  35. package/dist/es/models/common/v1/config/MessageSeverity.js +7 -9
  36. package/dist/es/models/common/v1/config/Metadata.d.ts +2 -11
  37. package/dist/es/models/common/v1/config/Metadata.js +261 -308
  38. package/dist/es/models/common/v1/config/TenantAwareModel.d.ts +5 -10
  39. package/dist/es/models/common/v1/config/TenantAwareModel.js +138 -178
  40. package/dist/es/models/common/v1/response/ApiLink.d.ts +2 -8
  41. package/dist/es/models/common/v1/response/ApiLink.js +165 -206
  42. package/dist/es/models/common/v1/response/ApiResponseMetadata.d.ts +2 -40
  43. package/dist/es/models/common/v1/response/ApiResponseMetadata.js +281 -344
  44. package/dist/es/models/common/v1/response/ExternalizableAbstractModel.d.ts +1 -15
  45. package/dist/es/models/common/v1/response/ExternalizableAbstractModel.js +155 -203
  46. package/dist/es/models/common/v1/stats/DownSamplingOperator.js +7 -9
  47. package/dist/es/models/prism/v4/config/TaskReference.d.ts +5 -10
  48. package/dist/es/models/prism/v4/config/TaskReference.js +144 -188
  49. package/dist/es/models/validation/ValidationError.js +26 -42
  50. package/dist/es/models/validation/ValidationScopes.js +3 -3
  51. package/dist/es/models/volumes/v4/config/AccessToken.d.ts +47 -0
  52. package/dist/es/models/volumes/v4/config/AccessToken.js +235 -0
  53. package/dist/es/models/volumes/v4/config/AssociateCategoryApiResponse.d.ts +2 -43
  54. package/dist/es/models/volumes/v4/config/AssociateCategoryApiResponse.js +187 -242
  55. package/dist/es/models/volumes/v4/config/AttachIscsiClientApiResponse.d.ts +2 -43
  56. package/dist/es/models/volumes/v4/config/AttachIscsiClientApiResponse.js +187 -242
  57. package/dist/es/models/volumes/v4/config/AttachNvmfClientApiResponse.d.ts +2 -43
  58. package/dist/es/models/volumes/v4/config/AttachNvmfClientApiResponse.js +187 -242
  59. package/dist/es/models/volumes/v4/config/AttachVmApiResponse.d.ts +2 -43
  60. package/dist/es/models/volumes/v4/config/AttachVmApiResponse.js +187 -242
  61. package/dist/es/models/volumes/v4/config/AttachmentType.js +8 -10
  62. package/dist/es/models/volumes/v4/config/AuthenticationType.js +7 -9
  63. package/dist/es/models/volumes/v4/config/CategoryDetails.d.ts +1 -1
  64. package/dist/es/models/volumes/v4/config/CategoryDetails.js +74 -103
  65. package/dist/es/models/volumes/v4/config/CategoryEntityReferences.d.ts +2 -15
  66. package/dist/es/models/volumes/v4/config/CategoryEntityReferences.js +152 -195
  67. package/dist/es/models/volumes/v4/config/ClientAccess.d.ts +19 -0
  68. package/dist/es/models/volumes/v4/config/ClientAccess.js +89 -0
  69. package/dist/es/models/volumes/v4/config/Cluster.d.ts +2 -8
  70. package/dist/es/models/volumes/v4/config/Cluster.js +164 -207
  71. package/dist/es/models/volumes/v4/config/ClusterProjection.d.ts +1 -1
  72. package/dist/es/models/volumes/v4/config/ClusterProjection.js +74 -103
  73. package/dist/es/models/volumes/v4/config/ClusterScope.d.ts +57 -0
  74. package/dist/es/models/volumes/v4/config/ClusterScope.js +243 -0
  75. package/dist/es/models/volumes/v4/config/ClusterScopeProjection.d.ts +12 -0
  76. package/dist/es/models/volumes/v4/config/ClusterScopeProjection.js +125 -0
  77. package/dist/es/models/volumes/v4/config/CreateVolumeDiskApiResponse.d.ts +2 -43
  78. package/dist/es/models/volumes/v4/config/CreateVolumeDiskApiResponse.js +187 -242
  79. package/dist/es/models/volumes/v4/config/CreateVolumeGroupApiResponse.d.ts +2 -43
  80. package/dist/es/models/volumes/v4/config/CreateVolumeGroupApiResponse.js +187 -242
  81. package/dist/es/models/volumes/v4/config/DeleteVolumeDiskApiResponse.d.ts +2 -43
  82. package/dist/es/models/volumes/v4/config/DeleteVolumeDiskApiResponse.js +187 -242
  83. package/dist/es/models/volumes/v4/config/DeleteVolumeGroupApiResponse.d.ts +2 -43
  84. package/dist/es/models/volumes/v4/config/DeleteVolumeGroupApiResponse.js +187 -242
  85. package/dist/es/models/volumes/v4/config/DetachIscsiClientApiResponse.d.ts +2 -43
  86. package/dist/es/models/volumes/v4/config/DetachIscsiClientApiResponse.js +187 -242
  87. package/dist/es/models/volumes/v4/config/DetachNvmfClientApiResponse.d.ts +2 -43
  88. package/dist/es/models/volumes/v4/config/DetachNvmfClientApiResponse.js +187 -242
  89. package/dist/es/models/volumes/v4/config/DetachVmApiResponse.d.ts +2 -43
  90. package/dist/es/models/volumes/v4/config/DetachVmApiResponse.js +187 -242
  91. package/dist/es/models/volumes/v4/config/DisassociateCategoryApiResponse.d.ts +2 -43
  92. package/dist/es/models/volumes/v4/config/DisassociateCategoryApiResponse.js +187 -242
  93. package/dist/es/models/volumes/v4/config/DiskStorageFeatures.d.ts +2 -12
  94. package/dist/es/models/volumes/v4/config/DiskStorageFeatures.js +138 -177
  95. package/dist/es/models/volumes/v4/config/FlashMode.d.ts +2 -7
  96. package/dist/es/models/volumes/v4/config/FlashMode.js +140 -179
  97. package/dist/es/models/volumes/v4/config/GetIscsiClientApiResponse.d.ts +2 -45
  98. package/dist/es/models/volumes/v4/config/GetIscsiClientApiResponse.js +187 -242
  99. package/dist/es/models/volumes/v4/config/GetNvmfClientApiResponse.d.ts +58 -0
  100. package/dist/es/models/volumes/v4/config/GetNvmfClientApiResponse.js +288 -0
  101. package/dist/es/models/volumes/v4/config/GetVolumeDiskApiResponse.d.ts +2 -43
  102. package/dist/es/models/volumes/v4/config/GetVolumeDiskApiResponse.js +187 -242
  103. package/dist/es/models/volumes/v4/config/GetVolumeGroupApiResponse.d.ts +2 -45
  104. package/dist/es/models/volumes/v4/config/GetVolumeGroupApiResponse.js +187 -242
  105. package/dist/es/models/volumes/v4/config/GetVolumeGroupMetadataApiResponse.d.ts +2 -43
  106. package/dist/es/models/volumes/v4/config/GetVolumeGroupMetadataApiResponse.js +187 -242
  107. package/dist/es/models/volumes/v4/config/HydrationStatus.d.ts +19 -0
  108. package/dist/es/models/volumes/v4/config/HydrationStatus.js +89 -0
  109. package/dist/es/models/volumes/v4/config/IscsiClient.d.ts +1 -53
  110. package/dist/es/models/volumes/v4/config/IscsiClient.js +305 -365
  111. package/dist/es/models/volumes/v4/config/IscsiClientAttachment.d.ts +2 -8
  112. package/dist/es/models/volumes/v4/config/IscsiClientAttachment.js +171 -211
  113. package/dist/es/models/volumes/v4/config/IscsiClientAttachmentProjection.d.ts +1 -67
  114. package/dist/es/models/volumes/v4/config/IscsiClientAttachmentProjection.js +124 -164
  115. package/dist/es/models/volumes/v4/config/IscsiClientProjection.d.ts +1 -60
  116. package/dist/es/models/volumes/v4/config/IscsiClientProjection.js +165 -195
  117. package/dist/es/models/volumes/v4/config/IscsiFeatures.d.ts +2 -8
  118. package/dist/es/models/volumes/v4/config/IscsiFeatures.js +164 -205
  119. package/dist/es/models/volumes/v4/config/ListCategoryAssociationsApiResponse.d.ts +2 -43
  120. package/dist/es/models/volumes/v4/config/ListCategoryAssociationsApiResponse.js +209 -264
  121. package/dist/es/models/volumes/v4/config/ListExternalIscsiAttachmentsApiResponse.d.ts +2 -43
  122. package/dist/es/models/volumes/v4/config/ListExternalIscsiAttachmentsApiResponse.js +213 -268
  123. package/dist/es/models/volumes/v4/config/ListIscsiClientsApiResponse.d.ts +2 -43
  124. package/dist/es/models/volumes/v4/config/ListIscsiClientsApiResponse.js +213 -268
  125. package/dist/es/models/volumes/v4/config/ListNvmfClientsApiResponse.d.ts +59 -0
  126. package/dist/es/models/volumes/v4/config/ListNvmfClientsApiResponse.js +315 -0
  127. package/dist/es/models/volumes/v4/config/ListVmAttachmentsApiResponse.d.ts +2 -43
  128. package/dist/es/models/volumes/v4/config/ListVmAttachmentsApiResponse.js +213 -268
  129. package/dist/es/models/volumes/v4/config/ListVolumeDisksApiResponse.d.ts +2 -43
  130. package/dist/es/models/volumes/v4/config/ListVolumeDisksApiResponse.js +213 -268
  131. package/dist/es/models/volumes/v4/config/ListVolumeGroupsApiResponse.d.ts +2 -43
  132. package/dist/es/models/volumes/v4/config/ListVolumeGroupsApiResponse.js +213 -268
  133. package/dist/es/models/volumes/v4/config/NvmfClient.d.ts +10 -27
  134. package/dist/es/models/volumes/v4/config/NvmfClient.js +191 -238
  135. package/dist/es/models/volumes/v4/config/NvmfClientAttachment.d.ts +4 -19
  136. package/dist/es/models/volumes/v4/config/NvmfClientAttachment.js +129 -171
  137. package/dist/es/models/volumes/v4/config/NvmfClientAttachmentProjection.d.ts +1 -40
  138. package/dist/es/models/volumes/v4/config/NvmfClientAttachmentProjection.js +131 -172
  139. package/dist/es/models/volumes/v4/config/NvmfClientProjection.d.ts +1 -25
  140. package/dist/es/models/volumes/v4/config/NvmfClientProjection.js +142 -180
  141. package/dist/es/models/volumes/v4/config/Protocol.js +8 -10
  142. package/dist/es/models/volumes/v4/config/RevertSpec.d.ts +2 -7
  143. package/dist/es/models/volumes/v4/config/RevertSpec.js +142 -181
  144. package/dist/es/models/volumes/v4/config/RevertVolumeGroupApiResponse.d.ts +2 -43
  145. package/dist/es/models/volumes/v4/config/RevertVolumeGroupApiResponse.js +187 -242
  146. package/dist/es/models/volumes/v4/config/SharingStatus.js +7 -9
  147. package/dist/es/models/volumes/v4/config/StorageFeatures.d.ts +2 -12
  148. package/dist/es/models/volumes/v4/config/StorageFeatures.js +138 -177
  149. package/dist/es/models/volumes/v4/config/TargetParam.d.ts +2 -8
  150. package/dist/es/models/volumes/v4/config/TargetParam.js +169 -212
  151. package/dist/es/models/volumes/v4/config/UpdateIscsiClientApiResponse.d.ts +2 -43
  152. package/dist/es/models/volumes/v4/config/UpdateIscsiClientApiResponse.js +187 -242
  153. package/dist/es/models/volumes/v4/config/UpdateVolumeDiskApiResponse.d.ts +2 -43
  154. package/dist/es/models/volumes/v4/config/UpdateVolumeDiskApiResponse.js +187 -242
  155. package/dist/es/models/volumes/v4/config/UpdateVolumeGroupApiResponse.d.ts +2 -43
  156. package/dist/es/models/volumes/v4/config/UpdateVolumeGroupApiResponse.js +187 -242
  157. package/dist/es/models/volumes/v4/config/UsageType.js +7 -9
  158. package/dist/es/models/volumes/v4/config/VGAttachment.d.ts +48 -0
  159. package/dist/es/models/volumes/v4/config/VGAttachment.js +253 -0
  160. package/dist/es/models/volumes/v4/config/VmAttachment.d.ts +2 -8
  161. package/dist/es/models/volumes/v4/config/VmAttachment.js +171 -210
  162. package/dist/es/models/volumes/v4/config/VmAttachmentProjection.d.ts +1 -1
  163. package/dist/es/models/volumes/v4/config/VmAttachmentProjection.js +74 -103
  164. package/dist/es/models/volumes/v4/config/VolumeDisk.d.ts +1 -39
  165. package/dist/es/models/volumes/v4/config/VolumeDisk.js +267 -320
  166. package/dist/es/models/volumes/v4/config/VolumeDiskProjection.d.ts +1 -1
  167. package/dist/es/models/volumes/v4/config/VolumeDiskProjection.js +74 -103
  168. package/dist/es/models/volumes/v4/config/VolumeGroup.d.ts +23 -84
  169. package/dist/es/models/volumes/v4/config/VolumeGroup.js +604 -603
  170. package/dist/es/models/volumes/v4/config/VolumeGroupAttachmentSite.js +7 -9
  171. package/dist/es/models/volumes/v4/config/VolumeGroupDelegateAccessSpec.d.ts +56 -0
  172. package/dist/es/models/volumes/v4/config/VolumeGroupDelegateAccessSpec.js +267 -0
  173. package/dist/es/models/volumes/v4/config/VolumeGroupMetadata.d.ts +2 -8
  174. package/dist/es/models/volumes/v4/config/VolumeGroupMetadata.js +166 -209
  175. package/dist/es/models/volumes/v4/config/VolumeGroupMetadataProjection.d.ts +1 -1
  176. package/dist/es/models/volumes/v4/config/VolumeGroupMetadataProjection.js +74 -103
  177. package/dist/es/models/volumes/v4/config/VolumeGroupProjection.d.ts +1 -98
  178. package/dist/es/models/volumes/v4/config/VolumeGroupProjection.js +252 -248
  179. package/dist/es/models/volumes/v4/error/AppMessage.d.ts +5 -15
  180. package/dist/es/models/volumes/v4/error/AppMessage.js +265 -314
  181. package/dist/es/models/volumes/v4/error/ErrorResponse.d.ts +2 -7
  182. package/dist/es/models/volumes/v4/error/ErrorResponse.js +178 -227
  183. package/dist/es/models/volumes/v4/error/SchemaValidationError.d.ts +2 -18
  184. package/dist/es/models/volumes/v4/error/SchemaValidationError.js +249 -300
  185. package/dist/es/models/volumes/v4/error/SchemaValidationErrorMessage.d.ts +2 -9
  186. package/dist/es/models/volumes/v4/error/SchemaValidationErrorMessage.js +191 -234
  187. package/dist/es/models/volumes/v4/stats/GetVolumeDiskStatsApiResponse.d.ts +2 -45
  188. package/dist/es/models/volumes/v4/stats/GetVolumeDiskStatsApiResponse.js +187 -242
  189. package/dist/es/models/volumes/v4/stats/GetVolumeGroupStatsApiResponse.d.ts +2 -43
  190. package/dist/es/models/volumes/v4/stats/GetVolumeGroupStatsApiResponse.js +187 -242
  191. package/dist/es/models/volumes/v4/stats/TimeValuePair.d.ts +2 -8
  192. package/dist/es/models/volumes/v4/stats/TimeValuePair.js +166 -207
  193. package/dist/es/models/volumes/v4/stats/VolumeDiskStats.d.ts +1 -86
  194. package/dist/es/models/volumes/v4/stats/VolumeDiskStats.js +459 -551
  195. package/dist/es/models/volumes/v4/stats/VolumeDiskStatsProjection.d.ts +1 -1
  196. package/dist/es/models/volumes/v4/stats/VolumeDiskStatsProjection.js +74 -103
  197. package/dist/es/models/volumes/v4/stats/VolumeGroupStats.d.ts +12 -86
  198. package/dist/es/models/volumes/v4/stats/VolumeGroupStats.js +501 -551
  199. package/dist/es/models/volumes/v4/stats/VolumeGroupStatsProjection.d.ts +1 -1
  200. package/dist/es/models/volumes/v4/stats/VolumeGroupStatsProjection.js +74 -103
  201. package/dist/es/utils/ValidationUtils.js +39 -69
  202. package/dist/lib/ApiClient.d.ts +35 -7
  203. package/dist/lib/ApiClient.js +862 -684
  204. package/dist/lib/Paginable.d.ts +1 -1
  205. package/dist/lib/Paginable.js +144 -183
  206. package/dist/lib/apis/iscsiclients-endpoints.d.ts +4 -16
  207. package/dist/lib/apis/iscsiclients-endpoints.js +143 -164
  208. package/dist/lib/apis/nvmfclients-endpoints.d.ts +57 -0
  209. package/dist/lib/apis/nvmfclients-endpoints.js +147 -0
  210. package/dist/lib/apis/volumegroups-endpoints.d.ts +37 -75
  211. package/dist/lib/apis/volumegroups-endpoints.js +1157 -1109
  212. package/dist/lib/index.d.ts +21 -17
  213. package/dist/lib/index.js +342 -326
  214. package/dist/lib/models/common/v1/config/EntityReference.d.ts +8 -16
  215. package/dist/lib/models/common/v1/config/EntityReference.js +228 -272
  216. package/dist/lib/models/common/v1/config/EntityType.js +9 -11
  217. package/dist/lib/models/common/v1/config/FQDN.d.ts +2 -7
  218. package/dist/lib/models/common/v1/config/FQDN.js +141 -180
  219. package/dist/lib/models/common/v1/config/Flag.d.ts +2 -8
  220. package/dist/lib/models/common/v1/config/Flag.js +170 -211
  221. package/dist/lib/models/common/v1/config/IPAddressOrFQDN.d.ts +2 -26
  222. package/dist/lib/models/common/v1/config/IPAddressOrFQDN.js +196 -247
  223. package/dist/lib/models/common/v1/config/IPv4Address.d.ts +2 -8
  224. package/dist/lib/models/common/v1/config/IPv4Address.js +174 -215
  225. package/dist/lib/models/common/v1/config/IPv6Address.d.ts +2 -8
  226. package/dist/lib/models/common/v1/config/IPv6Address.js +174 -215
  227. package/dist/lib/models/common/v1/config/KVPair.d.ts +2 -8
  228. package/dist/lib/models/common/v1/config/KVPair.js +225 -270
  229. package/dist/lib/models/common/v1/config/MapOfStringWrapper.d.ts +2 -7
  230. package/dist/lib/models/common/v1/config/MapOfStringWrapper.js +139 -178
  231. package/dist/lib/models/common/v1/config/Message.d.ts +2 -10
  232. package/dist/lib/models/common/v1/config/Message.js +213 -258
  233. package/dist/lib/models/common/v1/config/MessageSeverity.js +7 -9
  234. package/dist/lib/models/common/v1/config/Metadata.d.ts +2 -11
  235. package/dist/lib/models/common/v1/config/Metadata.js +261 -308
  236. package/dist/lib/models/common/v1/config/TenantAwareModel.d.ts +5 -10
  237. package/dist/lib/models/common/v1/config/TenantAwareModel.js +138 -178
  238. package/dist/lib/models/common/v1/response/ApiLink.d.ts +2 -8
  239. package/dist/lib/models/common/v1/response/ApiLink.js +165 -206
  240. package/dist/lib/models/common/v1/response/ApiResponseMetadata.d.ts +2 -40
  241. package/dist/lib/models/common/v1/response/ApiResponseMetadata.js +281 -344
  242. package/dist/lib/models/common/v1/response/ExternalizableAbstractModel.d.ts +1 -15
  243. package/dist/lib/models/common/v1/response/ExternalizableAbstractModel.js +155 -203
  244. package/dist/lib/models/common/v1/stats/DownSamplingOperator.js +7 -9
  245. package/dist/lib/models/prism/v4/config/TaskReference.d.ts +5 -10
  246. package/dist/lib/models/prism/v4/config/TaskReference.js +144 -188
  247. package/dist/lib/models/validation/ValidationError.js +26 -42
  248. package/dist/lib/models/validation/ValidationScopes.js +3 -3
  249. package/dist/lib/models/volumes/v4/config/AccessToken.d.ts +47 -0
  250. package/dist/lib/models/volumes/v4/config/AccessToken.js +235 -0
  251. package/dist/lib/models/volumes/v4/config/AssociateCategoryApiResponse.d.ts +2 -43
  252. package/dist/lib/models/volumes/v4/config/AssociateCategoryApiResponse.js +187 -242
  253. package/dist/lib/models/volumes/v4/config/AttachIscsiClientApiResponse.d.ts +2 -43
  254. package/dist/lib/models/volumes/v4/config/AttachIscsiClientApiResponse.js +187 -242
  255. package/dist/lib/models/volumes/v4/config/AttachNvmfClientApiResponse.d.ts +2 -43
  256. package/dist/lib/models/volumes/v4/config/AttachNvmfClientApiResponse.js +187 -242
  257. package/dist/lib/models/volumes/v4/config/AttachVmApiResponse.d.ts +2 -43
  258. package/dist/lib/models/volumes/v4/config/AttachVmApiResponse.js +187 -242
  259. package/dist/lib/models/volumes/v4/config/AttachmentType.js +8 -10
  260. package/dist/lib/models/volumes/v4/config/AuthenticationType.js +7 -9
  261. package/dist/lib/models/volumes/v4/config/CategoryDetails.d.ts +1 -1
  262. package/dist/lib/models/volumes/v4/config/CategoryDetails.js +74 -103
  263. package/dist/lib/models/volumes/v4/config/CategoryEntityReferences.d.ts +2 -15
  264. package/dist/lib/models/volumes/v4/config/CategoryEntityReferences.js +152 -195
  265. package/dist/lib/models/volumes/v4/config/ClientAccess.d.ts +19 -0
  266. package/dist/lib/models/volumes/v4/config/ClientAccess.js +89 -0
  267. package/dist/lib/models/volumes/v4/config/Cluster.d.ts +2 -8
  268. package/dist/lib/models/volumes/v4/config/Cluster.js +164 -207
  269. package/dist/lib/models/volumes/v4/config/ClusterProjection.d.ts +1 -1
  270. package/dist/lib/models/volumes/v4/config/ClusterProjection.js +74 -103
  271. package/dist/lib/models/volumes/v4/config/ClusterScope.d.ts +57 -0
  272. package/dist/lib/models/volumes/v4/config/ClusterScope.js +243 -0
  273. package/dist/lib/models/volumes/v4/config/ClusterScopeProjection.d.ts +12 -0
  274. package/dist/lib/models/volumes/v4/config/ClusterScopeProjection.js +125 -0
  275. package/dist/lib/models/volumes/v4/config/CreateVolumeDiskApiResponse.d.ts +2 -43
  276. package/dist/lib/models/volumes/v4/config/CreateVolumeDiskApiResponse.js +187 -242
  277. package/dist/lib/models/volumes/v4/config/CreateVolumeGroupApiResponse.d.ts +2 -43
  278. package/dist/lib/models/volumes/v4/config/CreateVolumeGroupApiResponse.js +187 -242
  279. package/dist/lib/models/volumes/v4/config/DeleteVolumeDiskApiResponse.d.ts +2 -43
  280. package/dist/lib/models/volumes/v4/config/DeleteVolumeDiskApiResponse.js +187 -242
  281. package/dist/lib/models/volumes/v4/config/DeleteVolumeGroupApiResponse.d.ts +2 -43
  282. package/dist/lib/models/volumes/v4/config/DeleteVolumeGroupApiResponse.js +187 -242
  283. package/dist/lib/models/volumes/v4/config/DetachIscsiClientApiResponse.d.ts +2 -43
  284. package/dist/lib/models/volumes/v4/config/DetachIscsiClientApiResponse.js +187 -242
  285. package/dist/lib/models/volumes/v4/config/DetachNvmfClientApiResponse.d.ts +2 -43
  286. package/dist/lib/models/volumes/v4/config/DetachNvmfClientApiResponse.js +187 -242
  287. package/dist/lib/models/volumes/v4/config/DetachVmApiResponse.d.ts +2 -43
  288. package/dist/lib/models/volumes/v4/config/DetachVmApiResponse.js +187 -242
  289. package/dist/lib/models/volumes/v4/config/DisassociateCategoryApiResponse.d.ts +2 -43
  290. package/dist/lib/models/volumes/v4/config/DisassociateCategoryApiResponse.js +187 -242
  291. package/dist/lib/models/volumes/v4/config/DiskStorageFeatures.d.ts +2 -12
  292. package/dist/lib/models/volumes/v4/config/DiskStorageFeatures.js +138 -177
  293. package/dist/lib/models/volumes/v4/config/FlashMode.d.ts +2 -7
  294. package/dist/lib/models/volumes/v4/config/FlashMode.js +140 -179
  295. package/dist/lib/models/volumes/v4/config/GetIscsiClientApiResponse.d.ts +2 -45
  296. package/dist/lib/models/volumes/v4/config/GetIscsiClientApiResponse.js +187 -242
  297. package/dist/lib/models/volumes/v4/config/GetNvmfClientApiResponse.d.ts +58 -0
  298. package/dist/lib/models/volumes/v4/config/GetNvmfClientApiResponse.js +288 -0
  299. package/dist/lib/models/volumes/v4/config/GetVolumeDiskApiResponse.d.ts +2 -43
  300. package/dist/lib/models/volumes/v4/config/GetVolumeDiskApiResponse.js +187 -242
  301. package/dist/lib/models/volumes/v4/config/GetVolumeGroupApiResponse.d.ts +2 -45
  302. package/dist/lib/models/volumes/v4/config/GetVolumeGroupApiResponse.js +187 -242
  303. package/dist/lib/models/volumes/v4/config/GetVolumeGroupMetadataApiResponse.d.ts +2 -43
  304. package/dist/lib/models/volumes/v4/config/GetVolumeGroupMetadataApiResponse.js +187 -242
  305. package/dist/lib/models/volumes/v4/config/HydrationStatus.d.ts +19 -0
  306. package/dist/lib/models/volumes/v4/config/HydrationStatus.js +89 -0
  307. package/dist/lib/models/volumes/v4/config/IscsiClient.d.ts +1 -53
  308. package/dist/lib/models/volumes/v4/config/IscsiClient.js +305 -365
  309. package/dist/lib/models/volumes/v4/config/IscsiClientAttachment.d.ts +2 -8
  310. package/dist/lib/models/volumes/v4/config/IscsiClientAttachment.js +171 -211
  311. package/dist/lib/models/volumes/v4/config/IscsiClientAttachmentProjection.d.ts +1 -67
  312. package/dist/lib/models/volumes/v4/config/IscsiClientAttachmentProjection.js +124 -164
  313. package/dist/lib/models/volumes/v4/config/IscsiClientProjection.d.ts +1 -60
  314. package/dist/lib/models/volumes/v4/config/IscsiClientProjection.js +165 -195
  315. package/dist/lib/models/volumes/v4/config/IscsiFeatures.d.ts +2 -8
  316. package/dist/lib/models/volumes/v4/config/IscsiFeatures.js +164 -205
  317. package/dist/lib/models/volumes/v4/config/ListCategoryAssociationsApiResponse.d.ts +2 -43
  318. package/dist/lib/models/volumes/v4/config/ListCategoryAssociationsApiResponse.js +209 -264
  319. package/dist/lib/models/volumes/v4/config/ListExternalIscsiAttachmentsApiResponse.d.ts +2 -43
  320. package/dist/lib/models/volumes/v4/config/ListExternalIscsiAttachmentsApiResponse.js +213 -268
  321. package/dist/lib/models/volumes/v4/config/ListIscsiClientsApiResponse.d.ts +2 -43
  322. package/dist/lib/models/volumes/v4/config/ListIscsiClientsApiResponse.js +213 -268
  323. package/dist/lib/models/volumes/v4/config/ListNvmfClientsApiResponse.d.ts +59 -0
  324. package/dist/lib/models/volumes/v4/config/ListNvmfClientsApiResponse.js +315 -0
  325. package/dist/lib/models/volumes/v4/config/ListVmAttachmentsApiResponse.d.ts +2 -43
  326. package/dist/lib/models/volumes/v4/config/ListVmAttachmentsApiResponse.js +213 -268
  327. package/dist/lib/models/volumes/v4/config/ListVolumeDisksApiResponse.d.ts +2 -43
  328. package/dist/lib/models/volumes/v4/config/ListVolumeDisksApiResponse.js +213 -268
  329. package/dist/lib/models/volumes/v4/config/ListVolumeGroupsApiResponse.d.ts +2 -43
  330. package/dist/lib/models/volumes/v4/config/ListVolumeGroupsApiResponse.js +213 -268
  331. package/dist/lib/models/volumes/v4/config/NvmfClient.d.ts +10 -27
  332. package/dist/lib/models/volumes/v4/config/NvmfClient.js +191 -238
  333. package/dist/lib/models/volumes/v4/config/NvmfClientAttachment.d.ts +4 -19
  334. package/dist/lib/models/volumes/v4/config/NvmfClientAttachment.js +129 -171
  335. package/dist/lib/models/volumes/v4/config/NvmfClientAttachmentProjection.d.ts +1 -40
  336. package/dist/lib/models/volumes/v4/config/NvmfClientAttachmentProjection.js +131 -172
  337. package/dist/lib/models/volumes/v4/config/NvmfClientProjection.d.ts +1 -25
  338. package/dist/lib/models/volumes/v4/config/NvmfClientProjection.js +142 -180
  339. package/dist/lib/models/volumes/v4/config/Protocol.js +8 -10
  340. package/dist/lib/models/volumes/v4/config/RevertSpec.d.ts +2 -7
  341. package/dist/lib/models/volumes/v4/config/RevertSpec.js +142 -181
  342. package/dist/lib/models/volumes/v4/config/RevertVolumeGroupApiResponse.d.ts +2 -43
  343. package/dist/lib/models/volumes/v4/config/RevertVolumeGroupApiResponse.js +187 -242
  344. package/dist/lib/models/volumes/v4/config/SharingStatus.js +7 -9
  345. package/dist/lib/models/volumes/v4/config/StorageFeatures.d.ts +2 -12
  346. package/dist/lib/models/volumes/v4/config/StorageFeatures.js +138 -177
  347. package/dist/lib/models/volumes/v4/config/TargetParam.d.ts +2 -8
  348. package/dist/lib/models/volumes/v4/config/TargetParam.js +169 -212
  349. package/dist/lib/models/volumes/v4/config/UpdateIscsiClientApiResponse.d.ts +2 -43
  350. package/dist/lib/models/volumes/v4/config/UpdateIscsiClientApiResponse.js +187 -242
  351. package/dist/lib/models/volumes/v4/config/UpdateVolumeDiskApiResponse.d.ts +2 -43
  352. package/dist/lib/models/volumes/v4/config/UpdateVolumeDiskApiResponse.js +187 -242
  353. package/dist/lib/models/volumes/v4/config/UpdateVolumeGroupApiResponse.d.ts +2 -43
  354. package/dist/lib/models/volumes/v4/config/UpdateVolumeGroupApiResponse.js +187 -242
  355. package/dist/lib/models/volumes/v4/config/UsageType.js +7 -9
  356. package/dist/lib/models/volumes/v4/config/VGAttachment.d.ts +48 -0
  357. package/dist/lib/models/volumes/v4/config/VGAttachment.js +253 -0
  358. package/dist/lib/models/volumes/v4/config/VmAttachment.d.ts +2 -8
  359. package/dist/lib/models/volumes/v4/config/VmAttachment.js +171 -210
  360. package/dist/lib/models/volumes/v4/config/VmAttachmentProjection.d.ts +1 -1
  361. package/dist/lib/models/volumes/v4/config/VmAttachmentProjection.js +74 -103
  362. package/dist/lib/models/volumes/v4/config/VolumeDisk.d.ts +1 -39
  363. package/dist/lib/models/volumes/v4/config/VolumeDisk.js +267 -320
  364. package/dist/lib/models/volumes/v4/config/VolumeDiskProjection.d.ts +1 -1
  365. package/dist/lib/models/volumes/v4/config/VolumeDiskProjection.js +74 -103
  366. package/dist/lib/models/volumes/v4/config/VolumeGroup.d.ts +23 -84
  367. package/dist/lib/models/volumes/v4/config/VolumeGroup.js +604 -603
  368. package/dist/lib/models/volumes/v4/config/VolumeGroupAttachmentSite.js +7 -9
  369. package/dist/lib/models/volumes/v4/config/VolumeGroupDelegateAccessSpec.d.ts +56 -0
  370. package/dist/lib/models/volumes/v4/config/VolumeGroupDelegateAccessSpec.js +267 -0
  371. package/dist/lib/models/volumes/v4/config/VolumeGroupMetadata.d.ts +2 -8
  372. package/dist/lib/models/volumes/v4/config/VolumeGroupMetadata.js +166 -209
  373. package/dist/lib/models/volumes/v4/config/VolumeGroupMetadataProjection.d.ts +1 -1
  374. package/dist/lib/models/volumes/v4/config/VolumeGroupMetadataProjection.js +74 -103
  375. package/dist/lib/models/volumes/v4/config/VolumeGroupProjection.d.ts +1 -98
  376. package/dist/lib/models/volumes/v4/config/VolumeGroupProjection.js +252 -248
  377. package/dist/lib/models/volumes/v4/error/AppMessage.d.ts +5 -15
  378. package/dist/lib/models/volumes/v4/error/AppMessage.js +265 -314
  379. package/dist/lib/models/volumes/v4/error/ErrorResponse.d.ts +2 -7
  380. package/dist/lib/models/volumes/v4/error/ErrorResponse.js +178 -227
  381. package/dist/lib/models/volumes/v4/error/SchemaValidationError.d.ts +2 -18
  382. package/dist/lib/models/volumes/v4/error/SchemaValidationError.js +249 -300
  383. package/dist/lib/models/volumes/v4/error/SchemaValidationErrorMessage.d.ts +2 -9
  384. package/dist/lib/models/volumes/v4/error/SchemaValidationErrorMessage.js +191 -234
  385. package/dist/lib/models/volumes/v4/stats/GetVolumeDiskStatsApiResponse.d.ts +2 -45
  386. package/dist/lib/models/volumes/v4/stats/GetVolumeDiskStatsApiResponse.js +187 -242
  387. package/dist/lib/models/volumes/v4/stats/GetVolumeGroupStatsApiResponse.d.ts +2 -43
  388. package/dist/lib/models/volumes/v4/stats/GetVolumeGroupStatsApiResponse.js +187 -242
  389. package/dist/lib/models/volumes/v4/stats/TimeValuePair.d.ts +2 -8
  390. package/dist/lib/models/volumes/v4/stats/TimeValuePair.js +166 -207
  391. package/dist/lib/models/volumes/v4/stats/VolumeDiskStats.d.ts +1 -86
  392. package/dist/lib/models/volumes/v4/stats/VolumeDiskStats.js +459 -551
  393. package/dist/lib/models/volumes/v4/stats/VolumeDiskStatsProjection.d.ts +1 -1
  394. package/dist/lib/models/volumes/v4/stats/VolumeDiskStatsProjection.js +74 -103
  395. package/dist/lib/models/volumes/v4/stats/VolumeGroupStats.d.ts +12 -86
  396. package/dist/lib/models/volumes/v4/stats/VolumeGroupStats.js +501 -551
  397. package/dist/lib/models/volumes/v4/stats/VolumeGroupStatsProjection.d.ts +1 -1
  398. package/dist/lib/models/volumes/v4/stats/VolumeGroupStatsProjection.js +74 -103
  399. package/dist/lib/utils/ValidationUtils.js +39 -69
  400. package/package.json +2 -2
  401. package/dist/es/models/volumes/v4/config/MigrateVolumeGroupApiResponse.d.ts +0 -99
  402. package/dist/es/models/volumes/v4/config/MigrateVolumeGroupApiResponse.js +0 -343
  403. package/dist/es/models/volumes/v4/config/PauseVolumeGroupSynchronousReplicationApiResponse.d.ts +0 -99
  404. package/dist/es/models/volumes/v4/config/PauseVolumeGroupSynchronousReplicationApiResponse.js +0 -343
  405. package/dist/es/models/volumes/v4/config/ResumeVolumeGroupSynchronousReplicationApiResponse.d.ts +0 -98
  406. package/dist/es/models/volumes/v4/config/ResumeVolumeGroupSynchronousReplicationApiResponse.js +0 -345
  407. package/dist/es/models/volumes/v4/config/UpdateIscsiClientByIdApiResponse.d.ts +0 -99
  408. package/dist/es/models/volumes/v4/config/UpdateIscsiClientByIdApiResponse.js +0 -343
  409. package/dist/es/models/volumes/v4/config/UpdateVolumeDiskByIdApiResponse.d.ts +0 -99
  410. package/dist/es/models/volumes/v4/config/UpdateVolumeDiskByIdApiResponse.js +0 -343
  411. package/dist/es/models/volumes/v4/config/UpdateVolumeGroupByIdApiResponse.d.ts +0 -99
  412. package/dist/es/models/volumes/v4/config/UpdateVolumeGroupByIdApiResponse.js +0 -343
  413. package/dist/es/models/volumes/v4/config/UpdateVolumeGroupMetadataApiResponse.d.ts +0 -98
  414. package/dist/es/models/volumes/v4/config/UpdateVolumeGroupMetadataApiResponse.js +0 -345
  415. package/dist/es/models/volumes/v4/config/UpdateVolumeGroupMetadataInfoApiResponse.d.ts +0 -98
  416. package/dist/es/models/volumes/v4/config/UpdateVolumeGroupMetadataInfoApiResponse.js +0 -345
  417. package/dist/lib/models/volumes/v4/config/MigrateVolumeGroupApiResponse.d.ts +0 -99
  418. package/dist/lib/models/volumes/v4/config/MigrateVolumeGroupApiResponse.js +0 -343
  419. package/dist/lib/models/volumes/v4/config/PauseVolumeGroupSynchronousReplicationApiResponse.d.ts +0 -99
  420. package/dist/lib/models/volumes/v4/config/PauseVolumeGroupSynchronousReplicationApiResponse.js +0 -343
  421. package/dist/lib/models/volumes/v4/config/ResumeVolumeGroupSynchronousReplicationApiResponse.d.ts +0 -98
  422. package/dist/lib/models/volumes/v4/config/ResumeVolumeGroupSynchronousReplicationApiResponse.js +0 -345
  423. package/dist/lib/models/volumes/v4/config/UpdateIscsiClientByIdApiResponse.d.ts +0 -99
  424. package/dist/lib/models/volumes/v4/config/UpdateIscsiClientByIdApiResponse.js +0 -343
  425. package/dist/lib/models/volumes/v4/config/UpdateVolumeDiskByIdApiResponse.d.ts +0 -99
  426. package/dist/lib/models/volumes/v4/config/UpdateVolumeDiskByIdApiResponse.js +0 -343
  427. package/dist/lib/models/volumes/v4/config/UpdateVolumeGroupByIdApiResponse.d.ts +0 -99
  428. package/dist/lib/models/volumes/v4/config/UpdateVolumeGroupByIdApiResponse.js +0 -343
  429. package/dist/lib/models/volumes/v4/config/UpdateVolumeGroupMetadataApiResponse.d.ts +0 -98
  430. package/dist/lib/models/volumes/v4/config/UpdateVolumeGroupMetadataApiResponse.js +0 -345
  431. package/dist/lib/models/volumes/v4/config/UpdateVolumeGroupMetadataInfoApiResponse.d.ts +0 -98
  432. package/dist/lib/models/volumes/v4/config/UpdateVolumeGroupMetadataInfoApiResponse.js +0 -345
@@ -9,28 +9,13 @@ var _Paginable = _interopRequireDefault(require("./Paginable"));
9
9
  var _uuid = require("uuid");
10
10
  var _superagentRetryDelay = _interopRequireDefault(require("superagent-retry-delay"));
11
11
  var _https = _interopRequireDefault(require("https"));
12
- var _fs2 = _interopRequireDefault(require("fs"));
12
+ var _fs = _interopRequireDefault(require("fs"));
13
13
  var _path = _interopRequireDefault(require("path"));
14
14
  var _buffer = require("buffer");
15
15
  var _ApiResponseMetadata = _interopRequireDefault(require("./models/common/v1/response/ApiResponseMetadata"));
16
16
  var _Flag = _interopRequireDefault(require("./models/common/v1/config/Flag"));
17
17
  var _ApiClient;
18
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
19
- function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(e, r) { return new BabelRegExp(e, void 0, r); }; var e = RegExp.prototype, r = new WeakMap(); function BabelRegExp(e, t, p) { var o = RegExp(e, t); return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype); } function buildGroups(e, t) { var p = r.get(t); return Object.keys(p).reduce(function (r, t) { var o = p[t]; if ("number" == typeof o) r[t] = e[o];else { for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++; r[t] = e[o[i]]; } return r; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) { var t = e.exec.call(this, r); if (t) { t.groups = buildGroups(t, this); var p = t.indices; p && (p.groups = buildGroups(p, this)); } return t; }, BabelRegExp.prototype[Symbol.replace] = function (t, p) { if ("string" == typeof p) { var o = r.get(this); return e[Symbol.replace].call(this, t, p.replace(/\$<([^>]+)>/g, function (e, r) { var t = o[r]; return "$" + (Array.isArray(t) ? t.join("$") : t); })); } if ("function" == typeof p) { var i = this; return e[Symbol.replace].call(this, t, function () { var e = arguments; return "object" != _typeof(e[e.length - 1]) && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e); }); } return e[Symbol.replace].call(this, t, p); }, _wrapRegExp.apply(this, arguments); }
20
- function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
21
- function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
22
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
25
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
26
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
27
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
28
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
29
- function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
30
- function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
31
- function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
32
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
33
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
34
19
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
35
20
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
36
21
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -39,22 +24,22 @@ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a),
39
24
  function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); } /*
40
25
  * Nutanix Volumes APIs
41
26
  *
42
- * OpenAPI spec version: 4.0.1
27
+ * OpenAPI spec version: 4.2.1
43
28
  *
44
29
  * NOTE: This class is auto generated by the Open API Dev Platform.
45
30
  *
46
- * Open API Dev Platform Codegen version: 16.9.0.8546-RELEASE
31
+ * Open API Dev Platform Codegen version: 17.5.0.10128-RELEASE
47
32
  *
48
33
  * Do not edit the class manually.
49
34
  *
50
35
  */
51
- (0, _superagentRetryDelay["default"])(_superagent["default"]);
36
+ (0, _superagentRetryDelay.default)(_superagent.default);
52
37
  /**
53
38
  * Manages low level client-server communications, parameter marshalling, etc. There should not be any need for an
54
39
  * application to use this class directly - the *Api and model classes provide the public API for the service. The
55
40
  * contents of this file should be regarded as internal but are documented for completeness.
56
41
  * @module ApiClient
57
- * @version 4.0.1
42
+ * @version 4.2.1
58
43
  */
59
44
  var _protocol = /*#__PURE__*/new WeakMap();
60
45
  var _cookie = /*#__PURE__*/new WeakMap();
@@ -63,15 +48,17 @@ var _verifySslFlag = /*#__PURE__*/new WeakMap();
63
48
  var _defaultConnectTimeout = /*#__PURE__*/new WeakMap();
64
49
  var _defaultReadTimeout = /*#__PURE__*/new WeakMap();
65
50
  var _defaultMaxTimeout = /*#__PURE__*/new WeakMap();
51
+ var _host = /*#__PURE__*/new WeakMap();
52
+ var _negotiationCompleted = /*#__PURE__*/new WeakMap();
53
+ var _negotiatedVersion = /*#__PURE__*/new WeakMap();
66
54
  var _LOG_LEVEL = /*#__PURE__*/new WeakMap();
67
55
  var _ApiClient_brand = /*#__PURE__*/new WeakSet();
68
- var ApiClient = exports.ApiClient = /*#__PURE__*/function () {
56
+ class ApiClient {
69
57
  /**
70
58
  * @alias module:ApiClient
71
59
  * @class
72
60
  */
73
- function ApiClient() {
74
- _classCallCheck(this, ApiClient);
61
+ constructor() {
75
62
  /*
76
63
  * Checks whether the given content type represents JSON.<br>
77
64
  * JSON content type examples:<br>
@@ -92,6 +79,9 @@ var ApiClient = exports.ApiClient = /*#__PURE__*/function () {
92
79
  _classPrivateFieldInitSpec(this, _defaultConnectTimeout, void 0);
93
80
  _classPrivateFieldInitSpec(this, _defaultReadTimeout, void 0);
94
81
  _classPrivateFieldInitSpec(this, _defaultMaxTimeout, void 0);
82
+ _classPrivateFieldInitSpec(this, _host, void 0);
83
+ _classPrivateFieldInitSpec(this, _negotiationCompleted, void 0);
84
+ _classPrivateFieldInitSpec(this, _negotiatedVersion, void 0);
95
85
  _classPrivateFieldInitSpec(this, _LOG_LEVEL, void 0);
96
86
  _classPrivateFieldSet(_LOG_LEVEL, this, Object.freeze({
97
87
  DEBUG: {
@@ -124,7 +114,7 @@ var ApiClient = exports.ApiClient = /*#__PURE__*/function () {
124
114
  * @type {String}
125
115
  * @default localhost
126
116
  */
127
- this.host = typeof self === 'undefined' ? 'localhost' : self.location.hostname;
117
+ _classPrivateFieldSet(_host, this, typeof self === 'undefined' ? 'localhost' : self.location.hostname);
128
118
 
129
119
  /**
130
120
  * The port of the base URL.
@@ -207,14 +197,28 @@ var ApiClient = exports.ApiClient = /*#__PURE__*/function () {
207
197
  * @default 3000
208
198
  */
209
199
  this.retryInterval = 3000;
200
+
201
+ /**
202
+ * A boolean value that indicates whether cross-site Access-Control requests should be made using auth credentials.
203
+ * @type {Boolean}
204
+ * @default false
205
+ */
206
+ this.withCredentials = false;
210
207
  if (typeof self === 'undefined') {
211
- this.agent = new _superagent["default"].agent();
208
+ this.agent = new _superagent.default.agent();
212
209
  }
213
210
 
214
211
  /**
215
212
  * Allow user to override superagent agent
216
213
  */
217
214
  this.requestAgent = null;
215
+ _classPrivateFieldSet(_negotiatedVersion, this, null);
216
+
217
+ /**
218
+ * Allow SDK to fetch version info and negotiate version
219
+ */
220
+ this.allowVersionNegotiation = true;
221
+ _classPrivateFieldSet(_negotiationCompleted, this, false);
218
222
 
219
223
  /**
220
224
  * Allow SDK to print debug logs
@@ -249,643 +253,683 @@ var ApiClient = exports.ApiClient = /*#__PURE__*/function () {
249
253
  * Enable/Disable SSL Verification
250
254
  * @param verifySsl (boolean)
251
255
  */
252
- return _createClass(ApiClient, [{
253
- key: "verifySsl",
254
- get: function get() {
255
- return _classPrivateFieldGet(_verifySslFlag, this);
256
- }
256
+ set verifySsl(verifySsl) {
257
+ this.requestAgent = verifySsl ? null : new _https.default.Agent({
258
+ rejectUnauthorized: verifySsl
259
+ });
260
+ _classPrivateFieldSet(_verifySslFlag, this, verifySsl);
261
+ }
262
+ get verifySsl() {
263
+ return _classPrivateFieldGet(_verifySslFlag, this);
264
+ }
257
265
 
258
- /**
259
- * Configure log file to write activity logs
260
- * @param logfile The destination file (write stream / string)
261
- */,
262
- set: function set(verifySsl) {
263
- if (verifySsl) {
264
- this.requestAgent = null;
265
- } else {
266
- this.requestAgent = new _https["default"].Agent({
267
- rejectUnauthorized: false
266
+ /**
267
+ * Set the hostname for base URL
268
+ * @param {String} hostname the hostname
269
+ */
270
+ set host(hostname) {
271
+ _classPrivateFieldSet(_host, this, hostname);
272
+ // Reset negotiation flags when host changes
273
+ _classPrivateFieldSet(_negotiationCompleted, this, false);
274
+ _classPrivateFieldSet(_negotiatedVersion, this, null);
275
+ }
276
+
277
+ /**
278
+ * Get the hostname for base URL
279
+ * @returns {String} the hostname
280
+ */
281
+ get host() {
282
+ return _classPrivateFieldGet(_host, this);
283
+ }
284
+
285
+ /**
286
+ * Configure log file to write activity logs
287
+ * @param logfile The destination file (write stream / string)
288
+ */
289
+ set loggerFile(logfile) {
290
+ if (logfile !== null && typeof logfile !== 'undefined') {
291
+ if (typeof logfile === 'string' || logfile instanceof String) {
292
+ logfile = _fs.default.createWriteStream(logfile, {
293
+ flags: 'a'
268
294
  });
269
295
  }
270
- _classPrivateFieldSet(_verifySslFlag, this, verifySsl);
296
+ _classPrivateFieldSet(_logger, this, new console.Console({
297
+ stdout: logfile,
298
+ stderr: logfile
299
+ }));
271
300
  }
272
- }, {
273
- key: "loggerFile",
274
- set: function set(logfile) {
275
- if (logfile !== null && typeof logfile !== 'undefined') {
276
- if (typeof logfile === 'string' || logfile instanceof String) {
277
- logfile = _fs2["default"].createWriteStream(logfile, {
278
- flags: 'a'
279
- });
280
- }
281
- _classPrivateFieldSet(_logger, this, new console.Console({
282
- stdout: logfile,
283
- stderr: logfile
284
- }));
285
- }
301
+ }
302
+
303
+ /**
304
+ * Adds key value pair to default headers map, (to be added to every API call request)
305
+ * @param {String} key The key
306
+ * @param {String} value The corresponding value
307
+ */
308
+ addDefaultHeader(key, value) {
309
+ if (key === "Authorization") {
310
+ _classPrivateFieldSet(_cookie, this, null);
286
311
  }
312
+ this.defaultHeaders[key] = value;
313
+ }
287
314
 
288
- /**
289
- * Adds key value pair to default headers map, (to be added to every API call request)
290
- * @param {String} key The key
291
- * @param {String} value The corresponding value
292
- */
293
- }, {
294
- key: "addDefaultHeader",
295
- value: function addDefaultHeader(key, value) {
296
- if (key === "Authorization") {
297
- _classPrivateFieldSet(_cookie, this, null);
298
- }
299
- this.defaultHeaders[key] = value;
315
+ /*
316
+ * Returns a string representation for an actual parameter.
317
+ * @param param The actual parameter.
318
+ * @returns {String} The string representation of <code>param</code>.
319
+ */
320
+ paramToString(param) {
321
+ if (param == undefined || param == null) {
322
+ return '';
323
+ }
324
+ if (param instanceof Date) {
325
+ return param.toJSON();
326
+ }
327
+ return param.toString();
328
+ }
329
+ buildUrl(path, pathParams) {
330
+ if (!path.match(/^\//)) {
331
+ path = '/' + path;
332
+ }
333
+ if (typeof _classPrivateFieldGet(_negotiatedVersion, this) !== 'undefined' && _classPrivateFieldGet(_negotiatedVersion, this) !== null && _classPrivateFieldGet(_negotiatedVersion, this).match(/v\d+\.\d+(\.[a|b]\d+)?/) !== null && _classPrivateFieldGet(_negotiatedVersion, this) !== "v4.2") {
334
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Changing uri", path, "to negotiated version", _classPrivateFieldGet(_negotiatedVersion, this));
335
+ var uriRegExp = new RegExp("(?<=/[-\\w]+/)v\\d+\\.\\d+(\\.[a|b]\\d+)?(?=/.*)", "i");
336
+ path = path.replace(uriRegExp, _classPrivateFieldGet(_negotiatedVersion, this));
300
337
  }
301
338
 
302
- /*
303
- * Returns a string representation for an actual parameter.
304
- * @param param The actual parameter.
305
- * @returns {String} The string representation of <code>param</code>.
306
- */
307
- }, {
308
- key: "paramToString",
309
- value: function paramToString(param) {
310
- if (param == undefined || param == null) {
311
- return '';
312
- }
313
- if (param instanceof Date) {
314
- return param.toJSON();
315
- }
316
- return param.toString();
339
+ // The protocol of the base URL, including the colon (:).
340
+ _classPrivateFieldSet(_protocol, this, typeof self === 'undefined' ? this.scheme + ':' : self.location.protocol);
341
+ let basePath = ''; //default
342
+ if (_classPrivateFieldGet(_protocol, this) !== '' && this.host !== '' && this.port !== '') {
343
+ basePath = _classPrivateFieldGet(_protocol, this) + '\/\/' + this.host + ':' + this.port;
344
+ } else if (typeof self !== "undefined") {
345
+ basePath = self.origin;
317
346
  }
318
- }, {
319
- key: "buildUrl",
320
- value: function buildUrl(path, pathParams) {
321
- var _this = this;
322
- if (!path.match(/^\//)) {
323
- path = '/' + path;
347
+ var url = basePath + path;
348
+ url = url.replace(/\{([\w-]+)\}/g, (fullMatch, key) => {
349
+ var value;
350
+ if (pathParams.hasOwnProperty(key)) {
351
+ value = this.paramToString(pathParams[key]);
352
+ } else {
353
+ value = fullMatch;
324
354
  }
355
+ return encodeURIComponent(value);
356
+ });
357
+ return url;
358
+ }
359
+ /*
360
+ * Builds a string representation of an array-type actual parameter, according to the given collection format.
361
+ * @param {Array} param An array parameter.
362
+ * @param {module:ApiClient.CollectionFormatEnum} collectionFormat The array element separator strategy.
363
+ * @returns {String|Array} A string representation of the supplied collection, using the specified delimiter. Returns
364
+ * <code>param</code> as is if <code>collectionFormat</code> is <code>multi</code>.
365
+ */
366
+ buildCollectionParam(param, collectionFormat) {
367
+ if (param == null) {
368
+ return null;
369
+ }
370
+ switch (collectionFormat) {
371
+ case 'csv':
372
+ return param.map(this.paramToString).join(',');
373
+ case 'ssv':
374
+ return param.map(this.paramToString).join(' ');
375
+ case 'tsv':
376
+ return param.map(this.paramToString).join('\t');
377
+ case 'pipes':
378
+ return param.map(this.paramToString).join('|');
379
+ case 'multi':
380
+ //return the array directly as SuperAgent will handle it as expected
381
+ return param.map(this.paramToString);
382
+ default:
383
+ throw new Error('Unknown collection format: ' + collectionFormat);
384
+ }
385
+ }
325
386
 
326
- // The protocol of the base URL, including the colon (:).
327
- _classPrivateFieldSet(_protocol, this, typeof self === 'undefined' ? this.scheme + ':' : self.location.protocol);
328
- var basePath = ''; //default
329
- if (_classPrivateFieldGet(_protocol, this) !== '' && this.host !== '' && this.port !== '') {
330
- basePath = _classPrivateFieldGet(_protocol, this) + '\/\/' + this.host + ':' + this.port;
331
- } else if (typeof self !== "undefined") {
332
- basePath = self.origin;
333
- }
334
- var url = basePath + path;
335
- url = url.replace(/\{([\w-]+)\}/g, function (fullMatch, key) {
336
- var value;
337
- if (pathParams.hasOwnProperty(key)) {
338
- value = _this.paramToString(pathParams[key]);
339
- } else {
340
- value = fullMatch;
341
- }
342
- return encodeURIComponent(value);
343
- });
344
- return url;
387
+ /*
388
+ * Sets API key for authentication
389
+ *
390
+ * @param {String} key The API key for authentication
391
+ */
392
+ setApiKey(key) {
393
+ if (key == undefined || typeof key === 'string' || key instanceof String) {
394
+ this.authentications['apiKeyAuthScheme']['apiKey'] = key;
395
+ } else {
396
+ this.authentications['apiKeyAuthScheme']['apiKey'] = undefined;
345
397
  }
346
- }, {
347
- key: "buildCollectionParam",
348
- value:
349
- /*
350
- * Builds a string representation of an array-type actual parameter, according to the given collection format.
351
- * @param {Array} param An array parameter.
352
- * @param {module:ApiClient.CollectionFormatEnum} collectionFormat The array element separator strategy.
353
- * @returns {String|Array} A string representation of the supplied collection, using the specified delimiter. Returns
354
- * <code>param</code> as is if <code>collectionFormat</code> is <code>multi</code>.
355
- */
356
- function buildCollectionParam(param, collectionFormat) {
357
- if (param == null) {
358
- return null;
359
- }
360
- switch (collectionFormat) {
361
- case 'csv':
362
- return param.map(this.paramToString).join(',');
363
- case 'ssv':
364
- return param.map(this.paramToString).join(' ');
365
- case 'tsv':
366
- return param.map(this.paramToString).join('\t');
367
- case 'pipes':
368
- return param.map(this.paramToString).join('|');
369
- case 'multi':
370
- //return the array directly as SuperAgent will handle it as expected
371
- return param.map(this.paramToString);
372
- default:
373
- throw new Error('Unknown collection format: ' + collectionFormat);
398
+ }
399
+
400
+ /*
401
+ * Applies authentication headers to the request.
402
+ * @param {Object} request The request object created by a <code>superagent()</code> call.
403
+ * @param {Array.<String>} authNames An array of authentication method names.
404
+ */
405
+
406
+ addEtagToReservedMap(response, data) {
407
+ if (response.hasOwnProperty("headers") && response.headers.hasOwnProperty("etag")) {
408
+ let etagRef = response.headers.etag;
409
+ if (data.getData() !== undefined) {
410
+ if (Array.isArray(data.getData()) && data.getData().length > 0) {
411
+ for (var item of data.getData()) {
412
+ if (item.hasOwnProperty("$reserved") && item.get$Reserved() !== undefined) {
413
+ item.get$Reserved()["ETag"] = etagRef;
414
+ }
415
+ }
416
+ } else if (data.getData().hasOwnProperty("$reserved") && data.getData().get$Reserved() !== undefined) {
417
+ data.getData().get$Reserved()["ETag"] = etagRef;
418
+ }
374
419
  }
375
420
  }
421
+ return data;
422
+ }
376
423
 
377
- /*
378
- * Sets API key for authentication
379
- *
380
- * @param {String} key The API key for authentication
381
- */
382
- }, {
383
- key: "setApiKey",
384
- value: function setApiKey(key) {
385
- if (key == undefined || typeof key === 'string' || key instanceof String) {
386
- this.authentications['apiKeyAuthScheme']['apiKey'] = key;
387
- } else {
388
- this.authentications['apiKeyAuthScheme']['apiKey'] = undefined;
424
+ /**
425
+ * Get ETag from an object if exists.
426
+ * The ETag is usually provided in the response of the GET API calls,
427
+ * which can further be used in other HTTP operations.
428
+ *
429
+ * @param object Object from which ETag needs to be retrieved
430
+ * @returns {(String|null)} returns ETag header in the object if it's an API response object, otherwise null
431
+ */
432
+ static getEtag(object) {
433
+ let etag = null;
434
+ if (object !== undefined) {
435
+ if (object.hasOwnProperty('$reserved') && object.get$Reserved() !== undefined) {
436
+ etag = this.getValueForCaseInsensitiveKeyMatch(object.get$Reserved(), 'ETag');
437
+ }
438
+ if (etag == null && object.hasOwnProperty("data") && object.getData().hasOwnProperty('$reserved') && object.getData().get$Reserved() !== undefined) {
439
+ etag = this.getValueForCaseInsensitiveKeyMatch(object.getData().get$Reserved(), 'ETag');
389
440
  }
390
441
  }
442
+ return etag;
443
+ }
444
+ static getValueForCaseInsensitiveKeyMatch(object, key) {
445
+ if (object && key) {
446
+ const searchKey = key.toLowerCase();
447
+ const matchedKey = Object.keys(object).find(key => key.toLowerCase() === searchKey);
448
+ return matchedKey ? object[matchedKey] : null;
449
+ }
450
+ return null;
451
+ }
391
452
 
392
- /*
393
- * Applies authentication headers to the request.
394
- * @param {Object} request The request object created by a <code>superagent()</code> call.
395
- * @param {Array.<String>} authNames An array of authentication method names.
396
- */
397
- }, {
398
- key: "addEtagToReservedMap",
399
- value: function addEtagToReservedMap(response, data) {
400
- if (response.hasOwnProperty("headers") && response.headers.hasOwnProperty("etag")) {
401
- var etagRef = response.headers.etag;
402
- if (data.getData() !== undefined) {
403
- if (Array.isArray(data.getData()) && data.getData().length > 0) {
404
- var _iterator = _createForOfIteratorHelper(data.getData()),
405
- _step;
406
- try {
407
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
408
- var item = _step.value;
409
- if (item.hasOwnProperty("$reserved") && item.get$Reserved() !== undefined) {
410
- item.get$Reserved()["ETag"] = etagRef;
411
- }
412
- }
413
- } catch (err) {
414
- _iterator.e(err);
415
- } finally {
416
- _iterator.f();
453
+ /**
454
+ * Get SDK's negotiated version.
455
+ * @returns {String} negotiated version.
456
+ */
457
+ getNegotiatedVersion() {
458
+ return _classPrivateFieldGet(_negotiatedVersion, this);
459
+ }
460
+ /**
461
+ * Call relevant options api and negotiate version
462
+ * Negotiated version available via getNegotiatedVersion()
463
+ * @param {ApiClient} selfInstance
464
+ * @param {Array.<String>} authNames An array of allowed authentication type names i.e. basicAuthScheme
465
+ * @returns {Promise<ApiClient>} a {@link https://www.promisejs.org/|Promise}
466
+ */
467
+ negotiateVersion(selfInstance, authNames) {
468
+ return new Promise(resolve => {
469
+ if (this.allowVersionNegotiation === true && _classPrivateFieldGet(_negotiationCompleted, this) === false) {
470
+ this.callApiInternal('/api/volumes/unversioned/info', 'OPTIONS', {}, {}, {}, {}, null, authNames, [], ['application/json'], Object).then(({
471
+ data,
472
+ response
473
+ }) => {
474
+ if (response.status === 200 && data.hasOwnProperty("data") && data.data !== null) {
475
+ const serverVersion = data.data;
476
+ const minimumSupportedVersion = "v4.2";
477
+
478
+ // Check if server version is below minimum supported version
479
+ if (_assertClassBrand(_ApiClient_brand, this, _isSmallerMinorVersion).call(this, _assertClassBrand(_ApiClient_brand, this, _getVersionDetails).call(this, serverVersion), _assertClassBrand(_ApiClient_brand, this, _getVersionDetails).call(this, minimumSupportedVersion))) {
480
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).WARN, null, "Server version", serverVersion, "is below minimum supported version", minimumSupportedVersion, ". Version negotiation will not be performed.");
481
+ _classPrivateFieldSet(_negotiatedVersion, this, null);
482
+ _classPrivateFieldSet(_negotiationCompleted, this, false);
483
+ resolve(selfInstance);
484
+ return;
417
485
  }
418
- } else if (data.getData().hasOwnProperty("$reserved") && data.getData().get$Reserved() !== undefined) {
419
- data.getData().get$Reserved()["ETag"] = etagRef;
486
+ _classPrivateFieldSet(_negotiatedVersion, this, _assertClassBrand(_ApiClient_brand, this, _performNegotiationBetweenVersions).call(this, "v4.2", serverVersion));
487
+ _classPrivateFieldSet(_negotiationCompleted, this, true);
488
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Negotiated Version with server :", _classPrivateFieldGet(_negotiatedVersion, this));
489
+ resolve(selfInstance);
490
+ } else {
491
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Could not fetch supported versions from server");
492
+ _classPrivateFieldSet(_negotiatedVersion, this, null);
493
+ _classPrivateFieldSet(_negotiationCompleted, this, false);
494
+ resolve(selfInstance);
420
495
  }
421
- }
496
+ }).catch(error => {
497
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Could not fetch supported versions from server");
498
+ _classPrivateFieldSet(_negotiatedVersion, this, null);
499
+ _classPrivateFieldSet(_negotiationCompleted, this, false);
500
+ resolve(selfInstance);
501
+ });
502
+ } else {
503
+ resolve(selfInstance);
422
504
  }
423
- return data;
424
- }
505
+ });
506
+ }
425
507
 
426
- /**
427
- * Get ETag from an object if exists.
428
- * The ETag is usually provided in the response of the GET API calls,
429
- * which can further be used in other HTTP operations.
430
- *
431
- * @param object Object from which ETag needs to be retrieved
432
- * @returns {(String|null)} returns ETag header in the object if it's an API response object, otherwise null
433
- */
434
- }, {
435
- key: "callApi",
436
- value:
437
- /**
438
- * Invokes the REST service using the supplied settings and parameters.
439
- * @param {String} path The base URL to invoke.
440
- * @param {String} httpMethod The HTTP method to use.
441
- * @param {Object.<String, String>} pathParams A map of path parameters and their values.
442
- * @param {Object.<String, Object>} queryParams A map of query parameters and their values.
443
- * @param {Object.<String, Object>} headerParams A map of header parameters and their values.
444
- * @param {Object.<String, Object>} formParams A map of form parameters and their values.
445
- * @param {Object} bodyParam The value to pass as the request body.
446
- * @param {Array.<String>} authNames An array of authentication type names.
447
- * @param {Array.<String>} contentTypes An array of request MIME types.
448
- * @param {Array.<String>} accepts An array of acceptable response MIME types.
449
- * @param {(String|Array|Object|Function)} returnType The required type to return; can be a string for simple types or the
450
- * constructor for a complex type.
451
- * @returns {Promise} A {@link https://www.promisejs.org/|Promise} object.
452
- */
453
- function callApi(path, httpMethod, pathParams, queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, returnType) {
454
- var _this2 = this;
455
- var url = this.buildUrl(path, pathParams);
456
- var request = (0, _superagent["default"])(httpMethod, url);
508
+ // Gets a valid timeout
509
+ // 1. Sets to provided default timeout in case invalid value is passed
510
+ // 2. Sets to default max value of 30 minutes in case a value of more than 30 minutes is passed
457
511
 
458
- // override request callback to retry only required status codes
459
- request.oldCallback = request.callback;
460
- request.callback = function (err, res) {
461
- if (res && res.status) {
462
- var status = res.status;
463
- if (status >= 400 && !(status === 401 || status === 408 || status === 429 || status === 503 || status === 504)) {
464
- this._maxRetries = 0;
512
+ /**
513
+ * Invokes the REST service using the supplied settings and parameters.
514
+ * @param {String} path The base URL to invoke.
515
+ * @param {String} httpMethod The HTTP method to use.
516
+ * @param {Object.<String, String>} pathParams A map of path parameters and their values.
517
+ * @param {Object.<String, Object>} queryParams A map of query parameters and their values.
518
+ * @param {Object.<String, Object>} headerParams A map of header parameters and their values.
519
+ * @param {Object.<String, Object>} formParams A map of form parameters and their values.
520
+ * @param {Object} bodyParam The value to pass as the request body.
521
+ * @param {Array.<String>} authNames An array of authentication type names.
522
+ * @param {Array.<String>} contentTypes An array of request MIME types.
523
+ * @param {Array.<String>} accepts An array of acceptable response MIME types.
524
+ * @param {(String|Array|Object|Function)} returnType The required type to return; can be a string for simple types or the
525
+ * constructor for a complex type.
526
+ * @returns {Promise} A {@link https://www.promisejs.org/|Promise} object.
527
+ */
528
+ callApi(path, httpMethod, pathParams, queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, returnType) {
529
+ return this.negotiateVersion(this, authNames).then(function (selfInstance) {
530
+ return selfInstance.callApiInternal(path, httpMethod, pathParams, queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, returnType);
531
+ });
532
+ }
533
+ callApiInternal(path, httpMethod, pathParams, queryParams, headerParams, formParams, bodyParam, authNames, contentTypes, accepts, returnType) {
534
+ var url = this.buildUrl(path, pathParams);
535
+ const isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
536
+ let binaryMediaTypes = ['application/octet-stream', 'application/pdf', 'application/zip'];
537
+ if (accepts && accepts.length > 0 && accepts.some(accept => binaryMediaTypes.includes(accept)) && isBrowser && this.downloadDestination) {
538
+ return new Promise((resolve, reject) => {
539
+ // Prepare request for browser download
540
+ const fetchParams = _assertClassBrand(_ApiClient_brand, this, _prepareDownloadBrowserParams).call(this, url, httpMethod, queryParams, headerParams, bodyParam, authNames, contentTypes, accepts);
541
+ fetch(fetchParams.url, fetchParams.options).then(response => {
542
+ if (!response.ok) {
543
+ const err = new Error(`HTTP error ${response.status}`);
544
+ err.status = response.status;
545
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Error downloading file:", err);
546
+ reject(err);
465
547
  }
466
- if (res.status === 401) {
467
- this.unset("Cookie");
468
- this._maxRetries = 1;
548
+ if (!(this.downloadDestination instanceof WritableStream)) {
549
+ let errMsg = "Incompatible downloadDestination for Browser Environment, must be WritableStream";
550
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, errMsg);
551
+ reject(errMsg);
469
552
  }
470
- if (status === 429) {
471
- var retryAfter = res.headers['retry-after'];
472
- if (retryAfter) {
473
- var delay = parseInt(retryAfter, 10) * 1000;
474
- this._retryDelays[this._retries] = delay;
475
- }
553
+ const reader = response.body.getReader();
554
+ const writer = this.downloadDestination.getWriter();
555
+ const pump = () => {
556
+ return reader.read().then(({
557
+ done,
558
+ value
559
+ }) => {
560
+ if (done) {
561
+ writer.close();
562
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Finished streaming response");
563
+ resolve({
564
+ data: {},
565
+ response
566
+ });
567
+ }
568
+ return writer.write(value).then(pump);
569
+ });
570
+ };
571
+ return pump();
572
+ }).catch(error => {
573
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Caught the following error :", error);
574
+ reject(error);
575
+ });
576
+ });
577
+ }
578
+ var request = (0, _superagent.default)(httpMethod, url);
579
+
580
+ // override request callback to retry only required status codes
581
+ request.oldCallback = request.callback;
582
+ request.callback = function (err, res) {
583
+ if (res && res.status) {
584
+ const status = res.status;
585
+ if (status >= 400 && !(status === 408 || status === 429 || status === 503 || status === 504)) {
586
+ this._maxRetries = 0;
587
+ }
588
+ if (res.status === 401 && this.header["Cookie"]) {
589
+ this.unset("Cookie");
590
+ this._maxRetries = 1;
591
+ }
592
+ if (status === 429) {
593
+ let retryAfter = res.headers['retry-after'];
594
+ if (retryAfter) {
595
+ let delay = parseInt(retryAfter, 10) * 1000;
596
+ this._retryDelays[this._retries] = delay;
476
597
  }
477
598
  }
478
- this.oldCallback(err, res);
479
- };
599
+ }
600
+ this.oldCallback(err, res);
601
+ };
480
602
 
481
- // apply authentications
482
- _assertClassBrand(_ApiClient_brand, this, _applyAuthToRequest).call(this, request, authNames);
603
+ // apply authentications
604
+ _assertClassBrand(_ApiClient_brand, this, _applyAuthToRequest).call(this, request, authNames);
483
605
 
484
- // set query parameters
485
- if (httpMethod.toUpperCase() === 'GET' && this.cache === false) {
486
- queryParams['_'] = new Date().getTime();
487
- }
488
- request.query(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, queryParams));
606
+ // set query parameters
607
+ if (httpMethod.toUpperCase() === 'GET' && this.cache === false) {
608
+ queryParams['_'] = new Date().getTime();
609
+ }
610
+ request.query(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, queryParams));
489
611
 
490
- // set header parameters
491
- request.set(this.defaultHeaders).set(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, headerParams));
492
- if ((this.defaultHeaders['NTNX-Request-Id'] === null || this.defaultHeaders['NTNX-Request-Id'] === undefined) && (headerParams['NTNX-Request-Id'] === null || headerParams['NTNX-Request-Id'] === undefined)) {
493
- var requestId = (0, _uuid.v4)();
494
- request.set(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, {
495
- 'NTNX-Request-Id': requestId
496
- }));
497
- }
612
+ // set header parameters
613
+ request.set(this.defaultHeaders).set(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, headerParams));
614
+ if ((this.defaultHeaders['NTNX-Request-Id'] === null || this.defaultHeaders['NTNX-Request-Id'] === undefined) && (headerParams['NTNX-Request-Id'] === null || headerParams['NTNX-Request-Id'] === undefined)) {
615
+ let requestId = (0, _uuid.v4)();
616
+ request.set(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, {
617
+ 'NTNX-Request-Id': requestId
618
+ }));
619
+ }
498
620
 
499
- // Set User-Agent header only if it is not a browser environment
500
- var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
501
- if (!isBrowser) {
502
- this.downloadDestination = '.';
503
- request.set(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, {
504
- 'User-Agent': 'Nutanix-volumes-js-client/4.0.1'
505
- }));
506
- }
621
+ // Set User-Agent header only if it is not a browser environment
622
+ if (!isBrowser) {
623
+ this.downloadDestination = '.';
624
+ request.set(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, {
625
+ 'User-Agent': 'Nutanix-volumes-js-client/4.2.1'
626
+ }));
627
+ }
507
628
 
508
- // set requestAgent if it is set by user
509
- if (this.requestAgent) {
510
- request.agent(this.requestAgent);
511
- }
629
+ // set requestAgent if it is set by user
630
+ if (this.requestAgent) {
631
+ request.agent(this.requestAgent);
632
+ }
512
633
 
513
- // set request timeouts
514
- var timeoutOptions = {};
515
- timeoutOptions["response"] = _assertClassBrand(_ApiClient_brand, this, _getValidTimeout).call(this, this.connectTimeout, _classPrivateFieldGet(_defaultConnectTimeout, this));
516
- timeoutOptions["deadline"] = _assertClassBrand(_ApiClient_brand, this, _getValidTimeout).call(this, this.readTimeout, _classPrivateFieldGet(_defaultReadTimeout, this));
517
- request.timeout(timeoutOptions);
518
- var contentType = headerParams.hasOwnProperty("Content-Type") ? headerParams["Content-Type"] : _assertClassBrand(_ApiClient_brand, this, _jsonPreferredMime).call(this, contentTypes);
519
- if (contentType) {
520
- // Issue with superagent and multipart/form-data (https://github.com/visionmedia/superagent/issues/746)
521
- if (contentType != 'multipart/form-data') {
522
- request.type(contentType);
523
- }
524
- } else if (!request.header['Content-Type']) {
525
- request.type('application/json');
634
+ // set request timeouts
635
+ var timeoutOptions = {};
636
+ timeoutOptions["response"] = _assertClassBrand(_ApiClient_brand, this, _getValidTimeout).call(this, this.connectTimeout, _classPrivateFieldGet(_defaultConnectTimeout, this));
637
+ timeoutOptions["deadline"] = _assertClassBrand(_ApiClient_brand, this, _getValidTimeout).call(this, this.readTimeout, _classPrivateFieldGet(_defaultReadTimeout, this));
638
+ request.timeout(timeoutOptions);
639
+ var contentType = headerParams.hasOwnProperty("Content-Type") ? headerParams["Content-Type"] : _assertClassBrand(_ApiClient_brand, this, _jsonPreferredMime).call(this, contentTypes);
640
+ if (contentType) {
641
+ // Issue with superagent and multipart/form-data (https://github.com/visionmedia/superagent/issues/746)
642
+ if (contentType != 'multipart/form-data') {
643
+ request.type(contentType);
526
644
  }
527
- _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Request URL :", httpMethod, url);
528
- _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, _assertClassBrand(_ApiClient_brand, this, _flatten), "Request Headers :", typeof request.header === "undefined" ? "" : request.header);
529
- if (contentType === 'application/x-www-form-urlencoded') {
530
- request.send(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, formParams));
531
- } else if (contentType == 'multipart/form-data') {
532
- var _formParams = _assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, formParams);
533
- for (var key in _formParams) {
534
- if (_formParams.hasOwnProperty(key)) {
535
- if (_assertClassBrand(_ApiClient_brand, this, _isFileParam).call(this, _formParams[key])) {
536
- // file field
537
- request.attach(key, _formParams[key]);
538
- } else {
539
- request.field(key, _formParams[key]);
540
- }
645
+ } else if (!request.header['Content-Type']) {
646
+ request.type('application/json');
647
+ }
648
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Request URL :", httpMethod, url);
649
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, _assertClassBrand(_ApiClient_brand, this, _flatten), "Request Headers :", typeof request.header === "undefined" ? "" : request.header);
650
+ if (contentType === 'application/x-www-form-urlencoded') {
651
+ request.send(_assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, formParams));
652
+ } else if (contentType == 'multipart/form-data') {
653
+ var _formParams = _assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, formParams);
654
+ for (var key in _formParams) {
655
+ if (_formParams.hasOwnProperty(key)) {
656
+ if (_assertClassBrand(_ApiClient_brand, this, _isFileParam).call(this, _formParams[key])) {
657
+ // file field
658
+ request.attach(key, _formParams[key]);
659
+ } else {
660
+ request.field(key, _formParams[key]);
541
661
  }
542
662
  }
543
- } else if (contentType === 'application/octet-stream' && bodyParam !== null && typeof bodyParam !== 'undefined' && typeof bodyParam.pipe === 'function') {
544
- // FILE UPLOAD SUPPORT
663
+ }
664
+ } else if (contentType === 'application/octet-stream' && bodyParam !== null && typeof bodyParam !== 'undefined' && typeof bodyParam.pipe === 'function') {
665
+ // FILE UPLOAD SUPPORT
545
666
 
546
- _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Piping octet-stream request");
547
- if (typeof bodyParam.pipe === 'function') {
548
- bodyParam.pipe(request);
549
- } else if (typeof require === 'function') {
550
- var webstream;
551
- try {
552
- webstream = require('stream/web');
553
- } catch (err) {
554
- _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Error fetching steam/web");
555
- }
556
- if (bodyParam instanceof webstream.ReadableStream) {
557
- bodyParam.pipeTo(new webstream.WritableStream({
558
- write: function write(chunk) {
559
- request.write(chunk);
560
- },
561
- close: function close() {
562
- _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "READABLE STREAM CLOSED");
563
- },
564
- abort: function abort(err) {
565
- _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "READABLE STREAM ABORTED");
566
- }
567
- }));
568
- } else {
569
- request.send(bodyParam);
570
- }
667
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Piping octet-stream request");
668
+ if (typeof bodyParam.pipe === 'function') {
669
+ bodyParam.pipe(request);
670
+ } else if (typeof require === 'function') {
671
+ let webstream;
672
+ try {
673
+ webstream = require('stream/web');
674
+ } catch (err) {
675
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Error fetching steam/web");
676
+ }
677
+ if (bodyParam instanceof webstream.ReadableStream) {
678
+ bodyParam.pipeTo(new webstream.WritableStream({
679
+ write(chunk) {
680
+ request.write(chunk);
681
+ },
682
+ close() {
683
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "READABLE STREAM CLOSED");
684
+ },
685
+ abort(err) {
686
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "READABLE STREAM ABORTED");
687
+ }
688
+ }));
571
689
  } else {
572
690
  request.send(bodyParam);
573
691
  }
574
- return new Promise(function (resolve, reject) {
575
- request.on('error', function (err) {
576
- _assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).DEBUG, null, "Caught the following error :", err);
577
- reject(err);
578
- }).on('response', function (response) {
579
- _assertClassBrand(_ApiClient_brand, _this2, _handleApiResponseForPromise).call(_this2, response, path, queryParams, returnType, resolve, reject);
580
- });
581
- });
582
- } else if (bodyParam) {
692
+ } else {
583
693
  request.send(bodyParam);
584
694
  }
585
- if (typeof returnType === 'Blob') {
586
- request.responseType('blob');
587
- } else if (returnType === 'String') {
588
- request.responseType('string');
589
- }
590
- _assertClassBrand(_ApiClient_brand, this, _attachCookies).call(this, request);
591
- _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Request Body :", typeof request._data === "undefined" ? "" : request._data);
592
- var accept = headerParams.hasOwnProperty("Accept") && headerParams["Accept"] != undefined ? headerParams["Accept"] : accepts.join(', ');
593
- var binaryMediaTypes = ['application/octet-stream', 'application/pdf', 'application/zip'];
594
- if (accept) {
595
- request.accept(accept);
596
- }
597
- return new Promise(function (resolve, reject) {
598
- request.buffer(false).redirects(0).retry(_this2.maxRetryAttempts, _this2.retryInterval, []).on('error', function (err) {
599
- _assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).DEBUG, null, "Caught the following error :", err);
600
- }).end(function (error, response) {
601
- if (error) {
602
- _assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).DEBUG, null, "Caught error during the request!");
603
- _assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).ERROR, null, error);
604
- if (error.response !== null && typeof error.response !== 'undefined') {
605
- error.data = _assertClassBrand(_ApiClient_brand, _this2, _deserialize).call(_this2, error.response, returnType);
606
- } else {
607
- error.data = _assertClassBrand(_ApiClient_brand, _this2, _wrapErrorInResponse).call(_this2, error);
608
- }
609
- reject(error);
695
+ return new Promise((resolve, reject) => {
696
+ request.on('error', err => {
697
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Caught the following error :", err);
698
+ reject(err);
699
+ }).on('response', response => {
700
+ _assertClassBrand(_ApiClient_brand, this, _handleApiResponseForPromise).call(this, response, path, queryParams, returnType, resolve, reject);
701
+ });
702
+ });
703
+ } else if (['POST', 'PUT', 'PATCH'].includes(httpMethod.toUpperCase()) && bodyParam) {
704
+ request.send(bodyParam);
705
+ }
706
+ if (typeof returnType === 'Blob') {
707
+ request.responseType('blob');
708
+ } else if (returnType === 'String') {
709
+ request.responseType('string');
710
+ }
711
+ _assertClassBrand(_ApiClient_brand, this, _attachCookies).call(this, request);
712
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Request Body :", typeof request._data === "undefined" ? "" : request._data);
713
+ var accept = headerParams.hasOwnProperty("Accept") && headerParams["Accept"] != undefined ? headerParams["Accept"] : accepts.join(', ');
714
+ if (accept) {
715
+ request.accept(accept);
716
+ }
717
+ return new Promise((resolve, reject) => {
718
+ request.buffer(false).redirects(0).retry(this.maxRetryAttempts, this.retryInterval, []).withCredentials(this.withCredentials).on('error', err => {
719
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Caught the following error :", err);
720
+ }).end((error, response) => {
721
+ if (error) {
722
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Caught error during the request!");
723
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, error);
724
+ // Reset negotiation flags on 404 to allow future negotiation attempts
725
+ if (error.status === 404) {
726
+ _classPrivateFieldSet(_negotiationCompleted, this, false);
727
+ _classPrivateFieldSet(_negotiatedVersion, this, null);
728
+ }
729
+ if (error.response !== null && typeof error.response !== 'undefined') {
730
+ error.data = _assertClassBrand(_ApiClient_brand, this, _deserialize).call(this, error.response, returnType);
610
731
  } else {
611
- _assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).INFO, null, "Response Status :", response.status);
612
- _assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).DEBUG, _assertClassBrand(_ApiClient_brand, _this2, _flatten), "Response Headers :", response.headers);
613
- var _contentType = '';
614
- if (response.headers.hasOwnProperty('content-type')) {
615
- _contentType = response.headers["content-type"];
616
- }
617
- var fetchStream = binaryMediaTypes.some(function (binaryMediaType) {
618
- return _contentType.includes(binaryMediaType);
619
- });
620
- if (fetchStream) {
732
+ error.data = _assertClassBrand(_ApiClient_brand, this, _wrapErrorInResponse).call(this, error);
733
+ }
734
+ reject(error);
735
+ } else {
736
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Response Status :", response.status);
737
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, _assertClassBrand(_ApiClient_brand, this, _flatten), "Response Headers :", response.headers);
738
+ let contentType = '';
739
+ if (response.headers.hasOwnProperty('content-type')) {
740
+ contentType = response.headers["content-type"];
741
+ }
742
+ let fetchStream = binaryMediaTypes.includes(contentType);
743
+ if (fetchStream) {
744
+ /*
745
+ * Browser environment :
746
+ * Already handled
747
+ * Node.js environment :
748
+ * uses File System, downloadDestination expected to be a directory path, file is downloaded to this directory
749
+ */
750
+ if (!isBrowser) {
621
751
  /*
622
- * Browser environment :
623
- * uses Web Streams, downloadDestination expected to be a WritableStream (i.e. sink for response to be streamed to)
624
- * Node.js environment :
625
- * uses File System, downloadDestination expected to be a directory path, file is downloaded to this directory
752
+ * Non Browser environment :
753
+ * - stream data to file
754
+ * - fetch response headers and body (if exists)
755
+ * - return in case of error or after stream finish
756
+ *
757
+ * NOTE :
758
+ * superagent does not provide access to headers before pipe, therefore response is piped to
759
+ * file with temporary name, which is renamed to proper filename after Content-Disposition header is available
626
760
  */
627
- if (isBrowser) {
628
- /*
629
- * Browser environment :
630
- * - fetch webstream module
631
- * - write file to WritableStream downloadDestination
632
- * - if webstream if not available or downloadDestination is not instance of WritableStream
633
- * code flow goes to main request.then execution
634
- */
635
- if (typeof require === 'function') {
636
- var _webstream;
637
- try {
638
- _webstream = require('stream/web');
639
- } catch (err) {
640
- _assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).ERROR, null, "Error fetching steam/web");
641
- }
642
- if (_this2.downloadDestination instanceof _webstream.WritableStream) {
643
- // Piping Data
644
- var writer = _this2.downloadDestination.getWriter();
645
- try {
646
- response.on('data', function (chunk) {
647
- writer.write(chunk);
648
- });
649
- } catch (err) {
650
- _assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).ERROR, null, "Issue while downloading file", err);
651
- }
652
- response.on('end', function () {
653
- _assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).INFO, null, "Finished streaming response");
654
- writer.close();
655
- var data = _assertClassBrand(_ApiClient_brand, _this2, _deserialize).call(_this2, response, returnType);
656
- resolve({
657
- data: data,
658
- response: response
659
- });
660
- }).on('error', function (err) {
661
- _assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).ERROR, null, "Caught the following error :", err);
662
- err.data = _assertClassBrand(_ApiClient_brand, _this2, _wrapErrorInResponse).call(_this2, err);
663
- reject(err);
664
- });
665
- } else {
666
- var errMsg = "Incompatible downloadDestination for Browser Environment, must be WritableStream";
667
- _assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).ERROR, null, errMsg);
668
- reject(errMsg);
669
- }
670
- }
671
- } else {
672
- /*
673
- * Non Browser environment :
674
- * - stream data to file
675
- * - fetch response headers and body (if exists)
676
- * - return in case of error or after stream finish
677
- *
678
- * NOTE :
679
- * superagent does not provide access to headers before pipe, therefore response is piped to
680
- * file with temporary name, which is renamed to proper filename after Content-Disposition header is available
681
- */
682
761
 
683
- var tempFilename = _this2.downloadDestination + '/downloaded_file_' + Date.now() + '.txt'; // temporary filename
684
- var stream = _fs2["default"].createWriteStream(tempFilename);
685
- _assertClassBrand(_ApiClient_brand, _this2, _processDownloadedFile).call(_this2, response, stream, tempFilename, resolve, reject, returnType);
686
- }
687
- } else if (response.status == 302) {
688
- /*
689
- * Handling 302 Redirects
690
- * - Reads X-Redirect-Token header from response and writes into Cookie header for redirected request
691
- */
692
- var _tempFilename = _this2.downloadDestination + '/downloaded_file_' + Date.now() + '.txt'; // temporary filename
693
- var context = _this2;
694
- _assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).INFO, null, "Redirecting to :", response.headers.location);
695
- var redirectRequest = (0, _superagent["default"])(httpMethod, response.headers.location);
696
- redirectRequest.set(request.header);
697
- if (response.headers.hasOwnProperty("x-redirect-token")) {
698
- _assertClassBrand(_ApiClient_brand, _this2, _log).call(_this2, _classPrivateFieldGet(_LOG_LEVEL, _this2).INFO, null, "Writing X-Redirect-Token into Cookie");
699
- redirectRequest.set("Cookie", response.headers["x-redirect-token"]);
700
- }
701
- redirectRequest.redirects(0);
702
- redirectRequest.buffer(false);
703
- var redirectedStream = _fs2["default"].createWriteStream(_tempFilename);
704
- redirectRequest.pipe(redirectedStream);
705
- redirectRequest.on('response', function (redirectResponse) {
706
- _assertClassBrand(_ApiClient_brand, context, _log).call(context, _classPrivateFieldGet(_LOG_LEVEL, context).INFO, null, "Received response after redirection :", redirectResponse.status);
707
- _assertClassBrand(_ApiClient_brand, context, _processDownloadedFile).call(context, redirectResponse, redirectedStream, _tempFilename, resolve, reject, returnType);
708
- });
709
- } else {
710
- _assertClassBrand(_ApiClient_brand, _this2, _handleApiResponseForPromise).call(_this2, response, path, queryParams, returnType, resolve, reject);
762
+ let tempFilename = this.downloadDestination + '/downloaded_file_' + Date.now() + '.txt'; // temporary filename
763
+ let stream = _fs.default.createWriteStream(tempFilename);
764
+ _assertClassBrand(_ApiClient_brand, this, _processDownloadedFile).call(this, response, stream, tempFilename, resolve, reject, returnType);
711
765
  }
766
+ } else if (response.status == 302) {
767
+ /*
768
+ * Handling 302 Redirects
769
+ * - Reads X-Redirect-Token header from response and writes into Cookie header for redirected request
770
+ */
771
+ let tempFilename = this.downloadDestination + '/downloaded_file_' + Date.now() + '.txt'; // temporary filename
772
+ let context = this;
773
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Redirecting to :", response.headers.location);
774
+ var redirectRequest = (0, _superagent.default)(httpMethod, response.headers.location);
775
+ redirectRequest.set(request.header);
776
+ if (response.headers.hasOwnProperty("x-redirect-token")) {
777
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Writing X-Redirect-Token into Cookie");
778
+ redirectRequest.set("Cookie", response.headers["x-redirect-token"]);
779
+ }
780
+ if (this.requestAgent) {
781
+ redirectRequest.agent(this.requestAgent);
782
+ }
783
+ redirectRequest.redirects(0);
784
+ redirectRequest.withCredentials(this.withCredentials);
785
+ redirectRequest.buffer(false);
786
+ let redirectedStream = _fs.default.createWriteStream(tempFilename);
787
+ redirectRequest.pipe(redirectedStream);
788
+ redirectRequest.on('response', function (redirectResponse) {
789
+ _assertClassBrand(_ApiClient_brand, context, _log).call(context, _classPrivateFieldGet(_LOG_LEVEL, context).INFO, null, "Received response after redirection :", redirectResponse.status);
790
+ _assertClassBrand(_ApiClient_brand, context, _processDownloadedFile).call(context, redirectResponse, redirectedStream, tempFilename, resolve, reject, returnType);
791
+ });
792
+ } else {
793
+ _assertClassBrand(_ApiClient_brand, this, _handleApiResponseForPromise).call(this, response, path, queryParams, returnType, resolve, reject);
712
794
  }
713
- });
714
- });
715
- }
716
- }], [{
717
- key: "getEtag",
718
- value: function getEtag(object) {
719
- var etag = null;
720
- if (object !== undefined) {
721
- if (object.hasOwnProperty('$reserved') && object.get$Reserved() !== undefined) {
722
- etag = this.getValueForCaseInsensitiveKeyMatch(object.get$Reserved(), 'ETag');
723
795
  }
724
- if (etag == null && object.hasOwnProperty("data") && object.getData().hasOwnProperty('$reserved') && object.getData().get$Reserved() !== undefined) {
725
- etag = this.getValueForCaseInsensitiveKeyMatch(object.getData().get$Reserved(), 'ETag');
796
+ });
797
+ });
798
+ }
799
+ static addEtagReferenceToHeader(bodyParam, headerParams) {
800
+ // set If-Match header from postBody $reserved map
801
+ if (typeof bodyParam !== 'undefined' && bodyParam !== null) {
802
+ if (bodyParam.hasOwnProperty('$reserved') && bodyParam.$reserved.hasOwnProperty('ETag')) {
803
+ let eTagReference = bodyParam.$reserved['ETag'];
804
+ if (typeof eTagReference !== 'undefined' && eTagReference !== null && eTagReference !== "") {
805
+ headerParams['If-Match'] = eTagReference;
726
806
  }
727
807
  }
728
- return etag;
729
- }
730
- }, {
731
- key: "getValueForCaseInsensitiveKeyMatch",
732
- value: function getValueForCaseInsensitiveKeyMatch(object, key) {
733
- if (object && key) {
734
- var searchKey = key.toLowerCase();
735
- var matchedKey = Object.keys(object).find(function (key) {
736
- return key.toLowerCase() === searchKey;
737
- });
738
- return matchedKey ? object[matchedKey] : null;
739
- }
740
- return null;
741
808
  }
809
+ }
742
810
 
743
- // Gets a valid timeout
744
- // 1. Sets to provided default timeout in case invalid value is passed
745
- // 2. Sets to default max value of 30 minutes in case a value of more than 30 minutes is passed
746
- }, {
747
- key: "addEtagReferenceToHeader",
748
- value: function addEtagReferenceToHeader(bodyParam, headerParams) {
749
- // set If-Match header from postBody $reserved map
750
- if (typeof bodyParam !== 'undefined' && bodyParam !== null) {
751
- if (bodyParam.hasOwnProperty('$reserved') && bodyParam.$reserved.hasOwnProperty('ETag')) {
752
- var eTagReference = bodyParam.$reserved['ETag'];
753
- if (typeof eTagReference !== 'undefined' && eTagReference !== null && eTagReference !== "") {
754
- headerParams['If-Match'] = eTagReference;
755
- }
756
- }
757
- }
758
- }
811
+ /*
812
+ * Parses an ISO-8601 string representation of a date value.
813
+ * @param {String} str The date value as a string.
814
+ * @returns {Date} The parsed date object.
815
+ */
816
+ static parseDate(str) {
817
+ return new Date(str);
818
+ }
759
819
 
760
- /*
761
- * Parses an ISO-8601 string representation of a date value.
762
- * @param {String} str The date value as a string.
763
- * @returns {Date} The parsed date object.
764
- */
765
- }, {
766
- key: "parseDate",
767
- value: function parseDate(str) {
768
- return new Date(str);
820
+ /*
821
+ * Parses queryParams and path to find a given query param value
822
+ * @param {String} path The path given to callApi method
823
+ * @param {Object.<String, Object>} queryParams The queryParams given to callApi method
824
+ * @param {String} param Parameter name to look for
825
+ * @param {String} defaultValue The default value for the missing param if not present
826
+ * @returns {String} The value of given parameter
827
+ */
828
+ static parseQueryParam(path, queryParams, param, defaultValue) {
829
+ let value = null;
830
+ if (typeof queryParams !== 'undefined' && queryParams.hasOwnProperty(param)) {
831
+ value = queryParams[param];
769
832
  }
770
-
771
- /*
772
- * Parses queryParams and path to find a given query param value
773
- * @param {String} path The path given to callApi method
774
- * @param {Object.<String, Object>} queryParams The queryParams given to callApi method
775
- * @param {String} param Parameter name to look for
776
- * @param {String} defaultValue The default value for the missing param if not present
777
- * @returns {String} The value of given parameter
778
- */
779
- }, {
780
- key: "parseQueryParam",
781
- value: function parseQueryParam(path, queryParams, param, defaultValue) {
782
- var value = null;
783
- if (typeof queryParams !== 'undefined' && queryParams.hasOwnProperty(param)) {
784
- value = queryParams[param];
785
- }
786
- if (value === null && (typeof path === 'string' || path instanceof String)) {
787
- var escapedParam = param.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
788
- var regexResult = path.match(new RegExp("".concat(escapedParam, "=([0-9]+)")));
789
- if (regexResult) {
790
- value = regexResult[1];
791
- }
792
- }
793
- if (value === null) {
794
- value = defaultValue;
833
+ if (value === null && (typeof path === 'string' || path instanceof String)) {
834
+ const escapedParam = param.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
835
+ const regexResult = path.match(new RegExp(`${escapedParam}=([0-9]+)`));
836
+ if (regexResult) {
837
+ value = regexResult[1];
795
838
  }
796
- return value;
797
839
  }
840
+ if (value === null) {
841
+ value = defaultValue;
842
+ }
843
+ return value;
844
+ }
798
845
 
799
- /**
800
- * Converts a value to the specified type.
801
- * @param {(String|Object)} data The data to convert, as a string or object.
802
- * @param {(String|Array.<String>|Object.<String, Object>|Function)} type The type to return. Pass a string for simple types
803
- * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To
804
- * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type:
805
- * all properties on <code>data<code> will be converted to this type.
806
- * @returns An instance of the specified type or null or undefined if data is null or undefined.
807
- */
808
- }, {
809
- key: "convertToType",
810
- value: function convertToType(data, type) {
811
- if (data === null || data === undefined) return data;
812
- switch (type) {
813
- case 'Boolean':
814
- return Boolean(data);
815
- case 'Integer':
816
- return parseInt(data, 10);
817
- case 'Number':
818
- return parseFloat(data);
819
- case 'String':
820
- return String(data);
821
- case 'Date':
822
- return ApiClient.parseDate(String(data));
823
- case 'Blob':
846
+ /**
847
+ * Converts a value to the specified type.
848
+ * @param {(String|Object)} data The data to convert, as a string or object.
849
+ * @param {(String|Array.<String>|Object.<String, Object>|Function)} type The type to return. Pass a string for simple types
850
+ * or the constructor function for a complex type. Pass an array containing the type name to return an array of that type. To
851
+ * return an object, pass an object with one property whose name is the key type and whose value is the corresponding value type:
852
+ * all properties on <code>data<code> will be converted to this type.
853
+ * @returns An instance of the specified type or null or undefined if data is null or undefined.
854
+ */
855
+ static convertToType(data, type) {
856
+ if (data === null || data === undefined) return data;
857
+ switch (type) {
858
+ case 'Boolean':
859
+ return Boolean(data);
860
+ case 'Integer':
861
+ return parseInt(data, 10);
862
+ case 'Number':
863
+ return parseFloat(data);
864
+ case 'String':
865
+ return String(data);
866
+ case 'Date':
867
+ return ApiClient.parseDate(String(data));
868
+ case 'Blob':
869
+ return data;
870
+ default:
871
+ if (type === Object) {
872
+ // generic object, return directly
824
873
  return data;
825
- default:
826
- if (type === Object) {
827
- // generic object, return directly
828
- return data;
829
- } else if (typeof type === 'function') {
830
- // for model type like: User
831
- return type.constructFromObject(data);
832
- } else if (Array.isArray(type)) {
833
- // for array type like: ['String']
834
- var itemType = type[0];
835
- return data.map(function (item) {
836
- return ApiClient.convertToType(item, itemType);
837
- });
838
- } else if (_typeof(type) === 'object') {
839
- // for plain object type like: {'String': 'Integer'}
840
- var keyType, valueType;
841
- for (var k in type) {
842
- if (type.hasOwnProperty(k)) {
843
- keyType = k;
844
- valueType = type[k];
845
- break;
846
- }
874
+ } else if (typeof type === 'function') {
875
+ // for model type like: User
876
+ return type.constructFromObject(data);
877
+ } else if (Array.isArray(type)) {
878
+ // for array type like: ['String']
879
+ var itemType = type[0];
880
+ return data.map(item => {
881
+ return ApiClient.convertToType(item, itemType);
882
+ });
883
+ } else if (typeof type === 'object') {
884
+ // for plain object type like: {'String': 'Integer'}
885
+ var keyType, valueType;
886
+ for (var k in type) {
887
+ if (type.hasOwnProperty(k)) {
888
+ keyType = k;
889
+ valueType = type[k];
890
+ break;
847
891
  }
848
- var result = {};
849
- for (var k in data) {
850
- if (data.hasOwnProperty(k)) {
851
- var key = ApiClient.convertToType(k, keyType);
852
- var value = ApiClient.convertToType(data[k], valueType);
853
- result[key] = value;
854
- }
892
+ }
893
+ var result = {};
894
+ for (var k in data) {
895
+ if (data.hasOwnProperty(k)) {
896
+ var key = ApiClient.convertToType(k, keyType);
897
+ var value = ApiClient.convertToType(data[k], valueType);
898
+ result[key] = value;
855
899
  }
856
- return result;
857
- } else {
858
- // for unknown type, return the data directly
859
- return data;
860
900
  }
861
- }
901
+ return result;
902
+ } else {
903
+ // for unknown type, return the data directly
904
+ return data;
905
+ }
862
906
  }
907
+ }
863
908
 
864
- /**
865
- * Constructs a new map or array model from REST data.
866
- * @param data {Object|Array} The REST data.
867
- * @param obj {Object|Array} The target object or array.
868
- */
869
- }, {
870
- key: "constructFromObject",
871
- value: function constructFromObject(data, obj, itemType) {
872
- if (Array.isArray(data)) {
873
- for (var i = 0; i < data.length; i++) {
874
- if (data.hasOwnProperty(i)) obj[i] = ApiClient.convertToType(data[i], itemType);
875
- }
876
- } else {
877
- for (var k in data) {
878
- if (data.hasOwnProperty(k)) obj[k] = ApiClient.convertToType(data[k], itemType);
879
- }
909
+ /**
910
+ * Constructs a new map or array model from REST data.
911
+ * @param data {Object|Array} The REST data.
912
+ * @param obj {Object|Array} The target object or array.
913
+ */
914
+ static constructFromObject(data, obj, itemType) {
915
+ if (Array.isArray(data)) {
916
+ for (var i = 0; i < data.length; i++) {
917
+ if (data.hasOwnProperty(i)) obj[i] = ApiClient.convertToType(data[i], itemType);
918
+ }
919
+ } else {
920
+ for (var k in data) {
921
+ if (data.hasOwnProperty(k)) obj[k] = ApiClient.convertToType(data[k], itemType);
880
922
  }
881
923
  }
882
- }]);
883
- }();
924
+ }
925
+ }
926
+
884
927
  /**
885
928
  * The default API client implementation.
886
929
  * @type {ApiClient}
887
930
  * @memberOf ApiClient
888
931
  */
932
+ exports.ApiClient = ApiClient;
889
933
  _ApiClient = ApiClient;
890
934
  function _isJsonMime(contentType) {
891
935
  return Boolean(contentType != null && contentType.match(/^application\/json(;.*)?$/i));
@@ -911,11 +955,11 @@ function _jsonPreferredMime(contentTypes) {
911
955
  function _isFileParam(param) {
912
956
  // fs.ReadStream in Node.js and Electron (but not in runtime like browserify)
913
957
  if (typeof require === 'function') {
914
- var _fs;
958
+ let fs;
915
959
  try {
916
- _fs = require('fs');
960
+ fs = require('fs');
917
961
  } catch (err) {}
918
- if (_fs && _fs.ReadStream && param instanceof _fs.ReadStream) {
962
+ if (fs && fs.ReadStream && param instanceof fs.ReadStream) {
919
963
  return true;
920
964
  }
921
965
  }
@@ -961,17 +1005,16 @@ function _normalizeParams(params) {
961
1005
  return newParams;
962
1006
  }
963
1007
  function _applyAuthToRequest(request, authNames) {
964
- var _this3 = this;
965
- authNames.forEach(function (authName) {
966
- var auth = _this3.authentications[authName];
1008
+ authNames.forEach(authName => {
1009
+ var auth = this.authentications[authName];
967
1010
  switch (auth.type) {
968
1011
  case 'basic':
969
1012
  if (auth.username || auth.password) {
970
1013
  request.auth(auth.username || '', auth.password || '');
971
- } else if (_this3.username || _this3.password) {
972
- request.auth(_this3.username || '', _this3.password || '');
1014
+ } else if (this.username || this.password) {
1015
+ request.auth(this.username || '', this.password || '');
973
1016
  }
974
- _assertClassBrand(_ApiClient_brand, _this3, _log).call(_this3, _classPrivateFieldGet(_LOG_LEVEL, _this3).DEBUG, null, "Basic Auth applied to request");
1017
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Basic Auth applied to request");
975
1018
  break;
976
1019
  case 'apiKey':
977
1020
  if (auth.apiKey) {
@@ -987,7 +1030,7 @@ function _applyAuthToRequest(request, authNames) {
987
1030
  request.query(data);
988
1031
  }
989
1032
  }
990
- _assertClassBrand(_ApiClient_brand, _this3, _log).call(_this3, _classPrivateFieldGet(_LOG_LEVEL, _this3).DEBUG, null, "apiKey applied to request");
1033
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "apiKey applied to request");
991
1034
  break;
992
1035
  case 'oauth2':
993
1036
  if (auth.accessToken) {
@@ -995,10 +1038,10 @@ function _applyAuthToRequest(request, authNames) {
995
1038
  'Authorization': 'Bearer ' + auth.accessToken
996
1039
  });
997
1040
  }
998
- _assertClassBrand(_ApiClient_brand, _this3, _log).call(_this3, _classPrivateFieldGet(_LOG_LEVEL, _this3).DEBUG, null, "oauth2 applied to request");
1041
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "oauth2 applied to request");
999
1042
  break;
1000
1043
  default:
1001
- _assertClassBrand(_ApiClient_brand, _this3, _log).call(_this3, _classPrivateFieldGet(_LOG_LEVEL, _this3).ERROR, null, "Unknown authentication type:", auth.type);
1044
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Unknown authentication type:", auth.type);
1002
1045
  throw new Error('Unknown authentication type: ' + auth.type);
1003
1046
  }
1004
1047
  });
@@ -1036,11 +1079,11 @@ function _deserialize(response, returnType) {
1036
1079
  data.data = new _buffer.Blob([response.text], {
1037
1080
  type: response.headers['content-type']
1038
1081
  });
1039
- var flag = new _Flag["default"]();
1082
+ let flag = new _Flag.default();
1040
1083
  flag.name = "hasError";
1041
1084
  flag.value = false;
1042
- var flags = [flag];
1043
- var metadata = new _ApiResponseMetadata["default"]();
1085
+ let flags = [flag];
1086
+ let metadata = new _ApiResponseMetadata.default();
1044
1087
  metadata.flags = flags;
1045
1088
  data.metadata = metadata;
1046
1089
  return data;
@@ -1049,7 +1092,7 @@ function _deserialize(response, returnType) {
1049
1092
  // Rely on SuperAgent for parsing response body.
1050
1093
  // See http://visionmedia.github.io/superagent/#parsing-response-bodies
1051
1094
  var data = response.body;
1052
- if (data == null || _typeof(data) === 'object' && typeof data.length === 'undefined' && !Object.keys(data).length) {
1095
+ if (data == null || typeof data === 'object' && typeof data.length === 'undefined' && !Object.keys(data).length) {
1053
1096
  // SuperAgent does not always produce a body; use the unparsed response as a fallback
1054
1097
  data = response.text;
1055
1098
  }
@@ -1063,19 +1106,79 @@ function _deserialize(response, returnType) {
1063
1106
  */
1064
1107
  function _paginateIfNeeded(data, path, queryParams) {
1065
1108
  // If response is not a Paginable instance, nothing to do
1066
- if (!(data instanceof _Paginable["default"])) {
1109
+ if (!(data instanceof _Paginable.default)) {
1067
1110
  return;
1068
1111
  }
1069
1112
  // Retrieve current page number, defaults to 0
1070
- var page = parseInt(this.constructor.parseQueryParam(path, queryParams, '$page', "0"), 10);
1113
+ const page = parseInt(this.constructor.parseQueryParam(path, queryParams, '$page', "0"), 10);
1071
1114
  // Retrieve current limit (results per page) number, defaults to 50
1072
- var resultsPerPage = parseInt(this.constructor.parseQueryParam(path, queryParams, '$limit', "50"), 10);
1115
+ const resultsPerPage = parseInt(this.constructor.parseQueryParam(path, queryParams, '$limit', "50"), 10);
1073
1116
 
1074
1117
  // Populate pagination data
1075
1118
  data.populatePaginationMetadata(this,
1076
1119
  // current ApiClient instance
1077
1120
  page, resultsPerPage);
1078
1121
  }
1122
+ function _performNegotiationBetweenVersions(sdk, server) {
1123
+ if (!sdk || !server) {
1124
+ return sdk;
1125
+ }
1126
+ let sdkProps = _assertClassBrand(_ApiClient_brand, this, _getVersionDetails).call(this, sdk);
1127
+ let serverProps = _assertClassBrand(_ApiClient_brand, this, _getVersionDetails).call(this, server);
1128
+ // if major version is different, then do not negotiate
1129
+ // maintain sdk version
1130
+ if (!sdkProps["family"] === serverProps["family"]) {
1131
+ return sdk;
1132
+ }
1133
+ // if sdk version is smaller than highest server version, then maintain sdk version
1134
+ if (_assertClassBrand(_ApiClient_brand, this, _isSmallerMinorVersion).call(this, sdkProps, serverProps)) {
1135
+ return sdk;
1136
+ }
1137
+ // since sdk version is higher than highest server version, use server version
1138
+ return server;
1139
+ }
1140
+ function _isSmallerMinorVersion(p1, p2) {
1141
+ // if revision different, then compare revision
1142
+ if (parseInt(p1["revision"]) != parseInt(p2["revision"])) {
1143
+ return parseInt(p1["revision"]) < parseInt(p2["revision"]);
1144
+ }
1145
+ // revision is same, so compare version_type (release_type + release_type_revision)
1146
+ if (p1["versionType"] === "released") {
1147
+ return false;
1148
+ }
1149
+ let p1ReleaseType = p1["versionType"].substring(0, 1);
1150
+ let p2ReleaseType = p2["versionType"].substring(0, 1);
1151
+ let p1ReleaseTypeRevision = parseInt(p1["versionType"].substring(1));
1152
+ let p2ReleaseTypeRevision = p2["versionType"] === "released" ? 0 : parseInt(p2["versionType"].substring(1));
1153
+ if (p1ReleaseType === p2ReleaseType) {
1154
+ // release type is same, so compare release type revision
1155
+ return p1ReleaseTypeRevision < p2ReleaseTypeRevision;
1156
+ }
1157
+ // release type is different, so alpha must be smallest and released must be largest
1158
+ return p1ReleaseType === "a" || p2["versionType"] === "released";
1159
+ }
1160
+ function _getVersionDetails(version) {
1161
+ let ret = {};
1162
+ if ("unversioned" === version) {
1163
+ ret["family"] = "unversioned";
1164
+ ret["versionType"] = "released";
1165
+ } else {
1166
+ let versionParts = version.toString().split('.');
1167
+ if ("unversioned" === versionParts[0]) {
1168
+ ret["family"] = "unversioned";
1169
+ ret["versionType"] = versionParts[1];
1170
+ } else {
1171
+ ret["family"] = versionParts[0].substring(1);
1172
+ ret["revision"] = versionParts[1];
1173
+ if (versionParts.length == 2) {
1174
+ ret["versionType"] = "released";
1175
+ } else {
1176
+ ret["versionType"] = versionParts[2];
1177
+ }
1178
+ }
1179
+ }
1180
+ return ret;
1181
+ }
1079
1182
  function _getValidTimeout(timeout, defaultTimeout) {
1080
1183
  if (timeout <= 0) {
1081
1184
  timeout = defaultTimeout;
@@ -1087,27 +1190,18 @@ function _getValidTimeout(timeout, defaultTimeout) {
1087
1190
  // If enabled, update cookie information to reuse in subsequent requests for a valid response
1088
1191
  function _updateCookies(response) {
1089
1192
  if (response.hasOwnProperty("headers") && response.headers.hasOwnProperty("set-cookie")) {
1090
- var finalCookie = "";
1091
- var cookieList = response.headers["set-cookie"];
1193
+ let finalCookie = "";
1194
+ let cookieList = response.headers["set-cookie"];
1092
1195
  if (cookieList.length > 0) {
1093
1196
  // add all cookies separated by ;
1094
- var _iterator2 = _createForOfIteratorHelper(cookieList),
1095
- _step2;
1096
- try {
1097
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
1098
- var cookieItem = _step2.value;
1099
- cookieItem = cookieItem.split(";")[0];
1100
- if (cookieItem.includes("=")) {
1101
- cookieItem.trim();
1102
- finalCookie = finalCookie.concat(cookieItem).concat(";");
1103
- }
1197
+ for (let cookieItem of cookieList) {
1198
+ cookieItem = cookieItem.split(";")[0];
1199
+ if (cookieItem.includes("=")) {
1200
+ cookieItem.trim();
1201
+ finalCookie = finalCookie.concat(cookieItem).concat(";");
1104
1202
  }
1105
- // remove trailing ;
1106
- } catch (err) {
1107
- _iterator2.e(err);
1108
- } finally {
1109
- _iterator2.f();
1110
1203
  }
1204
+ // remove trailing ;
1111
1205
  if (finalCookie !== "") {
1112
1206
  finalCookie = finalCookie.substr(0, finalCookie.length - 1);
1113
1207
  }
@@ -1126,21 +1220,18 @@ function _attachCookies(request) {
1126
1220
  }));
1127
1221
  }
1128
1222
  }
1129
- function _log(level, mapper) {
1130
- for (var _len = arguments.length, messages = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
1131
- messages[_key - 2] = arguments[_key];
1132
- }
1223
+ function _log(level, mapper, ...messages) {
1133
1224
  // Set default log level to INFO
1134
- if (_typeof(level) !== "object" || !("key" in level) || !("value" in level) || _typeof(level["value"]) !== "symbol") {
1225
+ if (typeof level !== "object" || !("key" in level) || !("value" in level) || typeof level["value"] !== "symbol") {
1135
1226
  level = _classPrivateFieldGet(_LOG_LEVEL, this).INFO;
1136
1227
  }
1137
1228
  if (!_assertClassBrand(_ApiClient_brand, this, _skipLogging).call(this, level)) {
1138
1229
  // Preprocess message to prefix with timestamp and log level
1139
- messages = messages.map(function (message) {
1230
+ messages = messages.map(message => {
1140
1231
  return typeof message === "string" ? message : mapper ? mapper(message) : JSON.stringify(message);
1141
1232
  });
1142
- var message = messages.join(' ');
1143
- message = _assertClassBrand(_ApiClient_brand, this, _getLocalDateTime).call(this) + ' ' + level.key + ' - ' + message;
1233
+ let message = messages.join(' ');
1234
+ message = new Date().toISOString() + ' ' + level.key + ' - ' + message;
1144
1235
  if (typeof _classPrivateFieldGet(_logger, this) !== "undefined" && _classPrivateFieldGet(_logger, this) !== null && typeof _classPrivateFieldGet(_logger, this).log === 'function') {
1145
1236
  _classPrivateFieldGet(_logger, this).log(message);
1146
1237
  } else {
@@ -1152,29 +1243,14 @@ function _skipLogging(level) {
1152
1243
  // Skip logging if log level is DEBUG but debug is not enabled.
1153
1244
  return !this.debug && level === _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG;
1154
1245
  }
1155
- function _getLocalDateTime() {
1156
- // Current epoch UTC time in milliseconds
1157
- var epochTime = Date.now();
1158
-
1159
- // "getTimezoneOffset" returns the difference, in minutes, between a date as evaluated in the UTC time zone,
1160
- // and the same date as evaluated in the local time zone.
1161
- // if you are in timezone UTC-1, outputs 60
1162
- // if you are in timezone UTC+3, outputs -180
1163
- var timezoneOffsetInMinutes = new Date().getTimezoneOffset();
1164
- var timezoneOffsetInMilliseconds = timezoneOffsetInMinutes * 60 * 1000;
1165
-
1166
- // Create a new date with adjusted epoch time based on timezone offset
1167
- var date = new Date(epochTime - timezoneOffsetInMilliseconds);
1168
- return date.toISOString().slice(0, 23);
1169
- }
1170
1246
  // A mapper function to flatten a simple non-nested (key:value) object to string
1171
1247
  function _flatten(obj) {
1172
- if (_typeof(obj) !== "object") {
1248
+ if (typeof obj !== "object") {
1173
1249
  return obj;
1174
1250
  }
1175
- var output = '\n';
1251
+ let output = '\n';
1176
1252
  if (obj) {
1177
- Object.keys(obj).forEach(function (e) {
1253
+ Object.keys(obj).forEach(e => {
1178
1254
  output += e + '=[' + obj[e] + ']\n';
1179
1255
  });
1180
1256
  }
@@ -1190,21 +1266,22 @@ function _handleApiResponseForPromise(response, path, queryParams, returnType, r
1190
1266
  _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Response Body :", data);
1191
1267
  if (response.status == 204 && data == null) {
1192
1268
  resolve({
1193
- data: data,
1194
- response: response
1269
+ data,
1270
+ response
1195
1271
  });
1196
1272
  } else if (response.ok && data != null) {
1197
1273
  this.addEtagToReservedMap(response, data);
1198
1274
  _assertClassBrand(_ApiClient_brand, this, _paginateIfNeeded).call(this, data, path, queryParams);
1199
1275
  resolve({
1200
- data: data,
1201
- response: response
1276
+ data,
1277
+ response
1202
1278
  });
1203
1279
  } else {
1204
1280
  _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, data);
1205
- reject(_objectSpread(_objectSpread({}, response.error), {}, {
1281
+ reject({
1282
+ ...response.error,
1206
1283
  data: data
1207
- }));
1284
+ });
1208
1285
  }
1209
1286
  } catch (err) {
1210
1287
  _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Caught error while processing response!");
@@ -1213,58 +1290,159 @@ function _handleApiResponseForPromise(response, path, queryParams, returnType, r
1213
1290
  reject(err);
1214
1291
  }
1215
1292
  }
1293
+ function _prepareDownloadBrowserParams(url, httpMethod, queryParams, headerParams, bodyParam, authNames, contentTypes, accepts) {
1294
+ let authHeaders = {};
1295
+
1296
+ // Apply authentication logic
1297
+ authNames.forEach(authName => {
1298
+ const auth = this.authentications[authName];
1299
+ switch (auth.type) {
1300
+ case 'basic':
1301
+ let username = '';
1302
+ let password = '';
1303
+ if (auth.username || auth.password) {
1304
+ username = auth.username || '';
1305
+ password = auth.password || '';
1306
+ } else if (this.username || this.password) {
1307
+ username = this.username || '';
1308
+ password = this.password || '';
1309
+ }
1310
+ if (username || password) {
1311
+ const credentials = btoa(`${username}:${password}`);
1312
+ authHeaders['Authorization'] = `Basic ${credentials}`;
1313
+ }
1314
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Basic Auth applied to request");
1315
+ break;
1316
+ case 'apiKey':
1317
+ if (auth.apiKey) {
1318
+ let apiKeyValue = '';
1319
+ if (auth.apiKeyPrefix) {
1320
+ apiKeyValue = auth.apiKeyPrefix + ' ' + auth.apiKey;
1321
+ } else {
1322
+ apiKeyValue = auth.apiKey;
1323
+ }
1324
+ if (auth['in'] === 'header') {
1325
+ authHeaders[auth.name] = 'Bearer ' + apiKeyValue;
1326
+ } else if (auth['in'] === 'query') {
1327
+ queryParams[auth.name] = apiKeyValue;
1328
+ }
1329
+ }
1330
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "apiKey applied to request");
1331
+ break;
1332
+ case 'oauth2':
1333
+ if (auth.accessToken) {
1334
+ authHeaders['Authorization'] = 'Bearer ' + auth.accessToken;
1335
+ }
1336
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "oauth2 applied to request");
1337
+ break;
1338
+ default:
1339
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Unknown authentication type:", auth.type);
1340
+ throw new Error('Unknown authentication type: ' + auth.type);
1341
+ }
1342
+ });
1343
+
1344
+ // set query parameters
1345
+ if (httpMethod.toUpperCase() === 'GET' && this.cache === false) {
1346
+ queryParams['cache'] = 'false';
1347
+ }
1348
+
1349
+ // Build URL with query parameters
1350
+ const normalizedParams = _assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, queryParams);
1351
+ const queryString = Object.keys(normalizedParams).map(key => `${encodeURIComponent(key)}=${encodeURIComponent(normalizedParams[key])}`).join('&');
1352
+ let finalUrl = url;
1353
+ if (queryString) {
1354
+ finalUrl += (finalUrl.includes('?') ? '&' : '?') + queryString;
1355
+ }
1356
+ const finalHeaders = {
1357
+ ...this.defaultHeaders,
1358
+ ..._assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, headerParams),
1359
+ ...authHeaders
1360
+ };
1361
+
1362
+ // set header parameters
1363
+ if ((this.defaultHeaders['NTNX-Request-Id'] === null || this.defaultHeaders['NTNX-Request-Id'] === undefined) && (headerParams['NTNX-Request-Id'] === null || headerParams['NTNX-Request-Id'] === undefined)) {
1364
+ let requestId = (0, _uuid.v4)();
1365
+ finalHeaders['NTNX-Request-Id'] = requestId;
1366
+ }
1367
+
1368
+ //Add cookies if they exist
1369
+ if (_classPrivateFieldGet(_cookie, this) != null) {
1370
+ finalHeaders['Cookie'] = _assertClassBrand(_ApiClient_brand, this, _normalizeParams).call(this, {
1371
+ 'Cookie': _classPrivateFieldGet(_cookie, this)
1372
+ });
1373
+ }
1374
+
1375
+ // Set content type
1376
+ var contentType = headerParams.hasOwnProperty("Content-Type") ? headerParams["Content-Type"] : _assertClassBrand(_ApiClient_brand, this, _jsonPreferredMime).call(this, contentTypes);
1377
+ finalHeaders['Content-Type'] = contentType;
1378
+
1379
+ // Set Accept Header
1380
+ var accept = headerParams.hasOwnProperty("Accept") && headerParams["Accept"] != undefined ? headerParams["Accept"] : accepts.join(', ');
1381
+ if (accept) {
1382
+ finalHeaders['Accept'] = accept;
1383
+ }
1384
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Request URL :", httpMethod, url);
1385
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, _assertClassBrand(_ApiClient_brand, this, _flatten), "Request Headers :", finalHeaders);
1386
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).DEBUG, null, "Request Body :", bodyParam || "");
1387
+ return {
1388
+ url: finalUrl,
1389
+ options: {
1390
+ method: httpMethod,
1391
+ headers: finalHeaders,
1392
+ body: bodyParam,
1393
+ credentials: this.withCredentials ? 'include' : 'same-origin'
1394
+ }
1395
+ };
1396
+ }
1216
1397
  function _processDownloadedFile(response, stream, tempFilename, resolve, reject, returnType) {
1217
- var _this4 = this;
1218
1398
  _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Streaming response to : ", tempFilename);
1219
1399
  try {
1220
- response.on('data', function (chunk) {
1400
+ response.on('data', chunk => {
1221
1401
  stream.write(chunk);
1222
1402
  });
1223
1403
  } catch (err) {
1224
1404
  _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Issue while downloading file", err);
1225
1405
  }
1226
- var data = new returnType();
1406
+ let data = new returnType();
1227
1407
  // Fetch filename
1228
- var filename = "";
1408
+ let filename = "";
1229
1409
  if (typeof response.headers['content-disposition'] !== 'undefined' && response.headers['content-disposition'] !== null) {
1230
- var match = response.headers['content-disposition'].match(/*#__PURE__*/_wrapRegExp(/.*filename="(.*)".*/, {
1231
- filename: 1
1232
- }));
1233
- var filepath = _path["default"].parse(match.groups['filename']);
1410
+ let match = response.headers['content-disposition'].match(/.*filename=\"(?<filename>.*)\".*/);
1411
+ let filepath = _path.default.parse(match.groups['filename']);
1234
1412
  filename = this.downloadDestination + '/' + filepath.name + '_' + Date.now() + filepath.ext;
1235
1413
  data.data = {
1236
- "path": _path["default"].parse(filename),
1414
+ "path": _path.default.parse(filename),
1237
1415
  $objectType: "Path"
1238
1416
  };
1239
- var flag = new _Flag["default"]();
1417
+ let flag = new _Flag.default();
1240
1418
  flag.name = "hasError";
1241
1419
  flag.value = false;
1242
- var flags = [flag];
1243
- var metadata = new _ApiResponseMetadata["default"]();
1420
+ let flags = [flag];
1421
+ let metadata = new _ApiResponseMetadata.default();
1244
1422
  metadata.flags = flags;
1245
1423
  data.metadata = metadata;
1246
1424
  }
1247
- response.on('end', function () {
1248
- _assertClassBrand(_ApiClient_brand, _this4, _log).call(_this4, _classPrivateFieldGet(_LOG_LEVEL, _this4).INFO, null, "Finished streaming response");
1425
+ response.on('end', () => {
1426
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Finished streaming response");
1249
1427
  if (filename.length !== 0) {
1250
- _assertClassBrand(_ApiClient_brand, _this4, _log).call(_this4, _classPrivateFieldGet(_LOG_LEVEL, _this4).INFO, null, "Content-Disposition header found [", filename, "] is final filename");
1428
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).INFO, null, "Content-Disposition header found [", filename, "] is final filename");
1251
1429
  stream.close();
1252
- _fs2["default"].renameSync(tempFilename, filename);
1430
+ _fs.default.renameSync(tempFilename, filename);
1253
1431
  resolve({
1254
- data: data,
1255
- response: response
1432
+ data,
1433
+ response
1256
1434
  });
1257
1435
  } else {
1258
- _assertClassBrand(_ApiClient_brand, _this4, _log).call(_this4, _classPrivateFieldGet(_LOG_LEVEL, _this4).ERROR, null, "Content-Disposition header not found [", tempFilename, "] is final filename");
1436
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Content-Disposition header not found [", tempFilename, "] is final filename");
1259
1437
  resolve({
1260
- data: data,
1261
- response: response
1438
+ data,
1439
+ response
1262
1440
  });
1263
1441
  }
1264
1442
  });
1265
- response.on('error', function (err) {
1266
- _assertClassBrand(_ApiClient_brand, _this4, _log).call(_this4, _classPrivateFieldGet(_LOG_LEVEL, _this4).ERROR, null, "Caught the following error :", err);
1267
- error.data = _assertClassBrand(_ApiClient_brand, _this4, _wrapErrorInResponse).call(_this4, error);
1443
+ response.on('error', err => {
1444
+ _assertClassBrand(_ApiClient_brand, this, _log).call(this, _classPrivateFieldGet(_LOG_LEVEL, this).ERROR, null, "Caught the following error :", err);
1445
+ error.data = _assertClassBrand(_ApiClient_brand, this, _wrapErrorInResponse).call(this, error);
1268
1446
  reject(err);
1269
1447
  });
1270
1448
  }