@awboost/cfn-resource-types 0.1.63 → 0.1.65

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.
@@ -0,0 +1,311 @@
1
+ import { Resource as $Resource } from "@awboost/cfn-template-builder/template/resource";
2
+ import type { ResourceOptions as $ResourceOptions } from "@awboost/cfn-template-builder/template";
3
+ /**
4
+ * The AWS::GameLift::ContainerGroupDefinition resource creates an Amazon GameLift container group definition.
5
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html}
6
+ */
7
+ export type GameLiftContainerGroupDefinitionProperties = {
8
+ /**
9
+ * A collection of container definitions that define the containers in this group.
10
+ * @minLength `1`
11
+ * @maxLength `10`
12
+ */
13
+ ContainerDefinitions: ContainerDefinition[];
14
+ /**
15
+ * A descriptive label for the container group definition.
16
+ * @minLength `1`
17
+ * @maxLength `128`
18
+ * @pattern `^[a-zA-Z0-9-]+$`
19
+ */
20
+ Name: string;
21
+ /**
22
+ * The operating system of the container group
23
+ */
24
+ OperatingSystem: "AMAZON_LINUX_2023";
25
+ /**
26
+ * Specifies whether the container group includes replica or daemon containers.
27
+ */
28
+ SchedulingStrategy?: "REPLICA" | "DAEMON";
29
+ /**
30
+ * An array of key-value pairs to apply to this resource.
31
+ * @minLength `0`
32
+ * @maxLength `200`
33
+ */
34
+ Tags?: Tag[];
35
+ /**
36
+ * The maximum number of CPU units reserved for this container group. The value is expressed as an integer amount of CPU units. (1 vCPU is equal to 1024 CPU units.)
37
+ * @min `128`
38
+ * @max `10240`
39
+ */
40
+ TotalCpuLimit: number;
41
+ /**
42
+ * The maximum amount of memory (in MiB) to allocate for this container group.
43
+ * @min `4`
44
+ * @max `1024000`
45
+ */
46
+ TotalMemoryLimit: number;
47
+ };
48
+ /**
49
+ * Attribute type definition for `AWS::GameLift::ContainerGroupDefinition`.
50
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#aws-resource-gamelift-containergroupdefinition-return-values}
51
+ */
52
+ export type GameLiftContainerGroupDefinitionAttributes = {
53
+ /**
54
+ * A collection of container definitions that define the containers in this group.
55
+ * @minLength `1`
56
+ * @maxLength `10`
57
+ */
58
+ ContainerDefinitions: {
59
+ /**
60
+ * The digest of the container image.
61
+ * @pattern `^sha256:[a-fA-F0-9]{64}$`
62
+ */
63
+ ResolvedImageDigest: string;
64
+ }[];
65
+ /**
66
+ * The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions.
67
+ * @minLength `1`
68
+ * @maxLength `512`
69
+ * @pattern `^arn:.*:containergroupdefinition/containergroupdefinition-[a-zA-Z0-9-]+$`
70
+ */
71
+ ContainerGroupDefinitionArn: string;
72
+ /**
73
+ * A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057").
74
+ */
75
+ CreationTime: string;
76
+ };
77
+ /**
78
+ * Type definition for `AWS::GameLift::ContainerGroupDefinition.ContainerDefinition`.
79
+ * Details about a container that is used in a container fleet
80
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html}
81
+ */
82
+ export type ContainerDefinition = {
83
+ /**
84
+ * The command that's passed to the container.
85
+ * @minLength `1`
86
+ * @maxLength `20`
87
+ */
88
+ Command?: string[];
89
+ /**
90
+ * A descriptive label for the container definition. Container definition names must be unique with a container group definition.
91
+ * @minLength `1`
92
+ * @maxLength `128`
93
+ * @pattern `^[a-zA-Z0-9-]+$`
94
+ */
95
+ ContainerName: string;
96
+ /**
97
+ * The maximum number of CPU units reserved for this container. The value is expressed as an integer amount of CPU units. 1 vCPU is equal to 1024 CPU units
98
+ * @min `1`
99
+ * @max `10240`
100
+ */
101
+ Cpu?: number;
102
+ /**
103
+ * A list of container dependencies that determines when this container starts up and shuts down. For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers.
104
+ * @minLength `1`
105
+ * @maxLength `10`
106
+ */
107
+ DependsOn?: ContainerDependency[];
108
+ /**
109
+ * The entry point that's passed to the container so that it will run as an executable. If there are multiple arguments, each argument is a string in the array.
110
+ * @minLength `1`
111
+ * @maxLength `20`
112
+ */
113
+ EntryPoint?: string[];
114
+ /**
115
+ * The environment variables to pass to a container.
116
+ * @minLength `1`
117
+ * @maxLength `20`
118
+ */
119
+ Environment?: ContainerEnvironment[];
120
+ /**
121
+ * Specifies if the container is essential. If an essential container fails a health check, then all containers in the container group will be restarted. You must specify exactly 1 essential container in a container group.
122
+ */
123
+ Essential?: boolean;
124
+ /**
125
+ * Specifies how the health of the containers will be checked.
126
+ */
127
+ HealthCheck?: ContainerHealthCheck;
128
+ /**
129
+ * Specifies the image URI of this container.
130
+ * @minLength `1`
131
+ * @maxLength `255`
132
+ * @pattern `^[a-zA-Z0-9-_\.@\/:]+$`
133
+ */
134
+ ImageUri: string;
135
+ /**
136
+ * Specifies how much memory is available to the container. You must specify at least this parameter or the TotalMemoryLimit parameter of the ContainerGroupDefinition.
137
+ */
138
+ MemoryLimits?: MemoryLimits;
139
+ /**
140
+ * Defines the ports on the container.
141
+ */
142
+ PortConfiguration?: PortConfiguration;
143
+ /**
144
+ * The working directory to run commands inside the container in.
145
+ * @minLength `1`
146
+ * @maxLength `255`
147
+ * @pattern `^.*$`
148
+ */
149
+ WorkingDirectory?: string;
150
+ };
151
+ /**
152
+ * Type definition for `AWS::GameLift::ContainerGroupDefinition.ContainerDependency`.
153
+ * A dependency that impacts a container's startup and shutdown.
154
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdependency.html}
155
+ */
156
+ export type ContainerDependency = {
157
+ /**
158
+ * The type of dependency.
159
+ */
160
+ Condition: "START" | "COMPLETE" | "SUCCESS" | "HEALTHY";
161
+ /**
162
+ * A descriptive label for the container definition. The container being defined depends on this container's condition.
163
+ * @minLength `1`
164
+ * @maxLength `128`
165
+ * @pattern `^[a-zA-Z0-9-]+$`
166
+ */
167
+ ContainerName: string;
168
+ };
169
+ /**
170
+ * Type definition for `AWS::GameLift::ContainerGroupDefinition.ContainerEnvironment`.
171
+ * An environment variable to set inside a container, in the form of a key-value pair.
172
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerenvironment.html}
173
+ */
174
+ export type ContainerEnvironment = {
175
+ /**
176
+ * The environment variable name.
177
+ * @minLength `1`
178
+ * @maxLength `255`
179
+ * @pattern `^.*$`
180
+ */
181
+ Name: string;
182
+ /**
183
+ * The environment variable value.
184
+ * @minLength `1`
185
+ * @maxLength `255`
186
+ * @pattern `^.*$`
187
+ */
188
+ Value: string;
189
+ };
190
+ /**
191
+ * Type definition for `AWS::GameLift::ContainerGroupDefinition.ContainerHealthCheck`.
192
+ * Specifies how the process manager checks the health of containers.
193
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html}
194
+ */
195
+ export type ContainerHealthCheck = {
196
+ /**
197
+ * A string array representing the command that the container runs to determine if it is healthy.
198
+ * @minLength `1`
199
+ * @maxLength `20`
200
+ */
201
+ Command: string[];
202
+ /**
203
+ * How often (in seconds) the health is checked.
204
+ * @min `60`
205
+ * @max `300`
206
+ */
207
+ Interval?: number;
208
+ /**
209
+ * How many times the process manager will retry the command after a timeout. (The first run of the command does not count as a retry.)
210
+ * @min `5`
211
+ * @max `10`
212
+ */
213
+ Retries?: number;
214
+ /**
215
+ * The optional grace period (in seconds) to give a container time to boostrap before teh health check is declared failed.
216
+ * @min `0`
217
+ * @max `300`
218
+ */
219
+ StartPeriod?: number;
220
+ /**
221
+ * How many seconds the process manager allows the command to run before canceling it.
222
+ * @min `30`
223
+ * @max `60`
224
+ */
225
+ Timeout?: number;
226
+ };
227
+ /**
228
+ * Type definition for `AWS::GameLift::ContainerGroupDefinition.ContainerPortRange`.
229
+ * A set of one or more port numbers that can be opened on the container.
230
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerportrange.html}
231
+ */
232
+ export type ContainerPortRange = {
233
+ /**
234
+ * A starting value for the range of allowed port numbers.
235
+ * @min `1`
236
+ * @max `60000`
237
+ */
238
+ FromPort: number;
239
+ /**
240
+ * Defines the protocol of these ports.
241
+ */
242
+ Protocol: "TCP" | "UDP";
243
+ /**
244
+ * An ending value for the range of allowed port numbers. Port numbers are end-inclusive. This value must be equal to or greater than FromPort.
245
+ * @min `1`
246
+ * @max `60000`
247
+ */
248
+ ToPort: number;
249
+ };
250
+ /**
251
+ * Type definition for `AWS::GameLift::ContainerGroupDefinition.MemoryLimits`.
252
+ * Specifies how much memory is available to the container.
253
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-memorylimits.html}
254
+ */
255
+ export type MemoryLimits = {
256
+ /**
257
+ * The hard limit of memory to reserve for the container.
258
+ * @min `4`
259
+ * @max `1024000`
260
+ */
261
+ HardLimit?: number;
262
+ /**
263
+ * The amount of memory that is reserved for the container.
264
+ * @min `4`
265
+ * @max `1024000`
266
+ */
267
+ SoftLimit?: number;
268
+ };
269
+ /**
270
+ * Type definition for `AWS::GameLift::ContainerGroupDefinition.PortConfiguration`.
271
+ * Defines the ports on a container.
272
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-portconfiguration.html}
273
+ */
274
+ export type PortConfiguration = {
275
+ /**
276
+ * Specifies one or more ranges of ports on a container.
277
+ * @minLength `1`
278
+ * @maxLength `100`
279
+ */
280
+ ContainerPortRanges: ContainerPortRange[];
281
+ };
282
+ /**
283
+ * Type definition for `AWS::GameLift::ContainerGroupDefinition.Tag`.
284
+ * A key-value pair to associate with a resource.
285
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-tag.html}
286
+ */
287
+ export type Tag = {
288
+ /**
289
+ * The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length.
290
+ * @minLength `1`
291
+ * @maxLength `128`
292
+ * @pattern `^.*$`
293
+ */
294
+ Key: string;
295
+ /**
296
+ * The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length.
297
+ * @minLength `0`
298
+ * @maxLength `256`
299
+ * @pattern `^.*$`
300
+ */
301
+ Value: string;
302
+ };
303
+ /**
304
+ * The AWS::GameLift::ContainerGroupDefinition resource creates an Amazon GameLift container group definition.
305
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html}
306
+ */
307
+ export declare class GameLiftContainerGroupDefinition extends $Resource<"AWS::GameLift::ContainerGroupDefinition", GameLiftContainerGroupDefinitionProperties, GameLiftContainerGroupDefinitionAttributes> {
308
+ static readonly Type = "AWS::GameLift::ContainerGroupDefinition";
309
+ constructor(logicalId: string, properties: GameLiftContainerGroupDefinitionProperties, options?: $ResourceOptions);
310
+ }
311
+ //# sourceMappingURL=AWS-GameLift-ContainerGroupDefinition.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { Resource as $Resource } from "@awboost/cfn-template-builder/template/resource";
2
+ /**
3
+ * The AWS::GameLift::ContainerGroupDefinition resource creates an Amazon GameLift container group definition.
4
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html}
5
+ */
6
+ export class GameLiftContainerGroupDefinition extends $Resource {
7
+ static Type = "AWS::GameLift::ContainerGroupDefinition";
8
+ constructor(logicalId, properties, options) {
9
+ super(logicalId, GameLiftContainerGroupDefinition.Type, properties, options);
10
+ }
11
+ }
12
+ //# sourceMappingURL=AWS-GameLift-ContainerGroupDefinition.js.map
@@ -25,7 +25,11 @@ export type GameLiftFleetProperties = {
25
25
  /**
26
26
  * ComputeType to differentiate EC2 hardware managed by GameLift and Anywhere hardware managed by the customer.
27
27
  */
28
- ComputeType?: "EC2" | "ANYWHERE";
28
+ ComputeType?: "EC2" | "ANYWHERE" | "CONTAINER";
29
+ /**
30
+ * Specifies container groups that this instance will hold. You must specify exactly one replica group. Optionally, you may specify exactly one daemon group. You can't change this property after you create the fleet.
31
+ */
32
+ ContainerGroupsConfiguration?: ContainerGroupsConfiguration;
29
33
  /**
30
34
  * A human-readable description of a fleet.
31
35
  * @minLength `1`
@@ -149,6 +153,22 @@ export type GameLiftFleetProperties = {
149
153
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#aws-resource-gamelift-fleet-return-values}
150
154
  */
151
155
  export type GameLiftFleetAttributes = {
156
+ /**
157
+ * Specifies container groups that this instance will hold. You must specify exactly one replica group. Optionally, you may specify exactly one daemon group. You can't change this property after you create the fleet.
158
+ */
159
+ ContainerGroupsConfiguration: {
160
+ /**
161
+ * The number of container groups per instance.
162
+ */
163
+ ContainerGroupsPerInstance: {
164
+ /**
165
+ * GameLift calculates the maximum number of replica container groups it can launch per instance based on instance properties such as CPU, memory, and connection ports.
166
+ * @min `1`
167
+ * @max `5000`
168
+ */
169
+ MaxReplicaContainerGroupsPerInstance: number;
170
+ };
171
+ };
152
172
  /**
153
173
  * Unique fleet ID
154
174
  * @pattern `^fleet-\S+`
@@ -177,6 +197,59 @@ export type AnywhereConfiguration = {
177
197
  export type CertificateConfiguration = {
178
198
  CertificateType: "DISABLED" | "GENERATED";
179
199
  };
200
+ /**
201
+ * Type definition for `AWS::GameLift::Fleet.ConnectionPortRange`.
202
+ * Defines the range of ports on the instance that allow inbound traffic to connect with containers in a fleet.
203
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-connectionportrange.html}
204
+ */
205
+ export type ConnectionPortRange = {
206
+ /**
207
+ * A starting value for a range of allowed port numbers.
208
+ * @min `1`
209
+ * @max `60000`
210
+ */
211
+ FromPort: number;
212
+ /**
213
+ * An ending value for a range of allowed port numbers. Port numbers are end-inclusive. This value must be higher than FromPort.
214
+ * @min `1`
215
+ * @max `60000`
216
+ */
217
+ ToPort: number;
218
+ };
219
+ /**
220
+ * Type definition for `AWS::GameLift::Fleet.ContainerGroupsConfiguration`.
221
+ * Specifies container groups that this instance will hold. You must specify exactly one replica group. Optionally, you may specify exactly one daemon group. You can't change this property after you create the fleet.
222
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsconfiguration.html}
223
+ */
224
+ export type ContainerGroupsConfiguration = {
225
+ /**
226
+ * Defines the range of ports on the instance that allow inbound traffic to connect with containers in a fleet.
227
+ */
228
+ ConnectionPortRange: ConnectionPortRange;
229
+ /**
230
+ * The names of the container group definitions that will be created in an instance. You must specify exactly one REPLICA container group. You have the option to also specify one DAEMON container group.
231
+ * @minLength `1`
232
+ * @maxLength `2`
233
+ */
234
+ ContainerGroupDefinitionNames: string[];
235
+ /**
236
+ * The number of container groups per instance.
237
+ */
238
+ ContainerGroupsPerInstance?: ContainerGroupsPerInstance;
239
+ };
240
+ /**
241
+ * Type definition for `AWS::GameLift::Fleet.ContainerGroupsPerInstance`.
242
+ * The number of container groups per instance.
243
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsperinstance.html}
244
+ */
245
+ export type ContainerGroupsPerInstance = {
246
+ /**
247
+ * Use this parameter to override the number of replica container groups GameLift will launch per instance with a number that is lower than that calculated maximum.
248
+ * @min `1`
249
+ * @max `5000`
250
+ */
251
+ DesiredReplicaContainerGroupsPerInstance?: number;
252
+ };
180
253
  /**
181
254
  * Type definition for `AWS::GameLift::Fleet.IpPermission`.
182
255
  * A range of IP addresses and port settings that allow inbound traffic to connect to server processes on an Amazon GameLift hosting resource. New game sessions that are started on the fleet are assigned an IP address/port number combination, which must fall into the fleet's allowed ranges. For fleets created with a custom game server, the ranges reflect the server's game session assignments. For Realtime Servers fleets, Amazon GameLift automatically opens two port ranges, one for TCP messaging and one for UDP, for use by the Realtime servers.
@@ -3,14 +3,14 @@ import type { ResourceOptions as $ResourceOptions } from "@awboost/cfn-template-
3
3
  /**
4
4
  * The ``AWS::KMS::Key`` resource specifies an [KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) in KMSlong. You can use this resource to create symmetric encryption KMS keys, asymmetric KMS keys for encryption or signing, and symmetric HMAC KMS keys. You can use ``AWS::KMS::Key`` to create [multi-Region primary keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-primary-key) of all supported types. To replicate a multi-Region key, use the ``AWS::KMS::ReplicaKey`` resource.
5
5
  If you change the value of the ``KeySpec``, ``KeyUsage``, ``Origin``, or ``MultiRegion`` properties of an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing any of its immutable property values.
6
- KMS replaced the term *customer master key (CMK)* with ** and *KMS key*. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.
6
+ KMS replaced the term *customer master key (CMK)* with ** and *KMS key*. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.
7
7
  You can use symmetric encryption KMS keys to encrypt and decrypt small amounts of data, but they are more commonly used to generate data keys and data key pairs. You can also use a symmetric encryption KMS key to encrypt data stored in AWS services that are [integrated with](https://docs.aws.amazon.com//kms/features/#AWS_Service_Integration). For more information, see [Symmetric encryption KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks) in the *Developer Guide*.
8
8
  You can use asymmetric KMS keys to encrypt and decrypt data or sign messages and verify signatures. To create an asymmetric key, you must specify an asymmetric ``KeySpec`` value and a ``KeyUsage`` value. For details, see [Asymmetric keys in](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) in the *Developer Guide*.
9
9
  You can use HMAC KMS keys (which are also symmetric keys) to generate and verify hash-based message authentication codes. To create an HMAC key, you must specify an HMAC ``KeySpec`` value and a ``KeyUsage`` value of ``GENERATE_VERIFY_MAC``. For details, see [HMAC keys in](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) in the *Developer Guide*.
10
10
  You can also create symmetric encryption, asymmetric, and HMAC multi-Region primary keys. To create a multi-Region primary key, set the ``MultiRegion`` property to ``true``. For information about multi-Region keys, see [Multi-Region keys in](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the *Developer Guide*.
11
11
  You cannot use the ``AWS::KMS::Key`` resource to specify a KMS key with [imported key material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) or a KMS key in a [custom key store](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).
12
- *Regions*
13
- KMS CloudFormation resources are available in all Regions in which KMS and CFN are supported. You can use the ``AWS::KMS::Key`` resource to create and manage all KMS key types that are supported in a Region.
12
+ *Regions*
13
+ KMS CloudFormation resources are available in all Regions in which KMS and CFN are supported. You can use the ``AWS::KMS::Key`` resource to create and manage all KMS key types that are supported in a Region.
14
14
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html}
15
15
  */
16
16
  export type KMSKeyProperties = {
@@ -29,7 +29,7 @@ export type KMSKeyProperties = {
29
29
  Description?: string;
30
30
  /**
31
31
  * Enables automatic rotation of the key material for the specified KMS key. By default, automatic key rotation is not enabled.
32
- KMS supports automatic rotation only for symmetric encryption KMS keys (``KeySpec`` = ``SYMMETRIC_DEFAULT``). For asymmetric KMS keys, HMAC KMS keys, and KMS keys with Origin ``EXTERNAL``, omit the ``EnableKeyRotation`` property or set it to ``false``.
32
+ KMS supports automatic rotation only for symmetric encryption KMS keys (``KeySpec`` = ``SYMMETRIC_DEFAULT``). For asymmetric KMS keys, HMAC KMS keys, and KMS keys with Origin ``EXTERNAL``, omit the ``EnableKeyRotation`` property or set it to ``false``.
33
33
  To enable automatic key rotation of the key material for a multi-Region KMS key, set ``EnableKeyRotation`` to ``true`` on the primary key (created by using ``AWS::KMS::Key``). KMS copies the rotation status to all replica keys. For details, see [Rotating multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate) in the *Developer Guide*.
34
34
  When you enable automatic rotation, KMS automatically creates new key material for the KMS key one year after the enable date and every year thereafter. KMS retains all key material until you delete the KMS key. For detailed information about automatic key rotation, see [Rotating KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) in the *Developer Guide*.
35
35
  */
@@ -53,15 +53,15 @@ export type KMSKeyProperties = {
53
53
  + Printable characters in the Basic Latin and Latin-1 Supplement character set
54
54
  + The tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) special characters
55
55
 
56
- *Minimum*: ``1``
57
- *Maximum*: ``32768``
56
+ *Minimum*: ``1``
57
+ *Maximum*: ``32768``
58
58
  */
59
59
  KeyPolicy?: Record<string, any> | string;
60
60
  /**
61
61
  * Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*.
62
62
  The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*.
63
63
  If you change the value of the ``KeySpec`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.
64
- [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.
64
+ [services that are integrated with](https://docs.aws.amazon.com/kms/features/#AWS_Service_Integration) use symmetric encryption KMS keys to protect your data. These services do not support encryption with asymmetric KMS keys. For help determining whether a KMS key is asymmetric, see [Identifying asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html) in the *Developer Guide*.
65
65
  KMS supports the following key specs for KMS keys:
66
66
  + Symmetric encryption key (default)
67
67
  + ``SYMMETRIC_DEFAULT`` (AES-256-GCM)
@@ -85,8 +85,8 @@ export type KMSKeyProperties = {
85
85
  + Other asymmetric elliptic curve key pairs
86
86
  + ``ECC_SECG_P256K1`` (secp256k1), commonly used for cryptocurrencies.
87
87
 
88
- + SM2 key pairs (China Regions only)
89
- + ``SM2``
88
+ + SM2 key pairs (China Regions only)
89
+ + ``SM2``
90
90
  */
91
91
  KeySpec?: "SYMMETRIC_DEFAULT" | "RSA_2048" | "RSA_3072" | "RSA_4096" | "ECC_NIST_P256" | "ECC_NIST_P384" | "ECC_NIST_P521" | "ECC_SECG_P256K1" | "HMAC_224" | "HMAC_256" | "HMAC_384" | "HMAC_512" | "SM2";
92
92
  /**
@@ -105,7 +105,7 @@ export type KMSKeyProperties = {
105
105
  For a list of AWS-Regions in which multi-Region keys are supported, see [Multi-Region keys in](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the **.
106
106
  If you change the value of the ``MultiRegion`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value.
107
107
  For a multi-Region key, set to this property to ``true``. For a single-Region key, omit this property or set it to ``false``. The default value is ``false``.
108
- *Multi-Region keys* are an KMS feature that lets you create multiple interoperable KMS keys in different AWS-Regions. Because these KMS keys have the same key ID, key material, and other metadata, you can use them to encrypt data in one AWS-Region and decrypt it in a different AWS-Region without making a cross-Region call or exposing the plaintext data. For more information, see [Multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the *Developer Guide*.
108
+ *Multi-Region keys* are an KMS feature that lets you create multiple interoperable KMS keys in different AWS-Regions. Because these KMS keys have the same key ID, key material, and other metadata, you can use them to encrypt data in one AWS-Region and decrypt it in a different AWS-Region without making a cross-Region call or exposing the plaintext data. For more information, see [Multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the *Developer Guide*.
109
109
  You can create a symmetric encryption, HMAC, or asymmetric multi-Region KMS key, and you can create a multi-Region key with imported key material. However, you cannot create a multi-Region key in a custom key store.
110
110
  To create a replica of this primary key in a different AWS-Region , create an [AWS::KMS::ReplicaKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html) resource in a CloudFormation stack in the replica Region. Specify the key ARN of this primary key.
111
111
  */
@@ -114,13 +114,13 @@ export type KMSKeyProperties = {
114
114
  * The source of the key material for the KMS key. You cannot change the origin after you create the KMS key. The default is ``AWS_KMS``, which means that KMS creates the key material.
115
115
  To [create a KMS key with no key material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html) (for imported key material), set this value to ``EXTERNAL``. For more information about importing key material into KMS, see [Importing Key Material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) in the *Developer Guide*.
116
116
  You can ignore ``ENABLED`` when Origin is ``EXTERNAL``. When a KMS key with Origin ``EXTERNAL`` is created, the key state is ``PENDING_IMPORT`` and ``ENABLED`` is ``false``. After you import the key material, ``ENABLED`` updated to ``true``. The KMS key can then be used for Cryptographic Operations.
117
- CFN doesn't support creating an ``Origin`` parameter of the ``AWS_CLOUDHSM`` or ``EXTERNAL_KEY_STORE`` values.
117
+ CFN doesn't support creating an ``Origin`` parameter of the ``AWS_CLOUDHSM`` or ``EXTERNAL_KEY_STORE`` values.
118
118
  */
119
119
  Origin?: "AWS_KMS" | "EXTERNAL";
120
120
  /**
121
121
  * Specifies the number of days in the waiting period before KMS deletes a KMS key that has been removed from a CloudFormation stack. Enter a value between 7 and 30 days. The default value is 30 days.
122
122
  When you remove a KMS key from a CloudFormation stack, KMS schedules the KMS key for deletion and starts the mandatory waiting period. The ``PendingWindowInDays`` property determines the length of waiting period. During the waiting period, the key state of KMS key is ``Pending Deletion`` or ``Pending Replica Deletion``, which prevents the KMS key from being used in cryptographic operations. When the waiting period expires, KMS permanently deletes the KMS key.
123
- KMS will not delete a [multi-Region primary key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) that has replica keys. If you remove a multi-Region primary key from a CloudFormation stack, its key state changes to ``PendingReplicaDeletion`` so it cannot be replicated or used in cryptographic operations. This state can persist indefinitely. When the last of its replica keys is deleted, the key state of the primary key changes to ``PendingDeletion`` and the waiting period specified by ``PendingWindowInDays`` begins. When this waiting period expires, KMS deletes the primary key. For details, see [Deleting multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the *Developer Guide*.
123
+ KMS will not delete a [multi-Region primary key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) that has replica keys. If you remove a multi-Region primary key from a CloudFormation stack, its key state changes to ``PendingReplicaDeletion`` so it cannot be replicated or used in cryptographic operations. This state can persist indefinitely. When the last of its replica keys is deleted, the key state of the primary key changes to ``PendingDeletion`` and the waiting period specified by ``PendingWindowInDays`` begins. When this waiting period expires, KMS deletes the primary key. For details, see [Deleting multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-delete.html) in the *Developer Guide*.
124
124
  You cannot use a CloudFormation template to cancel deletion of the KMS key after you remove it from the stack, regardless of the waiting period. If you specify a KMS key in your template, even one with the same name, CloudFormation creates a new KMS key. To cancel deletion of a KMS key, use the KMS console or the [CancelKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html) operation.
125
125
  For information about the ``Pending Deletion`` and ``Pending Replica Deletion`` key states, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *Developer Guide*. For more information about deleting KMS keys, see the [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operation in the *API Reference* and [Deleting KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in the *Developer Guide*.
126
126
  * @min `7`
@@ -169,14 +169,14 @@ export type Tag = {
169
169
  /**
170
170
  * The ``AWS::KMS::Key`` resource specifies an [KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) in KMSlong. You can use this resource to create symmetric encryption KMS keys, asymmetric KMS keys for encryption or signing, and symmetric HMAC KMS keys. You can use ``AWS::KMS::Key`` to create [multi-Region primary keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-primary-key) of all supported types. To replicate a multi-Region key, use the ``AWS::KMS::ReplicaKey`` resource.
171
171
  If you change the value of the ``KeySpec``, ``KeyUsage``, ``Origin``, or ``MultiRegion`` properties of an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing any of its immutable property values.
172
- KMS replaced the term *customer master key (CMK)* with ** and *KMS key*. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.
172
+ KMS replaced the term *customer master key (CMK)* with ** and *KMS key*. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.
173
173
  You can use symmetric encryption KMS keys to encrypt and decrypt small amounts of data, but they are more commonly used to generate data keys and data key pairs. You can also use a symmetric encryption KMS key to encrypt data stored in AWS services that are [integrated with](https://docs.aws.amazon.com//kms/features/#AWS_Service_Integration). For more information, see [Symmetric encryption KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks) in the *Developer Guide*.
174
174
  You can use asymmetric KMS keys to encrypt and decrypt data or sign messages and verify signatures. To create an asymmetric key, you must specify an asymmetric ``KeySpec`` value and a ``KeyUsage`` value. For details, see [Asymmetric keys in](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) in the *Developer Guide*.
175
175
  You can use HMAC KMS keys (which are also symmetric keys) to generate and verify hash-based message authentication codes. To create an HMAC key, you must specify an HMAC ``KeySpec`` value and a ``KeyUsage`` value of ``GENERATE_VERIFY_MAC``. For details, see [HMAC keys in](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) in the *Developer Guide*.
176
176
  You can also create symmetric encryption, asymmetric, and HMAC multi-Region primary keys. To create a multi-Region primary key, set the ``MultiRegion`` property to ``true``. For information about multi-Region keys, see [Multi-Region keys in](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the *Developer Guide*.
177
177
  You cannot use the ``AWS::KMS::Key`` resource to specify a KMS key with [imported key material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) or a KMS key in a [custom key store](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).
178
- *Regions*
179
- KMS CloudFormation resources are available in all Regions in which KMS and CFN are supported. You can use the ``AWS::KMS::Key`` resource to create and manage all KMS key types that are supported in a Region.
178
+ *Regions*
179
+ KMS CloudFormation resources are available in all Regions in which KMS and CFN are supported. You can use the ``AWS::KMS::Key`` resource to create and manage all KMS key types that are supported in a Region.
180
180
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html}
181
181
  */
182
182
  export declare class KMSKey extends $Resource<"AWS::KMS::Key", KMSKeyProperties, KMSKeyAttributes> {
@@ -2,14 +2,14 @@ import { Resource as $Resource } from "@awboost/cfn-template-builder/template/re
2
2
  /**
3
3
  * The ``AWS::KMS::Key`` resource specifies an [KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) in KMSlong. You can use this resource to create symmetric encryption KMS keys, asymmetric KMS keys for encryption or signing, and symmetric HMAC KMS keys. You can use ``AWS::KMS::Key`` to create [multi-Region primary keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-primary-key) of all supported types. To replicate a multi-Region key, use the ``AWS::KMS::ReplicaKey`` resource.
4
4
  If you change the value of the ``KeySpec``, ``KeyUsage``, ``Origin``, or ``MultiRegion`` properties of an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing any of its immutable property values.
5
- KMS replaced the term *customer master key (CMK)* with ** and *KMS key*. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.
5
+ KMS replaced the term *customer master key (CMK)* with ** and *KMS key*. The concept has not changed. To prevent breaking changes, KMS is keeping some variations of this term.
6
6
  You can use symmetric encryption KMS keys to encrypt and decrypt small amounts of data, but they are more commonly used to generate data keys and data key pairs. You can also use a symmetric encryption KMS key to encrypt data stored in AWS services that are [integrated with](https://docs.aws.amazon.com//kms/features/#AWS_Service_Integration). For more information, see [Symmetric encryption KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks) in the *Developer Guide*.
7
7
  You can use asymmetric KMS keys to encrypt and decrypt data or sign messages and verify signatures. To create an asymmetric key, you must specify an asymmetric ``KeySpec`` value and a ``KeyUsage`` value. For details, see [Asymmetric keys in](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) in the *Developer Guide*.
8
8
  You can use HMAC KMS keys (which are also symmetric keys) to generate and verify hash-based message authentication codes. To create an HMAC key, you must specify an HMAC ``KeySpec`` value and a ``KeyUsage`` value of ``GENERATE_VERIFY_MAC``. For details, see [HMAC keys in](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html) in the *Developer Guide*.
9
9
  You can also create symmetric encryption, asymmetric, and HMAC multi-Region primary keys. To create a multi-Region primary key, set the ``MultiRegion`` property to ``true``. For information about multi-Region keys, see [Multi-Region keys in](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the *Developer Guide*.
10
10
  You cannot use the ``AWS::KMS::Key`` resource to specify a KMS key with [imported key material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) or a KMS key in a [custom key store](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html).
11
- *Regions*
12
- KMS CloudFormation resources are available in all Regions in which KMS and CFN are supported. You can use the ``AWS::KMS::Key`` resource to create and manage all KMS key types that are supported in a Region.
11
+ *Regions*
12
+ KMS CloudFormation resources are available in all Regions in which KMS and CFN are supported. You can use the ``AWS::KMS::Key`` resource to create and manage all KMS key types that are supported in a Region.
13
13
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html}
14
14
  */
15
15
  export class KMSKey extends $Resource {
@@ -5,11 +5,29 @@ import type { ResourceOptions as $ResourceOptions } from "@awboost/cfn-template-
5
5
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html}
6
6
  */
7
7
  export type LambdaAliasProperties = {
8
+ /**
9
+ * A description of the alias.
10
+ */
8
11
  Description?: string;
12
+ /**
13
+ * The name of the Lambda function.
14
+ */
9
15
  FunctionName: string;
16
+ /**
17
+ * The function version that the alias invokes.
18
+ */
10
19
  FunctionVersion: string;
20
+ /**
21
+ * The name of the alias.
22
+ */
11
23
  Name: string;
24
+ /**
25
+ * Specifies a provisioned concurrency configuration for a function's alias.
26
+ */
12
27
  ProvisionedConcurrencyConfig?: ProvisionedConcurrencyConfiguration;
28
+ /**
29
+ * The routing configuration of the alias.
30
+ */
13
31
  RoutingConfig?: AliasRoutingConfiguration;
14
32
  };
15
33
  /**
@@ -17,29 +35,46 @@ export type LambdaAliasProperties = {
17
35
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#aws-resource-lambda-alias-return-values}
18
36
  */
19
37
  export type LambdaAliasAttributes = {
38
+ /**
39
+ * Lambda Alias ARN generated by the service.
40
+ */
20
41
  AliasArn: string;
21
- Id: string;
22
42
  };
23
43
  /**
24
44
  * Type definition for `AWS::Lambda::Alias.AliasRoutingConfiguration`.
45
+ * The traffic-shifting configuration of a Lambda function alias.
25
46
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-aliasroutingconfiguration.html}
26
47
  */
27
48
  export type AliasRoutingConfiguration = {
28
- AdditionalVersionWeights: VersionWeight[];
49
+ /**
50
+ * The second version, and the percentage of traffic that's routed to it.
51
+ */
52
+ AdditionalVersionWeights?: VersionWeight[];
29
53
  };
30
54
  /**
31
55
  * Type definition for `AWS::Lambda::Alias.ProvisionedConcurrencyConfiguration`.
56
+ * A provisioned concurrency configuration for a function's alias.
32
57
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-provisionedconcurrencyconfiguration.html}
33
58
  */
34
59
  export type ProvisionedConcurrencyConfiguration = {
60
+ /**
61
+ * The amount of provisioned concurrency to allocate for the alias.
62
+ */
35
63
  ProvisionedConcurrentExecutions: number;
36
64
  };
37
65
  /**
38
66
  * Type definition for `AWS::Lambda::Alias.VersionWeight`.
67
+ * The traffic-shifting configuration of a Lambda function alias.
39
68
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-alias-versionweight.html}
40
69
  */
41
70
  export type VersionWeight = {
71
+ /**
72
+ * The qualifier of the second version.
73
+ */
42
74
  FunctionVersion: string;
75
+ /**
76
+ * The percentage of traffic that the alias routes to the second version.
77
+ */
43
78
  FunctionWeight: number;
44
79
  };
45
80
  /**