Skip to content

Commit be8fc6b

Browse files
author
awstools
committed
feat(client-cost-optimization-hub): This release adds resource type "MemoryDbReservedInstances" and resource type "DynamoDbReservedCapacity" to the GetRecommendation, ListRecommendations, and ListRecommendationSummaries APIs to support new MemoryDB and DynamoDB RI recommendations.
1 parent 719eed4 commit be8fc6b

File tree

6 files changed

+4527
-3933
lines changed

6 files changed

+4527
-3933
lines changed

clients/client-cost-optimization-hub/src/commands/GetRecommendationCommand.ts

Lines changed: 106 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ export interface GetRecommendationCommandOutput extends GetRecommendationRespons
5858
* // costCalculationLookbackPeriodInDays: Number("int"),
5959
* // estimatedSavingsPercentage: Number("double"),
6060
* // estimatedSavingsOverCostCalculationLookbackPeriod: Number("double"),
61-
* // currentResourceType: "Ec2Instance" || "LambdaFunction" || "EbsVolume" || "EcsService" || "Ec2AutoScalingGroup" || "Ec2InstanceSavingsPlans" || "ComputeSavingsPlans" || "SageMakerSavingsPlans" || "Ec2ReservedInstances" || "RdsReservedInstances" || "OpenSearchReservedInstances" || "RedshiftReservedInstances" || "ElastiCacheReservedInstances" || "RdsDbInstanceStorage" || "RdsDbInstance",
62-
* // recommendedResourceType: "Ec2Instance" || "LambdaFunction" || "EbsVolume" || "EcsService" || "Ec2AutoScalingGroup" || "Ec2InstanceSavingsPlans" || "ComputeSavingsPlans" || "SageMakerSavingsPlans" || "Ec2ReservedInstances" || "RdsReservedInstances" || "OpenSearchReservedInstances" || "RedshiftReservedInstances" || "ElastiCacheReservedInstances" || "RdsDbInstanceStorage" || "RdsDbInstance",
61+
* // currentResourceType: "Ec2Instance" || "LambdaFunction" || "EbsVolume" || "EcsService" || "Ec2AutoScalingGroup" || "Ec2InstanceSavingsPlans" || "ComputeSavingsPlans" || "SageMakerSavingsPlans" || "Ec2ReservedInstances" || "RdsReservedInstances" || "OpenSearchReservedInstances" || "RedshiftReservedInstances" || "ElastiCacheReservedInstances" || "RdsDbInstanceStorage" || "RdsDbInstance" || "DynamoDbReservedCapacity" || "MemoryDbReservedInstances",
62+
* // recommendedResourceType: "Ec2Instance" || "LambdaFunction" || "EbsVolume" || "EcsService" || "Ec2AutoScalingGroup" || "Ec2InstanceSavingsPlans" || "ComputeSavingsPlans" || "SageMakerSavingsPlans" || "Ec2ReservedInstances" || "RdsReservedInstances" || "OpenSearchReservedInstances" || "RedshiftReservedInstances" || "ElastiCacheReservedInstances" || "RdsDbInstanceStorage" || "RdsDbInstance" || "DynamoDbReservedCapacity" || "MemoryDbReservedInstances",
6363
* // region: "STRING_VALUE",
6464
* // source: "ComputeOptimizer" || "CostExplorer",
6565
* // lastRefreshTimestamp: new Date("TIMESTAMP"),
@@ -233,20 +233,20 @@ export interface GetRecommendationCommandOutput extends GetRecommendationRespons
233233
* // configuration: { // Ec2ReservedInstancesConfiguration
234234
* // accountScope: "STRING_VALUE",
235235
* // service: "STRING_VALUE",
236-
* // normalizedUnitsToPurchase: "STRING_VALUE",
237236
* // term: "STRING_VALUE",
238237
* // paymentOption: "STRING_VALUE",
238+
* // reservedInstancesRegion: "STRING_VALUE",
239+
* // upfrontCost: "STRING_VALUE",
240+
* // monthlyRecurringCost: "STRING_VALUE",
241+
* // normalizedUnitsToPurchase: "STRING_VALUE",
239242
* // numberOfInstancesToPurchase: "STRING_VALUE",
240243
* // offeringClass: "STRING_VALUE",
241244
* // instanceFamily: "STRING_VALUE",
242245
* // instanceType: "STRING_VALUE",
243-
* // reservedInstancesRegion: "STRING_VALUE",
244246
* // currentGeneration: "STRING_VALUE",
245247
* // platform: "STRING_VALUE",
246248
* // tenancy: "STRING_VALUE",
247249
* // sizeFlexEligible: true || false,
248-
* // upfrontCost: "STRING_VALUE",
249-
* // monthlyRecurringCost: "STRING_VALUE",
250250
* // },
251251
* // costCalculation: { // ReservedInstancesCostCalculation
252252
* // pricing: { // ReservedInstancesPricing
@@ -261,17 +261,17 @@ export interface GetRecommendationCommandOutput extends GetRecommendationRespons
261261
* // configuration: { // RdsReservedInstancesConfiguration
262262
* // accountScope: "STRING_VALUE",
263263
* // service: "STRING_VALUE",
264-
* // normalizedUnitsToPurchase: "STRING_VALUE",
265264
* // term: "STRING_VALUE",
266265
* // paymentOption: "STRING_VALUE",
266+
* // reservedInstancesRegion: "STRING_VALUE",
267+
* // upfrontCost: "STRING_VALUE",
268+
* // monthlyRecurringCost: "STRING_VALUE",
269+
* // normalizedUnitsToPurchase: "STRING_VALUE",
267270
* // numberOfInstancesToPurchase: "STRING_VALUE",
268271
* // instanceFamily: "STRING_VALUE",
269272
* // instanceType: "STRING_VALUE",
270-
* // reservedInstancesRegion: "STRING_VALUE",
271273
* // sizeFlexEligible: true || false,
272274
* // currentGeneration: "STRING_VALUE",
273-
* // upfrontCost: "STRING_VALUE",
274-
* // monthlyRecurringCost: "STRING_VALUE",
275275
* // licenseModel: "STRING_VALUE",
276276
* // databaseEdition: "STRING_VALUE",
277277
* // databaseEngine: "STRING_VALUE",
@@ -290,17 +290,17 @@ export interface GetRecommendationCommandOutput extends GetRecommendationRespons
290290
* // configuration: { // ElastiCacheReservedInstancesConfiguration
291291
* // accountScope: "STRING_VALUE",
292292
* // service: "STRING_VALUE",
293-
* // normalizedUnitsToPurchase: "STRING_VALUE",
294293
* // term: "STRING_VALUE",
295294
* // paymentOption: "STRING_VALUE",
295+
* // reservedInstancesRegion: "STRING_VALUE",
296+
* // upfrontCost: "STRING_VALUE",
297+
* // monthlyRecurringCost: "STRING_VALUE",
298+
* // normalizedUnitsToPurchase: "STRING_VALUE",
296299
* // numberOfInstancesToPurchase: "STRING_VALUE",
297300
* // instanceFamily: "STRING_VALUE",
298301
* // instanceType: "STRING_VALUE",
299-
* // reservedInstancesRegion: "STRING_VALUE",
300302
* // currentGeneration: "STRING_VALUE",
301303
* // sizeFlexEligible: true || false,
302-
* // upfrontCost: "STRING_VALUE",
303-
* // monthlyRecurringCost: "STRING_VALUE",
304304
* // },
305305
* // costCalculation: {
306306
* // pricing: {
@@ -315,16 +315,16 @@ export interface GetRecommendationCommandOutput extends GetRecommendationRespons
315315
* // configuration: { // OpenSearchReservedInstancesConfiguration
316316
* // accountScope: "STRING_VALUE",
317317
* // service: "STRING_VALUE",
318-
* // normalizedUnitsToPurchase: "STRING_VALUE",
319318
* // term: "STRING_VALUE",
320319
* // paymentOption: "STRING_VALUE",
320+
* // reservedInstancesRegion: "STRING_VALUE",
321+
* // upfrontCost: "STRING_VALUE",
322+
* // monthlyRecurringCost: "STRING_VALUE",
323+
* // normalizedUnitsToPurchase: "STRING_VALUE",
321324
* // numberOfInstancesToPurchase: "STRING_VALUE",
322325
* // instanceType: "STRING_VALUE",
323-
* // reservedInstancesRegion: "STRING_VALUE",
324326
* // currentGeneration: "STRING_VALUE",
325327
* // sizeFlexEligible: true || false,
326-
* // upfrontCost: "STRING_VALUE",
327-
* // monthlyRecurringCost: "STRING_VALUE",
328328
* // },
329329
* // costCalculation: {
330330
* // pricing: {
@@ -339,17 +339,17 @@ export interface GetRecommendationCommandOutput extends GetRecommendationRespons
339339
* // configuration: { // RedshiftReservedInstancesConfiguration
340340
* // accountScope: "STRING_VALUE",
341341
* // service: "STRING_VALUE",
342-
* // normalizedUnitsToPurchase: "STRING_VALUE",
343342
* // term: "STRING_VALUE",
344343
* // paymentOption: "STRING_VALUE",
344+
* // reservedInstancesRegion: "STRING_VALUE",
345+
* // upfrontCost: "STRING_VALUE",
346+
* // monthlyRecurringCost: "STRING_VALUE",
347+
* // normalizedUnitsToPurchase: "STRING_VALUE",
345348
* // numberOfInstancesToPurchase: "STRING_VALUE",
346349
* // instanceFamily: "STRING_VALUE",
347350
* // instanceType: "STRING_VALUE",
348-
* // reservedInstancesRegion: "STRING_VALUE",
349351
* // sizeFlexEligible: true || false,
350352
* // currentGeneration: "STRING_VALUE",
351-
* // upfrontCost: "STRING_VALUE",
352-
* // monthlyRecurringCost: "STRING_VALUE",
353353
* // },
354354
* // costCalculation: {
355355
* // pricing: {
@@ -427,6 +427,38 @@ export interface GetRecommendationCommandOutput extends GetRecommendationRespons
427427
* // },
428428
* // costCalculation: "<ResourceCostCalculation>",
429429
* // },
430+
* // dynamoDbReservedCapacity: { // DynamoDbReservedCapacity
431+
* // configuration: { // DynamoDbReservedCapacityConfiguration
432+
* // accountScope: "STRING_VALUE",
433+
* // service: "STRING_VALUE",
434+
* // term: "STRING_VALUE",
435+
* // paymentOption: "STRING_VALUE",
436+
* // reservedInstancesRegion: "STRING_VALUE",
437+
* // upfrontCost: "STRING_VALUE",
438+
* // monthlyRecurringCost: "STRING_VALUE",
439+
* // numberOfCapacityUnitsToPurchase: "STRING_VALUE",
440+
* // capacityUnits: "STRING_VALUE",
441+
* // },
442+
* // costCalculation: "<ReservedInstancesCostCalculation>",
443+
* // },
444+
* // memoryDbReservedInstances: { // MemoryDbReservedInstances
445+
* // configuration: { // MemoryDbReservedInstancesConfiguration
446+
* // accountScope: "STRING_VALUE",
447+
* // service: "STRING_VALUE",
448+
* // term: "STRING_VALUE",
449+
* // paymentOption: "STRING_VALUE",
450+
* // reservedInstancesRegion: "STRING_VALUE",
451+
* // upfrontCost: "STRING_VALUE",
452+
* // monthlyRecurringCost: "STRING_VALUE",
453+
* // normalizedUnitsToPurchase: "STRING_VALUE",
454+
* // numberOfInstancesToPurchase: "STRING_VALUE",
455+
* // instanceType: "STRING_VALUE",
456+
* // instanceFamily: "STRING_VALUE",
457+
* // sizeFlexEligible: true || false,
458+
* // currentGeneration: "STRING_VALUE",
459+
* // },
460+
* // costCalculation: "<ReservedInstancesCostCalculation>",
461+
* // },
430462
* // },
431463
* // recommendedResourceDetails: {// Union: only one key present
432464
* // lambdaFunction: {
@@ -492,38 +524,38 @@ export interface GetRecommendationCommandOutput extends GetRecommendationRespons
492524
* // configuration: {
493525
* // accountScope: "STRING_VALUE",
494526
* // service: "STRING_VALUE",
495-
* // normalizedUnitsToPurchase: "STRING_VALUE",
496527
* // term: "STRING_VALUE",
497528
* // paymentOption: "STRING_VALUE",
529+
* // reservedInstancesRegion: "STRING_VALUE",
530+
* // upfrontCost: "STRING_VALUE",
531+
* // monthlyRecurringCost: "STRING_VALUE",
532+
* // normalizedUnitsToPurchase: "STRING_VALUE",
498533
* // numberOfInstancesToPurchase: "STRING_VALUE",
499534
* // offeringClass: "STRING_VALUE",
500535
* // instanceFamily: "STRING_VALUE",
501536
* // instanceType: "STRING_VALUE",
502-
* // reservedInstancesRegion: "STRING_VALUE",
503537
* // currentGeneration: "STRING_VALUE",
504538
* // platform: "STRING_VALUE",
505539
* // tenancy: "STRING_VALUE",
506540
* // sizeFlexEligible: true || false,
507-
* // upfrontCost: "STRING_VALUE",
508-
* // monthlyRecurringCost: "STRING_VALUE",
509541
* // },
510542
* // costCalculation: "<ReservedInstancesCostCalculation>",
511543
* // },
512544
* // rdsReservedInstances: {
513545
* // configuration: {
514546
* // accountScope: "STRING_VALUE",
515547
* // service: "STRING_VALUE",
516-
* // normalizedUnitsToPurchase: "STRING_VALUE",
517548
* // term: "STRING_VALUE",
518549
* // paymentOption: "STRING_VALUE",
550+
* // reservedInstancesRegion: "STRING_VALUE",
551+
* // upfrontCost: "STRING_VALUE",
552+
* // monthlyRecurringCost: "STRING_VALUE",
553+
* // normalizedUnitsToPurchase: "STRING_VALUE",
519554
* // numberOfInstancesToPurchase: "STRING_VALUE",
520555
* // instanceFamily: "STRING_VALUE",
521556
* // instanceType: "STRING_VALUE",
522-
* // reservedInstancesRegion: "STRING_VALUE",
523557
* // sizeFlexEligible: true || false,
524558
* // currentGeneration: "STRING_VALUE",
525-
* // upfrontCost: "STRING_VALUE",
526-
* // monthlyRecurringCost: "STRING_VALUE",
527559
* // licenseModel: "STRING_VALUE",
528560
* // databaseEdition: "STRING_VALUE",
529561
* // databaseEngine: "STRING_VALUE",
@@ -535,52 +567,52 @@ export interface GetRecommendationCommandOutput extends GetRecommendationRespons
535567
* // configuration: {
536568
* // accountScope: "STRING_VALUE",
537569
* // service: "STRING_VALUE",
538-
* // normalizedUnitsToPurchase: "STRING_VALUE",
539570
* // term: "STRING_VALUE",
540571
* // paymentOption: "STRING_VALUE",
572+
* // reservedInstancesRegion: "STRING_VALUE",
573+
* // upfrontCost: "STRING_VALUE",
574+
* // monthlyRecurringCost: "STRING_VALUE",
575+
* // normalizedUnitsToPurchase: "STRING_VALUE",
541576
* // numberOfInstancesToPurchase: "STRING_VALUE",
542577
* // instanceFamily: "STRING_VALUE",
543578
* // instanceType: "STRING_VALUE",
544-
* // reservedInstancesRegion: "STRING_VALUE",
545579
* // currentGeneration: "STRING_VALUE",
546580
* // sizeFlexEligible: true || false,
547-
* // upfrontCost: "STRING_VALUE",
548-
* // monthlyRecurringCost: "STRING_VALUE",
549581
* // },
550582
* // costCalculation: "<ReservedInstancesCostCalculation>",
551583
* // },
552584
* // openSearchReservedInstances: {
553585
* // configuration: {
554586
* // accountScope: "STRING_VALUE",
555587
* // service: "STRING_VALUE",
556-
* // normalizedUnitsToPurchase: "STRING_VALUE",
557588
* // term: "STRING_VALUE",
558589
* // paymentOption: "STRING_VALUE",
590+
* // reservedInstancesRegion: "STRING_VALUE",
591+
* // upfrontCost: "STRING_VALUE",
592+
* // monthlyRecurringCost: "STRING_VALUE",
593+
* // normalizedUnitsToPurchase: "STRING_VALUE",
559594
* // numberOfInstancesToPurchase: "STRING_VALUE",
560595
* // instanceType: "STRING_VALUE",
561-
* // reservedInstancesRegion: "STRING_VALUE",
562596
* // currentGeneration: "STRING_VALUE",
563597
* // sizeFlexEligible: true || false,
564-
* // upfrontCost: "STRING_VALUE",
565-
* // monthlyRecurringCost: "STRING_VALUE",
566598
* // },
567599
* // costCalculation: "<ReservedInstancesCostCalculation>",
568600
* // },
569601
* // redshiftReservedInstances: {
570602
* // configuration: {
571603
* // accountScope: "STRING_VALUE",
572604
* // service: "STRING_VALUE",
573-
* // normalizedUnitsToPurchase: "STRING_VALUE",
574605
* // term: "STRING_VALUE",
575606
* // paymentOption: "STRING_VALUE",
607+
* // reservedInstancesRegion: "STRING_VALUE",
608+
* // upfrontCost: "STRING_VALUE",
609+
* // monthlyRecurringCost: "STRING_VALUE",
610+
* // normalizedUnitsToPurchase: "STRING_VALUE",
576611
* // numberOfInstancesToPurchase: "STRING_VALUE",
577612
* // instanceFamily: "STRING_VALUE",
578613
* // instanceType: "STRING_VALUE",
579-
* // reservedInstancesRegion: "STRING_VALUE",
580614
* // sizeFlexEligible: true || false,
581615
* // currentGeneration: "STRING_VALUE",
582-
* // upfrontCost: "STRING_VALUE",
583-
* // monthlyRecurringCost: "STRING_VALUE",
584616
* // },
585617
* // costCalculation: "<ReservedInstancesCostCalculation>",
586618
* // },
@@ -644,6 +676,38 @@ export interface GetRecommendationCommandOutput extends GetRecommendationRespons
644676
* // },
645677
* // costCalculation: "<ResourceCostCalculation>",
646678
* // },
679+
* // dynamoDbReservedCapacity: {
680+
* // configuration: {
681+
* // accountScope: "STRING_VALUE",
682+
* // service: "STRING_VALUE",
683+
* // term: "STRING_VALUE",
684+
* // paymentOption: "STRING_VALUE",
685+
* // reservedInstancesRegion: "STRING_VALUE",
686+
* // upfrontCost: "STRING_VALUE",
687+
* // monthlyRecurringCost: "STRING_VALUE",
688+
* // numberOfCapacityUnitsToPurchase: "STRING_VALUE",
689+
* // capacityUnits: "STRING_VALUE",
690+
* // },
691+
* // costCalculation: "<ReservedInstancesCostCalculation>",
692+
* // },
693+
* // memoryDbReservedInstances: {
694+
* // configuration: {
695+
* // accountScope: "STRING_VALUE",
696+
* // service: "STRING_VALUE",
697+
* // term: "STRING_VALUE",
698+
* // paymentOption: "STRING_VALUE",
699+
* // reservedInstancesRegion: "STRING_VALUE",
700+
* // upfrontCost: "STRING_VALUE",
701+
* // monthlyRecurringCost: "STRING_VALUE",
702+
* // normalizedUnitsToPurchase: "STRING_VALUE",
703+
* // numberOfInstancesToPurchase: "STRING_VALUE",
704+
* // instanceType: "STRING_VALUE",
705+
* // instanceFamily: "STRING_VALUE",
706+
* // sizeFlexEligible: true || false,
707+
* // currentGeneration: "STRING_VALUE",
708+
* // },
709+
* // costCalculation: "<ReservedInstancesCostCalculation>",
710+
* // },
647711
* // },
648712
* // tags: [ // TagList
649713
* // { // Tag

