aws-cdk-lib 2.139.1__py3-none-any.whl → 2.141.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 (60) 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.141.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 +2829 -147
  9. aws_cdk/aws_cloudfront/__init__.py +51 -9
  10. aws_cdk/aws_cloudtrail/__init__.py +13 -4
  11. aws_cdk/aws_codecommit/__init__.py +72 -46
  12. aws_cdk/aws_connectcampaigns/__init__.py +34 -4
  13. aws_cdk/aws_datasync/__init__.py +96 -75
  14. aws_cdk/aws_dms/__init__.py +0 -269
  15. aws_cdk/aws_dynamodb/__init__.py +410 -0
  16. aws_cdk/aws_ec2/__init__.py +239 -84
  17. aws_cdk/aws_ecr/__init__.py +32 -7
  18. aws_cdk/aws_ecs/__init__.py +2 -4
  19. aws_cdk/aws_efs/__init__.py +16 -2
  20. aws_cdk/aws_eks/__init__.py +57 -0
  21. aws_cdk/aws_entityresolution/__init__.py +6 -2
  22. aws_cdk/aws_events/__init__.py +115 -0
  23. aws_cdk/aws_events_targets/__init__.py +15 -0
  24. aws_cdk/aws_fis/__init__.py +2 -1
  25. aws_cdk/aws_fms/__init__.py +7 -7
  26. aws_cdk/aws_gamelift/__init__.py +1984 -107
  27. aws_cdk/aws_globalaccelerator/__init__.py +20 -16
  28. aws_cdk/aws_iam/__init__.py +2 -2
  29. aws_cdk/aws_ivs/__init__.py +1 -3
  30. aws_cdk/aws_kinesis/__init__.py +21 -0
  31. aws_cdk/aws_kinesisvideo/__init__.py +6 -4
  32. aws_cdk/aws_kms/__init__.py +33 -6
  33. aws_cdk/aws_lambda/__init__.py +0 -9
  34. aws_cdk/aws_location/__init__.py +8 -4
  35. aws_cdk/aws_medialive/__init__.py +444 -3
  36. aws_cdk/aws_oam/__init__.py +45 -11
  37. aws_cdk/aws_omics/__init__.py +4 -4
  38. aws_cdk/aws_paymentcryptography/__init__.py +1155 -0
  39. aws_cdk/aws_personalize/__init__.py +8 -2
  40. aws_cdk/aws_pinpoint/__init__.py +7 -5
  41. aws_cdk/aws_qbusiness/__init__.py +5583 -0
  42. aws_cdk/aws_quicksight/__init__.py +10063 -1450
  43. aws_cdk/aws_rds/__init__.py +77 -5
  44. aws_cdk/aws_redshiftserverless/__init__.py +13 -9
  45. aws_cdk/aws_route53/__init__.py +350 -0
  46. aws_cdk/aws_route53profiles/__init__.py +1048 -0
  47. aws_cdk/aws_s3/__init__.py +1 -1
  48. aws_cdk/aws_sagemaker/__init__.py +30 -30
  49. aws_cdk/aws_ses/__init__.py +9 -9
  50. aws_cdk/aws_transfer/__init__.py +102 -37
  51. aws_cdk/aws_voiceid/__init__.py +2 -2
  52. aws_cdk/aws_workspacesweb/__init__.py +92 -6
  53. aws_cdk/custom_resources/__init__.py +23 -2
  54. aws_cdk/cx_api/__init__.py +16 -0
  55. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/METADATA +2 -2
  56. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/RECORD +60 -57
  57. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/LICENSE +0 -0
  58. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/NOTICE +0 -0
  59. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.0.dist-info}/WHEEL +0 -0
  60. {aws_cdk_lib-2.139.1.dist-info → aws_cdk_lib-2.141.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,1340 @@ 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
+ '''*This data type is used with the Amazon GameLift containers feature, which is currently in public preview.*.
867
+
868
+ The properties that describe a container group resource. Container group definition properties can't be updated. To change a property, create a new container group definition.
869
+
870
+ *Used with:* ``CreateContainerGroupDefinition``
871
+
872
+ *Returned by:* ``DescribeContainerGroupDefinition`` , ``ListContainerGroupDefinitions``
873
+
874
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html
875
+ :cloudformationResource: AWS::GameLift::ContainerGroupDefinition
876
+ :exampleMetadata: fixture=_generated
877
+
878
+ Example::
879
+
880
+ # The code below shows an example of how to instantiate this type.
881
+ # The values are placeholders you should change.
882
+ from aws_cdk import aws_gamelift as gamelift
883
+
884
+ cfn_container_group_definition = gamelift.CfnContainerGroupDefinition(self, "MyCfnContainerGroupDefinition",
885
+ container_definitions=[gamelift.CfnContainerGroupDefinition.ContainerDefinitionProperty(
886
+ container_name="containerName",
887
+ image_uri="imageUri",
888
+
889
+ # the properties below are optional
890
+ command=["command"],
891
+ cpu=123,
892
+ depends_on=[gamelift.CfnContainerGroupDefinition.ContainerDependencyProperty(
893
+ condition="condition",
894
+ container_name="containerName"
895
+ )],
896
+ entry_point=["entryPoint"],
897
+ environment=[gamelift.CfnContainerGroupDefinition.ContainerEnvironmentProperty(
898
+ name="name",
899
+ value="value"
900
+ )],
901
+ essential=False,
902
+ health_check=gamelift.CfnContainerGroupDefinition.ContainerHealthCheckProperty(
903
+ command=["command"],
904
+
905
+ # the properties below are optional
906
+ interval=123,
907
+ retries=123,
908
+ start_period=123,
909
+ timeout=123
910
+ ),
911
+ memory_limits=gamelift.CfnContainerGroupDefinition.MemoryLimitsProperty(
912
+ hard_limit=123,
913
+ soft_limit=123
914
+ ),
915
+ port_configuration=gamelift.CfnContainerGroupDefinition.PortConfigurationProperty(
916
+ container_port_ranges=[gamelift.CfnContainerGroupDefinition.ContainerPortRangeProperty(
917
+ from_port=123,
918
+ protocol="protocol",
919
+ to_port=123
920
+ )]
921
+ ),
922
+ resolved_image_digest="resolvedImageDigest",
923
+ working_directory="workingDirectory"
924
+ )],
925
+ name="name",
926
+ operating_system="operatingSystem",
927
+ total_cpu_limit=123,
928
+ total_memory_limit=123,
929
+
930
+ # the properties below are optional
931
+ scheduling_strategy="schedulingStrategy",
932
+ tags=[CfnTag(
933
+ key="key",
934
+ value="value"
935
+ )]
936
+ )
937
+ '''
938
+
939
+ def __init__(
940
+ self,
941
+ scope: _constructs_77d1e7e8.Construct,
942
+ id: builtins.str,
943
+ *,
944
+ container_definitions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContainerGroupDefinition.ContainerDefinitionProperty", typing.Dict[builtins.str, typing.Any]]]]],
945
+ name: builtins.str,
946
+ operating_system: builtins.str,
947
+ total_cpu_limit: jsii.Number,
948
+ total_memory_limit: jsii.Number,
949
+ scheduling_strategy: typing.Optional[builtins.str] = None,
950
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
951
+ ) -> None:
952
+ '''
953
+ :param scope: Scope in which this resource is defined.
954
+ :param id: Construct identifier for this resource (unique in its scope).
955
+ :param container_definitions: The set of container definitions that are included in the container group.
956
+ :param name: A descriptive identifier for the container group definition. The name value is unique in an AWS Region.
957
+ :param operating_system: The platform required for all containers in the container group definition.
958
+ :param total_cpu_limit: The amount of CPU units on a fleet instance to allocate for the container group. All containers in the group share these resources. This property is an integer value in CPU units (1 vCPU is equal to 1024 CPU units). You can set additional limits for each ``ContainerDefinition`` in the group. If individual containers have limits, this value must be equal to or greater than the sum of all container-specific CPU limits in the group. For more details on memory allocation, see the `Container fleet design guide <https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-design-fleet>`_ .
959
+ :param total_memory_limit: The amount of memory (in MiB) on a fleet instance to allocate for the container group. All containers in the group share these resources. You can set additional limits for each ``ContainerDefinition`` in the group. If individual containers have limits, this value must meet the following requirements: - Equal to or greater than the sum of all container-specific soft memory limits in the group. - Equal to or greater than any container-specific hard limits in the group. For more details on memory allocation, see the `Container fleet design guide <https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-design-fleet>`_ .
960
+ :param scheduling_strategy: The method for deploying the container group across fleet instances. A replica container group might have multiple copies on each fleet instance. A daemon container group maintains only one copy per fleet instance.
961
+ :param tags: An array of key-value pairs to apply to this resource.
962
+ '''
963
+ if __debug__:
964
+ type_hints = typing.get_type_hints(_typecheckingstub__2d0ad3aeb1243549bc05c0346bb1e8303d21326ec9f1a17ec63327d7e3f29a1e)
965
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
966
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
967
+ props = CfnContainerGroupDefinitionProps(
968
+ container_definitions=container_definitions,
969
+ name=name,
970
+ operating_system=operating_system,
971
+ total_cpu_limit=total_cpu_limit,
972
+ total_memory_limit=total_memory_limit,
973
+ scheduling_strategy=scheduling_strategy,
974
+ tags=tags,
975
+ )
976
+
977
+ jsii.create(self.__class__, self, [scope, id, props])
978
+
979
+ @jsii.member(jsii_name="inspect")
980
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
981
+ '''Examines the CloudFormation resource and discloses attributes.
982
+
983
+ :param inspector: tree inspector to collect and process attributes.
984
+ '''
985
+ if __debug__:
986
+ type_hints = typing.get_type_hints(_typecheckingstub__b07a706beb428681d6a41fe2a705cfe7e9f6f65c0df4708d633a856c73d6fa7b)
987
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
988
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
989
+
990
+ @jsii.member(jsii_name="renderProperties")
991
+ def _render_properties(
992
+ self,
993
+ props: typing.Mapping[builtins.str, typing.Any],
994
+ ) -> typing.Mapping[builtins.str, typing.Any]:
995
+ '''
996
+ :param props: -
997
+ '''
998
+ if __debug__:
999
+ type_hints = typing.get_type_hints(_typecheckingstub__abcc96ad0c8f9f987fd719eb37179f12dda8829dbbc0b9fb28188a52044ec711)
1000
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
1001
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
1002
+
1003
+ @jsii.python.classproperty
1004
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
1005
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
1006
+ '''The CloudFormation resource type name for this resource class.'''
1007
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
1008
+
1009
+ @builtins.property
1010
+ @jsii.member(jsii_name="attrContainerGroupDefinitionArn")
1011
+ def attr_container_group_definition_arn(self) -> builtins.str:
1012
+ '''The Amazon Resource Name ( `ARN <https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html>`_ ) that is assigned to an Amazon GameLift ``ContainerGroupDefinition`` resource. It uniquely identifies the resource across all AWS Regions. Format is ``arn:aws:gamelift:<region>::containergroupdefinition/[container group definition name]`` .
1013
+
1014
+ :cloudformationAttribute: ContainerGroupDefinitionArn
1015
+ '''
1016
+ return typing.cast(builtins.str, jsii.get(self, "attrContainerGroupDefinitionArn"))
1017
+
1018
+ @builtins.property
1019
+ @jsii.member(jsii_name="attrCreationTime")
1020
+ def attr_creation_time(self) -> builtins.str:
1021
+ '''A time stamp indicating when this data object was created.
1022
+
1023
+ Format is a number expressed in Unix time as milliseconds (for example ``"1469498468.057"`` ).
1024
+
1025
+ :cloudformationAttribute: CreationTime
1026
+ '''
1027
+ return typing.cast(builtins.str, jsii.get(self, "attrCreationTime"))
1028
+
1029
+ @builtins.property
1030
+ @jsii.member(jsii_name="cdkTagManager")
1031
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
1032
+ '''Tag Manager which manages the tags for this resource.'''
1033
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
1034
+
1035
+ @builtins.property
1036
+ @jsii.member(jsii_name="cfnProperties")
1037
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1038
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1039
+
1040
+ @builtins.property
1041
+ @jsii.member(jsii_name="containerDefinitions")
1042
+ def container_definitions(
1043
+ self,
1044
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerDefinitionProperty"]]]:
1045
+ '''The set of container definitions that are included in the container group.'''
1046
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerDefinitionProperty"]]], jsii.get(self, "containerDefinitions"))
1047
+
1048
+ @container_definitions.setter
1049
+ def container_definitions(
1050
+ self,
1051
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerDefinitionProperty"]]],
1052
+ ) -> None:
1053
+ if __debug__:
1054
+ type_hints = typing.get_type_hints(_typecheckingstub__1d575dc521c3da1f3682c88ce08e24b38977a41bef8807469e908a4fc94b8be0)
1055
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1056
+ jsii.set(self, "containerDefinitions", value)
1057
+
1058
+ @builtins.property
1059
+ @jsii.member(jsii_name="name")
1060
+ def name(self) -> builtins.str:
1061
+ '''A descriptive identifier for the container group definition.'''
1062
+ return typing.cast(builtins.str, jsii.get(self, "name"))
1063
+
1064
+ @name.setter
1065
+ def name(self, value: builtins.str) -> None:
1066
+ if __debug__:
1067
+ type_hints = typing.get_type_hints(_typecheckingstub__90e8a024d1021ae9b57dadc57167a55f375efa5756fd3358541d1bbca8f16cf0)
1068
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1069
+ jsii.set(self, "name", value)
1070
+
1071
+ @builtins.property
1072
+ @jsii.member(jsii_name="operatingSystem")
1073
+ def operating_system(self) -> builtins.str:
1074
+ '''The platform required for all containers in the container group definition.'''
1075
+ return typing.cast(builtins.str, jsii.get(self, "operatingSystem"))
1076
+
1077
+ @operating_system.setter
1078
+ def operating_system(self, value: builtins.str) -> None:
1079
+ if __debug__:
1080
+ type_hints = typing.get_type_hints(_typecheckingstub__8f85c42319aa42e6c796369d8760bfb73c97a6305632fa1b86497b93a214a2ec)
1081
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1082
+ jsii.set(self, "operatingSystem", value)
1083
+
1084
+ @builtins.property
1085
+ @jsii.member(jsii_name="totalCpuLimit")
1086
+ def total_cpu_limit(self) -> jsii.Number:
1087
+ '''The amount of CPU units on a fleet instance to allocate for the container group.'''
1088
+ return typing.cast(jsii.Number, jsii.get(self, "totalCpuLimit"))
1089
+
1090
+ @total_cpu_limit.setter
1091
+ def total_cpu_limit(self, value: jsii.Number) -> None:
1092
+ if __debug__:
1093
+ type_hints = typing.get_type_hints(_typecheckingstub__c70806f2091ef0e31ae18f95ca9388e13070bc234c9db0acb79308e3bb8064c8)
1094
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1095
+ jsii.set(self, "totalCpuLimit", value)
1096
+
1097
+ @builtins.property
1098
+ @jsii.member(jsii_name="totalMemoryLimit")
1099
+ def total_memory_limit(self) -> jsii.Number:
1100
+ '''The amount of memory (in MiB) on a fleet instance to allocate for the container group.'''
1101
+ return typing.cast(jsii.Number, jsii.get(self, "totalMemoryLimit"))
1102
+
1103
+ @total_memory_limit.setter
1104
+ def total_memory_limit(self, value: jsii.Number) -> None:
1105
+ if __debug__:
1106
+ type_hints = typing.get_type_hints(_typecheckingstub__b4cc7de67e0ef4b7a915c9522aa5d27817d4c88d3cc0d6cc3897ec44fe82624e)
1107
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1108
+ jsii.set(self, "totalMemoryLimit", value)
1109
+
1110
+ @builtins.property
1111
+ @jsii.member(jsii_name="schedulingStrategy")
1112
+ def scheduling_strategy(self) -> typing.Optional[builtins.str]:
1113
+ '''The method for deploying the container group across fleet instances.'''
1114
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "schedulingStrategy"))
1115
+
1116
+ @scheduling_strategy.setter
1117
+ def scheduling_strategy(self, value: typing.Optional[builtins.str]) -> None:
1118
+ if __debug__:
1119
+ type_hints = typing.get_type_hints(_typecheckingstub__ee4192c1232484aa6cb4b7a0ff2133a07c228af7fc593005174668d67f88e787)
1120
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1121
+ jsii.set(self, "schedulingStrategy", value)
1122
+
1123
+ @builtins.property
1124
+ @jsii.member(jsii_name="tags")
1125
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1126
+ '''An array of key-value pairs to apply to this resource.'''
1127
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
1128
+
1129
+ @tags.setter
1130
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
1131
+ if __debug__:
1132
+ type_hints = typing.get_type_hints(_typecheckingstub__39d9905e11429554186c96e0a5c07109b132519014161fc8e8d7aa9f4250218d)
1133
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1134
+ jsii.set(self, "tags", value)
1135
+
1136
+ @jsii.data_type(
1137
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.ContainerDefinitionProperty",
1138
+ jsii_struct_bases=[],
1139
+ name_mapping={
1140
+ "container_name": "containerName",
1141
+ "image_uri": "imageUri",
1142
+ "command": "command",
1143
+ "cpu": "cpu",
1144
+ "depends_on": "dependsOn",
1145
+ "entry_point": "entryPoint",
1146
+ "environment": "environment",
1147
+ "essential": "essential",
1148
+ "health_check": "healthCheck",
1149
+ "memory_limits": "memoryLimits",
1150
+ "port_configuration": "portConfiguration",
1151
+ "resolved_image_digest": "resolvedImageDigest",
1152
+ "working_directory": "workingDirectory",
1153
+ },
1154
+ )
1155
+ class ContainerDefinitionProperty:
1156
+ def __init__(
1157
+ self,
1158
+ *,
1159
+ container_name: builtins.str,
1160
+ image_uri: builtins.str,
1161
+ command: typing.Optional[typing.Sequence[builtins.str]] = None,
1162
+ cpu: typing.Optional[jsii.Number] = None,
1163
+ 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,
1164
+ entry_point: typing.Optional[typing.Sequence[builtins.str]] = None,
1165
+ environment: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContainerGroupDefinition.ContainerEnvironmentProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
1166
+ essential: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1167
+ health_check: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContainerGroupDefinition.ContainerHealthCheckProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1168
+ memory_limits: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContainerGroupDefinition.MemoryLimitsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1169
+ port_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContainerGroupDefinition.PortConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1170
+ resolved_image_digest: typing.Optional[builtins.str] = None,
1171
+ working_directory: typing.Optional[builtins.str] = None,
1172
+ ) -> None:
1173
+ '''*This data type is used with the Amazon GameLift containers feature, which is currently in public preview.*.
1174
+
1175
+ Describes a container in a container fleet, the resources available to the container, and the commands that are run when the container starts. Container properties can't be updated. To change a property, create a new container group definition. See also ``ContainerDefinitionInput`` .
1176
+
1177
+ *Part of:* ``ContainerGroupDefinition``
1178
+
1179
+ *Returned by:* ``DescribeContainerGroupDefinition`` , ``ListContainerGroupDefinitions``
1180
+
1181
+ :param container_name: The container definition identifier. Container names are unique within a container group definition.
1182
+ :param image_uri: The URI to the image that $short; copied and deployed to a container fleet. For a more specific identifier, see ``ResolvedImageDigest`` .
1183
+ :param command: A command that's passed to the container on startup. Each argument for the command is an additional string in the array. See the `ContainerDefinition::command <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-command>`_ parameter in the *Amazon Elastic Container Service API reference.*
1184
+ :param cpu: The number of CPU units that are reserved for the container. Note: 1 vCPU unit equals 1024 CPU units. If no resources are reserved, the container shares the total CPU limit for the container group. *Related data type:* ``ContainerGroupDefinition$TotalCpuLimit``
1185
+ :param depends_on: Indicates that the container relies on the status of other containers in the same container group during its startup and shutdown sequences. A container might have dependencies on multiple containers.
1186
+ :param entry_point: The entry point that's passed to the container on startup. If there are multiple arguments, each argument is an additional string in the array. See the `ContainerDefinition::entryPoint <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-entryPoint>`_ parameter in the *Amazon Elastic Container Service API Reference* .
1187
+ :param environment: A set of environment variables that's passed to the container on startup. See the `ContainerDefinition::environment <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-environment>`_ parameter in the *Amazon Elastic Container Service API Reference* .
1188
+ :param essential: Indicates whether the container is vital to the container group. If an essential container fails, the entire container group is restarted.
1189
+ :param health_check: A configuration for a non-terminal health check. A container, which automatically restarts if it stops functioning, also restarts if it fails this health check. If an essential container in the daemon group fails a health check, the entire container group is restarted. The essential container in the replica group doesn't use this health check mechanism, because the Amazon GameLift Agent automatically handles the task.
1190
+ :param memory_limits: The amount of memory that Amazon GameLift makes available to the container. If memory limits aren't set for an individual container, the container shares the container group's total memory allocation. *Related data type:* ``ContainerGroupDefinition$TotalMemoryLimit``
1191
+ :param port_configuration: Defines the ports that are available to assign to processes in the container. For example, a game server process requires a container port to allow game clients to connect to it. Container ports aren't directly accessed by inbound traffic. Amazon GameLift maps these container ports to externally accessible connection ports, which are assigned as needed from the container fleet's ``ConnectionPortRange`` .
1192
+ :param resolved_image_digest: A unique and immutable identifier for the container image that is deployed to a container fleet. The digest is a SHA 256 hash of the container image manifest.
1193
+ :param working_directory: The directory in the container where commands are run. See the `ContainerDefinition::workingDirectory <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-workingDirectory>`_ parameter in the *Amazon Elastic Container Service API Reference* .
1194
+
1195
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html
1196
+ :exampleMetadata: fixture=_generated
1197
+
1198
+ Example::
1199
+
1200
+ # The code below shows an example of how to instantiate this type.
1201
+ # The values are placeholders you should change.
1202
+ from aws_cdk import aws_gamelift as gamelift
1203
+
1204
+ container_definition_property = gamelift.CfnContainerGroupDefinition.ContainerDefinitionProperty(
1205
+ container_name="containerName",
1206
+ image_uri="imageUri",
1207
+
1208
+ # the properties below are optional
1209
+ command=["command"],
1210
+ cpu=123,
1211
+ depends_on=[gamelift.CfnContainerGroupDefinition.ContainerDependencyProperty(
1212
+ condition="condition",
1213
+ container_name="containerName"
1214
+ )],
1215
+ entry_point=["entryPoint"],
1216
+ environment=[gamelift.CfnContainerGroupDefinition.ContainerEnvironmentProperty(
1217
+ name="name",
1218
+ value="value"
1219
+ )],
1220
+ essential=False,
1221
+ health_check=gamelift.CfnContainerGroupDefinition.ContainerHealthCheckProperty(
1222
+ command=["command"],
1223
+
1224
+ # the properties below are optional
1225
+ interval=123,
1226
+ retries=123,
1227
+ start_period=123,
1228
+ timeout=123
1229
+ ),
1230
+ memory_limits=gamelift.CfnContainerGroupDefinition.MemoryLimitsProperty(
1231
+ hard_limit=123,
1232
+ soft_limit=123
1233
+ ),
1234
+ port_configuration=gamelift.CfnContainerGroupDefinition.PortConfigurationProperty(
1235
+ container_port_ranges=[gamelift.CfnContainerGroupDefinition.ContainerPortRangeProperty(
1236
+ from_port=123,
1237
+ protocol="protocol",
1238
+ to_port=123
1239
+ )]
1240
+ ),
1241
+ resolved_image_digest="resolvedImageDigest",
1242
+ working_directory="workingDirectory"
1243
+ )
1244
+ '''
1245
+ if __debug__:
1246
+ type_hints = typing.get_type_hints(_typecheckingstub__3d96474fb31ceec64a55f6a09274f19f2dde05387b5bdd5c76ce6f26d90d5eb7)
1247
+ check_type(argname="argument container_name", value=container_name, expected_type=type_hints["container_name"])
1248
+ check_type(argname="argument image_uri", value=image_uri, expected_type=type_hints["image_uri"])
1249
+ check_type(argname="argument command", value=command, expected_type=type_hints["command"])
1250
+ check_type(argname="argument cpu", value=cpu, expected_type=type_hints["cpu"])
1251
+ check_type(argname="argument depends_on", value=depends_on, expected_type=type_hints["depends_on"])
1252
+ check_type(argname="argument entry_point", value=entry_point, expected_type=type_hints["entry_point"])
1253
+ check_type(argname="argument environment", value=environment, expected_type=type_hints["environment"])
1254
+ check_type(argname="argument essential", value=essential, expected_type=type_hints["essential"])
1255
+ check_type(argname="argument health_check", value=health_check, expected_type=type_hints["health_check"])
1256
+ check_type(argname="argument memory_limits", value=memory_limits, expected_type=type_hints["memory_limits"])
1257
+ check_type(argname="argument port_configuration", value=port_configuration, expected_type=type_hints["port_configuration"])
1258
+ check_type(argname="argument resolved_image_digest", value=resolved_image_digest, expected_type=type_hints["resolved_image_digest"])
1259
+ check_type(argname="argument working_directory", value=working_directory, expected_type=type_hints["working_directory"])
1260
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1261
+ "container_name": container_name,
1262
+ "image_uri": image_uri,
1263
+ }
1264
+ if command is not None:
1265
+ self._values["command"] = command
1266
+ if cpu is not None:
1267
+ self._values["cpu"] = cpu
1268
+ if depends_on is not None:
1269
+ self._values["depends_on"] = depends_on
1270
+ if entry_point is not None:
1271
+ self._values["entry_point"] = entry_point
1272
+ if environment is not None:
1273
+ self._values["environment"] = environment
1274
+ if essential is not None:
1275
+ self._values["essential"] = essential
1276
+ if health_check is not None:
1277
+ self._values["health_check"] = health_check
1278
+ if memory_limits is not None:
1279
+ self._values["memory_limits"] = memory_limits
1280
+ if port_configuration is not None:
1281
+ self._values["port_configuration"] = port_configuration
1282
+ if resolved_image_digest is not None:
1283
+ self._values["resolved_image_digest"] = resolved_image_digest
1284
+ if working_directory is not None:
1285
+ self._values["working_directory"] = working_directory
1286
+
1287
+ @builtins.property
1288
+ def container_name(self) -> builtins.str:
1289
+ '''The container definition identifier.
1290
+
1291
+ Container names are unique within a container group definition.
1292
+
1293
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-containername
1294
+ '''
1295
+ result = self._values.get("container_name")
1296
+ assert result is not None, "Required property 'container_name' is missing"
1297
+ return typing.cast(builtins.str, result)
1298
+
1299
+ @builtins.property
1300
+ def image_uri(self) -> builtins.str:
1301
+ '''The URI to the image that $short;
1302
+
1303
+ copied and deployed to a container fleet. For a more specific identifier, see ``ResolvedImageDigest`` .
1304
+
1305
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-imageuri
1306
+ '''
1307
+ result = self._values.get("image_uri")
1308
+ assert result is not None, "Required property 'image_uri' is missing"
1309
+ return typing.cast(builtins.str, result)
1310
+
1311
+ @builtins.property
1312
+ def command(self) -> typing.Optional[typing.List[builtins.str]]:
1313
+ '''A command that's passed to the container on startup.
1314
+
1315
+ Each argument for the command is an additional string in the array. See the `ContainerDefinition::command <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-command>`_ parameter in the *Amazon Elastic Container Service API reference.*
1316
+
1317
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-command
1318
+ '''
1319
+ result = self._values.get("command")
1320
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1321
+
1322
+ @builtins.property
1323
+ def cpu(self) -> typing.Optional[jsii.Number]:
1324
+ '''The number of CPU units that are reserved for the container.
1325
+
1326
+ Note: 1 vCPU unit equals 1024 CPU units. If no resources are reserved, the container shares the total CPU limit for the container group.
1327
+
1328
+ *Related data type:* ``ContainerGroupDefinition$TotalCpuLimit``
1329
+
1330
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-cpu
1331
+ '''
1332
+ result = self._values.get("cpu")
1333
+ return typing.cast(typing.Optional[jsii.Number], result)
1334
+
1335
+ @builtins.property
1336
+ def depends_on(
1337
+ self,
1338
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerDependencyProperty"]]]]:
1339
+ '''Indicates that the container relies on the status of other containers in the same container group during its startup and shutdown sequences.
1340
+
1341
+ A container might have dependencies on multiple containers.
1342
+
1343
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-dependson
1344
+ '''
1345
+ result = self._values.get("depends_on")
1346
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerDependencyProperty"]]]], result)
1347
+
1348
+ @builtins.property
1349
+ def entry_point(self) -> typing.Optional[typing.List[builtins.str]]:
1350
+ '''The entry point that's passed to the container on startup.
1351
+
1352
+ If there are multiple arguments, each argument is an additional string in the array. See the `ContainerDefinition::entryPoint <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-entryPoint>`_ parameter in the *Amazon Elastic Container Service API Reference* .
1353
+
1354
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-entrypoint
1355
+ '''
1356
+ result = self._values.get("entry_point")
1357
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1358
+
1359
+ @builtins.property
1360
+ def environment(
1361
+ self,
1362
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerEnvironmentProperty"]]]]:
1363
+ '''A set of environment variables that's passed to the container on startup.
1364
+
1365
+ See the `ContainerDefinition::environment <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-environment>`_ parameter in the *Amazon Elastic Container Service API Reference* .
1366
+
1367
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-environment
1368
+ '''
1369
+ result = self._values.get("environment")
1370
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerEnvironmentProperty"]]]], result)
1371
+
1372
+ @builtins.property
1373
+ def essential(
1374
+ self,
1375
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
1376
+ '''Indicates whether the container is vital to the container group.
1377
+
1378
+ If an essential container fails, the entire container group is restarted.
1379
+
1380
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-essential
1381
+ '''
1382
+ result = self._values.get("essential")
1383
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
1384
+
1385
+ @builtins.property
1386
+ def health_check(
1387
+ self,
1388
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerHealthCheckProperty"]]:
1389
+ '''A configuration for a non-terminal health check.
1390
+
1391
+ A container, which automatically restarts if it stops functioning, also restarts if it fails this health check. If an essential container in the daemon group fails a health check, the entire container group is restarted. The essential container in the replica group doesn't use this health check mechanism, because the Amazon GameLift Agent automatically handles the task.
1392
+
1393
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-healthcheck
1394
+ '''
1395
+ result = self._values.get("health_check")
1396
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerHealthCheckProperty"]], result)
1397
+
1398
+ @builtins.property
1399
+ def memory_limits(
1400
+ self,
1401
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.MemoryLimitsProperty"]]:
1402
+ '''The amount of memory that Amazon GameLift makes available to the container.
1403
+
1404
+ If memory limits aren't set for an individual container, the container shares the container group's total memory allocation.
1405
+
1406
+ *Related data type:* ``ContainerGroupDefinition$TotalMemoryLimit``
1407
+
1408
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-memorylimits
1409
+ '''
1410
+ result = self._values.get("memory_limits")
1411
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.MemoryLimitsProperty"]], result)
1412
+
1413
+ @builtins.property
1414
+ def port_configuration(
1415
+ self,
1416
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.PortConfigurationProperty"]]:
1417
+ '''Defines the ports that are available to assign to processes in the container.
1418
+
1419
+ For example, a game server process requires a container port to allow game clients to connect to it. Container ports aren't directly accessed by inbound traffic. Amazon GameLift maps these container ports to externally accessible connection ports, which are assigned as needed from the container fleet's ``ConnectionPortRange`` .
1420
+
1421
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-portconfiguration
1422
+ '''
1423
+ result = self._values.get("port_configuration")
1424
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.PortConfigurationProperty"]], result)
1425
+
1426
+ @builtins.property
1427
+ def resolved_image_digest(self) -> typing.Optional[builtins.str]:
1428
+ '''A unique and immutable identifier for the container image that is deployed to a container fleet.
1429
+
1430
+ The digest is a SHA 256 hash of the container image manifest.
1431
+
1432
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-resolvedimagedigest
1433
+ '''
1434
+ result = self._values.get("resolved_image_digest")
1435
+ return typing.cast(typing.Optional[builtins.str], result)
1436
+
1437
+ @builtins.property
1438
+ def working_directory(self) -> typing.Optional[builtins.str]:
1439
+ '''The directory in the container where commands are run.
1440
+
1441
+ See the `ContainerDefinition::workingDirectory <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html#ECS-Type-ContainerDefinition-workingDirectory>`_ parameter in the *Amazon Elastic Container Service API Reference* .
1442
+
1443
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinition-workingdirectory
1444
+ '''
1445
+ result = self._values.get("working_directory")
1446
+ return typing.cast(typing.Optional[builtins.str], result)
1447
+
1448
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1449
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1450
+
1451
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1452
+ return not (rhs == self)
1453
+
1454
+ def __repr__(self) -> str:
1455
+ return "ContainerDefinitionProperty(%s)" % ", ".join(
1456
+ k + "=" + repr(v) for k, v in self._values.items()
1457
+ )
1458
+
1459
+ @jsii.data_type(
1460
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.ContainerDependencyProperty",
1461
+ jsii_struct_bases=[],
1462
+ name_mapping={"condition": "condition", "container_name": "containerName"},
1463
+ )
1464
+ class ContainerDependencyProperty:
1465
+ def __init__(
1466
+ self,
1467
+ *,
1468
+ condition: builtins.str,
1469
+ container_name: builtins.str,
1470
+ ) -> None:
1471
+ '''*This data type is used with the Amazon GameLift containers feature, which is currently in public preview.*.
1472
+
1473
+ A container's dependency on another container in the same container group. The dependency impacts how the dependent container is able to start or shut down based the status of the other container.
1474
+
1475
+ For example, ContainerA is configured with the following dependency: a ``START`` dependency on ContainerB. This means that ContainerA can't start until ContainerB has started. It also means that ContainerA must shut down before ContainerB.
1476
+
1477
+ *Part of:* ``ContainerDefinition``
1478
+
1479
+ :param condition: The condition that the dependency container must reach before the dependent container can start. Valid conditions include:. - START - The dependency container must have started. - COMPLETE - The dependency container has run to completion (exits). Use this condition with nonessential containers, such as those that run a script and then exit. The dependency container can't be an essential container. - SUCCESS - The dependency container has run to completion and exited with a zero status. The dependency container can't be an essential container. - HEALTHY - The dependency container has passed its Docker health check. Use this condition with dependency containers that have health checks configured. This condition is confirmed at container group startup only.
1480
+ :param container_name: A descriptive label for the container definition that this container depends on.
1481
+
1482
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdependency.html
1483
+ :exampleMetadata: fixture=_generated
1484
+
1485
+ Example::
1486
+
1487
+ # The code below shows an example of how to instantiate this type.
1488
+ # The values are placeholders you should change.
1489
+ from aws_cdk import aws_gamelift as gamelift
1490
+
1491
+ container_dependency_property = gamelift.CfnContainerGroupDefinition.ContainerDependencyProperty(
1492
+ condition="condition",
1493
+ container_name="containerName"
1494
+ )
1495
+ '''
1496
+ if __debug__:
1497
+ type_hints = typing.get_type_hints(_typecheckingstub__e8424bed9ce9567d13ec372652e5d607735583e13219bd42143f538aee3feb1f)
1498
+ check_type(argname="argument condition", value=condition, expected_type=type_hints["condition"])
1499
+ check_type(argname="argument container_name", value=container_name, expected_type=type_hints["container_name"])
1500
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1501
+ "condition": condition,
1502
+ "container_name": container_name,
1503
+ }
1504
+
1505
+ @builtins.property
1506
+ def condition(self) -> builtins.str:
1507
+ '''The condition that the dependency container must reach before the dependent container can start. Valid conditions include:.
1508
+
1509
+ - START - The dependency container must have started.
1510
+ - COMPLETE - The dependency container has run to completion (exits). Use this condition with nonessential containers, such as those that run a script and then exit. The dependency container can't be an essential container.
1511
+ - SUCCESS - The dependency container has run to completion and exited with a zero status. The dependency container can't be an essential container.
1512
+ - HEALTHY - The dependency container has passed its Docker health check. Use this condition with dependency containers that have health checks configured. This condition is confirmed at container group startup only.
1513
+
1514
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdependency.html#cfn-gamelift-containergroupdefinition-containerdependency-condition
1515
+ '''
1516
+ result = self._values.get("condition")
1517
+ assert result is not None, "Required property 'condition' is missing"
1518
+ return typing.cast(builtins.str, result)
1519
+
1520
+ @builtins.property
1521
+ def container_name(self) -> builtins.str:
1522
+ '''A descriptive label for the container definition that this container depends on.
1523
+
1524
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerdependency.html#cfn-gamelift-containergroupdefinition-containerdependency-containername
1525
+ '''
1526
+ result = self._values.get("container_name")
1527
+ assert result is not None, "Required property 'container_name' is missing"
1528
+ return typing.cast(builtins.str, result)
1529
+
1530
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1531
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1532
+
1533
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1534
+ return not (rhs == self)
1535
+
1536
+ def __repr__(self) -> str:
1537
+ return "ContainerDependencyProperty(%s)" % ", ".join(
1538
+ k + "=" + repr(v) for k, v in self._values.items()
1539
+ )
1540
+
1541
+ @jsii.data_type(
1542
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.ContainerEnvironmentProperty",
1543
+ jsii_struct_bases=[],
1544
+ name_mapping={"name": "name", "value": "value"},
1545
+ )
1546
+ class ContainerEnvironmentProperty:
1547
+ def __init__(self, *, name: builtins.str, value: builtins.str) -> None:
1548
+ '''*This data type is used with the Amazon GameLift containers feature, which is currently in public preview.*.
1549
+
1550
+ An environment variable to set inside a container, in the form of a key-value pair.
1551
+
1552
+ *Related data type:* ``ContainerDefinition$Environment``
1553
+
1554
+ :param name: The environment variable name.
1555
+ :param value: The environment variable value.
1556
+
1557
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerenvironment.html
1558
+ :exampleMetadata: fixture=_generated
1559
+
1560
+ Example::
1561
+
1562
+ # The code below shows an example of how to instantiate this type.
1563
+ # The values are placeholders you should change.
1564
+ from aws_cdk import aws_gamelift as gamelift
1565
+
1566
+ container_environment_property = gamelift.CfnContainerGroupDefinition.ContainerEnvironmentProperty(
1567
+ name="name",
1568
+ value="value"
1569
+ )
1570
+ '''
1571
+ if __debug__:
1572
+ type_hints = typing.get_type_hints(_typecheckingstub__c8a971f77ef4383909669846d3e4ee4a8463f7353ec0c1aa4da152ea7ec43bb9)
1573
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
1574
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1575
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1576
+ "name": name,
1577
+ "value": value,
1578
+ }
1579
+
1580
+ @builtins.property
1581
+ def name(self) -> builtins.str:
1582
+ '''The environment variable name.
1583
+
1584
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerenvironment.html#cfn-gamelift-containergroupdefinition-containerenvironment-name
1585
+ '''
1586
+ result = self._values.get("name")
1587
+ assert result is not None, "Required property 'name' is missing"
1588
+ return typing.cast(builtins.str, result)
1589
+
1590
+ @builtins.property
1591
+ def value(self) -> builtins.str:
1592
+ '''The environment variable value.
1593
+
1594
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerenvironment.html#cfn-gamelift-containergroupdefinition-containerenvironment-value
1595
+ '''
1596
+ result = self._values.get("value")
1597
+ assert result is not None, "Required property 'value' is missing"
1598
+ return typing.cast(builtins.str, result)
1599
+
1600
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1601
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1602
+
1603
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1604
+ return not (rhs == self)
1605
+
1606
+ def __repr__(self) -> str:
1607
+ return "ContainerEnvironmentProperty(%s)" % ", ".join(
1608
+ k + "=" + repr(v) for k, v in self._values.items()
1609
+ )
1610
+
1611
+ @jsii.data_type(
1612
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.ContainerHealthCheckProperty",
1613
+ jsii_struct_bases=[],
1614
+ name_mapping={
1615
+ "command": "command",
1616
+ "interval": "interval",
1617
+ "retries": "retries",
1618
+ "start_period": "startPeriod",
1619
+ "timeout": "timeout",
1620
+ },
1621
+ )
1622
+ class ContainerHealthCheckProperty:
1623
+ def __init__(
1624
+ self,
1625
+ *,
1626
+ command: typing.Sequence[builtins.str],
1627
+ interval: typing.Optional[jsii.Number] = None,
1628
+ retries: typing.Optional[jsii.Number] = None,
1629
+ start_period: typing.Optional[jsii.Number] = None,
1630
+ timeout: typing.Optional[jsii.Number] = None,
1631
+ ) -> None:
1632
+ '''Instructions on when and how to check the health of a container in a container fleet.
1633
+
1634
+ When health check properties are set in a container definition, they override any Docker health checks in the container image. For more information on container health checks, see `HealthCheck command <https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html#ECS-Type-HealthCheck-command>`_ in the *Amazon Elastic Container Service API* .
1635
+
1636
+ The following example instructions tell the container to wait 100 seconds after launch before counting failed health checks, then initiate the health check command every 60 seconds. After issuing the health check command, wait 10 seconds for it to succeed. If it fails, retry the command 3 times before considering the container to be unhealthy.
1637
+
1638
+ ``{"Command": [ "CMD-SHELL", "ps cax | grep "processmanager" || exit 1" ], "Interval": 300, "Timeout": 30, "Retries": 5, "StartPeriod": 100 }``
1639
+
1640
+ *Part of:* ``ContainerDefinition$HealthCheck``
1641
+
1642
+ :param command: A string array that specifies the command that the container runs to determine if it's healthy.
1643
+ :param interval: The time period (in seconds) between each health check.
1644
+ :param retries: The number of times to retry a failed health check before the container is considered unhealthy. The first run of the command does not count as a retry.
1645
+ :param start_period: The optional grace period (in seconds) to give a container time to bootstrap before the first failed health check counts toward the number of retries.
1646
+ :param timeout: The time period (in seconds) to wait for a health check to succeed before a failed health check is counted.
1647
+
1648
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html
1649
+ :exampleMetadata: fixture=_generated
1650
+
1651
+ Example::
1652
+
1653
+ # The code below shows an example of how to instantiate this type.
1654
+ # The values are placeholders you should change.
1655
+ from aws_cdk import aws_gamelift as gamelift
1656
+
1657
+ container_health_check_property = gamelift.CfnContainerGroupDefinition.ContainerHealthCheckProperty(
1658
+ command=["command"],
1659
+
1660
+ # the properties below are optional
1661
+ interval=123,
1662
+ retries=123,
1663
+ start_period=123,
1664
+ timeout=123
1665
+ )
1666
+ '''
1667
+ if __debug__:
1668
+ type_hints = typing.get_type_hints(_typecheckingstub__95b1e7083ac6b3d39e0bc5926b3c9ee368385be498c61499a81f860b155d0a1d)
1669
+ check_type(argname="argument command", value=command, expected_type=type_hints["command"])
1670
+ check_type(argname="argument interval", value=interval, expected_type=type_hints["interval"])
1671
+ check_type(argname="argument retries", value=retries, expected_type=type_hints["retries"])
1672
+ check_type(argname="argument start_period", value=start_period, expected_type=type_hints["start_period"])
1673
+ check_type(argname="argument timeout", value=timeout, expected_type=type_hints["timeout"])
1674
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1675
+ "command": command,
1676
+ }
1677
+ if interval is not None:
1678
+ self._values["interval"] = interval
1679
+ if retries is not None:
1680
+ self._values["retries"] = retries
1681
+ if start_period is not None:
1682
+ self._values["start_period"] = start_period
1683
+ if timeout is not None:
1684
+ self._values["timeout"] = timeout
1685
+
1686
+ @builtins.property
1687
+ def command(self) -> typing.List[builtins.str]:
1688
+ '''A string array that specifies the command that the container runs to determine if it's healthy.
1689
+
1690
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html#cfn-gamelift-containergroupdefinition-containerhealthcheck-command
1691
+ '''
1692
+ result = self._values.get("command")
1693
+ assert result is not None, "Required property 'command' is missing"
1694
+ return typing.cast(typing.List[builtins.str], result)
1695
+
1696
+ @builtins.property
1697
+ def interval(self) -> typing.Optional[jsii.Number]:
1698
+ '''The time period (in seconds) between each health check.
1699
+
1700
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html#cfn-gamelift-containergroupdefinition-containerhealthcheck-interval
1701
+ '''
1702
+ result = self._values.get("interval")
1703
+ return typing.cast(typing.Optional[jsii.Number], result)
1704
+
1705
+ @builtins.property
1706
+ def retries(self) -> typing.Optional[jsii.Number]:
1707
+ '''The number of times to retry a failed health check before the container is considered unhealthy.
1708
+
1709
+ The first run of the command does not count as a retry.
1710
+
1711
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html#cfn-gamelift-containergroupdefinition-containerhealthcheck-retries
1712
+ '''
1713
+ result = self._values.get("retries")
1714
+ return typing.cast(typing.Optional[jsii.Number], result)
1715
+
1716
+ @builtins.property
1717
+ def start_period(self) -> typing.Optional[jsii.Number]:
1718
+ '''The optional grace period (in seconds) to give a container time to bootstrap before the first failed health check counts toward the number of retries.
1719
+
1720
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html#cfn-gamelift-containergroupdefinition-containerhealthcheck-startperiod
1721
+ '''
1722
+ result = self._values.get("start_period")
1723
+ return typing.cast(typing.Optional[jsii.Number], result)
1724
+
1725
+ @builtins.property
1726
+ def timeout(self) -> typing.Optional[jsii.Number]:
1727
+ '''The time period (in seconds) to wait for a health check to succeed before a failed health check is counted.
1728
+
1729
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerhealthcheck.html#cfn-gamelift-containergroupdefinition-containerhealthcheck-timeout
1730
+ '''
1731
+ result = self._values.get("timeout")
1732
+ return typing.cast(typing.Optional[jsii.Number], result)
1733
+
1734
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1735
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1736
+
1737
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1738
+ return not (rhs == self)
1739
+
1740
+ def __repr__(self) -> str:
1741
+ return "ContainerHealthCheckProperty(%s)" % ", ".join(
1742
+ k + "=" + repr(v) for k, v in self._values.items()
1743
+ )
1744
+
1745
+ @jsii.data_type(
1746
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.ContainerPortRangeProperty",
1747
+ jsii_struct_bases=[],
1748
+ name_mapping={
1749
+ "from_port": "fromPort",
1750
+ "protocol": "protocol",
1751
+ "to_port": "toPort",
1752
+ },
1753
+ )
1754
+ class ContainerPortRangeProperty:
1755
+ def __init__(
1756
+ self,
1757
+ *,
1758
+ from_port: jsii.Number,
1759
+ protocol: builtins.str,
1760
+ to_port: jsii.Number,
1761
+ ) -> None:
1762
+ '''*This data type is used with the Amazon GameLift containers feature, which is currently in public preview.*.
1763
+
1764
+ A set of one or more port numbers that can be opened on the container.
1765
+
1766
+ *Part of:* ``ContainerPortConfiguration``
1767
+
1768
+ :param from_port: A starting value for the range of allowed port numbers.
1769
+ :param protocol: The network protocol that these ports support.
1770
+ :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`` .
1771
+
1772
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerportrange.html
1773
+ :exampleMetadata: fixture=_generated
1774
+
1775
+ Example::
1776
+
1777
+ # The code below shows an example of how to instantiate this type.
1778
+ # The values are placeholders you should change.
1779
+ from aws_cdk import aws_gamelift as gamelift
1780
+
1781
+ container_port_range_property = gamelift.CfnContainerGroupDefinition.ContainerPortRangeProperty(
1782
+ from_port=123,
1783
+ protocol="protocol",
1784
+ to_port=123
1785
+ )
1786
+ '''
1787
+ if __debug__:
1788
+ type_hints = typing.get_type_hints(_typecheckingstub__2d3e35cf8a42e8cbcdf12218e64e5ac29c19f0813f144c8d75e97d3e3313d396)
1789
+ check_type(argname="argument from_port", value=from_port, expected_type=type_hints["from_port"])
1790
+ check_type(argname="argument protocol", value=protocol, expected_type=type_hints["protocol"])
1791
+ check_type(argname="argument to_port", value=to_port, expected_type=type_hints["to_port"])
1792
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1793
+ "from_port": from_port,
1794
+ "protocol": protocol,
1795
+ "to_port": to_port,
1796
+ }
1797
+
1798
+ @builtins.property
1799
+ def from_port(self) -> jsii.Number:
1800
+ '''A starting value for the range of allowed port numbers.
1801
+
1802
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerportrange.html#cfn-gamelift-containergroupdefinition-containerportrange-fromport
1803
+ '''
1804
+ result = self._values.get("from_port")
1805
+ assert result is not None, "Required property 'from_port' is missing"
1806
+ return typing.cast(jsii.Number, result)
1807
+
1808
+ @builtins.property
1809
+ def protocol(self) -> builtins.str:
1810
+ '''The network protocol that these ports support.
1811
+
1812
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerportrange.html#cfn-gamelift-containergroupdefinition-containerportrange-protocol
1813
+ '''
1814
+ result = self._values.get("protocol")
1815
+ assert result is not None, "Required property 'protocol' is missing"
1816
+ return typing.cast(builtins.str, result)
1817
+
1818
+ @builtins.property
1819
+ def to_port(self) -> jsii.Number:
1820
+ '''An ending value for the range of allowed port numbers.
1821
+
1822
+ Port numbers are end-inclusive. This value must be equal to or greater than ``FromPort`` .
1823
+
1824
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-containerportrange.html#cfn-gamelift-containergroupdefinition-containerportrange-toport
1825
+ '''
1826
+ result = self._values.get("to_port")
1827
+ assert result is not None, "Required property 'to_port' is missing"
1828
+ return typing.cast(jsii.Number, result)
1829
+
1830
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1831
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1832
+
1833
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1834
+ return not (rhs == self)
1835
+
1836
+ def __repr__(self) -> str:
1837
+ return "ContainerPortRangeProperty(%s)" % ", ".join(
1838
+ k + "=" + repr(v) for k, v in self._values.items()
1839
+ )
1840
+
1841
+ @jsii.data_type(
1842
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.MemoryLimitsProperty",
1843
+ jsii_struct_bases=[],
1844
+ name_mapping={"hard_limit": "hardLimit", "soft_limit": "softLimit"},
1845
+ )
1846
+ class MemoryLimitsProperty:
1847
+ def __init__(
1848
+ self,
1849
+ *,
1850
+ hard_limit: typing.Optional[jsii.Number] = None,
1851
+ soft_limit: typing.Optional[jsii.Number] = None,
1852
+ ) -> None:
1853
+ '''Specifies how much memory is available to the container.
1854
+
1855
+ :param hard_limit: The hard limit of memory to reserve for the container.
1856
+ :param soft_limit: The amount of memory that is reserved for the container.
1857
+
1858
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-memorylimits.html
1859
+ :exampleMetadata: fixture=_generated
1860
+
1861
+ Example::
1862
+
1863
+ # The code below shows an example of how to instantiate this type.
1864
+ # The values are placeholders you should change.
1865
+ from aws_cdk import aws_gamelift as gamelift
1866
+
1867
+ memory_limits_property = gamelift.CfnContainerGroupDefinition.MemoryLimitsProperty(
1868
+ hard_limit=123,
1869
+ soft_limit=123
1870
+ )
1871
+ '''
1872
+ if __debug__:
1873
+ type_hints = typing.get_type_hints(_typecheckingstub__9ac03f75ba7cf3ff7267cf9e9544e940c9974e78a4d364eed01d2ebb6bc2d3fa)
1874
+ check_type(argname="argument hard_limit", value=hard_limit, expected_type=type_hints["hard_limit"])
1875
+ check_type(argname="argument soft_limit", value=soft_limit, expected_type=type_hints["soft_limit"])
1876
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1877
+ if hard_limit is not None:
1878
+ self._values["hard_limit"] = hard_limit
1879
+ if soft_limit is not None:
1880
+ self._values["soft_limit"] = soft_limit
1881
+
1882
+ @builtins.property
1883
+ def hard_limit(self) -> typing.Optional[jsii.Number]:
1884
+ '''The hard limit of memory to reserve for the container.
1885
+
1886
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-memorylimits.html#cfn-gamelift-containergroupdefinition-memorylimits-hardlimit
1887
+ '''
1888
+ result = self._values.get("hard_limit")
1889
+ return typing.cast(typing.Optional[jsii.Number], result)
1890
+
1891
+ @builtins.property
1892
+ def soft_limit(self) -> typing.Optional[jsii.Number]:
1893
+ '''The amount of memory that is reserved for the container.
1894
+
1895
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-memorylimits.html#cfn-gamelift-containergroupdefinition-memorylimits-softlimit
1896
+ '''
1897
+ result = self._values.get("soft_limit")
1898
+ return typing.cast(typing.Optional[jsii.Number], result)
1899
+
1900
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1901
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1902
+
1903
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1904
+ return not (rhs == self)
1905
+
1906
+ def __repr__(self) -> str:
1907
+ return "MemoryLimitsProperty(%s)" % ", ".join(
1908
+ k + "=" + repr(v) for k, v in self._values.items()
1909
+ )
1910
+
1911
+ @jsii.data_type(
1912
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinition.PortConfigurationProperty",
1913
+ jsii_struct_bases=[],
1914
+ name_mapping={"container_port_ranges": "containerPortRanges"},
1915
+ )
1916
+ class PortConfigurationProperty:
1917
+ def __init__(
1918
+ self,
1919
+ *,
1920
+ container_port_ranges: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContainerGroupDefinition.ContainerPortRangeProperty", typing.Dict[builtins.str, typing.Any]]]]],
1921
+ ) -> None:
1922
+ '''Defines the ports on a container.
1923
+
1924
+ :param container_port_ranges: Specifies one or more ranges of ports on a container.
1925
+
1926
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-portconfiguration.html
1927
+ :exampleMetadata: fixture=_generated
1928
+
1929
+ Example::
1930
+
1931
+ # The code below shows an example of how to instantiate this type.
1932
+ # The values are placeholders you should change.
1933
+ from aws_cdk import aws_gamelift as gamelift
1934
+
1935
+ port_configuration_property = gamelift.CfnContainerGroupDefinition.PortConfigurationProperty(
1936
+ container_port_ranges=[gamelift.CfnContainerGroupDefinition.ContainerPortRangeProperty(
1937
+ from_port=123,
1938
+ protocol="protocol",
1939
+ to_port=123
1940
+ )]
1941
+ )
1942
+ '''
1943
+ if __debug__:
1944
+ type_hints = typing.get_type_hints(_typecheckingstub__49796d7f2a6fb9a60e370fb5b8e88da33d84ca298d8833d8e64e3d80586cedf7)
1945
+ check_type(argname="argument container_port_ranges", value=container_port_ranges, expected_type=type_hints["container_port_ranges"])
1946
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1947
+ "container_port_ranges": container_port_ranges,
1948
+ }
1949
+
1950
+ @builtins.property
1951
+ def container_port_ranges(
1952
+ self,
1953
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerPortRangeProperty"]]]:
1954
+ '''Specifies one or more ranges of ports on a container.
1955
+
1956
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-containergroupdefinition-portconfiguration.html#cfn-gamelift-containergroupdefinition-portconfiguration-containerportranges
1957
+ '''
1958
+ result = self._values.get("container_port_ranges")
1959
+ assert result is not None, "Required property 'container_port_ranges' is missing"
1960
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnContainerGroupDefinition.ContainerPortRangeProperty"]]], result)
1961
+
1962
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1963
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1964
+
1965
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1966
+ return not (rhs == self)
1967
+
1968
+ def __repr__(self) -> str:
1969
+ return "PortConfigurationProperty(%s)" % ", ".join(
1970
+ k + "=" + repr(v) for k, v in self._values.items()
1971
+ )
1972
+
1973
+
1974
+ @jsii.data_type(
1975
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnContainerGroupDefinitionProps",
1976
+ jsii_struct_bases=[],
1977
+ name_mapping={
1978
+ "container_definitions": "containerDefinitions",
1979
+ "name": "name",
1980
+ "operating_system": "operatingSystem",
1981
+ "total_cpu_limit": "totalCpuLimit",
1982
+ "total_memory_limit": "totalMemoryLimit",
1983
+ "scheduling_strategy": "schedulingStrategy",
1984
+ "tags": "tags",
1985
+ },
1986
+ )
1987
+ class CfnContainerGroupDefinitionProps:
1988
+ def __init__(
1989
+ self,
1990
+ *,
1991
+ container_definitions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.ContainerDefinitionProperty, typing.Dict[builtins.str, typing.Any]]]]],
1992
+ name: builtins.str,
1993
+ operating_system: builtins.str,
1994
+ total_cpu_limit: jsii.Number,
1995
+ total_memory_limit: jsii.Number,
1996
+ scheduling_strategy: typing.Optional[builtins.str] = None,
1997
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1998
+ ) -> None:
1999
+ '''Properties for defining a ``CfnContainerGroupDefinition``.
2000
+
2001
+ :param container_definitions: The set of container definitions that are included in the container group.
2002
+ :param name: A descriptive identifier for the container group definition. The name value is unique in an AWS Region.
2003
+ :param operating_system: The platform required for all containers in the container group definition.
2004
+ :param total_cpu_limit: The amount of CPU units on a fleet instance to allocate for the container group. All containers in the group share these resources. This property is an integer value in CPU units (1 vCPU is equal to 1024 CPU units). You can set additional limits for each ``ContainerDefinition`` in the group. If individual containers have limits, this value must be equal to or greater than the sum of all container-specific CPU limits in the group. For more details on memory allocation, see the `Container fleet design guide <https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-design-fleet>`_ .
2005
+ :param total_memory_limit: The amount of memory (in MiB) on a fleet instance to allocate for the container group. All containers in the group share these resources. You can set additional limits for each ``ContainerDefinition`` in the group. If individual containers have limits, this value must meet the following requirements: - Equal to or greater than the sum of all container-specific soft memory limits in the group. - Equal to or greater than any container-specific hard limits in the group. For more details on memory allocation, see the `Container fleet design guide <https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-design-fleet>`_ .
2006
+ :param scheduling_strategy: The method for deploying the container group across fleet instances. A replica container group might have multiple copies on each fleet instance. A daemon container group maintains only one copy per fleet instance.
2007
+ :param tags: An array of key-value pairs to apply to this resource.
2008
+
2009
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html
2010
+ :exampleMetadata: fixture=_generated
2011
+
2012
+ Example::
2013
+
2014
+ # The code below shows an example of how to instantiate this type.
2015
+ # The values are placeholders you should change.
2016
+ from aws_cdk import aws_gamelift as gamelift
2017
+
2018
+ cfn_container_group_definition_props = gamelift.CfnContainerGroupDefinitionProps(
2019
+ container_definitions=[gamelift.CfnContainerGroupDefinition.ContainerDefinitionProperty(
2020
+ container_name="containerName",
2021
+ image_uri="imageUri",
2022
+
2023
+ # the properties below are optional
2024
+ command=["command"],
2025
+ cpu=123,
2026
+ depends_on=[gamelift.CfnContainerGroupDefinition.ContainerDependencyProperty(
2027
+ condition="condition",
2028
+ container_name="containerName"
2029
+ )],
2030
+ entry_point=["entryPoint"],
2031
+ environment=[gamelift.CfnContainerGroupDefinition.ContainerEnvironmentProperty(
2032
+ name="name",
2033
+ value="value"
2034
+ )],
2035
+ essential=False,
2036
+ health_check=gamelift.CfnContainerGroupDefinition.ContainerHealthCheckProperty(
2037
+ command=["command"],
2038
+
2039
+ # the properties below are optional
2040
+ interval=123,
2041
+ retries=123,
2042
+ start_period=123,
2043
+ timeout=123
2044
+ ),
2045
+ memory_limits=gamelift.CfnContainerGroupDefinition.MemoryLimitsProperty(
2046
+ hard_limit=123,
2047
+ soft_limit=123
2048
+ ),
2049
+ port_configuration=gamelift.CfnContainerGroupDefinition.PortConfigurationProperty(
2050
+ container_port_ranges=[gamelift.CfnContainerGroupDefinition.ContainerPortRangeProperty(
2051
+ from_port=123,
2052
+ protocol="protocol",
2053
+ to_port=123
2054
+ )]
2055
+ ),
2056
+ resolved_image_digest="resolvedImageDigest",
2057
+ working_directory="workingDirectory"
2058
+ )],
2059
+ name="name",
2060
+ operating_system="operatingSystem",
2061
+ total_cpu_limit=123,
2062
+ total_memory_limit=123,
2063
+
2064
+ # the properties below are optional
2065
+ scheduling_strategy="schedulingStrategy",
2066
+ tags=[CfnTag(
2067
+ key="key",
2068
+ value="value"
2069
+ )]
2070
+ )
2071
+ '''
2072
+ if __debug__:
2073
+ type_hints = typing.get_type_hints(_typecheckingstub__6b760a12182b9da0a53204aa5510dae28c2cda4c4fba1ef77f0245093da04ea4)
2074
+ check_type(argname="argument container_definitions", value=container_definitions, expected_type=type_hints["container_definitions"])
2075
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
2076
+ check_type(argname="argument operating_system", value=operating_system, expected_type=type_hints["operating_system"])
2077
+ check_type(argname="argument total_cpu_limit", value=total_cpu_limit, expected_type=type_hints["total_cpu_limit"])
2078
+ check_type(argname="argument total_memory_limit", value=total_memory_limit, expected_type=type_hints["total_memory_limit"])
2079
+ check_type(argname="argument scheduling_strategy", value=scheduling_strategy, expected_type=type_hints["scheduling_strategy"])
2080
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
2081
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2082
+ "container_definitions": container_definitions,
2083
+ "name": name,
2084
+ "operating_system": operating_system,
2085
+ "total_cpu_limit": total_cpu_limit,
2086
+ "total_memory_limit": total_memory_limit,
2087
+ }
2088
+ if scheduling_strategy is not None:
2089
+ self._values["scheduling_strategy"] = scheduling_strategy
2090
+ if tags is not None:
2091
+ self._values["tags"] = tags
2092
+
2093
+ @builtins.property
2094
+ def container_definitions(
2095
+ self,
2096
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnContainerGroupDefinition.ContainerDefinitionProperty]]]:
2097
+ '''The set of container definitions that are included in the container group.
2098
+
2099
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-containerdefinitions
2100
+ '''
2101
+ result = self._values.get("container_definitions")
2102
+ assert result is not None, "Required property 'container_definitions' is missing"
2103
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnContainerGroupDefinition.ContainerDefinitionProperty]]], result)
2104
+
2105
+ @builtins.property
2106
+ def name(self) -> builtins.str:
2107
+ '''A descriptive identifier for the container group definition.
2108
+
2109
+ The name value is unique in an AWS Region.
2110
+
2111
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-name
2112
+ '''
2113
+ result = self._values.get("name")
2114
+ assert result is not None, "Required property 'name' is missing"
2115
+ return typing.cast(builtins.str, result)
2116
+
2117
+ @builtins.property
2118
+ def operating_system(self) -> builtins.str:
2119
+ '''The platform required for all containers in the container group definition.
2120
+
2121
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-operatingsystem
2122
+ '''
2123
+ result = self._values.get("operating_system")
2124
+ assert result is not None, "Required property 'operating_system' is missing"
2125
+ return typing.cast(builtins.str, result)
2126
+
2127
+ @builtins.property
2128
+ def total_cpu_limit(self) -> jsii.Number:
2129
+ '''The amount of CPU units on a fleet instance to allocate for the container group.
2130
+
2131
+ All containers in the group share these resources. This property is an integer value in CPU units (1 vCPU is equal to 1024 CPU units).
2132
+
2133
+ You can set additional limits for each ``ContainerDefinition`` in the group. If individual containers have limits, this value must be equal to or greater than the sum of all container-specific CPU limits in the group.
2134
+
2135
+ For more details on memory allocation, see the `Container fleet design guide <https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-design-fleet>`_ .
2136
+
2137
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-totalcpulimit
2138
+ '''
2139
+ result = self._values.get("total_cpu_limit")
2140
+ assert result is not None, "Required property 'total_cpu_limit' is missing"
2141
+ return typing.cast(jsii.Number, result)
2142
+
2143
+ @builtins.property
2144
+ def total_memory_limit(self) -> jsii.Number:
2145
+ '''The amount of memory (in MiB) on a fleet instance to allocate for the container group.
2146
+
2147
+ All containers in the group share these resources.
2148
+
2149
+ You can set additional limits for each ``ContainerDefinition`` in the group. If individual containers have limits, this value must meet the following requirements:
2150
+
2151
+ - Equal to or greater than the sum of all container-specific soft memory limits in the group.
2152
+ - Equal to or greater than any container-specific hard limits in the group.
2153
+
2154
+ For more details on memory allocation, see the `Container fleet design guide <https://docs.aws.amazon.com/gamelift/latest/developerguide/containers-design-fleet>`_ .
2155
+
2156
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-totalmemorylimit
2157
+ '''
2158
+ result = self._values.get("total_memory_limit")
2159
+ assert result is not None, "Required property 'total_memory_limit' is missing"
2160
+ return typing.cast(jsii.Number, result)
2161
+
2162
+ @builtins.property
2163
+ def scheduling_strategy(self) -> typing.Optional[builtins.str]:
2164
+ '''The method for deploying the container group across fleet instances.
2165
+
2166
+ A replica container group might have multiple copies on each fleet instance. A daemon container group maintains only one copy per fleet instance.
2167
+
2168
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-schedulingstrategy
2169
+ '''
2170
+ result = self._values.get("scheduling_strategy")
2171
+ return typing.cast(typing.Optional[builtins.str], result)
2172
+
2173
+ @builtins.property
2174
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
2175
+ '''An array of key-value pairs to apply to this resource.
2176
+
2177
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-containergroupdefinition.html#cfn-gamelift-containergroupdefinition-tags
2178
+ '''
2179
+ result = self._values.get("tags")
2180
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
2181
+
2182
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2183
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2184
+
2185
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2186
+ return not (rhs == self)
2187
+
2188
+ def __repr__(self) -> str:
2189
+ return "CfnContainerGroupDefinitionProps(%s)" % ", ".join(
2190
+ k + "=" + repr(v) for k, v in self._values.items()
2191
+ )
2192
+
2193
+
859
2194
  @jsii.implements(_IInspectable_c2943556)
