@openshift-migration-advisor/planner-sdk 0.13.7 → 0.14.0-e72c0cc421c6

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 (61) hide show
  1. package/.openapi-generator/FILES +4 -0
  2. package/README.md +4 -2
  3. package/dist/esm/models/ClusterRequirementsRequest.d.ts +6 -0
  4. package/dist/esm/models/ClusterRequirementsRequest.js +2 -0
  5. package/dist/esm/models/ClusterRequirementsResponse.d.ts +20 -0
  6. package/dist/esm/models/ClusterRequirementsResponse.js +8 -0
  7. package/dist/esm/models/ClusterRequirementsStoredInput.d.ts +7 -0
  8. package/dist/esm/models/ClusterRequirementsStoredInput.js +4 -1
  9. package/dist/esm/models/ClusterSizing.d.ts +18 -0
  10. package/dist/esm/models/ClusterSizing.js +6 -0
  11. package/dist/esm/models/CpuOverCommitRatio.d.ts +1 -0
  12. package/dist/esm/models/CpuOverCommitRatio.js +2 -1
  13. package/dist/esm/models/OptimizationStatus.d.ts +48 -0
  14. package/dist/esm/models/OptimizationStatus.js +56 -0
  15. package/dist/esm/models/Savings.d.ts +44 -0
  16. package/dist/esm/models/Savings.js +51 -0
  17. package/dist/esm/models/Source.d.ts +14 -0
  18. package/dist/esm/models/Source.js +9 -0
  19. package/dist/esm/models/StandaloneClusterRequirementsRequest.d.ts +6 -0
  20. package/dist/esm/models/StandaloneClusterRequirementsRequest.js +2 -0
  21. package/dist/esm/models/index.d.ts +2 -0
  22. package/dist/esm/models/index.js +2 -0
  23. package/dist/models/ClusterRequirementsRequest.d.ts +6 -0
  24. package/dist/models/ClusterRequirementsRequest.js +2 -0
  25. package/dist/models/ClusterRequirementsResponse.d.ts +20 -0
  26. package/dist/models/ClusterRequirementsResponse.js +8 -0
  27. package/dist/models/ClusterRequirementsStoredInput.d.ts +7 -0
  28. package/dist/models/ClusterRequirementsStoredInput.js +4 -1
  29. package/dist/models/ClusterSizing.d.ts +18 -0
  30. package/dist/models/ClusterSizing.js +6 -0
  31. package/dist/models/CpuOverCommitRatio.d.ts +1 -0
  32. package/dist/models/CpuOverCommitRatio.js +2 -1
  33. package/dist/models/OptimizationStatus.d.ts +48 -0
  34. package/dist/models/OptimizationStatus.js +64 -0
  35. package/dist/models/Savings.d.ts +44 -0
  36. package/dist/models/Savings.js +58 -0
  37. package/dist/models/Source.d.ts +14 -0
  38. package/dist/models/Source.js +10 -0
  39. package/dist/models/StandaloneClusterRequirementsRequest.d.ts +6 -0
  40. package/dist/models/StandaloneClusterRequirementsRequest.js +2 -0
  41. package/dist/models/index.d.ts +2 -0
  42. package/dist/models/index.js +2 -0
  43. package/docs/ClusterRequirementsRequest.md +2 -0
  44. package/docs/ClusterRequirementsResponse.md +6 -0
  45. package/docs/ClusterRequirementsStoredInput.md +2 -0
  46. package/docs/ClusterSizing.md +6 -0
  47. package/docs/OptimizationStatus.md +37 -0
  48. package/docs/Savings.md +39 -0
  49. package/docs/Source.md +2 -0
  50. package/docs/StandaloneClusterRequirementsRequest.md +2 -0
  51. package/package.json +1 -1
  52. package/src/models/ClusterRequirementsRequest.ts +8 -0
  53. package/src/models/ClusterRequirementsResponse.ts +38 -0
  54. package/src/models/ClusterRequirementsStoredInput.ts +10 -1
  55. package/src/models/ClusterSizing.ts +24 -0
  56. package/src/models/CpuOverCommitRatio.ts +2 -1
  57. package/src/models/OptimizationStatus.ts +88 -0
  58. package/src/models/Savings.ts +84 -0
  59. package/src/models/Source.ts +19 -0
  60. package/src/models/StandaloneClusterRequirementsRequest.ts +8 -0
  61. package/src/models/index.ts +2 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openshift-migration-advisor/planner-sdk",