clients/client-cost-optimization-hub/src/commands/ListRecommendationSummariesCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export interface ListRecommendationSummariesCommandOutput
6060
* "STRING_VALUE",
6161
* ],
6262
* resourceTypes: [ // ResourceTypeList
63-
* "Ec2Instance" || "LambdaFunction" || "EbsVolume" || "EcsService" || "Ec2AutoScalingGroup" || "Ec2InstanceSavingsPlans" || "ComputeSavingsPlans" || "SageMakerSavingsPlans" || "Ec2ReservedInstances" || "RdsReservedInstances" || "OpenSearchReservedInstances" || "RedshiftReservedInstances" || "ElastiCacheReservedInstances" || "RdsDbInstanceStorage" || "RdsDbInstance",
63+
* "Ec2Instance" || "LambdaFunction" || "EbsVolume" || "EcsService" || "Ec2AutoScalingGroup" || "Ec2InstanceSavingsPlans" || "ComputeSavingsPlans" || "SageMakerSavingsPlans" || "Ec2ReservedInstances" || "RdsReservedInstances" || "OpenSearchReservedInstances" || "RedshiftReservedInstances" || "ElastiCacheReservedInstances" || "RdsDbInstanceStorage" || "RdsDbInstance" || "DynamoDbReservedCapacity" || "MemoryDbReservedInstances",
6464
* ],
6565
* actionTypes: [ // ActionTypeList
6666
* "Rightsize" || "Stop" || "Upgrade" || "PurchaseSavingsPlans" || "PurchaseReservedInstances" || "MigrateToGraviton" || "Delete" || "ScaleIn",

clients/client-cost-optimization-hub/src/commands/ListRecommendationsCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export interface ListRecommendationsCommandOutput extends ListRecommendationsRes
5353
* "STRING_VALUE",
5454
* ],
5555
* resourceTypes: [ // ResourceTypeList
56-
* "Ec2Instance" || "LambdaFunction" || "EbsVolume" || "EcsService" || "Ec2AutoScalingGroup" || "Ec2InstanceSavingsPlans" || "ComputeSavingsPlans" || "SageMakerSavingsPlans" || "Ec2ReservedInstances" || "RdsReservedInstances" || "OpenSearchReservedInstances" || "RedshiftReservedInstances" || "ElastiCacheReservedInstances" || "RdsDbInstanceStorage" || "RdsDbInstance",
56+
* "Ec2Instance" || "LambdaFunction" || "EbsVolume" || "EcsService" || "Ec2AutoScalingGroup" || "Ec2InstanceSavingsPlans" || "ComputeSavingsPlans" || "SageMakerSavingsPlans" || "Ec2ReservedInstances" || "RdsReservedInstances" || "OpenSearchReservedInstances" || "RedshiftReservedInstances" || "ElastiCacheReservedInstances" || "RdsDbInstanceStorage" || "RdsDbInstance" || "DynamoDbReservedCapacity" || "MemoryDbReservedInstances",
5757
* ],
5858
* actionTypes: [ // ActionTypeList
5959
* "Rightsize" || "Stop" || "Upgrade" || "PurchaseSavingsPlans" || "PurchaseReservedInstances" || "MigrateToGraviton" || "Delete" || "ScaleIn",

0 commit comments

Comments
 (0)