public static of()

in packages/aws-cdk-lib/aws-ec2/lib/instance-types.ts [1683:1976]


  public static of(instanceClass: InstanceClass, instanceSize: InstanceSize) {
    // JSII does not allow enum types to have same value. So to support the enum, the enum with same value has to be mapped later.
    const instanceClassMap: Record<InstanceClass, string> = {
      [InstanceClass.STANDARD3]: 'm3',
      [InstanceClass.M3]: 'm3',
      [InstanceClass.STANDARD4]: 'm4',
      [InstanceClass.M4]: 'm4',
      [InstanceClass.STANDARD5]: 'm5',
      [InstanceClass.M5]: 'm5',
      [InstanceClass.STANDARD5_NVME_DRIVE]: 'm5d',
      [InstanceClass.M5D]: 'm5d',
      [InstanceClass.STANDARD5_AMD]: 'm5a',
      [InstanceClass.M5A]: 'm5a',
      [InstanceClass.STANDARD5_AMD_NVME_DRIVE]: 'm5ad',
      [InstanceClass.M5AD]: 'm5ad',
      [InstanceClass.STANDARD5_HIGH_PERFORMANCE]: 'm5n',
      [InstanceClass.M5N]: 'm5n',
      [InstanceClass.STANDARD5_NVME_DRIVE_HIGH_PERFORMANCE]: 'm5dn',
      [InstanceClass.M5DN]: 'm5dn',
      [InstanceClass.STANDARD5_HIGH_COMPUTE]: 'm5zn',
      [InstanceClass.M5ZN]: 'm5zn',
      [InstanceClass.MEMORY3]: 'r3',
      [InstanceClass.R3]: 'r3',
      [InstanceClass.MEMORY4]: 'r4',
      [InstanceClass.R4]: 'r4',
      [InstanceClass.MEMORY5]: 'r5',
      [InstanceClass.R5]: 'r5',
      [InstanceClass.MEMORY6_AMD]: 'r6a',
      [InstanceClass.R6A]: 'r6a',
      [InstanceClass.MEMORY6_INTEL]: 'r6i',
      [InstanceClass.R6I]: 'r6i',
      [InstanceClass.MEMORY6_INTEL_NVME_DRIVE]: 'r6id',
      [InstanceClass.R6ID]: 'r6id',
      [InstanceClass.MEMORY6_INTEL_HIGH_PERFORMANCE]: 'r6in',
      [InstanceClass.R6IN]: 'r6in',
      [InstanceClass.MEMORY6_INTEL_NVME_DRIVE_HIGH_PERFORMANCE]: 'r6idn',
      [InstanceClass.R6IDN]: 'r6idn',
      [InstanceClass.MEMORY5_HIGH_PERFORMANCE]: 'r5n',
      [InstanceClass.R5N]: 'r5n',
      [InstanceClass.MEMORY5_NVME_DRIVE]: 'r5d',
      [InstanceClass.R5D]: 'r5d',
      [InstanceClass.MEMORY5_NVME_DRIVE_HIGH_PERFORMANCE]: 'r5dn',
      [InstanceClass.R5DN]: 'r5dn',
      [InstanceClass.MEMORY5_AMD]: 'r5a',
      [InstanceClass.R5A]: 'r5a',
      [InstanceClass.MEMORY5_AMD_NVME_DRIVE]: 'r5ad',
      [InstanceClass.R5AD]: 'r5ad',
      [InstanceClass.HIGH_MEMORY_3TB_1]: 'u-3tb1',
      [InstanceClass.U_3TB1]: 'u-3tb1',
      [InstanceClass.HIGH_MEMORY_6TB_1]: 'u-6tb1',
      [InstanceClass.U_6TB1]: 'u-6tb1',
      [InstanceClass.HIGH_MEMORY_9TB_1]: 'u-9tb1',
      [InstanceClass.U_9TB1]: 'u-9tb1',
      [InstanceClass.HIGH_MEMORY_12TB_1]: 'u-12tb1',
      [InstanceClass.U_12TB1]: 'u-12tb1',
      [InstanceClass.HIGH_MEMORY_18TB_1]: 'u-18tb1',
      [InstanceClass.U_18TB1]: 'u-18tb1',
      [InstanceClass.HIGH_MEMORY_24TB_1]: 'u-24tb1',
      [InstanceClass.U_24TB1]: 'u-24tb1',
      [InstanceClass.HIGH_MEMORY_6TB_7]: 'u7i-6tb',
      [InstanceClass.U7I_6TB]: 'u7i-6tb',
      [InstanceClass.HIGH_MEMORY_8TB_7]: 'u7i-8tb',
      [InstanceClass.U7I_8TB]: 'u7i-8tb',
      [InstanceClass.HIGH_MEMORY_12TB_7]: 'u7i-12tb',
      [InstanceClass.U7I_12TB]: 'u7i-12tb',
      [InstanceClass.HIGH_MEMORY_HIGH_NETWORK_16TB_7]: 'u7in-16tb',
      [InstanceClass.U7IN_16TB]: 'u7in-16tb',
      [InstanceClass.HIGH_MEMORY_HIGH_NETWORK_24TB_7]: 'u7in-24tb',
      [InstanceClass.U7IN_24TB]: 'u7in-24tb',
      [InstanceClass.HIGH_MEMORY_HIGH_NETWORK_32TB_7]: 'u7in-32tb',
      [InstanceClass.U7IN_32TB]: 'u7in-32tb',
      [InstanceClass.HIGH_MEMORY_HIGH_NETWORK_HPE_32TB_7]: 'u7inh-32tb',
      [InstanceClass.U7INH_32TB]: 'u7inh-32tb',
      [InstanceClass.MEMORY5_EBS_OPTIMIZED]: 'r5b',
      [InstanceClass.R5B]: 'r5b',
      [InstanceClass.MEMORY6_GRAVITON]: 'r6g',
      [InstanceClass.R6G]: 'r6g',
      [InstanceClass.MEMORY6_GRAVITON2_NVME_DRIVE]: 'r6gd',
      [InstanceClass.R6GD]: 'r6gd',
      [InstanceClass.MEMORY7_GRAVITON]: 'r7g',
      [InstanceClass.R7G]: 'r7g',
      [InstanceClass.MEMORY7_GRAVITON3_NVME_DRIVE]: 'r7gd',
      [InstanceClass.R7GD]: 'r7gd',
      [InstanceClass.MEMORY7_INTEL_BASE]: 'r7i',
      [InstanceClass.R7I]: 'r7i',
      [InstanceClass.MEMORY7_INTEL]: 'r7iz',
      [InstanceClass.R7IZ]: 'r7iz',
      [InstanceClass.MEMORY7_AMD]: 'r7a',
      [InstanceClass.R7A]: 'r7a',
      [InstanceClass.MEMORY8_GRAVITON]: 'r8g',
      [InstanceClass.R8G]: 'r8g',
      [InstanceClass.MEMORY8_GRAVITON4_NVME_DRIVE]: 'r8gd',
      [InstanceClass.R8GD]: 'r8gd',
      [InstanceClass.COMPUTE3]: 'c3',
      [InstanceClass.C3]: 'c3',
      [InstanceClass.COMPUTE4]: 'c4',
      [InstanceClass.C4]: 'c4',
      [InstanceClass.COMPUTE5]: 'c5',
      [InstanceClass.C5]: 'c5',
      [InstanceClass.COMPUTE5_NVME_DRIVE]: 'c5d',
      [InstanceClass.C5D]: 'c5d',
      [InstanceClass.COMPUTE5_AMD]: 'c5a',
      [InstanceClass.C5A]: 'c5a',
      [InstanceClass.COMPUTE5_AMD_NVME_DRIVE]: 'c5ad',
      [InstanceClass.C5AD]: 'c5ad',
      [InstanceClass.COMPUTE5_HIGH_PERFORMANCE]: 'c5n',
      [InstanceClass.C5N]: 'c5n',
      [InstanceClass.COMPUTE6_INTEL]: 'c6i',
      [InstanceClass.C6I]: 'c6i',
      [InstanceClass.COMPUTE6_INTEL_HIGH_PERFORMANCE]: 'c6in',
      [InstanceClass.C6IN]: 'c6in',
      [InstanceClass.COMPUTE6_INTEL_NVME_DRIVE]: 'c6id',
      [InstanceClass.C6ID]: 'c6id',
      [InstanceClass.COMPUTE6_AMD]: 'c6a',
      [InstanceClass.C6A]: 'c6a',
      [InstanceClass.COMPUTE6_GRAVITON2]: 'c6g',
      [InstanceClass.C6G]: 'c6g',
      [InstanceClass.COMPUTE6_GRAVITON2_NVME_DRIVE]: 'c6gd',
      [InstanceClass.C6GD]: 'c6gd',
      [InstanceClass.COMPUTE6_GRAVITON2_HIGH_NETWORK_BANDWIDTH]: 'c6gn',
      [InstanceClass.C6GN]: 'c6gn',
      [InstanceClass.COMPUTE7_GRAVITON3]: 'c7g',
      [InstanceClass.C7G]: 'c7g',
      [InstanceClass.COMPUTE7_GRAVITON3_NVME_DRIVE]: 'c7gd',
      [InstanceClass.C7GD]: 'c7gd',
      [InstanceClass.COMPUTE7_GRAVITON3_HIGH_NETWORK_BANDWIDTH]: 'c7gn',
      [InstanceClass.C7GN]: 'c7gn',
      [InstanceClass.COMPUTE7_INTEL]: 'c7i',
      [InstanceClass.C7I]: 'c7i',
      [InstanceClass.COMPUTE7_INTEL_FLEX]: 'c7i-flex',
      [InstanceClass.C7I_FLEX]: 'c7i-flex',
      [InstanceClass.COMPUTE7_AMD]: 'c7a',
      [InstanceClass.C7A]: 'c7a',
      [InstanceClass.COMPUTE8_GRAVITON4]: 'c8g',
      [InstanceClass.C8G]: 'c8g',
      [InstanceClass.COMPUTE8_GRAVITON4_NVME_DRIVE]: 'c8gd',
      [InstanceClass.C8GD]: 'c8gd',
      [InstanceClass.STORAGE2]: 'd2',
      [InstanceClass.D2]: 'd2',
      [InstanceClass.STORAGE3]: 'd3',
      [InstanceClass.D3]: 'd3',
      [InstanceClass.STORAGE3_ENHANCED_NETWORK]: 'd3en',
      [InstanceClass.D3EN]: 'd3en',
      [InstanceClass.TRAINING_ACCELERATOR1]: 'trn1',
      [InstanceClass.TRN1]: 'trn1',
      [InstanceClass.TRAINING_ACCELERATOR1_ENHANCED_NETWORK]: 'trn1n',
      [InstanceClass.TRN1N]: 'trn1n',
      [InstanceClass.TRAINING_ACCELERATOR2]: 'trn2',
      [InstanceClass.TRN2]: 'trn2',
      [InstanceClass.TRAINING_ACCELERATOR2_ULTRASERVER]: 'trn2u',
      [InstanceClass.TRN2U]: 'trn2u',
      [InstanceClass.STORAGE_COMPUTE_1]: 'h1',
      [InstanceClass.H1]: 'h1',
      [InstanceClass.IO3]: 'i3',
      [InstanceClass.I3]: 'i3',
      [InstanceClass.IO3_DENSE_NVME_DRIVE]: 'i3en',
      [InstanceClass.I3EN]: 'i3en',
      [InstanceClass.STORAGE4_GRAVITON]: 'i4g',
      [InstanceClass.I4G]: 'i4g',
      [InstanceClass.STORAGE4_GRAVITON_NETWORK_OPTIMIZED]: 'im4gn',
      [InstanceClass.IM4GN]: 'im4gn',
      [InstanceClass.STORAGE4_GRAVITON_NETWORK_STORAGE_OPTIMIZED]: 'is4gen',
      [InstanceClass.IS4GEN]: 'is4gen',
      [InstanceClass.STORAGE7_INTEL_STORAGE_OPTIMIZED]: 'i7ie',
      [InstanceClass.I7IE]: 'i7ie',
      [InstanceClass.STORAGE8_GRAVITON]: 'i8g',
      [InstanceClass.I8G]: 'i8g',
      [InstanceClass.BURSTABLE2]: 't2',
      [InstanceClass.T2]: 't2',
      [InstanceClass.BURSTABLE3]: 't3',
      [InstanceClass.T3]: 't3',
      [InstanceClass.BURSTABLE3_AMD]: 't3a',
      [InstanceClass.T3A]: 't3a',
      [InstanceClass.BURSTABLE4_GRAVITON]: 't4g',
      [InstanceClass.T4G]: 't4g',
      [InstanceClass.MEMORY_INTENSIVE_1]: 'x1',
      [InstanceClass.X1]: 'x1',
      [InstanceClass.MEMORY_INTENSIVE_1_EXTENDED]: 'x1e',
      [InstanceClass.X1E]: 'x1e',
      [InstanceClass.MEMORY_INTENSIVE_2_GRAVITON2]: 'x2g',
      [InstanceClass.X2G]: 'x2g',
      [InstanceClass.MEMORY_INTENSIVE_2_GRAVITON2_NVME_DRIVE]: 'x2gd',
      [InstanceClass.X2GD]: 'x2gd',
      [InstanceClass.FPGA1]: 'f1',
      [InstanceClass.F1]: 'f1',
      [InstanceClass.FPGA2]: 'f2',
      [InstanceClass.F2]: 'f2',
      [InstanceClass.GRAPHICS3_SMALL]: 'g3s',
      [InstanceClass.G3S]: 'g3s',
      [InstanceClass.GRAPHICS3]: 'g3',
      [InstanceClass.G3]: 'g3',
      [InstanceClass.GRAPHICS4_NVME_DRIVE_HIGH_PERFORMANCE]: 'g4dn',
      [InstanceClass.G4DN]: 'g4dn',
      [InstanceClass.GRAPHICS4_AMD_NVME_DRIVE]: 'g4ad',
      [InstanceClass.G4AD]: 'g4ad',
      [InstanceClass.GRAPHICS5]: 'g5',
      [InstanceClass.G5]: 'g5',
      [InstanceClass.GRAPHICS5_GRAVITON2]: 'g5g',
      [InstanceClass.G5G]: 'g5g',
      [InstanceClass.GRAPHICS6]: 'g6',
      [InstanceClass.G6]: 'g6',
      [InstanceClass.GRAPHICS6_EFFICIENT]: 'g6e',
      [InstanceClass.G6E]: 'g6e',
      [InstanceClass.GRAPHICS_RAM_6]: 'gr6',
      [InstanceClass.GR6]: 'gr6',
      [InstanceClass.PARALLEL2]: 'p2',
      [InstanceClass.P2]: 'p2',
      [InstanceClass.PARALLEL3]: 'p3',
      [InstanceClass.P3]: 'p3',
      [InstanceClass.PARALLEL3_NVME_DRIVE_HIGH_PERFORMANCE]: 'p3dn',
      [InstanceClass.P3DN]: 'p3dn',
      [InstanceClass.PARALLEL4_NVME_DRIVE_EXTENDED]: 'p4de',
      [InstanceClass.P4DE]: 'p4de',
      [InstanceClass.PARALLEL4]: 'p4d',
      [InstanceClass.P4D]: 'p4d',
      [InstanceClass.PARALLEL5]: 'p5',
      [InstanceClass.P5]: 'p5',
      [InstanceClass.PARALLEL5_EXTENDED]: 'parallel5-extended',
      [InstanceClass.P5E]: 'p5e',
      [InstanceClass.PARALLEL5_EXTENDED_NETWORK]: 'parallel5-extended-network',
      [InstanceClass.P5EN]: 'p5en',
      [InstanceClass.ARM1]: 'a1',
      [InstanceClass.A1]: 'a1',
      [InstanceClass.STANDARD6_GRAVITON]: 'm6g',
      [InstanceClass.M6G]: 'm6g',
      [InstanceClass.STANDARD6_INTEL]: 'm6i',
      [InstanceClass.M6I]: 'm6i',
      [InstanceClass.STANDARD6_INTEL_NVME_DRIVE]: 'm6id',
      [InstanceClass.M6ID]: 'm6id',
      [InstanceClass.STANDARD6_INTEL_HIGH_PERFORMANCE]: 'm6in',
      [InstanceClass.M6IN]: 'm6in',
      [InstanceClass.STANDARD6_INTEL_NVME_DRIVE_HIGH_PERFORMANCE]: 'm6idn',
      [InstanceClass.M6IDN]: 'm6idn',
      [InstanceClass.STANDARD6_AMD]: 'm6a',
      [InstanceClass.M6A]: 'm6a',
      [InstanceClass.STANDARD6_GRAVITON2_NVME_DRIVE]: 'm6gd',
      [InstanceClass.M6GD]: 'm6gd',
      [InstanceClass.STANDARD7_GRAVITON]: 'm7g',
      [InstanceClass.M7G]: 'm7g',
      [InstanceClass.STANDARD8_GRAVITON]: 'm8g',
      [InstanceClass.M8G]: 'm8g',
      [InstanceClass.STANDARD7_GRAVITON3_NVME_DRIVE]: 'm7gd',
      [InstanceClass.M7GD]: 'm7gd',
      [InstanceClass.STANDARD8_GRAVITON4_NVME_DRIVE]: 'm8gd',
      [InstanceClass.M8GD]: 'm8gd',
      [InstanceClass.STANDARD7_INTEL]: 'm7i',
      [InstanceClass.M7I]: 'm7i',
      [InstanceClass.STANDARD7_INTEL_FLEX]: 'm7i-flex',
      [InstanceClass.M7I_FLEX]: 'm7i-flex',
      [InstanceClass.STANDARD7_AMD]: 'm7a',
      [InstanceClass.M7A]: 'm7a',
      [InstanceClass.HIGH_COMPUTE_MEMORY1]: 'z1d',
      [InstanceClass.Z1D]: 'z1d',
      [InstanceClass.INFERENCE1]: 'inf1',
      [InstanceClass.INF1]: 'inf1',
      [InstanceClass.INFERENCE2]: 'inf2',
      [InstanceClass.INF2]: 'inf2',
      [InstanceClass.MACINTOSH1_INTEL]: 'mac1',
      [InstanceClass.MAC1]: 'mac1',
      [InstanceClass.MACINTOSH2_M1]: 'mac2',
      [InstanceClass.MAC2]: 'mac2',
      [InstanceClass.MACINTOSH2_M2]: 'mac2-m2',
      [InstanceClass.MAC2_M2]: 'mac2-m2',
      [InstanceClass.MACINTOSH2_M2_PRO]: 'mac2-m2pro',
      [InstanceClass.MAC2_M2PRO]: 'mac2-m2pro',
      [InstanceClass.MACINTOSH2_M1_ULTRA]: 'mac2-m1ultra',
      [InstanceClass.MAC2_M1ULTRA]: 'mac2-m1ultra',
      [InstanceClass.VIDEO_TRANSCODING1]: 'vt1',
      [InstanceClass.VT1]: 'vt1',
      [InstanceClass.HIGH_PERFORMANCE_COMPUTING6_AMD]: 'hpc6a',
      [InstanceClass.HPC6A]: 'hpc6a',
      [InstanceClass.HIGH_PERFORMANCE_COMPUTING6_INTEL_NVME_DRIVE]: 'hpc6id',
      [InstanceClass.HPC6ID]: 'hpc6id',
      [InstanceClass.HIGH_PERFORMANCE_COMPUTING7_AMD]: 'hpc7a',
      [InstanceClass.HPC7A]: 'hpc7a',
      [InstanceClass.HIGH_PERFORMANCE_COMPUTING7_GRAVITON]: 'hpc7g',
      [InstanceClass.HPC7G]: 'hpc7g',
      [InstanceClass.I4I]: 'i4i',
      [InstanceClass.IO4_INTEL]: 'i4i',
      [InstanceClass.X2IEDN]: 'x2iedn',
      [InstanceClass.MEMORY_INTENSIVE_2_XT_INTEL]: 'x2iedn',
      [InstanceClass.X2IDN]: 'x2idn',
      [InstanceClass.MEMORY_INTENSIVE_2_INTEL]: 'x2idn',
      [InstanceClass.X2IEZN]: 'x2iezn',
      [InstanceClass.MEMORY_INTENSIVE_8_GRAVITON]: 'x8g',
      [InstanceClass.X8G]: 'x8g',
      [InstanceClass.MEMORY_INTENSIVE_2_XTZ_INTEL]: 'x2iezn',
      [InstanceClass.DEEP_LEARNING1]: 'dl1',
      [InstanceClass.DL1]: 'dl1',
      [InstanceClass.DEEP_LEARNING2_QUALCOMM]: 'dl2q',
      [InstanceClass.DL2Q]: 'dl2q',
    };
    return new InstanceType(`${instanceClassMap[instanceClass] ?? instanceClass}.${instanceSize}`);
  }