@openshift-migration-advisor/agent-sdk 0.12.0-d4bdc4301890 → 0.12.0-e6e9d25bdc36

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 (110) hide show
  1. package/.openapi-generator/FILES +30 -0
  2. package/README.md +29 -2
  3. package/dist/apis/DefaultApi.d.ts +442 -0
  4. package/dist/apis/DefaultApi.js +484 -0
  5. package/dist/esm/apis/DefaultApi.d.ts +442 -0
  6. package/dist/esm/apis/DefaultApi.js +484 -0
  7. package/dist/esm/models/BenchmarkRun.d.ts +104 -0
  8. package/dist/esm/models/BenchmarkRun.js +85 -0
  9. package/dist/esm/models/DatastoreDetail.d.ts +90 -0
  10. package/dist/esm/models/DatastoreDetail.js +74 -0
  11. package/dist/esm/models/DatastorePair.d.ts +50 -0
  12. package/dist/esm/models/DatastorePair.js +53 -0
  13. package/dist/esm/models/EstimateRange.d.ts +44 -0
  14. package/dist/esm/models/EstimateRange.js +45 -0
  15. package/dist/esm/models/ForecastStats.d.ts +87 -0
  16. package/dist/esm/models/ForecastStats.js +64 -0
  17. package/dist/esm/models/ForecasterDatastoresRequest.d.ts +33 -0
  18. package/dist/esm/models/ForecasterDatastoresRequest.js +42 -0
  19. package/dist/esm/models/ForecasterPairStatus.d.ts +98 -0
  20. package/dist/esm/models/ForecasterPairStatus.js +82 -0
  21. package/dist/esm/models/ForecasterStartRequest.d.ts +58 -0
  22. package/dist/esm/models/ForecasterStartRequest.js +53 -0
  23. package/dist/esm/models/ForecasterStatus.d.ts +47 -0
  24. package/dist/esm/models/ForecasterStatus.js +53 -0
  25. package/dist/esm/models/PairCapability.d.ts +60 -0
  26. package/dist/esm/models/PairCapability.js +64 -0
  27. package/dist/esm/models/PairCapabilityRequest.d.ts +40 -0
  28. package/dist/esm/models/PairCapabilityRequest.js +47 -0
  29. package/dist/esm/models/PutForecasterCredentials403Response.d.ts +38 -0
  30. package/dist/esm/models/PutForecasterCredentials403Response.js +43 -0
  31. package/dist/esm/models/RightsizingClusterListResponse.d.ts +39 -0
  32. package/dist/esm/models/RightsizingClusterListResponse.js +48 -0
  33. package/dist/esm/models/RightsizingClusterUtilization.d.ts +106 -0
  34. package/dist/esm/models/RightsizingClusterUtilization.js +91 -0
  35. package/dist/esm/models/StopForecasterPair202Response.d.ts +45 -0
  36. package/dist/esm/models/StopForecasterPair202Response.js +49 -0
  37. package/dist/esm/models/VmUtilizationDetails.d.ts +18 -0
  38. package/dist/esm/models/VmUtilizationDetails.js +12 -0
  39. package/dist/esm/models/index.d.ts +15 -0
  40. package/dist/esm/models/index.js +15 -0
  41. package/dist/models/BenchmarkRun.d.ts +104 -0
  42. package/dist/models/BenchmarkRun.js +92 -0
  43. package/dist/models/DatastoreDetail.d.ts +90 -0
  44. package/dist/models/DatastoreDetail.js +82 -0
  45. package/dist/models/DatastorePair.d.ts +50 -0
  46. package/dist/models/DatastorePair.js +60 -0
  47. package/dist/models/EstimateRange.d.ts +44 -0
  48. package/dist/models/EstimateRange.js +52 -0
  49. package/dist/models/ForecastStats.d.ts +87 -0
  50. package/dist/models/ForecastStats.js +71 -0
  51. package/dist/models/ForecasterDatastoresRequest.d.ts +33 -0
  52. package/dist/models/ForecasterDatastoresRequest.js +49 -0
  53. package/dist/models/ForecasterPairStatus.d.ts +98 -0
  54. package/dist/models/ForecasterPairStatus.js +90 -0
  55. package/dist/models/ForecasterStartRequest.d.ts +58 -0
  56. package/dist/models/ForecasterStartRequest.js +60 -0
  57. package/dist/models/ForecasterStatus.d.ts +47 -0
  58. package/dist/models/ForecasterStatus.js +61 -0
  59. package/dist/models/PairCapability.d.ts +60 -0
  60. package/dist/models/PairCapability.js +72 -0
  61. package/dist/models/PairCapabilityRequest.d.ts +40 -0
  62. package/dist/models/PairCapabilityRequest.js +54 -0
  63. package/dist/models/PutForecasterCredentials403Response.d.ts +38 -0
  64. package/dist/models/PutForecasterCredentials403Response.js +50 -0
  65. package/dist/models/RightsizingClusterListResponse.d.ts +39 -0
  66. package/dist/models/RightsizingClusterListResponse.js +55 -0
  67. package/dist/models/RightsizingClusterUtilization.d.ts +106 -0
  68. package/dist/models/RightsizingClusterUtilization.js +98 -0
  69. package/dist/models/StopForecasterPair202Response.d.ts +45 -0
  70. package/dist/models/StopForecasterPair202Response.js +57 -0
  71. package/dist/models/VmUtilizationDetails.d.ts +18 -0
  72. package/dist/models/VmUtilizationDetails.js +12 -0
  73. package/dist/models/index.d.ts +15 -0
  74. package/dist/models/index.js +15 -0
  75. package/docs/BenchmarkRun.md +58 -0
  76. package/docs/DatastoreDetail.md +50 -0
  77. package/docs/DatastorePair.md +40 -0
  78. package/docs/DefaultApi.md +875 -66
  79. package/docs/EstimateRange.md +39 -0
  80. package/docs/ForecastStats.md +52 -0
  81. package/docs/ForecasterDatastoresRequest.md +34 -0
  82. package/docs/ForecasterPairStatus.md +52 -0
  83. package/docs/ForecasterStartRequest.md +42 -0
  84. package/docs/ForecasterStatus.md +36 -0
  85. package/docs/PairCapability.md +40 -0
  86. package/docs/PairCapabilityRequest.md +36 -0
  87. package/docs/PutForecasterCredentials403Response.md +36 -0
  88. package/docs/RightsizingClusterListResponse.md +36 -0
  89. package/docs/RightsizingClusterUtilization.md +58 -0
  90. package/docs/StopForecasterPair202Response.md +36 -0
  91. package/docs/VmUtilizationDetails.md +6 -0
  92. package/package.json +1 -1
  93. package/src/apis/DefaultApi.ts +919 -17
  94. package/src/models/BenchmarkRun.ts +171 -0
  95. package/src/models/DatastoreDetail.ts +146 -0
  96. package/src/models/DatastorePair.ts +92 -0
  97. package/src/models/EstimateRange.ts +81 -0
  98. package/src/models/ForecastStats.ts +147 -0
  99. package/src/models/ForecasterDatastoresRequest.ts +73 -0
  100. package/src/models/ForecasterPairStatus.ts +158 -0
  101. package/src/models/ForecasterStartRequest.ts +113 -0
  102. package/src/models/ForecasterStatus.ts +93 -0
  103. package/src/models/PairCapability.ts +106 -0
  104. package/src/models/PairCapabilityRequest.ts +89 -0
  105. package/src/models/PutForecasterCredentials403Response.ts +73 -0
  106. package/src/models/RightsizingClusterListResponse.ts +83 -0
  107. package/src/models/RightsizingClusterUtilization.ts +176 -0
  108. package/src/models/StopForecasterPair202Response.ts +83 -0
  109. package/src/models/VmUtilizationDetails.ts +27 -0
  110. package/src/models/index.ts +15 -0
