@awboost/cfn-resource-types 0.1.25 → 0.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/lib/AWS-ApiGateway-Authorizer.d.ts +1 -1
  2. package/lib/AWS-ApiGateway-Method.d.ts +2 -2
  3. package/lib/AWS-CloudFront-Distribution.d.ts +568 -2
  4. package/lib/AWS-CloudFront-Distribution.js +2 -1
  5. package/lib/AWS-Config-ConfigRule.d.ts +61 -43
  6. package/lib/AWS-Config-ConfigRule.js +4 -1
  7. package/lib/AWS-Connect-Prompt.d.ts +1 -1
  8. package/lib/AWS-ControlTower-EnabledControl.d.ts +25 -0
  9. package/lib/AWS-DynamoDB-Table.d.ts +245 -11
  10. package/lib/AWS-DynamoDB-Table.js +5 -1
  11. package/lib/AWS-EC2-ClientVpnEndpoint.d.ts +0 -8
  12. package/lib/AWS-EC2-EC2Fleet.d.ts +1 -0
  13. package/lib/AWS-EC2-EIP.d.ts +31 -19
  14. package/lib/AWS-EC2-EIP.js +4 -1
  15. package/lib/AWS-EC2-LaunchTemplate.d.ts +422 -205
  16. package/lib/AWS-EC2-LaunchTemplate.js +8 -1
  17. package/lib/AWS-EC2-SecurityGroupEgress.d.ts +34 -19
  18. package/lib/AWS-EC2-SecurityGroupEgress.js +6 -1
  19. package/lib/AWS-EC2-SpotFleet.d.ts +1 -0
  20. package/lib/AWS-EC2-Volume.d.ts +68 -20
  21. package/lib/AWS-EC2-Volume.js +9 -1
  22. package/lib/AWS-ElastiCache-ParameterGroup.d.ts +1 -0
  23. package/lib/AWS-GameLift-Fleet.d.ts +1 -1
  24. package/lib/AWS-Glue-DataCatalogEncryptionSettings.d.ts +1 -0
  25. package/lib/AWS-Glue-TableOptimizer.d.ts +2 -2
  26. package/lib/AWS-IAM-GroupPolicy.d.ts +19 -8
  27. package/lib/AWS-IAM-GroupPolicy.js +3 -1
  28. package/lib/AWS-Lambda-Function.d.ts +78 -62
  29. package/lib/AWS-Lambda-Function.js +3 -1
  30. package/lib/AWS-Lambda-Permission.d.ts +29 -19
  31. package/lib/AWS-Lambda-Permission.js +3 -1
  32. package/lib/AWS-MediaPackageV2-Channel.d.ts +32 -4
  33. package/lib/AWS-MediaPackageV2-Channel.js +2 -1
  34. package/lib/AWS-MediaPackageV2-ChannelGroup.d.ts +18 -3
  35. package/lib/AWS-MediaPackageV2-ChannelGroup.js +2 -1
  36. package/lib/AWS-MediaPackageV2-ChannelPolicy.d.ts +6 -4
  37. package/lib/AWS-MediaPackageV2-ChannelPolicy.js +2 -1
  38. package/lib/AWS-MediaPackageV2-OriginEndpoint.d.ts +4 -4
  39. package/lib/AWS-MediaPackageV2-OriginEndpointPolicy.d.ts +7 -5
  40. package/lib/AWS-MediaPackageV2-OriginEndpointPolicy.js +2 -1
  41. package/lib/AWS-RDS-DBCluster.d.ts +0 -4
  42. package/lib/AWS-RDS-DBInstance.d.ts +491 -181
  43. package/lib/AWS-RDS-DBInstance.js +5 -1
  44. package/lib/AWS-RDS-DBParameterGroup.d.ts +41 -15
  45. package/lib/AWS-RDS-DBParameterGroup.js +5 -1
  46. package/lib/AWS-RDS-DBSubnetGroup.d.ts +20 -8
  47. package/lib/AWS-RDS-DBSubnetGroup.js +2 -1
  48. package/lib/AWS-SageMaker-FeatureGroup.d.ts +25 -0
  49. package/lib/AWS-SecretsManager-Secret.d.ts +51 -32
  50. package/lib/AWS-SecretsManager-Secret.js +6 -1
  51. package/package.json +1 -1
@@ -1,7 +1,14 @@
1
1
  import { Resource as $Resource } from "@awboost/cfn-template-builder/template/resource";
2
2
  import type { ResourceOptions as $ResourceOptions } from "@awboost/cfn-template-builder/template";
3
3
  /**
4
- * Resource Type definition for AWS::EC2::LaunchTemplate
4
+ * Resource type definition for `AWS::EC2::LaunchTemplate`.
5
+ * Specifies the properties for creating a launch template.
6
+ The minimum required properties for specifying a launch template are as follows:
7
+ + You must specify at least one property for the launch template data.
8
+ + You do not need to specify a name for the launch template. If you do not specify a name, CFN creates the name for you.
9
+
10
+ A launch template can contain some or all of the configuration information to launch an instance. When you launch an instance using a launch template, instance properties that are not specified in the launch template use default values, except the ``ImageId`` property, which has no default value. If you do not specify an AMI ID for the launch template ``ImageId`` property, you must specify an AMI ID for the instance ``ImageId`` property.
11
+ For more information, see [Launch an instance from a launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) in the *Amazon EC2 User Guide*.
5
12
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html}
6
13
  */
