@awboost/cfn-resource-types 0.1.191 → 0.1.193

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.
@@ -226,7 +226,7 @@ export type ContainerDefinition = {
226
226
  DockerSecurityOptions?: string[];
227
227
  /**
228
228
  * Early versions of the Amazon ECS container agent don't properly handle ``entryPoint`` parameters. If you have problems using ``entryPoint``, update your container agent or enter your commands and arguments as ``command`` array items instead.
229
- The entry point that's passed to the container. This parameter maps to ``Entrypoint`` in tthe docker container create command and the ``--entrypoint`` option to docker run.
229
+ The entry point that's passed to the container. This parameter maps to ``Entrypoint`` in the docker container create command and the ``--entrypoint`` option to docker run.
230
230
  */
231
231
  EntryPoint?: string[];
232
232
  /**
@@ -259,7 +259,7 @@ export type ContainerDefinition = {
259
259
  */
260
260
  HealthCheck?: HealthCheck;
261
261
  /**
262
- * The hostname to use for your container. This parameter maps to ``Hostname`` in thethe docker container create command and the ``--hostname`` option to docker run.
262
+ * The hostname to use for your container. This parameter maps to ``Hostname`` in the docker container create command and the ``--hostname`` option to docker run.
263
263
  The ``hostname`` parameter is not supported if you're using the ``awsvpc`` network mode.
264
264
  */
265
265
  Hostname?: string;
@@ -318,7 +318,7 @@ export type ContainerDefinition = {
318
318
  */
319
319
  MountPoints?: MountPoint[];
320
320
  /**
321
- * The name of a container. If you're linking multiple containers together in a task definition, the ``name`` of one container can be entered in the ``links`` of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This parameter maps to ``name`` in tthe docker container create command and the ``--name`` option to docker run.
321
+ * The name of a container. If you're linking multiple containers together in a task definition, the ``name`` of one container can be entered in the ``links`` of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This parameter maps to ``name`` in the docker container create command and the ``--name`` option to docker run.
322
322
  */
323
323
  Name: string;
324
324
  /**
@@ -335,7 +335,7 @@ export type ContainerDefinition = {
335
335
  */
336
336
  Privileged?: boolean;
337
337
  /**
338
- * When this parameter is ``true``, a TTY is allocated. This parameter maps to ``Tty`` in tthe docker container create command and the ``--tty`` option to docker run.
338
+ * When this parameter is ``true``, a TTY is allocated. This parameter maps to ``Tty`` in the docker container create command and the ``--tty`` option to docker run.
339
339
  */
340
340
  PseudoTerminal?: boolean;
341
341
  /**
@@ -376,13 +376,13 @@ export type ContainerDefinition = {
376
376
  + Linux platform version ``1.3.0`` or later.
377
377
  + Windows platform version ``1.0.0`` or later.
378
378
 
379
- The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used.
379
+ For tasks that use the Fargate launch type, the max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used.
380
380
  For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*.
381
- The valid values are 2-120 seconds.
381
+ The valid values for Fargate are 2-120 seconds.
382
382
  */
383
383
  StopTimeout?: number;
384
384
  /**
385
- * A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in tthe docker container create command and the ``--sysctl`` option to docker run. For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections.
385
+ * A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the docker container create command and the ``--sysctl`` option to docker run. For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections.
386
386
  */
387
387
  SystemControls?: SystemControl[];
388
388
  /**
@@ -404,8 +404,9 @@ export type ContainerDefinition = {
404
404
  This parameter is not supported for Windows containers.
405
405
  */
406
406
  User?: string;
407
+ VersionConsistency?: "enabled" | "disabled";
407
408
  /**
408
- * Data volumes to mount from another container. This parameter maps to ``VolumesFrom`` in tthe docker container create command and the ``--volumes-from`` option to docker run.
409
+ * Data volumes to mount from another container. This parameter maps to ``VolumesFrom`` in the docker container create command and the ``--volumes-from`` option to docker run.
409
410
  */
410
411
  VolumesFrom?: VolumeFrom[];
411
412
  /**
@@ -621,7 +622,7 @@ export type HealthCheck = {
621
622
  ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]``
622
623
  You don't include the double quotes and brackets when you use the AWS Management Console.
623
624
  ``CMD-SHELL, curl -f http://localhost/ || exit 1``
624
- An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in tthe docker container create command
625
+ An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command
625
626
  */
626
627
  Command?: string[];
627
628
  /**
@@ -729,7 +730,7 @@ export type LinuxParameters = {
729
730
  */
730
731
  Capabilities?: KernelCapabilities;
731
732
  /**
732
- * Any host devices to expose to the container. This parameter maps to ``Devices`` in tthe docker container create command and the ``--device`` option to docker run.
733
+ * Any host devices to expose to the container. This parameter maps to ``Devices`` in the docker container create command and the ``--device`` option to docker run.
733
734
  If you're using tasks that use the Fargate launch type, the ``devices`` parameter isn't supported.
734
735
  */
735
736
  Devices?: Device[];
@@ -777,8 +778,17 @@ export type LogConfiguration = {
777
778
  */
778
779
  LogDriver: string;
779
780
  /**
780
- * The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``
781
- */
781
+ * The configuration options to send to the log driver.
782
+ The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following:
783
+ + awslogs-create-group Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to false. Your IAM policy must include the logs:CreateLogGroup permission before you attempt to use awslogs-create-group. + awslogs-region Required: Yes Specify the Region that the awslogs log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. + awslogs-group Required: Yes Make sure to specify a log group that the awslogs log driver sends its log streams to. + awslogs-stream-prefix Required: Yes, when using the Fargate launch type.Optional for the EC2 launch type, required for the Fargate launch type. Use the awslogs-stream-prefix option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format prefix-name/container-name/ecs-task-id. If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. + awslogs-datetime-format Required: No This option defines a multiline start pattern in Python strftime format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see awslogs-datetime-format. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + awslogs-multiline-pattern Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see awslogs-multiline-pattern. This option is ignored if awslogs-datetime-format is also configured. You cannot configure both the awslogs-datetime-format and awslogs-multiline-pattern options. Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. + mode Required: No Valid values: non-blocking | blocking This option defines the delivery mode of log messages from the container to CloudWatch Logs. The delivery mode you choose affects application availability when the flow of logs from container to CloudWatch is interrupted. If you use the blocking mode and the flow of logs to CloudWatch is interrupted, calls from container code to write to the stdout and stderr streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the non-blocking mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the max-buffer-size option. This prevents the application from becoming unresponsive when logs cannot be sent to CloudWatch. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see Preventing log loss with non-blocking mode in the awslogs container log driver. + max-buffer-size Required: No Default value: 1m When non-blocking mode is used, the max-buffer-size log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost.
784
+ To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url``.
785
+ When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker.
786
+ Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream``.
787
+ When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream``.
788
+ When you export logs to Amazon OpenSearch Service, you can specify options like ``Name``, ``Host`` (OpenSearch Service endpoint without protocol), ``Port``, ``Index``, ``Type``, ``Aws_auth``, ``Aws_region``, ``Suppress_Type_Name``, and ``tls``.
789
+ When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region``, ``total_file_size``, ``upload_timeout``, and ``use_put_object`` as options.
790
+ This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``
791
+ */
782
792
  Options?: Record<string, string>;
783
793
  /**
784
794
  * The secrets to pass to the log configuration. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*.
@@ -985,7 +995,7 @@ export type Secret = {
985
995
  };
986
996
  /**
987
997
  * Type definition for `AWS::ECS::TaskDefinition.SystemControl`.
988
- * A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in tthe docker container create command and the ``--sysctl`` option to docker run. For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections.
998
+ * A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the docker container create command and the ``--sysctl`` option to docker run. For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections.
989
999
  We don't recommend that you specify network-related ``systemControls`` parameters for multiple containers in a single task that also uses either the ``awsvpc`` or ``host`` network mode. Doing this has the following disadvantages:
990
1000
  + For tasks that use the ``awsvpc`` network mode including Fargate, if you set ``systemControls`` for any container, it applies to all containers in the task. If you set different ``systemControls`` for multiple containers in a single task, the container that's started last determines which ``systemControls`` take effect.
991
1001
  + For tasks that use the ``host`` network mode, the network namespace ``systemControls`` aren't supported.
@@ -1079,7 +1089,7 @@ export type Tmpfs = {
1079
1089
  */
1080
1090
  export type Ulimit = {
1081
1091
  /**
1082
- * The hard limit for the ``ulimit`` type.
1092
+ * The hard limit for the ``ulimit`` type. The value can be specified in bytes, seconds, or as a count, depending on the ``type`` of the ``ulimit``.
1083
1093
  */
1084
1094
  HardLimit: number;
1085
1095
  /**
@@ -1087,7 +1097,7 @@ export type Ulimit = {
1087
1097
  */
1088
1098
  Name: string;
1089
1099
  /**
1090
- * The soft limit for the ``ulimit`` type.
1100
+ * The soft limit for the ``ulimit`` type. The value can be specified in bytes, seconds, or as a count, depending on the ``type`` of the ``ulimit``.
1091
1101
  */
1092
1102
  SoftLimit: number;
1093
1103
  };
@@ -15,6 +15,7 @@ export type FISExperimentTemplateProperties = {
15
15
  */
16
16
  Description: string;
17
17
  ExperimentOptions?: ExperimentTemplateExperimentOptions;
18
+ ExperimentReportConfiguration?: ExperimentTemplateExperimentReportConfiguration;
18
19
  LogConfiguration?: ExperimentTemplateLogConfiguration;
19
20
  /**
20
21
  * The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service permission to perform service actions on your behalf.
@@ -38,6 +39,17 @@ export type FISExperimentTemplateProperties = {
38
39
  export type FISExperimentTemplateAttributes = {
39
40
  Id: string;
40
41
  };
42
+ /**
43
+ * Type definition for `AWS::FIS::ExperimentTemplate.CloudWatchDashboard`.
44
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-cloudwatchdashboard.html}
45
+ */
46
+ export type CloudWatchDashboard = {
47
+ /**
48
+ * @minLength `1`
49
+ * @maxLength `512`
50
+ */
51
+ DashboardIdentifier: string;
52
+ };
41
53
  /**
42
54
  * Type definition for `AWS::FIS::ExperimentTemplate.ExperimentTemplateAction`.
43
55
  * Specifies an action for the experiment template.
@@ -87,6 +99,31 @@ export type ExperimentTemplateExperimentOptions = {
87
99
  */
88
100
  EmptyTargetResolutionMode?: "fail" | "skip";
89
101
  };
102
+ /**
103
+ * Type definition for `AWS::FIS::ExperimentTemplate.ExperimentTemplateExperimentReportConfiguration`.
104
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplateexperimentreportconfiguration.html}
105
+ */
106
+ export type ExperimentTemplateExperimentReportConfiguration = {
107
+ DataSources: {
108
+ CloudWatchDashboards?: CloudWatchDashboard[];
109
+ };
110
+ Outputs: {
111
+ ExperimentReportS3Configuration: {
112
+ /**
113
+ * @minLength `3`
114
+ * @maxLength `63`
115
+ */
116
+ BucketName: string;
117
+ /**
118
+ * @minLength `1`
119
+ * @maxLength `1024`
120
+ */
121
+ Prefix?: string;
122
+ };
123
+ };
124
+ PostExperimentDuration?: string;
125
+ PreExperimentDuration?: string;
126
+ };
90
127
  /**
91
128
  * Type definition for `AWS::FIS::ExperimentTemplate.ExperimentTemplateLogConfiguration`.
92
129
  * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fis-experimenttemplate-experimenttemplatelogconfiguration.html}
@@ -0,0 +1,404 @@
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::ContainerFleet resource creates an Amazon GameLift (GameLift) container fleet to host game servers.
5
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containerfleet.html}
6
+ */
7
+ export type GameLiftContainerFleetProperties = {
8
+ /**
9
+ * Indicates whether to use On-Demand instances or Spot instances for this fleet. If empty, the default is ON_DEMAND. Both categories of instances use identical hardware and configurations based on the instance type selected for this fleet.
10
+ */
11
+ BillingType?: "ON_DEMAND" | "SPOT";
12
+ /**
13
+ * Provides details about how to drain old tasks and replace them with new updated tasks.
14
+ */
15
+ DeploymentConfiguration?: DeploymentConfiguration;
16
+ /**
17
+ * A human-readable description of a fleet.
18
+ * @minLength `1`
19
+ * @maxLength `1024`
20
+ */
21
+ Description?: string;
22
+ /**
23
+ * A unique identifier for an AWS IAM role that manages access to your AWS services. Create a role or look up a role's ARN from the IAM dashboard in the AWS Management Console.
24
+ * @minLength `1`
25
+ * @maxLength `256`
26
+ * @pattern `^arn:aws(-.*)?:[a-z-]+:(([a-z]+-)+[0-9])?:([0-9]{12})?:[^.]+$`
27
+ */
28
+ FleetRoleArn: string;
29
+ /**
30
+ * The name of the container group definition that will be created per game server. You must specify GAME_SERVER container group. You have the option to also specify one PER_INSTANCE container group.
31
+ * @minLength `1`
32
+ * @maxLength `512`
33
+ * @pattern `^[a-zA-Z0-9\-]+$|^arn:.*:containergroupdefinition\/[a-zA-Z0-9\-]+(:[0-9]+)?$`
34
+ */
35
+ GameServerContainerGroupDefinitionName?: string;
36
+ /**
37
+ * The number of desired game server container groups per instance, a number between 1-5000.
38
+ * @min `1`
39
+ * @max `5000`
40
+ */
41
+ GameServerContainerGroupsPerInstance?: number;
42
+ /**
43
+ * A policy that limits the number of game sessions an individual player can create over a span of time for this fleet.
44
+ */
45
+ GameSessionCreationLimitPolicy?: GameSessionCreationLimitPolicy;
46
+ /**
47
+ * Defines the range of ports on the instance that allow inbound traffic to connect with containers in a fleet.
48
+ */
49
+ InstanceConnectionPortRange?: ConnectionPortRange;
50
+ /**
51
+ * A range of IP addresses and port settings that allow inbound traffic to connect to server processes on an Amazon GameLift server.
52
+ * @maxLength `50`
53
+ */
54
+ InstanceInboundPermissions?: IpPermission[];
55
+ /**
56
+ * The name of an EC2 instance type that is supported in Amazon GameLift. A fleet instance type determines the computing resources of each instance in the fleet, including CPU, memory, storage, and networking capacity. Amazon GameLift supports the following EC2 instance types. See Amazon EC2 Instance Types for detailed descriptions.
57
+ * @minLength `1`
58
+ * @maxLength `1024`
59
+ */
60
+ InstanceType?: string;
61
+ /**
62
+ * @maxLength `100`
63
+ */
64
+ Locations?: LocationConfiguration[];
65
+ /**
66
+ * A policy the location and provider of logs from the fleet.
67
+ */
68
+ LogConfiguration?: LogConfiguration;
69
+ /**
70
+ * The name of an Amazon CloudWatch metric group. A metric group aggregates the metrics for all fleets in the group. Specify a string containing the metric group name. You can use an existing name or use a new name to create a new metric group. Currently, this parameter can have only one string.
71
+ * @maxLength `1`
72
+ */
73
+ MetricGroups?: string[];
74
+ /**
75
+ * A game session protection policy to apply to all game sessions hosted on instances in this fleet. When protected, active game sessions cannot be terminated during a scale-down event. If this parameter is not set, instances in this fleet default to no protection. You can change a fleet's protection policy to affect future game sessions on the fleet. You can also set protection for individual game sessions.
76
+ */
77
+ NewGameSessionProtectionPolicy?: "FullProtection" | "NoProtection";
78
+ /**
79
+ * The name of the container group definition that will be created per instance. This field is optional if you specify GameServerContainerGroupDefinitionName.
80
+ * @minLength `1`
81
+ * @maxLength `512`
82
+ * @pattern `^[a-zA-Z0-9\-]+$|^arn:.*:containergroupdefinition\/[a-zA-Z0-9\-]+(:[0-9]+)?$`
83
+ */
84
+ PerInstanceContainerGroupDefinitionName?: string;
85
+ /**
86
+ * A list of rules that control how a fleet is scaled.
87
+ * @maxLength `50`
88
+ */
89
+ ScalingPolicies?: ScalingPolicy[];
90
+ /**
91
+ * An array of key-value pairs to apply to this resource.
92
+ * @maxLength `200`
93
+ */
94
+ Tags?: Tag[];
95
+ };
96
+ /**
97
+ * Attribute type definition for `AWS::GameLift::ContainerFleet`.
98
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containerfleet.html#aws-resource-gamelift-containerfleet-return-values}
99
+ */
100
+ export type GameLiftContainerFleetAttributes = {
101
+ /**
102
+ * A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds (for example "1469498468.057").
103
+ */
104
+ CreationTime: string;
105
+ /**
106
+ * Provides information about the last deployment ID and its status.
107
+ */
108
+ DeploymentDetails: {
109
+ /**
110
+ * The ID of the last deployment on the container fleet. This field will be empty if the container fleet does not have a ContainerGroupDefinition attached.
111
+ * @maxLength `1024`
112
+ * @pattern `^[a-zA-Z0-9\-]+$|^$`
113
+ */
114
+ LatestDeploymentId: string;
115
+ };
116
+ /**
117
+ * The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container fleet resource and uniquely identifies it across all AWS Regions.
118
+ * @minLength `1`
119
+ * @maxLength `512`
120
+ * @pattern `^arn:.*:[a-z]*fleet\/[a-z]*fleet-[a-zA-Z0-9\-]+$`
121
+ */
122
+ FleetArn: string;
123
+ /**
124
+ * Unique fleet ID
125
+ * @minLength `1`
126
+ * @maxLength `128`
127
+ * @pattern `^[a-z]*fleet-[a-zA-Z0-9\-]+`
128
+ */
129
+ FleetId: string;
130
+ /**
131
+ * The Amazon Resource Name (ARN) of the game server container group definition. This field will be empty if GameServerContainerGroupDefinitionName is not specified.
132
+ * @maxLength `512`
133
+ * @pattern `^arn:.*:containergroupdefinition\/[a-zA-Z0-9\-]+(:[0-9]+)?$|^$`
134
+ */
135
+ GameServerContainerGroupDefinitionArn: string;
136
+ /**
137
+ * The maximum number of game server container groups per instance, a number between 1-5000.
138
+ * @min `1`
139
+ * @max `5000`
140
+ */
141
+ MaximumGameServerContainerGroupsPerInstance: number;
142
+ /**
143
+ * The Amazon Resource Name (ARN) of the per instance container group definition. This field will be empty if PerInstanceContainerGroupDefinitionName is not specified.
144
+ * @maxLength `512`
145
+ * @pattern `^arn:.*:containergroupdefinition\/[a-zA-Z0-9\-]+(:[0-9]+)?$|^$`
146
+ */
147
+ PerInstanceContainerGroupDefinitionArn: string;
148
+ /**
149
+ * The current status of the container fleet.
150
+ */
151
+ Status: "PENDING" | "CREATING" | "CREATED" | "ACTIVATING" | "ACTIVE" | "UPDATING" | "DELETING";
152
+ };
153
+ /**
154
+ * Type definition for `AWS::GameLift::ContainerFleet.ConnectionPortRange`.
155
+ * Defines the range of ports on the instance that allow inbound traffic to connect with containers in a fleet.
156
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containerfleet-connectionportrange.html}
157
+ */
158
+ export type ConnectionPortRange = {
159
+ /**
160
+ * A starting value for a range of allowed port numbers.
161
+ * @min `1`
162
+ * @max `60000`
163
+ */
164
+ FromPort: number;
165
+ /**
166
+ * An ending value for a range of allowed port numbers. Port numbers are end-inclusive. This value must be higher than FromPort.
167
+ * @min `1`
168
+ * @max `60000`
169
+ */
170
+ ToPort: number;
171
+ };
172
+ /**
173
+ * Type definition for `AWS::GameLift::ContainerFleet.DeploymentConfiguration`.
174
+ * Provides details about how to drain old tasks and replace them with new updated tasks.
175
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containerfleet-deploymentconfiguration.html}
176
+ */
177
+ export type DeploymentConfiguration = {
178
+ /**
179
+ * The strategy to apply in case of impairment; defaults to MAINTAIN.
180
+ */
181
+ ImpairmentStrategy?: "MAINTAIN" | "ROLLBACK";
182
+ /**
183
+ * The minimum percentage of healthy required; defaults to 75.
184
+ * @min `30`
185
+ * @max `75`
186
+ */
187
+ MinimumHealthyPercentage?: number;
188
+ /**
189
+ * The protection strategy for deployment on the container fleet; defaults to WITH_PROTECTION.
190
+ */
191
+ ProtectionStrategy?: "WITH_PROTECTION" | "IGNORE_PROTECTION";
192
+ };
193
+ /**
194
+ * Type definition for `AWS::GameLift::ContainerFleet.DeploymentDetails`.
195
+ * Provides information about the last deployment ID and its status.
196
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containerfleet-deploymentdetails.html}
197
+ */
198
+ export type DeploymentDetails = {
199
+ /**
200
+ * The ID of the last deployment on the container fleet. This field will be empty if the container fleet does not have a ContainerGroupDefinition attached.
201
+ * @maxLength `1024`
202
+ * @pattern `^[a-zA-Z0-9\-]+$|^$`
203
+ */
204
+ LatestDeploymentId?: string;
205
+ };
206
+ /**
207
+ * Type definition for `AWS::GameLift::ContainerFleet.GameSessionCreationLimitPolicy`.
208
+ * A policy that limits the number of game sessions a player can create on the same fleet. This optional policy gives game owners control over how players can consume available game server resources. A resource creation policy makes the following statement: "An individual player can create a maximum number of new game sessions within a specified time period".
209
+
210
+ The policy is evaluated when a player tries to create a new game session. For example, assume you have a policy of 10 new game sessions and a time period of 60 minutes. On receiving a CreateGameSession request, Amazon GameLift checks that the player (identified by CreatorId) has created fewer than 10 game sessions in the past 60 minutes.
211
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containerfleet-gamesessioncreationlimitpolicy.html}
212
+ */
213
+ export type GameSessionCreationLimitPolicy = {
214
+ /**
215
+ * The maximum number of game sessions that an individual can create during the policy period.
216
+ * @min `0`
217
+ */
218
+ NewGameSessionsPerCreator?: number;
219
+ /**
220
+ * The time span used in evaluating the resource creation limit policy.
221
+ * @min `0`
222
+ */
223
+ PolicyPeriodInMinutes?: number;
224
+ };
225
+ /**
226
+ * Type definition for `AWS::GameLift::ContainerFleet.IpPermission`.
227
+ * 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.
228
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containerfleet-ippermission.html}
229
+ */
230
+ export type IpPermission = {
231
+ /**
232
+ * A starting value for a range of allowed port numbers.
233
+ * @min `1`
234
+ * @max `60000`
235
+ */
236
+ FromPort: number;
237
+ /**
238
+ * A range of allowed IP addresses. This value must be expressed in CIDR notation. Example: "000.000.000.000/[subnet mask]" or optionally the shortened version "0.0.0.0/[subnet mask]".
239
+ * @pattern `(^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(/([0-9]|[1-2][0-9]|3[0-2]))$)`
240
+ */
241
+ IpRange: string;
242
+ /**
243
+ * The network communication protocol used by the fleet.
244
+ */
245
+ Protocol: "TCP" | "UDP";
246
+ /**
247
+ * An ending value for a range of allowed port numbers. Port numbers are end-inclusive. This value must be higher than FromPort.
248
+ * @min `1`
249
+ * @max `60000`
250
+ */
251
+ ToPort: number;
252
+ };
253
+ /**
254
+ * Type definition for `AWS::GameLift::ContainerFleet.LocationCapacity`.
255
+ * Current resource capacity settings in a specified fleet or location. The location value might refer to a fleet's remote location or its home Region.
256
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containerfleet-locationcapacity.html}
257
+ */
258
+ export type LocationCapacity = {
259
+ /**
260
+ * The number of EC2 instances you want to maintain in the specified fleet location. This value must fall between the minimum and maximum size limits.
261
+ * @min `0`
262
+ */
263
+ DesiredEC2Instances: number;
264
+ /**
265
+ * The maximum value that is allowed for the fleet's instance count for a location.
266
+ * @min `0`
267
+ */
268
+ MaxSize: number;
269
+ /**
270
+ * The minimum value allowed for the fleet's instance count for a location.
271
+ * @min `0`
272
+ */
273
+ MinSize: number;
274
+ };
275
+ /**
276
+ * Type definition for `AWS::GameLift::ContainerFleet.LocationConfiguration`.
277
+ * A remote location where a multi-location fleet can deploy EC2 instances for game hosting.
278
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containerfleet-locationconfiguration.html}
279
+ */
280
+ export type LocationConfiguration = {
281
+ /**
282
+ * @minLength `1`
283
+ * @maxLength `64`
284
+ * @pattern `^[A-Za-z0-9\-]+`
285
+ */
286
+ Location: string;
287
+ /**
288
+ * Current resource capacity settings in a specified fleet or location. The location value might refer to a fleet's remote location or its home Region.
289
+ */
290
+ LocationCapacity?: LocationCapacity;
291
+ /**
292
+ * A list of fleet actions that have been suspended in the fleet location.
293
+ * @maxLength `1`
294
+ */
295
+ StoppedActions?: "AUTO_SCALING"[];
296
+ };
297
+ /**
298
+ * Type definition for `AWS::GameLift::ContainerFleet.LogConfiguration`.
299
+ * A policy the location and provider of logs from the fleet.
300
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containerfleet-logconfiguration.html}
301
+ */
302
+ export type LogConfiguration = {
303
+ /**
304
+ * Configures the service that provides logs.
305
+ */
306
+ LogDestination?: LogDestination;
307
+ /**
308
+ * The name of the S3 bucket to pull logs from if S3 is the LogDestination
309
+ * @minLength `1`
310
+ * @maxLength `1024`
311
+ */
312
+ S3BucketName?: string;
313
+ };
314
+ /**
315
+ * Type definition for `AWS::GameLift::ContainerFleet.LogDestination`.
316
+ * Configures the service that provides logs.
317
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containerfleet-logdestination.html}
318
+ */
319
+ export type LogDestination = "NONE" | "CLOUDWATCH" | "S3";
320
+ /**
321
+ * Type definition for `AWS::GameLift::ContainerFleet.ScalingPolicy`.
322
+ * Rule that controls how a fleet is scaled. Scaling policies are uniquely identified by the combination of name and fleet ID.
323
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containerfleet-scalingpolicy.html}
324
+ */
325
+ export type ScalingPolicy = {
326
+ /**
327
+ * Comparison operator to use when measuring a metric against the threshold value.
328
+ */
329
+ ComparisonOperator?: "GreaterThanOrEqualToThreshold" | "GreaterThanThreshold" | "LessThanThreshold" | "LessThanOrEqualToThreshold";
330
+ /**
331
+ * Length of time (in minutes) the metric must be at or beyond the threshold before a scaling event is triggered.
332
+ * @min `1`
333
+ */
334
+ EvaluationPeriods?: number;
335
+ /**
336
+ * Name of the Amazon GameLift-defined metric that is used to trigger a scaling adjustment.
337
+ */
338
+ MetricName: "ActivatingGameSessions" | "ActiveGameSessions" | "ActiveInstances" | "AvailableGameSessions" | "AvailablePlayerSessions" | "CurrentPlayerSessions" | "IdleInstances" | "PercentAvailableGameSessions" | "PercentIdleInstances" | "QueueDepth" | "WaitTime" | "ConcurrentActivatableGameSessions";
339
+ /**
340
+ * A descriptive label that is associated with a fleet's scaling policy. Policy names do not need to be unique.
341
+ * @minLength `1`
342
+ * @maxLength `1024`
343
+ */
344
+ Name: string;
345
+ /**
346
+ * The type of scaling policy to create. For a target-based policy, set the parameter MetricName to 'PercentAvailableGameSessions' and specify a TargetConfiguration. For a rule-based policy set the following parameters: MetricName, ComparisonOperator, Threshold, EvaluationPeriods, ScalingAdjustmentType, and ScalingAdjustment.
347
+ */
348
+ PolicyType?: "RuleBased" | "TargetBased";
349
+ /**
350
+ * Amount of adjustment to make, based on the scaling adjustment type.
351
+ */
352
+ ScalingAdjustment?: number;
353
+ /**
354
+ * The type of adjustment to make to a fleet's instance count.
355
+ */
356
+ ScalingAdjustmentType?: "ChangeInCapacity" | "ExactCapacity" | "PercentChangeInCapacity";
357
+ /**
358
+ * An object that contains settings for a target-based scaling policy.
359
+ */
360
+ TargetConfiguration?: TargetConfiguration;
361
+ /**
362
+ * Metric value used to trigger a scaling event.
363
+ */
364
+ Threshold?: number;
365
+ };
366
+ /**
367
+ * Type definition for `AWS::GameLift::ContainerFleet.Tag`.
368
+ * A key-value pair to associate with a resource.
369
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containerfleet-tag.html}
370
+ */
371
+ export type Tag = {
372
+ /**
373
+ * The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length.
374
+ * @minLength `1`
375
+ * @maxLength `128`
376
+ */
377
+ Key: string;
378
+ /**
379
+ * The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length.
380
+ * @minLength `0`
381
+ * @maxLength `256`
382
+ */
383
+ Value: string;
384
+ };
385
+ /**
386
+ * Type definition for `AWS::GameLift::ContainerFleet.TargetConfiguration`.
387
+ * Settings for a target-based scaling policy. A target-based policy tracks a particular fleet metric specifies a target value for the metric. As player usage changes, the policy triggers Amazon GameLift to adjust capacity so that the metric returns to the target value. The target configuration specifies settings as needed for the target based policy, including the target value.
388
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containerfleet-targetconfiguration.html}
389
+ */
390
+ export type TargetConfiguration = {
391
+ /**
392
+ * Desired value to use with a target-based scaling policy. The value must be relevant for whatever metric the scaling policy is using. For example, in a policy using the metric PercentAvailableGameSessions, the target value should be the preferred size of the fleet's buffer (the percent of capacity that should be idle and ready for new game sessions).
393
+ */
394
+ TargetValue: number;
395
+ };
396
+ /**
397
+ * The AWS::GameLift::ContainerFleet resource creates an Amazon GameLift (GameLift) container fleet to host game servers.
398
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containerfleet.html}
399
+ */
400
+ export declare class GameLiftContainerFleet extends $Resource<"AWS::GameLift::ContainerFleet", GameLiftContainerFleetProperties, GameLiftContainerFleetAttributes> {
401
+ static readonly Type = "AWS::GameLift::ContainerFleet";
402
+ constructor(logicalId: string, properties: GameLiftContainerFleetProperties, options?: $ResourceOptions);
403
+ }
404
+ //# sourceMappingURL=AWS-GameLift-ContainerFleet.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { Resource as $Resource } from "@awboost/cfn-template-builder/template/resource";
2
+ /**
3
+ * The AWS::GameLift::ContainerFleet resource creates an Amazon GameLift (GameLift) container fleet to host game servers.
4
+ * @see {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containerfleet.html}
5
+ */
6
+ export class GameLiftContainerFleet extends $Resource {
7
+ static Type = "AWS::GameLift::ContainerFleet";
8
+ constructor(logicalId, properties, options) {
9
+ super(logicalId, GameLiftContainerFleet.Type, properties, options);
10
+ }
11
+ }
12
+ //# sourceMappingURL=AWS-GameLift-ContainerFleet.js.map