github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/client/fingerprint/env_aws_cpu.go (about)

     1  // Code generated from hashicorp/nomad/tools/ec2info; DO NOT EDIT.
     2  
     3  package fingerprint
     4  
     5  // CPU contains virtual core count and processor baseline performance.
     6  type CPU struct {
     7  	// use small units to reduce size of the embedded table
     8  	Cores uint32 // good for 4 billion cores
     9  	MHz   uint32 // good for 4 billion MHz
    10  }
    11  
    12  // Ticks computes the total number of cycles available across the virtual
    13  // cores of a CPU.
    14  func (c CPU) Ticks() int {
    15  	return int(c.MHz) * int(c.Cores)
    16  }
    17  
    18  // GHz returns the speed of CPU in ghz.
    19  func (c CPU) GHz() float64 {
    20  	return float64(c.MHz) / 1000.0
    21  }
    22  
    23  // newCPU create a CPUSpecs from the given virtual core count and core speed.
    24  func newCPU(cores uint32, ghz float64) CPU {
    25  	return CPU{
    26  		Cores: cores,
    27  		MHz:   uint32(ghz * 1000),
    28  	}
    29  }
    30  
    31  // LookupEC2CPU returns the virtual core count and core speed information from a
    32  // lookup table generated from the Amazon EC2 API.
    33  //
    34  // If the instance type does not exist, nil is returned.
    35  func LookupEC2CPU(instanceType string) *CPU {
    36  	specs, exists := instanceTypeCPU[instanceType]
    37  	if !exists {
    38  		return nil
    39  	}
    40  	return &specs
    41  }
    42  
    43  var instanceTypeCPU = map[string]CPU{
    44  
    45  	"a1.2xlarge":        newCPU(8, 2.3),
    46  	"a1.4xlarge":        newCPU(16, 2.3),
    47  	"a1.large":          newCPU(2, 2.3),
    48  	"a1.medium":         newCPU(1, 2.3),
    49  	"a1.metal":          newCPU(16, 2.3),
    50  	"a1.xlarge":         newCPU(4, 2.3),
    51  	"c3.2xlarge":        newCPU(8, 2.8),
    52  	"c3.4xlarge":        newCPU(16, 2.8),
    53  	"c3.8xlarge":        newCPU(32, 2.8),
    54  	"c3.large":          newCPU(2, 2.8),
    55  	"c3.xlarge":         newCPU(4, 2.8),
    56  	"c4.2xlarge":        newCPU(8, 2.9),
    57  	"c4.4xlarge":        newCPU(16, 2.9),
    58  	"c4.8xlarge":        newCPU(36, 2.9),
    59  	"c4.large":          newCPU(2, 2.9),
    60  	"c4.xlarge":         newCPU(4, 2.9),
    61  	"c5.12xlarge":       newCPU(48, 3.6),
    62  	"c5.18xlarge":       newCPU(72, 3.4),
    63  	"c5.24xlarge":       newCPU(96, 3.6),
    64  	"c5.2xlarge":        newCPU(8, 3.4),
    65  	"c5.4xlarge":        newCPU(16, 3.4),
    66  	"c5.9xlarge":        newCPU(36, 3.4),
    67  	"c5.large":          newCPU(2, 3.4),
    68  	"c5.metal":          newCPU(96, 3.6),
    69  	"c5.xlarge":         newCPU(4, 3.4),
    70  	"c5a.12xlarge":      newCPU(48, 3.3),
    71  	"c5a.16xlarge":      newCPU(64, 3.3),
    72  	"c5a.24xlarge":      newCPU(96, 3.3),
    73  	"c5a.2xlarge":       newCPU(8, 3.3),
    74  	"c5a.4xlarge":       newCPU(16, 3.3),
    75  	"c5a.8xlarge":       newCPU(32, 3.3),
    76  	"c5a.large":         newCPU(2, 3.3),
    77  	"c5a.xlarge":        newCPU(4, 3.3),
    78  	"c5ad.12xlarge":     newCPU(48, 3.3),
    79  	"c5ad.16xlarge":     newCPU(64, 3.3),
    80  	"c5ad.24xlarge":     newCPU(96, 3.3),
    81  	"c5ad.2xlarge":      newCPU(8, 3.3),
    82  	"c5ad.4xlarge":      newCPU(16, 3.3),
    83  	"c5ad.8xlarge":      newCPU(32, 3.3),
    84  	"c5ad.large":        newCPU(2, 3.3),
    85  	"c5ad.xlarge":       newCPU(4, 3.3),
    86  	"c5d.12xlarge":      newCPU(48, 3.6),
    87  	"c5d.18xlarge":      newCPU(72, 3.4),
    88  	"c5d.24xlarge":      newCPU(96, 3.6),
    89  	"c5d.2xlarge":       newCPU(8, 3.4),
    90  	"c5d.4xlarge":       newCPU(16, 3.4),
    91  	"c5d.9xlarge":       newCPU(36, 3.4),
    92  	"c5d.large":         newCPU(2, 3.4),
    93  	"c5d.metal":         newCPU(96, 3.6),
    94  	"c5d.xlarge":        newCPU(4, 3.4),
    95  	"c5n.18xlarge":      newCPU(72, 3.4),
    96  	"c5n.2xlarge":       newCPU(8, 3.4),
    97  	"c5n.4xlarge":       newCPU(16, 3.4),
    98  	"c5n.9xlarge":       newCPU(36, 3.4),
    99  	"c5n.large":         newCPU(2, 3.4),
   100  	"c5n.metal":         newCPU(72, 3.4),
   101  	"c5n.xlarge":        newCPU(4, 3.4),
   102  	"c6a.12xlarge":      newCPU(48, 3.6),
   103  	"c6a.16xlarge":      newCPU(64, 3.6),
   104  	"c6a.24xlarge":      newCPU(96, 3.6),
   105  	"c6a.2xlarge":       newCPU(8, 3.6),
   106  	"c6a.32xlarge":      newCPU(128, 3.6),
   107  	"c6a.48xlarge":      newCPU(192, 3.6),
   108  	"c6a.4xlarge":       newCPU(16, 3.6),
   109  	"c6a.8xlarge":       newCPU(32, 3.6),
   110  	"c6a.large":         newCPU(2, 3.6),
   111  	"c6a.metal":         newCPU(192, 3.6),
   112  	"c6a.xlarge":        newCPU(4, 3.6),
   113  	"c6g.12xlarge":      newCPU(48, 2.5),
   114  	"c6g.16xlarge":      newCPU(64, 2.5),
   115  	"c6g.2xlarge":       newCPU(8, 2.5),
   116  	"c6g.4xlarge":       newCPU(16, 2.5),
   117  	"c6g.8xlarge":       newCPU(32, 2.5),
   118  	"c6g.large":         newCPU(2, 2.5),
   119  	"c6g.medium":        newCPU(1, 2.5),
   120  	"c6g.metal":         newCPU(64, 2.5),
   121  	"c6g.xlarge":        newCPU(4, 2.5),
   122  	"c6gd.12xlarge":     newCPU(48, 2.5),
   123  	"c6gd.16xlarge":     newCPU(64, 2.5),
   124  	"c6gd.2xlarge":      newCPU(8, 2.5),
   125  	"c6gd.4xlarge":      newCPU(16, 2.5),
   126  	"c6gd.8xlarge":      newCPU(32, 2.5),
   127  	"c6gd.large":        newCPU(2, 2.5),
   128  	"c6gd.medium":       newCPU(1, 2.5),
   129  	"c6gd.metal":        newCPU(64, 2.5),
   130  	"c6gd.xlarge":       newCPU(4, 2.5),
   131  	"c6gn.12xlarge":     newCPU(48, 2.5),
   132  	"c6gn.16xlarge":     newCPU(64, 2.5),
   133  	"c6gn.2xlarge":      newCPU(8, 2.5),
   134  	"c6gn.4xlarge":      newCPU(16, 2.5),
   135  	"c6gn.8xlarge":      newCPU(32, 2.5),
   136  	"c6gn.large":        newCPU(2, 2.5),
   137  	"c6gn.medium":       newCPU(1, 2.5),
   138  	"c6gn.xlarge":       newCPU(4, 2.5),
   139  	"c6i.12xlarge":      newCPU(48, 3.5),
   140  	"c6i.16xlarge":      newCPU(64, 3.5),
   141  	"c6i.24xlarge":      newCPU(96, 3.5),
   142  	"c6i.2xlarge":       newCPU(8, 3.5),
   143  	"c6i.32xlarge":      newCPU(128, 3.5),
   144  	"c6i.4xlarge":       newCPU(16, 3.5),
   145  	"c6i.8xlarge":       newCPU(32, 3.5),
   146  	"c6i.large":         newCPU(2, 3.5),
   147  	"c6i.metal":         newCPU(128, 3.5),
   148  	"c6i.xlarge":        newCPU(4, 3.5),
   149  	"c6id.12xlarge":     newCPU(48, 3.5),
   150  	"c6id.16xlarge":     newCPU(64, 3.5),
   151  	"c6id.24xlarge":     newCPU(96, 3.5),
   152  	"c6id.2xlarge":      newCPU(8, 3.5),
   153  	"c6id.32xlarge":     newCPU(128, 3.5),
   154  	"c6id.4xlarge":      newCPU(16, 3.5),
   155  	"c6id.8xlarge":      newCPU(32, 3.5),
   156  	"c6id.large":        newCPU(2, 3.5),
   157  	"c6id.metal":        newCPU(128, 3.5),
   158  	"c6id.xlarge":       newCPU(4, 3.5),
   159  	"c7g.12xlarge":      newCPU(48, 2.6),
   160  	"c7g.16xlarge":      newCPU(64, 2.6),
   161  	"c7g.2xlarge":       newCPU(8, 2.6),
   162  	"c7g.4xlarge":       newCPU(16, 2.6),
   163  	"c7g.8xlarge":       newCPU(32, 2.6),
   164  	"c7g.large":         newCPU(2, 2.6),
   165  	"c7g.medium":        newCPU(1, 2.6),
   166  	"c7g.xlarge":        newCPU(4, 2.6),
   167  	"cc2.8xlarge":       newCPU(32, 2.6),
   168  	"d2.2xlarge":        newCPU(8, 2.4),
   169  	"d2.4xlarge":        newCPU(16, 2.4),
   170  	"d2.8xlarge":        newCPU(36, 2.4),
   171  	"d2.xlarge":         newCPU(4, 2.4),
   172  	"d3.2xlarge":        newCPU(8, 3.1),
   173  	"d3.4xlarge":        newCPU(16, 3.1),
   174  	"d3.8xlarge":        newCPU(32, 3.1),
   175  	"d3.xlarge":         newCPU(4, 3.1),
   176  	"d3en.12xlarge":     newCPU(48, 3.1),
   177  	"d3en.2xlarge":      newCPU(8, 3.1),
   178  	"d3en.4xlarge":      newCPU(16, 3.1),
   179  	"d3en.6xlarge":      newCPU(24, 3.1),
   180  	"d3en.8xlarge":      newCPU(32, 3.1),
   181  	"d3en.xlarge":       newCPU(4, 3.1),
   182  	"dl1.24xlarge":      newCPU(96, 3),
   183  	"f1.16xlarge":       newCPU(64, 2.3),
   184  	"f1.2xlarge":        newCPU(8, 2.3),
   185  	"f1.4xlarge":        newCPU(16, 2.3),
   186  	"g2.2xlarge":        newCPU(8, 2.6),
   187  	"g2.8xlarge":        newCPU(32, 2.6),
   188  	"g3.16xlarge":       newCPU(64, 2.3),
   189  	"g3.4xlarge":        newCPU(16, 2.7),
   190  	"g3.8xlarge":        newCPU(32, 2.7),
   191  	"g3s.xlarge":        newCPU(4, 2.7),
   192  	"g4ad.16xlarge":     newCPU(64, 3),
   193  	"g4ad.2xlarge":      newCPU(8, 3),
   194  	"g4ad.4xlarge":      newCPU(16, 3),
   195  	"g4ad.8xlarge":      newCPU(32, 3),
   196  	"g4ad.xlarge":       newCPU(4, 3),
   197  	"g4dn.12xlarge":     newCPU(48, 2.5),
   198  	"g4dn.16xlarge":     newCPU(64, 2.5),
   199  	"g4dn.2xlarge":      newCPU(8, 2.5),
   200  	"g4dn.4xlarge":      newCPU(16, 2.5),
   201  	"g4dn.8xlarge":      newCPU(32, 2.5),
   202  	"g4dn.metal":        newCPU(96, 2.5),
   203  	"g4dn.xlarge":       newCPU(4, 2.5),
   204  	"g5.12xlarge":       newCPU(48, 3.3),
   205  	"g5.16xlarge":       newCPU(64, 3.3),
   206  	"g5.24xlarge":       newCPU(96, 3.3),
   207  	"g5.2xlarge":        newCPU(8, 3.3),
   208  	"g5.48xlarge":       newCPU(192, 3.3),
   209  	"g5.4xlarge":        newCPU(16, 3.3),
   210  	"g5.8xlarge":        newCPU(32, 3.3),
   211  	"g5.xlarge":         newCPU(4, 3.3),
   212  	"g5g.16xlarge":      newCPU(64, 2.5),
   213  	"g5g.2xlarge":       newCPU(8, 2.5),
   214  	"g5g.4xlarge":       newCPU(16, 2.5),
   215  	"g5g.8xlarge":       newCPU(32, 2.5),
   216  	"g5g.metal":         newCPU(64, 2.5),
   217  	"g5g.xlarge":        newCPU(4, 2.5),
   218  	"h1.16xlarge":       newCPU(64, 2.3),
   219  	"h1.2xlarge":        newCPU(8, 2.3),
   220  	"h1.4xlarge":        newCPU(16, 2.3),
   221  	"h1.8xlarge":        newCPU(32, 2.3),
   222  	"hpc6a.48xlarge":    newCPU(96, 3.6),
   223  	"i2.2xlarge":        newCPU(8, 2.5),
   224  	"i2.4xlarge":        newCPU(16, 2.5),
   225  	"i2.8xlarge":        newCPU(32, 2.5),
   226  	"i2.xlarge":         newCPU(4, 2.5),
   227  	"i3.16xlarge":       newCPU(64, 2.3),
   228  	"i3.2xlarge":        newCPU(8, 2.3),
   229  	"i3.4xlarge":        newCPU(16, 2.3),
   230  	"i3.8xlarge":        newCPU(32, 2.3),
   231  	"i3.large":          newCPU(2, 2.3),
   232  	"i3.metal":          newCPU(72, 2.3),
   233  	"i3.xlarge":         newCPU(4, 2.3),
   234  	"i3en.12xlarge":     newCPU(48, 3.1),
   235  	"i3en.24xlarge":     newCPU(96, 3.1),
   236  	"i3en.2xlarge":      newCPU(8, 3.1),
   237  	"i3en.3xlarge":      newCPU(12, 3.1),
   238  	"i3en.6xlarge":      newCPU(24, 3.1),
   239  	"i3en.large":        newCPU(2, 3.1),
   240  	"i3en.metal":        newCPU(96, 3.1),
   241  	"i3en.xlarge":       newCPU(4, 3.1),
   242  	"i4i.16xlarge":      newCPU(64, 3.5),
   243  	"i4i.2xlarge":       newCPU(8, 3.5),
   244  	"i4i.32xlarge":      newCPU(128, 3.5),
   245  	"i4i.4xlarge":       newCPU(16, 3.5),
   246  	"i4i.8xlarge":       newCPU(32, 3.5),
   247  	"i4i.large":         newCPU(2, 3.5),
   248  	"i4i.metal":         newCPU(128, 3.5),
   249  	"i4i.xlarge":        newCPU(4, 3.5),
   250  	"im4gn.16xlarge":    newCPU(64, 2.5),
   251  	"im4gn.2xlarge":     newCPU(8, 2.5),
   252  	"im4gn.4xlarge":     newCPU(16, 2.5),
   253  	"im4gn.8xlarge":     newCPU(32, 2.5),
   254  	"im4gn.large":       newCPU(2, 2.5),
   255  	"im4gn.xlarge":      newCPU(4, 2.5),
   256  	"inf1.24xlarge":     newCPU(96, 2.5),
   257  	"inf1.2xlarge":      newCPU(8, 2.5),
   258  	"inf1.6xlarge":      newCPU(24, 2.5),
   259  	"inf1.xlarge":       newCPU(4, 2.5),
   260  	"is4gen.2xlarge":    newCPU(8, 2.5),
   261  	"is4gen.4xlarge":    newCPU(16, 2.5),
   262  	"is4gen.8xlarge":    newCPU(32, 2.5),
   263  	"is4gen.large":      newCPU(2, 2.5),
   264  	"is4gen.medium":     newCPU(1, 2.5),
   265  	"is4gen.xlarge":     newCPU(4, 2.5),
   266  	"m3.2xlarge":        newCPU(8, 2.5),
   267  	"m3.large":          newCPU(2, 2.5),
   268  	"m3.medium":         newCPU(1, 2.5),
   269  	"m3.xlarge":         newCPU(4, 2.5),
   270  	"m4.10xlarge":       newCPU(40, 2.4),
   271  	"m4.16xlarge":       newCPU(64, 2.3),
   272  	"m4.2xlarge":        newCPU(8, 2.4),
   273  	"m4.4xlarge":        newCPU(16, 2.4),
   274  	"m4.large":          newCPU(2, 2.4),
   275  	"m4.xlarge":         newCPU(4, 2.4),
   276  	"m5.12xlarge":       newCPU(48, 3.1),
   277  	"m5.16xlarge":       newCPU(64, 3.1),
   278  	"m5.24xlarge":       newCPU(96, 3.1),
   279  	"m5.2xlarge":        newCPU(8, 3.1),
   280  	"m5.4xlarge":        newCPU(16, 3.1),
   281  	"m5.8xlarge":        newCPU(32, 3.1),
   282  	"m5.large":          newCPU(2, 3.1),
   283  	"m5.metal":          newCPU(96, 3.1),
   284  	"m5.xlarge":         newCPU(4, 3.1),
   285  	"m5a.12xlarge":      newCPU(48, 2.5),
   286  	"m5a.16xlarge":      newCPU(64, 2.5),
   287  	"m5a.24xlarge":      newCPU(96, 2.5),
   288  	"m5a.2xlarge":       newCPU(8, 2.5),
   289  	"m5a.4xlarge":       newCPU(16, 2.5),
   290  	"m5a.8xlarge":       newCPU(32, 2.5),
   291  	"m5a.large":         newCPU(2, 2.5),
   292  	"m5a.xlarge":        newCPU(4, 2.5),
   293  	"m5ad.12xlarge":     newCPU(48, 2.2),
   294  	"m5ad.16xlarge":     newCPU(64, 2.5),
   295  	"m5ad.24xlarge":     newCPU(96, 2.2),
   296  	"m5ad.2xlarge":      newCPU(8, 2.2),
   297  	"m5ad.4xlarge":      newCPU(16, 2.2),
   298  	"m5ad.8xlarge":      newCPU(32, 2.5),
   299  	"m5ad.large":        newCPU(2, 2.2),
   300  	"m5ad.xlarge":       newCPU(4, 2.2),
   301  	"m5d.12xlarge":      newCPU(48, 3.1),
   302  	"m5d.16xlarge":      newCPU(64, 3.1),
   303  	"m5d.24xlarge":      newCPU(96, 3.1),
   304  	"m5d.2xlarge":       newCPU(8, 3.1),
   305  	"m5d.4xlarge":       newCPU(16, 3.1),
   306  	"m5d.8xlarge":       newCPU(32, 3.1),
   307  	"m5d.large":         newCPU(2, 3.1),
   308  	"m5d.metal":         newCPU(96, 3.1),
   309  	"m5d.xlarge":        newCPU(4, 3.1),
   310  	"m5dn.12xlarge":     newCPU(48, 3.1),
   311  	"m5dn.16xlarge":     newCPU(64, 3.1),
   312  	"m5dn.24xlarge":     newCPU(96, 3.1),
   313  	"m5dn.2xlarge":      newCPU(8, 3.1),
   314  	"m5dn.4xlarge":      newCPU(16, 3.1),
   315  	"m5dn.8xlarge":      newCPU(32, 3.1),
   316  	"m5dn.large":        newCPU(2, 3.1),
   317  	"m5dn.metal":        newCPU(96, 3.1),
   318  	"m5dn.xlarge":       newCPU(4, 3.1),
   319  	"m5n.12xlarge":      newCPU(48, 3.1),
   320  	"m5n.16xlarge":      newCPU(64, 3.1),
   321  	"m5n.24xlarge":      newCPU(96, 3.1),
   322  	"m5n.2xlarge":       newCPU(8, 3.1),
   323  	"m5n.4xlarge":       newCPU(16, 3.1),
   324  	"m5n.8xlarge":       newCPU(32, 3.1),
   325  	"m5n.large":         newCPU(2, 3.1),
   326  	"m5n.metal":         newCPU(96, 3.1),
   327  	"m5n.xlarge":        newCPU(4, 3.1),
   328  	"m5zn.12xlarge":     newCPU(48, 4.5),
   329  	"m5zn.2xlarge":      newCPU(8, 4.5),
   330  	"m5zn.3xlarge":      newCPU(12, 4.5),
   331  	"m5zn.6xlarge":      newCPU(24, 4.5),
   332  	"m5zn.large":        newCPU(2, 4.5),
   333  	"m5zn.metal":        newCPU(48, 4.5),
   334  	"m5zn.xlarge":       newCPU(4, 4.5),
   335  	"m6a.12xlarge":      newCPU(48, 3.6),
   336  	"m6a.16xlarge":      newCPU(64, 3.6),
   337  	"m6a.24xlarge":      newCPU(96, 3.6),
   338  	"m6a.2xlarge":       newCPU(8, 3.6),
   339  	"m6a.32xlarge":      newCPU(128, 3.6),
   340  	"m6a.48xlarge":      newCPU(192, 3.6),
   341  	"m6a.4xlarge":       newCPU(16, 3.6),
   342  	"m6a.8xlarge":       newCPU(32, 3.6),
   343  	"m6a.large":         newCPU(2, 3.6),
   344  	"m6a.metal":         newCPU(192, 3.6),
   345  	"m6a.xlarge":        newCPU(4, 3.6),
   346  	"m6g.12xlarge":      newCPU(48, 2.5),
   347  	"m6g.16xlarge":      newCPU(64, 2.5),
   348  	"m6g.2xlarge":       newCPU(8, 2.5),
   349  	"m6g.4xlarge":       newCPU(16, 2.5),
   350  	"m6g.8xlarge":       newCPU(32, 2.5),
   351  	"m6g.large":         newCPU(2, 2.5),
   352  	"m6g.medium":        newCPU(1, 2.5),
   353  	"m6g.metal":         newCPU(64, 2.5),
   354  	"m6g.xlarge":        newCPU(4, 2.5),
   355  	"m6gd.12xlarge":     newCPU(48, 2.5),
   356  	"m6gd.16xlarge":     newCPU(64, 2.5),
   357  	"m6gd.2xlarge":      newCPU(8, 2.5),
   358  	"m6gd.4xlarge":      newCPU(16, 2.5),
   359  	"m6gd.8xlarge":      newCPU(32, 2.5),
   360  	"m6gd.large":        newCPU(2, 2.5),
   361  	"m6gd.medium":       newCPU(1, 2.5),
   362  	"m6gd.metal":        newCPU(64, 2.5),
   363  	"m6gd.xlarge":       newCPU(4, 2.5),
   364  	"m6i.12xlarge":      newCPU(48, 3.5),
   365  	"m6i.16xlarge":      newCPU(64, 3.5),
   366  	"m6i.24xlarge":      newCPU(96, 3.5),
   367  	"m6i.2xlarge":       newCPU(8, 3.5),
   368  	"m6i.32xlarge":      newCPU(128, 3.5),
   369  	"m6i.4xlarge":       newCPU(16, 3.5),
   370  	"m6i.8xlarge":       newCPU(32, 3.5),
   371  	"m6i.large":         newCPU(2, 3.5),
   372  	"m6i.metal":         newCPU(128, 3.5),
   373  	"m6i.xlarge":        newCPU(4, 3.5),
   374  	"m6id.12xlarge":     newCPU(48, 3.5),
   375  	"m6id.16xlarge":     newCPU(64, 3.5),
   376  	"m6id.24xlarge":     newCPU(96, 3.5),
   377  	"m6id.2xlarge":      newCPU(8, 3.5),
   378  	"m6id.32xlarge":     newCPU(128, 3.5),
   379  	"m6id.4xlarge":      newCPU(16, 3.5),
   380  	"m6id.8xlarge":      newCPU(32, 3.5),
   381  	"m6id.large":        newCPU(2, 3.5),
   382  	"m6id.metal":        newCPU(128, 3.5),
   383  	"m6id.xlarge":       newCPU(4, 3.5),
   384  	"mac1.metal":        newCPU(12, 3.2),
   385  	"mac2.metal":        newCPU(8, 3.2),
   386  	"p2.16xlarge":       newCPU(64, 2.3),
   387  	"p2.8xlarge":        newCPU(32, 2.7),
   388  	"p2.xlarge":         newCPU(4, 2.7),
   389  	"p3.16xlarge":       newCPU(64, 2.7),
   390  	"p3.2xlarge":        newCPU(8, 2.7),
   391  	"p3.8xlarge":        newCPU(32, 2.7),
   392  	"p3dn.24xlarge":     newCPU(96, 2.5),
   393  	"p4d.24xlarge":      newCPU(96, 3),
   394  	"r3.2xlarge":        newCPU(8, 2.5),
   395  	"r3.4xlarge":        newCPU(16, 2.5),
   396  	"r3.8xlarge":        newCPU(32, 2.5),
   397  	"r3.large":          newCPU(2, 2.5),
   398  	"r3.xlarge":         newCPU(4, 2.5),
   399  	"r4.16xlarge":       newCPU(64, 2.3),
   400  	"r4.2xlarge":        newCPU(8, 2.3),
   401  	"r4.4xlarge":        newCPU(16, 2.3),
   402  	"r4.8xlarge":        newCPU(32, 2.3),
   403  	"r4.large":          newCPU(2, 2.3),
   404  	"r4.xlarge":         newCPU(4, 2.3),
   405  	"r5.12xlarge":       newCPU(48, 3.1),
   406  	"r5.16xlarge":       newCPU(64, 3.1),
   407  	"r5.24xlarge":       newCPU(96, 3.1),
   408  	"r5.2xlarge":        newCPU(8, 3.1),
   409  	"r5.4xlarge":        newCPU(16, 3.1),
   410  	"r5.8xlarge":        newCPU(32, 3.1),
   411  	"r5.large":          newCPU(2, 3.1),
   412  	"r5.metal":          newCPU(96, 3.1),
   413  	"r5.xlarge":         newCPU(4, 3.1),
   414  	"r5a.12xlarge":      newCPU(48, 2.5),
   415  	"r5a.16xlarge":      newCPU(64, 2.5),
   416  	"r5a.24xlarge":      newCPU(96, 2.5),
   417  	"r5a.2xlarge":       newCPU(8, 2.5),
   418  	"r5a.4xlarge":       newCPU(16, 2.5),
   419  	"r5a.8xlarge":       newCPU(32, 2.5),
   420  	"r5a.large":         newCPU(2, 2.5),
   421  	"r5a.xlarge":        newCPU(4, 2.5),
   422  	"r5ad.12xlarge":     newCPU(48, 2.2),
   423  	"r5ad.16xlarge":     newCPU(64, 2.5),
   424  	"r5ad.24xlarge":     newCPU(96, 2.2),
   425  	"r5ad.2xlarge":      newCPU(8, 2.2),
   426  	"r5ad.4xlarge":      newCPU(16, 2.2),
   427  	"r5ad.8xlarge":      newCPU(32, 2.5),
   428  	"r5ad.large":        newCPU(2, 2.2),
   429  	"r5ad.xlarge":       newCPU(4, 2.2),
   430  	"r5b.12xlarge":      newCPU(48, 3.1),
   431  	"r5b.16xlarge":      newCPU(64, 3.1),
   432  	"r5b.24xlarge":      newCPU(96, 3.1),
   433  	"r5b.2xlarge":       newCPU(8, 3.1),
   434  	"r5b.4xlarge":       newCPU(16, 3.1),
   435  	"r5b.8xlarge":       newCPU(32, 3.1),
   436  	"r5b.large":         newCPU(2, 3.1),
   437  	"r5b.metal":         newCPU(96, 3.1),
   438  	"r5b.xlarge":        newCPU(4, 3.1),
   439  	"r5d.12xlarge":      newCPU(48, 3.1),
   440  	"r5d.16xlarge":      newCPU(64, 3.1),
   441  	"r5d.24xlarge":      newCPU(96, 3.1),
   442  	"r5d.2xlarge":       newCPU(8, 3.1),
   443  	"r5d.4xlarge":       newCPU(16, 3.1),
   444  	"r5d.8xlarge":       newCPU(32, 3.1),
   445  	"r5d.large":         newCPU(2, 3.1),
   446  	"r5d.metal":         newCPU(96, 3.1),
   447  	"r5d.xlarge":        newCPU(4, 3.1),
   448  	"r5dn.12xlarge":     newCPU(48, 3.1),
   449  	"r5dn.16xlarge":     newCPU(64, 3.1),
   450  	"r5dn.24xlarge":     newCPU(96, 3.1),
   451  	"r5dn.2xlarge":      newCPU(8, 3.1),
   452  	"r5dn.4xlarge":      newCPU(16, 3.1),
   453  	"r5dn.8xlarge":      newCPU(32, 3.1),
   454  	"r5dn.large":        newCPU(2, 3.1),
   455  	"r5dn.metal":        newCPU(96, 3.1),
   456  	"r5dn.xlarge":       newCPU(4, 3.1),
   457  	"r5n.12xlarge":      newCPU(48, 3.1),
   458  	"r5n.16xlarge":      newCPU(64, 3.1),
   459  	"r5n.24xlarge":      newCPU(96, 3.1),
   460  	"r5n.2xlarge":       newCPU(8, 3.1),
   461  	"r5n.4xlarge":       newCPU(16, 3.1),
   462  	"r5n.8xlarge":       newCPU(32, 3.1),
   463  	"r5n.large":         newCPU(2, 3.1),
   464  	"r5n.metal":         newCPU(96, 3.1),
   465  	"r5n.xlarge":        newCPU(4, 3.1),
   466  	"r6a.12xlarge":      newCPU(48, 3.6),
   467  	"r6a.16xlarge":      newCPU(64, 3.6),
   468  	"r6a.24xlarge":      newCPU(96, 3.6),
   469  	"r6a.2xlarge":       newCPU(8, 3.6),
   470  	"r6a.32xlarge":      newCPU(128, 3.6),
   471  	"r6a.48xlarge":      newCPU(192, 3.6),
   472  	"r6a.4xlarge":       newCPU(16, 3.6),
   473  	"r6a.8xlarge":       newCPU(32, 3.6),
   474  	"r6a.large":         newCPU(2, 3.6),
   475  	"r6a.metal":         newCPU(192, 3.6),
   476  	"r6a.xlarge":        newCPU(4, 3.6),
   477  	"r6g.12xlarge":      newCPU(48, 2.5),
   478  	"r6g.16xlarge":      newCPU(64, 2.5),
   479  	"r6g.2xlarge":       newCPU(8, 2.5),
   480  	"r6g.4xlarge":       newCPU(16, 2.5),
   481  	"r6g.8xlarge":       newCPU(32, 2.5),
   482  	"r6g.large":         newCPU(2, 2.5),
   483  	"r6g.medium":        newCPU(1, 2.5),
   484  	"r6g.metal":         newCPU(64, 2.5),
   485  	"r6g.xlarge":        newCPU(4, 2.5),
   486  	"r6gd.12xlarge":     newCPU(48, 2.5),
   487  	"r6gd.16xlarge":     newCPU(64, 2.5),
   488  	"r6gd.2xlarge":      newCPU(8, 2.5),
   489  	"r6gd.4xlarge":      newCPU(16, 2.5),
   490  	"r6gd.8xlarge":      newCPU(32, 2.5),
   491  	"r6gd.large":        newCPU(2, 2.5),
   492  	"r6gd.medium":       newCPU(1, 2.5),
   493  	"r6gd.metal":        newCPU(64, 2.5),
   494  	"r6gd.xlarge":       newCPU(4, 2.5),
   495  	"r6i.12xlarge":      newCPU(48, 3.5),
   496  	"r6i.16xlarge":      newCPU(64, 3.5),
   497  	"r6i.24xlarge":      newCPU(96, 3.5),
   498  	"r6i.2xlarge":       newCPU(8, 3.5),
   499  	"r6i.32xlarge":      newCPU(128, 3.5),
   500  	"r6i.4xlarge":       newCPU(16, 3.5),
   501  	"r6i.8xlarge":       newCPU(32, 3.5),
   502  	"r6i.large":         newCPU(2, 3.5),
   503  	"r6i.metal":         newCPU(128, 3.5),
   504  	"r6i.xlarge":        newCPU(4, 3.5),
   505  	"r6id.12xlarge":     newCPU(48, 3.5),
   506  	"r6id.16xlarge":     newCPU(64, 3.5),
   507  	"r6id.24xlarge":     newCPU(96, 3.5),
   508  	"r6id.2xlarge":      newCPU(8, 3.5),
   509  	"r6id.32xlarge":     newCPU(128, 3.5),
   510  	"r6id.4xlarge":      newCPU(16, 3.5),
   511  	"r6id.8xlarge":      newCPU(32, 3.5),
   512  	"r6id.large":        newCPU(2, 3.5),
   513  	"r6id.metal":        newCPU(128, 3.5),
   514  	"r6id.xlarge":       newCPU(4, 3.5),
   515  	"t2.2xlarge":        newCPU(8, 2.3),
   516  	"t2.large":          newCPU(2, 2.3),
   517  	"t2.medium":         newCPU(2, 2.3),
   518  	"t2.micro":          newCPU(1, 2.5),
   519  	"t2.nano":           newCPU(1, 2.4),
   520  	"t2.small":          newCPU(1, 2.5),
   521  	"t2.xlarge":         newCPU(4, 2.3),
   522  	"t3.2xlarge":        newCPU(8, 2.5),
   523  	"t3.large":          newCPU(2, 2.5),
   524  	"t3.medium":         newCPU(2, 2.5),
   525  	"t3.micro":          newCPU(2, 2.5),
   526  	"t3.nano":           newCPU(2, 2.5),
   527  	"t3.small":          newCPU(2, 2.5),
   528  	"t3.xlarge":         newCPU(4, 2.5),
   529  	"t3a.2xlarge":       newCPU(8, 2.2),
   530  	"t3a.large":         newCPU(2, 2.2),
   531  	"t3a.medium":        newCPU(2, 2.2),
   532  	"t3a.micro":         newCPU(2, 2.2),
   533  	"t3a.nano":          newCPU(2, 2.2),
   534  	"t3a.small":         newCPU(2, 2.2),
   535  	"t3a.xlarge":        newCPU(4, 2.2),
   536  	"t4g.2xlarge":       newCPU(8, 2.5),
   537  	"t4g.large":         newCPU(2, 2.5),
   538  	"t4g.medium":        newCPU(2, 2.5),
   539  	"t4g.micro":         newCPU(2, 2.5),
   540  	"t4g.nano":          newCPU(2, 2.5),
   541  	"t4g.small":         newCPU(2, 2.5),
   542  	"t4g.xlarge":        newCPU(4, 2.5),
   543  	"u-12tb1.112xlarge": newCPU(448, 2.1),
   544  	"u-3tb1.56xlarge":   newCPU(224, 2.1),
   545  	"u-6tb1.112xlarge":  newCPU(448, 2.1),
   546  	"u-6tb1.56xlarge":   newCPU(224, 2.1),
   547  	"u-9tb1.112xlarge":  newCPU(448, 2.1),
   548  	"vt1.24xlarge":      newCPU(96, 2.5),
   549  	"vt1.3xlarge":       newCPU(12, 2.5),
   550  	"vt1.6xlarge":       newCPU(24, 2.5),
   551  	"x1.16xlarge":       newCPU(64, 2.3),
   552  	"x1.32xlarge":       newCPU(128, 2.3),
   553  	"x1e.16xlarge":      newCPU(64, 2.3),
   554  	"x1e.2xlarge":       newCPU(8, 2.3),
   555  	"x1e.32xlarge":      newCPU(128, 2.3),
   556  	"x1e.4xlarge":       newCPU(16, 2.3),
   557  	"x1e.8xlarge":       newCPU(32, 2.3),
   558  	"x1e.xlarge":        newCPU(4, 2.3),
   559  	"x2gd.12xlarge":     newCPU(48, 2.5),
   560  	"x2gd.16xlarge":     newCPU(64, 2.5),
   561  	"x2gd.2xlarge":      newCPU(8, 2.5),
   562  	"x2gd.4xlarge":      newCPU(16, 2.5),
   563  	"x2gd.8xlarge":      newCPU(32, 2.5),
   564  	"x2gd.large":        newCPU(2, 2.5),
   565  	"x2gd.medium":       newCPU(1, 2.5),
   566  	"x2gd.metal":        newCPU(64, 2.5),
   567  	"x2gd.xlarge":       newCPU(4, 2.5),
   568  	"x2idn.16xlarge":    newCPU(64, 3.5),
   569  	"x2idn.24xlarge":    newCPU(96, 3.5),
   570  	"x2idn.32xlarge":    newCPU(128, 3.5),
   571  	"x2idn.metal":       newCPU(128, 3.5),
   572  	"x2iedn.16xlarge":   newCPU(64, 3.5),
   573  	"x2iedn.24xlarge":   newCPU(96, 3.5),
   574  	"x2iedn.2xlarge":    newCPU(8, 3.5),
   575  	"x2iedn.32xlarge":   newCPU(128, 3.5),
   576  	"x2iedn.4xlarge":    newCPU(16, 3.5),
   577  	"x2iedn.8xlarge":    newCPU(32, 3.5),
   578  	"x2iedn.metal":      newCPU(128, 3.5),
   579  	"x2iedn.xlarge":     newCPU(4, 3.5),
   580  	"x2iezn.12xlarge":   newCPU(48, 4.5),
   581  	"x2iezn.2xlarge":    newCPU(8, 4.5),
   582  	"x2iezn.4xlarge":    newCPU(16, 4.5),
   583  	"x2iezn.6xlarge":    newCPU(24, 4.5),
   584  	"x2iezn.8xlarge":    newCPU(32, 4.5),
   585  	"x2iezn.metal":      newCPU(48, 4.5),
   586  	"z1d.12xlarge":      newCPU(48, 4),
   587  	"z1d.2xlarge":       newCPU(8, 4),
   588  	"z1d.3xlarge":       newCPU(12, 4),
   589  	"z1d.6xlarge":       newCPU(24, 4),
   590  	"z1d.large":         newCPU(2, 4),
   591  	"z1d.metal":         newCPU(48, 4),
   592  	"z1d.xlarge":        newCPU(4, 4),
   593  }