in packages/aws-cdk-lib/aws-ec2/lib/machine-image/machine-image.ts [478:518]
public static ssmParameterName(props: AmazonLinuxImageProps = {}) {
const generation = (props && props.generation) || AmazonLinuxGeneration.AMAZON_LINUX;
const edition = (props && props.edition) || AmazonLinuxEdition.STANDARD;
const cpu = (props && props.cpuType) || AmazonLinuxCpuType.X86_64;
let kernel = (props && props.kernel) || undefined;
let virtualization: AmazonLinuxVirt | undefined;
let storage: AmazonLinuxStorage | undefined;
if (generation === AmazonLinuxGeneration.AMAZON_LINUX_2022) {
kernel = AmazonLinuxKernel.KERNEL5_X;
if (props && props.storage) {
throw new UnscopedValidationError('Storage parameter does not exist in SSM parameter name for Amazon Linux 2022.');
}
if (props && props.virtualization) {
throw new UnscopedValidationError('Virtualization parameter does not exist in SSM parameter name for Amazon Linux 2022.');
}
} else if (generation === AmazonLinuxGeneration.AMAZON_LINUX_2023) {
kernel = AmazonLinuxKernel.KERNEL6_1;
if (props && props.storage) {
throw new UnscopedValidationError('Storage parameter does not exist in SSM parameter name for Amazon Linux 2023.');
}
if (props && props.virtualization) {
throw new UnscopedValidationError('Virtualization parameter does not exist in SSM parameter name for Amazon Linux 2023.');
}
} else {
virtualization = (props && props.virtualization) || AmazonLinuxVirt.HVM;
storage = (props && props.storage) || AmazonLinuxStorage.GENERAL_PURPOSE;
}
const parts: Array<string|undefined> = [
generation,
'ami',
edition !== AmazonLinuxEdition.STANDARD ? edition : undefined,
kernel,
virtualization,
cpu,
storage,
].filter(x => x !== undefined); // Get rid of undefineds
return '/aws/service/ami-amazon-linux-latest/' + parts.join('-');
}