3
- "version": "0.13.7",
3
+ "version": "0.14.0-e72c0cc421c6",
4
4
  "description": "OpenAPI client for @openshift-migration-advisor/planner-sdk",
5
5
  "author": "OpenAPI-Generator",
6
6
  "repository": {
@@ -100,6 +100,12 @@ export interface ClusterRequirementsRequest {
100
100
  * @memberof ClusterRequirementsRequest
101
101
  */
102
102
  hostedControlPlane?: boolean;
103
+ /**
104
+ * If true, creates a 3-node compact cluster with no dedicated workers. Requires controlPlaneNodeCount=3 and controlPlaneSchedulable=true. Incompatible with hostedControlPlane=true
105
+ * @type {boolean}
106
+ * @memberof ClusterRequirementsRequest
107
+ */
108
+ compactMode?: boolean;
103
109
  }
104
110
 
105
111
 
@@ -146,6 +152,7 @@ export function ClusterRequirementsRequestFromJSONTyped(json: any, ignoreDiscrim
146
152
  'controlPlaneMemory': json['controlPlaneMemory'] == null ? undefined : json['controlPlaneMemory'],
147
153
  'controlPlaneNodeCount': json['controlPlaneNodeCount'] == null ? undefined : json['controlPlaneNodeCount'],
148
154
  'hostedControlPlane': json['hostedControlPlane'] == null ? undefined : json['hostedControlPlane'],
155
+ 'compactMode': json['compactMode'] == null ? undefined : json['compactMode'],
149
156
  };
150
157
  }
151
158
 
@@ -171,6 +178,7 @@ export function ClusterRequirementsRequestToJSONTyped(value?: ClusterRequirement
171
178
  'controlPlaneMemory': value['controlPlaneMemory'],
172
179
  'controlPlaneNodeCount': value['controlPlaneNodeCount'],
173
180
  'hostedControlPlane': value['hostedControlPlane'],
181
+ 'compactMode': value['compactMode'],
174
182
  };
175
183
  }
176
184
 
@@ -13,6 +13,13 @@
13
13
  */
14
14
 
15
15
  import { mapValues } from '../runtime.js';
16
+ import type { Savings } from './Savings.js';
17
+ import {
18
+ SavingsFromJSON,
19
+ SavingsFromJSONTyped,
20
+ SavingsToJSON,
21
+ SavingsToJSONTyped,
22
+ } from './Savings.js';
16
23
  import type { SizingResourceConsumption } from './SizingResourceConsumption.js';
