aws-cdk-lib 2.139.1__py3-none-any.whl → 2.140.0__py3-none-any.whl

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.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (47) hide show
  1. aws_cdk/__init__.py +8 -0
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.139.1.jsii.tgz → aws-cdk-lib@2.140.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_acmpca/__init__.py +70 -56
  5. aws_cdk/aws_apigateway/__init__.py +126 -53
  6. aws_cdk/aws_applicationautoscaling/__init__.py +1 -4
  7. aws_cdk/aws_arczonalshift/__init__.py +49 -44
  8. aws_cdk/aws_bedrock/__init__.py +2818 -146
  9. aws_cdk/aws_cloudfront/__init__.py +51 -9
  10. aws_cdk/aws_codecommit/__init__.py +72 -46
  11. aws_cdk/aws_connectcampaigns/__init__.py +34 -4
  12. aws_cdk/aws_datasync/__init__.py +47 -21
  13. aws_cdk/aws_dms/__init__.py +0 -269
  14. aws_cdk/aws_ec2/__init__.py +149 -44
  15. aws_cdk/aws_ecs/__init__.py +2 -4
  16. aws_cdk/aws_efs/__init__.py +16 -2
  17. aws_cdk/aws_eks/__init__.py +57 -0
  18. aws_cdk/aws_events/__init__.py +115 -0
  19. aws_cdk/aws_events_targets/__init__.py +15 -0
  20. aws_cdk/aws_fis/__init__.py +2 -1
  21. aws_cdk/aws_gamelift/__init__.py +1846 -70
  22. aws_cdk/aws_globalaccelerator/__init__.py +20 -16
  23. aws_cdk/aws_iam/__init__.py +2 -2
  24. aws_cdk/aws_kinesis/__init__.py +21 -0
  25. aws_cdk/aws_kinesisvideo/__init__.py +6 -4
  26. aws_cdk/aws_kms/__init__.py +22 -1
  27. aws_cdk/aws_lambda/__init__.py +0 -9
  28. aws_cdk/aws_medialive/__init__.py +444 -3
  29. aws_cdk/aws_paymentcryptography/__init__.py +1075 -0
  30. aws_cdk/aws_personalize/__init__.py +8 -2
  31. aws_cdk/aws_qbusiness/__init__.py +5257 -0
  32. aws_cdk/aws_quicksight/__init__.py +9996 -1446
  33. aws_cdk/aws_rds/__init__.py +42 -0
  34. aws_cdk/aws_redshiftserverless/__init__.py +13 -9
  35. aws_cdk/aws_route53/__init__.py +350 -0
  36. aws_cdk/aws_route53profiles/__init__.py +1048 -0
  37. aws_cdk/aws_s3/__init__.py +1 -1
  38. aws_cdk/aws_transfer/__init__.py +102 -37
  39. aws_cdk/aws_workspacesweb/__init__.py +92 -6
  40. aws_cdk/custom_resources/__init__.py +23 -2
  41. aws_cdk/cx_api/__init__.py +16 -0
  42. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.140.0.dist-info}/METADATA +2 -2
  43. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.140.0.dist-info}/RECORD +47 -44
  44. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.140.0.dist-info}/LICENSE +0 -0
  45. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.140.0.dist-info}/NOTICE +0 -0
  46. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.140.0.dist-info}/WHEEL +0 -0
  47. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.140.0.dist-info}/top_level.txt +0 -0
@@ -54,6 +54,7 @@ from .. import (
54
54
  IInspectable as _IInspectable_c2943556,
55
55
  IResolvable as _IResolvable_da3f097b,
56
56
  ITaggable as _ITaggable_36806126,
57
+ ITaggableV2 as _ITaggableV2_4e6798f8,
57
58
  TagManager as _TagManager_0a598cb3,
58
59
  TreeInspector as _TreeInspector_488e0dd5,
59
60
  )
@@ -856,6 +857,1266 @@ class CfnBuildProps:
856
857
  )
857
858
 
858
859
 
