@openshift-migration-advisor/agent-sdk 0.12.0 → 0.16.0-f224c4e8e35b

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 (343) hide show
  1. package/.openapi-generator/FILES +78 -0
  2. package/.openapi-generator/VERSION +1 -1
  3. package/README.md +78 -10
  4. package/dist/apis/DefaultApi.d.ts +1179 -102
  5. package/dist/apis/DefaultApi.js +1373 -189
  6. package/dist/esm/apis/DefaultApi.d.ts +1179 -102
  7. package/dist/esm/apis/DefaultApi.js +1352 -168
  8. package/dist/esm/models/AgentStatus.d.ts +1 -1
  9. package/dist/esm/models/AgentStatus.js +3 -3
  10. package/dist/esm/models/ApplicationListResponse.d.ts +33 -0
  11. package/dist/esm/models/ApplicationListResponse.js +44 -0
  12. package/dist/esm/models/ApplicationOverview.d.ts +51 -0
  13. package/dist/esm/models/ApplicationOverview.js +56 -0
  14. package/dist/esm/models/ApplicationVM.d.ts +38 -0
  15. package/dist/esm/models/ApplicationVM.js +47 -0
  16. package/dist/esm/models/BenchmarkRun.d.ts +104 -0
  17. package/dist/esm/models/BenchmarkRun.js +85 -0
  18. package/dist/esm/models/CapabilityStatus.d.ts +33 -0
  19. package/dist/esm/models/CapabilityStatus.js +44 -0
  20. package/dist/esm/models/CapabilityStatusCapabilities.d.ts +45 -0
  21. package/dist/esm/models/CapabilityStatusCapabilities.js +52 -0
  22. package/dist/esm/models/ClusterFeatures.d.ts +54 -0
  23. package/dist/esm/models/ClusterFeatures.js +54 -0
  24. package/dist/esm/models/ClusterUtilization.d.ts +68 -0
  25. package/dist/esm/models/ClusterUtilization.js +67 -0
  26. package/dist/esm/models/CollectorStartRequest.d.ts +18 -6
  27. package/dist/esm/models/CollectorStartRequest.js +7 -9
  28. package/dist/esm/models/CreateGroupRequest.d.ts +0 -6
  29. package/dist/esm/models/CreateGroupRequest.js +0 -2
  30. package/dist/esm/models/CredentialStatus.d.ts +44 -0
  31. package/dist/esm/models/CredentialStatus.js +51 -0
  32. package/dist/esm/models/DatastoreDetail.d.ts +90 -0
  33. package/dist/esm/models/DatastoreDetail.js +74 -0
  34. package/dist/esm/models/DatastorePair.d.ts +50 -0
  35. package/dist/esm/models/DatastorePair.js +53 -0
  36. package/dist/esm/models/DeleteLabelGloballyResponse.d.ts +38 -0
  37. package/dist/esm/models/DeleteLabelGloballyResponse.js +47 -0
  38. package/dist/esm/models/EstimateRange.d.ts +44 -0
  39. package/dist/esm/models/EstimateRange.js +45 -0
  40. package/dist/esm/models/ExportInventory400Response.d.ts +32 -0
  41. package/dist/esm/models/ExportInventory400Response.js +41 -0
  42. package/dist/esm/models/ExportInventory500Response.d.ts +32 -0
  43. package/dist/esm/models/ExportInventory500Response.js +41 -0
  44. package/dist/esm/models/ForecastStats.d.ts +87 -0
  45. package/dist/esm/models/ForecastStats.js +64 -0
  46. package/dist/esm/models/ForecasterDatastoresRequest.d.ts +33 -0
  47. package/dist/esm/models/ForecasterDatastoresRequest.js +42 -0
  48. package/dist/esm/models/ForecasterPairStatus.d.ts +98 -0
  49. package/dist/esm/models/ForecasterPairStatus.js +82 -0
  50. package/dist/esm/models/ForecasterStartRequest.d.ts +58 -0
  51. package/dist/esm/models/ForecasterStartRequest.js +53 -0
  52. package/dist/esm/models/ForecasterStatus.d.ts +47 -0
  53. package/dist/esm/models/ForecasterStatus.js +53 -0
  54. package/dist/esm/models/Group.d.ts +0 -6
  55. package/dist/esm/models/Group.js +0 -2
  56. package/dist/esm/models/GroupResponse.d.ts +7 -0
  57. package/dist/esm/models/GroupResponse.js +3 -0
  58. package/dist/esm/models/InspectorStatus.d.ts +0 -17
  59. package/dist/esm/models/InspectorStatus.js +1 -10
  60. package/dist/esm/models/Inventory.d.ts +7 -1
  61. package/dist/esm/models/Inventory.js +5 -3
  62. package/dist/esm/models/InventoryData.d.ts +14 -0
  63. package/dist/esm/models/InventoryData.js +6 -0
  64. package/dist/esm/models/OperationCapability.d.ts +38 -0
  65. package/dist/esm/models/OperationCapability.js +45 -0
  66. package/dist/esm/models/PairCapability.d.ts +60 -0
  67. package/dist/esm/models/PairCapability.js +64 -0
  68. package/dist/esm/models/PairCapabilityRequest.d.ts +40 -0
  69. package/dist/esm/models/PairCapabilityRequest.js +47 -0
  70. package/dist/esm/models/PutForecasterCredentials403Response.d.ts +38 -0
  71. package/dist/esm/models/PutForecasterCredentials403Response.js +43 -0
  72. package/dist/esm/models/RightsizingClusterListResponse.d.ts +39 -0
  73. package/dist/esm/models/RightsizingClusterListResponse.js +48 -0
  74. package/dist/esm/models/RightsizingClusterResponse.d.ts +39 -0
  75. package/dist/esm/models/RightsizingClusterResponse.js +48 -0
  76. package/dist/esm/models/RightsizingClusterUtilization.d.ts +112 -0
  77. package/dist/esm/models/RightsizingClusterUtilization.js +95 -0
  78. package/dist/esm/models/RightsizingCollectRequest.d.ts +70 -0
  79. package/dist/esm/models/RightsizingCollectRequest.js +56 -0
  80. package/dist/esm/models/RightsizingMetricStats.d.ts +62 -0
  81. package/dist/esm/models/RightsizingMetricStats.js +63 -0
  82. package/dist/esm/models/RightsizingReport.d.ts +81 -0
  83. package/dist/esm/models/RightsizingReport.js +76 -0
  84. package/dist/esm/models/RightsizingReportListResponse.d.ts +39 -0
  85. package/dist/esm/models/RightsizingReportListResponse.js +48 -0
  86. package/dist/esm/models/RightsizingReportSummary.d.ts +74 -0
  87. package/dist/esm/models/RightsizingReportSummary.js +71 -0
  88. package/dist/esm/models/RightsizingVMReport.d.ts +53 -0
  89. package/dist/esm/models/RightsizingVMReport.js +57 -0
  90. package/dist/esm/models/StartInspectionRequest.d.ts +8 -1
  91. package/dist/esm/models/StartInspectionRequest.js +3 -0
  92. package/dist/esm/models/StopForecasterPair202Response.d.ts +45 -0
  93. package/dist/esm/models/StopForecasterPair202Response.js +49 -0
  94. package/dist/esm/models/UpdateGroupRequest.d.ts +0 -6
  95. package/dist/esm/models/UpdateGroupRequest.js +0 -2
  96. package/dist/esm/models/UpdateLabelVMsRequest.d.ts +38 -0
  97. package/dist/esm/models/UpdateLabelVMsRequest.js +43 -0
  98. package/dist/esm/models/VMFilterOptionsResponse.d.ts +56 -0
  99. package/dist/esm/models/VMFilterOptionsResponse.js +59 -0
  100. package/dist/esm/models/VMLabelsResponse.d.ts +38 -0
  101. package/dist/esm/models/VMLabelsResponse.js +47 -0
  102. package/dist/esm/models/VMNIC.d.ts +12 -0
  103. package/dist/esm/models/VMNIC.js +4 -0
  104. package/dist/esm/models/VcenterCredentials.d.ts +12 -0
  105. package/dist/esm/models/VcenterCredentials.js +4 -0
  106. package/dist/esm/models/VirtualMachine.d.ts +50 -2
  107. package/dist/esm/models/VirtualMachine.js +18 -2
  108. package/dist/esm/models/VirtualMachineDetail.d.ts +19 -0
  109. package/dist/esm/models/VirtualMachineDetail.js +7 -0
  110. package/dist/esm/models/VirtualMachineUpdateRequest.d.ts +38 -0
  111. package/dist/esm/models/VirtualMachineUpdateRequest.js +43 -0
  112. package/dist/esm/models/VmInspectionStatus.d.ts +6 -0
  113. package/dist/esm/models/VmInspectionStatus.js +4 -0
  114. package/dist/esm/models/VmUtilizationDetails.d.ts +116 -0
  115. package/dist/esm/models/VmUtilizationDetails.js +99 -0
  116. package/dist/esm/models/index.d.ts +39 -0
  117. package/dist/esm/models/index.js +39 -0
  118. package/dist/esm/runtime.js +2 -1
  119. package/dist/models/AgentStatus.d.ts +1 -1
  120. package/dist/models/AgentStatus.js +3 -3
  121. package/dist/models/ApplicationListResponse.d.ts +33 -0
  122. package/dist/models/ApplicationListResponse.js +51 -0
  123. package/dist/models/ApplicationOverview.d.ts +51 -0
  124. package/dist/models/ApplicationOverview.js +63 -0
  125. package/dist/models/ApplicationVM.d.ts +38 -0
  126. package/dist/models/ApplicationVM.js +54 -0
  127. package/dist/models/BenchmarkRun.d.ts +104 -0
  128. package/dist/models/BenchmarkRun.js +92 -0
  129. package/dist/models/CapabilityStatus.d.ts +33 -0
  130. package/dist/models/CapabilityStatus.js +51 -0
  131. package/dist/models/CapabilityStatusCapabilities.d.ts +45 -0
  132. package/dist/models/CapabilityStatusCapabilities.js +59 -0
  133. package/dist/models/ClusterFeatures.d.ts +54 -0
  134. package/dist/models/ClusterFeatures.js +62 -0
  135. package/dist/models/ClusterUtilization.d.ts +68 -0
  136. package/dist/models/ClusterUtilization.js +74 -0
  137. package/dist/models/CollectorStartRequest.d.ts +18 -6
  138. package/dist/models/CollectorStartRequest.js +7 -9
  139. package/dist/models/CreateGroupRequest.d.ts +0 -6
  140. package/dist/models/CreateGroupRequest.js +0 -2
  141. package/dist/models/CredentialStatus.d.ts +44 -0
  142. package/dist/models/CredentialStatus.js +58 -0
  143. package/dist/models/DatastoreDetail.d.ts +90 -0
  144. package/dist/models/DatastoreDetail.js +82 -0
  145. package/dist/models/DatastorePair.d.ts +50 -0
  146. package/dist/models/DatastorePair.js +60 -0
  147. package/dist/models/DeleteLabelGloballyResponse.d.ts +38 -0
  148. package/dist/models/DeleteLabelGloballyResponse.js +54 -0
  149. package/dist/models/EstimateRange.d.ts +44 -0
  150. package/dist/models/EstimateRange.js +52 -0
  151. package/dist/models/ExportInventory400Response.d.ts +32 -0
  152. package/dist/models/ExportInventory400Response.js +48 -0
  153. package/dist/models/ExportInventory500Response.d.ts +32 -0
  154. package/dist/models/ExportInventory500Response.js +48 -0
  155. package/dist/models/ForecastStats.d.ts +87 -0
  156. package/dist/models/ForecastStats.js +71 -0
  157. package/dist/models/ForecasterDatastoresRequest.d.ts +33 -0
  158. package/dist/models/ForecasterDatastoresRequest.js +49 -0
  159. package/dist/models/ForecasterPairStatus.d.ts +98 -0
  160. package/dist/models/ForecasterPairStatus.js +90 -0
  161. package/dist/models/ForecasterStartRequest.d.ts +58 -0
  162. package/dist/models/ForecasterStartRequest.js +60 -0
  163. package/dist/models/ForecasterStatus.d.ts +47 -0
  164. package/dist/models/ForecasterStatus.js +61 -0
  165. package/dist/models/Group.d.ts +0 -6
  166. package/dist/models/Group.js +0 -2
  167. package/dist/models/GroupResponse.d.ts +7 -0
  168. package/dist/models/GroupResponse.js +3 -0
  169. package/dist/models/InspectorStatus.d.ts +0 -17
  170. package/dist/models/InspectorStatus.js +1 -10
  171. package/dist/models/Inventory.d.ts +7 -1
  172. package/dist/models/Inventory.js +5 -3
  173. package/dist/models/InventoryData.d.ts +14 -0
  174. package/dist/models/InventoryData.js +6 -0
  175. package/dist/models/OperationCapability.d.ts +38 -0
  176. package/dist/models/OperationCapability.js +52 -0
  177. package/dist/models/PairCapability.d.ts +60 -0
  178. package/dist/models/PairCapability.js +72 -0
  179. package/dist/models/PairCapabilityRequest.d.ts +40 -0
  180. package/dist/models/PairCapabilityRequest.js +54 -0
  181. package/dist/models/PutForecasterCredentials403Response.d.ts +38 -0
  182. package/dist/models/PutForecasterCredentials403Response.js +50 -0
  183. package/dist/models/RightsizingClusterListResponse.d.ts +39 -0
  184. package/dist/models/RightsizingClusterListResponse.js +55 -0
  185. package/dist/models/RightsizingClusterResponse.d.ts +39 -0
  186. package/dist/models/RightsizingClusterResponse.js +55 -0
  187. package/dist/models/RightsizingClusterUtilization.d.ts +112 -0
  188. package/dist/models/RightsizingClusterUtilization.js +102 -0
  189. package/dist/models/RightsizingCollectRequest.d.ts +70 -0
  190. package/dist/models/RightsizingCollectRequest.js +63 -0
  191. package/dist/models/RightsizingMetricStats.d.ts +62 -0
  192. package/dist/models/RightsizingMetricStats.js +70 -0
  193. package/dist/models/RightsizingReport.d.ts +81 -0
  194. package/dist/models/RightsizingReport.js +83 -0
  195. package/dist/models/RightsizingReportListResponse.d.ts +39 -0
  196. package/dist/models/RightsizingReportListResponse.js +55 -0
  197. package/dist/models/RightsizingReportSummary.d.ts +74 -0
  198. package/dist/models/RightsizingReportSummary.js +78 -0
  199. package/dist/models/RightsizingVMReport.d.ts +53 -0
  200. package/dist/models/RightsizingVMReport.js +64 -0
  201. package/dist/models/StartInspectionRequest.d.ts +8 -1
  202. package/dist/models/StartInspectionRequest.js +3 -0
  203. package/dist/models/StopForecasterPair202Response.d.ts +45 -0
  204. package/dist/models/StopForecasterPair202Response.js +57 -0
  205. package/dist/models/UpdateGroupRequest.d.ts +0 -6
  206. package/dist/models/UpdateGroupRequest.js +0 -2
  207. package/dist/models/UpdateLabelVMsRequest.d.ts +38 -0
  208. package/dist/models/UpdateLabelVMsRequest.js +50 -0
  209. package/dist/models/VMFilterOptionsResponse.d.ts +56 -0
  210. package/dist/models/VMFilterOptionsResponse.js +66 -0
  211. package/dist/models/VMLabelsResponse.d.ts +38 -0
  212. package/dist/models/VMLabelsResponse.js +54 -0
  213. package/dist/models/VMNIC.d.ts +12 -0
  214. package/dist/models/VMNIC.js +4 -0
  215. package/dist/models/VcenterCredentials.d.ts +12 -0
  216. package/dist/models/VcenterCredentials.js +4 -0
  217. package/dist/models/VirtualMachine.d.ts +50 -2
  218. package/dist/models/VirtualMachine.js +18 -2
  219. package/dist/models/VirtualMachineDetail.d.ts +19 -0
  220. package/dist/models/VirtualMachineDetail.js +7 -0
  221. package/dist/models/VirtualMachineUpdateRequest.d.ts +38 -0
  222. package/dist/models/VirtualMachineUpdateRequest.js +50 -0
  223. package/dist/models/VmInspectionStatus.d.ts +6 -0
  224. package/dist/models/VmInspectionStatus.js +4 -0
  225. package/dist/models/VmUtilizationDetails.d.ts +116 -0
  226. package/dist/models/VmUtilizationDetails.js +106 -0
  227. package/dist/models/index.d.ts +39 -0
  228. package/dist/models/index.js +39 -0
  229. package/dist/runtime.js +2 -1
  230. package/docs/AgentStatus.md +2 -2
  231. package/docs/ApplicationListResponse.md +34 -0
  232. package/docs/ApplicationOverview.md +40 -0
  233. package/docs/ApplicationVM.md +36 -0
  234. package/docs/BenchmarkRun.md +58 -0
  235. package/docs/CapabilityStatus.md +34 -0
  236. package/docs/CapabilityStatusCapabilities.md +38 -0
  237. package/docs/ClusterFeatures.md +38 -0
  238. package/docs/ClusterUtilization.md +46 -0
  239. package/docs/CollectorStartRequest.md +5 -0
  240. package/docs/CreateGroupRequest.md +0 -2
  241. package/docs/CredentialStatus.md +38 -0
  242. package/docs/DatastoreDetail.md +50 -0
  243. package/docs/DatastorePair.md +40 -0
  244. package/docs/DefaultApi.md +2255 -319
  245. package/docs/DeleteLabelGloballyResponse.md +36 -0
  246. package/docs/EstimateRange.md +39 -0
  247. package/docs/ExportInventory400Response.md +34 -0
  248. package/docs/ExportInventory500Response.md +34 -0
  249. package/docs/ForecastStats.md +52 -0
  250. package/docs/ForecasterDatastoresRequest.md +34 -0
  251. package/docs/ForecasterPairStatus.md +52 -0
  252. package/docs/ForecasterStartRequest.md +42 -0
  253. package/docs/ForecasterStatus.md +36 -0
  254. package/docs/GetInventory200Response.md +4 -2
  255. package/docs/Group.md +0 -2
  256. package/docs/GroupResponse.md +2 -0
  257. package/docs/InspectorStatus.md +0 -4
  258. package/docs/Inventory.md +4 -2
  259. package/docs/InventoryData.md +4 -0
  260. package/docs/OperationCapability.md +36 -0
  261. package/docs/PairCapability.md +40 -0
  262. package/docs/PairCapabilityRequest.md +36 -0
  263. package/docs/PutForecasterCredentials403Response.md +36 -0
  264. package/docs/RightsizingClusterListResponse.md +36 -0
  265. package/docs/RightsizingClusterResponse.md +36 -0
  266. package/docs/RightsizingClusterUtilization.md +60 -0
  267. package/docs/RightsizingCollectRequest.md +46 -0
  268. package/docs/RightsizingMetricStats.md +44 -0
  269. package/docs/RightsizingReport.md +50 -0
  270. package/docs/RightsizingReportListResponse.md +36 -0
  271. package/docs/RightsizingReportSummary.md +49 -0
  272. package/docs/RightsizingVMReport.md +40 -0
  273. package/docs/StartInspectionRequest.md +3 -1
  274. package/docs/StopForecasterPair202Response.md +36 -0
  275. package/docs/UpdateGroupRequest.md +0 -2
  276. package/docs/UpdateLabelVMsRequest.md +36 -0
  277. package/docs/VMFilterOptionsResponse.md +42 -0
  278. package/docs/VMLabelsResponse.md +36 -0
  279. package/docs/VMNIC.md +4 -0
  280. package/docs/VcenterCredentials.md +4 -0
  281. package/docs/VirtualMachine.md +18 -2
  282. package/docs/VirtualMachineDetail.md +6 -0
  283. package/docs/VirtualMachineUpdateRequest.md +36 -0
  284. package/docs/VmInspectionStatus.md +2 -0
  285. package/docs/VmUtilizationDetails.md +62 -0
  286. package/package.json +1 -1
  287. package/src/apis/DefaultApi.ts +2657 -440
  288. package/src/models/AgentStatus.ts +4 -4
  289. package/src/models/ApplicationListResponse.ts +74 -0
  290. package/src/models/ApplicationOverview.ts +101 -0
  291. package/src/models/ApplicationVM.ts +75 -0
  292. package/src/models/BenchmarkRun.ts +171 -0
  293. package/src/models/CapabilityStatus.ts +74 -0
  294. package/src/models/CapabilityStatusCapabilities.ts +92 -0
  295. package/src/models/ClusterFeatures.ts +94 -0
  296. package/src/models/ClusterUtilization.ts +120 -0
  297. package/src/models/CollectorStartRequest.ts +25 -12
  298. package/src/models/CreateGroupRequest.ts +0 -8
  299. package/src/models/CredentialStatus.ts +84 -0
  300. package/src/models/DatastoreDetail.ts +146 -0
  301. package/src/models/DatastorePair.ts +92 -0
  302. package/src/models/DeleteLabelGloballyResponse.ts +75 -0
  303. package/src/models/EstimateRange.ts +81 -0
  304. package/src/models/ExportInventory400Response.ts +65 -0
  305. package/src/models/ExportInventory500Response.ts +65 -0
  306. package/src/models/ForecastStats.ts +147 -0
  307. package/src/models/ForecasterDatastoresRequest.ts +73 -0
  308. package/src/models/ForecasterPairStatus.ts +158 -0
  309. package/src/models/ForecasterStartRequest.ts +113 -0
  310. package/src/models/ForecasterStatus.ts +93 -0
  311. package/src/models/Group.ts +0 -8
  312. package/src/models/GroupResponse.ts +15 -0
  313. package/src/models/InspectorStatus.ts +1 -28
  314. package/src/models/Inventory.ts +12 -4
  315. package/src/models/InventoryData.ts +30 -0
  316. package/src/models/OperationCapability.ts +74 -0
  317. package/src/models/PairCapability.ts +106 -0
  318. package/src/models/PairCapabilityRequest.ts +89 -0
  319. package/src/models/PutForecasterCredentials403Response.ts +73 -0
  320. package/src/models/RightsizingClusterListResponse.ts +83 -0
  321. package/src/models/RightsizingClusterResponse.ts +83 -0
  322. package/src/models/RightsizingClusterUtilization.ts +185 -0
  323. package/src/models/RightsizingCollectRequest.ts +123 -0
  324. package/src/models/RightsizingMetricStats.ts +111 -0
  325. package/src/models/RightsizingReport.ts +146 -0
  326. package/src/models/RightsizingReportListResponse.ts +83 -0
  327. package/src/models/RightsizingReportSummary.ts +129 -0
  328. package/src/models/RightsizingVMReport.ts +101 -0
  329. package/src/models/StartInspectionRequest.ts +17 -1
  330. package/src/models/StopForecasterPair202Response.ts +83 -0
  331. package/src/models/UpdateGroupRequest.ts +0 -8
  332. package/src/models/UpdateLabelVMsRequest.ts +73 -0
  333. package/src/models/VMFilterOptionsResponse.ts +102 -0
  334. package/src/models/VMLabelsResponse.ts +75 -0
  335. package/src/models/VMNIC.ts +16 -0
  336. package/src/models/VcenterCredentials.ts +16 -0
  337. package/src/models/VirtualMachine.ts +68 -4
  338. package/src/models/VirtualMachineDetail.ts +31 -0
  339. package/src/models/VirtualMachineUpdateRequest.ts +73 -0
  340. package/src/models/VmInspectionStatus.ts +9 -0
  341. package/src/models/VmUtilizationDetails.ts +192 -0
  342. package/src/models/index.ts +39 -0
  343. package/src/runtime.ts +1 -2