17
24
  import {
18
25
  SizingResourceConsumptionFromJSON,
@@ -34,6 +41,13 @@ import {
34
41
  ClusterSizingToJSON,
35
42
  ClusterSizingToJSONTyped,
36
43
  } from './ClusterSizing.js';
44
+ import type { OptimizationStatus } from './OptimizationStatus.js';
45
+ import {
46
+ OptimizationStatusFromJSON,
47
+ OptimizationStatusFromJSONTyped,
48
+ OptimizationStatusToJSON,
49
+ OptimizationStatusToJSONTyped,
50
+ } from './OptimizationStatus.js';
37
51
 
38
52
  /**
39
53
  * Cluster requirements calculation results
@@ -47,6 +61,24 @@ export interface ClusterRequirementsResponse {
47
61
  * @memberof ClusterRequirementsResponse
48
62
  */
49
63
  clusterSizing: ClusterSizing;
64
+ /**
65
+ *
66
+ * @type {ClusterSizing}
67
+ * @memberof ClusterRequirementsResponse
68
+ */
69
+ optimizedSizing?: ClusterSizing;
70
+ /**
71
+ *
72
+ * @type {Savings}
73
+ * @memberof ClusterRequirementsResponse
74
+ */
75
+ savings?: Savings;
76
+ /**
77
+ *
78
+ * @type {OptimizationStatus}
79
+ * @memberof ClusterRequirementsResponse
80
+ */
81
+ optimizationStatus?: OptimizationStatus;
50
82
  /**
51
83
  *
52
84
  * @type {SizingResourceConsumption}
@@ -82,6 +114,9 @@ export function ClusterRequirementsResponseFromJSONTyped(json: any, ignoreDiscri
82
114
  return {
83
115
 
84
116
  'clusterSizing': ClusterSizingFromJSON(json['clusterSizing']),
117
+ 'optimizedSizing': json['optimizedSizing'] == null ? undefined : ClusterSizingFromJSON(json['optimizedSizing']),
118
+ 'savings': json['savings'] == null ? undefined : SavingsFromJSON(json['savings']),
119
+ 'optimizationStatus': json['optimizationStatus'] == null ? undefined : OptimizationStatusFromJSON(json['optimizationStatus']),
85
120
  'resourceConsumption': SizingResourceConsumptionFromJSON(json['resourceConsumption']),
86
121
  'inventoryTotals': InventoryTotalsFromJSON(json['inventoryTotals']),
87
122
  };
@@ -99,6 +134,9 @@ export function ClusterRequirementsResponseToJSONTyped(value?: ClusterRequiremen
99
134
  return {
100
135
 
101
136
  'clusterSizing': ClusterSizingToJSON(value['clusterSizing']),
137
+ 'optimizedSizing': ClusterSizingToJSON(value['optimizedSizing']),
138
+ 'savings': SavingsToJSON(value['savings']),
139
+ 'optimizationStatus': OptimizationStatusToJSON(value['optimizationStatus']),
102
140
  'resourceConsumption': SizingResourceConsumptionToJSON(value['resourceConsumption']),
103
141
  'inventoryTotals': InventoryTotalsToJSON(value['inventoryTotals']),
104
142
  };
@@ -85,6 +85,12 @@ export interface ClusterRequirementsStoredInput {
85
85
  * @memberof ClusterRequirementsStoredInput
86
86
  */
87
87
  hostedControlPlane?: boolean;
88
+ /**
89
+ * If true, creates a 3-node compact cluster with no dedicated workers
90
+ * @type {boolean}
91
+ * @memberof ClusterRequirementsStoredInput
92
+ */
93
+ compactMode?: boolean;
88
94
  }
89
95
 
90
96
 
@@ -95,7 +101,8 @@ export const ClusterRequirementsStoredInputCpuOverCommitRatioEnum = {
95
101
  _11: '1:1',
96
102
  _12: '1:2',
97
103
  _14: '1:4',
98
- _16: '1:6'
104
+ _16: '1:6',
105
+ _18: '1:8'
99
106
  } as const;
100
107
  export type ClusterRequirementsStoredInputCpuOverCommitRatioEnum = typeof ClusterRequirementsStoredInputCpuOverCommitRatioEnum[keyof typeof ClusterRequirementsStoredInputCpuOverCommitRatioEnum];
101
108
 
@@ -148,6 +155,7 @@ export function ClusterRequirementsStoredInputFromJSONTyped(json: any, ignoreDis
148
155
  'controlPlaneMemory': json['controlPlaneMemory'] == null ? undefined : json['controlPlaneMemory'],
149
156
  'controlPlaneNodeCount': json['controlPlaneNodeCount'] == null ? undefined : json['controlPlaneNodeCount'],
150
157
  'hostedControlPlane': json['hostedControlPlane'] == null ? undefined : json['hostedControlPlane'],
158
+ 'compactMode': json['compactMode'] == null ? undefined : json['compactMode'],
151
159
  };
152
160
  }
153
161
 
@@ -173,6 +181,7 @@ export function ClusterRequirementsStoredInputToJSONTyped(value?: ClusterRequire
173
181
  'controlPlaneMemory': value['controlPlaneMemory'],
174
182
  'controlPlaneNodeCount': value['controlPlaneNodeCount'],
175
183
  'hostedControlPlane': value['hostedControlPlane'],
184
+ 'compactMode': value['compactMode'],
176
185
  };
177
186
  }
