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.