@@ -0,0 +1,89 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Assisted Migration Agent API
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document: v1
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime.js';
16
+ import type { VcenterCredentials } from './VcenterCredentials.js';
17
+ import {
18
+ VcenterCredentialsFromJSON,
19
+ VcenterCredentialsFromJSONTyped,
20
+ VcenterCredentialsToJSON,
21
+ VcenterCredentialsToJSONTyped,
22
+ } from './VcenterCredentials.js';
23
+ import type { DatastorePair } from './DatastorePair.js';
24
+ import {
25
+ DatastorePairFromJSON,
26
+ DatastorePairFromJSONTyped,
27
+ DatastorePairToJSON,
28
+ DatastorePairToJSONTyped,
29
+ } from './DatastorePair.js';
30
+
31
+ /**
32
+ *
33
+ * @export
34
+ * @interface PairCapabilityRequest
35
+ */
36
+ export interface PairCapabilityRequest {
37
+ /**
38
+ *
39
+ * @type {VcenterCredentials}
40
+ * @memberof PairCapabilityRequest
41
+ */
42
+ credentials?: VcenterCredentials;
43
+ /**
44
+ *
45
+ * @type {Array<DatastorePair>}
46
+ * @memberof PairCapabilityRequest
47
+ */
48
+ pairs: Array<DatastorePair>;
49
+ }
50
+
51
+ /**
52
+ * Check if a given object implements the PairCapabilityRequest interface.
53
+ */
54
+ export function instanceOfPairCapabilityRequest(value: object): value is PairCapabilityRequest {
55
+ if (!('pairs' in value) || value['pairs'] === undefined) return false;
56
+ return true;
57
+ }
58
+
59
+ export function PairCapabilityRequestFromJSON(json: any): PairCapabilityRequest {
60
+ return PairCapabilityRequestFromJSONTyped(json, false);
61
+ }
62
+
63
+ export function PairCapabilityRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): PairCapabilityRequest {
64
+ if (json == null) {
65
+ return json;
66
+ }
67
+ return {
68
+
69
+ 'credentials': json['credentials'] == null ? undefined : VcenterCredentialsFromJSON(json['credentials']),
70
+ 'pairs': ((json['pairs'] as Array<any>).map(DatastorePairFromJSON)),
71
+ };
72
+ }
73
+
74
+ export function PairCapabilityRequestToJSON(json: any): PairCapabilityRequest {
75
+ return PairCapabilityRequestToJSONTyped(json, false);
76
+ }
77
+
78
+ export function PairCapabilityRequestToJSONTyped(value?: PairCapabilityRequest | null, ignoreDiscriminator: boolean = false): any {
79
+ if (value == null) {
80
+ return value;
81
+ }
82
+
83
+ return {
84
+
85
+ 'credentials': VcenterCredentialsToJSON(value['credentials']),
86
+ 'pairs': ((value['pairs'] as Array<any>).map(DatastorePairToJSON)),
87
+ };
88
+ }
89
+
@@ -0,0 +1,73 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Assisted Migration Agent API
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document: v1
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime.js';
16
+ /**
17
+ *
18
+ * @export
19
+ * @interface PutForecasterCredentials403Response
20
+ */
21
+ export interface PutForecasterCredentials403Response {
22
+ /**
23
+ *
24
+ * @type {string}
25
+ * @memberof PutForecasterCredentials403Response
26
+ */
27
+ error?: string;
28
+ /**
29
+ *
30
+ * @type {Array<string>}
31
+ * @memberof PutForecasterCredentials403Response
32
+ */
33
+ missingPrivileges?: Array<string>;
34
+ }
35
+
36
+ /**
37
+ * Check if a given object implements the PutForecasterCredentials403Response interface.
38
+ */
39
+ export function instanceOfPutForecasterCredentials403Response(value: object): value is PutForecasterCredentials403Response {
40
+ return true;
41
+ }
42
+
43
+ export function PutForecasterCredentials403ResponseFromJSON(json: any): PutForecasterCredentials403Response {
44
+ return PutForecasterCredentials403ResponseFromJSONTyped(json, false);
45
+ }
46
+
47
+ export function PutForecasterCredentials403ResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): PutForecasterCredentials403Response {
48
+ if (json == null) {
49
+ return json;
50
+ }
51
+ return {
52
+
53
+ 'error': json['error'] == null ? undefined : json['error'],
54
+ 'missingPrivileges': json['missingPrivileges'] == null ? undefined : json['missingPrivileges'],
55
+ };
56
+ }
57
+
58
+ export function PutForecasterCredentials403ResponseToJSON(json: any): PutForecasterCredentials403Response {
59
+ return PutForecasterCredentials403ResponseToJSONTyped(json, false);
60
+ }
61
+
62
+ export function PutForecasterCredentials403ResponseToJSONTyped(value?: PutForecasterCredentials403Response | null, ignoreDiscriminator: boolean = false): any {
63
+ if (value == null) {
64
+ return value;
65
+ }
66
+
67
+ return {
68
+
69
+ 'error': value['error'],
70
+ 'missingPrivileges': value['missingPrivileges'],
71
+ };
72
+ }
73
+
@@ -0,0 +1,83 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Assisted Migration Agent API
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document: v1
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime.js';
16
+ import type { RightsizingClusterUtilization } from './RightsizingClusterUtilization.js';
17
+ import {
18
+ RightsizingClusterUtilizationFromJSON,
19
+ RightsizingClusterUtilizationFromJSONTyped,
20
+ RightsizingClusterUtilizationToJSON,
21
+ RightsizingClusterUtilizationToJSONTyped,
22
+ } from './RightsizingClusterUtilization.js';
23
+
24
+ /**
25
+ *
26
+ * @export
27
+ * @interface RightsizingClusterListResponse
28
+ */
29
+ export interface RightsizingClusterListResponse {
30
+ /**
31
+ * The report ID this data was aggregated from
32
+ * @type {string}
33
+ * @memberof RightsizingClusterListResponse
34
+ */
35
+ report_id: string;
36
+ /**
37
+ *
38
+ * @type {Array<RightsizingClusterUtilization>}
39
+ * @memberof RightsizingClusterListResponse
40
+ */
41
+ clusters: Array<RightsizingClusterUtilization>;
42
+ }
43
+
44
+ /**
45
+ * Check if a given object implements the RightsizingClusterListResponse interface.
46
+ */
47
+ export function instanceOfRightsizingClusterListResponse(value: object): value is RightsizingClusterListResponse {
48
+ if (!('report_id' in value) || value['report_id'] === undefined) return false;
49
+ if (!('clusters' in value) || value['clusters'] === undefined) return false;
50
+ return true;
51
+ }
52
+
53
+ export function RightsizingClusterListResponseFromJSON(json: any): RightsizingClusterListResponse {
54
+ return RightsizingClusterListResponseFromJSONTyped(json, false);
55
+ }
56
+
57
+ export function RightsizingClusterListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RightsizingClusterListResponse {
58
+ if (json == null) {
59
+ return json;
60
+ }
61
+ return {
62
+
63
+ 'report_id': json['report_id'],
64
+ 'clusters': ((json['clusters'] as Array<any>).map(RightsizingClusterUtilizationFromJSON)),
65
+ };
66
+ }
67
+
68
+ export function RightsizingClusterListResponseToJSON(json: any): RightsizingClusterListResponse {
69
+ return RightsizingClusterListResponseToJSONTyped(json, false);
70
+ }
71
+
72
+ export function RightsizingClusterListResponseToJSONTyped(value?: RightsizingClusterListResponse | null, ignoreDiscriminator: boolean = false): any {
73
+ if (value == null) {
74
+ return value;
75
+ }
76
+
77
+ return {
78
+
79
+ 'report_id': value['report_id'],
80
+ 'clusters': ((value['clusters'] as Array<any>).map(RightsizingClusterUtilizationToJSON)),
81
+ };
82
+ }
83
+
@@ -0,0 +1,83 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Assisted Migration Agent API
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document: v1
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime.js';
16
+ import type { RightsizingClusterUtilization } from './RightsizingClusterUtilization.js';
17
+ import {
18
+ RightsizingClusterUtilizationFromJSON,
19
+ RightsizingClusterUtilizationFromJSONTyped,
20
+ RightsizingClusterUtilizationToJSON,
21
+ RightsizingClusterUtilizationToJSONTyped,
22
+ } from './RightsizingClusterUtilization.js';
23
+
24
+ /**
25
+ *
26
+ * @export
27
+ * @interface RightsizingClusterResponse
28
+ */
29
+ export interface RightsizingClusterResponse {
30
+ /**
31
+ * The report ID this data was aggregated from
32
+ * @type {string}
33
+ * @memberof RightsizingClusterResponse
34
+ */
35
+ report_id: string;
36
+ /**
37
+ *
38
+ * @type {RightsizingClusterUtilization}
39
+ * @memberof RightsizingClusterResponse
40
+ */
41
+ cluster: RightsizingClusterUtilization;
42
+ }
43
+
44
+ /**
45
+ * Check if a given object implements the RightsizingClusterResponse interface.
46
+ */
47
+ export function instanceOfRightsizingClusterResponse(value: object): value is RightsizingClusterResponse {
48
+ if (!('report_id' in value) || value['report_id'] === undefined) return false;
49
+ if (!('cluster' in value) || value['cluster'] === undefined) return false;
50
+ return true;
51
+ }
52
+
53
+ export function RightsizingClusterResponseFromJSON(json: any): RightsizingClusterResponse {
54
+ return RightsizingClusterResponseFromJSONTyped(json, false);
55
+ }
56
+
57
+ export function RightsizingClusterResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): RightsizingClusterResponse {
58
+ if (json == null) {
59
+ return json;
60
+ }
61
+ return {
62
+
63
+ 'report_id': json['report_id'],
64
+ 'cluster': RightsizingClusterUtilizationFromJSON(json['cluster']),
65
+ };
66
+ }
67
+
68
+ export function RightsizingClusterResponseToJSON(json: any): RightsizingClusterResponse {
69
+ return RightsizingClusterResponseToJSONTyped(json, false);
70
+ }
71
+
72
+ export function RightsizingClusterResponseToJSONTyped(value?: RightsizingClusterResponse | null, ignoreDiscriminator: boolean = false): any {
73
+ if (value == null) {
74
+ return value;
75
+ }
76
+
77
+ return {
78
+
79
+ 'report_id': value['report_id'],
80
+ 'cluster': RightsizingClusterUtilizationToJSON(value['cluster']),
81
+ };
82
+ }
83
+
@@ -0,0 +1,185 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Assisted Migration Agent API
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document: v1
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime.js';
16
+ /**
17
+ *
18
+ * @export
19
+ * @interface RightsizingClusterUtilization
20
+ */
21
+ export interface RightsizingClusterUtilization {
22
+ /**
23
+ * vSphere MoRef of the ClusterComputeResource (e.g. "domain-c123").
24
+ * @type {string}
25
+ * @memberof RightsizingClusterUtilization
26
+ */
27
+ cluster_id: string;
28
+ /**
29
+ * Display name of the cluster as reported by vCenter (e.g. "production-cluster").
30
+ * @type {string}
31
+ * @memberof RightsizingClusterUtilization
32
+ */
33
+ cluster_name: string;
34
+ /**
35
+ * Number of VMs with utilization data in this cluster
36
+ * @type {number}
37
+ * @memberof RightsizingClusterUtilization
38
+ */
39
+ vm_count: number;
40
+ /**
41
+ * SUM(vCPUs × cpu_avg%) / SUM(vCPUs) — weighted average CPU utilization (%)
42
+ * @type {number}
43
+ * @memberof RightsizingClusterUtilization
44
+ */
45
+ cpu_avg: number;
46
+ /**
47
+ * SUM(vCPUs × vm_p95%) / SUM(vCPUs). Weighted summary of per-VM p95 values — not a true cluster-wide p95 (which would require time-aligned samples).
48
+ *
49
+ * @type {number}
50
+ * @memberof RightsizingClusterUtilization
51
+ */
52
+ cpu_p95: number;
53
+ /**
54
+ * Weighted summary of per-VM max values (see cpu_p95 note)
55
+ * @type {number}
56
+ * @memberof RightsizingClusterUtilization
57
+ */
58
+ cpu_max: number;
59
+ /**
60
+ * SUM(provisionedMB × mem_avg%) / SUM(provisionedMB) — weighted average memory utilization (%)
61
+ * @type {number}
62
+ * @memberof RightsizingClusterUtilization
63
+ */
64
+ mem_avg: number;
65
+ /**
66
+ * Weighted summary of per-VM memory p95 values (see cpu_p95 note)
67
+ * @type {number}
68
+ * @memberof RightsizingClusterUtilization
69
+ */
70
+ mem_p95: number;
71
+ /**
72
+ * Weighted summary of per-VM memory max values (see cpu_p95 note)
73
+ * @type {number}
74
+ * @memberof RightsizingClusterUtilization
75
+ */
76
+ mem_max: number;
77
+ /**
78
+ * SUM(provisionedKB × disk%) / SUM(provisionedKB) — weighted average disk utilization (%)
79
+ * @type {number}
80
+ * @memberof RightsizingClusterUtilization
81
+ */
82
+ disk: number;
83
+ /**
84
+ * SUM(vCPUs × confidence%) / SUM(vCPUs). vCPU-weighted data coverage (0–100 %). Interpret utilization cautiously when low.
85
+ *
86
+ * @type {number}
87
+ * @memberof RightsizingClusterUtilization
88
+ */
89
+ confidence: number;
90
+ /**
91
+ * Sum of vCPU counts across all VMs in the cluster
92
+ * @type {number}
93
+ * @memberof RightsizingClusterUtilization
94
+ */
95
+ total_provisioned_cpus: number;
96
+ /**
97
+ * Sum of provisioned RAM (MB) across all VMs in the cluster
98
+ * @type {number}
99
+ * @memberof RightsizingClusterUtilization
100
+ */
101
+ total_provisioned_memory_mb: number;
102
+ /**
103
+ * Sum of provisioned disk (KB) across all VMs in the cluster
104
+ * @type {number}
105
+ * @memberof RightsizingClusterUtilization
106
+ */
107
+ total_provisioned_disk_kb: number;
108
+ }
109
+
110
+ /**
111
+ * Check if a given object implements the RightsizingClusterUtilization interface.
112
+ */
113
+ export function instanceOfRightsizingClusterUtilization(value: object): value is RightsizingClusterUtilization {
114
+ if (!('cluster_id' in value) || value['cluster_id'] === undefined) return false;
115
+ if (!('cluster_name' in value) || value['cluster_name'] === undefined) return false;
116
+ if (!('vm_count' in value) || value['vm_count'] === undefined) return false;
117
+ if (!('cpu_avg' in value) || value['cpu_avg'] === undefined) return false;
118
+ if (!('cpu_p95' in value) || value['cpu_p95'] === undefined) return false;
119
+ if (!('cpu_max' in value) || value['cpu_max'] === undefined) return false;
120
+ if (!('mem_avg' in value) || value['mem_avg'] === undefined) return false;
121
+ if (!('mem_p95' in value) || value['mem_p95'] === undefined) return false;
122
+ if (!('mem_max' in value) || value['mem_max'] === undefined) return false;
123
+ if (!('disk' in value) || value['disk'] === undefined) return false;
124
+ if (!('confidence' in value) || value['confidence'] === undefined) return false;
125
+ if (!('total_provisioned_cpus' in value) || value['total_provisioned_cpus'] === undefined) return false;
126
+ if (!('total_provisioned_memory_mb' in value) || value['total_provisioned_memory_mb'] === undefined) return false;
127
+ if (!('total_provisioned_disk_kb' in value) || value['total_provisioned_disk_kb'] === undefined) return false;
128
+ return true;
129
+ }
130
+
131
+ export function RightsizingClusterUtilizationFromJSON(json: any): RightsizingClusterUtilization {
132
+ return RightsizingClusterUtilizationFromJSONTyped(json, false);
133
+ }
134
+
135
+ export function RightsizingClusterUtilizationFromJSONTyped(json: any, ignoreDiscriminator: boolean): RightsizingClusterUtilization {
136
+ if (json == null) {
137
+ return json;
138
+ }
139
+ return {
140
+
141
+ 'cluster_id': json['cluster_id'],
142
+ 'cluster_name': json['cluster_name'],
143
+ 'vm_count': json['vm_count'],
144
+ 'cpu_avg': json['cpu_avg'],
145
+ 'cpu_p95': json['cpu_p95'],
146
+ 'cpu_max': json['cpu_max'],
147
+ 'mem_avg': json['mem_avg'],
148
+ 'mem_p95': json['mem_p95'],
149
+ 'mem_max': json['mem_max'],
150
+ 'disk': json['disk'],
151
+ 'confidence': json['confidence'],
152
+ 'total_provisioned_cpus': json['total_provisioned_cpus'],
153
+ 'total_provisioned_memory_mb': json['total_provisioned_memory_mb'],
154
+ 'total_provisioned_disk_kb': json['total_provisioned_disk_kb'],
155
+ };
156
+ }
157
+
158
+ export function RightsizingClusterUtilizationToJSON(json: any): RightsizingClusterUtilization {
159
+ return RightsizingClusterUtilizationToJSONTyped(json, false);
160
+ }
161
+
162
+ export function RightsizingClusterUtilizationToJSONTyped(value?: RightsizingClusterUtilization | null, ignoreDiscriminator: boolean = false): any {
163
+ if (value == null) {
164
+ return value;
165
+ }
166
+
167
+ return {
168
+
169
+ 'cluster_id': value['cluster_id'],
170
+ 'cluster_name': value['cluster_name'],
171
+ 'vm_count': value['vm_count'],
172
+ 'cpu_avg': value['cpu_avg'],
173
+ 'cpu_p95': value['cpu_p95'],
174
+ 'cpu_max': value['cpu_max'],
175
+ 'mem_avg': value['mem_avg'],
176
+ 'mem_p95': value['mem_p95'],
177
+ 'mem_max': value['mem_max'],
178
+ 'disk': value['disk'],
179
+ 'confidence': value['confidence'],
180
+ 'total_provisioned_cpus': value['total_provisioned_cpus'],
181
+ 'total_provisioned_memory_mb': value['total_provisioned_memory_mb'],
182
+ 'total_provisioned_disk_kb': value['total_provisioned_disk_kb'],
183
+ };
184
+ }
185
+
@@ -0,0 +1,123 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Assisted Migration Agent API
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document: v1
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime.js';
16
+ import type { VcenterCredentials } from './VcenterCredentials.js';
17
+ import {
18
+ VcenterCredentialsFromJSON,
19
+ VcenterCredentialsFromJSONTyped,
20
+ VcenterCredentialsToJSON,
21
+ VcenterCredentialsToJSONTyped,
22
+ } from './VcenterCredentials.js';
23
+
24
+ /**
25
+ *
26
+ * @export
27
+ * @interface RightsizingCollectRequest
28
+ */
29
+ export interface RightsizingCollectRequest {
30
+ /**
31
+ *
32
+ * @type {VcenterCredentials}
33
+ * @memberof RightsizingCollectRequest
34
+ */
35
+ credentials: VcenterCredentials;
36
+ /**
37
+ * Lookback window in hours (default 720 = 30 days)
38
+ * @type {number}
39
+ * @memberof RightsizingCollectRequest
40
+ */
41
+ lookback_hours?: number;
42
+ /**
43
+ * vSphere historical interval ID in seconds (300=day, 1800=week, 7200=month)
44
+ * @type {number}
45
+ * @memberof RightsizingCollectRequest
46
+ */
47
+ interval_id?: number;
48
+ /**
49
+ * Filter VMs by name substring
50
+ * @type {string}
51
+ * @memberof RightsizingCollectRequest
52
+ */
53
+ name_filter?: string;
54
+ /**
55
+ * MoRef value of a ClusterComputeResource to scope discovery (e.g. domain-c123)
56
+ * @type {string}
57
+ * @memberof RightsizingCollectRequest
58
+ */
59
+ cluster_id?: string;
60
+ /**
61
+ * Number of VMs per QueryPerf round-trip
62
+ * @type {number}
63
+ * @memberof RightsizingCollectRequest
64
+ */
65
+ batch_size?: number;
66
+ /**
67
+ * If true, discover VMs live from vSphere. If false (default), use the VMs already stored in the local inventory.
68
+ *
69
+ * @type {boolean}
70
+ * @memberof RightsizingCollectRequest
71
+ */
72
+ discover_vms?: boolean;
73
+ }
74
+
75
+ /**
76
+ * Check if a given object implements the RightsizingCollectRequest interface.
77
+ */
78
+ export function instanceOfRightsizingCollectRequest(value: object): value is RightsizingCollectRequest {
79
+ if (!('credentials' in value) || value['credentials'] === undefined) return false;
80
+ return true;
81
+ }
82
+
83
+ export function RightsizingCollectRequestFromJSON(json: any): RightsizingCollectRequest {
84
+ return RightsizingCollectRequestFromJSONTyped(json, false);
85
+ }
86
+
87
+ export function RightsizingCollectRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): RightsizingCollectRequest {
88
+ if (json == null) {
89
+ return json;
90
+ }
91
+ return {
92
+
93
+ 'credentials': VcenterCredentialsFromJSON(json['credentials']),
94
+ 'lookback_hours': json['lookback_hours'] == null ? undefined : json['lookback_hours'],
95
+ 'interval_id': json['interval_id'] == null ? undefined : json['interval_id'],
96
+ 'name_filter': json['name_filter'] == null ? undefined : json['name_filter'],
97
+ 'cluster_id': json['cluster_id'] == null ? undefined : json['cluster_id'],
98
+ 'batch_size': json['batch_size'] == null ? undefined : json['batch_size'],
99
+ 'discover_vms': json['discover_vms'] == null ? undefined : json['discover_vms'],
100
+ };
101
+ }
102
+
103
+ export function RightsizingCollectRequestToJSON(json: any): RightsizingCollectRequest {
104
+ return RightsizingCollectRequestToJSONTyped(json, false);
105
+ }
106
+
107
+ export function RightsizingCollectRequestToJSONTyped(value?: RightsizingCollectRequest | null, ignoreDiscriminator: boolean = false): any {
108
+ if (value == null) {
109
+ return value;
110
+ }
111
+
112
+ return {
113
+
114
+ 'credentials': VcenterCredentialsToJSON(value['credentials']),
115
+ 'lookback_hours': value['lookback_hours'],
116
+ 'interval_id': value['interval_id'],
117
+ 'name_filter': value['name_filter'],
118
+ 'cluster_id': value['cluster_id'],
119
+ 'batch_size': value['batch_size'],
120
+ 'discover_vms': value['discover_vms'],
121
+ };
122
+ }
123
+