860
2195
  class CfnFleet(
861
2196
  _CfnResource_9df397a6,
@@ -889,6 +2224,19 @@ class CfnFleet(
889
2224
  certificate_type="certificateType"
890
2225
  ),
891
2226
  compute_type="computeType",
2227
+ container_groups_configuration=gamelift.CfnFleet.ContainerGroupsConfigurationProperty(
2228
+ connection_port_range=gamelift.CfnFleet.ConnectionPortRangeProperty(
2229
+ from_port=123,
2230
+ to_port=123
2231
+ ),
2232
+ container_group_definition_names=["containerGroupDefinitionNames"],
2233
+
2234
+ # the properties below are optional
2235
+ container_groups_per_instance=gamelift.CfnFleet.ContainerGroupsPerInstanceProperty(
2236
+ desired_replica_container_groups_per_instance=123,
2237
+ max_replica_container_groups_per_instance=123
2238
+ )
2239
+ ),
892
2240
  description="description",
893
2241
  desired_ec2_instances=123,
894
2242
  ec2_inbound_permissions=[gamelift.CfnFleet.IpPermissionProperty(
@@ -968,6 +2316,7 @@ class CfnFleet(
968
2316
  build_id: typing.Optional[builtins.str] = None,
969
2317
  certificate_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFleet.CertificateConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
970
2318
  compute_type: typing.Optional[builtins.str] = None,
2319
+ container_groups_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFleet.ContainerGroupsConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
971
2320
  description: typing.Optional[builtins.str] = None,
972
2321
  desired_ec2_instances: typing.Optional[jsii.Number] = None,
973
2322
  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,
@@ -995,18 +2344,19 @@ class CfnFleet(
995
2344
  :param id: Construct identifier for this resource (unique in its scope).
996
2345
  :param name: A descriptive label that is associated with a fleet. Fleet names do not need to be unique.
997
2346
  :param anywhere_configuration: Amazon GameLift Anywhere configuration options.
998
- :param apply_capacity: Current resource capacity settings in a specified fleet or location. The location value might refer to a fleet's remote location or its home Region. *Related actions* `DescribeFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html>`_ | `DescribeFleetLocationCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html>`_ | `UpdateFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html>`_
2347
+ :param apply_capacity: Current resource capacity settings for managed EC2 fleets and container fleets. For multi-location fleets, location values might refer to a fleet's remote location or its home Region. *Returned by:* `DescribeFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html>`_ , `DescribeFleetLocationCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html>`_ , `UpdateFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html>`_
999
2348
  :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
2349
  :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
- :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`` .
2350
+ :param compute_type: The type of compute resource used to host your game servers. - ``EC2`` The game server build is deployed to Amazon EC2 instances for cloud hosting. This is the default setting. - ``CONTAINER`` – Container images with your game server build and supporting software are deployed to Amazon EC2 instances for cloud hosting. With this compute type, you must specify the ``ContainerGroupsConfiguration`` parameter. - ``ANYWHERE`` – Game servers or container images with your game server and supporting software are deployed to compute resources that are provided and managed by you. With this compute type, you can also set the ``AnywhereConfiguration`` parameter.
2351
+ :param container_groups_configuration: *This data type is used with the Amazon GameLift containers feature, which is currently in public preview.*. Configuration details for a set of container groups, for use when creating a fleet with compute type ``CONTAINER`` . *Used with:* ``CreateFleet``
1002
2352
  :param description: A description for the fleet.
1003
2353
  :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
- :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.
1005
- :param ec2_instance_type: The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet instances. Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity. See `Amazon Elastic Compute Cloud Instance Types <https://docs.aws.amazon.com/ec2/instance-types/>`_ for detailed descriptions of Amazon EC2 instance types.
2354
+ :param ec2_inbound_permissions: The IP address ranges and port settings that allow inbound traffic to access game server processes and other processes on this fleet. Set this parameter for EC2 and container fleets. You can leave this parameter empty when creating the fleet, but you must call ``UpdateFleetPortSettings`` to set it before players can connect to game sessions. As a best practice, we recommend opening ports for remote access only when you need them and closing them when you're finished. For Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges. To manage inbound access for a container fleet, set this parameter to the same port numbers that you set for the fleet's connection port range. During the life of the fleet, update this parameter to control which connection ports are open to inbound traffic.
2355
+ :param ec2_instance_type: The Amazon GameLift-supported Amazon EC2 instance type to use with EC2 and container fleets. Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity. See `Amazon Elastic Compute Cloud Instance Types <https://docs.aws.amazon.com/ec2/instance-types/>`_ for detailed descriptions of Amazon EC2 instance types.
1006
2356
  :param fleet_type: Indicates whether to use On-Demand or Spot instances for this fleet. By default, this property is set to ``ON_DEMAND`` . Learn more about when to use `On-Demand versus Spot Instances <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot>`_ . This fleet property can't be changed after the fleet is created.
1007
- :param instance_role_arn: A unique identifier for an IAM role with access permissions to other AWS services. Any application that runs on an instance in the fleet--including install scripts, server processes, and other processes--can use these permissions to interact with AWS resources that you own or have access to. For more information about using the role with your game server builds, see `Communicate with other AWS resources from your fleets <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html>`_ .
1008
- :param instance_role_credentials_provider: Indicates that fleet instances maintain a shared credentials file for the IAM role defined in ``InstanceRoleArn`` . Shared credentials allow applications that are deployed with the game server executable to communicate with other AWS resources. This property is used only when the game server is integrated with the server SDK version 5.x. For more information about using shared credentials, see `Communicate with other AWS resources from your fleets <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html>`_ .
1009
- :param locations: A set of remote locations to deploy additional instances to and manage as part of the fleet. This parameter can only be used when creating fleets in AWS Regions that support multiple locations. You can add any Amazon GameLift-supported AWS Region as a remote location, in the form of an AWS Region code such as ``us-west-2`` . To create a fleet with instances in the home Region only, don't use this parameter. To use this parameter, Amazon GameLift requires you to use your home location in the request.
2357
+ :param instance_role_arn: A unique identifier for an IAM role with access permissions to other AWS services. Any application that runs on an instance in the fleet--including install scripts, server processes, and other processes--can use these permissions to interact with AWS resources that you own or have access to. For more information about using the role with your game server builds, see `Communicate with other AWS resources from your fleets <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html>`_ . This attribute is used with fleets where ``ComputeType`` is "EC2" or "Container".
2358
+ :param instance_role_credentials_provider: Indicates that fleet instances maintain a shared credentials file for the IAM role defined in ``InstanceRoleArn`` . Shared credentials allow applications that are deployed with the game server executable to communicate with other AWS resources. This property is used only when the game server is integrated with the server SDK version 5.x. For more information about using shared credentials, see `Communicate with other AWS resources from your fleets <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html>`_ . This attribute is used with fleets where ``ComputeType`` is "EC2" or "Container".
2359
+ :param locations: A set of remote locations to deploy additional instances to and manage as part of the fleet. This parameter can only be used when creating fleets in AWS Regions that support multiple locations. You can add any Amazon GameLift-supported AWS Region as a remote location, in the form of an AWS Region code, such as ``us-west-2`` or Local Zone code. To create a fleet with instances in the home Region only, don't set this parameter. When using this parameter, Amazon GameLift requires you to include your home location in the request.
1010
2360
  :param log_paths: (deprecated) This parameter is no longer used. When hosting a custom game build, specify where Amazon GameLift should store log files using the Amazon GameLift server API call ProcessReady()
1011
2361
  :param max_size: The maximum number of instances that are allowed in the specified fleet location. If this parameter is not set, the default is 1.
1012
2362
  :param metric_groups: The name of an AWS CloudWatch metric group to add this fleet to. A metric group is used to aggregate the metrics for multiple fleets. You can specify an existing metric group name or set a new name to create a new metric group. A fleet can be included in only one metric group at a time.
@@ -1032,6 +2382,7 @@ class CfnFleet(
1032
2382
  build_id=build_id,
1033
2383
  certificate_configuration=certificate_configuration,
1034
2384
  compute_type=compute_type,
2385
+ container_groups_configuration=container_groups_configuration,
1035
2386
  description=description,
1036
2387
  desired_ec2_instances=desired_ec2_instances,
1037
2388
  ec2_inbound_permissions=ec2_inbound_permissions,
@@ -1087,6 +2438,17 @@ class CfnFleet(
1087
2438
  '''The CloudFormation resource type name for this resource class.'''
1088
2439
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
1089
2440
 
2441
+ @builtins.property
2442
+ @jsii.member(jsii_name="attrContainerGroupsConfigurationContainerGroupsPerInstanceMaxReplicaContainerGroupsPerInstance")
2443
+ def attr_container_groups_configuration_container_groups_per_instance_max_replica_container_groups_per_instance(
2444
+ self,
2445
+ ) -> jsii.Number:
2446
+ '''The maximum possible number of replica container groups that each fleet instance can have.
2447
+
2448
+ :cloudformationAttribute: ContainerGroupsConfiguration.ContainerGroupsPerInstance.MaxReplicaContainerGroupsPerInstance
2449
+ '''
2450
+ return typing.cast(jsii.Number, jsii.get(self, "attrContainerGroupsConfigurationContainerGroupsPerInstanceMaxReplicaContainerGroupsPerInstance"))
2451
+
1090
2452
  @builtins.property
1091
2453
  @jsii.member(jsii_name="attrFleetId")
1092
2454
  def attr_fleet_id(self) -> builtins.str:
@@ -1135,7 +2497,7 @@ class CfnFleet(
1135
2497
  @builtins.property
1136
2498
  @jsii.member(jsii_name="applyCapacity")
1137
2499
  def apply_capacity(self) -> typing.Optional[builtins.str]:
1138
- '''Current resource capacity settings in a specified fleet or location.'''
2500
+ '''Current resource capacity settings for managed EC2 fleets and container fleets.'''
1139
2501
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "applyCapacity"))
1140
2502
 
1141
2503
  @apply_capacity.setter
@@ -1189,6 +2551,24 @@ class CfnFleet(
1189
2551
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1190
2552
  jsii.set(self, "computeType", value)
1191
2553
 
2554
+ @builtins.property
2555
+ @jsii.member(jsii_name="containerGroupsConfiguration")
2556
+ def container_groups_configuration(
2557
+ self,
2558
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFleet.ContainerGroupsConfigurationProperty"]]:
2559
+ '''*This data type is used with the Amazon GameLift containers feature, which is currently in public preview.*.'''
2560
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFleet.ContainerGroupsConfigurationProperty"]], jsii.get(self, "containerGroupsConfiguration"))
2561
+
2562
+ @container_groups_configuration.setter
2563
+ def container_groups_configuration(
2564
+ self,
2565
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFleet.ContainerGroupsConfigurationProperty"]],
2566
+ ) -> None:
2567
+ if __debug__:
2568
+ type_hints = typing.get_type_hints(_typecheckingstub__12ab5ebb46adc7fe2bb2e1911285f98090170c29093f6e28b584096baafa36aa)
2569
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2570
+ jsii.set(self, "containerGroupsConfiguration", value)
2571
+
1192
2572
  @builtins.property
1193
2573
  @jsii.member(jsii_name="description")
1194
2574
  def description(self) -> typing.Optional[builtins.str]:
@@ -1220,7 +2600,7 @@ class CfnFleet(
1220
2600
  def ec2_inbound_permissions(
1221
2601
  self,
1222
2602
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnFleet.IpPermissionProperty"]]]]:
1223
- '''The allowed IP address ranges and port settings that allow inbound traffic to access game sessions on this fleet.'''
2603
+ '''The IP address ranges and port settings that allow inbound traffic to access game server processes and other processes on this fleet.'''
1224
2604
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnFleet.IpPermissionProperty"]]]], jsii.get(self, "ec2InboundPermissions"))
1225
2605
 
1226
2606
  @ec2_inbound_permissions.setter
@@ -1236,7 +2616,7 @@ class CfnFleet(
1236
2616
  @builtins.property
1237
2617
  @jsii.member(jsii_name="ec2InstanceType")
1238
2618
  def ec2_instance_type(self) -> typing.Optional[builtins.str]:
1239
- '''The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet instances.'''
2619
+ '''The Amazon GameLift-supported Amazon EC2 instance type to use with EC2 and container fleets.'''
1240
2620
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "ec2InstanceType"))
1241
2621
 
1242
2622
  @ec2_instance_type.setter
@@ -1490,36 +2870,237 @@ class CfnFleet(
1490
2870
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1491
2871
  jsii.set(self, "serverLaunchParameters", value)
1492
2872
 
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.
2873
+ @builtins.property
2874
+ @jsii.member(jsii_name="serverLaunchPath")
2875
+ def server_launch_path(self) -> typing.Optional[builtins.str]:
2876
+ '''(deprecated) This parameter is no longer used.
2877
+
2878
+ :deprecated: this property has been deprecated
2879
+
2880
+ :stability: deprecated
2881
+ '''
2882
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "serverLaunchPath"))
2883
+
2884
+ @server_launch_path.setter
2885
+ def server_launch_path(self, value: typing.Optional[builtins.str]) -> None:
2886
+ if __debug__:
2887
+ type_hints = typing.get_type_hints(_typecheckingstub__63d5bf96be81c4a6b00ef1deb4d8846acf0053313fb89efd0ded1f0931c66844)
2888
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2889
+ jsii.set(self, "serverLaunchPath", value)
2890
+
2891
+ @jsii.data_type(
2892
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.AnywhereConfigurationProperty",
2893
+ jsii_struct_bases=[],
2894
+ name_mapping={"cost": "cost"},
2895
+ )
2896
+ class AnywhereConfigurationProperty:
2897
+ def __init__(self, *, cost: builtins.str) -> None:
2898
+ '''Amazon GameLift configuration options for your Anywhere fleets.
2899
+
2900
+ :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* .
2901
+
2902
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-anywhereconfiguration.html
2903
+ :exampleMetadata: fixture=_generated
2904
+
2905
+ Example::
2906
+
2907
+ # The code below shows an example of how to instantiate this type.
2908
+ # The values are placeholders you should change.
2909
+ from aws_cdk import aws_gamelift as gamelift
2910
+
2911
+ anywhere_configuration_property = gamelift.CfnFleet.AnywhereConfigurationProperty(
2912
+ cost="cost"
2913
+ )
2914
+ '''
2915
+ if __debug__:
2916
+ type_hints = typing.get_type_hints(_typecheckingstub__e3897ffc82938e5bf4e6384b3a83b22f50c7189a71eb0fc30ea8f17642db5ef9)
2917
+ check_type(argname="argument cost", value=cost, expected_type=type_hints["cost"])
2918
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2919
+ "cost": cost,
2920
+ }
2921
+
2922
+ @builtins.property
2923
+ def cost(self) -> builtins.str:
2924
+ '''The cost to run your fleet per hour.
2925
+
2926
+ 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* .
2927
+
2928
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-anywhereconfiguration.html#cfn-gamelift-fleet-anywhereconfiguration-cost
2929
+ '''
2930
+ result = self._values.get("cost")
2931
+ assert result is not None, "Required property 'cost' is missing"
2932
+ return typing.cast(builtins.str, result)
2933
+
2934
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2935
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2936
+
2937
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2938
+ return not (rhs == self)
2939
+
2940
+ def __repr__(self) -> str:
2941
+ return "AnywhereConfigurationProperty(%s)" % ", ".join(
2942
+ k + "=" + repr(v) for k, v in self._values.items()
2943
+ )
2944
+
2945
+ @jsii.data_type(
2946
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.CertificateConfigurationProperty",
2947
+ jsii_struct_bases=[],
2948
+ name_mapping={"certificate_type": "certificateType"},
2949
+ )
2950
+ class CertificateConfigurationProperty:
2951
+ def __init__(self, *, certificate_type: builtins.str) -> None:
2952
+ '''Determines whether a TLS/SSL certificate is generated for a fleet.
2953
+
2954
+ 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`` .
2955
+
2956
+ :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.
2957
+
2958
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html
2959
+ :exampleMetadata: fixture=_generated
2960
+
2961
+ Example::
2962
+
2963
+ # The code below shows an example of how to instantiate this type.
2964
+ # The values are placeholders you should change.
2965
+ from aws_cdk import aws_gamelift as gamelift
2966
+
2967
+ certificate_configuration_property = gamelift.CfnFleet.CertificateConfigurationProperty(
2968
+ certificate_type="certificateType"
2969
+ )
2970
+ '''
2971
+ if __debug__:
2972
+ type_hints = typing.get_type_hints(_typecheckingstub__4c3cca5919f32f3e2cb6c385afda08bf3b194b8baf60b4d20e5f9f580659cc84)
2973
+ check_type(argname="argument certificate_type", value=certificate_type, expected_type=type_hints["certificate_type"])
2974
+ self._values: typing.Dict[builtins.str, typing.Any] = {
2975
+ "certificate_type": certificate_type,
2976
+ }
2977
+
2978
+ @builtins.property
2979
+ def certificate_type(self) -> builtins.str:
2980
+ '''Indicates whether a TLS/SSL certificate is generated for a fleet.
2981
+
2982
+ Valid values include:
2983
+
2984
+ - *GENERATED* - Generate a TLS/SSL certificate for this fleet.
2985
+ - *DISABLED* - (default) Do not generate a TLS/SSL certificate for this fleet.
2986
+
2987
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html#cfn-gamelift-fleet-certificateconfiguration-certificatetype
2988
+ '''
2989
+ result = self._values.get("certificate_type")
2990
+ assert result is not None, "Required property 'certificate_type' is missing"
2991
+ return typing.cast(builtins.str, result)
2992
+
2993
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2994
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2995
+
2996
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2997
+ return not (rhs == self)
2998
+
2999
+ def __repr__(self) -> str:
3000
+ return "CertificateConfigurationProperty(%s)" % ", ".join(
3001
+ k + "=" + repr(v) for k, v in self._values.items()
3002
+ )
3003
+
3004
+ @jsii.data_type(
3005
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.ConnectionPortRangeProperty",
3006
+ jsii_struct_bases=[],
3007
+ name_mapping={"from_port": "fromPort", "to_port": "toPort"},
3008
+ )
3009
+ class ConnectionPortRangeProperty:
3010
+ def __init__(self, *, from_port: jsii.Number, to_port: jsii.Number) -> None:
3011
+ '''*This operation has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.*.
3012
+
3013
+ The set of port numbers to open on each instance in a container fleet. Connection ports are used by inbound traffic to connect with processes that are running in containers on the fleet.
3014
+
3015
+ *Part of:* ``ContainerGroupsConfiguration`` , ``ContainerGroupsAttributes``
3016
+
3017
+ :param from_port: Starting value for the port range.
3018
+ :param to_port: Ending value for the port. Port numbers are end-inclusive. This value must be equal to or greater than ``FromPort`` .
3019
+
3020
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-connectionportrange.html
3021
+ :exampleMetadata: fixture=_generated
3022
+
3023
+ Example::
3024
+
3025
+ # The code below shows an example of how to instantiate this type.
3026
+ # The values are placeholders you should change.
3027
+ from aws_cdk import aws_gamelift as gamelift
3028
+
3029
+ connection_port_range_property = gamelift.CfnFleet.ConnectionPortRangeProperty(
3030
+ from_port=123,
3031
+ to_port=123
3032
+ )
3033
+ '''
3034
+ if __debug__:
3035
+ type_hints = typing.get_type_hints(_typecheckingstub__65c7b986d31ccdfa5d51331dd935bb4233bcf101bbfe90052f66eb229319a0a8)
3036
+ check_type(argname="argument from_port", value=from_port, expected_type=type_hints["from_port"])
3037
+ check_type(argname="argument to_port", value=to_port, expected_type=type_hints["to_port"])
3038
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3039
+ "from_port": from_port,
3040
+ "to_port": to_port,
3041
+ }
3042
+
3043
+ @builtins.property
3044
+ def from_port(self) -> jsii.Number:
3045
+ '''Starting value for the port range.
3046
+
3047
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-connectionportrange.html#cfn-gamelift-fleet-connectionportrange-fromport
3048
+ '''
3049
+ result = self._values.get("from_port")
3050
+ assert result is not None, "Required property 'from_port' is missing"
3051
+ return typing.cast(jsii.Number, result)
3052
+
3053
+ @builtins.property
3054
+ def to_port(self) -> jsii.Number:
3055
+ '''Ending value for the port.
3056
+
3057
+ Port numbers are end-inclusive. This value must be equal to or greater than ``FromPort`` .
1497
3058
 
1498
- :deprecated: this property has been deprecated
3059
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-connectionportrange.html#cfn-gamelift-fleet-connectionportrange-toport
3060
+ '''
3061
+ result = self._values.get("to_port")
3062
+ assert result is not None, "Required property 'to_port' is missing"
3063
+ return typing.cast(jsii.Number, result)
1499
3064
 
1500
- :stability: deprecated
1501
- '''
1502
- return typing.cast(typing.Optional[builtins.str], jsii.get(self, "serverLaunchPath"))
3065
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3066
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1503
3067
 
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)
3068
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3069
+ return not (rhs == self)
3070
+
3071
+ def __repr__(self) -> str:
3072
+ return "ConnectionPortRangeProperty(%s)" % ", ".join(
3073
+ k + "=" + repr(v) for k, v in self._values.items()
3074
+ )
1510
3075
 
1511
3076
  @jsii.data_type(
1512
- jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.AnywhereConfigurationProperty",
3077
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.ContainerGroupsConfigurationProperty",
1513
3078
  jsii_struct_bases=[],
1514
- name_mapping={"cost": "cost"},
3079
+ name_mapping={
3080
+ "connection_port_range": "connectionPortRange",
3081
+ "container_group_definition_names": "containerGroupDefinitionNames",
3082
+ "container_groups_per_instance": "containerGroupsPerInstance",
3083
+ },
1515
3084
  )
1516
- class AnywhereConfigurationProperty:
1517
- def __init__(self, *, cost: builtins.str) -> None:
1518
- '''Amazon GameLift Anywhere configuration options for your Anywhere fleets.
3085
+ class ContainerGroupsConfigurationProperty:
3086
+ def __init__(
3087
+ self,
3088
+ *,
3089
+ connection_port_range: typing.Union[_IResolvable_da3f097b, typing.Union["CfnFleet.ConnectionPortRangeProperty", typing.Dict[builtins.str, typing.Any]]],
3090
+ container_group_definition_names: typing.Sequence[builtins.str],
3091
+ container_groups_per_instance: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFleet.ContainerGroupsPerInstanceProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3092
+ ) -> None:
3093
+ '''*This data type is used with the Amazon GameLift containers feature, which is currently in public preview.*.
1519
3094
 
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* .
3095
+ Configuration details for a set of container groups, for use when creating a fleet with compute type ``CONTAINER`` .
1521
3096
 
1522
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-anywhereconfiguration.html
3097
+ *Used with:* ``CreateFleet``
3098
+
3099
+ :param connection_port_range: A set of ports to allow inbound traffic, including game clients, to connect to processes running in the container fleet. Connection ports are dynamically mapped to container ports, which are assigned to individual processes running in a container. The connection port range must have enough ports to map to all container ports across a fleet instance. To calculate the minimum connection ports needed, use the following formula: *[Total number of container ports as defined for containers in the replica container group] * [Desired or calculated number of replica container groups per instance] + [Total number of container ports as defined for containers in the daemon container group]* As a best practice, double the minimum number of connection ports. .. epigraph:: Use the fleet's ``EC2InboundPermissions`` property to control external access to connection ports. Set this property to the connection port numbers that you want to open access to. See ``IpPermission`` for more details.
3100
+ :param container_group_definition_names: The list of container group definition names to deploy to a new container fleet.
3101
+ :param container_groups_per_instance: The number of container groups per instance.
3102
+
3103
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsconfiguration.html
1523
3104
  :exampleMetadata: fixture=_generated
1524
3105
 
1525
3106
  Example::
@@ -1528,28 +3109,73 @@ class CfnFleet(
1528
3109
  # The values are placeholders you should change.
1529
3110
  from aws_cdk import aws_gamelift as gamelift
1530
3111
 
1531
- anywhere_configuration_property = gamelift.CfnFleet.AnywhereConfigurationProperty(
1532
- cost="cost"
3112
+ container_groups_configuration_property = gamelift.CfnFleet.ContainerGroupsConfigurationProperty(
3113
+ connection_port_range=gamelift.CfnFleet.ConnectionPortRangeProperty(
3114
+ from_port=123,
3115
+ to_port=123
3116
+ ),
3117
+ container_group_definition_names=["containerGroupDefinitionNames"],
3118
+
3119
+ # the properties below are optional
3120
+ container_groups_per_instance=gamelift.CfnFleet.ContainerGroupsPerInstanceProperty(
3121
+ desired_replica_container_groups_per_instance=123,
3122
+ max_replica_container_groups_per_instance=123
3123
+ )
1533
3124
  )
1534
3125
  '''
1535
3126
  if __debug__:
1536
- type_hints = typing.get_type_hints(_typecheckingstub__e3897ffc82938e5bf4e6384b3a83b22f50c7189a71eb0fc30ea8f17642db5ef9)
1537
- check_type(argname="argument cost", value=cost, expected_type=type_hints["cost"])
3127
+ type_hints = typing.get_type_hints(_typecheckingstub__af8dbebebd0e2db6dda0806b67c6edeb6e2460f1c55d333b8c83a5380be41afd)
3128
+ check_type(argname="argument connection_port_range", value=connection_port_range, expected_type=type_hints["connection_port_range"])
3129
+ check_type(argname="argument container_group_definition_names", value=container_group_definition_names, expected_type=type_hints["container_group_definition_names"])
3130
+ check_type(argname="argument container_groups_per_instance", value=container_groups_per_instance, expected_type=type_hints["container_groups_per_instance"])
1538
3131
  self._values: typing.Dict[builtins.str, typing.Any] = {
1539
- "cost": cost,
3132
+ "connection_port_range": connection_port_range,
3133
+ "container_group_definition_names": container_group_definition_names,
1540
3134
  }
3135
+ if container_groups_per_instance is not None:
3136
+ self._values["container_groups_per_instance"] = container_groups_per_instance
1541
3137
 
1542
3138
  @builtins.property
1543
- def cost(self) -> builtins.str:
1544
- '''The cost to run your fleet per hour.
3139
+ def connection_port_range(
3140
+ self,
3141
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnFleet.ConnectionPortRangeProperty"]:
3142
+ '''A set of ports to allow inbound traffic, including game clients, to connect to processes running in the container fleet.
1545
3143
 
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* .
3144
+ Connection ports are dynamically mapped to container ports, which are assigned to individual processes running in a container. The connection port range must have enough ports to map to all container ports across a fleet instance. To calculate the minimum connection ports needed, use the following formula:
1547
3145
 
1548
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-anywhereconfiguration.html#cfn-gamelift-fleet-anywhereconfiguration-cost
3146
+ *[Total number of container ports as defined for containers in the replica container group] * [Desired or calculated number of replica container groups per instance] + [Total number of container ports as defined for containers in the daemon container group]*
3147
+
3148
+ As a best practice, double the minimum number of connection ports.
3149
+ .. epigraph::
3150
+
3151
+ Use the fleet's ``EC2InboundPermissions`` property to control external access to connection ports. Set this property to the connection port numbers that you want to open access to. See ``IpPermission`` for more details.
3152
+
3153
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsconfiguration.html#cfn-gamelift-fleet-containergroupsconfiguration-connectionportrange
1549
3154
  '''
1550
- result = self._values.get("cost")
1551
- assert result is not None, "Required property 'cost' is missing"
1552
- return typing.cast(builtins.str, result)
3155
+ result = self._values.get("connection_port_range")
3156
+ assert result is not None, "Required property 'connection_port_range' is missing"
3157
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnFleet.ConnectionPortRangeProperty"], result)
3158
+
3159
+ @builtins.property
3160
+ def container_group_definition_names(self) -> typing.List[builtins.str]:
3161
+ '''The list of container group definition names to deploy to a new container fleet.
3162
+
3163
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsconfiguration.html#cfn-gamelift-fleet-containergroupsconfiguration-containergroupdefinitionnames
3164
+ '''
3165
+ result = self._values.get("container_group_definition_names")
3166
+ assert result is not None, "Required property 'container_group_definition_names' is missing"
3167
+ return typing.cast(typing.List[builtins.str], result)
3168
+
3169
+ @builtins.property
3170
+ def container_groups_per_instance(
3171
+ self,
3172
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFleet.ContainerGroupsPerInstanceProperty"]]:
3173
+ '''The number of container groups per instance.
3174
+
3175
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsconfiguration.html#cfn-gamelift-fleet-containergroupsconfiguration-containergroupsperinstance
3176
+ '''
3177
+ result = self._values.get("container_groups_per_instance")
3178
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFleet.ContainerGroupsPerInstanceProperty"]], result)
1553
3179
 
1554
3180
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
1555
3181
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -1558,24 +3184,43 @@ class CfnFleet(
1558
3184
  return not (rhs == self)
1559
3185
 
1560
3186
  def __repr__(self) -> str:
1561
- return "AnywhereConfigurationProperty(%s)" % ", ".join(
3187
+ return "ContainerGroupsConfigurationProperty(%s)" % ", ".join(
1562
3188
  k + "=" + repr(v) for k, v in self._values.items()
1563
3189
  )
1564
3190
 
1565
3191
  @jsii.data_type(
1566
- jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.CertificateConfigurationProperty",
3192
+ jsii_type="aws-cdk-lib.aws_gamelift.CfnFleet.ContainerGroupsPerInstanceProperty",
1567
3193
  jsii_struct_bases=[],
1568
- name_mapping={"certificate_type": "certificateType"},
3194
+ name_mapping={
3195
+ "desired_replica_container_groups_per_instance": "desiredReplicaContainerGroupsPerInstance",
3196
+ "max_replica_container_groups_per_instance": "maxReplicaContainerGroupsPerInstance",
3197
+ },
1569
3198
  )
1570
- class CertificateConfigurationProperty:
1571
- def __init__(self, *, certificate_type: builtins.str) -> None:
1572
- '''Determines whether a TLS/SSL certificate is generated for a fleet.
3199
+ class ContainerGroupsPerInstanceProperty:
3200
+ def __init__(
3201
+ self,
3202
+ *,
3203
+ desired_replica_container_groups_per_instance: typing.Optional[jsii.Number] = None,
3204
+ max_replica_container_groups_per_instance: typing.Optional[jsii.Number] = None,
3205
+ ) -> None:
3206
+ '''*This data type is used with the Amazon GameLift containers feature, which is currently in public preview.*.
1573
3207
 
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`` .
3208
+ Determines how many replica container groups that Amazon GameLift deploys to each instance in a container fleet.
1575
3209
 
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.
3210
+ Amazon GameLift calculates the maximum possible replica groups per instance based on the instance 's CPU and memory resources. When deploying a fleet, Amazon GameLift places replica container groups on each fleet instance based on the following:
1577
3211
 
1578
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html
3212
+ - If no desired value is set, Amazon GameLift places the calculated maximum.
3213
+ - If a desired number is set to a value higher than the calculated maximum, fleet creation fails..
3214
+ - If a desired number is set to a value lower than the calculated maximum, Amazon GameLift places the desired number.
3215
+
3216
+ *Part of:* ``ContainerGroupsConfiguration`` , ``ContainerGroupsAttributes``
3217
+
3218
+ *Returned by:* ``DescribeFleetAttributes`` , ``CreateFleet``
3219
+
3220
+ :param desired_replica_container_groups_per_instance: The desired number of replica container groups to place on each fleet instance.
3221
+ :param max_replica_container_groups_per_instance: The maximum possible number of replica container groups that each fleet instance can have.
3222
+
3223
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsperinstance.html
1579
3224
  :exampleMetadata: fixture=_generated
1580
3225
 
1581
3226
  Example::
@@ -1584,31 +3229,42 @@ class CfnFleet(
1584
3229
  # The values are placeholders you should change.
1585
3230
  from aws_cdk import aws_gamelift as gamelift
1586
3231
 
1587
- certificate_configuration_property = gamelift.CfnFleet.CertificateConfigurationProperty(
1588
- certificate_type="certificateType"
3232
+ container_groups_per_instance_property = gamelift.CfnFleet.ContainerGroupsPerInstanceProperty(
3233
+ desired_replica_container_groups_per_instance=123,
3234
+ max_replica_container_groups_per_instance=123
1589
3235
  )
1590
3236
  '''
1591
3237
  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
- }
3238
+ type_hints = typing.get_type_hints(_typecheckingstub__3473ac2106ce855ef7577b99df8d3e14e6085d02c7bf0c0fb919636a907449c1)
3239
+ 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"])
3240
+ 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"])
3241
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3242
+ if desired_replica_container_groups_per_instance is not None:
3243
+ self._values["desired_replica_container_groups_per_instance"] = desired_replica_container_groups_per_instance
3244
+ if max_replica_container_groups_per_instance is not None:
3245
+ self._values["max_replica_container_groups_per_instance"] = max_replica_container_groups_per_instance
1597
3246
 
1598
3247
  @builtins.property
1599
- def certificate_type(self) -> builtins.str:
1600
- '''Indicates whether a TLS/SSL certificate is generated for a fleet.
3248
+ def desired_replica_container_groups_per_instance(
3249
+ self,
3250
+ ) -> typing.Optional[jsii.Number]:
3251
+ '''The desired number of replica container groups to place on each fleet instance.
1601
3252
 
1602
- Valid values include:
3253
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsperinstance.html#cfn-gamelift-fleet-containergroupsperinstance-desiredreplicacontainergroupsperinstance
3254
+ '''
3255
+ result = self._values.get("desired_replica_container_groups_per_instance")
3256
+ return typing.cast(typing.Optional[jsii.Number], result)
1603
3257
 
1604
- - *GENERATED* - Generate a TLS/SSL certificate for this fleet.
1605
- - *DISABLED* - (default) Do not generate a TLS/SSL certificate for this fleet.
3258
+ @builtins.property
3259
+ def max_replica_container_groups_per_instance(
3260
+ self,
3261
+ ) -> typing.Optional[jsii.Number]:
3262
+ '''The maximum possible number of replica container groups that each fleet instance can have.
1606
3263
 
1607
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-certificateconfiguration.html#cfn-gamelift-fleet-certificateconfiguration-certificatetype
3264
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-containergroupsperinstance.html#cfn-gamelift-fleet-containergroupsperinstance-maxreplicacontainergroupsperinstance
1608
3265
  '''
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)
3266
+ result = self._values.get("max_replica_container_groups_per_instance")
3267
+ return typing.cast(typing.Optional[jsii.Number], result)
1612
3268
 
1613
3269
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
1614
3270
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -1617,7 +3273,7 @@ class CfnFleet(
1617
3273
  return not (rhs == self)
1618
3274
 
1619
3275
  def __repr__(self) -> str:
1620
- return "CertificateConfigurationProperty(%s)" % ", ".join(
3276
+ return "ContainerGroupsPerInstanceProperty(%s)" % ", ".join(
1621
3277
  k + "=" + repr(v) for k, v in self._values.items()
1622
3278
  )
1623
3279
 
@@ -1758,13 +3414,11 @@ class CfnFleet(
1758
3414
  max_size: jsii.Number,
1759
3415
  min_size: jsii.Number,
1760
3416
  ) -> None:
1761
- '''Current resource capacity settings in a specified fleet or location.
3417
+ '''Current resource capacity settings for managed EC2 fleets and container fleets.
1762
3418
 
1763
- The location value might refer to a fleet's remote location or its home Region.
3419
+ For multi-location fleets, location values might refer to a fleet's remote location or its home Region.
1764
3420
 
1765
- *Related actions*
1766
-
1767
- `DescribeFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html>`_ | `DescribeFleetLocationCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html>`_ | `UpdateFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html>`_
3421
+ *Returned by:* `DescribeFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html>`_ , `DescribeFleetLocationCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html>`_ , `UpdateFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html>`_
1768
3422
 
1769
3423
  :param desired_ec2_instances: The number of Amazon EC2 instances you want to maintain in the specified fleet location. This value must fall between the minimum and maximum size limits. Changes in desired instance value can take up to 1 minute to be reflected when viewing the fleet's capacity settings.
1770
3424
  :param max_size: The maximum number of instances that are allowed in the specified fleet location. If this parameter is not set, the default is 1.
@@ -1855,10 +3509,12 @@ class CfnFleet(
1855
3509
  location: builtins.str,
1856
3510
  location_capacity: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFleet.LocationCapacityProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1857
3511
  ) -> None:
1858
- '''A remote location where a multi-location fleet can deploy game servers for game hosting.
3512
+ '''*This data type has been expanded to use with the Amazon GameLift containers feature, which is currently in public preview.*.
3513
+
3514
+ A remote location where a multi-location fleet can deploy game servers for game hosting.
1859
3515
 
1860
3516
  :param location: An AWS Region code, such as ``us-west-2`` .
1861
- :param location_capacity: Current resource capacity settings in a specified fleet or location. The location value might refer to a fleet's remote location or its home Region. *Related actions* `DescribeFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html>`_ | `DescribeFleetLocationCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html>`_ | `UpdateFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html>`_
3517
+ :param location_capacity: Current resource capacity settings for managed EC2 fleets and container fleets. For multi-location fleets, location values might refer to a fleet's remote location or its home Region. *Returned by:* `DescribeFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html>`_ , `DescribeFleetLocationCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html>`_ , `UpdateFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html>`_
1862
3518
 
1863
3519
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationconfiguration.html
1864
3520
  :exampleMetadata: fixture=_generated
@@ -1904,13 +3560,11 @@ class CfnFleet(
1904
3560
  def location_capacity(
1905
3561
  self,
1906
3562
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFleet.LocationCapacityProperty"]]:
1907
- '''Current resource capacity settings in a specified fleet or location.
3563
+ '''Current resource capacity settings for managed EC2 fleets and container fleets.
1908
3564
 
1909
- The location value might refer to a fleet's remote location or its home Region.
3565
+ For multi-location fleets, location values might refer to a fleet's remote location or its home Region.
1910
3566
 
1911
- *Related actions*
1912
-
1913
- `DescribeFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html>`_ | `DescribeFleetLocationCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html>`_ | `UpdateFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html>`_
3567
+ *Returned by:* `DescribeFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html>`_ , `DescribeFleetLocationCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html>`_ , `UpdateFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html>`_
1914
3568
 
1915
3569
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-locationconfiguration.html#cfn-gamelift-fleet-locationconfiguration-locationcapacity
1916
3570
  '''
@@ -2033,8 +3687,8 @@ class CfnFleet(
2033
3687
  A GameLift instance is limited to 50 processes running concurrently. To calculate the total number of processes in a runtime configuration, add the values of the ``ConcurrentExecutions`` parameter for each ServerProcess. Learn more about `Running Multiple Processes on a Fleet <https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-multiprocess.html>`_ .
2034
3688
 
2035
3689
  :param game_session_activation_timeout_seconds: The maximum amount of time (in seconds) allowed to launch a new game session and have it report ready to host players. During this time, the game session is in status ``ACTIVATING`` . If the game session does not become active before the timeout, it is ended and the game session status is changed to ``TERMINATED`` .
2036
- :param max_concurrent_game_session_activations: The number of game sessions in status ``ACTIVATING`` to allow on an instance. This setting limits the instance resources that can be used for new game activations at any one time.
2037
- :param server_processes: A collection of server process configurations that identify what server processes to run on each instance in a fleet.
3690
+ :param max_concurrent_game_session_activations: The number of game sessions in status ``ACTIVATING`` to allow on an instance or container. This setting limits the instance resources that can be used for new game activations at any one time.
3691
+ :param server_processes: A collection of server process configurations that identify what server processes to run on fleet computes.
2038
3692
 
2039
3693
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html
2040
3694
  :exampleMetadata: fixture=_generated
@@ -2087,7 +3741,7 @@ class CfnFleet(
2087
3741
  def max_concurrent_game_session_activations(
2088
3742
  self,
2089
3743
  ) -> typing.Optional[jsii.Number]:
2090
- '''The number of game sessions in status ``ACTIVATING`` to allow on an instance.
3744
+ '''The number of game sessions in status ``ACTIVATING`` to allow on an instance or container.
2091
3745
 
2092
3746
  This setting limits the instance resources that can be used for new game activations at any one time.
2093
3747
 
@@ -2100,7 +3754,7 @@ class CfnFleet(
2100
3754
  def server_processes(
2101
3755
  self,
2102
3756
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnFleet.ServerProcessProperty"]]]]:
2103
- '''A collection of server process configurations that identify what server processes to run on each instance in a fleet.
3757
+ '''A collection of server process configurations that identify what server processes to run on fleet computes.
2104
3758
 
2105
3759
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-runtimeconfiguration.html#cfn-gamelift-fleet-runtimeconfiguration-serverprocesses
2106
3760
  '''
@@ -2415,7 +4069,7 @@ class CfnFleet(
2415
4069
 
2416
4070
  Server processes run either an executable in a custom game build or a Realtime Servers script.
2417
4071
 
2418
- :param concurrent_executions: The number of server processes using this configuration that run concurrently on each instance.
4072
+ :param concurrent_executions: The number of server processes using this configuration that run concurrently on each instance or container..
2419
4073
  :param launch_path: The location of a game build executable or Realtime script. Game builds and Realtime scripts are installed on instances at the root: - Windows (custom game builds only): ``C:\\game`` . Example: " ``C:\\game\\MyGame\\server.exe`` " - Linux: ``/local/game`` . Examples: " ``/local/game/MyGame/server.exe`` " or " ``/local/game/MyRealtimeScript.js`` " .. epigraph:: Amazon GameLift doesn't support the use of setup scripts that launch the game executable. For custom game builds, this parameter must indicate the executable that calls the server SDK operations ``initSDK()`` and ``ProcessReady()`` .
2420
4074
  :param parameters: An optional list of parameters to pass to the server executable or Realtime script on launch. Length Constraints: Minimum length of 1. Maximum length of 1024. Pattern: [A-Za-z0-9_:.+/\\- =@{},?'[]"]+
2421
4075
 
@@ -2450,7 +4104,7 @@ class CfnFleet(
2450
4104
 
2451
4105
  @builtins.property
2452
4106
  def concurrent_executions(self) -> jsii.Number:
2453
- '''The number of server processes using this configuration that run concurrently on each instance.
4107
+ '''The number of server processes using this configuration that run concurrently on each instance or container..
2454
4108
 
2455
4109
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-fleet-serverprocess.html#cfn-gamelift-fleet-serverprocess-concurrentexecutions
2456
4110
  '''
@@ -2568,6 +4222,7 @@ class CfnFleet(
2568
4222
  "build_id": "buildId",
2569
4223
  "certificate_configuration": "certificateConfiguration",
2570
4224
  "compute_type": "computeType",
4225
+ "container_groups_configuration": "containerGroupsConfiguration",
2571
4226
  "description": "description",
2572
4227
  "desired_ec2_instances": "desiredEc2Instances",
2573
4228
  "ec2_inbound_permissions": "ec2InboundPermissions",
@@ -2601,6 +4256,7 @@ class CfnFleetProps:
2601
4256
  build_id: typing.Optional[builtins.str] = None,
2602
4257
  certificate_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.CertificateConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2603
4258
  compute_type: typing.Optional[builtins.str] = None,
4259
+ container_groups_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.ContainerGroupsConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
2604
4260
  description: typing.Optional[builtins.str] = None,
2605
4261
  desired_ec2_instances: typing.Optional[jsii.Number] = None,
2606
4262
  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,
@@ -2627,18 +4283,19 @@ class CfnFleetProps:
2627
4283
 
2628
4284
  :param name: A descriptive label that is associated with a fleet. Fleet names do not need to be unique.
2629
4285
  :param anywhere_configuration: Amazon GameLift Anywhere configuration options.
2630
- :param apply_capacity: Current resource capacity settings in a specified fleet or location. The location value might refer to a fleet's remote location or its home Region. *Related actions* `DescribeFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html>`_ | `DescribeFleetLocationCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html>`_ | `UpdateFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html>`_
4286
+ :param apply_capacity: Current resource capacity settings for managed EC2 fleets and container fleets. For multi-location fleets, location values might refer to a fleet's remote location or its home Region. *Returned by:* `DescribeFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html>`_ , `DescribeFleetLocationCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html>`_ , `UpdateFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html>`_
2631
4287
  :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
4288
  :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
- :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`` .
4289
+ :param compute_type: The type of compute resource used to host your game servers. - ``EC2`` The game server build is deployed to Amazon EC2 instances for cloud hosting. This is the default setting. - ``CONTAINER`` – Container images with your game server build and supporting software are deployed to Amazon EC2 instances for cloud hosting. With this compute type, you must specify the ``ContainerGroupsConfiguration`` parameter. - ``ANYWHERE`` – Game servers or container images with your game server and supporting software are deployed to compute resources that are provided and managed by you. With this compute type, you can also set the ``AnywhereConfiguration`` parameter.
4290
+ :param container_groups_configuration: *This data type is used with the Amazon GameLift containers feature, which is currently in public preview.*. Configuration details for a set of container groups, for use when creating a fleet with compute type ``CONTAINER`` . *Used with:* ``CreateFleet``
2634
4291
  :param description: A description for the fleet.
2635
4292
  :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
- :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.
2637
- :param ec2_instance_type: The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet instances. Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity. See `Amazon Elastic Compute Cloud Instance Types <https://docs.aws.amazon.com/ec2/instance-types/>`_ for detailed descriptions of Amazon EC2 instance types.
4293
+ :param ec2_inbound_permissions: The IP address ranges and port settings that allow inbound traffic to access game server processes and other processes on this fleet. Set this parameter for EC2 and container fleets. You can leave this parameter empty when creating the fleet, but you must call ``UpdateFleetPortSettings`` to set it before players can connect to game sessions. As a best practice, we recommend opening ports for remote access only when you need them and closing them when you're finished. For Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges. To manage inbound access for a container fleet, set this parameter to the same port numbers that you set for the fleet's connection port range. During the life of the fleet, update this parameter to control which connection ports are open to inbound traffic.
4294
+ :param ec2_instance_type: The Amazon GameLift-supported Amazon EC2 instance type to use with EC2 and container fleets. Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity. See `Amazon Elastic Compute Cloud Instance Types <https://docs.aws.amazon.com/ec2/instance-types/>`_ for detailed descriptions of Amazon EC2 instance types.
2638
4295
  :param fleet_type: Indicates whether to use On-Demand or Spot instances for this fleet. By default, this property is set to ``ON_DEMAND`` . Learn more about when to use `On-Demand versus Spot Instances <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-ec2-instances.html#gamelift-ec2-instances-spot>`_ . This fleet property can't be changed after the fleet is created.
2639
- :param instance_role_arn: A unique identifier for an IAM role with access permissions to other AWS services. Any application that runs on an instance in the fleet--including install scripts, server processes, and other processes--can use these permissions to interact with AWS resources that you own or have access to. For more information about using the role with your game server builds, see `Communicate with other AWS resources from your fleets <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html>`_ .
2640
- :param instance_role_credentials_provider: Indicates that fleet instances maintain a shared credentials file for the IAM role defined in ``InstanceRoleArn`` . Shared credentials allow applications that are deployed with the game server executable to communicate with other AWS resources. This property is used only when the game server is integrated with the server SDK version 5.x. For more information about using shared credentials, see `Communicate with other AWS resources from your fleets <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html>`_ .
2641
- :param locations: A set of remote locations to deploy additional instances to and manage as part of the fleet. This parameter can only be used when creating fleets in AWS Regions that support multiple locations. You can add any Amazon GameLift-supported AWS Region as a remote location, in the form of an AWS Region code such as ``us-west-2`` . To create a fleet with instances in the home Region only, don't use this parameter. To use this parameter, Amazon GameLift requires you to use your home location in the request.
4296
+ :param instance_role_arn: A unique identifier for an IAM role with access permissions to other AWS services. Any application that runs on an instance in the fleet--including install scripts, server processes, and other processes--can use these permissions to interact with AWS resources that you own or have access to. For more information about using the role with your game server builds, see `Communicate with other AWS resources from your fleets <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html>`_ . This attribute is used with fleets where ``ComputeType`` is "EC2" or "Container".
4297
+ :param instance_role_credentials_provider: Indicates that fleet instances maintain a shared credentials file for the IAM role defined in ``InstanceRoleArn`` . Shared credentials allow applications that are deployed with the game server executable to communicate with other AWS resources. This property is used only when the game server is integrated with the server SDK version 5.x. For more information about using shared credentials, see `Communicate with other AWS resources from your fleets <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html>`_ . This attribute is used with fleets where ``ComputeType`` is "EC2" or "Container".
4298
+ :param locations: A set of remote locations to deploy additional instances to and manage as part of the fleet. This parameter can only be used when creating fleets in AWS Regions that support multiple locations. You can add any Amazon GameLift-supported AWS Region as a remote location, in the form of an AWS Region code, such as ``us-west-2`` or Local Zone code. To create a fleet with instances in the home Region only, don't set this parameter. When using this parameter, Amazon GameLift requires you to include your home location in the request.
2642
4299
  :param log_paths: (deprecated) This parameter is no longer used. When hosting a custom game build, specify where Amazon GameLift should store log files using the Amazon GameLift server API call ProcessReady()
2643
4300
  :param max_size: The maximum number of instances that are allowed in the specified fleet location. If this parameter is not set, the default is 1.
2644
4301
  :param metric_groups: The name of an AWS CloudWatch metric group to add this fleet to. A metric group is used to aggregate the metrics for multiple fleets. You can specify an existing metric group name or set a new name to create a new metric group. A fleet can be included in only one metric group at a time.
@@ -2675,6 +4332,19 @@ class CfnFleetProps:
2675
4332
  certificate_type="certificateType"
2676
4333
  ),
2677
4334
  compute_type="computeType",
4335
+ container_groups_configuration=gamelift.CfnFleet.ContainerGroupsConfigurationProperty(
4336
+ connection_port_range=gamelift.CfnFleet.ConnectionPortRangeProperty(
4337
+ from_port=123,
4338
+ to_port=123
4339
+ ),
4340
+ container_group_definition_names=["containerGroupDefinitionNames"],
4341
+
4342
+ # the properties below are optional
4343
+ container_groups_per_instance=gamelift.CfnFleet.ContainerGroupsPerInstanceProperty(
4344
+ desired_replica_container_groups_per_instance=123,
4345
+ max_replica_container_groups_per_instance=123
4346
+ )
4347
+ ),
2678
4348
  description="description",
2679
4349
  desired_ec2_instances=123,
2680
4350
  ec2_inbound_permissions=[gamelift.CfnFleet.IpPermissionProperty(
@@ -2750,6 +4420,7 @@ class CfnFleetProps:
2750
4420
  check_type(argname="argument build_id", value=build_id, expected_type=type_hints["build_id"])
2751
4421
  check_type(argname="argument certificate_configuration", value=certificate_configuration, expected_type=type_hints["certificate_configuration"])
2752
4422
  check_type(argname="argument compute_type", value=compute_type, expected_type=type_hints["compute_type"])
4423
+ check_type(argname="argument container_groups_configuration", value=container_groups_configuration, expected_type=type_hints["container_groups_configuration"])
2753
4424
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
2754
4425
  check_type(argname="argument desired_ec2_instances", value=desired_ec2_instances, expected_type=type_hints["desired_ec2_instances"])
2755
4426
  check_type(argname="argument ec2_inbound_permissions", value=ec2_inbound_permissions, expected_type=type_hints["ec2_inbound_permissions"])
@@ -2784,6 +4455,8 @@ class CfnFleetProps:
2784
4455
  self._values["certificate_configuration"] = certificate_configuration
2785
4456
  if compute_type is not None:
2786
4457
  self._values["compute_type"] = compute_type
4458
+ if container_groups_configuration is not None:
4459
+ self._values["container_groups_configuration"] = container_groups_configuration
2787
4460
  if description is not None:
2788
4461
  self._values["description"] = description
2789
4462
  if desired_ec2_instances is not None:
@@ -2852,13 +4525,11 @@ class CfnFleetProps:
2852
4525
 
2853
4526
  @builtins.property
2854
4527
  def apply_capacity(self) -> typing.Optional[builtins.str]:
2855
- '''Current resource capacity settings in a specified fleet or location.
4528
+ '''Current resource capacity settings for managed EC2 fleets and container fleets.
2856
4529
 
2857
- The location value might refer to a fleet's remote location or its home Region.
4530
+ For multi-location fleets, location values might refer to a fleet's remote location or its home Region.
2858
4531
 
2859
- *Related actions*
2860
-
2861
- `DescribeFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html>`_ | `DescribeFleetLocationCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html>`_ | `UpdateFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html>`_
4532
+ *Returned by:* `DescribeFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetCapacity.html>`_ , `DescribeFleetLocationCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_DescribeFleetLocationCapacity.html>`_ , `UpdateFleetCapacity <https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateFleetCapacity.html>`_
2862
4533
 
2863
4534
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-applycapacity
2864
4535
  '''
@@ -2898,13 +4569,30 @@ class CfnFleetProps:
2898
4569
  def compute_type(self) -> typing.Optional[builtins.str]:
2899
4570
  '''The type of compute resource used to host your game servers.
2900
4571
 
2901
- 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`` .
4572
+ - ``EC2`` The game server build is deployed to Amazon EC2 instances for cloud hosting. This is the default setting.
4573
+ - ``CONTAINER`` – Container images with your game server build and supporting software are deployed to Amazon EC2 instances for cloud hosting. With this compute type, you must specify the ``ContainerGroupsConfiguration`` parameter.
4574
+ - ``ANYWHERE`` – Game servers or container images with your game server and supporting software are deployed to compute resources that are provided and managed by you. With this compute type, you can also set the ``AnywhereConfiguration`` parameter.
2902
4575
 
2903
4576
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-computetype
2904
4577
  '''
2905
4578
  result = self._values.get("compute_type")
2906
4579
  return typing.cast(typing.Optional[builtins.str], result)
2907
4580
 
4581
+ @builtins.property
4582
+ def container_groups_configuration(
4583
+ self,
4584
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFleet.ContainerGroupsConfigurationProperty]]:
4585
+ '''*This data type is used with the Amazon GameLift containers feature, which is currently in public preview.*.
4586
+
4587
+ Configuration details for a set of container groups, for use when creating a fleet with compute type ``CONTAINER`` .
4588
+
4589
+ *Used with:* ``CreateFleet``
4590
+
4591
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-containergroupsconfiguration
4592
+ '''
4593
+ result = self._values.get("container_groups_configuration")
4594
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFleet.ContainerGroupsConfigurationProperty]], result)
4595
+
2908
4596
  @builtins.property
2909
4597
  def description(self) -> typing.Optional[builtins.str]:
2910
4598
  '''A description for the fleet.
@@ -2929,9 +4617,11 @@ class CfnFleetProps:
2929
4617
  def ec2_inbound_permissions(
2930
4618
  self,
2931
4619
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnFleet.IpPermissionProperty]]]]:
2932
- '''The allowed IP address ranges and port settings that allow inbound traffic to access game sessions on this fleet.
4620
+ '''The IP address ranges and port settings that allow inbound traffic to access game server processes and other processes on this fleet.
2933
4621
 
2934
- 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.
4622
+ Set this parameter for EC2 and container fleets. You can leave this parameter empty when creating the fleet, but you must call ``UpdateFleetPortSettings`` to set it before players can connect to game sessions. As a best practice, we recommend opening ports for remote access only when you need them and closing them when you're finished. For Realtime Servers fleets, Amazon GameLift automatically sets TCP and UDP ranges.
4623
+
4624
+ To manage inbound access for a container fleet, set this parameter to the same port numbers that you set for the fleet's connection port range. During the life of the fleet, update this parameter to control which connection ports are open to inbound traffic.
2935
4625
 
2936
4626
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-ec2inboundpermissions
2937
4627
  '''
@@ -2940,7 +4630,7 @@ class CfnFleetProps:
2940
4630
 
2941
4631
  @builtins.property
2942
4632
  def ec2_instance_type(self) -> typing.Optional[builtins.str]:
2943
- '''The Amazon GameLift-supported Amazon EC2 instance type to use for all fleet instances.
4633
+ '''The Amazon GameLift-supported Amazon EC2 instance type to use with EC2 and container fleets.
2944
4634
 
2945
4635
  Instance type determines the computing resources that will be used to host your game servers, including CPU, memory, storage, and networking capacity. See `Amazon Elastic Compute Cloud Instance Types <https://docs.aws.amazon.com/ec2/instance-types/>`_ for detailed descriptions of Amazon EC2 instance types.
2946
4636
 
@@ -2964,7 +4654,7 @@ class CfnFleetProps:
2964
4654
  def instance_role_arn(self) -> typing.Optional[builtins.str]:
2965
4655
  '''A unique identifier for an IAM role with access permissions to other AWS services.
2966
4656
 
2967
- Any application that runs on an instance in the fleet--including install scripts, server processes, and other processes--can use these permissions to interact with AWS resources that you own or have access to. For more information about using the role with your game server builds, see `Communicate with other AWS resources from your fleets <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html>`_ .
4657
+ Any application that runs on an instance in the fleet--including install scripts, server processes, and other processes--can use these permissions to interact with AWS resources that you own or have access to. For more information about using the role with your game server builds, see `Communicate with other AWS resources from your fleets <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html>`_ . This attribute is used with fleets where ``ComputeType`` is "EC2" or "Container".
2968
4658
 
2969
4659
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-instancerolearn
2970
4660
  '''
@@ -2975,7 +4665,7 @@ class CfnFleetProps:
2975
4665
  def instance_role_credentials_provider(self) -> typing.Optional[builtins.str]:
2976
4666
  '''Indicates that fleet instances maintain a shared credentials file for the IAM role defined in ``InstanceRoleArn`` .
2977
4667
 
2978
- Shared credentials allow applications that are deployed with the game server executable to communicate with other AWS resources. This property is used only when the game server is integrated with the server SDK version 5.x. For more information about using shared credentials, see `Communicate with other AWS resources from your fleets <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html>`_ .
4668
+ Shared credentials allow applications that are deployed with the game server executable to communicate with other AWS resources. This property is used only when the game server is integrated with the server SDK version 5.x. For more information about using shared credentials, see `Communicate with other AWS resources from your fleets <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-resources.html>`_ . This attribute is used with fleets where ``ComputeType`` is "EC2" or "Container".
2979
4669
 
2980
4670
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-instancerolecredentialsprovider
2981
4671
  '''
@@ -2988,9 +4678,9 @@ class CfnFleetProps:
2988
4678
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnFleet.LocationConfigurationProperty]]]]:
2989
4679
  '''A set of remote locations to deploy additional instances to and manage as part of the fleet.
2990
4680
 
2991
- This parameter can only be used when creating fleets in AWS Regions that support multiple locations. You can add any Amazon GameLift-supported AWS Region as a remote location, in the form of an AWS Region code such as ``us-west-2`` . To create a fleet with instances in the home Region only, don't use this parameter.
4681
+ This parameter can only be used when creating fleets in AWS Regions that support multiple locations. You can add any Amazon GameLift-supported AWS Region as a remote location, in the form of an AWS Region code, such as ``us-west-2`` or Local Zone code. To create a fleet with instances in the home Region only, don't set this parameter.
2992
4682
 
2993
- To use this parameter, Amazon GameLift requires you to use your home location in the request.
4683
+ When using this parameter, Amazon GameLift requires you to include your home location in the request.
2994
4684
 
2995
4685
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-fleet.html#cfn-gamelift-fleet-locations
2996
4686
  '''
@@ -6770,6 +8460,8 @@ __all__ = [
6770
8460
  "CfnAliasProps",
6771
8461
  "CfnBuild",
6772
8462
  "CfnBuildProps",
8463
+ "CfnContainerGroupDefinition",
8464
+ "CfnContainerGroupDefinitionProps",
6773
8465
  "CfnFleet",
6774
8466
  "CfnFleetProps",
6775
8467
  "CfnGameServerGroup",
@@ -6923,6 +8615,158 @@ def _typecheckingstub__4ea486b468f726c96f63f78347aac31445ce3b0bd1ea282f6fce30ca4
6923
8615
  """Type checking stubs"""
6924
8616
  pass
6925
8617
 
8618
+ def _typecheckingstub__2d0ad3aeb1243549bc05c0346bb1e8303d21326ec9f1a17ec63327d7e3f29a1e(
8619
+ scope: _constructs_77d1e7e8.Construct,
8620
+ id: builtins.str,
8621
+ *,
8622
+ container_definitions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.ContainerDefinitionProperty, typing.Dict[builtins.str, typing.Any]]]]],
8623
+ name: builtins.str,
8624
+ operating_system: builtins.str,
8625
+ total_cpu_limit: jsii.Number,
8626
+ total_memory_limit: jsii.Number,
8627
+ scheduling_strategy: typing.Optional[builtins.str] = None,
8628
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
8629
+ ) -> None:
8630
+ """Type checking stubs"""
8631
+ pass
8632
+
8633
+ def _typecheckingstub__b07a706beb428681d6a41fe2a705cfe7e9f6f65c0df4708d633a856c73d6fa7b(
8634
+ inspector: _TreeInspector_488e0dd5,
8635
+ ) -> None:
8636
+ """Type checking stubs"""
8637
+ pass
8638
+
8639
+ def _typecheckingstub__abcc96ad0c8f9f987fd719eb37179f12dda8829dbbc0b9fb28188a52044ec711(
8640
+ props: typing.Mapping[builtins.str, typing.Any],
8641
+ ) -> None:
8642
+ """Type checking stubs"""
8643
+ pass
8644
+
8645
+ def _typecheckingstub__1d575dc521c3da1f3682c88ce08e24b38977a41bef8807469e908a4fc94b8be0(
8646
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnContainerGroupDefinition.ContainerDefinitionProperty]]],
8647
+ ) -> None:
8648
+ """Type checking stubs"""
8649
+ pass
8650
+
8651
+ def _typecheckingstub__90e8a024d1021ae9b57dadc57167a55f375efa5756fd3358541d1bbca8f16cf0(
8652
+ value: builtins.str,
8653
+ ) -> None:
8654
+ """Type checking stubs"""
8655
+ pass
8656
+
8657
+ def _typecheckingstub__8f85c42319aa42e6c796369d8760bfb73c97a6305632fa1b86497b93a214a2ec(
8658
+ value: builtins.str,
8659
+ ) -> None:
8660
+ """Type checking stubs"""
8661
+ pass
8662
+
8663
+ def _typecheckingstub__c70806f2091ef0e31ae18f95ca9388e13070bc234c9db0acb79308e3bb8064c8(
8664
+ value: jsii.Number,
8665
+ ) -> None:
8666
+ """Type checking stubs"""
8667
+ pass
8668
+
8669
+ def _typecheckingstub__b4cc7de67e0ef4b7a915c9522aa5d27817d4c88d3cc0d6cc3897ec44fe82624e(
8670
+ value: jsii.Number,
8671
+ ) -> None:
8672
+ """Type checking stubs"""
8673
+ pass
8674
+
8675
+ def _typecheckingstub__ee4192c1232484aa6cb4b7a0ff2133a07c228af7fc593005174668d67f88e787(
8676
+ value: typing.Optional[builtins.str],
8677
+ ) -> None:
8678
+ """Type checking stubs"""
8679
+ pass
8680
+
8681
+ def _typecheckingstub__39d9905e11429554186c96e0a5c07109b132519014161fc8e8d7aa9f4250218d(
8682
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
8683
+ ) -> None:
8684
+ """Type checking stubs"""
8685
+ pass
8686
+
8687
+ def _typecheckingstub__3d96474fb31ceec64a55f6a09274f19f2dde05387b5bdd5c76ce6f26d90d5eb7(
8688
+ *,
8689
+ container_name: builtins.str,
8690
+ image_uri: builtins.str,
8691
+ command: typing.Optional[typing.Sequence[builtins.str]] = None,
8692
+ cpu: typing.Optional[jsii.Number] = None,
8693
+ 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,
8694
+ entry_point: typing.Optional[typing.Sequence[builtins.str]] = None,
8695
+ environment: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.ContainerEnvironmentProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
8696
+ essential: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
8697
+ health_check: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.ContainerHealthCheckProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8698
+ memory_limits: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.MemoryLimitsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8699
+ port_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.PortConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8700
+ resolved_image_digest: typing.Optional[builtins.str] = None,
8701
+ working_directory: typing.Optional[builtins.str] = None,
8702
+ ) -> None:
8703
+ """Type checking stubs"""
8704
+ pass
8705
+
8706
+ def _typecheckingstub__e8424bed9ce9567d13ec372652e5d607735583e13219bd42143f538aee3feb1f(
8707
+ *,
8708
+ condition: builtins.str,
8709
+ container_name: builtins.str,
8710
+ ) -> None:
8711
+ """Type checking stubs"""
8712
+ pass
8713
+
8714
+ def _typecheckingstub__c8a971f77ef4383909669846d3e4ee4a8463f7353ec0c1aa4da152ea7ec43bb9(
8715
+ *,
8716
+ name: builtins.str,
8717
+ value: builtins.str,
8718
+ ) -> None:
8719
+ """Type checking stubs"""
8720
+ pass
8721
+
8722
+ def _typecheckingstub__95b1e7083ac6b3d39e0bc5926b3c9ee368385be498c61499a81f860b155d0a1d(
8723
+ *,
8724
+ command: typing.Sequence[builtins.str],
8725
+ interval: typing.Optional[jsii.Number] = None,
8726
+ retries: typing.Optional[jsii.Number] = None,
8727
+ start_period: typing.Optional[jsii.Number] = None,
8728
+ timeout: typing.Optional[jsii.Number] = None,
8729
+ ) -> None:
8730
+ """Type checking stubs"""
8731
+ pass
8732
+
8733
+ def _typecheckingstub__2d3e35cf8a42e8cbcdf12218e64e5ac29c19f0813f144c8d75e97d3e3313d396(
8734
+ *,
8735
+ from_port: jsii.Number,
8736
+ protocol: builtins.str,
8737
+ to_port: jsii.Number,
8738
+ ) -> None:
8739
+ """Type checking stubs"""
8740
+ pass
8741
+
8742
+ def _typecheckingstub__9ac03f75ba7cf3ff7267cf9e9544e940c9974e78a4d364eed01d2ebb6bc2d3fa(
8743
+ *,
8744
+ hard_limit: typing.Optional[jsii.Number] = None,
8745
+ soft_limit: typing.Optional[jsii.Number] = None,
8746
+ ) -> None:
8747
+ """Type checking stubs"""
8748
+ pass
8749
+
8750
+ def _typecheckingstub__49796d7f2a6fb9a60e370fb5b8e88da33d84ca298d8833d8e64e3d80586cedf7(
8751
+ *,
8752
+ container_port_ranges: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.ContainerPortRangeProperty, typing.Dict[builtins.str, typing.Any]]]]],
8753
+ ) -> None:
8754
+ """Type checking stubs"""
8755
+ pass
8756
+
8757
+ def _typecheckingstub__6b760a12182b9da0a53204aa5510dae28c2cda4c4fba1ef77f0245093da04ea4(
8758
+ *,
8759
+ container_definitions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnContainerGroupDefinition.ContainerDefinitionProperty, typing.Dict[builtins.str, typing.Any]]]]],
8760
+ name: builtins.str,
8761
+ operating_system: builtins.str,
8762
+ total_cpu_limit: jsii.Number,
8763
+ total_memory_limit: jsii.Number,
8764
+ scheduling_strategy: typing.Optional[builtins.str] = None,
8765
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
8766
+ ) -> None:
8767
+ """Type checking stubs"""
8768
+ pass
8769
+
6926
8770
  def _typecheckingstub__21fe09a90444788b3c862f454214d4e160757c9b02d0598d282f68b7f79d749f(
6927
8771
  scope: _constructs_77d1e7e8.Construct,
6928
8772
  id: builtins.str,
@@ -6933,6 +8777,7 @@ def _typecheckingstub__21fe09a90444788b3c862f454214d4e160757c9b02d0598d282f68b7f
6933
8777
  build_id: typing.Optional[builtins.str] = None,
6934
8778
  certificate_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.CertificateConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6935
8779
  compute_type: typing.Optional[builtins.str] = None,
8780
+ container_groups_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.ContainerGroupsConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6936
8781
  description: typing.Optional[builtins.str] = None,
6937
8782
  desired_ec2_instances: typing.Optional[jsii.Number] = None,
6938
8783
  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 +8851,12 @@ def _typecheckingstub__022e8bf70858e61cedf1ac2f0bbe1af01706924dda3af7f4e655e78c1
7006
8851
  """Type checking stubs"""
7007
8852
  pass
7008
8853
 
8854
+ def _typecheckingstub__12ab5ebb46adc7fe2bb2e1911285f98090170c29093f6e28b584096baafa36aa(
8855
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFleet.ContainerGroupsConfigurationProperty]],
8856
+ ) -> None:
8857
+ """Type checking stubs"""
8858
+ pass
8859
+
7009
8860
  def _typecheckingstub__eec78595476346beb2b42a6ac89d6890fb357c8bc49fbafff985bc1417bca206(
7010
8861
  value: typing.Optional[builtins.str],
7011
8862
  ) -> None:
@@ -7146,6 +8997,31 @@ def _typecheckingstub__4c3cca5919f32f3e2cb6c385afda08bf3b194b8baf60b4d20e5f9f580
7146
8997
  """Type checking stubs"""
7147
8998
  pass
7148
8999
 
9000
+ def _typecheckingstub__65c7b986d31ccdfa5d51331dd935bb4233bcf101bbfe90052f66eb229319a0a8(
9001
+ *,
9002
+ from_port: jsii.Number,
9003
+ to_port: jsii.Number,
9004
+ ) -> None:
9005
+ """Type checking stubs"""
9006
+ pass
9007
+
9008
+ def _typecheckingstub__af8dbebebd0e2db6dda0806b67c6edeb6e2460f1c55d333b8c83a5380be41afd(
9009
+ *,
9010
+ connection_port_range: typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.ConnectionPortRangeProperty, typing.Dict[builtins.str, typing.Any]]],
9011
+ container_group_definition_names: typing.Sequence[builtins.str],
9012
+ container_groups_per_instance: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.ContainerGroupsPerInstanceProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
9013
+ ) -> None:
9014
+ """Type checking stubs"""
9015
+ pass
9016
+
9017
+ def _typecheckingstub__3473ac2106ce855ef7577b99df8d3e14e6085d02c7bf0c0fb919636a907449c1(
9018
+ *,
9019
+ desired_replica_container_groups_per_instance: typing.Optional[jsii.Number] = None,
9020
+ max_replica_container_groups_per_instance: typing.Optional[jsii.Number] = None,
9021
+ ) -> None:
9022
+ """Type checking stubs"""
9023
+ pass
9024
+
7149
9025
  def _typecheckingstub__70f885be25c9084dbab3b02a36601be0e37c43ab741ea7dd646494423839333a(
7150
9026
  *,
7151
9027
  from_port: jsii.Number,
@@ -7232,6 +9108,7 @@ def _typecheckingstub__8a51a418ba5b606bdfc45dc50c3172e280a12e078a7392f3258d5d329
7232
9108
  build_id: typing.Optional[builtins.str] = None,
7233
9109
  certificate_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.CertificateConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7234
9110
  compute_type: typing.Optional[builtins.str] = None,
9111
+ container_groups_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.ContainerGroupsConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7235
9112
  description: typing.Optional[builtins.str] = None,
7236
9113
  desired_ec2_instances: typing.Optional[jsii.Number] = None,
7237
9114
  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,