@aws-sdk/client-cost-optimization-hub 3.458.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +268 -0
  3. package/dist-cjs/CostOptimizationHub.js +25 -0
  4. package/dist-cjs/CostOptimizationHubClient.js +43 -0
  5. package/dist-cjs/commands/GetPreferencesCommand.js +51 -0
  6. package/dist-cjs/commands/GetRecommendationCommand.js +51 -0
  7. package/dist-cjs/commands/ListEnrollmentStatusesCommand.js +51 -0
  8. package/dist-cjs/commands/ListRecommendationSummariesCommand.js +51 -0
  9. package/dist-cjs/commands/ListRecommendationsCommand.js +51 -0
  10. package/dist-cjs/commands/UpdateEnrollmentStatusCommand.js +51 -0
  11. package/dist-cjs/commands/UpdatePreferencesCommand.js +51 -0
  12. package/dist-cjs/commands/index.js +10 -0
  13. package/dist-cjs/endpoint/EndpointParameters.js +12 -0
  14. package/dist-cjs/endpoint/endpointResolver.js +12 -0
  15. package/dist-cjs/endpoint/ruleset.js +7 -0
  16. package/dist-cjs/extensionConfiguration.js +2 -0
  17. package/dist-cjs/index.js +12 -0
  18. package/dist-cjs/models/CostOptimizationHubServiceException.js +12 -0
  19. package/dist-cjs/models/index.js +4 -0
  20. package/dist-cjs/models/models_0.js +158 -0
  21. package/dist-cjs/pagination/Interfaces.js +2 -0
  22. package/dist-cjs/pagination/ListEnrollmentStatusesPaginator.js +29 -0
  23. package/dist-cjs/pagination/ListRecommendationSummariesPaginator.js +29 -0
  24. package/dist-cjs/pagination/ListRecommendationsPaginator.js +29 -0
  25. package/dist-cjs/pagination/index.js +7 -0
  26. package/dist-cjs/protocols/Aws_json1_0.js +830 -0
  27. package/dist-cjs/runtimeConfig.browser.js +39 -0
  28. package/dist-cjs/runtimeConfig.js +50 -0
  29. package/dist-cjs/runtimeConfig.native.js +15 -0
  30. package/dist-cjs/runtimeConfig.shared.js +24 -0
  31. package/dist-cjs/runtimeExtensions.js +22 -0
  32. package/dist-es/CostOptimizationHub.js +21 -0
  33. package/dist-es/CostOptimizationHubClient.js +39 -0
  34. package/dist-es/commands/GetPreferencesCommand.js +47 -0
  35. package/dist-es/commands/GetRecommendationCommand.js +47 -0
  36. package/dist-es/commands/ListEnrollmentStatusesCommand.js +47 -0
  37. package/dist-es/commands/ListRecommendationSummariesCommand.js +47 -0
  38. package/dist-es/commands/ListRecommendationsCommand.js +47 -0
  39. package/dist-es/commands/UpdateEnrollmentStatusCommand.js +47 -0
  40. package/dist-es/commands/UpdatePreferencesCommand.js +47 -0
  41. package/dist-es/commands/index.js +7 -0
  42. package/dist-es/endpoint/EndpointParameters.js +8 -0
  43. package/dist-es/endpoint/endpointResolver.js +8 -0
  44. package/dist-es/endpoint/ruleset.js +4 -0
  45. package/dist-es/extensionConfiguration.js +1 -0
  46. package/dist-es/index.js +7 -0
  47. package/dist-es/models/CostOptimizationHubServiceException.js +8 -0
  48. package/dist-es/models/index.js +1 -0
  49. package/dist-es/models/models_0.js +150 -0
  50. package/dist-es/pagination/Interfaces.js +1 -0
  51. package/dist-es/pagination/ListEnrollmentStatusesPaginator.js +25 -0
  52. package/dist-es/pagination/ListRecommendationSummariesPaginator.js +25 -0
  53. package/dist-es/pagination/ListRecommendationsPaginator.js +25 -0
  54. package/dist-es/pagination/index.js +4 -0
  55. package/dist-es/protocols/Aws_json1_0.js +813 -0
  56. package/dist-es/runtimeConfig.browser.js +34 -0
  57. package/dist-es/runtimeConfig.js +45 -0
  58. package/dist-es/runtimeConfig.native.js +11 -0
  59. package/dist-es/runtimeConfig.shared.js +20 -0
  60. package/dist-es/runtimeExtensions.js +18 -0
  61. package/dist-types/CostOptimizationHub.d.ts +66 -0
  62. package/dist-types/CostOptimizationHubClient.d.ts +183 -0
  63. package/dist-types/commands/GetPreferencesCommand.d.ts +89 -0
  64. package/dist-types/commands/GetRecommendationCommand.d.ts +647 -0
  65. package/dist-types/commands/ListEnrollmentStatusesCommand.d.ts +99 -0
  66. package/dist-types/commands/ListRecommendationSummariesCommand.d.ts +138 -0
  67. package/dist-types/commands/ListRecommendationsCommand.d.ts +157 -0
  68. package/dist-types/commands/UpdateEnrollmentStatusCommand.d.ts +94 -0
  69. package/dist-types/commands/UpdatePreferencesCommand.d.ts +91 -0
  70. package/dist-types/commands/index.d.ts +7 -0
  71. package/dist-types/endpoint/EndpointParameters.d.ts +22 -0
  72. package/dist-types/endpoint/endpointResolver.d.ts +5 -0
  73. package/dist-types/endpoint/ruleset.d.ts +2 -0
  74. package/dist-types/extensionConfiguration.d.ts +8 -0
  75. package/dist-types/index.d.ts +22 -0
  76. package/dist-types/models/CostOptimizationHubServiceException.d.ts +13 -0
  77. package/dist-types/models/index.d.ts +1 -0
  78. package/dist-types/models/models_0.d.ts +2141 -0
  79. package/dist-types/pagination/Interfaces.d.ts +8 -0
  80. package/dist-types/pagination/ListEnrollmentStatusesPaginator.d.ts +7 -0
  81. package/dist-types/pagination/ListRecommendationSummariesPaginator.d.ts +7 -0
  82. package/dist-types/pagination/ListRecommendationsPaginator.d.ts +7 -0
  83. package/dist-types/pagination/index.d.ts +4 -0
  84. package/dist-types/protocols/Aws_json1_0.d.ts +65 -0
  85. package/dist-types/runtimeConfig.browser.d.ts +46 -0
  86. package/dist-types/runtimeConfig.d.ts +46 -0
  87. package/dist-types/runtimeConfig.native.d.ts +45 -0
  88. package/dist-types/runtimeConfig.shared.d.ts +19 -0
  89. package/dist-types/runtimeExtensions.d.ts +17 -0
  90. package/dist-types/ts3.4/CostOptimizationHub.d.ts +126 -0
  91. package/dist-types/ts3.4/CostOptimizationHubClient.d.ts +163 -0
  92. package/dist-types/ts3.4/commands/GetPreferencesCommand.d.ts +38 -0
  93. package/dist-types/ts3.4/commands/GetRecommendationCommand.d.ts +39 -0
  94. package/dist-types/ts3.4/commands/ListEnrollmentStatusesCommand.d.ts +42 -0
  95. package/dist-types/ts3.4/commands/ListRecommendationSummariesCommand.d.ts +42 -0
  96. package/dist-types/ts3.4/commands/ListRecommendationsCommand.d.ts +39 -0
  97. package/dist-types/ts3.4/commands/UpdateEnrollmentStatusCommand.d.ts +42 -0
  98. package/dist-types/ts3.4/commands/UpdatePreferencesCommand.d.ts +39 -0
  99. package/dist-types/ts3.4/commands/index.d.ts +7 -0
  100. package/dist-types/ts3.4/endpoint/EndpointParameters.d.ts +33 -0
  101. package/dist-types/ts3.4/endpoint/endpointResolver.d.ts +8 -0
  102. package/dist-types/ts3.4/endpoint/ruleset.d.ts +2 -0
  103. package/dist-types/ts3.4/extensionConfiguration.d.ts +7 -0
  104. package/dist-types/ts3.4/index.d.ts +10 -0
  105. package/dist-types/ts3.4/models/CostOptimizationHubServiceException.d.ts +8 -0
  106. package/dist-types/ts3.4/models/index.d.ts +1 -0
  107. package/dist-types/ts3.4/models/models_0.d.ts +734 -0
  108. package/dist-types/ts3.4/pagination/Interfaces.d.ts +6 -0
  109. package/dist-types/ts3.4/pagination/ListEnrollmentStatusesPaginator.d.ts +11 -0
  110. package/dist-types/ts3.4/pagination/ListRecommendationSummariesPaginator.d.ts +11 -0
  111. package/dist-types/ts3.4/pagination/ListRecommendationsPaginator.d.ts +11 -0
  112. package/dist-types/ts3.4/pagination/index.d.ts +4 -0
  113. package/dist-types/ts3.4/protocols/Aws_json1_0.d.ts +89 -0
  114. package/dist-types/ts3.4/runtimeConfig.browser.d.ts +99 -0
  115. package/dist-types/ts3.4/runtimeConfig.d.ts +99 -0
  116. package/dist-types/ts3.4/runtimeConfig.native.d.ts +90 -0
  117. package/dist-types/ts3.4/runtimeConfig.shared.d.ts +21 -0
  118. package/dist-types/ts3.4/runtimeExtensions.d.ts +13 -0
  119. package/package.json +102 -0
