Cost Optimization Hub

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.

GetRecommendation (updated) Link ¶
Changes (response)
{'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'
)
type recommendationId:

string

param recommendationId:

[REQUIRED]

The ID for the recommendation.

rtype:

dict

returns:

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>`_
ListRecommendationSummaries (updated) Link ¶
Changes (request)
{'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'
)
type filter:

dict

param filter:

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) --

type groupBy:

string

param groupBy:

[REQUIRED]

The grouping of recommendations by a dimension.

type maxResults:

integer

param maxResults:

The maximum number of recommendations to be returned for the request.

type metrics:

list

param metrics:

Additional metrics to be returned for the request. The only valid value is savingsPercentage.

  • (string) --

type nextToken:

string

param nextToken:

The token to retrieve the next set of results.

rtype:

dict

returns:

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.

ListRecommendations (updated) Link ¶
Changes (request)
{'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'
)
type filter:

dict

param filter:

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) --

type orderBy:

dict

param orderBy:

The ordering of recommendations by a dimension.

  • dimension (string) --

    Sorts by dimension values.

  • order (string) --

    The order that's used to sort the data.

type includeAllRecommendations:

boolean

param includeAllRecommendations:

List of all recommendations for a resource, or a single recommendation if de-duped by resourceId.

type maxResults:

integer

param maxResults:

The maximum number of recommendations that are returned for the request.

type nextToken:

string

param nextToken:

The token to retrieve the next set of results.

rtype:

dict

returns:

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.