178
187
 
@@ -55,6 +55,24 @@ export interface ClusterSizing {
55
55
  * @memberof ClusterSizing
56
56
  */
57
57
  totalMemory: number;
58
+ /**
59
+ * CPU utilization maximum percentage (only in optimized_sizing)
60
+ * @type {number}
61
+ * @memberof ClusterSizing
62
+ */
63
+ cpuUtilizationMax?: number;
64
+ /**
65
+ * Memory utilization maximum percentage (only in optimized_sizing)
66
+ * @type {number}
67
+ * @memberof ClusterSizing
68
+ */
69
+ memoryUtilizationMax?: number;
70
+ /**
71
+ * Data coverage confidence 0-100 (only in optimized_sizing)
72
+ * @type {number}
73
+ * @memberof ClusterSizing
74
+ */
75
+ confidence?: number;
58
76
  }
59
77
 
60
78
  /**
@@ -86,6 +104,9 @@ export function ClusterSizingFromJSONTyped(json: any, ignoreDiscriminator: boole
86
104
  'failoverNodes': json['failoverNodes'],
87
105
  'totalCPU': json['totalCPU'],
88
106
  'totalMemory': json['totalMemory'],
107
+ 'cpuUtilizationMax': json['cpuUtilizationMax'] == null ? undefined : json['cpuUtilizationMax'],
108
+ 'memoryUtilizationMax': json['memoryUtilizationMax'] == null ? undefined : json['memoryUtilizationMax'],
109
+ 'confidence': json['confidence'] == null ? undefined : json['confidence'],
89
110
  };
90
111
  }
91
112
 
@@ -106,6 +127,9 @@ export function ClusterSizingToJSONTyped(value?: ClusterSizing | null, ignoreDis
106
127
  'failoverNodes': value['failoverNodes'],
107
128
  'totalCPU': value['totalCPU'],
108
129
  'totalMemory': value['totalMemory'],
130
+ 'cpuUtilizationMax': value['cpuUtilizationMax'],
131
+ 'memoryUtilizationMax': value['memoryUtilizationMax'],
132
+ 'confidence': value['confidence'],
109
133
  };
110
134
  }
111
135
 
@@ -21,7 +21,8 @@ export const CpuOverCommitRatio = {
21
21
  CpuOneToOne: '1:1',
22
22
  CpuOneToTwo: '1:2',
23
23
  CpuOneToFour: '1:4',
24
- CpuOneToSix: '1:6'
24
+ CpuOneToSix: '1:6',
25
+ CpuOneToEight: '1:8'
25
26
  } as const;
26
27
  export type CpuOverCommitRatio = typeof CpuOverCommitRatio[keyof typeof CpuOverCommitRatio];
27
28
 
@@ -0,0 +1,88 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * OpenShift Migration Advisor API
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document: v1alpha1
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
+ * Status of utilization-based optimization attempt
18
+ * @export
19
+ * @interface OptimizationStatus
20
+ */
21
+ export interface OptimizationStatus {
22
+ /**
23
+ * Whether optimization was attempted based on available utilization data
24
+ * @type {boolean}
25
+ * @memberof OptimizationStatus
26
+ */
27
+ attempted: boolean;
28
+ /**
29
+ * Reason for optimization result
30
+ * @type {OptimizationStatusReasonEnum}
31
+ * @memberof OptimizationStatus
32
+ */
33
+ reason: OptimizationStatusReasonEnum;
34
+ }
35
+
36
+
37
+ /**
38
+ * @export
39
+ */
40
+ export const OptimizationStatusReasonEnum = {
41
+ NoUtilizationData: 'no_utilization_data',
42
+ LowConfidence: 'low_confidence',
43
+ CalculationError: 'calculation_error',
44
+ Success: 'success'
45
+ } as const;
46
+ export type OptimizationStatusReasonEnum = typeof OptimizationStatusReasonEnum[keyof typeof OptimizationStatusReasonEnum];
47
+
48
+
49
+ /**
50
+ * Check if a given object implements the OptimizationStatus interface.
51
+ */
52
+ export function instanceOfOptimizationStatus(value: object): value is OptimizationStatus {
53
+ if (!('attempted' in value) || value['attempted'] === undefined) return false;
54
+ if (!('reason' in value) || value['reason'] === undefined) return false;
55
+ return true;
56
+ }
57
+
58
+ export function OptimizationStatusFromJSON(json: any): OptimizationStatus {
59
+ return OptimizationStatusFromJSONTyped(json, false);
60
+ }
61
+
62
+ export function OptimizationStatusFromJSONTyped(json: any, ignoreDiscriminator: boolean): OptimizationStatus {
63
+ if (json == null) {
64
+ return json;
65
+ }
66
+ return {
67
+
68
+ 'attempted': json['attempted'],
69
+ 'reason': json['reason'],
70
+ };
71
+ }
72
+
73
+ export function OptimizationStatusToJSON(json: any): OptimizationStatus {
74
+ return OptimizationStatusToJSONTyped(json, false);
75
+ }
76
+
77
+ export function OptimizationStatusToJSONTyped(value?: OptimizationStatus | null, ignoreDiscriminator: boolean = false): any {
78
+ if (value == null) {
79
+ return value;
80
+ }
81
+
82
+ return {
83
+
84
+ 'attempted': value['attempted'],
85
+ 'reason': value['reason'],
86
+ };
87
+ }
88
+
@@ -0,0 +1,84 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * OpenShift Migration Advisor API
5
+ * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
6
+ *
7
+ * The version of the OpenAPI document: v1alpha1
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
+ * Infrastructure savings comparison
18
+ * @export
19
+ * @interface Savings
20
+ */
21
+ export interface Savings {
22
+ /**
23
+ * Number of nodes saved compared to baseline
24
+ * @type {number}
25
+ * @memberof Savings
26
+ */
27
+ nodesSaved: number;
28
+ /**
29
+ * Percentage reduction in nodes
30
+ * @type {number}
31
+ * @memberof Savings
32
+ */
33
+ percentageReduction: number;
34
+ /**
35
+ * Human-readable description of savings source
36
+ * @type {string}
37
+ * @memberof Savings
38
+ */
39
+ description: string;
40
+ }
41
+
42
+ /**
43
+ * Check if a given object implements the Savings interface.
44
+ */
45
+ export function instanceOfSavings(value: object): value is Savings {
46
+ if (!('nodesSaved' in value) || value['nodesSaved'] === undefined) return false;
47
+ if (!('percentageReduction' in value) || value['percentageReduction'] === undefined) return false;
48
+ if (!('description' in value) || value['description'] === undefined) return false;
49
+ return true;
50
+ }
51
+
52
+ export function SavingsFromJSON(json: any): Savings {
53
+ return SavingsFromJSONTyped(json, false);
54
+ }
55
+
56
+ export function SavingsFromJSONTyped(json: any, ignoreDiscriminator: boolean): Savings {
57
+ if (json == null) {
58
+ return json;
59
+ }
60
+ return {
61
+
62
+ 'nodesSaved': json['nodesSaved'],
63
+ 'percentageReduction': json['percentageReduction'],
64
+ 'description': json['description'],
65
+ };
66
+ }
67
+
68
+ export function SavingsToJSON(json: any): Savings {
69
+ return SavingsToJSONTyped(json, false);
70
+ }
71
+
72
+ export function SavingsToJSONTyped(value?: Savings | null, ignoreDiscriminator: boolean = false): any {
73
+ if (value == null) {
74
+ return value;
75
+ }
76
+
77
+ return {
78
+
79
+ 'nodesSaved': value['nodesSaved'],
80
+ 'percentageReduction': value['percentageReduction'],
81
+ 'description': value['description'],
82
+ };
83
+ }
84
+
@@ -114,8 +114,25 @@ export interface Source {
114
114
  * @memberof Source
115
115
  */
116
116
  agentVersionWarning?: string | null;
117
+ /**
118
+ * Indicates whether the inventory was updated automatically by an agent or manually by a user
119
+ * @type {SourceUpdateTypeEnum}
120
+ * @memberof Source
121
+ */
122
+ updateType?: SourceUpdateTypeEnum;
117
123
  }