@@ -0,0 +1,2141 @@
1
+ import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client";
2
+ import { CostOptimizationHubServiceException as __BaseException } from "./CostOptimizationHubServiceException";
3
+ /**
4
+ * @public
5
+ * <p>You are not authorized to use this operation with the given parameters.</p>
6
+ */
7
+ export declare class AccessDeniedException extends __BaseException {
8
+ readonly name: "AccessDeniedException";
9
+ readonly $fault: "client";
10
+ /**
11
+ * @internal
12
+ */
13
+ constructor(opts: __ExceptionOptionType<AccessDeniedException, __BaseException>);
14
+ }
15
+ /**
16
+ * @public
17
+ * @enum
18
+ */
19
+ export declare const EnrollmentStatus: {
20
+ readonly ACTIVE: "Active";
21
+ readonly INACTIVE: "Inactive";
22
+ };
23
+ /**
24
+ * @public
25
+ */
26
+ export type EnrollmentStatus = (typeof EnrollmentStatus)[keyof typeof EnrollmentStatus];
27
+ /**
28
+ * @public
29
+ * <p>Describes the enrollment status of an organization's member accounts in Cost Optimization
30
+ * Hub.</p>
31
+ */
32
+ export interface AccountEnrollmentStatus {
33
+ /**
34
+ * @public
35
+ * <p>The Amazon Web Services account ID.</p>
36
+ */
37
+ accountId?: string;
38
+ /**
39
+ * @public
40
+ * <p>The account enrollment status.</p>
41
+ */
42
+ status?: EnrollmentStatus;
43
+ /**
44
+ * @public
45
+ * <p>The time when the account enrollment status was last updated.</p>
46
+ */
47
+ lastUpdatedTimestamp?: Date;
48
+ /**
49
+ * @public
50
+ * <p>The time when the account enrollment status was created.</p>
51
+ */
52
+ createdTimestamp?: Date;
53
+ }
54
+ /**
55
+ * @public
56
+ * @enum
57
+ */
58
+ export declare const ActionType: {
59
+ readonly MIGRATE_TO_GRAVITON: "MigrateToGraviton";
60
+ readonly PURCHASE_RESERVED_INSTANCES: "PurchaseReservedInstances";
61
+ readonly PURCHASE_SAVINGS_PLANS: "PurchaseSavingsPlans";
62
+ readonly RIGHTSIZE: "Rightsize";
63
+ readonly STOP: "Stop";
64
+ readonly UPGRADE: "Upgrade";
65
+ };
66
+ /**
67
+ * @public
68
+ */
69
+ export type ActionType = (typeof ActionType)[keyof typeof ActionType];
70
+ /**
71
+ * @public
72
+ * <p>Describes the Amazon Elastic Block Store performance configuration of the current and
73
+ * recommended resource configuration for a recommendation.</p>
74
+ */
75
+ export interface BlockStoragePerformanceConfiguration {
76
+ /**
77
+ * @public
78
+ * <p>The number of I/O operations per second.</p>
79
+ */
80
+ iops?: number;
81
+ /**
82
+ * @public
83
+ * <p>The throughput that the volume supports.</p>
84
+ */
85
+ throughput?: number;
86
+ }
87
+ /**
88
+ * @public
89
+ * <p>Describes the performance configuration for compute services such as Amazon EC2, Lambda,
90
+ * and ECS.</p>
91
+ */
92
+ export interface ComputeConfiguration {
93
+ /**
94
+ * @public
95
+ * <p>The number of vCPU cores in the resource.</p>
96
+ */
97
+ vCpu?: number;
98
+ /**
99
+ * @public
100
+ * <p>The memory size of the resource.</p>
101
+ */
102
+ memorySizeInMB?: number;
103
+ /**
104
+ * @public
105
+ * <p>The architecture of the resource.</p>
106
+ */
107
+ architecture?: string;
108
+ /**
109
+ * @public
110
+ * <p>The platform of the resource. The platform is the specific combination of operating
111
+ * system, license model, and software on an instance.</p>
112
+ */
113
+ platform?: string;
114
+ }
115
+ /**
116
+ * @public
117
+ * <p>The Compute Savings Plans configuration used for recommendations.</p>
118
+ */
119
+ export interface ComputeSavingsPlansConfiguration {
120
+ /**
121
+ * @public
122
+ * <p>The account scope that you want your recommendations for. Amazon Web Services calculates
123
+ * recommendations including the management account and member accounts if the value is set to
124
+ * <code>PAYER</code>. If the value is <code>LINKED</code>, recommendations are calculated for
125
+ * individual member accounts only.</p>
126
+ */
127
+ accountScope?: string;
128
+ /**
129
+ * @public
130
+ * <p>The Savings Plans recommendation term in years.</p>
131
+ */
132
+ term?: string;
133
+ /**
134
+ * @public
135
+ * <p>The payment option for the commitment.</p>
136
+ */
137
+ paymentOption?: string;
138
+ /**
139
+ * @public
140
+ * <p>The hourly commitment for the Savings Plans type.</p>
141
+ */
142
+ hourlyCommitment?: string;
143
+ }
144
+ /**
145
+ * @public
146
+ * <p>Pricing information about a Savings Plan.</p>
147
+ */
148
+ export interface SavingsPlansPricing {
149
+ /**
150
+ * @public
151
+ * <p>The cost of paying for the recommended Savings Plan monthly.</p>
152
+ */
153
+ monthlySavingsPlansEligibleCost?: number;
154
+ /**
155
+ * @public
156
+ * <p>Estimated monthly commitment for the Savings Plan.</p>
157
+ */
158
+ estimatedMonthlyCommitment?: number;
159
+ /**
160
+ * @public
161
+ * <p>Estimated savings as a percentage of your overall costs after buying the Savings Plan.</p>
162
+ */
163
+ savingsPercentage?: number;
164
+ /**
165
+ * @public
166
+ * <p>Estimated On-Demand cost you will pay after buying the Savings Plan.</p>
167
+ */
168
+ estimatedOnDemandCost?: number;
169
+ }
170
+ /**
171
+ * @public
172
+ * <p>Cost impact of the purchase recommendation.</p>
173
+ */
174
+ export interface SavingsPlansCostCalculation {
175
+ /**
176
+ * @public
177
+ * <p>Pricing details of the purchase recommendation.</p>
178
+ */
179
+ pricing?: SavingsPlansPricing;
180
+ }
181
+ /**
182
+ * @public
183
+ * <p>The Compute Savings Plans recommendation details.</p>
184
+ */
185
+ export interface ComputeSavingsPlans {
186
+ /**
187
+ * @public
188
+ * <p>Configuration details of the Compute Savings Plans to purchase.</p>
189
+ */
190
+ configuration?: ComputeSavingsPlansConfiguration;
191
+ /**
192
+ * @public
193
+ * <p>Cost impact of the Savings Plans purchase recommendation.</p>
194
+ */
195
+ costCalculation?: SavingsPlansCostCalculation;
196
+ }
197
+ /**
198
+ * @public
199
+ */
200
+ export interface GetPreferencesRequest {
201
+ }
202
+ /**
203
+ * @public
204
+ * @enum
205
+ */
206
+ export declare const MemberAccountDiscountVisibility: {
207
+ readonly ALL: "All";
208
+ readonly NONE: "None";
209
+ };
210
+ /**
211
+ * @public
212
+ */
213
+ export type MemberAccountDiscountVisibility = (typeof MemberAccountDiscountVisibility)[keyof typeof MemberAccountDiscountVisibility];
214
+ /**
215
+ * @public
216
+ * @enum
217
+ */
218
+ export declare const SavingsEstimationMode: {
219
+ readonly AFTER_DISCOUNTS: "AfterDiscounts";
220
+ readonly BEFORE_DISCOUNTS: "BeforeDiscounts";
221
+ };
222
+ /**
223
+ * @public
224
+ */
225
+ export type SavingsEstimationMode = (typeof SavingsEstimationMode)[keyof typeof SavingsEstimationMode];
226
+ /**
227
+ * @public
228
+ */
229
+ export interface GetPreferencesResponse {
230
+ /**
231
+ * @public
232
+ * <p>Retrieves the status of the "savings estimation mode" preference.</p>
233
+ */
234
+ savingsEstimationMode?: SavingsEstimationMode;
235
+ /**
236
+ * @public
237
+ * <p>Retrieves the status of the "member account discount visibility" preference.</p>
238
+ */
239
+ memberAccountDiscountVisibility?: MemberAccountDiscountVisibility;
240
+ }
241
+ /**
242
+ * @public
243
+ * <p>An error on the server occurred during the processing of your request. Try again
244
+ * later.</p>
245
+ */
246
+ export declare class InternalServerException extends __BaseException {
247
+ readonly name: "InternalServerException";
248
+ readonly $fault: "server";
249
+ /**
250
+ * @internal
251
+ */
252
+ constructor(opts: __ExceptionOptionType<InternalServerException, __BaseException>);
253
+ }
254
+ /**
255
+ * @public
256
+ * <p>The request was denied due to request throttling.</p>
257
+ */
258
+ export declare class ThrottlingException extends __BaseException {
259
+ readonly name: "ThrottlingException";
260
+ readonly $fault: "client";
261
+ /**
262
+ * @internal
263
+ */
264
+ constructor(opts: __ExceptionOptionType<ThrottlingException, __BaseException>);
265
+ }
266
+ /**
267
+ * @public
268
+ * <p>The input failed to meet the constraints specified by the Amazon Web Services service in a
269
+ * specified field.</p>
270
+ */
271
+ export interface ValidationExceptionDetail {
272
+ /**
273
+ * @public
274
+ * <p>The field name where the invalid entry was detected.</p>
275
+ */
276
+ fieldName: string | undefined;
277
+ /**
278
+ * @public
279
+ * <p>A message with the reason for the validation exception error.</p>
280
+ */
281
+ message: string | undefined;
282
+ }
283
+ /**
284
+ * @public
285
+ * @enum
286
+ */
287
+ export declare const ValidationExceptionReason: {
288
+ readonly FIELD_VALIDATION_FAILED: "FieldValidationFailed";
289
+ readonly OTHER: "Other";
290
+ };
291
+ /**
292
+ * @public
293
+ */
294
+ export type ValidationExceptionReason = (typeof ValidationExceptionReason)[keyof typeof ValidationExceptionReason];
295
+ /**
296
+ * @public
297
+ * <p>The input fails to satisfy the constraints specified by an Amazon Web Services
298
+ * service.</p>
299
+ */
300
+ export declare class ValidationException extends __BaseException {
301
+ readonly name: "ValidationException";
302
+ readonly $fault: "client";
303
+ /**
304
+ * @public
305
+ * <p>The reason for the validation exception.</p>
306
+ */
307
+ reason?: ValidationExceptionReason;
308
+ /**
309
+ * @public
310
+ * <p>The list of fields that are invalid.</p>
311
+ */
312
+ fields?: ValidationExceptionDetail[];
313
+ /**
314
+ * @internal
315
+ */
316
+ constructor(opts: __ExceptionOptionType<ValidationException, __BaseException>);
317
+ }
318
+ /**
319
+ * @public
320
+ */
321
+ export interface GetRecommendationRequest {
322
+ /**
323
+ * @public
324
+ * <p>The ID for the recommendation.</p>
325
+ */
326
+ recommendationId: string | undefined;
327
+ }
328
+ /**
329
+ * @public
330
+ * <p>The storage configuration used for recommendations.</p>
331
+ */
332
+ export interface StorageConfiguration {
333
+ /**
334
+ * @public
335
+ * <p>The storage type.</p>
336
+ */
337
+ type?: string;
338
+ /**
339
+ * @public
340
+ * <p>The storage volume.</p>
341
+ */
342
+ sizeInGb?: number;
343
+ }
344
+ /**
345
+ * @public
346
+ * <p>The Amazon Elastic Block Store volume configuration used for
347
+ * recommendations.</p>
348
+ */
349
+ export interface EbsVolumeConfiguration {
350
+ /**
351
+ * @public
352
+ * <p>The disk storage of the Amazon Elastic Block Store volume.</p>
353
+ */
354
+ storage?: StorageConfiguration;
355
+ /**
356
+ * @public
357
+ * <p>The Amazon Elastic Block Store performance configuration.</p>
358
+ */
359
+ performance?: BlockStoragePerformanceConfiguration;
360
+ /**
361
+ * @public
362
+ * <p>The Amazon Elastic Block Store attachment state.</p>
363
+ */
364
+ attachmentState?: string;
365
+ }
366
+ /**
367
+ * @public
368
+ * <p>Estimated discount details of the current and recommended resource configuration for a
369
+ * recommendation.</p>
370
+ */
371
+ export interface EstimatedDiscounts {
372
+ /**
373
+ * @public
374
+ * <p>Estimated Savings Plans discounts.</p>
375
+ */
376
+ savingsPlansDiscount?: number;
377
+ /**
378
+ * @public
379
+ * <p>Estimated reserved instance discounts.</p>
380
+ */
381
+ reservedInstancesDiscount?: number;
382
+ /**
383
+ * @public
384
+ * <p>Estimated other discounts include all discounts that are not itemized. Itemized discounts
385
+ * include <code>reservedInstanceDiscount</code> and <code>savingsPlansDiscount</code>.</p>
386
+ */
387
+ otherDiscount?: number;
388
+ }
389
+ /**
390
+ * @public
391
+ * <p>Contains pricing information about the specified resource.</p>
392
+ */
393
+ export interface ResourcePricing {
394
+ /**
395
+ * @public
396
+ * <p>The savings estimate using Amazon Web Services public pricing without incorporating any
397
+ * discounts.</p>
398
+ */
399
+ estimatedCostBeforeDiscounts?: number;
400
+ /**
401
+ * @public
402
+ * <p>The estimated net unused amortized commitment for the recommendation.</p>
403
+ */
404
+ estimatedNetUnusedAmortizedCommitments?: number;
405
+ /**
406
+ * @public
407
+ * <p>The estimated discounts for a recommendation.</p>
408
+ */
409
+ estimatedDiscounts?: EstimatedDiscounts;
410
+ /**
411
+ * @public
412
+ * <p>The savings estimate incorporating all discounts with Amazon Web Services, such as Reserved
413
+ * Instances and Savings Plans.</p>
414
+ */
415
+ estimatedCostAfterDiscounts?: number;
416
+ }
417
+ /**
418
+ * @public
419
+ * <p>Details about the usage.</p>
420
+ */
421
+ export interface Usage {
422
+ /**
423
+ * @public
424
+ * <p>The usage type.</p>
425
+ */
426
+ usageType?: string;
427
+ /**
428
+ * @public
429
+ * <p>The usage amount.</p>
430
+ */
431
+ usageAmount?: number;
432
+ /**
433
+ * @public
434
+ * <p>The operation value.</p>
435
+ */
436
+ operation?: string;
437
+ /**
438
+ * @public
439
+ * <p>The product code.</p>
440
+ */
441
+ productCode?: string;
442
+ /**
443
+ * @public
444
+ * <p>The usage unit.</p>
445
+ */
446
+ unit?: string;
447
+ }
448
+ /**
449
+ * @public
450
+ * <p>Cost impact of the resource recommendation.</p>
451
+ */
452
+ export interface ResourceCostCalculation {
453
+ /**
454
+ * @public
455
+ * <p>Usage details of the resource recommendation.</p>
456
+ */
457
+ usages?: Usage[];
458
+ /**
459
+ * @public
460
+ * <p>Pricing details of the resource recommendation.</p>
461
+ */
462
+ pricing?: ResourcePricing;
463
+ }
464
+ /**
465
+ * @public
466
+ * <p>Describes the Amazon Elastic Block Store volume configuration of the current and
467
+ * recommended resource configuration for a recommendation.</p>
468
+ */
469
+ export interface EbsVolume {
470
+ /**
471
+ * @public
472
+ * <p>The Amazon Elastic Block Store volume configuration used for
473
+ * recommendations.</p>
474
+ */
475
+ configuration?: EbsVolumeConfiguration;
476
+ /**
477
+ * @public
478
+ * <p>Cost impact of the recommendation.</p>
479
+ */
480
+ costCalculation?: ResourceCostCalculation;
481
+ }
482
+ /**
483
+ * @public
484
+ * <p>The Instance configuration used for recommendations.</p>
485
+ */
486
+ export interface InstanceConfiguration {
487
+ /**
488
+ * @public
489
+ * <p>Details about the type.</p>
490
+ */
491
+ type?: string;
492
+ }
493
+ /**
494
+ * @public
495
+ * <p>The EC2 auto scaling group configuration used for recommendations.</p>
496
+ */
497
+ export interface Ec2AutoScalingGroupConfiguration {
498
+ /**
499
+ * @public
500
+ * <p>Details about the instance.</p>
501
+ */
502
+ instance?: InstanceConfiguration;
503
+ }
504
+ /**
505
+ * @public
506
+ * <p>The EC2 Auto Scaling group recommendation details.</p>
507
+ */
508
+ export interface Ec2AutoScalingGroup {
509
+ /**
510
+ * @public
511
+ * <p>The EC2 Auto Scaling group configuration used for recommendations.</p>
512
+ */
513
+ configuration?: Ec2AutoScalingGroupConfiguration;
514
+ /**
515
+ * @public
516
+ * <p>Cost impact of the recommendation.</p>
517
+ */
518
+ costCalculation?: ResourceCostCalculation;
519
+ }
520
+ /**
521
+ * @public
522
+ * <p>The EC2 instance configuration used for recommendations.</p>
523
+ */
524
+ export interface Ec2InstanceConfiguration {
525
+ /**
526
+ * @public
527
+ * <p>Details about the instance.</p>
528
+ */
529
+ instance?: InstanceConfiguration;
530
+ }
531
+ /**
532
+ * @public
533
+ * <p>Describes the EC2 instance configuration of the current and recommended resource
534
+ * configuration for a recommendation.</p>
535
+ */
536
+ export interface Ec2Instance {
537
+ /**
538
+ * @public
539
+ * <p>The EC2 instance configuration used for recommendations.</p>
540
+ */
541
+ configuration?: Ec2InstanceConfiguration;
542
+ /**
543
+ * @public
544
+ * <p>Cost impact of the recommendation.</p>
545
+ */
546
+ costCalculation?: ResourceCostCalculation;
547
+ }
548
+ /**
549
+ * @public
550
+ * <p>The EC2 instance Savings Plans configuration used for recommendations.</p>
551
+ */
552
+ export interface Ec2InstanceSavingsPlansConfiguration {
553
+ /**
554
+ * @public
555
+ * <p>The account scope that you want your recommendations for.</p>
556
+ */
557
+ accountScope?: string;
558
+ /**
559
+ * @public
560
+ * <p>The Savings Plans recommendation term in years.</p>
561
+ */
562
+ term?: string;
563
+ /**
564
+ * @public
565
+ * <p>The payment option for the commitment.</p>
566
+ */
567
+ paymentOption?: string;
568
+ /**
569
+ * @public
570
+ * <p>The hourly commitment for the Savings Plans type.</p>
571
+ */
572
+ hourlyCommitment?: string;
573
+ /**
574
+ * @public
575
+ * <p>The instance family of the recommended Savings Plan.</p>
576
+ */
577
+ instanceFamily?: string;
578
+ /**
579
+ * @public
580
+ * <p>The Amazon Web Services Region of the commitment.</p>
581
+ */
582
+ savingsPlansRegion?: string;
583
+ }
584
+ /**
585
+ * @public
586
+ * <p>The EC2 instance Savings Plans recommendation details.</p>
587
+ */
588
+ export interface Ec2InstanceSavingsPlans {
589
+ /**
590
+ * @public
591
+ * <p>The EC2 instance Savings Plans configuration used for recommendations.</p>
592
+ */
593
+ configuration?: Ec2InstanceSavingsPlansConfiguration;
594
+ /**
595
+ * @public
596
+ * <p>Cost impact of the Savings Plans purchase recommendation.</p>
597
+ */
598
+ costCalculation?: SavingsPlansCostCalculation;
599
+ }
600
+ /**
601
+ * @public
602
+ * <p>The EC2 reserved instances configuration used for recommendations.</p>
603
+ */
604
+ export interface Ec2ReservedInstancesConfiguration {
605
+ /**
606
+ * @public
607
+ * <p>The account scope that you want your recommendations for.</p>
608
+ */
609
+ accountScope?: string;
610
+ /**
611
+ * @public
612
+ * <p>The service that you want your recommendations for.</p>
613
+ */
614
+ service?: string;
615
+ /**
616
+ * @public
617
+ * <p>The number of normalized units that Amazon Web Services recommends that you
618
+ * purchase.</p>
619
+ */
620
+ normalizedUnitsToPurchase?: string;
621
+ /**
622
+ * @public
623
+ * <p>The reserved instances recommendation term in years.</p>
624
+ */
625
+ term?: string;
626
+ /**
627
+ * @public
628
+ * <p>The payment option for the commitment.</p>
629
+ */
630
+ paymentOption?: string;
631
+ /**
632
+ * @public
633
+ * <p>The number of instances that Amazon Web Services recommends that you purchase.</p>
634
+ */
635
+ numberOfInstancesToPurchase?: string;
636
+ /**
637
+ * @public
638
+ * <p>Indicates whether the recommendation is for standard or convertible reservations.</p>
639
+ */
640
+ offeringClass?: string;
641
+ /**
642
+ * @public
643
+ * <p>The instance family of the recommended reservation.</p>
644
+ */
645
+ instanceFamily?: string;
646
+ /**
647
+ * @public
648
+ * <p>The type of instance that Amazon Web Services recommends.</p>
649
+ */
650
+ instanceType?: string;
651
+ /**
652
+ * @public
653
+ * <p>The Amazon Web Services Region of the commitment.</p>
654
+ */
655
+ reservedInstancesRegion?: string;
656
+ /**
657
+ * @public
658
+ * <p>Determines whether the recommendation is for a current generation instance.</p>
659
+ */
660
+ currentGeneration?: string;
661
+ /**
662
+ * @public
663
+ * <p>The platform of the recommended reservation. The platform is the specific combination of
664
+ * operating system, license model, and software on an instance.</p>
665
+ */
666
+ platform?: string;
667
+ /**
668
+ * @public
669
+ * <p>Determines whether the recommended reservation is dedicated or shared.</p>
670
+ */
671
+ tenancy?: string;
672
+ /**
673
+ * @public
674
+ * <p>Determines whether the recommendation is size flexible.</p>
675
+ */
676
+ sizeFlexEligible?: boolean;
677
+ /**
678
+ * @public
679
+ * <p>How much purchasing this instance costs you upfront.</p>
680
+ */
681
+ upfrontCost?: string;
682
+ /**
683
+ * @public
684
+ * <p>How much purchasing reserved instances costs you on a monthly basis.</p>
685
+ */
686
+ monthlyRecurringCost?: string;
687
+ }
688
+ /**
689
+ * @public
690
+ * <p>Pricing details for your recommended reserved instance.</p>
691
+ */
692
+ export interface ReservedInstancesPricing {
693
+ /**
694
+ * @public
695
+ * <p>The remaining On-Demand cost estimated to not be covered by the recommended reserved
696
+ * instance, over the length of the lookback period.</p>
697
+ */
698
+ estimatedOnDemandCost?: number;
699
+ /**
700
+ * @public
701
+ * <p>The cost of paying for the recommended reserved instance monthly.</p>
702
+ */
703
+ monthlyReservationEligibleCost?: number;
704
+ /**
705
+ * @public
706
+ * <p>The savings percentage relative to the total On-Demand costs that are associated with this
707
+ * instance.</p>
708
+ */
709
+ savingsPercentage?: number;
710
+ /**
711
+ * @public
712
+ * <p>The estimated cost of your recurring monthly fees for the recommended reserved instance
713
+ * across the month.</p>
714
+ */
715
+ estimatedMonthlyAmortizedReservationCost?: number;
716
+ }
717
+ /**
718
+ * @public
719
+ * <p>Cost impact of the purchase recommendation.</p>
720
+ */
721
+ export interface ReservedInstancesCostCalculation {
722
+ /**
723
+ * @public
724
+ * <p>Pricing details of the purchase recommendation.</p>
725
+ */
726
+ pricing?: ReservedInstancesPricing;
727
+ }
728
+ /**
729
+ * @public
730
+ * <p>The EC2 reserved instances recommendation details.</p>
731
+ */
732
+ export interface Ec2ReservedInstances {
733
+ /**
734
+ * @public
735
+ * <p>The EC2 reserved instances configuration used for recommendations.</p>
736
+ */
737
+ configuration?: Ec2ReservedInstancesConfiguration;
738
+ /**
739
+ * @public
740
+ * <p>Cost impact of the purchase recommendation.</p>
741
+ */
742
+ costCalculation?: ReservedInstancesCostCalculation;
743
+ }
744
+ /**
745
+ * @public
746
+ * <p>The ECS service configuration used for recommendations.</p>
747
+ */
748
+ export interface EcsServiceConfiguration {
749
+ /**
750
+ * @public
751
+ * <p>Details about the compute configuration.</p>
752
+ */
753
+ compute?: ComputeConfiguration;
754
+ }
755
+ /**
756
+ * @public
757
+ * <p>The ECS service recommendation details.</p>
758
+ */
759
+ export interface EcsService {
760
+ /**
761
+ * @public
762
+ * <p>The ECS service configuration used for recommendations.</p>
763
+ */
764
+ configuration?: EcsServiceConfiguration;
765
+ /**
766
+ * @public
767
+ * <p>Cost impact of the recommendation.</p>
768
+ */
769
+ costCalculation?: ResourceCostCalculation;
770
+ }
771
+ /**
772
+ * @public
773
+ * <p>The ElastiCache reserved instances configuration used for recommendations.</p>
774
+ */
775
+ export interface ElastiCacheReservedInstancesConfiguration {
776
+ /**
777
+ * @public
778
+ * <p>The account scope that you want your recommendations for.</p>
779
+ */
780
+ accountScope?: string;
781
+ /**
782
+ * @public
783
+ * <p>The service that you want your recommendations for.</p>
784
+ */
785
+ service?: string;
786
+ /**
787
+ * @public
788
+ * <p>The number of normalized units that Amazon Web Services recommends that you
789
+ * purchase.</p>
790
+ */
791
+ normalizedUnitsToPurchase?: string;
792
+ /**
793
+ * @public
794
+ * <p>The reserved instances recommendation term in years.</p>
795
+ */
796
+ term?: string;
797
+ /**
798
+ * @public
799
+ * <p>The payment option for the commitment.</p>
800
+ */
801
+ paymentOption?: string;
802
+ /**
803
+ * @public
804
+ * <p>The number of instances that Amazon Web Services recommends that you purchase.</p>
805
+ */
806
+ numberOfInstancesToPurchase?: string;
807
+ /**
808
+ * @public
809
+ * <p>The instance family of the recommended reservation.</p>
810
+ */
811
+ instanceFamily?: string;
812
+ /**
813
+ * @public
814
+ * <p>The type of instance that Amazon Web Services recommends.</p>
815
+ */
816
+ instanceType?: string;
817
+ /**
818
+ * @public
819
+ * <p>The Amazon Web Services Region of the commitment.</p>
820
+ */
821
+ reservedInstancesRegion?: string;
822
+ /**
823
+ * @public
824
+ * <p>Determines whether the recommendation is for a current generation instance.</p>
825
+ */
826
+ currentGeneration?: string;
827
+ /**
828
+ * @public
829
+ * <p>Determines whether the recommendation is size flexible.</p>
830
+ */
831
+ sizeFlexEligible?: boolean;
832
+ /**
833
+ * @public
834
+ * <p>How much purchasing this instance costs you upfront.</p>
835
+ */
836
+ upfrontCost?: string;
837
+ /**
838
+ * @public
839
+ * <p>How much purchasing reserved instances costs you on a monthly basis.</p>
840
+ */
841
+ monthlyRecurringCost?: string;
842
+ }
843
+ /**
844
+ * @public
845
+ * <p>The ElastiCache reserved instances recommendation details.</p>
846
+ */
847
+ export interface ElastiCacheReservedInstances {
848
+ /**
849
+ * @public
850
+ * <p>The ElastiCache reserved instances configuration used for recommendations.</p>
851
+ */
852
+ configuration?: ElastiCacheReservedInstancesConfiguration;
853
+ /**
854
+ * @public
855
+ * <p>Cost impact of the purchase recommendation.</p>
856
+ */
857
+ costCalculation?: ReservedInstancesCostCalculation;
858
+ }
859
+ /**
860
+ * @public
861
+ * <p>The Lambda function configuration used for recommendations.</p>
862
+ */
863
+ export interface LambdaFunctionConfiguration {
864
+ /**
865
+ * @public
866
+ * <p>Details about the compute configuration.</p>
867
+ */
868
+ compute?: ComputeConfiguration;
869
+ }
870
+ /**
871
+ * @public
872
+ * <p>The Lambda function recommendation details.</p>
873
+ */
874
+ export interface LambdaFunction {
875
+ /**
876
+ * @public
877
+ * <p>The Lambda function configuration used for recommendations.</p>
878
+ */
879
+ configuration?: LambdaFunctionConfiguration;
880
+ /**
881
+ * @public
882
+ * <p>Cost impact of the recommendation.</p>
883
+ */
884
+ costCalculation?: ResourceCostCalculation;
885
+ }
886
+ /**
887
+ * @public
888
+ * <p>The OpenSearch reserved instances configuration used for recommendations.</p>
889
+ */
890
+ export interface OpenSearchReservedInstancesConfiguration {
891
+ /**
892
+ * @public
893
+ * <p>The account scope that you want your recommendations for.</p>
894
+ */
895
+ accountScope?: string;
896
+ /**
897
+ * @public
898
+ * <p>The service that you want your recommendations for.</p>
899
+ */
900
+ service?: string;
901
+ /**
902
+ * @public
903
+ * <p>The number of normalized units that Amazon Web Services recommends that you
904
+ * purchase.</p>
905
+ */
906
+ normalizedUnitsToPurchase?: string;
907
+ /**
908
+ * @public
909
+ * <p>The reserved instances recommendation term in years.</p>
910
+ */
911
+ term?: string;
912
+ /**
913
+ * @public
914
+ * <p>The payment option for the commitment.</p>
915
+ */
916
+ paymentOption?: string;
917
+ /**
918
+ * @public
919
+ * <p>The number of instances that Amazon Web Services recommends that you purchase.</p>
920
+ */
921
+ numberOfInstancesToPurchase?: string;
922
+ /**
923
+ * @public
924
+ * <p>The type of instance that Amazon Web Services recommends.</p>
925
+ */
926
+ instanceType?: string;
927
+ /**
928
+ * @public
929
+ * <p>The Amazon Web Services Region of the commitment.</p>
930
+ */
931
+ reservedInstancesRegion?: string;
932
+ /**
933
+ * @public
934
+ * <p>Determines whether the recommendation is for a current generation instance.</p>
935
+ */
936
+ currentGeneration?: string;
937
+ /**
938
+ * @public
939
+ * <p>Determines whether the recommendation is size flexible.</p>
940
+ */
941
+ sizeFlexEligible?: boolean;
942
+ /**
943
+ * @public
944
+ * <p>How much purchasing this instance costs you upfront.</p>
945
+ */
946
+ upfrontCost?: string;
947
+ /**
948
+ * @public
949
+ * <p>How much purchasing reserved instances costs you on a monthly basis.</p>
950
+ */
951
+ monthlyRecurringCost?: string;
952
+ }
953
+ /**
954
+ * @public
955
+ * <p>The OpenSearch reserved instances recommendation details.</p>
956
+ */
957
+ export interface OpenSearchReservedInstances {
958
+ /**
959
+ * @public
960
+ * <p>The OpenSearch reserved instances configuration used for recommendations.</p>
961
+ */
962
+ configuration?: OpenSearchReservedInstancesConfiguration;
963
+ /**
964
+ * @public
965
+ * <p>Cost impact of the purchase recommendation.</p>
966
+ */
967
+ costCalculation?: ReservedInstancesCostCalculation;
968
+ }
969
+ /**
970
+ * @public
971
+ * <p>The RDS reserved instances configuration used for recommendations.</p>
972
+ */
973
+ export interface RdsReservedInstancesConfiguration {
974
+ /**
975
+ * @public
976
+ * <p>The account scope that you want your recommendations for.</p>
977
+ */
978
+ accountScope?: string;
979
+ /**
980
+ * @public
981
+ * <p>The service that you want your recommendations for.</p>
982
+ */
983
+ service?: string;
984
+ /**
985
+ * @public
986
+ * <p>The number of normalized units that Amazon Web Services recommends that you
987
+ * purchase.</p>
988
+ */
989
+ normalizedUnitsToPurchase?: string;
990
+ /**
991
+ * @public
992
+ * <p>The reserved instances recommendation term in years.</p>
993
+ */
994
+ term?: string;
995
+ /**
996
+ * @public
997
+ * <p>The payment option for the commitment.</p>
998
+ */
999
+ paymentOption?: string;
1000
+ /**
1001
+ * @public
1002
+ * <p>The number of instances that Amazon Web Services recommends that you purchase.</p>
1003
+ */
1004
+ numberOfInstancesToPurchase?: string;
1005
+ /**
1006
+ * @public
1007
+ * <p>The instance family of the recommended reservation.</p>
1008
+ */
1009
+ instanceFamily?: string;
1010
+ /**
1011
+ * @public
1012
+ * <p>The type of instance that Amazon Web Services recommends.</p>
1013
+ */
1014
+ instanceType?: string;
1015
+ /**
1016
+ * @public
1017
+ * <p>The Amazon Web Services Region of the commitment.</p>
1018
+ */
1019
+ reservedInstancesRegion?: string;
1020
+ /**
1021
+ * @public
1022
+ * <p>Determines whether the recommendation is size flexible.</p>
1023
+ */
1024
+ sizeFlexEligible?: boolean;
1025
+ /**
1026
+ * @public
1027
+ * <p>Determines whether the recommendation is for a current generation instance.</p>
1028
+ */
1029
+ currentGeneration?: string;
1030
+ /**
1031
+ * @public
1032
+ * <p>How much purchasing this instance costs you upfront.</p>
1033
+ */
1034
+ upfrontCost?: string;
1035
+ /**
1036
+ * @public
1037
+ * <p>How much purchasing this instance costs you on a monthly basis.</p>
1038
+ */
1039
+ monthlyRecurringCost?: string;
1040
+ /**
1041
+ * @public
1042
+ * <p>The license model that the recommended reservation supports.</p>
1043
+ */
1044
+ licenseModel?: string;
1045
+ /**
1046
+ * @public
1047
+ * <p>The database edition that the recommended reservation supports.</p>
1048
+ */
1049
+ databaseEdition?: string;
1050
+ /**
1051
+ * @public
1052
+ * <p>The database engine that the recommended reservation supports.</p>
1053
+ */
1054
+ databaseEngine?: string;
1055
+ /**
1056
+ * @public
1057
+ * <p>Determines whether the recommendation is for a reservation in a single Availability Zone
1058
+ * or a reservation with a backup in a second Availability Zone.</p>
1059
+ */
1060
+ deploymentOption?: string;
1061
+ }
1062
+ /**
1063
+ * @public
1064
+ * <p>The RDS reserved instances recommendation details.</p>
1065
+ */
1066
+ export interface RdsReservedInstances {
1067
+ /**
1068
+ * @public
1069
+ * <p>The RDS reserved instances configuration used for recommendations.</p>
1070
+ */
1071
+ configuration?: RdsReservedInstancesConfiguration;
1072
+ /**
1073
+ * @public
1074
+ * <p>Cost impact of the purchase recommendation.</p>
1075
+ */
1076
+ costCalculation?: ReservedInstancesCostCalculation;
1077
+ }
1078
+ /**
1079
+ * @public
1080
+ * <p>The Redshift reserved instances configuration used for recommendations.</p>
1081
+ */
1082
+ export interface RedshiftReservedInstancesConfiguration {
1083
+ /**
1084
+ * @public
1085
+ * <p>The account scope that you want your recommendations for.</p>
1086
+ */
1087
+ accountScope?: string;
1088
+ /**
1089
+ * @public
1090
+ * <p>The service that you want your recommendations for.</p>
1091
+ */
1092
+ service?: string;
1093
+ /**
1094
+ * @public
1095
+ * <p>The number of normalized units that Amazon Web Services recommends that you
1096
+ * purchase.</p>
1097
+ */
1098
+ normalizedUnitsToPurchase?: string;
1099
+ /**
1100
+ * @public
1101
+ * <p>The reserved instances recommendation term in years.</p>
1102
+ */
1103
+ term?: string;
1104
+ /**
1105
+ * @public
1106
+ * <p>The payment option for the commitment.</p>
1107
+ */
1108
+ paymentOption?: string;
1109
+ /**
1110
+ * @public
1111
+ * <p>The number of instances that Amazon Web Services recommends that you purchase.</p>
1112
+ */
1113
+ numberOfInstancesToPurchase?: string;
1114
+ /**
1115
+ * @public
1116
+ * <p>The instance family of the recommended reservation.</p>
1117
+ */
1118
+ instanceFamily?: string;
1119
+ /**
1120
+ * @public
1121
+ * <p>The type of instance that Amazon Web Services recommends.</p>
1122
+ */
1123
+ instanceType?: string;
1124
+ /**
1125
+ * @public
1126
+ * <p>The Amazon Web Services Region of the commitment.</p>
1127
+ */
1128
+ reservedInstancesRegion?: string;
1129
+ /**
1130
+ * @public
1131
+ * <p>Determines whether the recommendation is size flexible.</p>
1132
+ */
1133
+ sizeFlexEligible?: boolean;
1134
+ /**
1135
+ * @public
1136
+ * <p>Determines whether the recommendation is for a current generation instance.</p>
1137
+ */
1138
+ currentGeneration?: string;
1139
+ /**
1140
+ * @public
1141
+ * <p>How much purchasing this instance costs you upfront.</p>
1142
+ */
1143
+ upfrontCost?: string;
1144
+ /**
1145
+ * @public
1146
+ * <p>How much purchasing reserved instances costs you on a monthly basis.</p>
1147
+ */
1148
+ monthlyRecurringCost?: string;
1149
+ }
1150
+ /**
1151
+ * @public
1152
+ * <p>The Redshift reserved instances recommendation details.</p>
1153
+ */
1154
+ export interface RedshiftReservedInstances {
1155
+ /**
1156
+ * @public
1157
+ * <p>The Redshift reserved instances configuration used for recommendations.</p>
1158
+ */
1159
+ configuration?: RedshiftReservedInstancesConfiguration;
1160
+ /**
1161
+ * @public
1162
+ * <p>Cost impact of the purchase recommendation.</p>
1163
+ */
1164
+ costCalculation?: ReservedInstancesCostCalculation;
1165
+ }
1166
+ /**
1167
+ * @public
1168
+ * <p>The SageMaker Savings Plans configuration used for recommendations.</p>
1169
+ */
1170
+ export interface SageMakerSavingsPlansConfiguration {
1171
+ /**
1172
+ * @public
1173
+ * <p>The account scope that you want your recommendations for.</p>
1174
+ */
1175
+ accountScope?: string;
1176
+ /**
1177
+ * @public
1178
+ * <p>The Savings Plans recommendation term in years.</p>
1179
+ */
1180
+ term?: string;
1181
+ /**
1182
+ * @public
1183
+ * <p>The payment option for the commitment.</p>
1184
+ */
1185
+ paymentOption?: string;
1186
+ /**
1187
+ * @public
1188
+ * <p>The hourly commitment for the Savings Plans type.</p>
1189
+ */
1190
+ hourlyCommitment?: string;
1191
+ }
1192
+ /**
1193
+ * @public
1194
+ * <p>The SageMaker Savings Plans recommendation details.</p>
1195
+ */
1196
+ export interface SageMakerSavingsPlans {
1197
+ /**
1198
+ * @public
1199
+ * <p>The SageMaker Savings Plans configuration used for recommendations.</p>
1200
+ */
1201
+ configuration?: SageMakerSavingsPlansConfiguration;
1202
+ /**
1203
+ * @public
1204
+ * <p>Cost impact of the Savings Plans purchase recommendation.</p>
1205
+ */
1206
+ costCalculation?: SavingsPlansCostCalculation;
1207
+ }
1208
+ /**
1209
+ * @public
1210
+ * <p>Contains detailed information about the specified resource.</p>
1211
+ */
1212
+ export type ResourceDetails = ResourceDetails.ComputeSavingsPlansMember | ResourceDetails.EbsVolumeMember | ResourceDetails.Ec2AutoScalingGroupMember | ResourceDetails.Ec2InstanceMember | ResourceDetails.Ec2InstanceSavingsPlansMember | ResourceDetails.Ec2ReservedInstancesMember | ResourceDetails.EcsServiceMember | ResourceDetails.ElastiCacheReservedInstancesMember | ResourceDetails.LambdaFunctionMember | ResourceDetails.OpenSearchReservedInstancesMember | ResourceDetails.RdsReservedInstancesMember | ResourceDetails.RedshiftReservedInstancesMember | ResourceDetails.SageMakerSavingsPlansMember | ResourceDetails.$UnknownMember;
1213
+ /**
1214
+ * @public
1215
+ */
1216
+ export declare namespace ResourceDetails {
1217
+ /**
1218
+ * @public
1219
+ * <p>The Lambda function recommendation details.</p>
1220
+ */
1221
+ interface LambdaFunctionMember {
1222
+ lambdaFunction: LambdaFunction;
1223
+ ecsService?: never;
1224
+ ec2Instance?: never;
1225
+ ebsVolume?: never;
1226
+ ec2AutoScalingGroup?: never;
1227
+ ec2ReservedInstances?: never;
1228
+ rdsReservedInstances?: never;
1229
+ elastiCacheReservedInstances?: never;
1230
+ openSearchReservedInstances?: never;
1231
+ redshiftReservedInstances?: never;
1232
+ ec2InstanceSavingsPlans?: never;
1233
+ computeSavingsPlans?: never;
1234
+ sageMakerSavingsPlans?: never;
1235
+ $unknown?: never;
1236
+ }
1237
+ /**
1238
+ * @public
1239
+ * <p>The ECS service recommendation details.</p>
1240
+ */
1241
+ interface EcsServiceMember {
1242
+ lambdaFunction?: never;
1243
+ ecsService: EcsService;
1244
+ ec2Instance?: never;
1245
+ ebsVolume?: never;
1246
+ ec2AutoScalingGroup?: never;
1247
+ ec2ReservedInstances?: never;
1248
+ rdsReservedInstances?: never;
1249
+ elastiCacheReservedInstances?: never;
1250
+ openSearchReservedInstances?: never;
1251
+ redshiftReservedInstances?: never;
1252
+ ec2InstanceSavingsPlans?: never;
1253
+ computeSavingsPlans?: never;
1254
+ sageMakerSavingsPlans?: never;
1255
+ $unknown?: never;
1256
+ }
1257
+ /**
1258
+ * @public
1259
+ * <p>The EC2 instance recommendation details.</p>
1260
+ */
1261
+ interface Ec2InstanceMember {
1262
+ lambdaFunction?: never;
1263
+ ecsService?: never;
1264
+ ec2Instance: Ec2Instance;
1265
+ ebsVolume?: never;
1266
+ ec2AutoScalingGroup?: never;
1267
+ ec2ReservedInstances?: never;
1268
+ rdsReservedInstances?: never;
1269
+ elastiCacheReservedInstances?: never;
1270
+ openSearchReservedInstances?: never;
1271
+ redshiftReservedInstances?: never;
1272
+ ec2InstanceSavingsPlans?: never;
1273
+ computeSavingsPlans?: never;
1274
+ sageMakerSavingsPlans?: never;
1275
+ $unknown?: never;
1276
+ }
1277
+ /**
1278
+ * @public
1279
+ * <p>The Amazon Elastic Block Store volume recommendation details.</p>
1280
+ */
1281
+ interface EbsVolumeMember {
1282
+ lambdaFunction?: never;
1283
+ ecsService?: never;
1284
+ ec2Instance?: never;
1285
+ ebsVolume: EbsVolume;
1286
+ ec2AutoScalingGroup?: never;
1287
+ ec2ReservedInstances?: never;
1288
+ rdsReservedInstances?: never;
1289
+ elastiCacheReservedInstances?: never;
1290
+ openSearchReservedInstances?: never;
1291
+ redshiftReservedInstances?: never;
1292
+ ec2InstanceSavingsPlans?: never;
1293
+ computeSavingsPlans?: never;
1294
+ sageMakerSavingsPlans?: never;
1295
+ $unknown?: never;
1296
+ }
1297
+ /**
1298
+ * @public
1299
+ * <p>The EC2 Auto Scaling group recommendation details.</p>
1300
+ */
1301
+ interface Ec2AutoScalingGroupMember {
1302
+ lambdaFunction?: never;
1303
+ ecsService?: never;
1304
+ ec2Instance?: never;
1305
+ ebsVolume?: never;
1306
+ ec2AutoScalingGroup: Ec2AutoScalingGroup;
1307
+ ec2ReservedInstances?: never;
1308
+ rdsReservedInstances?: never;
1309
+ elastiCacheReservedInstances?: never;
1310
+ openSearchReservedInstances?: never;
1311
+ redshiftReservedInstances?: never;
1312
+ ec2InstanceSavingsPlans?: never;
1313
+ computeSavingsPlans?: never;
1314
+ sageMakerSavingsPlans?: never;
1315
+ $unknown?: never;
1316
+ }
1317
+ /**
1318
+ * @public
1319
+ * <p>The EC2 reserved instances recommendation details.</p>
1320
+ */
1321
+ interface Ec2ReservedInstancesMember {
1322
+ lambdaFunction?: never;
1323
+ ecsService?: never;
1324
+ ec2Instance?: never;
1325
+ ebsVolume?: never;
1326
+ ec2AutoScalingGroup?: never;
1327
+ ec2ReservedInstances: Ec2ReservedInstances;
1328
+ rdsReservedInstances?: never;
1329
+ elastiCacheReservedInstances?: never;
1330
+ openSearchReservedInstances?: never;
1331
+ redshiftReservedInstances?: never;
1332
+ ec2InstanceSavingsPlans?: never;
1333
+ computeSavingsPlans?: never;
1334
+ sageMakerSavingsPlans?: never;
1335
+ $unknown?: never;
1336
+ }
1337
+ /**
1338
+ * @public
1339
+ * <p>The RDS reserved instances recommendation details.</p>
1340
+ */
1341
+ interface RdsReservedInstancesMember {
1342
+ lambdaFunction?: never;
1343
+ ecsService?: never;
1344
+ ec2Instance?: never;
1345
+ ebsVolume?: never;
1346
+ ec2AutoScalingGroup?: never;
1347
+ ec2ReservedInstances?: never;
1348
+ rdsReservedInstances: RdsReservedInstances;
1349
+ elastiCacheReservedInstances?: never;
1350
+ openSearchReservedInstances?: never;
1351
+ redshiftReservedInstances?: never;
1352
+ ec2InstanceSavingsPlans?: never;
1353
+ computeSavingsPlans?: never;
1354
+ sageMakerSavingsPlans?: never;
1355
+ $unknown?: never;
1356
+ }
1357
+ /**
1358
+ * @public
1359
+ * <p>The ElastiCache reserved instances recommendation details.</p>
1360
+ */
1361
+ interface ElastiCacheReservedInstancesMember {
1362
+ lambdaFunction?: never;
1363
+ ecsService?: never;
1364
+ ec2Instance?: never;
1365
+ ebsVolume?: never;
1366
+ ec2AutoScalingGroup?: never;
1367
+ ec2ReservedInstances?: never;
1368
+ rdsReservedInstances?: never;
1369
+ elastiCacheReservedInstances: ElastiCacheReservedInstances;
1370
+ openSearchReservedInstances?: never;
1371
+ redshiftReservedInstances?: never;
1372
+ ec2InstanceSavingsPlans?: never;
1373
+ computeSavingsPlans?: never;
1374
+ sageMakerSavingsPlans?: never;
1375
+ $unknown?: never;
1376
+ }
1377
+ /**
1378
+ * @public
1379
+ * <p>The OpenSearch reserved instances recommendation details.</p>
1380
+ */
1381
+ interface OpenSearchReservedInstancesMember {
1382
+ lambdaFunction?: never;
1383
+ ecsService?: never;
1384
+ ec2Instance?: never;
1385
+ ebsVolume?: never;
1386
+ ec2AutoScalingGroup?: never;
1387
+ ec2ReservedInstances?: never;
1388
+ rdsReservedInstances?: never;
1389
+ elastiCacheReservedInstances?: never;
1390
+ openSearchReservedInstances: OpenSearchReservedInstances;
1391
+ redshiftReservedInstances?: never;
1392
+ ec2InstanceSavingsPlans?: never;
1393
+ computeSavingsPlans?: never;
1394
+ sageMakerSavingsPlans?: never;
1395
+ $unknown?: never;
1396
+ }
1397
+ /**
1398
+ * @public
1399
+ * <p>The Redshift reserved instances recommendation details.</p>
1400
+ */
1401
+ interface RedshiftReservedInstancesMember {
1402
+ lambdaFunction?: never;
1403
+ ecsService?: never;
1404
+ ec2Instance?: never;
1405
+ ebsVolume?: never;
1406
+ ec2AutoScalingGroup?: never;
1407
+ ec2ReservedInstances?: never;
1408
+ rdsReservedInstances?: never;
1409
+ elastiCacheReservedInstances?: never;
1410
+ openSearchReservedInstances?: never;
1411
+ redshiftReservedInstances: RedshiftReservedInstances;
1412
+ ec2InstanceSavingsPlans?: never;
1413
+ computeSavingsPlans?: never;
1414
+ sageMakerSavingsPlans?: never;
1415
+ $unknown?: never;
1416
+ }
1417
+ /**
1418
+ * @public
1419
+ * <p>The EC2 instance Savings Plans recommendation details.</p>
1420
+ */
1421
+ interface Ec2InstanceSavingsPlansMember {
1422
+ lambdaFunction?: never;
1423
+ ecsService?: never;
1424
+ ec2Instance?: never;
1425
+ ebsVolume?: never;
1426
+ ec2AutoScalingGroup?: never;
1427
+ ec2ReservedInstances?: never;
1428
+ rdsReservedInstances?: never;
1429
+ elastiCacheReservedInstances?: never;
1430
+ openSearchReservedInstances?: never;
1431
+ redshiftReservedInstances?: never;
1432
+ ec2InstanceSavingsPlans: Ec2InstanceSavingsPlans;
1433
+ computeSavingsPlans?: never;
1434
+ sageMakerSavingsPlans?: never;
1435
+ $unknown?: never;
1436
+ }
1437
+ /**
1438
+ * @public
1439
+ * <p>The Compute Savings Plans recommendation details.</p>
1440
+ */
1441
+ interface ComputeSavingsPlansMember {
1442
+ lambdaFunction?: never;
1443
+ ecsService?: never;
1444
+ ec2Instance?: never;
1445
+ ebsVolume?: never;
1446
+ ec2AutoScalingGroup?: never;
1447
+ ec2ReservedInstances?: never;
1448
+ rdsReservedInstances?: never;
1449
+ elastiCacheReservedInstances?: never;
1450
+ openSearchReservedInstances?: never;
1451
+ redshiftReservedInstances?: never;
1452
+ ec2InstanceSavingsPlans?: never;
1453
+ computeSavingsPlans: ComputeSavingsPlans;
1454
+ sageMakerSavingsPlans?: never;
1455
+ $unknown?: never;
1456
+ }
1457
+ /**
1458
+ * @public
1459
+ * <p>The SageMaker Savings Plans recommendation details.</p>
1460
+ */
1461
+ interface SageMakerSavingsPlansMember {
1462
+ lambdaFunction?: never;
1463
+ ecsService?: never;
1464
+ ec2Instance?: never;
1465
+ ebsVolume?: never;
1466
+ ec2AutoScalingGroup?: never;
1467
+ ec2ReservedInstances?: never;
1468
+ rdsReservedInstances?: never;
1469
+ elastiCacheReservedInstances?: never;
1470
+ openSearchReservedInstances?: never;
1471
+ redshiftReservedInstances?: never;
1472
+ ec2InstanceSavingsPlans?: never;
1473
+ computeSavingsPlans?: never;
1474
+ sageMakerSavingsPlans: SageMakerSavingsPlans;
1475
+ $unknown?: never;
1476
+ }
1477
+ /**
1478
+ * @public
1479
+ */
1480
+ interface $UnknownMember {
1481
+ lambdaFunction?: never;
1482
+ ecsService?: never;
1483
+ ec2Instance?: never;
1484
+ ebsVolume?: never;
1485
+ ec2AutoScalingGroup?: never;
1486
+ ec2ReservedInstances?: never;
1487
+ rdsReservedInstances?: never;
1488
+ elastiCacheReservedInstances?: never;
1489
+ openSearchReservedInstances?: never;
1490
+ redshiftReservedInstances?: never;
1491
+ ec2InstanceSavingsPlans?: never;
1492
+ computeSavingsPlans?: never;
1493
+ sageMakerSavingsPlans?: never;
1494
+ $unknown: [string, any];
1495
+ }
1496
+ interface Visitor<T> {
1497
+ lambdaFunction: (value: LambdaFunction) => T;
1498
+ ecsService: (value: EcsService) => T;
1499
+ ec2Instance: (value: Ec2Instance) => T;
1500
+ ebsVolume: (value: EbsVolume) => T;
1501
+ ec2AutoScalingGroup: (value: Ec2AutoScalingGroup) => T;
1502
+ ec2ReservedInstances: (value: Ec2ReservedInstances) => T;
1503
+ rdsReservedInstances: (value: RdsReservedInstances) => T;
1504
+ elastiCacheReservedInstances: (value: ElastiCacheReservedInstances) => T;
1505
+ openSearchReservedInstances: (value: OpenSearchReservedInstances) => T;
1506
+ redshiftReservedInstances: (value: RedshiftReservedInstances) => T;
1507
+ ec2InstanceSavingsPlans: (value: Ec2InstanceSavingsPlans) => T;
1508
+ computeSavingsPlans: (value: ComputeSavingsPlans) => T;
1509
+ sageMakerSavingsPlans: (value: SageMakerSavingsPlans) => T;
1510
+ _: (name: string, value: any) => T;
1511
+ }
1512
+ const visit: <T>(value: ResourceDetails, visitor: Visitor<T>) => T;
1513
+ }
1514
+ /**
1515
+ * @public
1516
+ * @enum
1517
+ */
1518
+ export declare const ResourceType: {
1519
+ readonly COMPUTE_SAVINGS_PLANS: "ComputeSavingsPlans";
1520
+ readonly EBS_VOLUME: "EbsVolume";
1521
+ readonly EC2_AUTO_SCALING_GROUP: "Ec2AutoScalingGroup";
1522
+ readonly EC2_INSTANCE: "Ec2Instance";
1523
+ readonly EC2_INSTANCE_SAVINGS_PLANS: "Ec2InstanceSavingsPlans";
1524
+ readonly EC2_RESERVED_INSTANCES: "Ec2ReservedInstances";
1525
+ readonly ECS_SERVICE: "EcsService";
1526
+ readonly ELASTI_CACHE_RESERVED_INSTANCES: "ElastiCacheReservedInstances";
1527
+ readonly LAMBDA_FUNCTION: "LambdaFunction";
1528
+ readonly OPEN_SEARCH_RESERVED_INSTANCES: "OpenSearchReservedInstances";
1529
+ readonly RDS_RESERVED_INSTANCES: "RdsReservedInstances";
1530
+ readonly REDSHIFT_RESERVED_INSTANCES: "RedshiftReservedInstances";
1531
+ readonly SAGE_MAKER_SAVINGS_PLANS: "SageMakerSavingsPlans";
1532
+ };
1533
+ /**
1534
+ * @public
1535
+ */
1536
+ export type ResourceType = (typeof ResourceType)[keyof typeof ResourceType];
1537
+ /**
1538
+ * @public
1539
+ * @enum
1540
+ */
1541
+ export declare const ImplementationEffort: {
1542
+ readonly HIGH: "High";
1543
+ readonly LOW: "Low";
1544
+ readonly MEDIUM: "Medium";
1545
+ readonly VERY_HIGH: "VeryHigh";
1546
+ readonly VERY_LOW: "VeryLow";
1547
+ };
1548
+ /**
1549
+ * @public
1550
+ */
1551
+ export type ImplementationEffort = (typeof ImplementationEffort)[keyof typeof ImplementationEffort];
1552
+ /**
1553
+ * @public
1554
+ * @enum
1555
+ */
1556
+ export declare const Source: {
1557
+ readonly COMPUTE_OPTIMIZER: "ComputeOptimizer";
1558
+ readonly COST_EXPLORER: "CostExplorer";
1559
+ };
1560
+ /**
1561
+ * @public
1562
+ */
1563
+ export type Source = (typeof Source)[keyof typeof Source];
1564
+ /**
1565
+ * @public
1566
+ * <p>The tag structure that contains a tag key and value.</p>
1567
+ */
1568
+ export interface Tag {
1569
+ /**
1570
+ * @public
1571
+ * <p>The key that's associated with the tag.</p>
1572
+ */
1573
+ key?: string;
1574
+ /**
1575
+ * @public
1576
+ * <p>The value that's associated with the tag.</p>
1577
+ */
1578
+ value?: string;
1579
+ }
1580
+ /**
1581
+ * @public
1582
+ */
1583
+ export interface GetRecommendationResponse {
1584
+ /**
1585
+ * @public
1586
+ * <p>The ID for the recommendation.</p>
1587
+ */
1588
+ recommendationId?: string;
1589
+ /**
1590
+ * @public
1591
+ * <p>The unique identifier for the resource. This is the same as the Amazon Resource Name
1592
+ * (ARN), if available.</p>
1593
+ */
1594
+ resourceId?: string;
1595
+ /**
1596
+ * @public
1597
+ * <p>The Amazon Resource Name (ARN) of the resource.</p>
1598
+ */
1599
+ resourceArn?: string;
1600
+ /**
1601
+ * @public
1602
+ * <p>The account that the recommendation is for.</p>
1603
+ */
1604
+ accountId?: string;
1605
+ /**
1606
+ * @public
1607
+ * <p>The currency code used for the recommendation.</p>
1608
+ */
1609
+ currencyCode?: string;
1610
+ /**
1611
+ * @public
1612
+ * <p>The lookback period that's used to generate the recommendation.</p>
1613
+ */
1614
+ recommendationLookbackPeriodInDays?: number;
1615
+ /**
1616
+ * @public
1617
+ * <p>The lookback period used to calculate cost impact for a recommendation.</p>
1618
+ */
1619
+ costCalculationLookbackPeriodInDays?: number;
1620
+ /**
1621
+ * @public
1622
+ * <p>The estimated savings percentage relative to the total cost over the cost calculation
1623
+ * lookback period.</p>
1624
+ */
1625
+ estimatedSavingsPercentage?: number;
1626
+ /**
1627
+ * @public
1628
+ * <p>The estimated savings amount over the lookback period used to calculate cost impact for a
1629
+ * recommendation.</p>
1630
+ */
1631
+ estimatedSavingsOverCostCalculationLookbackPeriod?: number;
1632
+ /**
1633
+ * @public
1634
+ * <p>The type of resource.</p>
1635
+ */
1636
+ currentResourceType?: ResourceType;
1637
+ /**
1638
+ * @public
1639
+ * <p>The resource type of the recommendation.</p>
1640
+ */
1641
+ recommendedResourceType?: ResourceType;
1642
+ /**
1643
+ * @public
1644
+ * <p>The Amazon Web Services Region of the resource.</p>
1645
+ */
1646
+ region?: string;
1647
+ /**
1648
+ * @public
1649
+ * <p>The source of the recommendation.</p>
1650
+ */
1651
+ source?: Source;
1652
+ /**
1653
+ * @public
1654
+ * <p>The time when the recommendation was last generated.</p>
1655
+ */
1656
+ lastRefreshTimestamp?: Date;
1657
+ /**
1658
+ * @public
1659
+ * <p>The estimated monthly savings amount for the recommendation.</p>
1660
+ */
1661
+ estimatedMonthlySavings?: number;
1662
+ /**
1663
+ * @public
1664
+ * <p>The estimated monthly cost of the recommendation.</p>
1665
+ */
1666
+ estimatedMonthlyCost?: number;
1667
+ /**
1668
+ * @public
1669
+ * <p>The effort required to implement the recommendation.</p>
1670
+ */
1671
+ implementationEffort?: ImplementationEffort;
1672
+ /**
1673
+ * @public
1674
+ * <p>Whether or not implementing the recommendation requires a restart.</p>
1675
+ */
1676
+ restartNeeded?: boolean;
1677
+ /**
1678
+ * @public
1679
+ * <p>The type of action you can take by adopting the recommendation.</p>
1680
+ */
1681
+ actionType?: ActionType;
1682
+ /**
1683
+ * @public
1684
+ * <p>Whether or not implementing the recommendation can be rolled back.</p>
1685
+ */
1686
+ rollbackPossible?: boolean;
1687
+ /**
1688
+ * @public
1689
+ * <p>The details for the resource.</p>
1690
+ */
1691
+ currentResourceDetails?: ResourceDetails;
1692
+ /**
1693
+ * @public
1694
+ * <p>The details about the recommended resource.</p>
1695
+ */
1696
+ recommendedResourceDetails?: ResourceDetails;
1697
+ /**
1698
+ * @public
1699
+ * <p>A list of tags associated with the resource for which the recommendation exists.</p>
1700
+ */
1701
+ tags?: Tag[];
1702
+ }
1703
+ /**
1704
+ * @public
1705
+ * <p>The specified Amazon Resource Name (ARN) in the request doesn't exist.</p>
1706
+ */
1707
+ export declare class ResourceNotFoundException extends __BaseException {
1708
+ readonly name: "ResourceNotFoundException";
1709
+ readonly $fault: "client";
1710
+ /**
1711
+ * @public
1712
+ * <p>The identifier of the resource that was not found.</p>
1713
+ */
1714
+ resourceId: string | undefined;
1715
+ /**
1716
+ * @internal
1717
+ */
1718
+ constructor(opts: __ExceptionOptionType<ResourceNotFoundException, __BaseException>);
1719
+ }
1720
+ /**
1721
+ * @public
1722
+ */
1723
+ export interface ListEnrollmentStatusesRequest {
1724
+ /**
1725
+ * @public
1726
+ * <p>Indicates whether to return the enrollment status for the organization.</p>
1727
+ */
1728
+ includeOrganizationInfo?: boolean;
1729
+ /**
1730
+ * @public
1731
+ * <p>The enrollment status of a specific account ID in the organization.</p>
1732
+ */
1733
+ accountId?: string;
1734
+ /**
1735
+ * @public
1736
+ * <p>The token to retrieve the next set of results.</p>
1737
+ */
1738
+ nextToken?: string;
1739
+ /**
1740
+ * @public
1741
+ * <p>The maximum number of objects that are returned for the request.</p>
1742
+ */
1743
+ maxResults?: number;
1744
+ }
1745
+ /**
1746
+ * @public
1747
+ */
1748
+ export interface ListEnrollmentStatusesResponse {
1749
+ /**
1750
+ * @public
1751
+ * <p>The account enrollment statuses.</p>
1752
+ */
1753
+ items?: AccountEnrollmentStatus[];
1754
+ /**
1755
+ * @public
1756
+ * <p>The token to retrieve the next set of results.</p>
1757
+ */
1758
+ nextToken?: string;
1759
+ }
1760
+ /**
1761
+ * @public
1762
+ * <p>Describes a filter that returns a more specific list of recommendations. Filters
1763
+ * recommendations by different dimensions.</p>
1764
+ */
1765
+ export interface Filter {
1766
+ /**
1767
+ * @public
1768
+ * <p>Whether or not implementing the recommendation requires a restart.</p>
1769
+ */
1770
+ restartNeeded?: boolean;
1771
+ /**
1772
+ * @public
1773
+ * <p>Whether or not implementing the recommendation can be rolled back.</p>
1774
+ */
1775
+ rollbackPossible?: boolean;
1776
+ /**
1777
+ * @public
1778
+ * <p>The effort required to implement the recommendation.</p>
1779
+ */
1780
+ implementationEfforts?: ImplementationEffort[];
1781
+ /**
1782
+ * @public
1783
+ * <p>The account that the recommendation is for.</p>
1784
+ */
1785
+ accountIds?: string[];
1786
+ /**
1787
+ * @public
1788
+ * <p>The Amazon Web Services Region of the resource.</p>
1789
+ */
1790
+ regions?: string[];
1791
+ /**
1792
+ * @public
1793
+ * <p>The resource type of the recommendation.</p>
1794
+ */
1795
+ resourceTypes?: ResourceType[];
1796
+ /**
1797
+ * @public
1798
+ * <p>The type of action you can take by adopting the recommendation.</p>
1799
+ */
1800
+ actionTypes?: ActionType[];
1801
+ /**
1802
+ * @public
1803
+ * <p>A list of tags assigned to the recommendation.</p>
1804
+ */
1805
+ tags?: Tag[];
1806
+ /**
1807
+ * @public
1808
+ * <p>The resource ID of the recommendation.</p>
1809
+ */
1810
+ resourceIds?: string[];
1811
+ /**
1812
+ * @public
1813
+ * <p>The Amazon Resource Name (ARN) of the recommendation.</p>
1814
+ */
1815
+ resourceArns?: string[];
1816
+ /**
1817
+ * @public
1818
+ * <p>The IDs for the recommendations.</p>
1819
+ */
1820
+ recommendationIds?: string[];
1821
+ }
1822
+ /**
1823
+ * @public
1824
+ * @enum
1825
+ */
1826
+ export declare const Order: {
1827
+ readonly ASC: "Asc";
1828
+ readonly DESC: "Desc";
1829
+ };
1830
+ /**
1831
+ * @public
1832
+ */
1833
+ export type Order = (typeof Order)[keyof typeof Order];
1834
+ /**
1835
+ * @public
1836
+ * <p>Defines how rows will be sorted in the response.</p>
1837
+ */
1838
+ export interface OrderBy {
1839
+ /**
1840
+ * @public
1841
+ * <p>Sorts by dimension values.</p>
1842
+ */
1843
+ dimension?: string;
1844
+ /**
1845
+ * @public
1846
+ * <p>The order that's used to sort the data.</p>
1847
+ */
1848
+ order?: Order;
1849
+ }
1850
+ /**
1851
+ * @public
1852
+ */
1853
+ export interface ListRecommendationsRequest {
1854
+ /**
1855
+ * @public
1856
+ * <p>The constraints that you want all returned recommendations to match.</p>
1857
+ */
1858
+ filter?: Filter;
1859
+ /**
1860
+ * @public
1861
+ * <p>The ordering of recommendations by a dimension.</p>
1862
+ */
1863
+ orderBy?: OrderBy;
1864
+ /**
1865
+ * @public
1866
+ * <p>List of all recommendations for a resource, or a single recommendation if de-duped by
1867
+ * <code>resourceId</code>.</p>
1868
+ */
1869
+ includeAllRecommendations?: boolean;
1870
+ /**
1871
+ * @public
1872
+ * <p>The maximum number of recommendations that are returned for the request.</p>
1873
+ */
1874
+ maxResults?: number;
1875
+ /**
1876
+ * @public
1877
+ * <p>The token to retrieve the next set of results.</p>
1878
+ */
1879
+ nextToken?: string;
1880
+ }
1881
+ /**
1882
+ * @public
1883
+ * <p>Describes a recommendation.</p>
1884
+ */
1885
+ export interface Recommendation {
1886
+ /**
1887
+ * @public
1888
+ * <p>The ID for the recommendation.</p>
1889
+ */
1890
+ recommendationId?: string;
1891
+ /**
1892
+ * @public
1893
+ * <p>The account that the recommendation is for.</p>
1894
+ */
1895
+ accountId?: string;
1896
+ /**
1897
+ * @public
1898
+ * <p>The Amazon Web Services Region of the resource.</p>
1899
+ */
1900
+ region?: string;
1901
+ /**
1902
+ * @public
1903
+ * <p>The resource ID for the recommendation.</p>
1904
+ */
1905
+ resourceId?: string;
1906
+ /**
1907
+ * @public
1908
+ * <p>The Amazon Resource Name (ARN) for the recommendation.</p>
1909
+ */
1910
+ resourceArn?: string;
1911
+ /**
1912
+ * @public
1913
+ * <p>The current resource type.</p>
1914
+ */
1915
+ currentResourceType?: string;
1916
+ /**
1917
+ * @public
1918
+ * <p>The recommended resource type.</p>
1919
+ */
1920
+ recommendedResourceType?: string;
1921
+ /**
1922
+ * @public
1923
+ * <p>The estimated monthly savings amount for the recommendation.</p>
1924
+ */
1925
+ estimatedMonthlySavings?: number;
1926
+ /**
1927
+ * @public
1928
+ * <p>The estimated savings percentage relative to the total cost over the cost calculation
1929
+ * lookback period.</p>
1930
+ */
1931
+ estimatedSavingsPercentage?: number;
1932
+ /**
1933
+ * @public
1934
+ * <p>The estimated monthly cost for the recommendation.</p>
1935
+ */
1936
+ estimatedMonthlyCost?: number;
1937
+ /**
1938
+ * @public
1939
+ * <p>The currency code used for the recommendation.</p>
1940
+ */
1941
+ currencyCode?: string;
1942
+ /**
1943
+ * @public
1944
+ * <p>The effort required to implement the recommendation.</p>
1945
+ */
1946
+ implementationEffort?: string;
1947
+ /**
1948
+ * @public
1949
+ * <p>Whether or not implementing the recommendation requires a restart.</p>
1950
+ */
1951
+ restartNeeded?: boolean;
1952
+ /**
1953
+ * @public
1954
+ * <p>The type of tasks that can be carried out by this action.</p>
1955
+ */
1956
+ actionType?: string;
1957
+ /**
1958
+ * @public
1959
+ * <p>Whether or not implementing the recommendation can be rolled back.</p>
1960
+ */
1961
+ rollbackPossible?: boolean;
1962
+ /**
1963
+ * @public
1964
+ * <p>Describes the current resource.</p>
1965
+ */
1966
+ currentResourceSummary?: string;
1967
+ /**
1968
+ * @public
1969
+ * <p>Describes the recommended resource.</p>
1970
+ */
1971
+ recommendedResourceSummary?: string;
1972
+ /**
1973
+ * @public
1974
+ * <p>The time when the recommendation was last generated.</p>
1975
+ */
1976
+ lastRefreshTimestamp?: Date;
1977
+ /**
1978
+ * @public
1979
+ * <p>The lookback period that's used to generate the recommendation.</p>
1980
+ */
1981
+ recommendationLookbackPeriodInDays?: number;
1982
+ /**
1983
+ * @public
1984
+ * <p>The source of the recommendation.</p>
1985
+ */
1986
+ source?: Source;
1987
+ /**
1988
+ * @public
1989
+ * <p>A list of tags assigned to the recommendation.</p>
1990
+ */
1991
+ tags?: Tag[];
1992
+ }
1993
+ /**
1994
+ * @public
1995
+ */
1996
+ export interface ListRecommendationsResponse {
1997
+ /**
1998
+ * @public
1999
+ * <p>List of all savings recommendations.</p>
2000
+ */
2001
+ items?: Recommendation[];
2002
+ /**
2003
+ * @public
2004
+ * <p>The token to retrieve the next set of results.</p>
2005
+ */
2006
+ nextToken?: string;
2007
+ }
2008
+ /**
2009
+ * @public
2010
+ */
2011
+ export interface ListRecommendationSummariesRequest {
2012
+ /**
2013
+ * @public
2014
+ * <p>Describes a filter that returns a more specific list of recommendations. Filters
2015
+ * recommendations by different dimensions.</p>
2016
+ */
2017
+ filter?: Filter;
2018
+ /**
2019
+ * @public
2020
+ * <p>The grouping of recommendations by a dimension.</p>
2021
+ */
2022
+ groupBy: string | undefined;
2023
+ /**
2024
+ * @public
2025
+ * <p>The maximum number of recommendations that are returned for the request.</p>
2026
+ */
2027
+ maxResults?: number;
2028
+ /**
2029
+ * @public
2030
+ * <p>The token to retrieve the next set of results.</p>
2031
+ */
2032
+ nextToken?: string;
2033
+ }
2034
+ /**
2035
+ * @public
2036
+ * <p>The summary of rightsizing recommendations, including de-duped savings from all types of
2037
+ * recommendations.</p>
2038
+ */
2039
+ export interface RecommendationSummary {
2040
+ /**
2041
+ * @public
2042
+ * <p>The grouping of recommendations.</p>
2043
+ */
2044
+ group?: string;
2045
+ /**
2046
+ * @public
2047
+ * <p>The estimated total savings resulting from modifications, on a monthly basis.</p>
2048
+ */
2049
+ estimatedMonthlySavings?: number;
2050
+ /**
2051
+ * @public
2052
+ * <p>The total number of instance recommendations.</p>
2053
+ */
2054
+ recommendationCount?: number;
2055
+ }
2056
+ /**
2057
+ * @public
2058
+ */
2059
+ export interface ListRecommendationSummariesResponse {
2060
+ /**
2061
+ * @public
2062
+ * <p>The total overall savings for the aggregated view.</p>
2063
+ */
2064
+ estimatedTotalDedupedSavings?: number;
2065
+ /**
2066
+ * @public
2067
+ * <p>List of all savings recommendations.</p>
2068
+ */
2069
+ items?: RecommendationSummary[];
2070
+ /**
2071
+ * @public
2072
+ * <p>The dimension used to group the recommendations by.</p>
2073
+ */
2074
+ groupBy?: string;
2075
+ /**
2076
+ * @public
2077
+ * <p>The currency code used for the recommendation.</p>
2078
+ */
2079
+ currencyCode?: string;
2080
+ /**
2081
+ * @public
2082
+ * <p>The token to retrieve the next set of results.</p>
2083
+ */
2084
+ nextToken?: string;
2085
+ }
2086
+ /**
2087
+ * @public
2088
+ */
2089
+ export interface UpdateEnrollmentStatusRequest {
2090
+ /**
2091
+ * @public
2092
+ * <p>Sets the account status.</p>
2093
+ */
2094
+ status: EnrollmentStatus | undefined;
2095
+ /**
2096
+ * @public
2097
+ * <p>Indicates whether to enroll member accounts of the organization if the account is the
2098
+ * management account.</p>
2099
+ */
2100
+ includeMemberAccounts?: boolean;
2101
+ }
2102
+ /**
2103
+ * @public
2104
+ */
2105
+ export interface UpdateEnrollmentStatusResponse {
2106
+ /**
2107
+ * @public
2108
+ * <p>The enrollment status of the account.</p>
2109
+ */
2110
+ status?: string;
2111
+ }
2112
+ /**
2113
+ * @public
2114
+ */
2115
+ export interface UpdatePreferencesRequest {
2116
+ /**
2117
+ * @public
2118
+ * <p>Sets the "savings estimation mode" preference.</p>
2119
+ */
2120
+ savingsEstimationMode?: SavingsEstimationMode;
2121
+ /**
2122
+ * @public
2123
+ * <p>Sets the "member account discount visibility" preference.</p>
2124
+ */
2125
+ memberAccountDiscountVisibility?: MemberAccountDiscountVisibility;
2126
+ }
2127
+ /**
2128
+ * @public
2129
+ */
2130
+ export interface UpdatePreferencesResponse {
2131
+ /**
2132
+ * @public
2133
+ * <p>Shows the status of the "savings estimation mode" preference.</p>
2134
+ */
2135
+ savingsEstimationMode?: SavingsEstimationMode;
2136
+ /**
2137
+ * @public
2138
+ * <p>Shows the status of the "member account discount visibility" preference.</p>
2139
+ */
2140
+ memberAccountDiscountVisibility?: MemberAccountDiscountVisibility;
2141
+ }