860
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
861
+ class CfnContainerGroupDefinition(
862
+ _CfnResource_9df397a6,
863
+ metaclass=jsii.JSIIMeta,
864
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition",
865
+ ):
866
+ '''The AWS::GameLift::ContainerGroupDefinition resource creates an Amazon GameLift container group definition.
867
+
868
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html
869
+ :cloudformationResource: AWS::GameLift::ContainerGroupDefinition
870
+ :exampleMetadata: fixture=_generated
871
+
872
+ Example::
873
+
874
+ # The code below shows an example of how to instantiate this type.
875
+ # The values are placeholders you should change.
876
+ from aws_cdk import aws_gamelift as gamelift
877
+
878
+ cfn_container_group_definition = gamelift.CfnContainerGroupDefinition(self, "MyCfnContainerGroupDefinition",
879
+ container_definitions=[gamelift.CfnContainerGroupDefinition.ContainerDefinitionProperty(
880
+ container_name="containerName",
881
+ image_uri="imageUri",
882
+
883
+ # the properties below are optional
884
+ command=["command"],
885
+ cpu=123,
886
+ depends_on=[gamelift.CfnContainerGroupDefinition.ContainerDependencyProperty(
887
+ condition="condition",
888
+ container_name="containerName"
889
+ )],
890
+ entry_point=["entryPoint"],
891
+ environment=[gamelift.CfnContainerGroupDefinition.ContainerEnvironmentProperty(
892
+ name="name",
893
+ value="value"
894
+ )],
895
+ essential=False,
896
+ health_check=gamelift.CfnContainerGroupDefinition.ContainerHealthCheckProperty(
897
+ command=["command"],
898
+
899
+ # the properties below are optional
900
+ interval=123,
901
+ retries=123,
902
+ start_period=123,
903
+ timeout=123
904
+ ),
905
+ memory_limits=gamelift.CfnContainerGroupDefinition.MemoryLimitsProperty(
906
+ hard_limit=123,
907
+ soft_limit=123
908
+ ),
909
+ port_configuration=gamelift.CfnContainerGroupDefinition.PortConfigurationProperty(
910
+ container_port_ranges=[gamelift.CfnContainerGroupDefinition.ContainerPortRangeProperty(
911
+ from_port=123,
912
+ protocol="protocol",
913
+ to_port=123
914
+ )]
915
+ ),
916
+ resolved_image_digest="resolvedImageDigest",
917
+ working_directory="workingDirectory"
918
+ )],
919
+ name="name",
920
+ operating_system="operatingSystem",
921
+ total_cpu_limit=123,
922
+ total_memory_limit=123,
923
+
924
+ # the properties below are optional
925
+ scheduling_strategy="schedulingStrategy",
926
+ tags=[CfnTag(
927
+ key="key",
928
+ value="value"
929
+ )]
930
+ )
931
+ '''
932
+
933
+ def __init__(
934
+ self,
935
+ scope: _constructs_77d1e7e8.Construct,
936
+ id: builtins.str,
937
+ *,
938
+ container_definitions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContainerGroupDefinition.ContainerDefinitionProperty", typing.Dict[builtins.str, typing.Any]]]]],
939
+ name: builtins.str,
940
+ operating_system: builtins.str,
941
+ total_cpu_limit: jsii.Number,
942
+ total_memory_limit: jsii.Number,
943
+ scheduling_strategy: typing.Optional[builtins.str] = None,
944
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
945
+ ) -> None:
946
+ '''
947
+ :param scope: Scope in which this resource is defined.
948
+ :param id: Construct identifier for this resource (unique in its scope).
949
+ :param container_definitions: A collection of container definitions that define the containers in this group.
950
+ :param name: A descriptive label for the container group definition.
951
+ :param operating_system: The operating system of the container group.
952
+ :param total_cpu_limit: 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.)
953
+ :param total_memory_limit: The maximum amount of memory (in MiB) to allocate for this container group.
954
+ :param scheduling_strategy: Specifies whether the container group includes replica or daemon containers.
955
+ :param tags: An array of key-value pairs to apply to this resource.
956
+ '''
957
+ if __debug__:
958
+ type_hints = typing.get_type_hints(_typecheckingstub__2d0ad3aeb1243549bc05c0346bb1e8303d21326ec9f1a17ec63327d7e3f29a1e)
959
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
960
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
961
+ props = CfnContainerGroupDefinitionProps(
962
+ container_definitions=container_definitions,
963
+ name=name,
964
+ operating_system=operating_system,
965
+ total_cpu_limit=total_cpu_limit,
966
+ total_memory_limit=total_memory_limit,
967
+ scheduling_strategy=scheduling_strategy,
968
+ tags=tags,
969
+ )
970
+
971
+ jsii.create(self.__class__, self, [scope, id, props])
972
+
973
+ @jsii.member(jsii_name="inspect")
974
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
975
+ '''Examines the CloudFormation resource and discloses attributes.
976
+
977
+ :param inspector: tree inspector to collect and process attributes.
978
+ '''
979
+ if __debug__:
980
+ type_hints = typing.get_type_hints(_typecheckingstub__b07a706beb428681d6a41fe2a705cfe7e9f6f65c0df4708d633a856c73d6fa7b)
981
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
982
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
983
+
984
+ @jsii.member(jsii_name="renderProperties")
985
+ def _render_properties(
986
+ self,
987
+ props: typing.Mapping[builtins.str, typing.Any],
988
+ ) -> typing.Mapping[builtins.str, typing.Any]:
989
+ '''
990
+ :param props: -
991
+ '''
992
+ if __debug__:
993
+ type_hints = typing.get_type_hints(_typecheckingstub__abcc96ad0c8f9f987fd719eb37179f12dda8829dbbc0b9fb28188a52044ec711)
994
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
995
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
996
+
997
+ @jsii.python.classproperty
998
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
999
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
1000
+ '''The CloudFormation resource type name for this resource class.'''
1001
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
1002
+
1003
+ @builtins.property
1004
+ @jsii.member(jsii_name="attrContainerGroupDefinitionArn")
1005
+ def attr_container_group_definition_arn(self) -> builtins.str:
1006
+ '''The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift container group resource and uniquely identifies it across all AWS Regions.
1007
+
1008
+ :cloudformationAttribute: ContainerGroupDefinitionArn
1009
+ '''
1010
+ return typing.cast(builtins.str, jsii.get(self, "attrContainerGroupDefinitionArn"))
1011
+
1012
+ @builtins.property
1013
+ @jsii.member(jsii_name="attrCreationTime")
1014
+ def attr_creation_time(self) -> builtins.str:
1015
+ '''A time stamp indicating when this data object was created.
1016
+
1017
+ Format is a number expressed in Unix time as milliseconds (for example "1469498468.057").
1018
+
1019
+ :cloudformationAttribute: CreationTime
1020
+ '''
1021
+ return typing.cast(builtins.str, jsii.get(self, "attrCreationTime"))
1022
+
1023
+ @builtins.property
1024
+ @jsii.member(jsii_name="cdkTagManager")
1025
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
1026
+ '''Tag Manager which manages the tags for this resource.'''
1027
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
1028
+
1029
+ @builtins.property
1030
+ @jsii.member(jsii_name="cfnProperties")
1031
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1032
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1033
+
1034
+ @builtins.property
1035
+ @jsii.member(jsii_name="containerDefinitions")
1036
+ def container_definitions(
1037
+ self,
1038
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerDefinitionProperty"]]]:
1039
+ '''A collection of container definitions that define the containers in this group.'''
1040
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerDefinitionProperty"]]], jsii.get(self, "containerDefinitions"))
1041
+
1042
+ @container_definitions.setter
1043
+ def container_definitions(
1044
+ self,
1045
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerDefinitionProperty"]]],
1046
+ ) -> None:
1047
+ if __debug__:
1048
+ type_hints = typing.get_type_hints(_typecheckingstub__1d575dc521c3da1f3682c88ce08e24b38977a41bef8807469e908a4fc94b8be0)
1049
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1050
+ jsii.set(self, "containerDefinitions", value)
1051
+
1052
+ @builtins.property
1053
+ @jsii.member(jsii_name="name")
1054
+ def name(self) -> builtins.str:
1055
+ '''A descriptive label for the container group definition.'''
1056
+ return typing.cast(builtins.str, jsii.get(self, "name"))
1057
+
1058
+ @name.setter
1059
+ def name(self, value: builtins.str) -> None:
1060
+ if __debug__:
1061
+ type_hints = typing.get_type_hints(_typecheckingstub__90e8a024d1021ae9b57dadc57167a55f375efa5756fd3358541d1bbca8f16cf0)
1062
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1063
+ jsii.set(self, "name", value)
1064
+
1065
+ @builtins.property
1066
+ @jsii.member(jsii_name="operatingSystem")
1067
+ def operating_system(self) -> builtins.str:
1068
+ '''The operating system of the container group.'''
1069
+ return typing.cast(builtins.str, jsii.get(self, "operatingSystem"))
1070
+
1071
+ @operating_system.setter
1072
+ def operating_system(self, value: builtins.str) -> None:
1073
+ if __debug__:
1074
+ type_hints = typing.get_type_hints(_typecheckingstub__8f85c42319aa42e6c796369d8760bfb73c97a6305632fa1b86497b93a214a2ec)
1075
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1076
+ jsii.set(self, "operatingSystem", value)
1077
+
1078
+ @builtins.property
1079
+ @jsii.member(jsii_name="totalCpuLimit")
1080
+ def total_cpu_limit(self) -> jsii.Number:
1081
+ '''The maximum number of CPU units reserved for this container group.'''
1082
+ return typing.cast(jsii.Number, jsii.get(self, "totalCpuLimit"))
1083
+
1084
+ @total_cpu_limit.setter
1085
+ def total_cpu_limit(self, value: jsii.Number) -> None:
1086
+ if __debug__:
1087
+ type_hints = typing.get_type_hints(_typecheckingstub__c70806f2091ef0e31ae18f95ca9388e13070bc234c9db0acb79308e3bb8064c8)
1088
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1089
+ jsii.set(self, "totalCpuLimit", value)
1090
+
1091
+ @builtins.property
1092
+ @jsii.member(jsii_name="totalMemoryLimit")
1093
+ def total_memory_limit(self) -> jsii.Number:
1094
+ '''The maximum amount of memory (in MiB) to allocate for this container group.'''
1095
+ return typing.cast(jsii.Number, jsii.get(self, "totalMemoryLimit"))
1096
+
1097
+ @total_memory_limit.setter
1098
+ def total_memory_limit(self, value: jsii.Number) -> None:
1099
+ if __debug__:
1100
+ type_hints = typing.get_type_hints(_typecheckingstub__b4cc7de67e0ef4b7a915c9522aa5d27817d4c88d3cc0d6cc3897ec44fe82624e)
1101
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1102
+ jsii.set(self, "totalMemoryLimit", value)
1103
+
1104
+ @builtins.property
1105
+ @jsii.member(jsii_name="schedulingStrategy")
1106
+ def scheduling_strategy(self) -> typing.Optional[builtins.str]:
1107
+ '''Specifies whether the container group includes replica or daemon containers.'''
1108
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "schedulingStrategy"))
1109
+
1110
+ @scheduling_strategy.setter
1111
+ def scheduling_strategy(self, value: typing.Optional[builtins.str]) -> None:
1112
+ if __debug__:
1113
+ type_hints = typing.get_type_hints(_typecheckingstub__ee4192c1232484aa6cb4b7a0ff2133a07c228af7fc593005174668d67f88e787)
1114
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1115
+ jsii.set(self, "schedulingStrategy", value)
1116
+
1117
+ @builtins.property
1118
+ @jsii.member(jsii_name="tags")
1119
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1120
+ '''An array of key-value pairs to apply to this resource.'''
1121
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
1122
+
1123
+ @tags.setter
1124
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
1125
+ if __debug__:
1126
+ type_hints = typing.get_type_hints(_typecheckingstub__39d9905e11429554186c96e0a5c07109b132519014161fc8e8d7aa9f4250218d)
1127
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1128
+ jsii.set(self, "tags", value)
1129
+
1130
+ @jsii.data_type(
1131
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.ContainerDefinitionProperty",
1132
+ jsii_struct_bases=[],
1133
+ name_mapping={
1134
+ "container_name": "containerName",
1135
+ "image_uri": "imageUri",
1136
+ "command": "command",
1137
+ "cpu": "cpu",
1138
+ "depends_on": "dependsOn",
1139
+ "entry_point": "entryPoint",
1140
+ "environment": "environment",
1141
+ "essential": "essential",
1142
+ "health_check": "healthCheck",
1143
+ "memory_limits": "memoryLimits",
1144
+ "port_configuration": "portConfiguration",
1145
+ "resolved_image_digest": "resolvedImageDigest",
1146
+ "working_directory": "workingDirectory",
1147
+ },
1148
+ )
1149
+ class ContainerDefinitionProperty:
1150
+ def __init__(
1151
+ self,
1152
+ *,
1153
+ container_name: builtins.str,
1154
+ image_uri: builtins.str,
1155
+ command: typing.Optional[typing.Sequence[builtins.str]] = None,
1156
+ cpu: typing.Optional[jsii.Number] = None,
1157
+ depends_on: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContainerGroupDefinition.ContainerDependencyProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
1158
+ entry_point: typing.Optional[typing.Sequence[builtins.str]] = None,
1159
+ environment: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContainerGroupDefinition.ContainerEnvironmentProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
1160
+ essential: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1161
+ health_check: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContainerGroupDefinition.ContainerHealthCheckProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1162
+ memory_limits: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContainerGroupDefinition.MemoryLimitsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1163
+ port_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContainerGroupDefinition.PortConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1164
+ resolved_image_digest: typing.Optional[builtins.str] = None,
1165
+ working_directory: typing.Optional[builtins.str] = None,
1166
+ ) -> None:
1167
+ '''Details about a container that is used in a container fleet.
1168
+
1169
+ :param container_name: A descriptive label for the container definition. Container definition names must be unique with a container group definition.
1170
+ :param image_uri: Specifies the image URI of this container.
1171
+ :param command: The command that's passed to the container.
1172
+ :param cpu: 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
1173
+ :param depends_on: 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.
1174
+ :param entry_point: 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.
1175
+ :param environment: The environment variables to pass to a container.
1176
+ :param essential: 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.
1177
+ :param health_check: Specifies how the process manager checks the health of containers.
1178
+ :param memory_limits: Specifies how much memory is available to the container.
1179
+ :param port_configuration: Defines the ports on a container.
1180
+ :param resolved_image_digest: The digest of the container image.
1181
+ :param working_directory: The working directory to run commands inside the container in.
1182
+
1183
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html
1184
+ :exampleMetadata: fixture=_generated
1185
+
1186
+ Example::
1187
+
1188
+ # The code below shows an example of how to instantiate this type.
1189
+ # The values are placeholders you should change.
1190
+ from aws_cdk import aws_gamelift as gamelift
1191
+
1192
+ container_definition_property = gamelift.CfnContainerGroupDefinition.ContainerDefinitionProperty(
1193
+ container_name="containerName",
1194
+ image_uri="imageUri",
1195
+
1196
+ # the properties below are optional
1197
+ command=["command"],
1198
+ cpu=123,
1199
+ depends_on=[gamelift.CfnContainerGroupDefinition.ContainerDependencyProperty(
1200
+ condition="condition",
1201
+ container_name="containerName"
1202
+ )],
1203
+ entry_point=["entryPoint"],
1204
+ environment=[gamelift.CfnContainerGroupDefinition.ContainerEnvironmentProperty(
1205
+ name="name",
1206
+ value="value"
1207
+ )],
1208
+ essential=False,
1209
+ health_check=gamelift.CfnContainerGroupDefinition.ContainerHealthCheckProperty(
1210
+ command=["command"],
1211
+
1212
+ # the properties below are optional
1213
+ interval=123,
1214
+ retries=123,
1215
+ start_period=123,
1216
+ timeout=123
1217
+ ),
1218
+ memory_limits=gamelift.CfnContainerGroupDefinition.MemoryLimitsProperty(
1219
+ hard_limit=123,
1220
+ soft_limit=123
1221
+ ),
1222
+ port_configuration=gamelift.CfnContainerGroupDefinition.PortConfigurationProperty(
1223
+ container_port_ranges=[gamelift.CfnContainerGroupDefinition.ContainerPortRangeProperty(
1224
+ from_port=123,
1225
+ protocol="protocol",
1226
+ to_port=123
1227
+ )]
1228
+ ),
1229
+ resolved_image_digest="resolvedImageDigest",
1230
+ working_directory="workingDirectory"
1231
+ )
1232
+ '''
1233
+ if __debug__:
1234
+ type_hints = typing.get_type_hints(_typecheckingstub__3d96474fb31ceec64a55f6a09274f19f2dde05387b5bdd5c76ce6f26d90d5eb7)
1235
+ check_type(argname="argument container_name", value=container_name, expected_type=type_hints["container_name"])
1236
+ check_type(argname="argument image_uri", value=image_uri, expected_type=type_hints["image_uri"])
1237
+ check_type(argname="argument command", value=command, expected_type=type_hints["command"])
1238
+ check_type(argname="argument cpu", value=cpu, expected_type=type_hints["cpu"])
1239
+ check_type(argname="argument depends_on", value=depends_on, expected_type=type_hints["depends_on"])
1240
+ check_type(argname="argument entry_point", value=entry_point, expected_type=type_hints["entry_point"])
1241
+ check_type(argname="argument environment", value=environment, expected_type=type_hints["environment"])
1242
+ check_type(argname="argument essential", value=essential, expected_type=type_hints["essential"])
1243
+ check_type(argname="argument health_check", value=health_check, expected_type=type_hints["health_check"])
1244
+ check_type(argname="argument memory_limits", value=memory_limits, expected_type=type_hints["memory_limits"])
1245
+ check_type(argname="argument port_configuration", value=port_configuration, expected_type=type_hints["port_configuration"])
1246
+ check_type(argname="argument resolved_image_digest", value=resolved_image_digest, expected_type=type_hints["resolved_image_digest"])
1247
+ check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
1248
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1249
+ "container_name": container_name,
1250
+ "image_uri": image_uri,
1251
+ }
1252
+ if command is not None:
1253
+ self._values["command"] = command
1254
+ if cpu is not None:
1255
+ self._values["cpu"] = cpu
1256
+ if depends_on is not None:
1257
+ self._values["depends_on"] = depends_on
1258
+ if entry_point is not None:
1259
+ self._values["entry_point"] = entry_point
1260
+ if environment is not None:
1261
+ self._values["environment"] = environment
1262
+ if essential is not None:
1263
+ self._values["essential"] = essential
1264
+ if health_check is not None:
1265
+ self._values["health_check"] = health_check
1266
+ if memory_limits is not None:
1267
+ self._values["memory_limits"] = memory_limits
1268
+ if port_configuration is not None:
1269
+ self._values["port_configuration"] = port_configuration
1270
+ if resolved_image_digest is not None:
1271
+ self._values["resolved_image_digest"] = resolved_image_digest
1272
+ if working_directory is not None:
1273
+ self._values["working_directory"] = working_directory
1274
+
1275
+ @builtins.property
1276
+ def container_name(self) -> builtins.str:
1277
+ '''A descriptive label for the container definition.
1278
+
1279
+ Container definition names must be unique with a container group definition.
1280
+
1281
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-containername
1282
+ '''
1283
+ result = self._values.get("container_name")
1284
+ assert result is not None, "Required property 'container_name' is missing"
1285
+ return typing.cast(builtins.str, result)
1286
+
1287
+ @builtins.property
1288
+ def image_uri(self) -> builtins.str:
1289
+ '''Specifies the image URI of this container.
1290
+
1291
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-imageuri
1292
+ '''
1293
+ result = self._values.get("image_uri")
1294
+ assert result is not None, "Required property 'image_uri' is missing"
1295
+ return typing.cast(builtins.str, result)
1296
+
1297
+ @builtins.property
1298
+ def command(self) -> typing.Optional[typing.List[builtins.str]]:
1299
+ '''The command that's passed to the container.
1300
+
1301
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-command
1302
+ '''
1303
+ result = self._values.get("command")
1304
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1305
+
1306
+ @builtins.property
1307
+ def cpu(self) -> typing.Optional[jsii.Number]:
1308
+ '''The maximum number of CPU units reserved for this container.
1309
+
1310
+ The value is expressed as an integer amount of CPU units. 1 vCPU is equal to 1024 CPU units
1311
+
1312
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-cpu
1313
+ '''
1314
+ result = self._values.get("cpu")
1315
+ return typing.cast(typing.Optional[jsii.Number], result)
1316
+
1317
+ @builtins.property
1318
+ def depends_on(
1319
+ self,
1320
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerDependencyProperty"]]]]:
1321
+ '''A list of container dependencies that determines when this container starts up and shuts down.
1322
+
1323
+ For container groups with multiple containers, dependencies let you define a startup/shutdown sequence across the containers.
1324
+
1325
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-dependson
1326
+ '''
1327
+ result = self._values.get("depends_on")
1328
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerDependencyProperty"]]]], result)
1329
+
1330
+ @builtins.property
1331
+ def entry_point(self) -> typing.Optional[typing.List[builtins.str]]:
1332
+ '''The entry point that's passed to the container so that it will run as an executable.
1333
+
1334
+ If there are multiple arguments, each argument is a string in the array.
1335
+
1336
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-entrypoint
1337
+ '''
1338
+ result = self._values.get("entry_point")
1339
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1340
+
1341
+ @builtins.property
1342
+ def environment(
1343
+ self,
1344
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerEnvironmentProperty"]]]]:
1345
+ '''The environment variables to pass to a container.
1346
+
1347
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-environment
1348
+ '''
1349
+ result = self._values.get("environment")
1350
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerEnvironmentProperty"]]]], result)
1351
+
1352
+ @builtins.property
1353
+ def essential(
1354
+ self,
1355
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
1356
+ '''Specifies if the container is essential.
1357
+
1358
+ 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.
1359
+
1360
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-essential
1361
+ '''
1362
+ result = self._values.get("essential")
1363
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
1364
+
1365
+ @builtins.property
1366
+ def health_check(
1367
+ self,
1368
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerHealthCheckProperty"]]:
1369
+ '''Specifies how the process manager checks the health of containers.
1370
+
1371
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-healthcheck
1372
+ '''
1373
+ result = self._values.get("health_check")
1374
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerHealthCheckProperty"]], result)
1375
+
1376
+ @builtins.property
1377
+ def memory_limits(
1378
+ self,
1379
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.MemoryLimitsProperty"]]:
1380
+ '''Specifies how much memory is available to the container.
1381
+
1382
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-memorylimits
1383
+ '''
1384
+ result = self._values.get("memory_limits")
1385
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.MemoryLimitsProperty"]], result)
1386
+
1387
+ @builtins.property
1388
+ def port_configuration(
1389
+ self,
1390
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.PortConfigurationProperty"]]:
1391
+ '''Defines the ports on a container.
1392
+
1393
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-portconfiguration
1394
+ '''
1395
+ result = self._values.get("port_configuration")
1396
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.PortConfigurationProperty"]], result)
1397
+
1398
+ @builtins.property
1399
+ def resolved_image_digest(self) -> typing.Optional[builtins.str]:
1400
+ '''The digest of the container image.
1401
+
1402
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-resolvedimagedigest
1403
+ '''
1404
+ result = self._values.get("resolved_image_digest")
1405
+ return typing.cast(typing.Optional[builtins.str], result)
1406
+
1407
+ @builtins.property
1408
+ def working_directory(self) -> typing.Optional[builtins.str]:
1409
+ '''The working directory to run commands inside the container in.
1410
+
1411
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-workingdirectory
1412
+ '''
1413
+ result = self._values.get("working_directory")
1414
+ return typing.cast(typing.Optional[builtins.str], result)
1415
+
1416
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1417
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1418
+
1419
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1420
+ return not (rhs == self)
1421
+
1422
+ def __repr__(self) -> str:
1423
+ return "ContainerDefinitionProperty(%s)" % ", ".join(
1424
+ k + "=" + repr(v) for k, v in self._values.items()
1425
+ )
1426
+
1427
+ @jsii.data_type(
1428
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.ContainerDependencyProperty",
1429
+ jsii_struct_bases=[],
1430
+ name_mapping={"condition": "condition", "container_name": "containerName"},
1431
+ )
1432
+ class ContainerDependencyProperty:
1433
+ def __init__(
1434
+ self,
1435
+ *,
1436
+ condition: builtins.str,
1437
+ container_name: builtins.str,
1438
+ ) -> None:
1439
+ '''A dependency that impacts a container's startup and shutdown.
1440
+
1441
+ :param condition: The type of dependency.
1442
+ :param container_name: A descriptive label for the container definition. The container being defined depends on this container's condition.
1443
+
1444
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdependency.html
1445
+ :exampleMetadata: fixture=_generated
1446
+
1447
+ Example::
1448
+
1449
+ # The code below shows an example of how to instantiate this type.
1450
+ # The values are placeholders you should change.
1451
+ from aws_cdk import aws_gamelift as gamelift
1452
+
1453
+ container_dependency_property = gamelift.CfnContainerGroupDefinition.ContainerDependencyProperty(
1454
+ condition="condition",
1455
+ container_name="containerName"
1456
+ )
1457
+ '''
1458
+ if __debug__:
1459
+ type_hints = typing.get_type_hints(_typecheckingstub__e8424bed9ce9567d13ec372652e5d607735583e13219bd42143f538aee3feb1f)
1460
+ check_type(argname="argument condition", value=condition, expected_type=type_hints["condition"])
1461
+ check_type(argname="argument container_name", value=container_name, expected_type=type_hints["container_name"])
1462
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1463
+ "condition": condition,
1464
+ "container_name": container_name,
1465
+ }
1466
+
1467
+ @builtins.property
1468
+ def condition(self) -> builtins.str:
1469
+ '''The type of dependency.
1470
+
1471
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdependency.html#cfn-gamelift-containergroupdefinition-containerdependency-condition
1472
+ '''
1473
+ result = self._values.get("condition")
1474
+ assert result is not None, "Required property 'condition' is missing"
1475
+ return typing.cast(builtins.str, result)
1476
+
1477
+ @builtins.property
1478
+ def container_name(self) -> builtins.str:
1479
+ '''A descriptive label for the container definition.
1480
+
1481
+ The container being defined depends on this container's condition.
1482
+
1483
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdependency.html#cfn-gamelift-containergroupdefinition-containerdependency-containername
1484
+ '''
1485
+ result = self._values.get("container_name")
1486
+ assert result is not None, "Required property 'container_name' is missing"
1487
+ return typing.cast(builtins.str, result)
1488
+
1489
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1490
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1491
+
1492
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1493
+ return not (rhs == self)
1494
+
1495
+ def __repr__(self) -> str:
1496
+ return "ContainerDependencyProperty(%s)" % ", ".join(
1497
+ k + "=" + repr(v) for k, v in self._values.items()
1498
+ )
1499
+
1500
+ @jsii.data_type(
1501
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.ContainerEnvironmentProperty",
1502
+ jsii_struct_bases=[],
1503
+ name_mapping={"name": "name", "value": "value"},
1504
+ )
1505
+ class ContainerEnvironmentProperty:
1506
+ def __init__(self, *, name: builtins.str, value: builtins.str) -> None:
1507
+ '''An environment variable to set inside a container, in the form of a key-value pair.
1508
+
1509
+ :param name: The environment variable name.
1510
+ :param value: The environment variable value.
1511
+
1512
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerenvironment.html
1513
+ :exampleMetadata: fixture=_generated
1514
+
1515
+ Example::
1516
+
1517
+ # The code below shows an example of how to instantiate this type.
1518
+ # The values are placeholders you should change.
1519
+ from aws_cdk import aws_gamelift as gamelift
1520
+
1521
+ container_environment_property = gamelift.CfnContainerGroupDefinition.ContainerEnvironmentProperty(
1522
+ name="name",
1523
+ value="value"
1524
+ )
1525
+ '''
1526
+ if __debug__:
1527
+ type_hints = typing.get_type_hints(_typecheckingstub__c8a971f77ef4383909669846d3e4ee4a8463f7353ec0c1aa4da152ea7ec43bb9)
1528
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
1529
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1530
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1531
+ "name": name,
1532
+ "value": value,
1533
+ }
1534
+
1535
+ @builtins.property
1536
+ def name(self) -> builtins.str:
1537
+ '''The environment variable name.
1538
+
1539
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerenvironment.html#cfn-gamelift-containergroupdefinition-containerenvironment-name
1540
+ '''
1541
+ result = self._values.get("name")
1542
+ assert result is not None, "Required property 'name' is missing"
1543
+ return typing.cast(builtins.str, result)
1544
+
1545
+ @builtins.property
1546
+ def value(self) -> builtins.str:
1547
+ '''The environment variable value.
1548
+
1549
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerenvironment.html#cfn-gamelift-containergroupdefinition-containerenvironment-value
1550
+ '''
1551
+ result = self._values.get("value")
1552
+ assert result is not None, "Required property 'value' is missing"
1553
+ return typing.cast(builtins.str, result)
1554
+
1555
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1556
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1557
+
1558
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1559
+ return not (rhs == self)
1560
+
1561
+ def __repr__(self) -> str:
1562
+ return "ContainerEnvironmentProperty(%s)" % ", ".join(
1563
+ k + "=" + repr(v) for k, v in self._values.items()
1564
+ )
1565
+
1566
+ @jsii.data_type(
1567
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.ContainerHealthCheckProperty",
1568
+ jsii_struct_bases=[],
1569
+ name_mapping={
1570
+ "command": "command",
1571
+ "interval": "interval",
1572
+ "retries": "retries",
1573
+ "start_period": "startPeriod",
1574
+ "timeout": "timeout",
1575
+ },
1576
+ )
1577
+ class ContainerHealthCheckProperty:
1578
+ def __init__(
1579
+ self,
1580
+ *,
1581
+ command: typing.Sequence[builtins.str],
1582
+ interval: typing.Optional[jsii.Number] = None,
1583
+ retries: typing.Optional[jsii.Number] = None,
1584
+ start_period: typing.Optional[jsii.Number] = None,
1585
+ timeout: typing.Optional[jsii.Number] = None,
1586
+ ) -> None:
1587
+ '''Specifies how the process manager checks the health of containers.
1588
+
1589
+ :param command: A string array representing the command that the container runs to determine if it is healthy.
1590
+ :param interval: How often (in seconds) the health is checked.
1591
+ :param retries: 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.)
1592
+ :param start_period: The optional grace period (in seconds) to give a container time to boostrap before teh health check is declared failed.
1593
+ :param timeout: How many seconds the process manager allows the command to run before canceling it.
1594
+
1595
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html
1596
+ :exampleMetadata: fixture=_generated
1597
+
1598
+ Example::
1599
+
1600
+ # The code below shows an example of how to instantiate this type.
1601
+ # The values are placeholders you should change.
1602
+ from aws_cdk import aws_gamelift as gamelift
1603
+
1604
+ container_health_check_property = gamelift.CfnContainerGroupDefinition.ContainerHealthCheckProperty(
1605
+ command=["command"],
1606
+
1607
+ # the properties below are optional
1608
+ interval=123,
1609
+ retries=123,
1610
+ start_period=123,
1611
+ timeout=123
1612
+ )
1613
+ '''
1614
+ if __debug__:
1615
+ type_hints = typing.get_type_hints(_typecheckingstub__95b1e7083ac6b3d39e0bc5926b3c9ee368385be498c61499a81f860b155d0a1d)
1616
+ check_type(argname="argument command", value=command, expected_type=type_hints["command"])
1617
+ check_type(argname="argument interval", value=interval, expected_type=type_hints["interval"])
1618
+ check_type(argname="argument retries", value=retries, expected_type=type_hints["retries"])
1619
+ check_type(argname="argument start_period", value=start_period, expected_type=type_hints["start_period"])
1620
+ check_type(argname="argument timeout", value=timeout, expected_type=type_hints["timeout"])
1621
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1622
+ "command": command,
1623
+ }
1624
+ if interval is not None:
1625
+ self._values["interval"] = interval
1626
+ if retries is not None:
1627
+ self._values["retries"] = retries
1628
+ if start_period is not None:
1629
+ self._values["start_period"] = start_period
1630
+ if timeout is not None:
1631
+ self._values["timeout"] = timeout
1632
+
1633
+ @builtins.property
1634
+ def command(self) -> typing.List[builtins.str]:
1635
+ '''A string array representing the command that the container runs to determine if it is healthy.
1636
+
1637
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html#cfn-gamelift-containergroupdefinition-containerhealthcheck-command
1638
+ '''
1639
+ result = self._values.get("command")
1640
+ assert result is not None, "Required property 'command' is missing"
1641
+ return typing.cast(typing.List[builtins.str], result)
1642
+
1643
+ @builtins.property
1644
+ def interval(self) -> typing.Optional[jsii.Number]:
1645
+ '''How often (in seconds) the health is checked.
1646
+
1647
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html#cfn-gamelift-containergroupdefinition-containerhealthcheck-interval
1648
+ '''
1649
+ result = self._values.get("interval")
1650
+ return typing.cast(typing.Optional[jsii.Number], result)
1651
+
1652
+ @builtins.property
1653
+ def retries(self) -> typing.Optional[jsii.Number]:
1654
+ '''How many times the process manager will retry the command after a timeout.
1655
+
1656
+ (The first run of the command does not count as a retry.)
1657
+
1658
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html#cfn-gamelift-containergroupdefinition-containerhealthcheck-retries
1659
+ '''
1660
+ result = self._values.get("retries")
1661
+ return typing.cast(typing.Optional[jsii.Number], result)
1662
+
1663
+ @builtins.property
1664
+ def start_period(self) -> typing.Optional[jsii.Number]:
1665
+ '''The optional grace period (in seconds) to give a container time to boostrap before teh health check is declared failed.
1666
+
1667
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html#cfn-gamelift-containergroupdefinition-containerhealthcheck-startperiod
1668
+ '''
1669
+ result = self._values.get("start_period")
1670
+ return typing.cast(typing.Optional[jsii.Number], result)
1671
+
1672
+ @builtins.property
1673
+ def timeout(self) -> typing.Optional[jsii.Number]:
1674
+ '''How many seconds the process manager allows the command to run before canceling it.
1675
+
1676
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html#cfn-gamelift-containergroupdefinition-containerhealthcheck-timeout
1677
+ '''
1678
+ result = self._values.get("timeout")
1679
+ return typing.cast(typing.Optional[jsii.Number], result)
1680
+
1681
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1682
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1683
+
1684
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1685
+ return not (rhs == self)
1686
+
1687
+ def __repr__(self) -> str:
1688
+ return "ContainerHealthCheckProperty(%s)" % ", ".join(
1689
+ k + "=" + repr(v) for k, v in self._values.items()
1690
+ )
1691
+
1692
+ @jsii.data_type(
1693
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.ContainerPortRangeProperty",
1694
+ jsii_struct_bases=[],
1695
+ name_mapping={
1696
+ "from_port": "fromPort",
1697
+ "protocol": "protocol",
1698
+ "to_port": "toPort",
1699
+ },
1700
+ )
1701
+ class ContainerPortRangeProperty:
1702
+ def __init__(
1703
+ self,
1704
+ *,
1705
+ from_port: jsii.Number,
1706
+ protocol: builtins.str,
1707
+ to_port: jsii.Number,
1708
+ ) -> None:
1709
+ '''A set of one or more port numbers that can be opened on the container.
1710
+
1711
+ :param from_port: A starting value for the range of allowed port numbers.
1712
+ :param protocol: Defines the protocol of these ports.
1713
+ :param to_port: 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.
1714
+
1715
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerportrange.html
1716
+ :exampleMetadata: fixture=_generated
1717
+
1718
+ Example::
1719
+
1720
+ # The code below shows an example of how to instantiate this type.
1721
+ # The values are placeholders you should change.
1722
+ from aws_cdk import aws_gamelift as gamelift
1723
+
1724
+ container_port_range_property = gamelift.CfnContainerGroupDefinition.ContainerPortRangeProperty(
1725
+ from_port=123,
1726
+ protocol="protocol",
1727
+ to_port=123
1728
+ )
1729
+ '''
1730
+ if __debug__:
1731
+ type_hints = typing.get_type_hints(_typecheckingstub__2d3e35cf8a42e8cbcdf12218e64e5ac29c19f0813f144c8d75e97d3e3313d396)
1732
+ check_type(argname="argument from_port", value=from_port, expected_type=type_hints["from_port"])
1733
+ check_type(argname="argument protocol", value=protocol, expected_type=type_hints["protocol"])
1734
+ check_type(argname="argument to_port", value=to_port, expected_type=type_hints["to_port"])
1735
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1736
+ "from_port": from_port,
1737
+ "protocol": protocol,
1738
+ "to_port": to_port,
1739
+ }
1740
+
1741
+ @builtins.property
1742
+ def from_port(self) -> jsii.Number:
1743
+ '''A starting value for the range of allowed port numbers.
1744
+
1745
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerportrange.html#cfn-gamelift-containergroupdefinition-containerportrange-fromport
1746
+ '''
1747
+ result = self._values.get("from_port")
1748
+ assert result is not None, "Required property 'from_port' is missing"
1749
+ return typing.cast(jsii.Number, result)
1750
+
1751
+ @builtins.property
1752
+ def protocol(self) -> builtins.str:
1753
+ '''Defines the protocol of these ports.
1754
+
1755
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerportrange.html#cfn-gamelift-containergroupdefinition-containerportrange-protocol
1756
+ '''
1757
+ result = self._values.get("protocol")
1758
+ assert result is not None, "Required property 'protocol' is missing"
1759
+ return typing.cast(builtins.str, result)
1760
+
1761
+ @builtins.property
1762
+ def to_port(self) -> jsii.Number:
1763
+ '''An ending value for the range of allowed port numbers.
1764
+
1765
+ Port numbers are end-inclusive. This value must be equal to or greater than FromPort.
1766
+
1767
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerportrange.html#cfn-gamelift-containergroupdefinition-containerportrange-toport
1768
+ '''
1769
+ result = self._values.get("to_port")
1770
+ assert result is not None, "Required property 'to_port' is missing"
1771
+ return typing.cast(jsii.Number, result)
1772
+
1773
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1774
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1775
+
1776
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1777
+ return not (rhs == self)
1778
+
1779
+ def __repr__(self) -> str:
1780
+ return "ContainerPortRangeProperty(%s)" % ", ".join(
1781
+ k + "=" + repr(v) for k, v in self._values.items()
1782
+ )
1783
+
1784
+ @jsii.data_type(
1785
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.MemoryLimitsProperty",
1786
+ jsii_struct_bases=[],
1787
+ name_mapping={"hard_limit": "hardLimit", "soft_limit": "softLimit"},
1788
+ )
1789
+ class MemoryLimitsProperty:
1790
+ def __init__(
1791
+ self,
1792
+ *,
1793
+ hard_limit: typing.Optional[jsii.Number] = None,
1794
+ soft_limit: typing.Optional[jsii.Number] = None,
1795
+ ) -> None:
1796
+ '''Specifies how much memory is available to the container.
1797
+
1798
+ :param hard_limit: The hard limit of memory to reserve for the container.
1799
+ :param soft_limit: The amount of memory that is reserved for the container.
1800
+
1801
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-memorylimits.html
1802
+ :exampleMetadata: fixture=_generated
1803
+
1804
+ Example::
1805
+
1806
+ # The code below shows an example of how to instantiate this type.
1807
+ # The values are placeholders you should change.
1808
+ from aws_cdk import aws_gamelift as gamelift
1809
+
1810
+ memory_limits_property = gamelift.CfnContainerGroupDefinition.MemoryLimitsProperty(
1811
+ hard_limit=123,
1812
+ soft_limit=123
1813
+ )
1814
+ '''
1815
+ if __debug__:
1816
+ type_hints = typing.get_type_hints(_typecheckingstub__9ac03f75ba7cf3ff7267cf9e9544e940c9974e78a4d364eed01d2ebb6bc2d3fa)
1817
+ check_type(argname="argument hard_limit", value=hard_limit, expected_type=type_hints["hard_limit"])
1818
+ check_type(argname="argument soft_limit", value=soft_limit, expected_type=type_hints["soft_limit"])
1819
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1820
+ if hard_limit is not None:
1821
+ self._values["hard_limit"] = hard_limit
1822
+ if soft_limit is not None:
1823
+ self._values["soft_limit"] = soft_limit
1824
+
1825
+ @builtins.property
1826
+ def hard_limit(self) -> typing.Optional[jsii.Number]:
1827
+ '''The hard limit of memory to reserve for the container.
1828
+
1829
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-memorylimits.html#cfn-gamelift-containergroupdefinition-memorylimits-hardlimit
1830
+ '''
1831
+ result = self._values.get("hard_limit")
1832
+ return typing.cast(typing.Optional[jsii.Number], result)
1833
+
1834
+ @builtins.property
1835
+ def soft_limit(self) -> typing.Optional[jsii.Number]:
1836
+ '''The amount of memory that is reserved for the container.
1837
+
1838
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-memorylimits.html#cfn-gamelift-containergroupdefinition-memorylimits-softlimit
1839
+ '''
1840
+ result = self._values.get("soft_limit")
1841
+ return typing.cast(typing.Optional[jsii.Number], result)
1842
+
1843
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1844
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1845
+
1846
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1847
+ return not (rhs == self)
1848
+
1849
+ def __repr__(self) -> str:
1850
+ return "MemoryLimitsProperty(%s)" % ", ".join(
1851
+ k + "=" + repr(v) for k, v in self._values.items()
1852
+ )
1853
+
1854
+ @jsii.data_type(
1855
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.PortConfigurationProperty",
1856
+ jsii_struct_bases=[],
1857
+ name_mapping={"container_port_ranges": "containerPortRanges"},
1858
+ )
1859
+ class PortConfigurationProperty:
1860
+ def __init__(
1861
+ self,
1862
+ *,
1863
+ container_port_ranges: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContainerGroupDefinition.ContainerPortRangeProperty", typing.Dict[builtins.str, typing.Any]]]]],
1864
+ ) -> None:
1865
+ '''Defines the ports on a container.
1866
+
1867
+ :param container_port_ranges: Specifies one or more ranges of ports on a container.
1868
+
1869
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-portconfiguration.html
1870
+ :exampleMetadata: fixture=_generated
1871
+
1872
+ Example::
1873
+
1874
+ # The code below shows an example of how to instantiate this type.
1875
+ # The values are placeholders you should change.
1876
+ from aws_cdk import aws_gamelift as gamelift
1877
+
1878
+ port_configuration_property = gamelift.CfnContainerGroupDefinition.PortConfigurationProperty(
1879
+ container_port_ranges=[gamelift.CfnContainerGroupDefinition.ContainerPortRangeProperty(
1880
+ from_port=123,
1881
+ protocol="protocol",
1882
+ to_port=123
1883
+ )]
1884
+ )
1885
+ '''
1886
+ if __debug__:
1887
+ type_hints = typing.get_type_hints(_typecheckingstub__49796d7f2a6fb9a60e370fb5b8e88da33d84ca298d8833d8e64e3d80586cedf7)
1888
+ check_type(argname="argument container_port_ranges", value=container_port_ranges, expected_type=type_hints["container_port_ranges"])
1889
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1890
+ "container_port_ranges": container_port_ranges,
1891
+ }
1892
+
1893
+ @builtins.property
1894
+ def container_port_ranges(
1895
+ self,
1896
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerPortRangeProperty"]]]:
1897
+ '''Specifies one or more ranges of ports on a container.
1898
+
1899
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-portconfiguration.html#cfn-gamelift-containergroupdefinition-portconfiguration-containerportranges
1900
+ '''
1901
+ result = self._values.get("container_port_ranges")
1902
+ assert result is not None, "Required property 'container_port_ranges' is missing"
1903
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerPortRangeProperty"]]], result)
1904
+
1905
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1906
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1907
+
1908
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1909
+ return not (rhs == self)
1910
+
1911
+ def __repr__(self) -> str:
1912
+ return "PortConfigurationProperty(%s)" % ", ".join(
1913
+ k + "=" + repr(v) for k, v in self._values.items()
1914
+ )
1915
+
1916
+
1917
+ @jsii.data_type(
1918
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinitionProps",
1919
+ jsii_struct_bases=[],
1920
+ name_mapping={
1921
+ "container_definitions": "containerDefinitions",
1922
+ "name": "name",
1923
+ "operating_system": "operatingSystem",
1924
+ "total_cpu_limit": "totalCpuLimit",
1925
+ "total_memory_limit": "totalMemoryLimit",
1926
+ "scheduling_strategy": "schedulingStrategy",
1927
+ "tags": "tags",
1928
+ },
1929
+ )
1930
+ class CfnContainerGroupDefinitionProps:
1931
+ def __init__(
1932
+ self,
1933
+ *,
1934
+ container_definitions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.ContainerDefinitionProperty, typing.Dict[builtins.str, typing.Any]]]]],
1935
+ name: builtins.str,
1936
+ operating_system: builtins.str,
1937
+ total_cpu_limit: jsii.Number,
1938
+ total_memory_limit: jsii.Number,
1939
+ scheduling_strategy: typing.Optional[builtins.str] = None,
1940
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1941
+ ) -> None:
1942
+ '''Properties for defining a ``CfnContainerGroupDefinition``.
1943
+
1944
+ :param container_definitions: A collection of container definitions that define the containers in this group.
1945
+ :param name: A descriptive label for the container group definition.
1946
+ :param operating_system: The operating system of the container group.
1947
+ :param total_cpu_limit: 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.)
1948
+ :param total_memory_limit: The maximum amount of memory (in MiB) to allocate for this container group.
1949
+ :param scheduling_strategy: Specifies whether the container group includes replica or daemon containers.
1950
+ :param tags: An array of key-value pairs to apply to this resource.
1951
+
1952
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html
1953
+ :exampleMetadata: fixture=_generated
1954
+
1955
+ Example::
1956
+
1957
+ # The code below shows an example of how to instantiate this type.
1958
+ # The values are placeholders you should change.
1959
+ from aws_cdk import aws_gamelift as gamelift
1960
+
1961
+ cfn_container_group_definition_props = gamelift.CfnContainerGroupDefinitionProps(
1962
+ container_definitions=[gamelift.CfnContainerGroupDefinition.ContainerDefinitionProperty(
1963
+ container_name="containerName",
1964
+ image_uri="imageUri",
1965
+
1966
+ # the properties below are optional
1967
+ command=["command"],
1968
+ cpu=123,
1969
+ depends_on=[gamelift.CfnContainerGroupDefinition.ContainerDependencyProperty(
1970
+ condition="condition",
1971
+ container_name="containerName"
1972
+ )],
1973
+ entry_point=["entryPoint"],
1974
+ environment=[gamelift.CfnContainerGroupDefinition.ContainerEnvironmentProperty(
1975
+ name="name",
1976
+ value="value"
1977
+ )],
1978
+ essential=False,
1979
+ health_check=gamelift.CfnContainerGroupDefinition.ContainerHealthCheckProperty(
1980
+ command=["command"],
1981
+
1982
+ # the properties below are optional
1983
+ interval=123,
1984
+ retries=123,
1985
+ start_period=123,
1986
+ timeout=123
1987
+ ),
1988
+ memory_limits=gamelift.CfnContainerGroupDefinition.MemoryLimitsProperty(
1989
+ hard_limit=123,
1990
+ soft_limit=123
1991
+ ),
1992
+ port_configuration=gamelift.CfnContainerGroupDefinition.PortConfigurationProperty(
1993
+ container_port_ranges=[gamelift.CfnContainerGroupDefinition.ContainerPortRangeProperty(
1994
+ from_port=123,
1995
+ protocol="protocol",
1996
+ to_port=123
1997
+ )]
1998
+ ),
1999
+ resolved_image_digest="resolvedImageDigest",
2000
+ working_directory="workingDirectory"
2001
+ )],
2002
+ name="name",
2003
+ operating_system="operatingSystem",
2004
+ total_cpu_limit=123,
2005
+ total_memory_limit=123,
2006
+
2007
+ # the properties below are optional
2008
+ scheduling_strategy="schedulingStrategy",
2009
+ tags=[CfnTag(
2010
+ key="key",
2011
+ value="value"
2012
+ )]
2013
+ )
2014
+ '''
2015
+ if __debug__:
2016
+ type_hints = typing.get_type_hints(_typecheckingstub__6b760a12182b9da0a53204aa5510dae28c2cda4c4fba1ef77f0245093da04ea4)
2017
+ check_type(argname="argument container_definitions", value=container_definitions, expected_type=type_hints["container_definitions"])
2018
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
2019
+ check_type(argname="argument operating_system", value=operating_system, expected_type=type_hints["operating_system"])
2020
+ check_type(argname="argument total_cpu_limit", value=total_cpu_limit, expected_type=type_hints["total_cpu_limit"])
2021
+ check_type(argname="argument total_memory_limit", value=total_memory_limit, expected_type=type_hints["total_memory_limit"])
2022
+ check_type(argname="argument scheduling_strategy", value=scheduling_strategy, expected_type=type_hints["scheduling_strategy"])
2023
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
2024
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2025
+ "container_definitions": container_definitions,
2026
+ "name": name,
2027
+ "operating_system": operating_system,
2028
+ "total_cpu_limit": total_cpu_limit,
2029
+ "total_memory_limit": total_memory_limit,
2030
+ }
2031
+ if scheduling_strategy is not None:
2032
+ self._values["scheduling_strategy"] = scheduling_strategy
2033
+ if tags is not None:
2034
+ self._values["tags"] = tags
2035
+
2036
+ @builtins.property
2037
+ def container_definitions(
2038
+ self,
2039
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnContainerGroupDefinition.ContainerDefinitionProperty]]]:
2040
+ '''A collection of container definitions that define the containers in this group.
2041
+
2042
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinitions
2043
+ '''
2044
+ result = self._values.get("container_definitions")
2045
+ assert result is not None, "Required property 'container_definitions' is missing"
2046
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnContainerGroupDefinition.ContainerDefinitionProperty]]], result)
2047
+
2048
+ @builtins.property
2049
+ def name(self) -> builtins.str:
2050
+ '''A descriptive label for the container group definition.
2051
+
2052
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-name
2053
+ '''
2054
+ result = self._values.get("name")
2055
+ assert result is not None, "Required property 'name' is missing"
2056
+ return typing.cast(builtins.str, result)
2057
+
2058
+ @builtins.property
2059
+ def operating_system(self) -> builtins.str:
2060
+ '''The operating system of the container group.
2061
+
2062
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-operatingsystem
2063
+ '''
2064
+ result = self._values.get("operating_system")
2065
+ assert result is not None, "Required property 'operating_system' is missing"
2066
+ return typing.cast(builtins.str, result)
2067
+
2068
+ @builtins.property
2069
+ def total_cpu_limit(self) -> jsii.Number:
2070
+ '''The maximum number of CPU units reserved for this container group.
2071
+
2072
+ The value is expressed as an integer amount of CPU units. (1 vCPU is equal to 1024 CPU units.)
2073
+
2074
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-totalcpulimit
2075
+ '''
2076
+ result = self._values.get("total_cpu_limit")
2077
+ assert result is not None, "Required property 'total_cpu_limit' is missing"
2078
+ return typing.cast(jsii.Number, result)
2079
+
2080
+ @builtins.property
2081
+ def total_memory_limit(self) -> jsii.Number:
2082
+ '''The maximum amount of memory (in MiB) to allocate for this container group.
2083
+
2084
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-totalmemorylimit
2085
+ '''
2086
+ result = self._values.get("total_memory_limit")
2087
+ assert result is not None, "Required property 'total_memory_limit' is missing"
2088
+ return typing.cast(jsii.Number, result)
2089
+
2090
+ @builtins.property
2091
+ def scheduling_strategy(self) -> typing.Optional[builtins.str]:
2092
+ '''Specifies whether the container group includes replica or daemon containers.
2093
+
2094
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-schedulingstrategy
2095
+ '''
2096
+ result = self._values.get("scheduling_strategy")
2097
+ return typing.cast(typing.Optional[builtins.str], result)
2098
+
2099
+ @builtins.property
2100
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
2101
+ '''An array of key-value pairs to apply to this resource.
2102
+
2103
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-tags
2104
+ '''
2105
+ result = self._values.get("tags")
2106
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
2107
+
2108
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2109
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2110
+
2111
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2112
+ return not (rhs == self)
2113
+
2114
+ def __repr__(self) -> str:
2115
+ return "CfnContainerGroupDefinitionProps(%s)" % ", ".join(
2116
+ k + "=" + repr(v) for k, v in self._values.items()
2117
+ )
2118
+
2119
+
859
2120
  @jsii.implements(_IInspectable_c2943556)