118
124
 
125
+
126
+ /**
127
+ * @export
128
+ */
129
+ export const SourceUpdateTypeEnum = {
130
+ Auto: 'auto',
131
+ Manual: 'manual'
132
+ } as const;
133
+ export type SourceUpdateTypeEnum = typeof SourceUpdateTypeEnum[keyof typeof SourceUpdateTypeEnum];
134
+
135
+
119
136
  /**
120
137
  * Check if a given object implements the Source interface.
121
138
  */
@@ -149,6 +166,7 @@ export function SourceFromJSONTyped(json: any, ignoreDiscriminator: boolean): So
149
166
  'infra': json['infra'] == null ? undefined : SourceInfraFromJSON(json['infra']),
150
167
  'agentVersion': json['agentVersion'] == null ? undefined : json['agentVersion'],
151
168
  'agentVersionWarning': json['agentVersionWarning'] == null ? undefined : json['agentVersionWarning'],
169
+ 'updateType': json['updateType'] == null ? undefined : json['updateType'],
152
170
  };
153
171
  }
154
172
 
@@ -174,6 +192,7 @@ export function SourceToJSONTyped(value?: Source | null, ignoreDiscriminator: bo
174
192
  'infra': SourceInfraToJSON(value['infra']),
175
193
  'agentVersion': value['agentVersion'],
176
194
  'agentVersionWarning': value['agentVersionWarning'],
195
+ 'updateType': value['updateType'],
177
196
  };