7
14
  export type EC2LaunchTemplateProperties = {
@@ -14,8 +21,9 @@ export type EC2LaunchTemplateProperties = {
14
21
  */
15
22
  LaunchTemplateName?: string;
16
23
  /**
17
- * The tags to apply to the launch template on creation.
18
- */
24
+ * The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``.
25
+ To specify the tags for the resources that are created when an instance is launched, you must use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-tagspecifications).
26
+ */
19
27
  TagSpecifications?: LaunchTemplateTagSpecification[];
20
28
  /**
21
29
  * A description for the first version of the launch template.
@@ -27,31 +35,22 @@ export type EC2LaunchTemplateProperties = {
27
35
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#aws-resource-ec2-launchtemplate-return-values}
28
36
  */
29
37
  export type EC2LaunchTemplateAttributes = {
30
- /**
31
- * The default version of the launch template
32
- */
33
38
  DefaultVersionNumber: string;
34
- /**
35
- * The latest version of the launch template
36
- */
37
39
  LatestVersionNumber: string;
38
- /**
39
- * LaunchTemplate ID generated by service
40
- */
41
40
  LaunchTemplateId: string;
42
41
  };
43
42
  /**
44
43
  * Type definition for `AWS::EC2::LaunchTemplate.AcceleratorCount`.
45
- * The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferential chips) on an instance.
44
+ * The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance.
46
45
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-acceleratorcount.html}
47
46
  */
48
47
  export type AcceleratorCount = {
49
48
  /**
50
- * The maximum number of accelerators.
49
+ * The maximum number of accelerators. To specify no maximum limit, omit this parameter. To exclude accelerator-enabled instance types, set ``Max`` to ``0``.
51
50
  */
52
51
  Max?: number;
53
52
  /**
54
- * The minimum number of accelerators.
53
+ * The minimum number of accelerators. To specify no minimum limit, omit this parameter.
55
54
  */
56
55
  Min?: number;
57
56
  };
@@ -62,41 +61,42 @@ export type AcceleratorCount = {
62
61
  */
63
62
  export type AcceleratorTotalMemoryMiB = {
64
63
  /**
65
- * The maximum amount of accelerator memory, in MiB.
64
+ * The maximum amount of accelerator memory, in MiB. To specify no maximum limit, omit this parameter.
66
65
  */
67
66
  Max?: number;
68
67
  /**
69
- * The minimum amount of accelerator memory, in MiB.
68
+ * The minimum amount of accelerator memory, in MiB. To specify no minimum limit, omit this parameter.
70
69
  */
71
70
  Min?: number;
72
71
  };
73
72
  /**
74
73
  * Type definition for `AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps`.
75
- * The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps.
74
+ * The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*.
76
75
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-baselineebsbandwidthmbps.html}
77
76
  */
78
77
  export type BaselineEbsBandwidthMbps = {
79
78
  /**
80
- * The maximum baseline bandwidth, in Mbps.
79
+ * The maximum baseline bandwidth, in Mbps. To specify no maximum limit, omit this parameter.
81
80
  */
82
81
  Max?: number;
83
82
  /**
84
- * The minimum baseline bandwidth, in Mbps.
83
+ * The minimum baseline bandwidth, in Mbps. To specify no minimum limit, omit this parameter.
85
84
  */
86
85
  Min?: number;
87
86
  };
88
87
  /**
89
88
  * Type definition for `AWS::EC2::LaunchTemplate.BlockDeviceMapping`.
90
- * Information about a block device mapping for an Amazon EC2 launch template.
89
+ * Specifies a block device mapping for a launch template. You must specify ``DeviceName`` plus exactly one of the following properties: ``Ebs``, ``NoDevice``, or ``VirtualName``.
90
+ ``BlockDeviceMapping`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
91
91
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html}
92
92
  */
93
93
  export type BlockDeviceMapping = {
94
94
  /**
95
- * The user data to make available to the instance.
95
+ * The device name (for example, /dev/sdh or xvdh).
96
96
  */
97
97
  DeviceName?: string;
98
98
  /**
99
- * Parameters for a block device for an EBS volume in an Amazon EC2 launch template.
99
+ * Parameters used to automatically set up EBS volumes when the instance is launched.
100
100
  */
101
101
  Ebs?: Ebs;
102
102
  /**
@@ -104,28 +104,32 @@ export type BlockDeviceMapping = {
104
104
  */
105
105
  NoDevice?: string;
106
106
  /**
107
- * The virtual device name (ephemeralN).
107
+ * The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1. The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume.
108
108
  */
109
109
  VirtualName?: string;
110
110
  };
111
111
  /**
112
112
  * Type definition for `AWS::EC2::LaunchTemplate.CapacityReservationSpecification`.
113
- * Specifies an instance's Capacity Reservation targeting option.
113
+ * Specifies an instance's Capacity Reservation targeting option. You can specify only one option at a time.
114
+ ``CapacityReservationSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
114
115
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationspecification.html}
115
116
  */
116
117
  export type CapacityReservationSpecification = {
117
118
  /**
118
- * Indicates the instance's Capacity Reservation preferences.
119
- */
119
+ * Indicates the instance's Capacity Reservation preferences. Possible preferences include:
120
+ + ``open`` - The instance can run in any ``open`` Capacity Reservation that has matching attributes (instance type, platform, Availability Zone).
121
+ + ``none`` - The instance avoids running in a Capacity Reservation even if one is available. The instance runs in On-Demand capacity.
122
+ */
120
123
  CapacityReservationPreference?: string;
121
124
  /**
122
- * Specifies a target Capacity Reservation.
125
+ * Information about the target Capacity Reservation or Capacity Reservation group.
123
126
  */
124
127
  CapacityReservationTarget?: CapacityReservationTarget;
125
128
  };
126
129
  /**
127
130
  * Type definition for `AWS::EC2::LaunchTemplate.CapacityReservationTarget`.
128
131
  * Specifies a target Capacity Reservation.
132
+ ``CapacityReservationTarget`` is a property of the [Amazon EC2 LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html) property type.
129
133
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-capacityreservationtarget.html}
130
134
  */
131
135
  export type CapacityReservationTarget = {
@@ -140,31 +144,32 @@ export type CapacityReservationTarget = {
140
144
  };
141
145
  /**
142
146
  * Type definition for `AWS::EC2::LaunchTemplate.ConnectionTrackingSpecification`.
143
- * Allows customer to specify Connection Tracking options
147
+ * A security group connection tracking specification that enables you to set the idle timeout for connection tracking on an Elastic network interface. For more information, see [Connection tracking timeouts](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html#connection-tracking-timeouts) in the *Amazon Elastic Compute Cloud User Guide*.
144
148
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-connectiontrackingspecification.html}
145
149
  */
146
150
  export type ConnectionTrackingSpecification = {
147
151
  /**
148
- * Integer value for TCP Established Timeout
152
+ * Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 432000 seconds. Recommended: Less than 432000 seconds.
149
153
  */
150
154
  TcpEstablishedTimeout?: number;
151
155
  /**
152
- * Integer value for UDP Stream Timeout
156
+ * Timeout (in seconds) for idle UDP flows classified as streams which have seen more than one request-response transaction. Min: 60 seconds. Max: 180 seconds (3 minutes). Default: 180 seconds.
153
157
  */
154
158
  UdpStreamTimeout?: number;
155
159
  /**
156
- * Integer value for UDP Timeout
160
+ * Timeout (in seconds) for idle UDP flows that have seen traffic only in a single direction or a single request-response transaction. Min: 30 seconds. Max: 60 seconds. Default: 30 seconds.
157
161
  */
158
162
  UdpTimeout?: number;
159
163
  };
160
164
  /**
161
165
  * Type definition for `AWS::EC2::LaunchTemplate.CpuOptions`.
162
- * specifies the CPU options for an instance.
166
+ * Specifies the CPU options for an instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *User Guide*.
167
+ ``CpuOptions`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
163
168
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-cpuoptions.html}
164
169
  */
165
170
  export type CpuOptions = {
166
171
  /**
167
- * Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported with M6a, R6a, and C6a instance types only.
172
+ * Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported with M6a, R6a, and C6a instance types only. For more information, see [AMD SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html).
168
173
  */
169
174
  AmdSevSnp?: "enabled" | "disabled";
170
175
  /**
@@ -172,24 +177,27 @@ export type CpuOptions = {
172
177
  */
173
178
  CoreCount?: number;
174
179
  /**
175
- * The number of threads per CPU core. To disable multithreading for the instance, specify a value of 1. Otherwise, specify the default value of 2.
180
+ * The number of threads per CPU core. To disable multithreading for the instance, specify a value of ``1``. Otherwise, specify the default value of ``2``.
176
181
  */
177
182
  ThreadsPerCore?: number;
178
183
  };
179
184
  /**
180
185
  * Type definition for `AWS::EC2::LaunchTemplate.CreditSpecification`.
181
- * The user data to make available to the instance.
186
+ * Specifies the credit option for CPU usage of a T2, T3, or T3a instance.
187
+ ``CreditSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
182
188
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-creditspecification.html}
183
189
  */
184
190
  export type CreditSpecification = {
185
191
  /**
186
- * The user data to make available to the instance.
187
- */
192
+ * The credit option for CPU usage of a T instance.
193
+ Valid values: ``standard`` | ``unlimited``
194
+ */
188
195
  CpuCredits?: string;
189
196
  };
190
197
  /**
191
198
  * Type definition for `AWS::EC2::LaunchTemplate.Ebs`.
192
199
  * Parameters for a block device for an EBS volume in an Amazon EC2 launch template.
200
+ ``Ebs`` is a property of [AWS::EC2::LaunchTemplate BlockDeviceMapping](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-blockdevicemapping.html).
193
201
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ebs.html}
194
202
  */
195
203
  export type Ebs = {
@@ -202,11 +210,18 @@ export type Ebs = {
202
210
  */
203
211
  Encrypted?: boolean;
204
212
  /**
205
- * The number of I/O operations per second (IOPS).
206
- */
213
+ * The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.
214
+ The following are the supported values for each volume type:
215
+ + ``gp3``: 3,000 - 16,000 IOPS
216
+ + ``io1``: 100 - 64,000 IOPS
217
+ + ``io2``: 100 - 256,000 IOPS
218
+
219
+ For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances). On other instances, you can achieve performance up to 32,000 IOPS.
220
+ This parameter is supported for ``io1``, ``io2``, and ``gp3`` volumes only.
221
+ */
207
222
  Iops?: number;
208
223
  /**
209
- * The ARN of the symmetric AWS Key Management Service (AWS KMS) CMK used for encryption.
224
+ * The ARN of the symmetric KMSlong (KMS) CMK used for encryption.
210
225
  */
211
226
  KmsKeyId?: string;
212
227
  /**
@@ -214,52 +229,60 @@ export type Ebs = {
214
229
  */
215
230
  SnapshotId?: string;
216
231
  /**
217
- * The throughput to provision for a gp3 volume, with a maximum of 1,000 MiB/s.
218
- */
232
+ * The throughput to provision for a ``gp3`` volume, with a maximum of 1,000 MiB/s.
233
+ Valid Range: Minimum value of 125. Maximum value of 1000.
234
+ */
219
235
  Throughput?: number;
220
236
  /**
221
- * The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size.
222
- */
237
+ * The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type:
238
+ + ``gp2`` and ``gp3``: 1 - 16,384 GiB
239
+ + ``io1``: 4 - 16,384 GiB
240
+ + ``io2``: 4 - 65,536 GiB
241
+ + ``st1`` and ``sc1``: 125 - 16,384 GiB
242
+ + ``standard``: 1 - 1024 GiB
243
+ */
223
244
  VolumeSize?: number;
224
245
  /**
225
- * The volume type.
246
+ * The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*.
226
247
  */
227
248
  VolumeType?: string;
228
249
  };
229
250
  /**
230
251
  * Type definition for `AWS::EC2::LaunchTemplate.ElasticGpuSpecification`.
231
- * Specifies a specification for an Elastic GPU for launch template.
252
+ * Specifies a specification for an Elastic GPU for an Amazon EC2 launch template.
253
+ ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
232
254
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-elasticgpuspecification.html}
233
255
  */
234
256
  export type ElasticGpuSpecification = {
235
257
  /**
236
- * The type of Elastic Graphics accelerator.
258
+ * The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*.
237
259
  */
238
260
  Type?: string;
239
261
  };
240
262
  /**
241
263
  * Type definition for `AWS::EC2::LaunchTemplate.EnaSrdSpecification`.
242
- * Allows customer to specify ENA-SRD options
264
+ * ENA Express uses AWS Scalable Reliable Datagram (SRD) technology to increase the maximum bandwidth used per stream and minimize tail latency of network traffic between EC2 instances. With ENA Express, you can communicate between two EC2 instances in the same subnet within the same account, or in different accounts. Both sending and receiving instances must have ENA Express enabled.
265
+ To improve the reliability of network packet delivery, ENA Express reorders network packets on the receiving end by default. However, some UDP-based applications are designed to handle network packets that are out of order to reduce the overhead for packet delivery at the network layer. When ENA Express is enabled, you can specify whether UDP network traffic uses it.
243
266
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-enasrdspecification.html}
244
267
  */
245
268
  export type EnaSrdSpecification = {
246
269
  /**
247
- * Enables TCP ENA-SRD
270
+ * Indicates whether ENA Express is enabled for the network interface.
248
271
  */
249
272
  EnaSrdEnabled?: boolean;
250
273
  /**
251
- * Allows customer to specify ENA-SRD (UDP) options
274
+ * Configures ENA Express for UDP network traffic.
252
275
  */
253
276
  EnaSrdUdpSpecification?: EnaSrdUdpSpecification;
254
277
  };
255
278
  /**
256
279
  * Type definition for `AWS::EC2::LaunchTemplate.EnaSrdUdpSpecification`.
257
- * Allows customer to specify ENA-SRD (UDP) options
280
+ * ENA Express is compatible with both TCP and UDP transport protocols. When it's enabled, TCP traffic automatically uses it. However, some UDP-based applications are designed to handle network packets that are out of order, without a need for retransmission, such as live video broadcasting or other near-real-time applications. For UDP traffic, you can specify whether to use ENA Express, based on your application environment needs.
258
281
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-enasrdudpspecification.html}
259
282
  */
260
283
  export type EnaSrdUdpSpecification = {
261
284
  /**
262
- * Enables UDP ENA-SRD
285
+ * Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express.
263
286
  */
264
287
  EnaSrdUdpEnabled?: boolean;
265
288
  };
@@ -270,24 +293,28 @@ export type EnaSrdUdpSpecification = {
270
293
  */
271
294
  export type EnclaveOptions = {
272
295
  /**
273
- * If this parameter is set to true, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves.
296
+ * If this parameter is set to ``true``, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves.
274
297
  */
275
298
  Enabled?: boolean;
276
299
  };
277
300
  /**
278
301
  * Type definition for `AWS::EC2::LaunchTemplate.HibernationOptions`.
279
- * Specifies whether your instance is configured for hibernation.
302
+ * Specifies whether your instance is configured for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites). For more information, see [Hibernate Your Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon EC2 User Guide*.
303
+ ``HibernationOptions`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
280
304
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-hibernationoptions.html}
281
305
  */
282
306
  export type HibernationOptions = {
283
307
  /**
284
- * TIf you set this parameter to true, the instance is enabled for hibernation.
285
- */
308
+ * If you set this parameter to ``true``, the instance is enabled for hibernation.
309
+ Default: ``false``
310
+ */
286
311
  Configured?: boolean;
287
312
  };
288
313
  /**
289
314
  * Type definition for `AWS::EC2::LaunchTemplate.IamInstanceProfile`.
290
- * Specifies an IAM instance profile, which is a container for an IAM role for your instance.
315
+ * Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances.
316
+ If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both.
317
+ ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
291
318
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-iaminstanceprofile.html}
292
319
  */
293
320
  export type IamInstanceProfile = {
@@ -302,7 +329,8 @@ export type IamInstanceProfile = {
302
329
  };
303
330
  /**
304
331
  * Type definition for `AWS::EC2::LaunchTemplate.InstanceMarketOptions`.
305
- * The market (purchasing) option for the instances.
332
+ * Specifies the market (purchasing) option for an instance.
333
+ ``InstanceMarketOptions`` is a property of the [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
306
334
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-instancemarketoptions.html}
307
335
  */
308
336
  export type InstanceMarketOptions = {
@@ -311,104 +339,196 @@ export type InstanceMarketOptions = {
311
339
  */
312
340
  MarketType?: string;
313
341
  /**
314
- * Specifies options for Spot Instances.
342
+ * The options for Spot Instances.
315
343
  */
316
344
  SpotOptions?: SpotOptions;
317
345
  };
318
346
  /**
319
347
  * Type definition for `AWS::EC2::LaunchTemplate.InstanceRequirements`.
320
- * The attributes for the instance types.
348
+ * The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.
349
+ You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.
350
+ When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.
351
+ To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:
352
+ + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.
353
+ + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.
354
+
355
+ If you specify ``InstanceReq
321
356
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-instancerequirements.html}
322
357
  */
323
358
  export type InstanceRequirements = {
324
359
  /**
325
- * The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferential chips) on an instance.
326
- */
360
+ * The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance.
361
+ To exclude accelerator-enabled instance types, set ``Max`` to ``0``.
362
+ Default: No minimum or maximum limits
363
+ */
327
364
  AcceleratorCount?: AcceleratorCount;
328
365
  /**
329
- * Indicates whether instance types must have accelerators by specific manufacturers.
330
- */
366
+ * Indicates whether instance types must have accelerators by specific manufacturers.
367
+ + For instance types with AWS devices, specify ``amazon-web-services``.
368
+ + For instance types with AMD devices, specify ``amd``.
369
+ + For instance types with Habana devices, specify ``habana``.
370
+ + For instance types with NVIDIA devices, specify ``nvidia``.
371
+ + For instance types with Xilinx devices, specify ``xilinx``.
372
+
373
+ Default: Any manufacturer
374
+ */
331
375
  AcceleratorManufacturers?: string[];
332
376
  /**
333
- * The accelerators that must be on the instance type.
334
- */
377
+ * The accelerators that must be on the instance type.
378
+ + For instance types with NVIDIA A10G GPUs, specify ``a10g``.
379
+ + For instance types with NVIDIA A100 GPUs, specify ``a100``.
380
+ + For instance types with NVIDIA H100 GPUs, specify ``h100``.
381
+ + For instance types with AWS Inferentia chips, specify ``inferentia``.
382
+ + For instance types with NVIDIA GRID K520 GPUs, specify ``k520``.
383
+ + For instance types with NVIDIA K80 GPUs, specify ``k80``.
384
+ + For instance types with NVIDIA M60 GPUs, specify ``m60``.
385
+ + For instance types with AMD Radeon Pro V520 GPUs, specify ``radeon-pro-v520``.
386
+ + For instance types with NVIDIA T4 GPUs, specify ``t4``.
387
+ + For instance types with NVIDIA T4G GPUs, specify ``t4g``.
388
+ + For instance types with Xilinx VU9P FPGAs, specify ``vu9p``.
389
+ + For instance types with NVIDIA V100 GPUs, specify ``v100``.
390
+
391
+ Default: Any accelerator
392
+ */
335
393
  AcceleratorNames?: string[];
336
394
  /**
337
- * The minimum and maximum amount of total accelerator memory, in MiB.
338
- */
395
+ * The minimum and maximum amount of total accelerator memory, in MiB.
396
+ Default: No minimum or maximum limits
397
+ */
339
398
  AcceleratorTotalMemoryMiB?: AcceleratorTotalMemoryMiB;
340
399
  /**
341
- * The accelerator types that must be on the instance type.
342
- */
400
+ * The accelerator types that must be on the instance type.
401
+ + For instance types with GPU accelerators, specify ``gpu``.
402
+ + For instance types with FPGA accelerators, specify ``fpga``.
403
+ + For instance types with inference accelerators, specify ``inference``.
404
+
405
+ Default: Any accelerator type
406
+ */
343
407
  AcceleratorTypes?: string[];
344
408
  /**
345
- * The instance types to apply your specified attributes against.
346
- */
409
+ * The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes.
410
+ You can use strings with one or more wild cards, represented by an asterisk (``*``), to allow an instance type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``.
411
+ For example, if you specify ``c5*``,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types.
412
+ If you specify ``AllowedInstanceTypes``, you can't specify ``ExcludedInstanceTypes``.
413
+ Default: All instance types
414
+ */
347
415
  AllowedInstanceTypes?: string[];
348
416
  /**
349
- * Indicates whether bare metal instance types must be included, excluded, or required.
350
- */
417
+ * Indicates whether bare metal instance types must be included, excluded, or required.
418
+ + To include bare metal instance types, specify ``included``.
419
+ + To require only bare metal instance types, specify ``required``.
420
+ + To exclude bare metal instance types, specify ``excluded``.
421
+
422
+ Default: ``excluded``
423
+ */
351
424
  BareMetal?: string;
352
425
  /**
353
- * The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps.
354
- */
426
+ * The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*.
427
+ Default: No minimum or maximum limits
428
+ */
355
429
  BaselineEbsBandwidthMbps?: BaselineEbsBandwidthMbps;
430
+ /**
431
+ * Indicates whether burstable performance T instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html).
432
+ + To include burstable performance instance types, specify ``included``.
433
+ + To require only burstable performance instance types, specify ``required``.
434
+ + To exclude burstable performance instance types, specify ``excluded``.
435
+
436
+ Default: ``excluded``
437
+ */
356
438
  BurstablePerformance?: string;
357
439
  /**
358
- * The CPU manufacturers to include.
359
- */
440
+ * The CPU manufacturers to include.
441
+ + For instance types with Intel CPUs, specify ``intel``.
442
+ + For instance types with AMD CPUs, specify ``amd``.
443
+ + For instance types with AWS CPUs, specify ``amazon-web-services``.
444
+
445
+ Don't confuse the CPU manufacturer with the CPU architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template.
446
+ Default: Any manufacturer
447
+ */
360
448
  CpuManufacturers?: string[];
361
449
  /**
362
- * The instance types to exclude.
363
- */
450
+ * The instance types to exclude.
451
+ You can use strings with one or more wild cards, represented by an asterisk (``*``), to exclude an instance type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``.
452
+ For example, if you specify ``c5*``,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types.
453
+ If you specify ``ExcludedInstanceTypes``, you can't specify ``AllowedInstanceTypes``.
454
+ Default: No excluded instance types
455
+ */
364
456
  ExcludedInstanceTypes?: string[];
365
457
  /**
366
- * Indicates whether current or previous generation instance types are included.
367
- */
458
+ * Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Current generation instance types are typically the latest two to three generations in each instance family. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*.
459
+ For current generation instance types, specify ``current``.
460
+ For previous generation instance types, specify ``previous``.
461
+ Default: Current and previous generation instance types
462
+ */
368
463
  InstanceGenerations?: string[];
369
464
  /**
370
- * The user data to make available to the instance.
371
- */
465
+ * Indicates whether instance types with instance store volumes are included, excluded, or required. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*.
466
+ + To include instance types with instance store volumes, specify ``included``.
467
+ + To require only instance types with instance store volumes, specify ``required``.
468
+ + To exclude instance types with instance store volumes, specify ``excluded``.
469
+
470
+ Default: ``included``
471
+ */
372
472
  LocalStorage?: string;
373
473
  /**
374
- * The type of local storage that is required.
375
- */
474
+ * The type of local storage that is required.
475
+ + For instance types with hard disk drive (HDD) storage, specify ``hdd``.
476
+ + For instance types with solid state drive (SSD) storage, specify ``ssd``.
477
+
478
+ Default: ``hdd`` and ``ssd``
479
+ */
376
480
  LocalStorageTypes?: string[];
377
481
  /**
378
- * The price protection threshold for Spot Instances.
379
- */
482
+ * [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.
483
+ The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
484
+ To indicate no price protection threshold, specify a high value, such as ``999999``.
485
+ If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc
486
+ */
380
487
  MaxSpotPriceAsPercentageOfOptimalOnDemandPrice?: number;
381
488
  /**
382
- * The minimum and maximum amount of memory per vCPU, in GiB.
383
- */
489
+ * The minimum and maximum amount of memory per vCPU, in GiB.
490
+ Default: No minimum or maximum limits
491
+ */
384
492
  MemoryGiBPerVCpu?: MemoryGiBPerVCpu;
385
493
  /**
386
494
  * The minimum and maximum amount of memory, in MiB.
387
495
  */
388
496
  MemoryMiB?: MemoryMiB;
389
497
  /**
390
- * The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).
391
- */
498
+ * The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).
499
+ Default: No minimum or maximum limits
500
+ */
392
501
  NetworkBandwidthGbps?: NetworkBandwidthGbps;
393
502
  /**
394
- * TThe minimum and maximum number of network interfaces.
395
- */
503
+ * The minimum and maximum number of network interfaces.
504
+ Default: No minimum or maximum limits
505
+ */
396
506
  NetworkInterfaceCount?: NetworkInterfaceCount;
397
507
  /**
398
- * The price protection threshold for On-Demand Instances.
399
- */
508
+ * [Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.
509
+ The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
510
+ To turn off price protection, specify a high value, such as ``999999``.
511
+ This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).
512
+ If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-
513
+ */
400
514
  OnDemandMaxPricePercentageOverLowestPrice?: number;
401
515
  /**
402
- * Indicates whether instance types must support hibernation for On-Demand Instances.
403
- */
516
+ * Indicates whether instance types must support hibernation for On-Demand Instances.
517
+ This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html).
518
+ Default: ``false``
519
+ */
404
520
  RequireHibernateSupport?: boolean;
405
521
  /**
406
- * The price protection threshold for Spot Instances.
407
- */
522
+ * [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold.
523
+ The parameter accepts an integer, which Amazon EC2 interprets as a percentage.
524
+ To indicate no price protection threshold, specify a high value, such as ``999999``.
525
+ If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i
526
+ */
408
527
  SpotMaxPricePercentageOverLowestPrice?: number;
409
528
  /**
410
- * The minimum and maximum amount of total local storage, in GB.
411
- */
529
+ * The minimum and maximum amount of total local storage, in GB.
530
+ Default: No minimum or maximum limits
531
+ */
412
532
  TotalLocalStorageGB?: TotalLocalStorageGB;
413
533
  /**
414
534
  * The minimum and maximum number of vCPUs.
@@ -418,33 +538,43 @@ export type InstanceRequirements = {
418
538
  /**
419
539
  * Type definition for `AWS::EC2::LaunchTemplate.Ipv4PrefixSpecification`.
420
540
  * Specifies an IPv4 prefix for a network interface.
541
+ ``Ipv4PrefixSpecification`` is a property of [AWS::EC2::LaunchTemplate NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html).
421
542
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv4prefixspecification.html}
422
543
  */
423
544
  export type Ipv4PrefixSpecification = {
424
545
  /**
425
- * The IPv4 prefix.
546
+ * The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*.
426
547
  */
427
548
  Ipv4Prefix?: string;
428
549
  };
429
550
  /**
430
551
  * Type definition for `AWS::EC2::LaunchTemplate.Ipv6Add`.
431
- * Specifies an IPv6 address.
552
+ * Specifies an IPv6 address in an Amazon EC2 launch template.
553
+ ``Ipv6Add`` is a property of [AWS::EC2::LaunchTemplate NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html).
432
554
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6add.html}
433
555
  */
434
556
  export type Ipv6Add = {
557
+ /**
558
+ * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You can't use this option if you're specifying a number of IPv6 addresses.
559
+ */
435
560
  Ipv6Address?: string;
436
561
  };
437
562
  /**
438
563
  * Type definition for `AWS::EC2::LaunchTemplate.Ipv6PrefixSpecification`.
439
564
  * Specifies an IPv6 prefix for a network interface.
565
+ ``Ipv6PrefixSpecification`` is a property of [AWS::EC2::LaunchTemplate NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html).
440
566
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ipv6prefixspecification.html}
441
567
  */
442
568
  export type Ipv6PrefixSpecification = {
569
+ /**
570
+ * The IPv6 prefix.
571
+ */
443
572
  Ipv6Prefix?: string;
444
573
  };
445
574
  /**
446
575
  * Type definition for `AWS::EC2::LaunchTemplate.LaunchTemplateData`.
447
- * The information for the launch template.
576
+ * The information to include in the launch template.
577
+ You must specify at least one parameter for the launch template data.
448
578
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html}
449
579
  */
450
580
  export type LaunchTemplateData = {
@@ -453,73 +583,98 @@ export type LaunchTemplateData = {
453
583
  */
454
584
  BlockDeviceMappings?: BlockDeviceMapping[];
455
585
  /**
456
- * Specifies an instance's Capacity Reservation targeting option.
586
+ * The Capacity Reservation targeting option. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to ``open``, which enables it to run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone).
457
587
  */
458
588
  CapacityReservationSpecification?: CapacityReservationSpecification;
459
589
  /**
460
- * specifies the CPU options for an instance.
590
+ * The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*.
461
591
  */
462
592
  CpuOptions?: CpuOptions;
463
593
  /**
464
- * The user data to make available to the instance.
594
+ * The credit option for CPU usage of the instance. Valid only for T instances.
465
595
  */
466
596
  CreditSpecification?: CreditSpecification;
467
597
  /**
468
- * Indicates whether to enable the instance for stop protection.
598
+ * Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*.
469
599
  */
470
600
  DisableApiStop?: boolean;
471
601
  /**
472
- * If you set this parameter to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API.
602
+ * If you set this parameter to ``true``, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html). Alternatively, if you set ``InstanceInitiatedShutdownBehavior`` to ``terminate``, you can terminate the instance by running the shutdown command from the instance.
473
603
  */
474
604
  DisableApiTermination?: boolean;
475
605
  /**
476
- * Indicates whether the instance is optimized for Amazon EBS I/O.
606
+ * Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.
477
607
  */
478
608
  EbsOptimized?: boolean;
479
609
  /**
480
- * An elastic GPU to associate with the instance.
481
- */
610
+ * Deprecated.
611
+ Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.
612
+ */
482
613
  ElasticGpuSpecifications?: ElasticGpuSpecification[];
483
614
  /**
484
- * The elastic inference accelerator for the instance.
485
- */
615
+ * An elastic inference accelerator to associate with the instance. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads.
616
+ You cannot specify accelerators from different generations in the same request.
617
+ Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.
618
+ */
486
619
  ElasticInferenceAccelerators?: LaunchTemplateElasticInferenceAccelerator[];
487
620
  /**
488
- * Indicates whether the instance is enabled for AWS Nitro Enclaves.
489
- */
621
+ * Indicates whether the instance is enabled for AWS Nitro Enclaves. For more information, see [What is Nitro Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) in the *Nitro Enclaves User Guide*.
622
+ You can't enable AWS Nitro Enclaves and hibernation on the same instance.
623
+ */
490
624
  EnclaveOptions?: EnclaveOptions;
491
625
  /**
492
- * Specifies whether your instance is configured for hibernation.
626
+ * Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*.
493
627
  */
494
628
  HibernationOptions?: HibernationOptions;
495
629
  /**
496
- * Specifies an IAM instance profile, which is a container for an IAM role for your instance.
630
+ * The name or Amazon Resource Name (ARN) of an IAM instance profile.
497
631
  */
498
632
  IamInstanceProfile?: IamInstanceProfile;
499
633
  /**
500
- * The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch.
501
- */
634
+ * The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch.
635
+ Valid formats:
636
+ + ``ami-17characters00000``
637
+ + ``resolve:ssm:parameter-name``
638
+ + ``resolve:ssm:parameter-name:version-number``
639
+ + ``resolve:ssm:parameter-name:label``
640
+
641
+ For more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*.
642
+ */
502
643
  ImageId?: string;
503
644
  /**
504
- * Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).
505
- */
645
+ * Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown).
646
+ Default: ``stop``
647
+ */
506
648
  InstanceInitiatedShutdownBehavior?: string;
507
649
  /**
508
650
  * The market (purchasing) option for the instances.
509
651
  */
510
652
  InstanceMarketOptions?: InstanceMarketOptions;
511
653
  /**
512
- * The attributes for the instance types.
513
- */
654
+ * The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.
655
+ You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.
656
+ When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.
657
+ To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:
658
+ + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.
659
+ + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.
660
+
661
+ If you specify ``InstanceReq
662
+ */
514
663
  InstanceRequirements?: InstanceRequirements;
664
+ /**
665
+ * The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*.
666
+ If you specify ``InstanceType``, you can't specify ``InstanceRequirements``.
667
+ */
515
668
  InstanceType?: string;
516
669
  /**
517
- * The ID of the kernel.
518
- */
670
+ * The ID of the kernel.
671
+ We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User Provided Kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*.
672
+ */
519
673
  KernelId?: string;
520
674
  /**
521
- * The name of the EC2 key pair
522
- */
675
+ * The name of the key pair. You can create a key pair using [CreateKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html) or [ImportKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html).
676
+ If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.
677
+ */
523
678
  KeyName?: string;
524
679
  /**
525
680
  * The license configurations.
@@ -530,66 +685,76 @@ export type LaunchTemplateData = {
530
685
  */
531
686
  MaintenanceOptions?: MaintenanceOptions;
532
687
  /**
533
- * The metadata options for the instance.
688
+ * The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*.
534
689
  */
535
690
  MetadataOptions?: MetadataOptions;
536
691
  /**
537
- * Specifies whether detailed monitoring is enabled for an instance.
692
+ * The monitoring for the instance.
538
693
  */
539
694
  Monitoring?: Monitoring;
540
695
  /**
541
- * If you specify a network interface, you must specify any security groups and subnets as part of the network interface.
696
+ * One or more network interfaces. If you specify a network interface, you must specify any security groups and subnets as part of the network interface.
542
697
  */
543
698
  NetworkInterfaces?: NetworkInterface[];
544
699
  /**
545
- * Specifies the placement of an instance.
700
+ * The placement for the instance.
546
701
  */
547
702
  Placement?: Placement;
548
703
  /**
549
- * Describes the options for instance hostnames.
704
+ * The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.
550
705
  */
551
706
  PrivateDnsNameOptions?: PrivateDnsNameOptions;
707
+ /**
708
+ * The ID of the RAM disk.
709
+ We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*.
710
+ */
552
711
  RamDiskId?: string;
553
712
  /**
554
- * One or more security group IDs.
713
+ * The IDs of the security groups. You can specify the IDs of existing security groups and references to resources created by the stack template.
555
714
  */
556
715
  SecurityGroupIds?: string[];
557
716
  /**
558
- * One or more security group names.
717
+ * One or more security group names. For a nondefault VPC, you must use security group IDs instead.
559
718
  */
560
719
  SecurityGroups?: string[];
561
720
  /**
562
- * The tags to apply to the resources that are created during instance launch.
563
- */
721
+ * The tags to apply to the resources that are created during instance launch.
722
+ To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).
723
+ To tag the launch template itself, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-tagspecifications).
724
+ */
564
725
  TagSpecifications?: TagSpecification[];
565
726
  /**
566
- * The user data to make available to the instance.
567
- */
727
+ * The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*.
728
+ If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*.
729
+ */
568
730
  UserData?: string;
569
731
  };
570
732
  /**
571
733
  * Type definition for `AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator`.
572
734
  * Specifies an elastic inference accelerator.
735
+ ``LaunchTemplateElasticInferenceAccelerator`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
573
736
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplateelasticinferenceaccelerator.html}
574
737
  */
575
738
  export type LaunchTemplateElasticInferenceAccelerator = {
576
739
  /**
577
- * The number of elastic inference accelerators to attach to the instance.
578
- */
740
+ * The number of elastic inference accelerators to attach to the instance.
741
+ Default: 1
742
+ */
579
743
  Count?: number;
580
744
  /**
581
- * The type of elastic inference accelerator.
745
+ * The type of elastic inference accelerator. The possible values are eia1.medium, eia1.large, and eia1.xlarge.
582
746
  */
583
747
  Type?: string;
584
748
  };
585
749
  /**
586
750
  * Type definition for `AWS::EC2::LaunchTemplate.LaunchTemplateTagSpecification`.
587
751
  * Specifies the tags to apply to the launch template during creation.
752
+ ``LaunchTemplateTagSpecification`` is a property of [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html).
588
753
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatetagspecification.html}
589
754
  */
590
755
  export type LaunchTemplateTagSpecification = {
591
756
  /**
592
- * The type of resource to tag.
757
+ * The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``.
593
758
  */
594
759
  ResourceType?: string;
595
760
  /**
@@ -600,6 +765,7 @@ export type LaunchTemplateTagSpecification = {
600
765
  /**
601
766
  * Type definition for `AWS::EC2::LaunchTemplate.LicenseSpecification`.
602
767
  * Specifies a license configuration for an instance.
768
+ ``LicenseSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
603
769
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-licensespecification.html}
604
770
  */
605
771
  export type LicenseSpecification = {
@@ -618,9 +784,6 @@ export type MaintenanceOptions = {
618
784
  * Disables the automatic recovery behavior of your instance or sets it to default.
619
785
  */
620
786
  AutoRecovery?: string;
621
- /**
622
- * Disables the automatic reboot-migration behavior of your instance or sets it to default.
623
- */
624
787
  RebootMigration?: string;
625
788
  };
626
789
  /**
@@ -630,11 +793,11 @@ export type MaintenanceOptions = {
630
793
  */
631
794
  export type MemoryGiBPerVCpu = {
632
795
  /**
633
- * The maximum amount of memory per vCPU, in GiB.
796
+ * The maximum amount of memory per vCPU, in GiB. To specify no maximum limit, omit this parameter.
634
797
  */
635
798
  Max?: number;
636
799
  /**
637
- * TThe minimum amount of memory per vCPU, in GiB.
800
+ * The minimum amount of memory per vCPU, in GiB. To specify no minimum limit, omit this parameter.
638
801
  */
639
802
  Min?: number;
640
803
  };
@@ -645,83 +808,98 @@ export type MemoryGiBPerVCpu = {
645
808
  */
646
809
  export type MemoryMiB = {
647
810
  /**
648
- * The maximum amount of memory, in MiB.
811
+ * The maximum amount of memory, in MiB. To specify no maximum limit, omit this parameter.
649
812
  */
650
813
  Max?: number;
651
814
  /**
652
- * The minimum amount of memory, in MiB.
815
+ * The minimum amount of memory, in MiB. To specify no minimum limit, specify ``0``.
653
816
  */
654
817
  Min?: number;
655
818
  };
656
819
  /**
657
820
  * Type definition for `AWS::EC2::LaunchTemplate.MetadataOptions`.
658
- * The metadata options for the instance.
821
+ * The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon EC2 User Guide*.
822
+ ``MetadataOptions`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
659
823
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-metadataoptions.html}
660
824
  */
661
825
  export type MetadataOptions = {
662
826
  /**
663
- * Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is enabled.
664
- */
827
+ * Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is ``enabled``.
828
+ If you specify a value of ``disabled``, you will not be able to access your instance metadata.
829
+ */
665
830
  HttpEndpoint?: string;
666
831
  /**
667
- * Enables or disables the IPv6 endpoint for the instance metadata service.
668
- */
832
+ * Enables or disables the IPv6 endpoint for the instance metadata service.
833
+ Default: ``disabled``
834
+ */
669
835
  HttpProtocolIpv6?: string;
670
836
  /**
671
- * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel.
672
- */
837
+ * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel.
838
+ Default: ``1``
839
+ Possible values: Integers from 1 to 64
840
+ */
673
841
  HttpPutResponseHopLimit?: number;
674
842
  /**
675
- * IMDSv2 uses token-backed sessions.
676
- */
843
+ * Indicates whether IMDSv2 is required.
844
+ + ``optional`` - IMDSv2 is optional. You can choose whether to send a session token in your instance metadata retrieval requests. If you retrieve IAM role credentials without a session token, you receive the IMDSv1 role credentials. If you retrieve IAM role credentials using a valid session token, you receive the IMDSv2 role credentials.
845
+ + ``required`` - IMDSv2 is required. You must send a session token in your instance metadata retrieval requests. With this option, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available.
846
+
847
+ Default: If the value of ``ImdsSupport`` for the Amazon Machine Image (AMI) for your instance is ``v2.0``, the default is ``required``.
848
+ */
677
849
  HttpTokens?: string;
678
850
  /**
679
- * Set to enabled to allow access to instance tags from the instance metadata.
680
- */
851
+ * Set to ``enabled`` to allow access to instance tags from the instance metadata. Set to ``disabled`` to turn off access to instance tags from the instance metadata. For more information, see [Work with instance tags using the instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS).
852
+ Default: ``disabled``
853
+ */
681
854
  InstanceMetadataTags?: string;
682
855
  };
683
856
  /**
684
857
  * Type definition for `AWS::EC2::LaunchTemplate.Monitoring`.
685
- * Specifies whether detailed monitoring is enabled for an instance.
858
+ * Specifies whether detailed monitoring is enabled for an instance. For more information about detailed monitoring, see [Enable or turn off detailed monitoring for your instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html) in the *User Guide*.
859
+ ``Monitoring`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
686
860
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-monitoring.html}
687
861
  */
688
862
  export type Monitoring = {
689
863
  /**
690
- * Specify true to enable detailed monitoring.
864
+ * Specify ``true`` to enable detailed monitoring. Otherwise, basic monitoring is enabled.
691
865
  */
692
866
  Enabled?: boolean;
693
867
  };
694
868
  /**
695
869
  * Type definition for `AWS::EC2::LaunchTemplate.NetworkBandwidthGbps`.
696
870
  * The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).
871
+ Setting the minimum bandwidth does not guarantee that your instance will achieve the minimum bandwidth. Amazon EC2 will identify instance types that support the specified minimum bandwidth, but the actual bandwidth of your instance might go below the specified minimum at times. For more information, see [Available instance bandwidth](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html#available-instance-bandwidth) in the *Amazon EC2 User Guide*.
697
872
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkbandwidthgbps.html}
698
873
  */
699
874
  export type NetworkBandwidthGbps = {
700
875
  /**
701
- * The maximum amount of network bandwidth, in Gbps.
876
+ * The maximum amount of network bandwidth, in Gbps. To specify no maximum limit, omit this parameter.
702
877
  */
703
878
  Max?: number;
704
879
  /**
705
- * The minimum amount of network bandwidth, in Gbps.
880
+ * The minimum amount of network bandwidth, in Gbps. If this parameter is not specified, there is no minimum limit.
706
881
  */
707
882
  Min?: number;
708
883
  };
709
884
  /**
710
885
  * Type definition for `AWS::EC2::LaunchTemplate.NetworkInterface`.
711
886
  * Specifies the parameters for a network interface.
887
+ ``NetworkInterface`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
712
888
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html}
713
889
  */
714
890
  export type NetworkInterface = {
715
891
  /**
716
- * Indicates whether to associate a Carrier IP address with eth0 for a new network interface.
717
- */
892
+ * Associates a Carrier IP address with eth0 for a new network interface.
893
+ Use this option when you launch an instance in a Wavelength Zone and want to associate a Carrier IP address with the network interface. For more information about Carrier IP addresses, see [Carrier IP addresses](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) in the *Developer Guide*.
894
+ */
718
895
  AssociateCarrierIpAddress?: boolean;
719
896
  /**
720
- * Associates a public IPv4 address with eth0 for a new network interface.
721
- */
897
+ * Associates a public IPv4 address with eth0 for a new network interface.
898
+ AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [Amazon VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/).
899
+ */
722
900
  AssociatePublicIpAddress?: boolean;
723
901
  /**
724
- * Allows customer to specify Connection Tracking options
902
+ * A connection tracking specification for the network interface.
725
903
  */
726
904
  ConnectionTrackingSpecification?: ConnectionTrackingSpecification;
727
905
  /**
@@ -737,7 +915,7 @@ export type NetworkInterface = {
737
915
  */
738
916
  DeviceIndex?: number;
739
917
  /**
740
- * Allows customer to specify ENA-SRD options
918
+ * The ENA Express configuration for the network interface.
741
919
  */
742
920
  EnaSrdSpecification?: EnaSrdSpecification;
743
921
  /**
@@ -745,35 +923,37 @@ export type NetworkInterface = {
745
923
  */
746
924
  Groups?: string[];
747
925
  /**
748
- * The type of network interface.
749
- */
926
+ * The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*.
927
+ If you are not creating an EFA, specify ``interface`` or omit this parameter.
928
+ Valid values: ``interface`` | ``efa``
929
+ */
750
930
  InterfaceType?: string;
751
931
  /**
752
- * The number of IPv4 prefixes to be automatically assigned to the network interface.
932
+ * The number of IPv4 prefixes to be automatically assigned to the network interface. You cannot use this option if you use the ``Ipv4Prefix`` option.
753
933
  */
754
934
  Ipv4PrefixCount?: number;
755
935
  /**
756
- * One or more IPv4 prefixes to be assigned to the network interface.
936
+ * One or more IPv4 prefixes to be assigned to the network interface. You cannot use this option if you use the ``Ipv4PrefixCount`` option.
757
937
  */
758
938
  Ipv4Prefixes?: Ipv4PrefixSpecification[];
759
939
  /**
760
- * The number of IPv6 addresses to assign to a network interface.
940
+ * The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range. You can't use this option if specifying specific IPv6 addresses.
761
941
  */
762
942
  Ipv6AddressCount?: number;
763
943
  /**
764
- * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet.
944
+ * One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You can't use this option if you're specifying a number of IPv6 addresses.
765
945
  */
766
946
  Ipv6Addresses?: Ipv6Add[];
767
947
  /**
768
- * The number of IPv6 prefixes to be automatically assigned to the network interface.
948
+ * The number of IPv6 prefixes to be automatically assigned to the network interface. You cannot use this option if you use the ``Ipv6Prefix`` option.
769
949
  */
770
950
  Ipv6PrefixCount?: number;
771
951
  /**
772
- * One or more IPv6 prefixes to be assigned to the network interface.
952
+ * One or more IPv6 prefixes to be assigned to the network interface. You cannot use this option if you use the ``Ipv6PrefixCount`` option.
773
953
  */
774
954
  Ipv6Prefixes?: Ipv6PrefixSpecification[];
775
955
  /**
776
- * The index of the network card.
956
+ * The index of the network card. Some instance types support multiple network cards. The primary network interface must be assigned to network card index 0. The default is network card index 0.
777
957
  */
778
958
  NetworkCardIndex?: number;
779
959
  /**
@@ -781,7 +961,7 @@ export type NetworkInterface = {
781
961
  */
782
962
  NetworkInterfaceId?: string;
783
963
  /**
784
- * Enables the first IPv6 global unique address (GUA) on a dual stack or IPv6-only ENI immutable.
964
+ * The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html).
785
965
  */
786
966
  PrimaryIpv6?: boolean;
787
967
  /**
@@ -803,16 +983,23 @@ export type NetworkInterface = {
803
983
  };
804
984
  /**
805
985
  * Type definition for `AWS::EC2::LaunchTemplate.NetworkInterfaceCount`.
806
- * TThe minimum and maximum number of network interfaces.
986
+ * The minimum and maximum number of network interfaces.
807
987
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterfacecount.html}
808
988
  */
809
989
  export type NetworkInterfaceCount = {
990
+ /**
991
+ * The maximum number of network interfaces. To specify no maximum limit, omit this parameter.
992
+ */
810
993
  Max?: number;
994
+ /**
995
+ * The minimum number of network interfaces. To specify no minimum limit, omit this parameter.
996
+ */
811
997
  Min?: number;
812
998
  };
813
999
  /**
814
1000
  * Type definition for `AWS::EC2::LaunchTemplate.Placement`.
815
1001
  * Specifies the placement of an instance.
1002
+ ``Placement`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
816
1003
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-placement.html}
817
1004
  */
818
1005
  export type Placement = {
@@ -825,7 +1012,7 @@ export type Placement = {
825
1012
  */
826
1013
  AvailabilityZone?: string;
827
1014
  /**
828
- * The Group Id of a placement group. You must specify the Placement Group Group Id to launch an instance in a shared placement group.
1015
+ * The Group Id of a placement group. You must specify the Placement Group *Group Id* to launch an instance in a shared placement group.
829
1016
  */
830
1017
  GroupId?: string;
831
1018
  /**
@@ -837,11 +1024,11 @@ export type Placement = {
837
1024
  */
838
1025
  HostId?: string;
839
1026
  /**
840
- * The ARN of the host resource group in which to launch the instances. If you specify a host resource group ARN, omit the Tenancy parameter or set it to host.
1027
+ * The ARN of the host resource group in which to launch the instances. If you specify a host resource group ARN, omit the *Tenancy* parameter or set it to ``host``.
841
1028
  */
842
1029
  HostResourceGroupArn?: string;
843
1030
  /**
844
- * The number of the partition the instance should launch in. Valid only if the placement group strategy is set to partition.
1031
+ * The number of the partition the instance should launch in. Valid only if the placement group strategy is set to ``partition``.
845
1032
  */
846
1033
  PartitionNumber?: number;
847
1034
  /**
@@ -849,13 +1036,13 @@ export type Placement = {
849
1036
  */
850
1037
  SpreadDomain?: string;
851
1038
  /**
852
- * The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware.
1039
+ * The tenancy of the instance. An instance with a tenancy of dedicated runs on single-tenant hardware.
853
1040
  */
854
1041
  Tenancy?: string;
855
1042
  };
856
1043
  /**
857
1044
  * Type definition for `AWS::EC2::LaunchTemplate.PrivateDnsNameOptions`.
858
- * Describes the options for instance hostnames.
1045
+ * The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.
859
1046
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-privatednsnameoptions.html}
860
1047
  */
861
1048
  export type PrivateDnsNameOptions = {
@@ -868,13 +1055,14 @@ export type PrivateDnsNameOptions = {
868
1055
  */
869
1056
  EnableResourceNameDnsARecord?: boolean;
870
1057
  /**
871
- * The type of hostname for EC2 instances.
1058
+ * The type of hostname for EC2 instances. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address. For IPv6 only subnets, an instance DNS name must be based on the instance ID. For dual-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.
872
1059
  */
873
1060
  HostnameType?: string;
874
1061
  };
875
1062
  /**
876
1063
  * Type definition for `AWS::EC2::LaunchTemplate.PrivateIpAdd`.
877
1064
  * Specifies a secondary private IPv4 address for a network interface.
1065
+ ``PrivateIpAdd`` is a property of [AWS::EC2::LaunchTemplate NetworkInterface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-networkinterface.html).
878
1066
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-privateipadd.html}
879
1067
  */
880
1068
  export type PrivateIpAdd = {
@@ -890,51 +1078,67 @@ export type PrivateIpAdd = {
890
1078
  /**
891
1079
  * Type definition for `AWS::EC2::LaunchTemplate.SpotOptions`.
892
1080
  * Specifies options for Spot Instances.
1081
+ ``SpotOptions`` is a property of [AWS::EC2::LaunchTemplate InstanceMarketOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata-instancemarketoptions.html).
893
1082
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-spotoptions.html}
894
1083
  */
895
1084
  export type SpotOptions = {
896
1085
  /**
897
- * Deprecated
1086
+ * Deprecated.
898
1087
  */
899
1088
  BlockDurationMinutes?: number;
900
1089
  /**
901
- * The behavior when a Spot Instance is interrupted. The default is terminate.
1090
+ * The behavior when a Spot Instance is interrupted. The default is ``terminate``.
902
1091
  */
903
1092
  InstanceInterruptionBehavior?: string;
904
1093
  /**
905
- * The maximum hourly price you're willing to pay for the Spot Instances.
906
- */
1094
+ * The maximum hourly price you're willing to pay for the Spot Instances. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price.
1095
+ If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter.
1096
+ */
907
1097
  MaxPrice?: string;
908
1098
  /**
909
- * The Spot Instance request type.
910
- */
1099
+ * The Spot Instance request type.
1100
+ If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity.
1101
+ */
911
1102
  SpotInstanceType?: string;
912
1103
  /**
913
- * The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests.
914
- */
1104
+ * The end date of the request, in UTC format (*YYYY-MM-DD*T*HH:MM:SS*Z). Supported only for persistent requests.
1105
+ + For a persistent request, the request remains active until the ``ValidUntil`` date and time is reached. Otherwise, the request remains active until you cancel it.
1106
+ + For a one-time request, ``ValidUntil`` is not supported. The request remains active until all instances launch or you cancel the request.
1107
+
1108
+ Default: 7 days from the current date
1109
+ */
915
1110
  ValidUntil?: string;
916
1111
  };
917
1112
  /**
918
1113
  * Type definition for `AWS::EC2::LaunchTemplate.Tag`.
919
- * The user data to make available to the instance.
1114
+ * Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications).
920
1115
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tag.html}
921
1116
  */
922
1117
  export type Tag = {
1118
+ /**
1119
+ * The tag key.
1120
+ */
923
1121
  Key: string;
1122
+ /**
1123
+ * The tag value.
1124
+ */
924
1125
  Value: string;
925
1126
  };
926
1127
  /**
927
1128
  * Type definition for `AWS::EC2::LaunchTemplate.TagSpecification`.
928
1129
  * Specifies the tags to apply to a resource when the resource is created for the launch template.
1130
+ ``TagSpecification`` is a property type of [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications) is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
929
1131
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html}
930
1132
  */
931
1133
  export type TagSpecification = {
932
1134
  /**
933
- * The type of resource to tag.
934
- */
1135
+ * The type of resource to tag.
1136
+ Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume.
1137
+ To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).
1138
+ */
935
1139
  ResourceType?: string;
936
1140
  /**
937
- * The tags for the resource.
1141
+ * The tags to apply to the resource.
938
1142
  */
939
1143
  Tags?: Tag[];
940
1144
  };
@@ -944,7 +1148,13 @@ export type TagSpecification = {
944
1148
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-totallocalstoragegb.html}
945
1149
  */
946
1150
  export type TotalLocalStorageGB = {
1151
+ /**
1152
+ * The maximum amount of total local storage, in GB. To specify no maximum limit, omit this parameter.
1153
+ */
947
1154
  Max?: number;
1155
+ /**
1156
+ * The minimum amount of total local storage, in GB. To specify no minimum limit, omit this parameter.
1157
+ */
948
1158
  Min?: number;
949
1159
  };
950
1160
  /**
@@ -954,16 +1164,23 @@ export type TotalLocalStorageGB = {
954
1164
  */
955
1165
  export type VCpuCount = {
956
1166
  /**
957
- * The maximum number of vCPUs.
1167
+ * The maximum number of vCPUs. To specify no maximum limit, omit this parameter.
958
1168
  */
959
1169
  Max?: number;
960
1170
  /**
961
- * The minimum number of vCPUs.
1171
+ * The minimum number of vCPUs. To specify no minimum limit, specify ``0``.
962
1172
  */
963
1173
  Min?: number;
964
1174
  };
965
1175
  /**
966
- * Resource Type definition for AWS::EC2::LaunchTemplate
1176
+ * Resource type definition for `AWS::EC2::LaunchTemplate`.
1177
+ * Specifies the properties for creating a launch template.
1178
+ The minimum required properties for specifying a launch template are as follows:
1179
+ + You must specify at least one property for the launch template data.
1180
+ + You do not need to specify a name for the launch template. If you do not specify a name, CFN creates the name for you.
1181
+
1182
+ A launch template can contain some or all of the configuration information to launch an instance. When you launch an instance using a launch template, instance properties that are not specified in the launch template use default values, except the ``ImageId`` property, which has no default value. If you do not specify an AMI ID for the launch template ``ImageId`` property, you must specify an AMI ID for the instance ``ImageId`` property.
1183
+ For more information, see [Launch an instance from a launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) in the *Amazon EC2 User Guide*.
967
1184
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html}
968
1185
  */
969
1186
  export declare class EC2LaunchTemplate extends $Resource<"AWS::EC2::LaunchTemplate", EC2LaunchTemplateProperties, EC2LaunchTemplateAttributes> {