public static ssmParameterName()

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('-');
  }