aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
2 lines (1 loc) • 6.2 kB
JavaScript
"use strict";var _a,_b,_c;Object.defineProperty(exports,"__esModule",{value:!0}),exports.BottleRocketImage=exports.BottlerocketEcsVariant=exports.EcsOptimizedImage=exports.EcsOptimizedAmi=exports.WindowsOptimizedVersion=exports.AmiHardwareType=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),ec2=require("../../aws-ec2"),ssm=require("../../aws-ssm");var AmiHardwareType;(function(AmiHardwareType2){AmiHardwareType2.STANDARD="Standard",AmiHardwareType2.GPU="GPU",AmiHardwareType2.ARM="ARM64"})(AmiHardwareType=exports.AmiHardwareType||(exports.AmiHardwareType={}));var WindowsOptimizedVersion;(function(WindowsOptimizedVersion2){WindowsOptimizedVersion2.SERVER_2019="2019",WindowsOptimizedVersion2.SERVER_2016="2016"})(WindowsOptimizedVersion=exports.WindowsOptimizedVersion||(exports.WindowsOptimizedVersion={}));class EcsOptimizedAmi{constructor(props){if(this.hwType=props&&props.hardwareType||AmiHardwareType.STANDARD,props&&props.generation){if(props.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX&&this.hwType!==AmiHardwareType.STANDARD)throw new Error("Amazon Linux does not support special hardware type. Use Amazon Linux 2 instead");if(props.windowsVersion)throw new Error('"windowsVersion" and Linux image "generation" cannot be both set');this.generation=props.generation}else if(props&&props.windowsVersion){if(this.hwType!==AmiHardwareType.STANDARD)throw new Error("Windows Server does not support special hardware type");this.windowsVersion=props.windowsVersion}else this.generation=ec2.AmazonLinuxGeneration.AMAZON_LINUX_2;this.amiParameterName="/aws/service/ecs/optimized-ami/"+(this.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX?"amazon-linux/":"")+(this.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX_2?"amazon-linux-2/":"")+(this.windowsVersion?`windows_server/${this.windowsVersion}/english/full/`:"")+(this.hwType===AmiHardwareType.GPU?"gpu/":"")+(this.hwType===AmiHardwareType.ARM?"arm64/":"")+"recommended/image_id",this.cachedInContext=props?.cachedInContext??!1}getImage(scope){const ami=lookupImage(scope,this.cachedInContext,this.amiParameterName),osType=this.windowsVersion?ec2.OperatingSystemType.WINDOWS:ec2.OperatingSystemType.LINUX;return{imageId:ami,osType,userData:ec2.UserData.forOperatingSystem(osType)}}}exports.EcsOptimizedAmi=EcsOptimizedAmi,_a=JSII_RTTI_SYMBOL_1,EcsOptimizedAmi[_a]={fqn:"aws-cdk-lib.aws_ecs.EcsOptimizedAmi",version:"2.70.0"};class EcsOptimizedImage{constructor(props){if(this.hwType=props&&props.hardwareType,props.windowsVersion)this.windowsVersion=props.windowsVersion;else if(props.generation)this.generation=props.generation;else throw new Error("This error should never be thrown");this.amiParameterName="/aws/service/ecs/optimized-ami/"+(this.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX?"amazon-linux/":"")+(this.generation===ec2.AmazonLinuxGeneration.AMAZON_LINUX_2?"amazon-linux-2/":"")+(this.windowsVersion?`windows_server/${this.windowsVersion}/english/full/`:"")+(this.hwType===AmiHardwareType.GPU?"gpu/":"")+(this.hwType===AmiHardwareType.ARM?"arm64/":"")+"recommended/image_id",this.cachedInContext=props?.cachedInContext??!1}static amazonLinux2(hardwareType=AmiHardwareType.STANDARD,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_AmiHardwareType(hardwareType),jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_EcsOptimizedImageOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.amazonLinux2),error}return new EcsOptimizedImage({generation:ec2.AmazonLinuxGeneration.AMAZON_LINUX_2,hardwareType,cachedInContext:options.cachedInContext})}static amazonLinux(options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_EcsOptimizedImageOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.amazonLinux),error}return new EcsOptimizedImage({generation:ec2.AmazonLinuxGeneration.AMAZON_LINUX,cachedInContext:options.cachedInContext})}static windows(windowsVersion,options={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_WindowsOptimizedVersion(windowsVersion),jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_EcsOptimizedImageOptions(options)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.windows),error}return new EcsOptimizedImage({windowsVersion,cachedInContext:options.cachedInContext})}getImage(scope){const ami=lookupImage(scope,this.cachedInContext,this.amiParameterName),osType=this.windowsVersion?ec2.OperatingSystemType.WINDOWS:ec2.OperatingSystemType.LINUX;return{imageId:ami,osType,userData:ec2.UserData.forOperatingSystem(osType)}}}exports.EcsOptimizedImage=EcsOptimizedImage,_b=JSII_RTTI_SYMBOL_1,EcsOptimizedImage[_b]={fqn:"aws-cdk-lib.aws_ecs.EcsOptimizedImage",version:"2.70.0"};var BottlerocketEcsVariant;(function(BottlerocketEcsVariant2){BottlerocketEcsVariant2.AWS_ECS_1="aws-ecs-1"})(BottlerocketEcsVariant=exports.BottlerocketEcsVariant||(exports.BottlerocketEcsVariant={}));class BottleRocketImage{constructor(props={}){try{jsiiDeprecationWarnings.aws_cdk_lib_aws_ecs_BottleRocketImageProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,BottleRocketImage),error}this.variant=props.variant??BottlerocketEcsVariant.AWS_ECS_1,this.architecture=props.architecture??ec2.InstanceArchitecture.X86_64,this.amiParameterName=`/aws/service/bottlerocket/${this.variant}/${this.architecture}/latest/image_id`,this.cachedInContext=props.cachedInContext??!1}getImage(scope){return{imageId:lookupImage(scope,this.cachedInContext,this.amiParameterName),osType:ec2.OperatingSystemType.LINUX,userData:ec2.UserData.custom("")}}}exports.BottleRocketImage=BottleRocketImage,_c=JSII_RTTI_SYMBOL_1,BottleRocketImage[_c]={fqn:"aws-cdk-lib.aws_ecs.BottleRocketImage",version:"2.70.0"};function lookupImage(scope,cachedInContext,parameterName){return cachedInContext?ssm.StringParameter.valueFromLookup(scope,parameterName):ssm.StringParameter.valueForTypedStringParameterV2(scope,parameterName,ssm.ParameterValueType.AWS_EC2_IMAGE_ID)}