@cloud-carbon-footprint/aws
Version:
The core logic to get cloud usage data and estimate energy and carbon emissions from Amazon Web Services.
75 lines • 3.02 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AWS_REPLICATION_FACTORS_FOR_SERVICES = void 0;
const common_1 = require("@cloud-carbon-footprint/common");
const domain_1 = require("../domain");
const { REPLICATION_FACTORS } = domain_1.AWS_CLOUD_CONSTANTS;
var SERVICES;
(function (SERVICES) {
SERVICES["S3"] = "AmazonS3";
SERVICES["EC2"] = "AmazonEC2";
SERVICES["EFS"] = "AmazonEFS";
SERVICES["RDS"] = "AmazonRDS";
SERVICES["DOC_DB"] = "AmazonDocDB";
SERVICES["DYNAMO_DB"] = "AmazonDynamoDB";
SERVICES["ECR"] = "AmazonECR";
SERVICES["ELASTICACHE"] = "AmazonElastiCache";
SERVICES["SIMPLE_DB"] = "AmazonSimpleDB";
})(SERVICES || (SERVICES = {}));
exports.AWS_REPLICATION_FACTORS_FOR_SERVICES = {
[SERVICES.S3]: (usageType) => {
if ((0, common_1.containsAny)(['TimedStorage-ZIA', 'EarlyDelete-ZIA', 'TimedStorage-RRS'], usageType))
return REPLICATION_FACTORS.S3_ONE_ZONE_REDUCED_REDUNDANCY;
if ((0, common_1.containsAny)(['TimedStorage', 'EarlyDelete'], usageType))
return REPLICATION_FACTORS.S3;
return REPLICATION_FACTORS.DEFAULT;
},
[SERVICES.EC2]: (usageType) => {
if (usageType.includes('VolumeUsage'))
return REPLICATION_FACTORS.EC2_EBS_VOLUME;
if (usageType.includes('SnapshotUsage'))
return REPLICATION_FACTORS.EC2_EBS_SNAPSHOT;
return REPLICATION_FACTORS.DEFAULT;
},
[SERVICES.EFS]: (usageType) => {
if (usageType.includes('ZIA'))
return REPLICATION_FACTORS.EFS_ONE_ZONE;
return REPLICATION_FACTORS.EFS;
},
[SERVICES.RDS]: (usageType) => {
if (usageType.includes('BackupUsage'))
return REPLICATION_FACTORS.RDS_BACKUP;
if (usageType.includes('Aurora'))
return REPLICATION_FACTORS.RDS_AURORA;
if (usageType.includes('Multi-AZ'))
return REPLICATION_FACTORS.RDS_MULTI_AZ;
return REPLICATION_FACTORS.DEFAULT;
},
[SERVICES.DOC_DB]: (usageType) => {
if (usageType.includes('BackupUsage'))
return REPLICATION_FACTORS.DOCUMENT_DB_BACKUP;
return REPLICATION_FACTORS.DOCUMENT_DB_STORAGE;
},
[SERVICES.DYNAMO_DB]: () => {
return REPLICATION_FACTORS.DYNAMO_DB;
},
[SERVICES.ECR]: (usageType) => {
if (usageType.includes('TimedStorage'))
return REPLICATION_FACTORS.ECR_STORAGE;
return REPLICATION_FACTORS.DEFAULT;
},
[SERVICES.ELASTICACHE]: (usageType) => {
if (usageType.includes('BackupUsage'))
return REPLICATION_FACTORS.DOCUMENT_ELASTICACHE_BACKUP;
return REPLICATION_FACTORS.DEFAULT;
},
[SERVICES.SIMPLE_DB]: (usageType) => {
if (usageType.includes('TimedStorage'))
return REPLICATION_FACTORS.SIMPLE_DB;
return REPLICATION_FACTORS.DEFAULT;
},
DEFAULT: () => {
return REPLICATION_FACTORS.DEFAULT;
},
};
//# sourceMappingURL=ReplicationFactors.js.map