UNPKG

@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
"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