@@ -23,6 +23,11 @@ import {
23
23
  AgentStatusFromJSON,
24
24
  AgentStatusToJSON,
25
25
  } from '../models/AgentStatus.js';
26
+ import {
27
+ type BenchmarkRun,
28
+ BenchmarkRunFromJSON,
29
+ BenchmarkRunToJSON,
30
+ } from '../models/BenchmarkRun.js';
26
31
  import {
27
32
  type CollectorStartRequest,
28
33
  CollectorStartRequestFromJSON,
@@ -38,6 +43,31 @@ import {
38
43
  CreateGroupRequestFromJSON,
39
44
  CreateGroupRequestToJSON,
40
45
  } from '../models/CreateGroupRequest.js';
46
+ import {
47
+ type DatastoreDetail,
48
+ DatastoreDetailFromJSON,
49
+ DatastoreDetailToJSON,
50
+ } from '../models/DatastoreDetail.js';
51
+ import {
52
+ type ForecastStats,
53
+ ForecastStatsFromJSON,
54
+ ForecastStatsToJSON,
55
+ } from '../models/ForecastStats.js';
56
+ import {
57
+ type ForecasterDatastoresRequest,
58
+ ForecasterDatastoresRequestFromJSON,
59
+ ForecasterDatastoresRequestToJSON,
60
+ } from '../models/ForecasterDatastoresRequest.js';
61
+ import {
62
+ type ForecasterStartRequest,
63
+ ForecasterStartRequestFromJSON,
64
+ ForecasterStartRequestToJSON,
65
+ } from '../models/ForecasterStartRequest.js';
66
+ import {
67
+ type ForecasterStatus,
68
+ ForecasterStatusFromJSON,
69
+ ForecasterStatusToJSON,
70
+ } from '../models/ForecasterStatus.js';
41
71
  import {
42
72
  type GetInventory200Response,
43
73
  GetInventory200ResponseFromJSON,
@@ -63,6 +93,26 @@ import {
63
93
  InspectorStatusFromJSON,
64
94
  InspectorStatusToJSON,
65
95
  } from '../models/InspectorStatus.js';
96
+ import {
97
+ type PairCapability,
98
+ PairCapabilityFromJSON,
99
+ PairCapabilityToJSON,
100
+ } from '../models/PairCapability.js';
101
+ import {
102
+ type PairCapabilityRequest,
103
+ PairCapabilityRequestFromJSON,
104
+ PairCapabilityRequestToJSON,
105
+ } from '../models/PairCapabilityRequest.js';
106
+ import {
107
+ type PutForecasterCredentials403Response,
108
+ PutForecasterCredentials403ResponseFromJSON,
109
+ PutForecasterCredentials403ResponseToJSON,
110
+ } from '../models/PutForecasterCredentials403Response.js';
111
+ import {
112
+ type RightsizingClusterListResponse,
113
+ RightsizingClusterListResponseFromJSON,
114
+ RightsizingClusterListResponseToJSON,
115
+ } from '../models/RightsizingClusterListResponse.js';
66
116
  import {
67
117
  type RightsizingCollectRequest,
68
118
  RightsizingCollectRequestFromJSON,
@@ -88,6 +138,11 @@ import {
88
138
  StartInspectionRequestFromJSON,
89
139
  StartInspectionRequestToJSON,
90
140
  } from '../models/StartInspectionRequest.js';
141
+ import {
142
+ type StopForecasterPair202Response,
143
+ StopForecasterPair202ResponseFromJSON,
144
+ StopForecasterPair202ResponseToJSON,
145
+ } from '../models/StopForecasterPair202Response.js';
91
146
  import {
92
147
  type UpdateGroupRequest,
93
148
  UpdateGroupRequestFromJSON,
@@ -133,10 +188,26 @@ export interface CreateGroupOperationRequest {
133
188
  createGroupRequest: CreateGroupRequest;
134
189
  }
135
190
 
191
+ export interface DeleteForecasterRunRequest {
192
+ id: number;
193
+ }
194
+
136
195
  export interface DeleteGroupRequest {
137
196
  id: string;
138
197
  }
139
198
 
199
+ export interface GetForecasterDatastoresRequest {
200
+ forecasterDatastoresRequest?: ForecasterDatastoresRequest;
201
+ }
202
+
203
+ export interface GetForecasterRunsRequest {
204
+ pairName?: string;
205
+ }
206
+
207
+ export interface GetForecasterStatsRequest {
208
+ pairName: string;
209
+ }
210
+
140
211
  export interface GetGroupRequest {
141
212
  id: string;
142
213
  sort?: Array<string>;
@@ -158,6 +229,10 @@ export interface GetRightsizingReportRequest {
158
229
  id: string;
159
230
  }
160
231
 
232
+ export interface GetRightsizingReportClustersRequest {
233
+ reportId: string;
234
+ }
235
+
161
236
  export interface GetVMRequest {
162
237
  id: string;
163
238
  }
@@ -179,6 +254,14 @@ export interface ListGroupsRequest {
179
254
  pageSize?: number;
180
255
  }
181
256
 
257
+ export interface PostForecasterPairCapabilitiesRequest {
258
+ pairCapabilityRequest: PairCapabilityRequest;
259
+ }
260
+
261
+ export interface PutForecasterCredentialsRequest {
262
+ vcenterCredentials: VcenterCredentials;
263
+ }
264
+
182
265
  export interface PutInspectorCredentialsRequest {
183
266
  vcenterCredentials: VcenterCredentials;
184
267
  }
@@ -199,10 +282,18 @@ export interface StartCollectorRequest {
199
282
  collectorStartRequest: CollectorStartRequest;
200
283
  }
201
284
 
285
+ export interface StartForecasterRequest {
286
+ forecasterStartRequest: ForecasterStartRequest;
287
+ }
288
+
202
289
  export interface StartInspectionOperationRequest {
203
290
  startInspectionRequest: StartInspectionRequest;
204
291
  }
205
292
 
293
+ export interface StopForecasterPairRequest {
294
+ name: string;
295
+ }
296
+
206
297
  export interface TriggerRightsizingCollectionRequest {
207
298
  rightsizingCollectRequest: RightsizingCollectRequest;
208
299
  }
@@ -242,6 +333,29 @@ export interface DefaultApiInterface {
242
333
  */
243
334
  createGroup(requestParameters: CreateGroupOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Group>;
244
335
 
336
+ /**
337
+ * Creates request options for deleteForecasterRun without sending the request
338
+ * @param {number} id Run ID
339
+ * @throws {RequiredError}
340
+ * @memberof DefaultApiInterface
341
+ */
342
+ deleteForecasterRunRequestOpts(requestParameters: DeleteForecasterRunRequest): Promise<runtime.RequestOpts>;
343
+
344
+ /**
345
+ *
346
+ * @summary Delete a benchmark run
347
+ * @param {number} id Run ID
348
+ * @param {*} [options] Override http request option.
349
+ * @throws {RequiredError}
350
+ * @memberof DefaultApiInterface
351
+ */
352
+ deleteForecasterRunRaw(requestParameters: DeleteForecasterRunRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
353
+
354
+ /**
355
+ * Delete a benchmark run
356
+ */
357
+ deleteForecasterRun(requestParameters: DeleteForecasterRunRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
358
+
245
359
  /**
246
360
  * Creates request options for deleteGroup without sending the request
247
361
  * @param {string} id Group ID
@@ -307,6 +421,100 @@ export interface DefaultApiInterface {
307
421
  */
308
422
  getCollectorStatus(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CollectorStatus>;
309
423
 
424
+ /**
425
+ * Creates request options for getForecasterDatastores without sending the request
426
+ * @param {ForecasterDatastoresRequest} [forecasterDatastoresRequest]
427
+ * @throws {RequiredError}
428
+ * @memberof DefaultApiInterface
429
+ */
430
+ getForecasterDatastoresRequestOpts(requestParameters: GetForecasterDatastoresRequest): Promise<runtime.RequestOpts>;
431
+
432
+ /**
433
+ * Returns datastores from the forklift-collected inventory with storage vendor and capability information derived from NAA device identifiers. No vSphere credentials are required.
434
+ * @summary List available datastores
435
+ * @param {ForecasterDatastoresRequest} [forecasterDatastoresRequest]
436
+ * @param {*} [options] Override http request option.
437
+ * @throws {RequiredError}
438
+ * @memberof DefaultApiInterface
439
+ */
440
+ getForecasterDatastoresRaw(requestParameters: GetForecasterDatastoresRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<DatastoreDetail>>>;
441
+
442
+ /**
443
+ * Returns datastores from the forklift-collected inventory with storage vendor and capability information derived from NAA device identifiers. No vSphere credentials are required.
444
+ * List available datastores
445
+ */
446
+ getForecasterDatastores(requestParameters: GetForecasterDatastoresRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<DatastoreDetail>>;
447
+
448
+ /**
449
+ * Creates request options for getForecasterRuns without sending the request
450
+ * @param {string} [pairName] Filter runs by pair name
451
+ * @throws {RequiredError}
452
+ * @memberof DefaultApiInterface
453
+ */
454
+ getForecasterRunsRequestOpts(requestParameters: GetForecasterRunsRequest): Promise<runtime.RequestOpts>;
455
+
456
+ /**
457
+ * Returns individual benchmark iterations. Optionally filtered by pair name.
458
+ * @summary List benchmark runs
459
+ * @param {string} [pairName] Filter runs by pair name
460
+ * @param {*} [options] Override http request option.
461
+ * @throws {RequiredError}
462
+ * @memberof DefaultApiInterface
463
+ */
464
+ getForecasterRunsRaw(requestParameters: GetForecasterRunsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<BenchmarkRun>>>;
465
+
466
+ /**
467
+ * Returns individual benchmark iterations. Optionally filtered by pair name.
468
+ * List benchmark runs
469
+ */
470
+ getForecasterRuns(requestParameters: GetForecasterRunsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<BenchmarkRun>>;
471
+
472
+ /**
473
+ * Creates request options for getForecasterStats without sending the request
474
+ * @param {string} pairName Pair name to get statistics for
475
+ * @throws {RequiredError}
476
+ * @memberof DefaultApiInterface
477
+ */
478
+ getForecasterStatsRequestOpts(requestParameters: GetForecasterStatsRequest): Promise<runtime.RequestOpts>;
479
+
480
+ /**
481
+ * Returns computed statistics for a datastore pair\'s benchmark results. Primary endpoint for the UI to display migration time estimates.
482
+ * @summary Get throughput statistics
483
+ * @param {string} pairName Pair name to get statistics for
484
+ * @param {*} [options] Override http request option.
485
+ * @throws {RequiredError}
486
+ * @memberof DefaultApiInterface
487
+ */
488
+ getForecasterStatsRaw(requestParameters: GetForecasterStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ForecastStats>>;
489
+
490
+ /**
491
+ * Returns computed statistics for a datastore pair\'s benchmark results. Primary endpoint for the UI to display migration time estimates.
492
+ * Get throughput statistics
493
+ */
494
+ getForecasterStats(requestParameters: GetForecasterStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ForecastStats>;
495
+
496
+ /**
497
+ * Creates request options for getForecasterStatus without sending the request
498
+ * @throws {RequiredError}
499
+ * @memberof DefaultApiInterface
500
+ */
501
+ getForecasterStatusRequestOpts(): Promise<runtime.RequestOpts>;
502
+
503
+ /**
504
+ * Returns current service state with per-pair progress details.
505
+ * @summary Poll forecaster status
506
+ * @param {*} [options] Override http request option.
507
+ * @throws {RequiredError}
508
+ * @memberof DefaultApiInterface
509
+ */
510
+ getForecasterStatusRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ForecasterStatus>>;
511
+
512
+ /**
513
+ * Returns current service state with per-pair progress details.
514
+ * Poll forecaster status
515
+ */
516
+ getForecasterStatus(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ForecasterStatus>;
517
+
310
518
  /**
311
519
  * Creates request options for getGroup without sending the request
312
520
  * @param {string} id Group ID
@@ -407,6 +615,27 @@ export interface DefaultApiInterface {
407
615
  */
408
616
  getInventory(requestParameters: GetInventoryRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GetInventory200Response>;
409
617
 
618
+ /**
619
+ * Creates request options for getLatestRightsizingClusters without sending the request
620
+ * @throws {RequiredError}
621
+ * @memberof DefaultApiInterface
622
+ */
623
+ getLatestRightsizingClustersRequestOpts(): Promise<runtime.RequestOpts>;
624
+
625
+ /**
626
+ *
627
+ * @summary Get cluster-level utilization aggregates for the latest completed report
628
+ * @param {*} [options] Override http request option.
629
+ * @throws {RequiredError}
630
+ * @memberof DefaultApiInterface
631
+ */
632
+ getLatestRightsizingClustersRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RightsizingClusterListResponse>>;
633
+
634
+ /**
635
+ * Get cluster-level utilization aggregates for the latest completed report
636
+ */
637
+ getLatestRightsizingClusters(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RightsizingClusterListResponse>;
638
+
410
639
  /**
411
640
  * Creates request options for getRightsizingReport without sending the request
412
641
  * @param {string} id Report UUID
@@ -430,6 +659,29 @@ export interface DefaultApiInterface {
430
659
  */
431
660
  getRightsizingReport(requestParameters: GetRightsizingReportRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RightsizingReport>;
432
661
 
662
+ /**
663
+ * Creates request options for getRightsizingReportClusters without sending the request
664
+ * @param {string} reportId Rightsizing report UUID
665
+ * @throws {RequiredError}
666
+ * @memberof DefaultApiInterface
667
+ */
668
+ getRightsizingReportClustersRequestOpts(requestParameters: GetRightsizingReportClustersRequest): Promise<runtime.RequestOpts>;
669
+
670
+ /**
671
+ *
672
+ * @summary Get cluster-level utilization aggregates for a specific report
673
+ * @param {string} reportId Rightsizing report UUID
674
+ * @param {*} [options] Override http request option.
675
+ * @throws {RequiredError}
676
+ * @memberof DefaultApiInterface
677
+ */
678
+ getRightsizingReportClustersRaw(requestParameters: GetRightsizingReportClustersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RightsizingClusterListResponse>>;
679
+
680
+ /**
681
+ * Get cluster-level utilization aggregates for a specific report
682
+ */
683
+ getRightsizingReportClusters(requestParameters: GetRightsizingReportClustersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RightsizingClusterListResponse>;
684
+
433
685
  /**
434
686
  * Creates request options for getVM without sending the request
435
687
  * @param {string} id VirtualMachine id
@@ -574,6 +826,54 @@ export interface DefaultApiInterface {
574
826
  */
575
827
  listRightsizingReports(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RightsizingReportListResponse>;
576
828
 
829
+ /**
830
+ * Creates request options for postForecasterPairCapabilities without sending the request
831
+ * @param {PairCapabilityRequest} pairCapabilityRequest
832
+ * @throws {RequiredError}
833
+ * @memberof DefaultApiInterface
834
+ */
835
+ postForecasterPairCapabilitiesRequestOpts(requestParameters: PostForecasterPairCapabilitiesRequest): Promise<runtime.RequestOpts>;
836
+
837
+ /**
838
+ * Computes which offload methods are feasible for specific source-target datastore pairs based on vendor support and storage array topology derived from the forklift-collected inventory. No vSphere credentials are required.
839
+ * @summary Compute pair capabilities
840
+ * @param {PairCapabilityRequest} pairCapabilityRequest
841
+ * @param {*} [options] Override http request option.
842
+ * @throws {RequiredError}
843
+ * @memberof DefaultApiInterface
844
+ */
845
+ postForecasterPairCapabilitiesRaw(requestParameters: PostForecasterPairCapabilitiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<PairCapability>>>;
846
+
847
+ /**
848
+ * Computes which offload methods are feasible for specific source-target datastore pairs based on vendor support and storage array topology derived from the forklift-collected inventory. No vSphere credentials are required.
849
+ * Compute pair capabilities
850
+ */
851
+ postForecasterPairCapabilities(requestParameters: PostForecasterPairCapabilitiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<PairCapability>>;
852
+
853
+ /**
854
+ * Creates request options for putForecasterCredentials without sending the request
855
+ * @param {VcenterCredentials} vcenterCredentials
856
+ * @throws {RequiredError}
857
+ * @memberof DefaultApiInterface
858
+ */
859
+ putForecasterCredentialsRequestOpts(requestParameters: PutForecasterCredentialsRequest): Promise<runtime.RequestOpts>;
860
+
861
+ /**
862
+ * Validates vCenter connectivity and verifies the user has the required vSphere privileges for forecaster operations (datastore file management, VM provisioning, disk cloning). Verification only — credentials are not saved.
863
+ * @summary Verify vCenter credentials and permissions
864
+ * @param {VcenterCredentials} vcenterCredentials
865
+ * @param {*} [options] Override http request option.
866
+ * @throws {RequiredError}
867
+ * @memberof DefaultApiInterface
868
+ */
869
+ putForecasterCredentialsRaw(requestParameters: PutForecasterCredentialsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
870
+
871
+ /**
872
+ * Validates vCenter connectivity and verifies the user has the required vSphere privileges for forecaster operations (datastore file management, VM provisioning, disk cloning). Verification only — credentials are not saved.
873
+ * Verify vCenter credentials and permissions
874
+ */
875
+ putForecasterCredentials(requestParameters: PutForecasterCredentialsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
876
+
577
877
  /**
578
878
  * Creates request options for putInspectorCredentials without sending the request
579
879
  * @param {VcenterCredentials} vcenterCredentials
@@ -689,6 +989,30 @@ export interface DefaultApiInterface {
689
989
  */
690
990
  startCollector(requestParameters: StartCollectorRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CollectorStatus>;
691
991
 
992
+ /**
993
+ * Creates request options for startForecaster without sending the request
994
+ * @param {ForecasterStartRequest} forecasterStartRequest
995
+ * @throws {RequiredError}
996
+ * @memberof DefaultApiInterface
997
+ */
998
+ startForecasterRequestOpts(requestParameters: StartForecasterRequest): Promise<runtime.RequestOpts>;
999
+
1000
+ /**
1001
+ * Starts async benchmarking for one or more datastore pairs. Credentials can be passed inline or omitted if previously provided in an earlier request.
1002
+ * @summary Start benchmark
1003
+ * @param {ForecasterStartRequest} forecasterStartRequest
1004
+ * @param {*} [options] Override http request option.
1005
+ * @throws {RequiredError}
1006
+ * @memberof DefaultApiInterface
1007
+ */
1008
+ startForecasterRaw(requestParameters: StartForecasterRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ForecasterStatus>>;
1009
+
1010
+ /**
1011
+ * Starts async benchmarking for one or more datastore pairs. Credentials can be passed inline or omitted if previously provided in an earlier request.
1012
+ * Start benchmark
1013
+ */
1014
+ startForecaster(requestParameters: StartForecasterRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ForecasterStatus>;
1015
+
692
1016
  /**
693
1017
  * Creates request options for startInspection without sending the request
694
1018
  * @param {StartInspectionRequest} startInspectionRequest
@@ -733,6 +1057,52 @@ export interface DefaultApiInterface {
733
1057
  */
734
1058
  stopCollector(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
735
1059
 
1060
+ /**
1061
+ * Creates request options for stopForecaster without sending the request
1062
+ * @throws {RequiredError}
1063
+ * @memberof DefaultApiInterface
1064
+ */
1065
+ stopForecasterRequestOpts(): Promise<runtime.RequestOpts>;
1066
+
1067
+ /**
1068
+ * Stops the running benchmark. Already-completed runs are preserved in the database.
1069
+ * @summary Cancel benchmark
1070
+ * @param {*} [options] Override http request option.
1071
+ * @throws {RequiredError}
1072
+ * @memberof DefaultApiInterface
1073
+ */
1074
+ stopForecasterRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ForecasterStatus>>;
1075
+
1076
+ /**
1077
+ * Stops the running benchmark. Already-completed runs are preserved in the database.
1078
+ * Cancel benchmark
1079
+ */
1080
+ stopForecaster(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ForecasterStatus>;
1081
+
1082
+ /**
1083
+ * Creates request options for stopForecasterPair without sending the request
1084
+ * @param {string} name Pair name as specified in the start request
1085
+ * @throws {RequiredError}
1086
+ * @memberof DefaultApiInterface
1087
+ */
1088
+ stopForecasterPairRequestOpts(requestParameters: StopForecasterPairRequest): Promise<runtime.RequestOpts>;
1089
+
1090
+ /**
1091
+ * Cancels the benchmark for a specific pair by name. The forecaster continues running if other pairs are still active.
1092
+ * @summary Cancel a single pair
1093
+ * @param {string} name Pair name as specified in the start request
1094
+ * @param {*} [options] Override http request option.
1095
+ * @throws {RequiredError}
1096
+ * @memberof DefaultApiInterface
1097
+ */
1098
+ stopForecasterPairRaw(requestParameters: StopForecasterPairRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<StopForecasterPair202Response>>;
1099
+
1100
+ /**
1101
+ * Cancels the benchmark for a specific pair by name. The forecaster continues running if other pairs are still active.
1102
+ * Cancel a single pair
1103
+ */
1104
+ stopForecasterPair(requestParameters: StopForecasterPairRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<StopForecasterPair202Response>;
1105
+
736
1106
  /**
737
1107
  * Creates request options for stopInspection without sending the request
738
1108
  * @throws {RequiredError}
@@ -856,6 +1226,50 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface {
856
1226
  return await response.value();
857
1227
  }
858
1228
 
1229
+ /**
1230
+ * Creates request options for deleteForecasterRun without sending the request
1231
+ */
1232
+ async deleteForecasterRunRequestOpts(requestParameters: DeleteForecasterRunRequest): Promise<runtime.RequestOpts> {
1233
+ if (requestParameters['id'] == null) {
1234
+ throw new runtime.RequiredError(
1235
+ 'id',
1236
+ 'Required parameter "id" was null or undefined when calling deleteForecasterRun().'
1237
+ );
1238
+ }
1239
+
1240
+ const queryParameters: any = {};
1241
+
1242
+ const headerParameters: runtime.HTTPHeaders = {};
1243
+
1244
+
1245
+ let urlPath = `/forecaster/runs/{id}`;
1246
+ urlPath = urlPath.replace('{id}', encodeURIComponent(String(requestParameters['id'])));
1247
+
1248
+ return {
1249
+ path: urlPath,
1250
+ method: 'DELETE',
1251
+ headers: headerParameters,
1252
+ query: queryParameters,
1253
+ };
1254
+ }
1255
+
1256
+ /**
1257
+ * Delete a benchmark run
1258
+ */
1259
+ async deleteForecasterRunRaw(requestParameters: DeleteForecasterRunRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {
1260
+ const requestOptions = await this.deleteForecasterRunRequestOpts(requestParameters);
1261
+ const response = await this.request(requestOptions, initOverrides);
1262
+
1263
+ return new runtime.VoidApiResponse(response);
1264
+ }
1265
+
1266
+ /**
1267
+ * Delete a benchmark run
1268
+ */
1269
+ async deleteForecasterRun(requestParameters: DeleteForecasterRunRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
1270
+ await this.deleteForecasterRunRaw(requestParameters, initOverrides);
1271
+ }
1272
+
859
1273
  /**
860
1274
  * Creates request options for deleteGroup without sending the request
861
1275
  */
@@ -975,28 +1389,202 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface {
975
1389
  }
976
1390
 
977
1391
  /**
978
- * Creates request options for getGroup without sending the request
1392
+ * Creates request options for getForecasterDatastores without sending the request
979
1393
  */
980
- async getGroupRequestOpts(requestParameters: GetGroupRequest): Promise<runtime.RequestOpts> {
981
- if (requestParameters['id'] == null) {
982
- throw new runtime.RequiredError(
983
- 'id',
984
- 'Required parameter "id" was null or undefined when calling getGroup().'
985
- );
986
- }
987
-
1394
+ async getForecasterDatastoresRequestOpts(requestParameters: GetForecasterDatastoresRequest): Promise<runtime.RequestOpts> {
988
1395
  const queryParameters: any = {};
989
1396
 
990
- if (requestParameters['sort'] != null) {
991
- queryParameters['sort'] = requestParameters['sort'];
992
- }
1397
+ const headerParameters: runtime.HTTPHeaders = {};
993
1398
 
994
- if (requestParameters['page'] != null) {
995
- queryParameters['page'] = requestParameters['page'];
996
- }
1399
+ headerParameters['Content-Type'] = 'application/json';
997
1400
 
998
- if (requestParameters['pageSize'] != null) {
999
- queryParameters['pageSize'] = requestParameters['pageSize'];
1401
+
1402
+ let urlPath = `/forecaster/datastores`;
1403
+
1404
+ return {
1405
+ path: urlPath,
1406
+ method: 'POST',
1407
+ headers: headerParameters,
1408
+ query: queryParameters,
1409
+ body: ForecasterDatastoresRequestToJSON(requestParameters['forecasterDatastoresRequest']),
1410
+ };
1411
+ }
1412
+
1413
+ /**
1414
+ * Returns datastores from the forklift-collected inventory with storage vendor and capability information derived from NAA device identifiers. No vSphere credentials are required.
1415
+ * List available datastores
1416
+ */
1417
+ async getForecasterDatastoresRaw(requestParameters: GetForecasterDatastoresRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<DatastoreDetail>>> {
1418
+ const requestOptions = await this.getForecasterDatastoresRequestOpts(requestParameters);
1419
+ const response = await this.request(requestOptions, initOverrides);
1420
+
1421
+ return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(DatastoreDetailFromJSON));
1422
+ }
1423
+
1424
+ /**
1425
+ * Returns datastores from the forklift-collected inventory with storage vendor and capability information derived from NAA device identifiers. No vSphere credentials are required.
1426
+ * List available datastores
1427
+ */
1428
+ async getForecasterDatastores(requestParameters: GetForecasterDatastoresRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<DatastoreDetail>> {
1429
+ const response = await this.getForecasterDatastoresRaw(requestParameters, initOverrides);
1430
+ return await response.value();
1431
+ }
1432
+
1433
+ /**
1434
+ * Creates request options for getForecasterRuns without sending the request
1435
+ */
1436
+ async getForecasterRunsRequestOpts(requestParameters: GetForecasterRunsRequest): Promise<runtime.RequestOpts> {
1437
+ const queryParameters: any = {};
1438
+
1439
+ if (requestParameters['pairName'] != null) {
1440
+ queryParameters['pairName'] = requestParameters['pairName'];
1441
+ }
1442
+
1443
+ const headerParameters: runtime.HTTPHeaders = {};
1444
+
1445
+
1446
+ let urlPath = `/forecaster/runs`;
1447
+
1448
+ return {
1449
+ path: urlPath,
1450
+ method: 'GET',
1451
+ headers: headerParameters,
1452
+ query: queryParameters,
1453
+ };
1454
+ }
1455
+
1456
+ /**
1457
+ * Returns individual benchmark iterations. Optionally filtered by pair name.
1458
+ * List benchmark runs
1459
+ */
1460
+ async getForecasterRunsRaw(requestParameters: GetForecasterRunsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<BenchmarkRun>>> {
1461
+ const requestOptions = await this.getForecasterRunsRequestOpts(requestParameters);
1462
+ const response = await this.request(requestOptions, initOverrides);
1463
+
1464
+ return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(BenchmarkRunFromJSON));
1465
+ }
1466
+
1467
+ /**
1468
+ * Returns individual benchmark iterations. Optionally filtered by pair name.
1469
+ * List benchmark runs
1470
+ */
1471
+ async getForecasterRuns(requestParameters: GetForecasterRunsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<BenchmarkRun>> {
1472
+ const response = await this.getForecasterRunsRaw(requestParameters, initOverrides);
1473
+ return await response.value();
1474
+ }
1475
+
1476
+ /**
1477
+ * Creates request options for getForecasterStats without sending the request
1478
+ */
1479
+ async getForecasterStatsRequestOpts(requestParameters: GetForecasterStatsRequest): Promise<runtime.RequestOpts> {
1480
+ if (requestParameters['pairName'] == null) {
1481
+ throw new runtime.RequiredError(
1482
+ 'pairName',
1483
+ 'Required parameter "pairName" was null or undefined when calling getForecasterStats().'
1484
+ );
1485
+ }
1486
+
1487
+ const queryParameters: any = {};
1488
+
1489
+ if (requestParameters['pairName'] != null) {
1490
+ queryParameters['pairName'] = requestParameters['pairName'];
1491
+ }
1492
+
1493
+ const headerParameters: runtime.HTTPHeaders = {};
1494
+
1495
+
1496
+ let urlPath = `/forecaster/stats`;
1497
+
1498
+ return {
1499
+ path: urlPath,
1500
+ method: 'GET',
1501
+ headers: headerParameters,
1502
+ query: queryParameters,
1503
+ };
1504
+ }
1505
+
1506
+ /**
1507
+ * Returns computed statistics for a datastore pair\'s benchmark results. Primary endpoint for the UI to display migration time estimates.
1508
+ * Get throughput statistics
1509
+ */
1510
+ async getForecasterStatsRaw(requestParameters: GetForecasterStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ForecastStats>> {
1511
+ const requestOptions = await this.getForecasterStatsRequestOpts(requestParameters);
1512
+ const response = await this.request(requestOptions, initOverrides);
1513
+
1514
+ return new runtime.JSONApiResponse(response, (jsonValue) => ForecastStatsFromJSON(jsonValue));
1515
+ }
1516
+
1517
+ /**
1518
+ * Returns computed statistics for a datastore pair\'s benchmark results. Primary endpoint for the UI to display migration time estimates.
1519
+ * Get throughput statistics
1520
+ */
1521
+ async getForecasterStats(requestParameters: GetForecasterStatsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ForecastStats> {
1522
+ const response = await this.getForecasterStatsRaw(requestParameters, initOverrides);
1523
+ return await response.value();
1524
+ }
1525
+
1526
+ /**
1527
+ * Creates request options for getForecasterStatus without sending the request
1528
+ */
1529
+ async getForecasterStatusRequestOpts(): Promise<runtime.RequestOpts> {
1530
+ const queryParameters: any = {};
1531
+
1532
+ const headerParameters: runtime.HTTPHeaders = {};
1533
+
1534
+
1535
+ let urlPath = `/forecaster`;
1536
+
1537
+ return {
1538
+ path: urlPath,
1539
+ method: 'GET',
1540
+ headers: headerParameters,
1541
+ query: queryParameters,
1542
+ };
1543
+ }
1544
+
1545
+ /**
1546
+ * Returns current service state with per-pair progress details.
1547
+ * Poll forecaster status
1548
+ */
1549
+ async getForecasterStatusRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ForecasterStatus>> {
1550
+ const requestOptions = await this.getForecasterStatusRequestOpts();
1551
+ const response = await this.request(requestOptions, initOverrides);
1552
+
1553
+ return new runtime.JSONApiResponse(response, (jsonValue) => ForecasterStatusFromJSON(jsonValue));
1554
+ }
1555
+
1556
+ /**
1557
+ * Returns current service state with per-pair progress details.
1558
+ * Poll forecaster status
1559
+ */
1560
+ async getForecasterStatus(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ForecasterStatus> {
1561
+ const response = await this.getForecasterStatusRaw(initOverrides);
1562
+ return await response.value();
1563
+ }
1564
+
1565
+ /**
1566
+ * Creates request options for getGroup without sending the request
1567
+ */
1568
+ async getGroupRequestOpts(requestParameters: GetGroupRequest): Promise<runtime.RequestOpts> {
1569
+ if (requestParameters['id'] == null) {
1570
+ throw new runtime.RequiredError(
1571
+ 'id',
1572
+ 'Required parameter "id" was null or undefined when calling getGroup().'
1573
+ );
1574
+ }
1575
+
1576
+ const queryParameters: any = {};
1577
+
1578
+ if (requestParameters['sort'] != null) {
1579
+ queryParameters['sort'] = requestParameters['sort'];
1580
+ }
1581
+
1582
+ if (requestParameters['page'] != null) {
1583
+ queryParameters['page'] = requestParameters['page'];
1584
+ }
1585
+
1586
+ if (requestParameters['pageSize'] != null) {
1587
+ queryParameters['pageSize'] = requestParameters['pageSize'];
1000
1588
  }
1001
1589
 
1002
1590
  const headerParameters: runtime.HTTPHeaders = {};
@@ -1158,6 +1746,43 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface {
1158
1746
  return await response.value();
1159
1747
  }
1160
1748
 
1749
+ /**
1750
+ * Creates request options for getLatestRightsizingClusters without sending the request
1751
+ */
1752
+ async getLatestRightsizingClustersRequestOpts(): Promise<runtime.RequestOpts> {
1753
+ const queryParameters: any = {};
1754
+
1755
+ const headerParameters: runtime.HTTPHeaders = {};
1756
+
1757
+
1758
+ let urlPath = `/cluster_rightsizing`;
1759
+
1760
+ return {
1761
+ path: urlPath,
1762
+ method: 'GET',
1763
+ headers: headerParameters,
1764
+ query: queryParameters,
1765
+ };
1766
+ }
1767
+
1768
+ /**
1769
+ * Get cluster-level utilization aggregates for the latest completed report
1770
+ */
1771
+ async getLatestRightsizingClustersRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RightsizingClusterListResponse>> {
1772
+ const requestOptions = await this.getLatestRightsizingClustersRequestOpts();
1773
+ const response = await this.request(requestOptions, initOverrides);
1774
+
1775
+ return new runtime.JSONApiResponse(response, (jsonValue) => RightsizingClusterListResponseFromJSON(jsonValue));
1776
+ }
1777
+
1778
+ /**
1779
+ * Get cluster-level utilization aggregates for the latest completed report
1780
+ */
1781
+ async getLatestRightsizingClusters(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RightsizingClusterListResponse> {
1782
+ const response = await this.getLatestRightsizingClustersRaw(initOverrides);
1783
+ return await response.value();
1784
+ }
1785
+
1161
1786
  /**
1162
1787
  * Creates request options for getRightsizingReport without sending the request
1163
1788
  */
@@ -1203,6 +1828,51 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface {
1203
1828
  return await response.value();
1204
1829
  }
1205
1830
 
1831
+ /**
1832
+ * Creates request options for getRightsizingReportClusters without sending the request
1833
+ */
1834
+ async getRightsizingReportClustersRequestOpts(requestParameters: GetRightsizingReportClustersRequest): Promise<runtime.RequestOpts> {
1835
+ if (requestParameters['reportId'] == null) {
1836
+ throw new runtime.RequiredError(
1837
+ 'reportId',
1838
+ 'Required parameter "reportId" was null or undefined when calling getRightsizingReportClusters().'
1839
+ );
1840
+ }
1841
+
1842
+ const queryParameters: any = {};
1843
+
1844
+ const headerParameters: runtime.HTTPHeaders = {};
1845
+
1846
+
1847
+ let urlPath = `/cluster_rightsizing/{report_id}`;
1848
+ urlPath = urlPath.replace('{report_id}', encodeURIComponent(String(requestParameters['reportId'])));
1849
+
1850
+ return {
1851
+ path: urlPath,
1852
+ method: 'GET',
1853
+ headers: headerParameters,
1854
+ query: queryParameters,
1855
+ };
1856
+ }
1857
+
1858
+ /**
1859
+ * Get cluster-level utilization aggregates for a specific report
1860
+ */
1861
+ async getRightsizingReportClustersRaw(requestParameters: GetRightsizingReportClustersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RightsizingClusterListResponse>> {
1862
+ const requestOptions = await this.getRightsizingReportClustersRequestOpts(requestParameters);
1863
+ const response = await this.request(requestOptions, initOverrides);
1864
+
1865
+ return new runtime.JSONApiResponse(response, (jsonValue) => RightsizingClusterListResponseFromJSON(jsonValue));
1866
+ }
1867
+
1868
+ /**
1869
+ * Get cluster-level utilization aggregates for a specific report
1870
+ */
1871
+ async getRightsizingReportClusters(requestParameters: GetRightsizingReportClustersRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RightsizingClusterListResponse> {
1872
+ const response = await this.getRightsizingReportClustersRaw(requestParameters, initOverrides);
1873
+ return await response.value();
1874
+ }
1875
+
1206
1876
  /**
1207
1877
  * Creates request options for getVM without sending the request
1208
1878
  */
@@ -1469,6 +2139,103 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface {
1469
2139
  return await response.value();
1470
2140
  }
1471
2141
 
2142
+ /**
2143
+ * Creates request options for postForecasterPairCapabilities without sending the request
2144
+ */
2145
+ async postForecasterPairCapabilitiesRequestOpts(requestParameters: PostForecasterPairCapabilitiesRequest): Promise<runtime.RequestOpts> {
2146
+ if (requestParameters['pairCapabilityRequest'] == null) {
2147
+ throw new runtime.RequiredError(
2148
+ 'pairCapabilityRequest',
2149
+ 'Required parameter "pairCapabilityRequest" was null or undefined when calling postForecasterPairCapabilities().'
2150
+ );
2151
+ }
2152
+
2153
+ const queryParameters: any = {};
2154
+
2155
+ const headerParameters: runtime.HTTPHeaders = {};
2156
+
2157
+ headerParameters['Content-Type'] = 'application/json';
2158
+
2159
+
2160
+ let urlPath = `/forecaster/capabilities`;
2161
+
2162
+ return {
2163
+ path: urlPath,
2164
+ method: 'POST',
2165
+ headers: headerParameters,
2166
+ query: queryParameters,
2167
+ body: PairCapabilityRequestToJSON(requestParameters['pairCapabilityRequest']),
2168
+ };
2169
+ }
2170
+
2171
+ /**
2172
+ * Computes which offload methods are feasible for specific source-target datastore pairs based on vendor support and storage array topology derived from the forklift-collected inventory. No vSphere credentials are required.
2173
+ * Compute pair capabilities
2174
+ */
2175
+ async postForecasterPairCapabilitiesRaw(requestParameters: PostForecasterPairCapabilitiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<PairCapability>>> {
2176
+ const requestOptions = await this.postForecasterPairCapabilitiesRequestOpts(requestParameters);
2177
+ const response = await this.request(requestOptions, initOverrides);
2178
+
2179
+ return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(PairCapabilityFromJSON));
2180
+ }
2181
+
2182
+ /**
2183
+ * Computes which offload methods are feasible for specific source-target datastore pairs based on vendor support and storage array topology derived from the forklift-collected inventory. No vSphere credentials are required.
2184
+ * Compute pair capabilities
2185
+ */
2186
+ async postForecasterPairCapabilities(requestParameters: PostForecasterPairCapabilitiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<PairCapability>> {
2187
+ const response = await this.postForecasterPairCapabilitiesRaw(requestParameters, initOverrides);
2188
+ return await response.value();
2189
+ }
2190
+
2191
+ /**
2192
+ * Creates request options for putForecasterCredentials without sending the request
2193
+ */
2194
+ async putForecasterCredentialsRequestOpts(requestParameters: PutForecasterCredentialsRequest): Promise<runtime.RequestOpts> {
2195
+ if (requestParameters['vcenterCredentials'] == null) {
2196
+ throw new runtime.RequiredError(
2197
+ 'vcenterCredentials',
2198
+ 'Required parameter "vcenterCredentials" was null or undefined when calling putForecasterCredentials().'
2199
+ );
2200
+ }
2201
+
2202
+ const queryParameters: any = {};
2203
+
2204
+ const headerParameters: runtime.HTTPHeaders = {};
2205
+
2206
+ headerParameters['Content-Type'] = 'application/json';
2207
+
2208
+
2209
+ let urlPath = `/forecaster/credentials`;
2210
+
2211
+ return {
2212
+ path: urlPath,
2213
+ method: 'PUT',
2214
+ headers: headerParameters,
2215
+ query: queryParameters,
2216
+ body: VcenterCredentialsToJSON(requestParameters['vcenterCredentials']),
2217
+ };
2218
+ }
2219
+
2220
+ /**
2221
+ * Validates vCenter connectivity and verifies the user has the required vSphere privileges for forecaster operations (datastore file management, VM provisioning, disk cloning). Verification only — credentials are not saved.
2222
+ * Verify vCenter credentials and permissions
2223
+ */
2224
+ async putForecasterCredentialsRaw(requestParameters: PutForecasterCredentialsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {
2225
+ const requestOptions = await this.putForecasterCredentialsRequestOpts(requestParameters);
2226
+ const response = await this.request(requestOptions, initOverrides);
2227
+
2228
+ return new runtime.VoidApiResponse(response);
2229
+ }
2230
+
2231
+ /**
2232
+ * Validates vCenter connectivity and verifies the user has the required vSphere privileges for forecaster operations (datastore file management, VM provisioning, disk cloning). Verification only — credentials are not saved.
2233
+ * Verify vCenter credentials and permissions
2234
+ */
2235
+ async putForecasterCredentials(requestParameters: PutForecasterCredentialsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
2236
+ await this.putForecasterCredentialsRaw(requestParameters, initOverrides);
2237
+ }
2238
+
1472
2239
  /**
1473
2240
  * Creates request options for putInspectorCredentials without sending the request
1474
2241
  */
@@ -1719,6 +2486,55 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface {
1719
2486
  return await response.value();
1720
2487
  }
1721
2488
 
2489
+ /**
2490
+ * Creates request options for startForecaster without sending the request
2491
+ */
2492
+ async startForecasterRequestOpts(requestParameters: StartForecasterRequest): Promise<runtime.RequestOpts> {
2493
+ if (requestParameters['forecasterStartRequest'] == null) {
2494
+ throw new runtime.RequiredError(
2495
+ 'forecasterStartRequest',
2496
+ 'Required parameter "forecasterStartRequest" was null or undefined when calling startForecaster().'
2497
+ );
2498
+ }
2499
+
2500
+ const queryParameters: any = {};
2501
+
2502
+ const headerParameters: runtime.HTTPHeaders = {};
2503
+
2504
+ headerParameters['Content-Type'] = 'application/json';
2505
+
2506
+
2507
+ let urlPath = `/forecaster`;
2508
+
2509
+ return {
2510
+ path: urlPath,
2511
+ method: 'POST',
2512
+ headers: headerParameters,
2513
+ query: queryParameters,
2514
+ body: ForecasterStartRequestToJSON(requestParameters['forecasterStartRequest']),
2515
+ };
2516
+ }
2517
+
2518
+ /**
2519
+ * Starts async benchmarking for one or more datastore pairs. Credentials can be passed inline or omitted if previously provided in an earlier request.
2520
+ * Start benchmark
2521
+ */
2522
+ async startForecasterRaw(requestParameters: StartForecasterRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ForecasterStatus>> {
2523
+ const requestOptions = await this.startForecasterRequestOpts(requestParameters);
2524
+ const response = await this.request(requestOptions, initOverrides);
2525
+
2526
+ return new runtime.JSONApiResponse(response, (jsonValue) => ForecasterStatusFromJSON(jsonValue));
2527
+ }
2528
+
2529
+ /**
2530
+ * Starts async benchmarking for one or more datastore pairs. Credentials can be passed inline or omitted if previously provided in an earlier request.
2531
+ * Start benchmark
2532
+ */
2533
+ async startForecaster(requestParameters: StartForecasterRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ForecasterStatus> {
2534
+ const response = await this.startForecasterRaw(requestParameters, initOverrides);
2535
+ return await response.value();
2536
+ }
2537
+
1722
2538
  /**
1723
2539
  * Creates request options for startInspection without sending the request
1724
2540
  */
@@ -1802,6 +2618,92 @@ export class DefaultApi extends runtime.BaseAPI implements DefaultApiInterface {
1802
2618
  await this.stopCollectorRaw(initOverrides);
1803
2619
  }
1804
2620
 
2621
+ /**
2622
+ * Creates request options for stopForecaster without sending the request
2623
+ */
2624
+ async stopForecasterRequestOpts(): Promise<runtime.RequestOpts> {
2625
+ const queryParameters: any = {};
2626
+
2627
+ const headerParameters: runtime.HTTPHeaders = {};
2628
+
2629
+
2630
+ let urlPath = `/forecaster`;
2631
+
2632
+ return {
2633
+ path: urlPath,
2634
+ method: 'DELETE',
2635
+ headers: headerParameters,
2636
+ query: queryParameters,
2637
+ };
2638
+ }
2639
+
2640
+ /**
2641
+ * Stops the running benchmark. Already-completed runs are preserved in the database.
2642
+ * Cancel benchmark
2643
+ */
2644
+ async stopForecasterRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ForecasterStatus>> {
2645
+ const requestOptions = await this.stopForecasterRequestOpts();
2646
+ const response = await this.request(requestOptions, initOverrides);
2647
+
2648
+ return new runtime.JSONApiResponse(response, (jsonValue) => ForecasterStatusFromJSON(jsonValue));
2649
+ }
2650
+
2651
+ /**
2652
+ * Stops the running benchmark. Already-completed runs are preserved in the database.
2653
+ * Cancel benchmark
2654
+ */
2655
+ async stopForecaster(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ForecasterStatus> {
2656
+ const response = await this.stopForecasterRaw(initOverrides);
2657
+ return await response.value();
2658
+ }
2659
+
2660
+ /**
2661
+ * Creates request options for stopForecasterPair without sending the request
2662
+ */
2663
+ async stopForecasterPairRequestOpts(requestParameters: StopForecasterPairRequest): Promise<runtime.RequestOpts> {
2664
+ if (requestParameters['name'] == null) {
2665
+ throw new runtime.RequiredError(
2666
+ 'name',
2667
+ 'Required parameter "name" was null or undefined when calling stopForecasterPair().'
2668
+ );
2669
+ }
2670
+
2671
+ const queryParameters: any = {};
2672
+
2673
+ const headerParameters: runtime.HTTPHeaders = {};
2674
+
2675
+
2676
+ let urlPath = `/forecaster/pairs/{name}`;
2677
+ urlPath = urlPath.replace('{name}', encodeURIComponent(String(requestParameters['name'])));
2678
+
2679
+ return {
2680
+ path: urlPath,
2681
+ method: 'DELETE',
2682
+ headers: headerParameters,
2683
+ query: queryParameters,
2684
+ };
2685
+ }
2686
+
2687
+ /**
2688
+ * Cancels the benchmark for a specific pair by name. The forecaster continues running if other pairs are still active.
2689
+ * Cancel a single pair
2690
+ */
2691
+ async stopForecasterPairRaw(requestParameters: StopForecasterPairRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<StopForecasterPair202Response>> {
2692
+ const requestOptions = await this.stopForecasterPairRequestOpts(requestParameters);
2693
+ const response = await this.request(requestOptions, initOverrides);
2694
+
2695
+ return new runtime.JSONApiResponse(response, (jsonValue) => StopForecasterPair202ResponseFromJSON(jsonValue));
2696
+ }
2697
+
2698
+ /**
2699
+ * Cancels the benchmark for a specific pair by name. The forecaster continues running if other pairs are still active.
2700
+ * Cancel a single pair
2701
+ */
2702
+ async stopForecasterPair(requestParameters: StopForecasterPairRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<StopForecasterPair202Response> {
2703
+ const response = await this.stopForecasterPairRaw(requestParameters, initOverrides);
2704
+ return await response.value();
2705
+ }
2706
+
1805
2707
  /**
1806
2708
  * Creates request options for stopInspection without sending the request
1807
2709
  */