860
2121
  class CfnFleet(
861
2122
  _CfnResource_9df397a6,
@@ -889,6 +2150,19 @@ class CfnFleet(
889
2150
  certificate_type="certificateType"
890
2151
  ),
891
2152
  compute_type="computeType",
2153
+ container_groups_configuration=gamelift.CfnFleet.ContainerGroupsConfigurationProperty(
2154
+ connection_port_range=gamelift.CfnFleet.ConnectionPortRangeProperty(
2155
+ from_port=123,
2156
+ to_port=123
2157
+ ),
2158
+ container_group_definition_names=["containerGroupDefinitionNames"],
2159
+
2160
+ # the properties below are optional
2161
+ container_groups_per_instance=gamelift.CfnFleet.ContainerGroupsPerInstanceProperty(
2162
+ desired_replica_container_groups_per_instance=123,
2163
+ max_replica_container_groups_per_instance=123
2164
+ )
2165
+ ),
892
2166
  description="description",
893
2167
  desired_ec2_instances=123,
894
2168
  ec2_inbound_permissions=[gamelift.CfnFleet.IpPermissionProperty(
@@ -968,6 +2242,7 @@ class CfnFleet(
968
2242
  build_id: typing.Optional[builtins.str] = None,
969
2243
  certificate_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFleet.CertificateConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
970
2244
  compute_type: typing.Optional[builtins.str] = None,
2245
+ container_groups_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFleet.ContainerGroupsConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
971
2246
  description: typing.Optional[builtins.str] = None,
972
2247
  desired_ec2_instances: typing.Optional[jsii.Number] = None,
973
2248
  ec2_inbound_permissions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFleet.IpPermissionProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
@@ -999,6 +2274,7 @@ class CfnFleet(
999
2274
  :param build_id: A unique identifier for a build to be deployed on the new fleet. If you are deploying the fleet with a custom game build, you must specify this property. The build must have been successfully uploaded to Amazon GameLift and be in a ``READY`` status. This fleet setting cannot be changed once the fleet is created.
1000
2275
  :param certificate_configuration: Prompts Amazon GameLift to generate a TLS/SSL certificate for the fleet. Amazon GameLift uses the certificates to encrypt traffic between game clients and the game servers running on Amazon GameLift. By default, the ``CertificateConfiguration`` is ``DISABLED`` . You can't change this property after you create the fleet. AWS Certificate Manager (ACM) certificates expire after 13 months. Certificate expiration can cause fleets to fail, preventing players from connecting to instances in the fleet. We recommend you replace fleets before 13 months, consider using fleet aliases for a smooth transition. .. epigraph:: ACM isn't available in all AWS regions. A fleet creation request with certificate generation enabled in an unsupported Region, fails with a 4xx error. For more information about the supported Regions, see `Supported Regions <https://docs.aws.amazon.com/acm/latest/userguide/acm-regions.html>`_ in the *AWS Certificate Manager User Guide* .
1001
2276
  :param compute_type: The type of compute resource used to host your game servers. You can use your own compute resources with Amazon GameLift Anywhere or use Amazon EC2 instances with managed Amazon GameLift. By default, this property is set to ``EC2`` .
2277
+ :param container_groups_configuration: 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.
1002
2278
  :param description: A description for the fleet.
1003
2279
  :param desired_ec2_instances: The number of EC2 instances that you want this fleet to host. When creating a new fleet, GameLift automatically sets this value to "1" and initiates a single instance. Once the fleet is active, update this value to trigger GameLift to add or remove instances from the fleet.
1004
2280
  :param ec2_inbound_permissions: The allowed IP address ranges and port settings that allow inbound traffic to access game sessions on this fleet. If the fleet is hosting a custom game build, this property must be set before players can connect to game sessions. For Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges.
@@ -1032,6 +2308,7 @@ class CfnFleet(
1032
2308
  build_id=build_id,
1033
2309
  certificate_configuration=certificate_configuration,
1034
2310
  compute_type=compute_type,
2311
+ container_groups_configuration=container_groups_configuration,
1035
2312
  description=description,
1036
2313
  desired_ec2_instances=desired_ec2_instances,
1037
2314
  ec2_inbound_permissions=ec2_inbound_permissions,
@@ -1087,6 +2364,17 @@ class CfnFleet(
1087
2364
  '''The CloudFormation resource type name for this resource class.'''
1088
2365
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
1089
2366
 
2367
+ @builtins.property
2368
+ @jsii.member(jsii_name="attrContainerGroupsConfigurationContainerGroupsPerInstanceMaxReplicaContainerGroupsPerInstance")
2369
+ def attr_container_groups_configuration_container_groups_per_instance_max_replica_container_groups_per_instance(
2370
+ self,
2371
+ ) -> jsii.Number:
2372
+ '''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.
2373
+
2374
+ :cloudformationAttribute: ContainerGroupsConfiguration.ContainerGroupsPerInstance.MaxReplicaContainerGroupsPerInstance
2375
+ '''
2376
+ return typing.cast(jsii.Number, jsii.get(self, "attrContainerGroupsConfigurationContainerGroupsPerInstanceMaxReplicaContainerGroupsPerInstance"))
2377
+
1090
2378
  @builtins.property
1091
2379
  @jsii.member(jsii_name="attrFleetId")
1092
2380
  def attr_fleet_id(self) -> builtins.str:
@@ -1189,6 +2477,24 @@ class CfnFleet(
1189
2477
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1190
2478
  jsii.set(self, "computeType", value)
1191
2479
 
2480
+ @builtins.property
2481
+ @jsii.member(jsii_name="containerGroupsConfiguration")
2482
+ def container_groups_configuration(
2483
+ self,
2484
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFleet.ContainerGroupsConfigurationProperty"]]:
2485
+ '''Specifies container groups that this instance will hold.'''
2486
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFleet.ContainerGroupsConfigurationProperty"]], jsii.get(self, "containerGroupsConfiguration"))
2487
+
2488
+ @container_groups_configuration.setter
2489
+ def container_groups_configuration(
2490
+ self,
2491
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFleet.ContainerGroupsConfigurationProperty"]],
2492
+ ) -> None:
2493
+ if __debug__:
2494
+ type_hints = typing.get_type_hints(_typecheckingstub__12ab5ebb46adc7fe2bb2e1911285f98090170c29093f6e28b584096baafa36aa)
2495
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2496
+ jsii.set(self, "containerGroupsConfiguration", value)
2497
+
1192
2498
  @builtins.property
1193
2499
  @jsii.member(jsii_name="description")
1194
2500
  def description(self) -> typing.Optional[builtins.str]:
@@ -1477,49 +2783,244 @@ class CfnFleet(
1477
2783
  def server_launch_parameters(self) -> typing.Optional[builtins.str]:
1478
2784
  '''(deprecated) This parameter is no longer used but is retained for backward compatibility.
1479
2785
 
1480
- :deprecated: this property has been deprecated
2786
+ :deprecated: this property has been deprecated
2787
+
2788
+ :stability: deprecated
2789
+ '''
2790
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "serverLaunchParameters"))
2791
+
2792
+ @server_launch_parameters.setter
2793
+ def server_launch_parameters(self, value: typing.Optional[builtins.str]) -> None:
2794
+ if __debug__:
2795
+ type_hints = typing.get_type_hints(_typecheckingstub__b86e485f6c758ba0a09838614ee6f5e63a4ba69e6100fd77af039cc9f223b152)
2796
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2797
+ jsii.set(self, "serverLaunchParameters", value)
2798
+
2799
+ @builtins.property
2800
+ @jsii.member(jsii_name="serverLaunchPath")
2801
+ def server_launch_path(self) -> typing.Optional[builtins.str]:
2802
+ '''(deprecated) This parameter is no longer used.
2803
+
2804
+ :deprecated: this property has been deprecated
2805
+
2806
+ :stability: deprecated
2807
+ '''
2808
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "serverLaunchPath"))
2809
+
2810
+ @server_launch_path.setter
2811
+ def server_launch_path(self, value: typing.Optional[builtins.str]) -> None:
2812
+ if __debug__:
2813
+ type_hints = typing.get_type_hints(_typecheckingstub__63d5bf96be81c4a6b00ef1deb4d8846acf0053313fb89efd0ded1f0931c66844)
2814
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2815
+ jsii.set(self, "serverLaunchPath", value)
2816
+
2817
+ @jsii.data_type(
2818
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.AnywhereConfigurationProperty",
2819
+ jsii_struct_bases=[],
2820
+ name_mapping={"cost": "cost"},
2821
+ )
2822
+ class AnywhereConfigurationProperty:
2823
+ def __init__(self, *, cost: builtins.str) -> None:
2824
+ '''Amazon GameLift Anywhere configuration options for your Anywhere fleets.
2825
+
2826
+ :param cost: The cost to run your fleet per hour. Amazon GameLift uses the provided cost of your fleet to balance usage in queues. For more information about queues, see `Setting up queues <https://docs.aws.amazon.com/gamelift/latest/developerguide/queues-intro.html>`_ in the *Amazon GameLift Developer Guide* .
2827
+
2828
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-anywhereconfiguration.html
2829
+ :exampleMetadata: fixture=_generated
2830
+
2831
+ Example::
2832
+
2833
+ # The code below shows an example of how to instantiate this type.
2834
+ # The values are placeholders you should change.
2835
+ from aws_cdk import aws_gamelift as gamelift
2836
+
2837
+ anywhere_configuration_property = gamelift.CfnFleet.AnywhereConfigurationProperty(
2838
+ cost="cost"
2839
+ )
2840
+ '''
2841
+ if __debug__:
2842
+ type_hints = typing.get_type_hints(_typecheckingstub__e3897ffc82938e5bf4e6384b3a83b22f50c7189a71eb0fc30ea8f17642db5ef9)
2843
+ check_type(argname="argument cost", value=cost, expected_type=type_hints["cost"])
2844
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2845
+ "cost": cost,
2846
+ }
2847
+
2848
+ @builtins.property
2849
+ def cost(self) -> builtins.str:
2850
+ '''The cost to run your fleet per hour.
2851
+
2852
+ Amazon GameLift uses the provided cost of your fleet to balance usage in queues. For more information about queues, see `Setting up queues <https://docs.aws.amazon.com/gamelift/latest/developerguide/queues-intro.html>`_ in the *Amazon GameLift Developer Guide* .
2853
+
2854
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-anywhereconfiguration.html#cfn-gamelift-fleet-anywhereconfiguration-cost
2855
+ '''
2856
+ result = self._values.get("cost")
2857
+ assert result is not None, "Required property 'cost' is missing"
2858
+ return typing.cast(builtins.str, result)
2859
+
2860
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2861
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2862
+
2863
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2864
+ return not (rhs == self)
2865
+
2866
+ def __repr__(self) -> str:
2867
+ return "AnywhereConfigurationProperty(%s)" % ", ".join(
2868
+ k + "=" + repr(v) for k, v in self._values.items()
2869
+ )
2870
+
2871
+ @jsii.data_type(
2872
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.CertificateConfigurationProperty",
2873
+ jsii_struct_bases=[],
2874
+ name_mapping={"certificate_type": "certificateType"},
2875
+ )
2876
+ class CertificateConfigurationProperty:
2877
+ def __init__(self, *, certificate_type: builtins.str) -> None:
2878
+ '''Determines whether a TLS/SSL certificate is generated for a fleet.
2879
+
2880
+ This feature must be enabled when creating the fleet. All instances in a fleet share the same certificate. The certificate can be retrieved by calling the `GameLift Server SDK <https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-serversdk.html>`_ operation ``GetInstanceCertificate`` .
2881
+
2882
+ :param certificate_type: Indicates whether a TLS/SSL certificate is generated for a fleet. Valid values include: - *GENERATED* - Generate a TLS/SSL certificate for this fleet. - *DISABLED* - (default) Do not generate a TLS/SSL certificate for this fleet.
2883
+
2884
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html
2885
+ :exampleMetadata: fixture=_generated
2886
+
2887
+ Example::
2888
+
2889
+ # The code below shows an example of how to instantiate this type.
2890
+ # The values are placeholders you should change.
2891
+ from aws_cdk import aws_gamelift as gamelift
2892
+
2893
+ certificate_configuration_property = gamelift.CfnFleet.CertificateConfigurationProperty(
2894
+ certificate_type="certificateType"
2895
+ )
2896
+ '''
2897
+ if __debug__:
2898
+ type_hints = typing.get_type_hints(_typecheckingstub__4c3cca5919f32f3e2cb6c385afda08bf3b194b8baf60b4d20e5f9f580659cc84)
2899
+ check_type(argname="argument certificate_type", value=certificate_type, expected_type=type_hints["certificate_type"])
2900
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2901
+ "certificate_type": certificate_type,
2902
+ }
2903
+
2904
+ @builtins.property
2905
+ def certificate_type(self) -> builtins.str:
2906
+ '''Indicates whether a TLS/SSL certificate is generated for a fleet.
2907
+
2908
+ Valid values include:
2909
+
2910
+ - *GENERATED* - Generate a TLS/SSL certificate for this fleet.
2911
+ - *DISABLED* - (default) Do not generate a TLS/SSL certificate for this fleet.
2912
+
2913
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html#cfn-gamelift-fleet-certificateconfiguration-certificatetype
2914
+ '''
2915
+ result = self._values.get("certificate_type")
2916
+ assert result is not None, "Required property 'certificate_type' is missing"
2917
+ return typing.cast(builtins.str, result)
2918
+
2919
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2920
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2921
+
2922
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2923
+ return not (rhs == self)
2924
+
2925
+ def __repr__(self) -> str:
2926
+ return "CertificateConfigurationProperty(%s)" % ", ".join(
2927
+ k + "=" + repr(v) for k, v in self._values.items()
2928
+ )
2929
+
2930
+ @jsii.data_type(
2931
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.ConnectionPortRangeProperty",
2932
+ jsii_struct_bases=[],
2933
+ name_mapping={"from_port": "fromPort", "to_port": "toPort"},
2934
+ )
2935
+ class ConnectionPortRangeProperty:
2936
+ def __init__(self, *, from_port: jsii.Number, to_port: jsii.Number) -> None:
2937
+ '''Defines the range of ports on the instance that allow inbound traffic to connect with containers in a fleet.
2938
+
2939
+ :param from_port: A starting value for a range of allowed port numbers.
2940
+ :param to_port: An ending value for a range of allowed port numbers. Port numbers are end-inclusive. This value must be higher than FromPort.
2941
+
2942
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-connectionportrange.html
2943
+ :exampleMetadata: fixture=_generated
2944
+
2945
+ Example::
2946
+
2947
+ # The code below shows an example of how to instantiate this type.
2948
+ # The values are placeholders you should change.
2949
+ from aws_cdk import aws_gamelift as gamelift
2950
+
2951
+ connection_port_range_property = gamelift.CfnFleet.ConnectionPortRangeProperty(
2952
+ from_port=123,
2953
+ to_port=123
2954
+ )
2955
+ '''
2956
+ if __debug__:
2957
+ type_hints = typing.get_type_hints(_typecheckingstub__65c7b986d31ccdfa5d51331dd935bb4233bcf101bbfe90052f66eb229319a0a8)
2958
+ check_type(argname="argument from_port", value=from_port, expected_type=type_hints["from_port"])
2959
+ check_type(argname="argument to_port", value=to_port, expected_type=type_hints["to_port"])
2960
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2961
+ "from_port": from_port,
2962
+ "to_port": to_port,
2963
+ }
2964
+
2965
+ @builtins.property
2966
+ def from_port(self) -> jsii.Number:
2967
+ '''A starting value for a range of allowed port numbers.
2968
+
2969
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-connectionportrange.html#cfn-gamelift-fleet-connectionportrange-fromport
2970
+ '''
2971
+ result = self._values.get("from_port")
2972
+ assert result is not None, "Required property 'from_port' is missing"
2973
+ return typing.cast(jsii.Number, result)
1481
2974
 
1482
- :stability: deprecated
1483
- '''
1484
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "serverLaunchParameters"))
2975
+ @builtins.property
2976
+ def to_port(self) -> jsii.Number:
2977
+ '''An ending value for a range of allowed port numbers.
1485
2978
 
1486
- @server_launch_parameters.setter
1487
- def server_launch_parameters(self, value: typing.Optional[builtins.str]) -> None:
1488
- if __debug__:
1489
- type_hints = typing.get_type_hints(_typecheckingstub__b86e485f6c758ba0a09838614ee6f5e63a4ba69e6100fd77af039cc9f223b152)
1490
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1491
- jsii.set(self, "serverLaunchParameters", value)
2979
+ Port numbers are end-inclusive. This value must be higher than FromPort.
1492
2980
 
1493
- @builtins.property
1494
- @jsii.member(jsii_name="serverLaunchPath")
1495
- def server_launch_path(self) -> typing.Optional[builtins.str]:
1496
- '''(deprecated) This parameter is no longer used.
2981
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-connectionportrange.html#cfn-gamelift-fleet-connectionportrange-toport
2982
+ '''
2983
+ result = self._values.get("to_port")
2984
+ assert result is not None, "Required property 'to_port' is missing"
2985
+ return typing.cast(jsii.Number, result)
1497
2986
 
1498
- :deprecated: this property has been deprecated
2987
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2988
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1499
2989
 
1500
- :stability: deprecated
1501
- '''
1502
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "serverLaunchPath"))
2990
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2991
+ return not (rhs == self)
1503
2992
 
1504
- @server_launch_path.setter
1505
- def server_launch_path(self, value: typing.Optional[builtins.str]) -> None:
1506
- if __debug__:
1507
- type_hints = typing.get_type_hints(_typecheckingstub__63d5bf96be81c4a6b00ef1deb4d8846acf0053313fb89efd0ded1f0931c66844)
1508
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1509
- jsii.set(self, "serverLaunchPath", value)
2993
+ def __repr__(self) -> str:
2994
+ return "ConnectionPortRangeProperty(%s)" % ", ".join(
2995
+ k + "=" + repr(v) for k, v in self._values.items()
2996
+ )
1510
2997
 
1511
2998
  @jsii.data_type(
1512
- jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.AnywhereConfigurationProperty",
2999
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.ContainerGroupsConfigurationProperty",
1513
3000
  jsii_struct_bases=[],
1514
- name_mapping={"cost": "cost"},
3001
+ name_mapping={
3002
+ "connection_port_range": "connectionPortRange",
3003
+ "container_group_definition_names": "containerGroupDefinitionNames",
3004
+ "container_groups_per_instance": "containerGroupsPerInstance",
3005
+ },
1515
3006
  )
1516
- class AnywhereConfigurationProperty:
1517
- def __init__(self, *, cost: builtins.str) -> None:
1518
- '''Amazon GameLift Anywhere configuration options for your Anywhere fleets.
3007
+ class ContainerGroupsConfigurationProperty:
3008
+ def __init__(
3009
+ self,
3010
+ *,
3011
+ connection_port_range: typing.Union[_IResolvable_da3f097b, typing.Union["CfnFleet.ConnectionPortRangeProperty", typing.Dict[builtins.str, typing.Any]]],
3012
+ container_group_definition_names: typing.Sequence[builtins.str],
3013
+ container_groups_per_instance: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFleet.ContainerGroupsPerInstanceProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3014
+ ) -> None:
3015
+ '''Specifies container groups that this instance will hold.
1519
3016
 
1520
- :param cost: The cost to run your fleet per hour. Amazon GameLift uses the provided cost of your fleet to balance usage in queues. For more information about queues, see `Setting up queues <https://docs.aws.amazon.com/gamelift/latest/developerguide/queues-intro.html>`_ in the *Amazon GameLift Developer Guide* .
3017
+ 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.
1521
3018
 
1522
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-anywhereconfiguration.html
3019
+ :param connection_port_range: Defines the range of ports on the instance that allow inbound traffic to connect with containers in a fleet.
3020
+ :param container_group_definition_names: 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.
3021
+ :param container_groups_per_instance: The number of container groups per instance.
3022
+
3023
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsconfiguration.html
1523
3024
  :exampleMetadata: fixture=_generated
1524
3025
 
1525
3026
  Example::
@@ -1528,28 +3029,66 @@ class CfnFleet(
1528
3029
  # The values are placeholders you should change.
1529
3030
  from aws_cdk import aws_gamelift as gamelift
1530
3031
 
1531
- anywhere_configuration_property = gamelift.CfnFleet.AnywhereConfigurationProperty(
1532
- cost="cost"
3032
+ container_groups_configuration_property = gamelift.CfnFleet.ContainerGroupsConfigurationProperty(
3033
+ connection_port_range=gamelift.CfnFleet.ConnectionPortRangeProperty(
3034
+ from_port=123,
3035
+ to_port=123
3036
+ ),
3037
+ container_group_definition_names=["containerGroupDefinitionNames"],
3038
+
3039
+ # the properties below are optional
3040
+ container_groups_per_instance=gamelift.CfnFleet.ContainerGroupsPerInstanceProperty(
3041
+ desired_replica_container_groups_per_instance=123,
3042
+ max_replica_container_groups_per_instance=123
3043
+ )
1533
3044
  )
1534
3045
  '''
1535
3046
  if __debug__:
1536
- type_hints = typing.get_type_hints(_typecheckingstub__e3897ffc82938e5bf4e6384b3a83b22f50c7189a71eb0fc30ea8f17642db5ef9)
1537
- check_type(argname="argument cost", value=cost, expected_type=type_hints["cost"])
3047
+ type_hints = typing.get_type_hints(_typecheckingstub__af8dbebebd0e2db6dda0806b67c6edeb6e2460f1c55d333b8c83a5380be41afd)
3048
+ check_type(argname="argument connection_port_range", value=connection_port_range, expected_type=type_hints["connection_port_range"])
3049
+ check_type(argname="argument container_group_definition_names", value=container_group_definition_names, expected_type=type_hints["container_group_definition_names"])
3050
+ check_type(argname="argument container_groups_per_instance", value=container_groups_per_instance, expected_type=type_hints["container_groups_per_instance"])
1538
3051
  self._values: typing.Dict[builtins.str, typing.Any] = {
1539
- "cost": cost,
3052
+ "connection_port_range": connection_port_range,
3053
+ "container_group_definition_names": container_group_definition_names,
1540
3054
  }
3055
+ if container_groups_per_instance is not None:
3056
+ self._values["container_groups_per_instance"] = container_groups_per_instance
1541
3057
 
1542
3058
  @builtins.property
1543
- def cost(self) -> builtins.str:
1544
- '''The cost to run your fleet per hour.
3059
+ def connection_port_range(
3060
+ self,
3061
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnFleet.ConnectionPortRangeProperty"]:
3062
+ '''Defines the range of ports on the instance that allow inbound traffic to connect with containers in a fleet.
1545
3063
 
1546
- Amazon GameLift uses the provided cost of your fleet to balance usage in queues. For more information about queues, see `Setting up queues <https://docs.aws.amazon.com/gamelift/latest/developerguide/queues-intro.html>`_ in the *Amazon GameLift Developer Guide* .
3064
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsconfiguration.html#cfn-gamelift-fleet-containergroupsconfiguration-connectionportrange
3065
+ '''
3066
+ result = self._values.get("connection_port_range")
3067
+ assert result is not None, "Required property 'connection_port_range' is missing"
3068
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnFleet.ConnectionPortRangeProperty"], result)
1547
3069
 
1548
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-anywhereconfiguration.html#cfn-gamelift-fleet-anywhereconfiguration-cost
3070
+ @builtins.property
3071
+ def container_group_definition_names(self) -> typing.List[builtins.str]:
3072
+ '''The names of the container group definitions that will be created in an instance.
3073
+
3074
+ You must specify exactly one REPLICA container group. You have the option to also specify one DAEMON container group.
3075
+
3076
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsconfiguration.html#cfn-gamelift-fleet-containergroupsconfiguration-containergroupdefinitionnames
1549
3077
  '''
1550
- result = self._values.get("cost")
1551
- assert result is not None, "Required property 'cost' is missing"
1552
- return typing.cast(builtins.str, result)
3078
+ result = self._values.get("container_group_definition_names")
3079
+ assert result is not None, "Required property 'container_group_definition_names' is missing"
3080
+ return typing.cast(typing.List[builtins.str], result)
3081
+
3082
+ @builtins.property
3083
+ def container_groups_per_instance(
3084
+ self,
3085
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFleet.ContainerGroupsPerInstanceProperty"]]:
3086
+ '''The number of container groups per instance.
3087
+
3088
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsconfiguration.html#cfn-gamelift-fleet-containergroupsconfiguration-containergroupsperinstance
3089
+ '''
3090
+ result = self._values.get("container_groups_per_instance")
3091
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFleet.ContainerGroupsPerInstanceProperty"]], result)
1553
3092
 
1554
3093
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
1555
3094
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -1558,24 +3097,31 @@ class CfnFleet(
1558
3097
  return not (rhs == self)
1559
3098
 
1560
3099
  def __repr__(self) -> str:
1561
- return "AnywhereConfigurationProperty(%s)" % ", ".join(
3100
+ return "ContainerGroupsConfigurationProperty(%s)" % ", ".join(
1562
3101
  k + "=" + repr(v) for k, v in self._values.items()
1563
3102
  )
1564
3103
 
1565
3104
  @jsii.data_type(
1566
- jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.CertificateConfigurationProperty",
3105
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.ContainerGroupsPerInstanceProperty",
1567
3106
  jsii_struct_bases=[],
1568
- name_mapping={"certificate_type": "certificateType"},
3107
+ name_mapping={
3108
+ "desired_replica_container_groups_per_instance": "desiredReplicaContainerGroupsPerInstance",
3109
+ "max_replica_container_groups_per_instance": "maxReplicaContainerGroupsPerInstance",
3110
+ },
1569
3111
  )
1570
- class CertificateConfigurationProperty:
1571
- def __init__(self, *, certificate_type: builtins.str) -> None:
1572
- '''Determines whether a TLS/SSL certificate is generated for a fleet.
1573
-
1574
- This feature must be enabled when creating the fleet. All instances in a fleet share the same certificate. The certificate can be retrieved by calling the `GameLift Server SDK <https://docs.aws.amazon.com/gamelift/latest/developerguide/reference-serversdk.html>`_ operation ``GetInstanceCertificate`` .
3112
+ class ContainerGroupsPerInstanceProperty:
3113
+ def __init__(
3114
+ self,
3115
+ *,
3116
+ desired_replica_container_groups_per_instance: typing.Optional[jsii.Number] = None,
3117
+ max_replica_container_groups_per_instance: typing.Optional[jsii.Number] = None,
3118
+ ) -> None:
3119
+ '''The number of container groups per instance.
1575
3120
 
1576
- :param certificate_type: Indicates whether a TLS/SSL certificate is generated for a fleet. Valid values include: - *GENERATED* - Generate a TLS/SSL certificate for this fleet. - *DISABLED* - (default) Do not generate a TLS/SSL certificate for this fleet.
3121
+ :param desired_replica_container_groups_per_instance: 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.
3122
+ :param max_replica_container_groups_per_instance: 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.
1577
3123
 
1578
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html
3124
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsperinstance.html
1579
3125
  :exampleMetadata: fixture=_generated
1580
3126
 
1581
3127
  Example::
@@ -1584,31 +3130,42 @@ class CfnFleet(
1584
3130
  # The values are placeholders you should change.
1585
3131
  from aws_cdk import aws_gamelift as gamelift
1586
3132
 
1587
- certificate_configuration_property = gamelift.CfnFleet.CertificateConfigurationProperty(
1588
- certificate_type="certificateType"
3133
+ container_groups_per_instance_property = gamelift.CfnFleet.ContainerGroupsPerInstanceProperty(
3134
+ desired_replica_container_groups_per_instance=123,
3135
+ max_replica_container_groups_per_instance=123
1589
3136
  )
1590
3137
  '''
1591
3138
  if __debug__:
1592
- type_hints = typing.get_type_hints(_typecheckingstub__4c3cca5919f32f3e2cb6c385afda08bf3b194b8baf60b4d20e5f9f580659cc84)
1593
- check_type(argname="argument certificate_type", value=certificate_type, expected_type=type_hints["certificate_type"])
1594
- self._values: typing.Dict[builtins.str, typing.Any] = {
1595
- "certificate_type": certificate_type,
1596
- }
3139
+ type_hints = typing.get_type_hints(_typecheckingstub__3473ac2106ce855ef7577b99df8d3e14e6085d02c7bf0c0fb919636a907449c1)
3140
+ check_type(argname="argument desired_replica_container_groups_per_instance", value=desired_replica_container_groups_per_instance, expected_type=type_hints["desired_replica_container_groups_per_instance"])
3141
+ check_type(argname="argument max_replica_container_groups_per_instance", value=max_replica_container_groups_per_instance, expected_type=type_hints["max_replica_container_groups_per_instance"])
3142
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3143
+ if desired_replica_container_groups_per_instance is not None:
3144
+ self._values["desired_replica_container_groups_per_instance"] = desired_replica_container_groups_per_instance
3145
+ if max_replica_container_groups_per_instance is not None:
3146
+ self._values["max_replica_container_groups_per_instance"] = max_replica_container_groups_per_instance
1597
3147
 
1598
3148
  @builtins.property
1599
- def certificate_type(self) -> builtins.str:
1600
- '''Indicates whether a TLS/SSL certificate is generated for a fleet.
3149
+ def desired_replica_container_groups_per_instance(
3150
+ self,
3151
+ ) -> typing.Optional[jsii.Number]:
3152
+ '''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.
1601
3153
 
1602
- Valid values include:
3154
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsperinstance.html#cfn-gamelift-fleet-containergroupsperinstance-desiredreplicacontainergroupsperinstance
3155
+ '''
3156
+ result = self._values.get("desired_replica_container_groups_per_instance")
3157
+ return typing.cast(typing.Optional[jsii.Number], result)
1603
3158
 
1604
- - *GENERATED* - Generate a TLS/SSL certificate for this fleet.
1605
- - *DISABLED* - (default) Do not generate a TLS/SSL certificate for this fleet.
3159
+ @builtins.property
3160
+ def max_replica_container_groups_per_instance(
3161
+ self,
3162
+ ) -> typing.Optional[jsii.Number]:
3163
+ '''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.
1606
3164
 
1607
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html#cfn-gamelift-fleet-certificateconfiguration-certificatetype
3165
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsperinstance.html#cfn-gamelift-fleet-containergroupsperinstance-maxreplicacontainergroupsperinstance
1608
3166
  '''
1609
- result = self._values.get("certificate_type")
1610
- assert result is not None, "Required property 'certificate_type' is missing"
1611
- return typing.cast(builtins.str, result)
3167
+ result = self._values.get("max_replica_container_groups_per_instance")
3168
+ return typing.cast(typing.Optional[jsii.Number], result)
1612
3169
 
1613
3170
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
1614
3171
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -1617,7 +3174,7 @@ class CfnFleet(
1617
3174
  return not (rhs == self)
1618
3175
 
1619
3176
  def __repr__(self) -> str:
1620
- return "CertificateConfigurationProperty(%s)" % ", ".join(
3177
+ return "ContainerGroupsPerInstanceProperty(%s)" % ", ".join(
1621
3178
  k + "=" + repr(v) for k, v in self._values.items()
1622
3179
  )
1623
3180
 
@@ -2568,6 +4125,7 @@ class CfnFleet(
2568
4125
  "build_id": "buildId",
2569
4126
  "certificate_configuration": "certificateConfiguration",
2570
4127
  "compute_type": "computeType",
4128
+ "container_groups_configuration": "containerGroupsConfiguration",
2571
4129
  "description": "description",
2572
4130
  "desired_ec2_instances": "desiredEc2Instances",
2573
4131
  "ec2_inbound_permissions": "ec2InboundPermissions",
@@ -2601,6 +4159,7 @@ class CfnFleetProps:
2601
4159
  build_id: typing.Optional[builtins.str] = None,
2602
4160
  certificate_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.CertificateConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2603
4161
  compute_type: typing.Optional[builtins.str] = None,
4162
+ container_groups_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.ContainerGroupsConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2604
4163
  description: typing.Optional[builtins.str] = None,
2605
4164
  desired_ec2_instances: typing.Optional[jsii.Number] = None,
2606
4165
  ec2_inbound_permissions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.IpPermissionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
@@ -2631,6 +4190,7 @@ class CfnFleetProps:
2631
4190
  :param build_id: A unique identifier for a build to be deployed on the new fleet. If you are deploying the fleet with a custom game build, you must specify this property. The build must have been successfully uploaded to Amazon GameLift and be in a ``READY`` status. This fleet setting cannot be changed once the fleet is created.
2632
4191
  :param certificate_configuration: Prompts Amazon GameLift to generate a TLS/SSL certificate for the fleet. Amazon GameLift uses the certificates to encrypt traffic between game clients and the game servers running on Amazon GameLift. By default, the ``CertificateConfiguration`` is ``DISABLED`` . You can't change this property after you create the fleet. AWS Certificate Manager (ACM) certificates expire after 13 months. Certificate expiration can cause fleets to fail, preventing players from connecting to instances in the fleet. We recommend you replace fleets before 13 months, consider using fleet aliases for a smooth transition. .. epigraph:: ACM isn't available in all AWS regions. A fleet creation request with certificate generation enabled in an unsupported Region, fails with a 4xx error. For more information about the supported Regions, see `Supported Regions <https://docs.aws.amazon.com/acm/latest/userguide/acm-regions.html>`_ in the *AWS Certificate Manager User Guide* .
2633
4192
  :param compute_type: The type of compute resource used to host your game servers. You can use your own compute resources with Amazon GameLift Anywhere or use Amazon EC2 instances with managed Amazon GameLift. By default, this property is set to ``EC2`` .
4193
+ :param container_groups_configuration: 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.
2634
4194
  :param description: A description for the fleet.
2635
4195
  :param desired_ec2_instances: The number of EC2 instances that you want this fleet to host. When creating a new fleet, GameLift automatically sets this value to "1" and initiates a single instance. Once the fleet is active, update this value to trigger GameLift to add or remove instances from the fleet.
2636
4196
  :param ec2_inbound_permissions: The allowed IP address ranges and port settings that allow inbound traffic to access game sessions on this fleet. If the fleet is hosting a custom game build, this property must be set before players can connect to game sessions. For Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges.
@@ -2675,6 +4235,19 @@ class CfnFleetProps:
2675
4235
  certificate_type="certificateType"
2676
4236
  ),
2677
4237
  compute_type="computeType",
4238
+ container_groups_configuration=gamelift.CfnFleet.ContainerGroupsConfigurationProperty(
4239
+ connection_port_range=gamelift.CfnFleet.ConnectionPortRangeProperty(
4240
+ from_port=123,
4241
+ to_port=123
4242
+ ),
4243
+ container_group_definition_names=["containerGroupDefinitionNames"],
4244
+
4245
+ # the properties below are optional
4246
+ container_groups_per_instance=gamelift.CfnFleet.ContainerGroupsPerInstanceProperty(
4247
+ desired_replica_container_groups_per_instance=123,
4248
+ max_replica_container_groups_per_instance=123
4249
+ )
4250
+ ),
2678
4251
  description="description",
2679
4252
  desired_ec2_instances=123,
2680
4253
  ec2_inbound_permissions=[gamelift.CfnFleet.IpPermissionProperty(
@@ -2750,6 +4323,7 @@ class CfnFleetProps:
2750
4323
  check_type(argname="argument build_id", value=build_id, expected_type=type_hints["build_id"])
2751
4324
  check_type(argname="argument certificate_configuration", value=certificate_configuration, expected_type=type_hints["certificate_configuration"])
2752
4325
  check_type(argname="argument compute_type", value=compute_type, expected_type=type_hints["compute_type"])
4326
+ check_type(argname="argument container_groups_configuration", value=container_groups_configuration, expected_type=type_hints["container_groups_configuration"])
2753
4327
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
2754
4328
  check_type(argname="argument desired_ec2_instances", value=desired_ec2_instances, expected_type=type_hints["desired_ec2_instances"])
2755
4329
  check_type(argname="argument ec2_inbound_permissions", value=ec2_inbound_permissions, expected_type=type_hints["ec2_inbound_permissions"])
@@ -2784,6 +4358,8 @@ class CfnFleetProps:
2784
4358
  self._values["certificate_configuration"] = certificate_configuration
2785
4359
  if compute_type is not None:
2786
4360
  self._values["compute_type"] = compute_type
4361
+ if container_groups_configuration is not None:
4362
+ self._values["container_groups_configuration"] = container_groups_configuration
2787
4363
  if description is not None:
2788
4364
  self._values["description"] = description
2789
4365
  if desired_ec2_instances is not None:
@@ -2905,6 +4481,19 @@ class CfnFleetProps:
2905
4481
  result = self._values.get("compute_type")
2906
4482
  return typing.cast(typing.Optional[builtins.str], result)
2907
4483
 
4484
+ @builtins.property
4485
+ def container_groups_configuration(
4486
+ self,
4487
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFleet.ContainerGroupsConfigurationProperty]]:
4488
+ '''Specifies container groups that this instance will hold.
4489
+
4490
+ 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.
4491
+
4492
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-containergroupsconfiguration
4493
+ '''
4494
+ result = self._values.get("container_groups_configuration")
4495
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFleet.ContainerGroupsConfigurationProperty]], result)
4496
+
2908
4497
  @builtins.property
2909
4498
  def description(self) -> typing.Optional[builtins.str]:
2910
4499
  '''A description for the fleet.
@@ -6770,6 +8359,8 @@ __all__ = [
6770
8359
  "CfnAliasProps",
6771
8360
  "CfnBuild",
6772
8361
  "CfnBuildProps",
8362
+ "CfnContainerGroupDefinition",
8363
+ "CfnContainerGroupDefinitionProps",
6773
8364
  "CfnFleet",
6774
8365
  "CfnFleetProps",
6775
8366
  "CfnGameServerGroup",
@@ -6923,6 +8514,158 @@ def _typecheckingstub__4ea486b468f726c96f63f78347aac31445ce3b0bd1ea282f6fce30ca4
6923
8514
  """Type checking stubs"""
6924
8515
  pass
6925
8516
 
8517
+ def _typecheckingstub__2d0ad3aeb1243549bc05c0346bb1e8303d21326ec9f1a17ec63327d7e3f29a1e(
8518
+ scope: _constructs_77d1e7e8.Construct,
8519
+ id: builtins.str,
8520
+ *,
8521
+ container_definitions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.ContainerDefinitionProperty, typing.Dict[builtins.str, typing.Any]]]]],
8522
+ name: builtins.str,
8523
+ operating_system: builtins.str,
8524
+ total_cpu_limit: jsii.Number,
8525
+ total_memory_limit: jsii.Number,
8526
+ scheduling_strategy: typing.Optional[builtins.str] = None,
8527
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
8528
+ ) -> None:
8529
+ """Type checking stubs"""
8530
+ pass
8531
+
8532
+ def _typecheckingstub__b07a706beb428681d6a41fe2a705cfe7e9f6f65c0df4708d633a856c73d6fa7b(
8533
+ inspector: _TreeInspector_488e0dd5,
8534
+ ) -> None:
8535
+ """Type checking stubs"""
8536
+ pass
8537
+
8538
+ def _typecheckingstub__abcc96ad0c8f9f987fd719eb37179f12dda8829dbbc0b9fb28188a52044ec711(
8539
+ props: typing.Mapping[builtins.str, typing.Any],
8540
+ ) -> None:
8541
+ """Type checking stubs"""
8542
+ pass
8543
+
8544
+ def _typecheckingstub__1d575dc521c3da1f3682c88ce08e24b38977a41bef8807469e908a4fc94b8be0(
8545
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnContainerGroupDefinition.ContainerDefinitionProperty]]],
8546
+ ) -> None:
8547
+ """Type checking stubs"""
8548
+ pass
8549
+
8550
+ def _typecheckingstub__90e8a024d1021ae9b57dadc57167a55f375efa5756fd3358541d1bbca8f16cf0(
8551
+ value: builtins.str,
8552
+ ) -> None:
8553
+ """Type checking stubs"""
8554
+ pass
8555
+
8556
+ def _typecheckingstub__8f85c42319aa42e6c796369d8760bfb73c97a6305632fa1b86497b93a214a2ec(
8557
+ value: builtins.str,
8558
+ ) -> None:
8559
+ """Type checking stubs"""
8560
+ pass
8561
+
8562
+ def _typecheckingstub__c70806f2091ef0e31ae18f95ca9388e13070bc234c9db0acb79308e3bb8064c8(
8563
+ value: jsii.Number,
8564
+ ) -> None:
8565
+ """Type checking stubs"""
8566
+ pass
8567
+
8568
+ def _typecheckingstub__b4cc7de67e0ef4b7a915c9522aa5d27817d4c88d3cc0d6cc3897ec44fe82624e(
8569
+ value: jsii.Number,
8570
+ ) -> None:
8571
+ """Type checking stubs"""
8572
+ pass
8573
+
8574
+ def _typecheckingstub__ee4192c1232484aa6cb4b7a0ff2133a07c228af7fc593005174668d67f88e787(
8575
+ value: typing.Optional[builtins.str],
8576
+ ) -> None:
8577
+ """Type checking stubs"""
8578
+ pass
8579
+
8580
+ def _typecheckingstub__39d9905e11429554186c96e0a5c07109b132519014161fc8e8d7aa9f4250218d(
8581
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
8582
+ ) -> None:
8583
+ """Type checking stubs"""
8584
+ pass
8585
+
8586
+ def _typecheckingstub__3d96474fb31ceec64a55f6a09274f19f2dde05387b5bdd5c76ce6f26d90d5eb7(
8587
+ *,
8588
+ container_name: builtins.str,
8589
+ image_uri: builtins.str,
8590
+ command: typing.Optional[typing.Sequence[builtins.str]] = None,
8591
+ cpu: typing.Optional[jsii.Number] = None,
8592
+ depends_on: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.ContainerDependencyProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
8593
+ entry_point: typing.Optional[typing.Sequence[builtins.str]] = None,
8594
+ environment: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.ContainerEnvironmentProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
8595
+ essential: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
8596
+ health_check: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.ContainerHealthCheckProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8597
+ memory_limits: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.MemoryLimitsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8598
+ port_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.PortConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8599
+ resolved_image_digest: typing.Optional[builtins.str] = None,
8600
+ working_directory: typing.Optional[builtins.str] = None,
8601
+ ) -> None:
8602
+ """Type checking stubs"""
8603
+ pass
8604
+
8605
+ def _typecheckingstub__e8424bed9ce9567d13ec372652e5d607735583e13219bd42143f538aee3feb1f(
8606
+ *,
8607
+ condition: builtins.str,
8608
+ container_name: builtins.str,
8609
+ ) -> None:
8610
+ """Type checking stubs"""
8611
+ pass
8612
+
8613
+ def _typecheckingstub__c8a971f77ef4383909669846d3e4ee4a8463f7353ec0c1aa4da152ea7ec43bb9(
8614
+ *,
8615
+ name: builtins.str,
8616
+ value: builtins.str,
8617
+ ) -> None:
8618
+ """Type checking stubs"""
8619
+ pass
8620
+
8621
+ def _typecheckingstub__95b1e7083ac6b3d39e0bc5926b3c9ee368385be498c61499a81f860b155d0a1d(
8622
+ *,
8623
+ command: typing.Sequence[builtins.str],
8624
+ interval: typing.Optional[jsii.Number] = None,
8625
+ retries: typing.Optional[jsii.Number] = None,
8626
+ start_period: typing.Optional[jsii.Number] = None,
8627
+ timeout: typing.Optional[jsii.Number] = None,
8628
+ ) -> None:
8629
+ """Type checking stubs"""
8630
+ pass
8631
+
8632
+ def _typecheckingstub__2d3e35cf8a42e8cbcdf12218e64e5ac29c19f0813f144c8d75e97d3e3313d396(
8633
+ *,
8634
+ from_port: jsii.Number,
8635
+ protocol: builtins.str,
8636
+ to_port: jsii.Number,
8637
+ ) -> None:
8638
+ """Type checking stubs"""
8639
+ pass
8640
+
8641
+ def _typecheckingstub__9ac03f75ba7cf3ff7267cf9e9544e940c9974e78a4d364eed01d2ebb6bc2d3fa(
8642
+ *,
8643
+ hard_limit: typing.Optional[jsii.Number] = None,
8644
+ soft_limit: typing.Optional[jsii.Number] = None,
8645
+ ) -> None:
8646
+ """Type checking stubs"""
8647
+ pass
8648
+
8649
+ def _typecheckingstub__49796d7f2a6fb9a60e370fb5b8e88da33d84ca298d8833d8e64e3d80586cedf7(
8650
+ *,
8651
+ container_port_ranges: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.ContainerPortRangeProperty, typing.Dict[builtins.str, typing.Any]]]]],
8652
+ ) -> None:
8653
+ """Type checking stubs"""
8654
+ pass
8655
+
8656
+ def _typecheckingstub__6b760a12182b9da0a53204aa5510dae28c2cda4c4fba1ef77f0245093da04ea4(
8657
+ *,
8658
+ container_definitions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.ContainerDefinitionProperty, typing.Dict[builtins.str, typing.Any]]]]],
8659
+ name: builtins.str,
8660
+ operating_system: builtins.str,
8661
+ total_cpu_limit: jsii.Number,
8662
+ total_memory_limit: jsii.Number,
8663
+ scheduling_strategy: typing.Optional[builtins.str] = None,
8664
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
8665
+ ) -> None:
8666
+ """Type checking stubs"""
8667
+ pass
8668
+
6926
8669
  def _typecheckingstub__21fe09a90444788b3c862f454214d4e160757c9b02d0598d282f68b7f79d749f(
6927
8670
  scope: _constructs_77d1e7e8.Construct,
6928
8671
  id: builtins.str,
@@ -6933,6 +8676,7 @@ def _typecheckingstub__21fe09a90444788b3c862f454214d4e160757c9b02d0598d282f68b7f
6933
8676
  build_id: typing.Optional[builtins.str] = None,
6934
8677
  certificate_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.CertificateConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6935
8678
  compute_type: typing.Optional[builtins.str] = None,
8679
+ container_groups_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.ContainerGroupsConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6936
8680
  description: typing.Optional[builtins.str] = None,
6937
8681
  desired_ec2_instances: typing.Optional[jsii.Number] = None,
6938
8682
  ec2_inbound_permissions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.IpPermissionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
@@ -7006,6 +8750,12 @@ def _typecheckingstub__022e8bf70858e61cedf1ac2f0bbe1af01706924dda3af7f4e655e78c1
7006
8750
  """Type checking stubs"""
7007
8751
  pass
7008
8752
 
8753
+ def _typecheckingstub__12ab5ebb46adc7fe2bb2e1911285f98090170c29093f6e28b584096baafa36aa(
8754
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFleet.ContainerGroupsConfigurationProperty]],
8755
+ ) -> None:
8756
+ """Type checking stubs"""
8757
+ pass
8758
+
7009
8759
  def _typecheckingstub__eec78595476346beb2b42a6ac89d6890fb357c8bc49fbafff985bc1417bca206(
7010
8760
  value: typing.Optional[builtins.str],
7011
8761
  ) -> None:
@@ -7146,6 +8896,31 @@ def _typecheckingstub__4c3cca5919f32f3e2cb6c385afda08bf3b194b8baf60b4d20e5f9f580
7146
8896
  """Type checking stubs"""
7147
8897
  pass
7148
8898
 
8899
+ def _typecheckingstub__65c7b986d31ccdfa5d51331dd935bb4233bcf101bbfe90052f66eb229319a0a8(
8900
+ *,
8901
+ from_port: jsii.Number,
8902
+ to_port: jsii.Number,
8903
+ ) -> None:
8904
+ """Type checking stubs"""
8905
+ pass
8906
+
8907
+ def _typecheckingstub__af8dbebebd0e2db6dda0806b67c6edeb6e2460f1c55d333b8c83a5380be41afd(
8908
+ *,
8909
+ connection_port_range: typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.ConnectionPortRangeProperty, typing.Dict[builtins.str, typing.Any]]],
8910
+ container_group_definition_names: typing.Sequence[builtins.str],
8911
+ container_groups_per_instance: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.ContainerGroupsPerInstanceProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8912
+ ) -> None:
8913
+ """Type checking stubs"""
8914
+ pass
8915
+
8916
+ def _typecheckingstub__3473ac2106ce855ef7577b99df8d3e14e6085d02c7bf0c0fb919636a907449c1(
8917
+ *,
8918
+ desired_replica_container_groups_per_instance: typing.Optional[jsii.Number] = None,
8919
+ max_replica_container_groups_per_instance: typing.Optional[jsii.Number] = None,
8920
+ ) -> None:
8921
+ """Type checking stubs"""
8922
+ pass
8923
+
7149
8924
  def _typecheckingstub__70f885be25c9084dbab3b02a36601be0e37c43ab741ea7dd646494423839333a(
7150
8925
  *,
7151
8926
  from_port: jsii.Number,
@@ -7232,6 +9007,7 @@ def _typecheckingstub__8a51a418ba5b606bdfc45dc50c3172e280a12e078a7392f3258d5d329
7232
9007
  build_id: typing.Optional[builtins.str] = None,
7233
9008
  certificate_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.CertificateConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7234
9009
  compute_type: typing.Optional[builtins.str] = None,
9010
+ container_groups_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.ContainerGroupsConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7235
9011
  description: typing.Optional[builtins.str] = None,
7236
9012
  desired_ec2_instances: typing.Optional[jsii.Number] = None,
7237
9013
  ec2_inbound_permissions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.IpPermissionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,