2025/04/08 - Cost Optimization Hub - 3 updated api methods
Changes 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.
{'currentResourceDetails': {'dynamoDbReservedCapacity': {'configuration': {'accountScope': 'string', 'capacityUnits': 'string', 'monthlyRecurringCost': 'string', 'numberOfCapacityUnitsToPurchase': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'service': 'string', 'term': 'string', 'upfrontCost': 'string'}, 'costCalculation': {'pricing': {'estimatedMonthlyAmortizedReservationCost': 'double', 'estimatedOnDemandCost': 'double', 'monthlyReservationEligibleCost': 'double', 'savingsPercentage': 'double'}}}, 'memoryDbReservedInstances': {'configuration': {'accountScope': 'string', 'currentGeneration': 'string', 'instanceFamily': 'string', 'instanceType': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'service': 'string', 'sizeFlexEligible': 'boolean', 'term': 'string', 'upfrontCost': 'string'}, 'costCalculation': {'pricing': {'estimatedMonthlyAmortizedReservationCost': 'double', 'estimatedOnDemandCost': 'double', 'monthlyReservationEligibleCost': 'double', 'savingsPercentage': 'double'}}}}, 'currentResourceType': {'DynamoDbReservedCapacity', 'MemoryDbReservedInstances'}, 'recommendedResourceDetails': {'dynamoDbReservedCapacity': {'configuration': {'accountScope': 'string', 'capacityUnits': 'string', 'monthlyRecurringCost': 'string', 'numberOfCapacityUnitsToPurchase': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'service': 'string', 'term': 'string', 'upfrontCost': 'string'}, 'costCalculation': {'pricing': {'estimatedMonthlyAmortizedReservationCost': 'double', 'estimatedOnDemandCost': 'double', 'monthlyReservationEligibleCost': 'double', 'savingsPercentage': 'double'}}}, 'memoryDbReservedInstances': {'configuration': {'accountScope': 'string', 'currentGeneration': 'string', 'instanceFamily': 'string', 'instanceType': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'service': 'string', 'sizeFlexEligible': 'boolean', 'term': 'string', 'upfrontCost': 'string'}, 'costCalculation': {'pricing': {'estimatedMonthlyAmortizedReservationCost': 'double', 'estimatedOnDemandCost': 'double', 'monthlyReservationEligibleCost': 'double', 'savingsPercentage': 'double'}}}}, 'recommendedResourceType': {'DynamoDbReservedCapacity', 'MemoryDbReservedInstances'}}
Returns both the current and recommended resource configuration and the estimated cost impact for a recommendation.
The recommendationId is only valid for up to a maximum of 24 hours as recommendations are refreshed daily. To retrieve the recommendationId, use the ListRecommendations API.
See also: AWS API Documentation
Request Syntax
client.get_recommendation( recommendationId='string' )
string
[REQUIRED]
The ID for the recommendation.
dict
Response Syntax
{ 'recommendationId': 'string', 'resourceId': 'string', 'resourceArn': 'string', 'accountId': 'string', 'currencyCode': 'string', 'recommendationLookbackPeriodInDays': 123, 'costCalculationLookbackPeriodInDays': 123, 'estimatedSavingsPercentage': 123.0, 'estimatedSavingsOverCostCalculationLookbackPeriod': 123.0, 'currentResourceType': 'Ec2Instance'|'LambdaFunction'|'EbsVolume'|'EcsService'|'Ec2AutoScalingGroup'|'Ec2InstanceSavingsPlans'|'ComputeSavingsPlans'|'SageMakerSavingsPlans'|'Ec2ReservedInstances'|'RdsReservedInstances'|'OpenSearchReservedInstances'|'RedshiftReservedInstances'|'ElastiCacheReservedInstances'|'RdsDbInstanceStorage'|'RdsDbInstance'|'DynamoDbReservedCapacity'|'MemoryDbReservedInstances', 'recommendedResourceType': 'Ec2Instance'|'LambdaFunction'|'EbsVolume'|'EcsService'|'Ec2AutoScalingGroup'|'Ec2InstanceSavingsPlans'|'ComputeSavingsPlans'|'SageMakerSavingsPlans'|'Ec2ReservedInstances'|'RdsReservedInstances'|'OpenSearchReservedInstances'|'RedshiftReservedInstances'|'ElastiCacheReservedInstances'|'RdsDbInstanceStorage'|'RdsDbInstance'|'DynamoDbReservedCapacity'|'MemoryDbReservedInstances', 'region': 'string', 'source': 'ComputeOptimizer'|'CostExplorer', 'lastRefreshTimestamp': datetime(2015, 1, 1), 'estimatedMonthlySavings': 123.0, 'estimatedMonthlyCost': 123.0, 'implementationEffort': 'VeryLow'|'Low'|'Medium'|'High'|'VeryHigh', 'restartNeeded': True|False, 'actionType': 'Rightsize'|'Stop'|'Upgrade'|'PurchaseSavingsPlans'|'PurchaseReservedInstances'|'MigrateToGraviton'|'Delete'|'ScaleIn', 'rollbackPossible': True|False, 'currentResourceDetails': { 'lambdaFunction': { 'configuration': { 'compute': { 'vCpu': 123.0, 'memorySizeInMB': 123, 'architecture': 'string', 'platform': 'string' } }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'ecsService': { 'configuration': { 'compute': { 'vCpu': 123.0, 'memorySizeInMB': 123, 'architecture': 'string', 'platform': 'string' } }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'ec2Instance': { 'configuration': { 'instance': { 'type': 'string' } }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'ebsVolume': { 'configuration': { 'storage': { 'type': 'string', 'sizeInGb': 123.0 }, 'performance': { 'iops': 123.0, 'throughput': 123.0 }, 'attachmentState': 'string' }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'ec2AutoScalingGroup': { 'configuration': { 'instance': { 'type': 'string' }, 'mixedInstances': [ { 'type': 'string' }, ], 'type': 'SingleInstanceType'|'MixedInstanceTypes', 'allocationStrategy': 'Prioritized'|'LowestPrice' }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'ec2ReservedInstances': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'offeringClass': 'string', 'instanceFamily': 'string', 'instanceType': 'string', 'currentGeneration': 'string', 'platform': 'string', 'tenancy': 'string', 'sizeFlexEligible': True|False }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } }, 'rdsReservedInstances': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'instanceFamily': 'string', 'instanceType': 'string', 'sizeFlexEligible': True|False, 'currentGeneration': 'string', 'licenseModel': 'string', 'databaseEdition': 'string', 'databaseEngine': 'string', 'deploymentOption': 'string' }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } }, 'elastiCacheReservedInstances': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'instanceFamily': 'string', 'instanceType': 'string', 'currentGeneration': 'string', 'sizeFlexEligible': True|False }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } }, 'openSearchReservedInstances': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'instanceType': 'string', 'currentGeneration': 'string', 'sizeFlexEligible': True|False }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } }, 'redshiftReservedInstances': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'instanceFamily': 'string', 'instanceType': 'string', 'sizeFlexEligible': True|False, 'currentGeneration': 'string' }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } }, 'ec2InstanceSavingsPlans': { 'configuration': { 'accountScope': 'string', 'term': 'string', 'paymentOption': 'string', 'hourlyCommitment': 'string', 'instanceFamily': 'string', 'savingsPlansRegion': 'string' }, 'costCalculation': { 'pricing': { 'monthlySavingsPlansEligibleCost': 123.0, 'estimatedMonthlyCommitment': 123.0, 'savingsPercentage': 123.0, 'estimatedOnDemandCost': 123.0 } } }, 'computeSavingsPlans': { 'configuration': { 'accountScope': 'string', 'term': 'string', 'paymentOption': 'string', 'hourlyCommitment': 'string' }, 'costCalculation': { 'pricing': { 'monthlySavingsPlansEligibleCost': 123.0, 'estimatedMonthlyCommitment': 123.0, 'savingsPercentage': 123.0, 'estimatedOnDemandCost': 123.0 } } }, 'sageMakerSavingsPlans': { 'configuration': { 'accountScope': 'string', 'term': 'string', 'paymentOption': 'string', 'hourlyCommitment': 'string' }, 'costCalculation': { 'pricing': { 'monthlySavingsPlansEligibleCost': 123.0, 'estimatedMonthlyCommitment': 123.0, 'savingsPercentage': 123.0, 'estimatedOnDemandCost': 123.0 } } }, 'rdsDbInstance': { 'configuration': { 'instance': { 'dbInstanceClass': 'string' } }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'rdsDbInstanceStorage': { 'configuration': { 'storageType': 'string', 'allocatedStorageInGb': 123.0, 'iops': 123.0, 'storageThroughput': 123.0 }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'dynamoDbReservedCapacity': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'numberOfCapacityUnitsToPurchase': 'string', 'capacityUnits': 'string' }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } }, 'memoryDbReservedInstances': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'instanceType': 'string', 'instanceFamily': 'string', 'sizeFlexEligible': True|False, 'currentGeneration': 'string' }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } } }, 'recommendedResourceDetails': { 'lambdaFunction': { 'configuration': { 'compute': { 'vCpu': 123.0, 'memorySizeInMB': 123, 'architecture': 'string', 'platform': 'string' } }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'ecsService': { 'configuration': { 'compute': { 'vCpu': 123.0, 'memorySizeInMB': 123, 'architecture': 'string', 'platform': 'string' } }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'ec2Instance': { 'configuration': { 'instance': { 'type': 'string' } }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'ebsVolume': { 'configuration': { 'storage': { 'type': 'string', 'sizeInGb': 123.0 }, 'performance': { 'iops': 123.0, 'throughput': 123.0 }, 'attachmentState': 'string' }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'ec2AutoScalingGroup': { 'configuration': { 'instance': { 'type': 'string' }, 'mixedInstances': [ { 'type': 'string' }, ], 'type': 'SingleInstanceType'|'MixedInstanceTypes', 'allocationStrategy': 'Prioritized'|'LowestPrice' }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'ec2ReservedInstances': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'offeringClass': 'string', 'instanceFamily': 'string', 'instanceType': 'string', 'currentGeneration': 'string', 'platform': 'string', 'tenancy': 'string', 'sizeFlexEligible': True|False }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } }, 'rdsReservedInstances': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'instanceFamily': 'string', 'instanceType': 'string', 'sizeFlexEligible': True|False, 'currentGeneration': 'string', 'licenseModel': 'string', 'databaseEdition': 'string', 'databaseEngine': 'string', 'deploymentOption': 'string' }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } }, 'elastiCacheReservedInstances': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'instanceFamily': 'string', 'instanceType': 'string', 'currentGeneration': 'string', 'sizeFlexEligible': True|False }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } }, 'openSearchReservedInstances': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'instanceType': 'string', 'currentGeneration': 'string', 'sizeFlexEligible': True|False }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } }, 'redshiftReservedInstances': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'instanceFamily': 'string', 'instanceType': 'string', 'sizeFlexEligible': True|False, 'currentGeneration': 'string' }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } }, 'ec2InstanceSavingsPlans': { 'configuration': { 'accountScope': 'string', 'term': 'string', 'paymentOption': 'string', 'hourlyCommitment': 'string', 'instanceFamily': 'string', 'savingsPlansRegion': 'string' }, 'costCalculation': { 'pricing': { 'monthlySavingsPlansEligibleCost': 123.0, 'estimatedMonthlyCommitment': 123.0, 'savingsPercentage': 123.0, 'estimatedOnDemandCost': 123.0 } } }, 'computeSavingsPlans': { 'configuration': { 'accountScope': 'string', 'term': 'string', 'paymentOption': 'string', 'hourlyCommitment': 'string' }, 'costCalculation': { 'pricing': { 'monthlySavingsPlansEligibleCost': 123.0, 'estimatedMonthlyCommitment': 123.0, 'savingsPercentage': 123.0, 'estimatedOnDemandCost': 123.0 } } }, 'sageMakerSavingsPlans': { 'configuration': { 'accountScope': 'string', 'term': 'string', 'paymentOption': 'string', 'hourlyCommitment': 'string' }, 'costCalculation': { 'pricing': { 'monthlySavingsPlansEligibleCost': 123.0, 'estimatedMonthlyCommitment': 123.0, 'savingsPercentage': 123.0, 'estimatedOnDemandCost': 123.0 } } }, 'rdsDbInstance': { 'configuration': { 'instance': { 'dbInstanceClass': 'string' } }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'rdsDbInstanceStorage': { 'configuration': { 'storageType': 'string', 'allocatedStorageInGb': 123.0, 'iops': 123.0, 'storageThroughput': 123.0 }, 'costCalculation': { 'usages': [ { 'usageType': 'string', 'usageAmount': 123.0, 'operation': 'string', 'productCode': 'string', 'unit': 'string' }, ], 'pricing': { 'estimatedCostBeforeDiscounts': 123.0, 'estimatedNetUnusedAmortizedCommitments': 123.0, 'estimatedDiscounts': { 'savingsPlansDiscount': 123.0, 'reservedInstancesDiscount': 123.0, 'otherDiscount': 123.0 }, 'estimatedCostAfterDiscounts': 123.0 } } }, 'dynamoDbReservedCapacity': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'numberOfCapacityUnitsToPurchase': 'string', 'capacityUnits': 'string' }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } }, 'memoryDbReservedInstances': { 'configuration': { 'accountScope': 'string', 'service': 'string', 'term': 'string', 'paymentOption': 'string', 'reservedInstancesRegion': 'string', 'upfrontCost': 'string', 'monthlyRecurringCost': 'string', 'normalizedUnitsToPurchase': 'string', 'numberOfInstancesToPurchase': 'string', 'instanceType': 'string', 'instanceFamily': 'string', 'sizeFlexEligible': True|False, 'currentGeneration': 'string' }, 'costCalculation': { 'pricing': { 'estimatedOnDemandCost': 123.0, 'monthlyReservationEligibleCost': 123.0, 'savingsPercentage': 123.0, 'estimatedMonthlyAmortizedReservationCost': 123.0 } } } }, 'tags': [ { 'key': 'string', 'value': 'string' }, ] } **Response Structure** :: # This section is too large to render. # Please see the AWS API Documentation linked below. `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/cost-optimization-hub-2022-07-26/GetRecommendation>`_
{'filter': {'resourceTypes': {'DynamoDbReservedCapacity', 'MemoryDbReservedInstances'}}}
Returns a concise representation of savings estimates for resources. Also returns de-duped savings across different types of recommendations.
See also: AWS API Documentation
Request Syntax
client.list_recommendation_summaries( filter={ 'restartNeeded': True|False, 'rollbackPossible': True|False, 'implementationEfforts': [ 'VeryLow'|'Low'|'Medium'|'High'|'VeryHigh', ], 'accountIds': [ 'string', ], 'regions': [ 'string', ], 'resourceTypes': [ 'Ec2Instance'|'LambdaFunction'|'EbsVolume'|'EcsService'|'Ec2AutoScalingGroup'|'Ec2InstanceSavingsPlans'|'ComputeSavingsPlans'|'SageMakerSavingsPlans'|'Ec2ReservedInstances'|'RdsReservedInstances'|'OpenSearchReservedInstances'|'RedshiftReservedInstances'|'ElastiCacheReservedInstances'|'RdsDbInstanceStorage'|'RdsDbInstance'|'DynamoDbReservedCapacity'|'MemoryDbReservedInstances', ], 'actionTypes': [ 'Rightsize'|'Stop'|'Upgrade'|'PurchaseSavingsPlans'|'PurchaseReservedInstances'|'MigrateToGraviton'|'Delete'|'ScaleIn', ], 'tags': [ { 'key': 'string', 'value': 'string' }, ], 'resourceIds': [ 'string', ], 'resourceArns': [ 'string', ], 'recommendationIds': [ 'string', ] }, groupBy='string', maxResults=123, metrics=[ 'SavingsPercentage', ], nextToken='string' )
dict
Describes a filter that returns a more specific list of recommendations. Filters recommendations by different dimensions.
restartNeeded (boolean) --
Whether or not implementing the recommendation requires a restart.
rollbackPossible (boolean) --
Whether or not implementing the recommendation can be rolled back.
implementationEfforts (list) --
The effort required to implement the recommendation.
(string) --
accountIds (list) --
The account to which the recommendation applies.
(string) --
regions (list) --
The Amazon Web Services Region of the resource.
(string) --
resourceTypes (list) --
The resource type of the recommendation.
(string) --
actionTypes (list) --
The type of action you can take by adopting the recommendation.
(string) --
tags (list) --
A list of tags assigned to the recommendation.
(dict) --
The tag structure that contains a tag key and value.
key (string) --
The key that's associated with the tag.
value (string) --
The value that's associated with the tag.
resourceIds (list) --
The resource ID of the recommendation.
(string) --
resourceArns (list) --
The Amazon Resource Name (ARN) of the recommendation.
(string) --
recommendationIds (list) --
The IDs for the recommendations.
(string) --
string
[REQUIRED]
The grouping of recommendations by a dimension.
integer
The maximum number of recommendations to be returned for the request.
list
Additional metrics to be returned for the request. The only valid value is savingsPercentage.
(string) --
string
The token to retrieve the next set of results.
dict
Response Syntax
{ 'estimatedTotalDedupedSavings': 123.0, 'items': [ { 'group': 'string', 'estimatedMonthlySavings': 123.0, 'recommendationCount': 123 }, ], 'groupBy': 'string', 'currencyCode': 'string', 'metrics': { 'savingsPercentage': 'string' }, 'nextToken': 'string' }
Response Structure
(dict) --
estimatedTotalDedupedSavings (float) --
The total overall savings for the aggregated view.
items (list) --
A list of all savings recommendations.
(dict) --
The summary of rightsizing recommendations, including de-duped savings from all types of recommendations.
group (string) --
The grouping of recommendations.
estimatedMonthlySavings (float) --
The estimated total savings resulting from modifications, on a monthly basis.
recommendationCount (integer) --
The total number of instance recommendations.
groupBy (string) --
The dimension used to group the recommendations by.
currencyCode (string) --
The currency code used for the recommendation.
metrics (dict) --
The results or descriptions for the additional metrics, based on whether the metrics were or were not requested.
savingsPercentage (string) --
The savings percentage based on your Amazon Web Services spend over the past 30 days.
nextToken (string) --
The token to retrieve the next set of results.
{'filter': {'resourceTypes': {'DynamoDbReservedCapacity', 'MemoryDbReservedInstances'}}}
Returns a list of recommendations.
See also: AWS API Documentation
Request Syntax
client.list_recommendations( filter={ 'restartNeeded': True|False, 'rollbackPossible': True|False, 'implementationEfforts': [ 'VeryLow'|'Low'|'Medium'|'High'|'VeryHigh', ], 'accountIds': [ 'string', ], 'regions': [ 'string', ], 'resourceTypes': [ 'Ec2Instance'|'LambdaFunction'|'EbsVolume'|'EcsService'|'Ec2AutoScalingGroup'|'Ec2InstanceSavingsPlans'|'ComputeSavingsPlans'|'SageMakerSavingsPlans'|'Ec2ReservedInstances'|'RdsReservedInstances'|'OpenSearchReservedInstances'|'RedshiftReservedInstances'|'ElastiCacheReservedInstances'|'RdsDbInstanceStorage'|'RdsDbInstance'|'DynamoDbReservedCapacity'|'MemoryDbReservedInstances', ], 'actionTypes': [ 'Rightsize'|'Stop'|'Upgrade'|'PurchaseSavingsPlans'|'PurchaseReservedInstances'|'MigrateToGraviton'|'Delete'|'ScaleIn', ], 'tags': [ { 'key': 'string', 'value': 'string' }, ], 'resourceIds': [ 'string', ], 'resourceArns': [ 'string', ], 'recommendationIds': [ 'string', ] }, orderBy={ 'dimension': 'string', 'order': 'Asc'|'Desc' }, includeAllRecommendations=True|False, maxResults=123, nextToken='string' )
dict
The constraints that you want all returned recommendations to match.
restartNeeded (boolean) --
Whether or not implementing the recommendation requires a restart.
rollbackPossible (boolean) --
Whether or not implementing the recommendation can be rolled back.
implementationEfforts (list) --
The effort required to implement the recommendation.
(string) --
accountIds (list) --
The account to which the recommendation applies.
(string) --
regions (list) --
The Amazon Web Services Region of the resource.
(string) --
resourceTypes (list) --
The resource type of the recommendation.
(string) --
actionTypes (list) --
The type of action you can take by adopting the recommendation.
(string) --
tags (list) --
A list of tags assigned to the recommendation.
(dict) --
The tag structure that contains a tag key and value.
key (string) --
The key that's associated with the tag.
value (string) --
The value that's associated with the tag.
resourceIds (list) --
The resource ID of the recommendation.
(string) --
resourceArns (list) --
The Amazon Resource Name (ARN) of the recommendation.
(string) --
recommendationIds (list) --
The IDs for the recommendations.
(string) --
dict
The ordering of recommendations by a dimension.
dimension (string) --
Sorts by dimension values.
order (string) --
The order that's used to sort the data.
boolean
List of all recommendations for a resource, or a single recommendation if de-duped by resourceId.
integer
The maximum number of recommendations that are returned for the request.
string
The token to retrieve the next set of results.
dict
Response Syntax
{ 'items': [ { 'recommendationId': 'string', 'accountId': 'string', 'region': 'string', 'resourceId': 'string', 'resourceArn': 'string', 'currentResourceType': 'string', 'recommendedResourceType': 'string', 'estimatedMonthlySavings': 123.0, 'estimatedSavingsPercentage': 123.0, 'estimatedMonthlyCost': 123.0, 'currencyCode': 'string', 'implementationEffort': 'string', 'restartNeeded': True|False, 'actionType': 'string', 'rollbackPossible': True|False, 'currentResourceSummary': 'string', 'recommendedResourceSummary': 'string', 'lastRefreshTimestamp': datetime(2015, 1, 1), 'recommendationLookbackPeriodInDays': 123, 'source': 'ComputeOptimizer'|'CostExplorer', 'tags': [ { 'key': 'string', 'value': 'string' }, ] }, ], 'nextToken': 'string' }
Response Structure
(dict) --
items (list) --
List of all savings recommendations.
(dict) --
Describes a recommendation.
recommendationId (string) --
The ID for the recommendation.
accountId (string) --
The account to which the recommendation applies.
region (string) --
The Amazon Web Services Region of the resource.
resourceId (string) --
The resource ID for the recommendation.
resourceArn (string) --
The Amazon Resource Name (ARN) for the recommendation.
currentResourceType (string) --
The current resource type.
recommendedResourceType (string) --
The recommended resource type.
estimatedMonthlySavings (float) --
The estimated monthly savings amount for the recommendation.
estimatedSavingsPercentage (float) --
The estimated savings percentage relative to the total cost over the cost calculation lookback period.
estimatedMonthlyCost (float) --
The estimated monthly cost of the current resource. For Reserved Instances and Savings Plans, it refers to the cost for eligible usage.
currencyCode (string) --
The currency code used for the recommendation.
implementationEffort (string) --
The effort required to implement the recommendation.
restartNeeded (boolean) --
Whether or not implementing the recommendation requires a restart.
actionType (string) --
The type of tasks that can be carried out by this action.
rollbackPossible (boolean) --
Whether or not implementing the recommendation can be rolled back.
currentResourceSummary (string) --
Describes the current resource.
recommendedResourceSummary (string) --
Describes the recommended resource.
lastRefreshTimestamp (datetime) --
The time when the recommendation was last generated.
recommendationLookbackPeriodInDays (integer) --
The lookback period that's used to generate the recommendation.
source (string) --
The source of the recommendation.
tags (list) --
A list of tags assigned to the recommendation.
(dict) --
The tag structure that contains a tag key and value.
key (string) --
The key that's associated with the tag.
value (string) --
The value that's associated with the tag.
nextToken (string) --
The token to retrieve the next set of results.