@cloud-carbon-footprint/aws
Version:
The core logic to get cloud usage data and estimate energy and carbon emissions from Amazon Web Services.
240 lines (234 loc) • 6.57 kB
text/typescript
/*
* © 2021 Thoughtworks, Inc.
*/
import {
GetRightsizingRecommendationCommandOutput,
RightsizingType,
} from '@aws-sdk/client-cost-explorer'
export const rightsizingRecommendationTerminate: GetRightsizingRecommendationCommandOutput =
{
$metadata: {},
RightsizingRecommendations: [
{
AccountId: 'test-account',
CurrentInstance: {
ResourceId: 'test-id',
InstanceName: 'test-instance-name',
ResourceDetails: {
EC2ResourceDetails: {
InstanceType: 'm5dn.24xlarge',
Region: 'US East (Ohio)',
Vcpu: '96',
},
},
},
RightsizingType: RightsizingType.TERMINATE,
TerminateRecommendationDetail: {
EstimatedMonthlySavings: '20',
},
},
{
AccountId: 'test-account-1',
CurrentInstance: {
ResourceId: 'test-id',
InstanceName: 'test-instance-name',
ResourceDetails: {
EC2ResourceDetails: {
InstanceType: 'm5zn.2xlarge',
Region: 'US East (Ohio)',
Vcpu: '32',
},
},
},
RightsizingType: RightsizingType.TERMINATE,
TerminateRecommendationDetail: {
EstimatedMonthlySavings: '80',
},
},
{
AccountId: 'test-account-2',
CurrentInstance: {
ResourceId: 'test-id',
InstanceName: 'test-instance-name',
ResourceDetails: {
EC2ResourceDetails: {
InstanceType: 't2.micro',
Region: 'US East (Ohio)',
Vcpu: '1',
},
},
},
RightsizingType: RightsizingType.TERMINATE,
TerminateRecommendationDetail: {
EstimatedMonthlySavings: '20',
},
},
{
AccountId: 'test-account-3',
CurrentInstance: {
ResourceId: 'test-id',
InstanceName: '',
ResourceDetails: {
EC2ResourceDetails: {
InstanceType: 't2.micro',
Region: 'US East (Ohio)',
Vcpu: '1',
},
},
},
RightsizingType: RightsizingType.TERMINATE,
TerminateRecommendationDetail: {
EstimatedMonthlySavings: '30',
},
},
],
}
export const rightsizingRecommendationModify: GetRightsizingRecommendationCommandOutput =
{
$metadata: {},
RightsizingRecommendations: [
{
AccountId: 'test-account',
CurrentInstance: {
ResourceId: 'Test-resource-id',
InstanceName: 'test-instance-name',
ResourceDetails: {
EC2ResourceDetails: {
InstanceType: 't2.micro',
Region: 'US East (Ohio)',
Vcpu: '1',
},
},
},
RightsizingType: RightsizingType.MODIFY,
ModifyRecommendationDetail: {
TargetInstances: [
{
EstimatedMonthlySavings: '226',
ResourceDetails: {
EC2ResourceDetails: {
InstanceType: 't2.nano',
Region: 'US East (Ohio)',
Vcpu: '1',
},
},
},
{
EstimatedMonthlySavings: '116',
ResourceDetails: {
EC2ResourceDetails: {
InstanceType: 't2.large',
Region: 'US East (Ohio)',
Vcpu: '2',
},
},
},
],
},
},
],
}
export const rightsizingRecommendationModify1: GetRightsizingRecommendationCommandOutput =
{
$metadata: {},
RightsizingRecommendations: [
{
AccountId: 'test-account',
CurrentInstance: {
ResourceId: 'Test-resource-id',
InstanceName: 'test-instance-name',
ResourceDetails: {
EC2ResourceDetails: {
InstanceType: 'm5.xlarge',
Region: 'US East (Ohio)',
Vcpu: '1',
},
},
},
RightsizingType: RightsizingType.MODIFY,
ModifyRecommendationDetail: {
TargetInstances: [
{
EstimatedMonthlySavings: '226',
ResourceDetails: {
EC2ResourceDetails: {
InstanceType: 'm5.large',
Region: 'US East (Ohio)',
Vcpu: '1',
},
},
},
{
EstimatedMonthlySavings: '116',
ResourceDetails: {
EC2ResourceDetails: {
InstanceType: 'm5.xlarge',
Region: 'US East (Ohio)',
Vcpu: '2',
},
},
},
],
},
},
],
}
export const rightsizingCrossFamilyRecommendationTerminate: GetRightsizingRecommendationCommandOutput =
{
$metadata: {},
RightsizingRecommendations: [
{
AccountId: 'test-account',
CurrentInstance: {
ResourceId: 'Test-resource-id',
InstanceName: 'test-instance-name',
ResourceDetails: {
EC2ResourceDetails: {
InstanceType: 't2.micro',
Region: 'US East (Ohio)',
Vcpu: '1',
},
},
},
RightsizingType: RightsizingType.TERMINATE,
TerminateRecommendationDetail: {
EstimatedMonthlySavings: '20',
},
},
],
}
export const rightsizingCrossFamilyRecommendationModify: GetRightsizingRecommendationCommandOutput =
{
$metadata: {},
RightsizingRecommendations: [
{
AccountId: 'test-account',
CurrentInstance: {
ResourceId: 'Test-resource-id',
InstanceName: 'test-instance-name',
ResourceDetails: {
EC2ResourceDetails: {
InstanceType: 't2.micro',
Region: 'US East (Ohio)',
Vcpu: '1',
},
},
},
RightsizingType: RightsizingType.MODIFY,
ModifyRecommendationDetail: {
TargetInstances: [
{
EstimatedMonthlySavings: '20',
ResourceDetails: {
EC2ResourceDetails: {
InstanceType: 't3.micro',
Region: 'US East (Ohio)',
Vcpu: '2',
},
},
},
],
},
},
],
}