178
197
  }
179
198
 
@@ -112,6 +112,12 @@ export interface StandaloneClusterRequirementsRequest {
112
112
  * @memberof StandaloneClusterRequirementsRequest
113
113
  */
114
114
  hostedControlPlane?: boolean;
115
+ /**
116
+ * If true, creates a 3-node compact cluster with no dedicated workers. Requires controlPlaneNodeCount=3 and controlPlaneSchedulable=true. Incompatible with hostedControlPlane=true
117
+ * @type {boolean}
118
+ * @memberof StandaloneClusterRequirementsRequest
119
+ */
120
+ compactMode?: boolean;
115
121
  }
116
122
 
117
123
 
@@ -162,6 +168,7 @@ export function StandaloneClusterRequirementsRequestFromJSONTyped(json: any, ign
162
168
  'controlPlaneMemory': json['controlPlaneMemory'] == null ? undefined : json['controlPlaneMemory'],
163
169
  'controlPlaneNodeCount': json['controlPlaneNodeCount'] == null ? undefined : json['controlPlaneNodeCount'],
164
170
  'hostedControlPlane': json['hostedControlPlane'] == null ? undefined : json['hostedControlPlane'],
171
+ 'compactMode': json['compactMode'] == null ? undefined : json['compactMode'],
165
172
  };
166
173
  }
167
174
 
@@ -189,6 +196,7 @@ export function StandaloneClusterRequirementsRequestToJSONTyped(value?: Standalo
189
196
  'controlPlaneMemory': value['controlPlaneMemory'],
190
197
  'controlPlaneNodeCount': value['controlPlaneNodeCount'],
191
198
  'hostedControlPlane': value['hostedControlPlane'],
199
+ 'compactMode': value['compactMode'],
192
200
  };
193
201
  }
194
202
 
@@ -49,6 +49,7 @@ export * from './MigrationEstimationResponse.js';
49
49
  export * from './MigrationIssue.js';
50
50
  export * from './ModelError.js';
51
51
  export * from './Network.js';
52
+ export * from './OptimizationStatus.js';
52
53
  export * from './OsDiskEstimationEntry.js';
53
54
  export * from './OsInfo.js';
54
55
  export * from './PartnerRequest.js';
@@ -57,6 +58,7 @@ export * from './PartnerRequestStatus.js';
57
58
  export * from './PartnerRequestUpdate.js';
58
59
  export * from './PartnerSummary.js';
59
60
  export * from './PresignedUrl.js';
61
+ export * from './Savings.js';
60
62
  export * from './SchemaEstimationResult.js';
61
63
  export * from './SharingSubject.js';
62
64
  export * from './SizingOverCommitRatio.js';