aws-cdk-lib 2.197.0__py3-none-any.whl → 2.198.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 (31) hide show
  1. aws_cdk/_jsii/__init__.py +1 -1
  2. aws_cdk/_jsii/{aws-cdk-lib@2.197.0.jsii.tgz → aws-cdk-lib@2.198.0.jsii.tgz} +0 -0
  3. aws_cdk/aws_applicationautoscaling/__init__.py +36 -0
  4. aws_cdk/aws_appsync/__init__.py +31 -21
  5. aws_cdk/aws_autoscaling/__init__.py +2 -1
  6. aws_cdk/aws_codepipeline/__init__.py +4 -2
  7. aws_cdk/aws_datasync/__init__.py +885 -839
  8. aws_cdk/aws_deadline/__init__.py +23 -4
  9. aws_cdk/aws_ec2/__init__.py +210 -4
  10. aws_cdk/aws_ecs/__init__.py +14 -2
  11. aws_cdk/aws_ecs_patterns/__init__.py +15 -9
  12. aws_cdk/aws_elasticloadbalancingv2/__init__.py +14 -8
  13. aws_cdk/aws_gamelift/__init__.py +15 -17
  14. aws_cdk/aws_lex/__init__.py +1245 -172
  15. aws_cdk/aws_mediapackagev2/__init__.py +11 -10
  16. aws_cdk/aws_omics/__init__.py +41 -19
  17. aws_cdk/aws_pcs/__init__.py +126 -0
  18. aws_cdk/aws_rds/__init__.py +42 -15
  19. aws_cdk/aws_rolesanywhere/__init__.py +14 -13
  20. aws_cdk/aws_sagemaker/__init__.py +38 -12
  21. aws_cdk/aws_ses/__init__.py +188 -0
  22. aws_cdk/aws_ssmquicksetup/__init__.py +10 -2
  23. aws_cdk/aws_synthetics/__init__.py +137 -3
  24. aws_cdk/aws_wafv2/__init__.py +4 -4
  25. aws_cdk/aws_workspaces/__init__.py +5 -3
  26. {aws_cdk_lib-2.197.0.dist-info → aws_cdk_lib-2.198.0.dist-info}/METADATA +2 -2
  27. {aws_cdk_lib-2.197.0.dist-info → aws_cdk_lib-2.198.0.dist-info}/RECORD +31 -31
  28. {aws_cdk_lib-2.197.0.dist-info → aws_cdk_lib-2.198.0.dist-info}/LICENSE +0 -0
  29. {aws_cdk_lib-2.197.0.dist-info → aws_cdk_lib-2.198.0.dist-info}/NOTICE +0 -0
  30. {aws_cdk_lib-2.197.0.dist-info → aws_cdk_lib-2.198.0.dist-info}/WHEEL +0 -0
  31. {aws_cdk_lib-2.197.0.dist-info → aws_cdk_lib-2.198.0.dist-info}/top_level.txt +0 -0
@@ -447,7 +447,8 @@ class CfnFleet(
447
447
  ),
448
448
 
449
449
  # the properties below are optional
450
- storage_profile_id="storageProfileId"
450
+ storage_profile_id="storageProfileId",
451
+ tag_propagation_mode="tagPropagationMode"
451
452
  ),
452
453
  service_managed_ec2=deadline.CfnFleet.ServiceManagedEc2FleetConfigurationProperty(
453
454
  instance_capabilities=deadline.CfnFleet.ServiceManagedEc2InstanceCapabilitiesProperty(
@@ -1117,6 +1118,7 @@ class CfnFleet(
1117
1118
  "mode": "mode",
1118
1119
  "worker_capabilities": "workerCapabilities",
1119
1120
  "storage_profile_id": "storageProfileId",
1121
+ "tag_propagation_mode": "tagPropagationMode",
1120
1122
  },
1121
1123
  )
1122
1124
  class CustomerManagedFleetConfigurationProperty:
@@ -1126,12 +1128,14 @@ class CfnFleet(
1126
1128
  mode: builtins.str,
1127
1129
  worker_capabilities: typing.Union[_IResolvable_da3f097b, typing.Union["CfnFleet.CustomerManagedWorkerCapabilitiesProperty", typing.Dict[builtins.str, typing.Any]]],
1128
1130
  storage_profile_id: typing.Optional[builtins.str] = None,
1131
+ tag_propagation_mode: typing.Optional[builtins.str] = None,
1129
1132
  ) -> None:
1130
1133
  '''The details of a customer managed fleet configuration.
1131
1134
 
1132
1135
  :param mode: The AWS Auto Scaling mode for the customer managed fleet configuration.
1133
1136
  :param worker_capabilities: The worker capabilities for a customer managed fleet configuration.
1134
1137
  :param storage_profile_id: The storage profile ID.
1138
+ :param tag_propagation_mode:
1135
1139
 
1136
1140
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedfleetconfiguration.html
1137
1141
  :exampleMetadata: fixture=_generated
@@ -1188,7 +1192,8 @@ class CfnFleet(
1188
1192
  ),
1189
1193
 
1190
1194
  # the properties below are optional
1191
- storage_profile_id="storageProfileId"
1195
+ storage_profile_id="storageProfileId",
1196
+ tag_propagation_mode="tagPropagationMode"
1192
1197
  )
1193
1198
  '''
1194
1199
  if __debug__:
@@ -1196,12 +1201,15 @@ class CfnFleet(
1196
1201
  check_type(argname="argument mode", value=mode, expected_type=type_hints["mode"])
1197
1202
  check_type(argname="argument worker_capabilities", value=worker_capabilities, expected_type=type_hints["worker_capabilities"])
1198
1203
  check_type(argname="argument storage_profile_id", value=storage_profile_id, expected_type=type_hints["storage_profile_id"])
1204
+ check_type(argname="argument tag_propagation_mode", value=tag_propagation_mode, expected_type=type_hints["tag_propagation_mode"])
1199
1205
  self._values: typing.Dict[builtins.str, typing.Any] = {
1200
1206
  "mode": mode,
1201
1207
  "worker_capabilities": worker_capabilities,
1202
1208
  }
1203
1209
  if storage_profile_id is not None:
1204
1210
  self._values["storage_profile_id"] = storage_profile_id
1211
+ if tag_propagation_mode is not None:
1212
+ self._values["tag_propagation_mode"] = tag_propagation_mode
1205
1213
 
1206
1214
  @builtins.property
1207
1215
  def mode(self) -> builtins.str:
@@ -1234,6 +1242,14 @@ class CfnFleet(
1234
1242
  result = self._values.get("storage_profile_id")
1235
1243
  return typing.cast(typing.Optional[builtins.str], result)
1236
1244
 
1245
+ @builtins.property
1246
+ def tag_propagation_mode(self) -> typing.Optional[builtins.str]:
1247
+ '''
1248
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-deadline-fleet-customermanagedfleetconfiguration.html#cfn-deadline-fleet-customermanagedfleetconfiguration-tagpropagationmode
1249
+ '''
1250
+ result = self._values.get("tag_propagation_mode")
1251
+ return typing.cast(typing.Optional[builtins.str], result)
1252
+
1237
1253
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
1238
1254
  return isinstance(rhs, self.__class__) and rhs._values == self._values
1239
1255
 
@@ -1887,7 +1903,8 @@ class CfnFleet(
1887
1903
  ),
1888
1904
 
1889
1905
  # the properties below are optional
1890
- storage_profile_id="storageProfileId"
1906
+ storage_profile_id="storageProfileId",
1907
+ tag_propagation_mode="tagPropagationMode"
1891
1908
  ),
1892
1909
  service_managed_ec2=deadline.CfnFleet.ServiceManagedEc2FleetConfigurationProperty(
1893
1910
  instance_capabilities=deadline.CfnFleet.ServiceManagedEc2InstanceCapabilitiesProperty(
@@ -2748,7 +2765,8 @@ class CfnFleetProps:
2748
2765
  ),
2749
2766
 
2750
2767
  # the properties below are optional
2751
- storage_profile_id="storageProfileId"
2768
+ storage_profile_id="storageProfileId",
2769
+ tag_propagation_mode="tagPropagationMode"
2752
2770
  ),
2753
2771
  service_managed_ec2=deadline.CfnFleet.ServiceManagedEc2FleetConfigurationProperty(
2754
2772
  instance_capabilities=deadline.CfnFleet.ServiceManagedEc2InstanceCapabilitiesProperty(
@@ -6300,6 +6318,7 @@ def _typecheckingstub__1e0d0744c60a31b3157ef03f930266f6c000eafa44c6050607897ea5b
6300
6318
  mode: builtins.str,
6301
6319
  worker_capabilities: typing.Union[_IResolvable_da3f097b, typing.Union[CfnFleet.CustomerManagedWorkerCapabilitiesProperty, typing.Dict[builtins.str, typing.Any]]],
6302
6320
  storage_profile_id: typing.Optional[builtins.str] = None,
6321
+ tag_propagation_mode: typing.Optional[builtins.str] = None,
6303
6322
  ) -> None:
6304
6323
  """Type checking stubs"""
6305
6324
  pass
@@ -16999,7 +16999,7 @@ class CfnHost(
16999
16999
  :param instance_family: The instance family supported by the Dedicated Host. For example, ``m5`` .
17000
17000
  :param instance_type: Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.
17001
17001
  :param outpost_arn: The Amazon Resource Name (ARN) of the AWS Outpost on which the Dedicated Host is allocated.
17002
- :param tags: Any tags assigned to the Host.
17002
+ :param tags: Any tags assigned to the Dedicated Host.
17003
17003
  '''
17004
17004
  if __debug__:
17005
17005
  type_hints = typing.get_type_hints(_typecheckingstub__e3a07acffdb551edbc817b7c424628c812f21356d7f697757a332323f6dcfde8)
@@ -17176,7 +17176,7 @@ class CfnHost(
17176
17176
  @builtins.property
17177
17177
  @jsii.member(jsii_name="tags")
17178
17178
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
17179
- '''Any tags assigned to the Host.'''
17179
+ '''Any tags assigned to the Dedicated Host.'''
17180
17180
  return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
17181
17181
 
17182
17182
  @tags.setter
@@ -17226,7 +17226,7 @@ class CfnHostProps:
17226
17226
  :param instance_family: The instance family supported by the Dedicated Host. For example, ``m5`` .
17227
17227
  :param instance_type: Specifies the instance type to be supported by the Dedicated Hosts. If you specify an instance type, the Dedicated Hosts support instances of the specified instance type only.
17228
17228
  :param outpost_arn: The Amazon Resource Name (ARN) of the AWS Outpost on which the Dedicated Host is allocated.
17229
- :param tags: Any tags assigned to the Host.
17229
+ :param tags: Any tags assigned to the Dedicated Host.
17230
17230
 
17231
17231
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html
17232
17232
  :exampleMetadata: fixture=_generated
@@ -17372,7 +17372,7 @@ class CfnHostProps:
17372
17372
 
17373
17373
  @builtins.property
17374
17374
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
17375
- '''Any tags assigned to the Host.
17375
+ '''Any tags assigned to the Dedicated Host.
17376
17376
 
17377
17377
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-host.html#cfn-ec2-host-tags
17378
17378
  '''
@@ -20667,6 +20667,13 @@ class CfnInstance(
20667
20667
  license_specifications=[ec2.CfnInstance.LicenseSpecificationProperty(
20668
20668
  license_configuration_arn="licenseConfigurationArn"
20669
20669
  )],
20670
+ metadata_options=ec2.CfnInstance.MetadataOptionsProperty(
20671
+ http_endpoint="httpEndpoint",
20672
+ http_protocol_ipv6="httpProtocolIpv6",
20673
+ http_put_response_hop_limit=123,
20674
+ http_tokens="httpTokens",
20675
+ instance_metadata_tags="instanceMetadataTags"
20676
+ ),
20670
20677
  monitoring=False,
20671
20678
  network_interfaces=[ec2.CfnInstance.NetworkInterfaceProperty(
20672
20679
  device_index="deviceIndex",
@@ -20760,6 +20767,7 @@ class CfnInstance(
20760
20767
  key_name: typing.Optional[builtins.str] = None,
20761
20768
  launch_template: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnInstance.LaunchTemplateSpecificationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
20762
20769
  license_specifications: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnInstance.LicenseSpecificationProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
20770
+ metadata_options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnInstance.MetadataOptionsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
20763
20771
  monitoring: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
20764
20772
  network_interfaces: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnInstance.NetworkInterfaceProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
20765
20773
  placement_group_name: typing.Optional[builtins.str] = None,
@@ -20804,6 +20812,7 @@ class CfnInstance(
20804
20812
  :param key_name: The name of the key pair. You can create a key pair using `CreateKeyPair <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html>`_ or `ImportKeyPair <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html>`_ . .. epigraph:: If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.
20805
20813
  :param launch_template: The launch template. Any additional parameters that you specify for the new instance overwrite the corresponding parameters included in the launch template.
20806
20814
  :param license_specifications: The license configurations.
20815
+ :param metadata_options:
20807
20816
  :param monitoring: Specifies whether detailed monitoring is enabled for the instance. Specify ``true`` to enable detailed monitoring. Otherwise, basic monitoring is enabled. For more information about detailed monitoring, see `Enable or turn off detailed monitoring for your instances <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html>`_ in the *Amazon EC2 User Guide* .
20808
20817
  :param network_interfaces: The network interfaces to associate with the instance. .. epigraph:: If you use this property to point to a network interface, you must terminate the original interface before attaching a new one to allow the update of the instance to succeed. If this resource has a public IP address and is also in a VPC that is defined in the same template, you must use the `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ to declare a dependency on the VPC-gateway attachment.
20809
20818
  :param placement_group_name: The name of an existing placement group that you want to launch the instance into (cluster | partition | spread).
@@ -20850,6 +20859,7 @@ class CfnInstance(
20850
20859
  key_name=key_name,
20851
20860
  launch_template=launch_template,
20852
20861
  license_specifications=license_specifications,
20862
+ metadata_options=metadata_options,
20853
20863
  monitoring=monitoring,
20854
20864
  network_interfaces=network_interfaces,
20855
20865
  placement_group_name=placement_group_name,
@@ -21371,6 +21381,23 @@ class CfnInstance(
21371
21381
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
21372
21382
  jsii.set(self, "licenseSpecifications", value) # pyright: ignore[reportArgumentType]
21373
21383
 
21384
+ @builtins.property
21385
+ @jsii.member(jsii_name="metadataOptions")
21386
+ def metadata_options(
21387
+ self,
21388
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnInstance.MetadataOptionsProperty"]]:
21389
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnInstance.MetadataOptionsProperty"]], jsii.get(self, "metadataOptions"))
21390
+
21391
+ @metadata_options.setter
21392
+ def metadata_options(
21393
+ self,
21394
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnInstance.MetadataOptionsProperty"]],
21395
+ ) -> None:
21396
+ if __debug__:
21397
+ type_hints = typing.get_type_hints(_typecheckingstub__829ee1a8f150cbfae9cd18b9c33d41b2e8f61b6ded5a58aa4c446baedaa0b5fc)
21398
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
21399
+ jsii.set(self, "metadataOptions", value) # pyright: ignore[reportArgumentType]
21400
+
21374
21401
  @builtins.property
21375
21402
  @jsii.member(jsii_name="monitoring")
21376
21403
  def monitoring(
@@ -22831,6 +22858,134 @@ class CfnInstance(
22831
22858
  k + "=" + repr(v) for k, v in self._values.items()
22832
22859
  )
22833
22860
 
22861
+ @jsii.data_type(
22862
+ jsii_type="aws-cdk-lib.aws_ec2.CfnInstance.MetadataOptionsProperty",
22863
+ jsii_struct_bases=[],
22864
+ name_mapping={
22865
+ "http_endpoint": "httpEndpoint",
22866
+ "http_protocol_ipv6": "httpProtocolIpv6",
22867
+ "http_put_response_hop_limit": "httpPutResponseHopLimit",
22868
+ "http_tokens": "httpTokens",
22869
+ "instance_metadata_tags": "instanceMetadataTags",
22870
+ },
22871
+ )
22872
+ class MetadataOptionsProperty:
22873
+ def __init__(
22874
+ self,
22875
+ *,
22876
+ http_endpoint: typing.Optional[builtins.str] = None,
22877
+ http_protocol_ipv6: typing.Optional[builtins.str] = None,
22878
+ http_put_response_hop_limit: typing.Optional[jsii.Number] = None,
22879
+ http_tokens: typing.Optional[builtins.str] = None,
22880
+ instance_metadata_tags: typing.Optional[builtins.str] = None,
22881
+ ) -> None:
22882
+ '''
22883
+ :param http_endpoint: Enables or disables the HTTP metadata endpoint on your instances. If you specify a value of disabled, you cannot access your instance metadata.
22884
+ :param http_protocol_ipv6: Enables or disables the IPv6 endpoint for the instance metadata service. To use this option, the instance must be a Nitro-based instance launched in a subnet that supports IPv6.
22885
+ :param http_put_response_hop_limit: The number of network hops that the metadata token can travel. Maximum is 64. Default: - 1
22886
+ :param http_tokens: Indicates whether IMDSv2 is required.
22887
+ :param instance_metadata_tags: Indicates whether tags from the instance are propagated to the EBS volumes.
22888
+
22889
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-metadataoptions.html
22890
+ :exampleMetadata: fixture=_generated
22891
+
22892
+ Example::
22893
+
22894
+ # The code below shows an example of how to instantiate this type.
22895
+ # The values are placeholders you should change.
22896
+ from aws_cdk import aws_ec2 as ec2
22897
+
22898
+ metadata_options_property = ec2.CfnInstance.MetadataOptionsProperty(
22899
+ http_endpoint="httpEndpoint",
22900
+ http_protocol_ipv6="httpProtocolIpv6",
22901
+ http_put_response_hop_limit=123,
22902
+ http_tokens="httpTokens",
22903
+ instance_metadata_tags="instanceMetadataTags"
22904
+ )
22905
+ '''
22906
+ if __debug__:
22907
+ type_hints = typing.get_type_hints(_typecheckingstub__dd62c780267fd82323185183a14d7164b77b99b5493e4e4f98f5cd11a52c16a3)
22908
+ check_type(argname="argument http_endpoint", value=http_endpoint, expected_type=type_hints["http_endpoint"])
22909
+ check_type(argname="argument http_protocol_ipv6", value=http_protocol_ipv6, expected_type=type_hints["http_protocol_ipv6"])
22910
+ check_type(argname="argument http_put_response_hop_limit", value=http_put_response_hop_limit, expected_type=type_hints["http_put_response_hop_limit"])
22911
+ check_type(argname="argument http_tokens", value=http_tokens, expected_type=type_hints["http_tokens"])
22912
+ check_type(argname="argument instance_metadata_tags", value=instance_metadata_tags, expected_type=type_hints["instance_metadata_tags"])
22913
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
22914
+ if http_endpoint is not None:
22915
+ self._values["http_endpoint"] = http_endpoint
22916
+ if http_protocol_ipv6 is not None:
22917
+ self._values["http_protocol_ipv6"] = http_protocol_ipv6
22918
+ if http_put_response_hop_limit is not None:
22919
+ self._values["http_put_response_hop_limit"] = http_put_response_hop_limit
22920
+ if http_tokens is not None:
22921
+ self._values["http_tokens"] = http_tokens
22922
+ if instance_metadata_tags is not None:
22923
+ self._values["instance_metadata_tags"] = instance_metadata_tags
22924
+
22925
+ @builtins.property
22926
+ def http_endpoint(self) -> typing.Optional[builtins.str]:
22927
+ '''Enables or disables the HTTP metadata endpoint on your instances.
22928
+
22929
+ If you specify a value of disabled, you cannot access your instance metadata.
22930
+
22931
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-metadataoptions.html#cfn-ec2-instance-metadataoptions-httpendpoint
22932
+ '''
22933
+ result = self._values.get("http_endpoint")
22934
+ return typing.cast(typing.Optional[builtins.str], result)
22935
+
22936
+ @builtins.property
22937
+ def http_protocol_ipv6(self) -> typing.Optional[builtins.str]:
22938
+ '''Enables or disables the IPv6 endpoint for the instance metadata service.
22939
+
22940
+ To use this option, the instance must be a Nitro-based instance launched in a subnet that supports IPv6.
22941
+
22942
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-metadataoptions.html#cfn-ec2-instance-metadataoptions-httpprotocolipv6
22943
+ '''
22944
+ result = self._values.get("http_protocol_ipv6")
22945
+ return typing.cast(typing.Optional[builtins.str], result)
22946
+
22947
+ @builtins.property
22948
+ def http_put_response_hop_limit(self) -> typing.Optional[jsii.Number]:
22949
+ '''The number of network hops that the metadata token can travel.
22950
+
22951
+ Maximum is 64.
22952
+
22953
+ :default: - 1
22954
+
22955
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-metadataoptions.html#cfn-ec2-instance-metadataoptions-httpputresponsehoplimit
22956
+ '''
22957
+ result = self._values.get("http_put_response_hop_limit")
22958
+ return typing.cast(typing.Optional[jsii.Number], result)
22959
+
22960
+ @builtins.property
22961
+ def http_tokens(self) -> typing.Optional[builtins.str]:
22962
+ '''Indicates whether IMDSv2 is required.
22963
+
22964
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-metadataoptions.html#cfn-ec2-instance-metadataoptions-httptokens
22965
+ '''
22966
+ result = self._values.get("http_tokens")
22967
+ return typing.cast(typing.Optional[builtins.str], result)
22968
+
22969
+ @builtins.property
22970
+ def instance_metadata_tags(self) -> typing.Optional[builtins.str]:
22971
+ '''Indicates whether tags from the instance are propagated to the EBS volumes.
22972
+
22973
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance-metadataoptions.html#cfn-ec2-instance-metadataoptions-instancemetadatatags
22974
+ '''
22975
+ result = self._values.get("instance_metadata_tags")
22976
+ return typing.cast(typing.Optional[builtins.str], result)
22977
+
22978
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
22979
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
22980
+
22981
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
22982
+ return not (rhs == self)
22983
+
22984
+ def __repr__(self) -> str:
22985
+ return "MetadataOptionsProperty(%s)" % ", ".join(
22986
+ k + "=" + repr(v) for k, v in self._values.items()
22987
+ )
22988
+
22834
22989
  @jsii.data_type(
22835
22990
  jsii_type="aws-cdk-lib.aws_ec2.CfnInstance.NetworkInterfaceProperty",
22836
22991
  jsii_struct_bases=[],
@@ -23958,6 +24113,7 @@ class CfnInstanceConnectEndpointProps:
23958
24113
  "key_name": "keyName",
23959
24114
  "launch_template": "launchTemplate",
23960
24115
  "license_specifications": "licenseSpecifications",
24116
+ "metadata_options": "metadataOptions",
23961
24117
  "monitoring": "monitoring",
23962
24118
  "network_interfaces": "networkInterfaces",
23963
24119
  "placement_group_name": "placementGroupName",
@@ -24004,6 +24160,7 @@ class CfnInstanceProps:
24004
24160
  key_name: typing.Optional[builtins.str] = None,
24005
24161
  launch_template: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.LaunchTemplateSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
24006
24162
  license_specifications: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.LicenseSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
24163
+ metadata_options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.MetadataOptionsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
24007
24164
  monitoring: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
24008
24165
  network_interfaces: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.NetworkInterfaceProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
24009
24166
  placement_group_name: typing.Optional[builtins.str] = None,
@@ -24047,6 +24204,7 @@ class CfnInstanceProps:
24047
24204
  :param key_name: The name of the key pair. You can create a key pair using `CreateKeyPair <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html>`_ or `ImportKeyPair <https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html>`_ . .. epigraph:: If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in.
24048
24205
  :param launch_template: The launch template. Any additional parameters that you specify for the new instance overwrite the corresponding parameters included in the launch template.
24049
24206
  :param license_specifications: The license configurations.
24207
+ :param metadata_options:
24050
24208
  :param monitoring: Specifies whether detailed monitoring is enabled for the instance. Specify ``true`` to enable detailed monitoring. Otherwise, basic monitoring is enabled. For more information about detailed monitoring, see `Enable or turn off detailed monitoring for your instances <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html>`_ in the *Amazon EC2 User Guide* .
24051
24209
  :param network_interfaces: The network interfaces to associate with the instance. .. epigraph:: If you use this property to point to a network interface, you must terminate the original interface before attaching a new one to allow the update of the instance to succeed. If this resource has a public IP address and is also in a VPC that is defined in the same template, you must use the `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ to declare a dependency on the VPC-gateway attachment.
24052
24210
  :param placement_group_name: The name of an existing placement group that you want to launch the instance into (cluster | partition | spread).
@@ -24139,6 +24297,13 @@ class CfnInstanceProps:
24139
24297
  license_specifications=[ec2.CfnInstance.LicenseSpecificationProperty(
24140
24298
  license_configuration_arn="licenseConfigurationArn"
24141
24299
  )],
24300
+ metadata_options=ec2.CfnInstance.MetadataOptionsProperty(
24301
+ http_endpoint="httpEndpoint",
24302
+ http_protocol_ipv6="httpProtocolIpv6",
24303
+ http_put_response_hop_limit=123,
24304
+ http_tokens="httpTokens",
24305
+ instance_metadata_tags="instanceMetadataTags"
24306
+ ),
24142
24307
  monitoring=False,
24143
24308
  network_interfaces=[ec2.CfnInstance.NetworkInterfaceProperty(
24144
24309
  device_index="deviceIndex",
@@ -24228,6 +24393,7 @@ class CfnInstanceProps:
24228
24393
  check_type(argname="argument key_name", value=key_name, expected_type=type_hints["key_name"])
24229
24394
  check_type(argname="argument launch_template", value=launch_template, expected_type=type_hints["launch_template"])
24230
24395
  check_type(argname="argument license_specifications", value=license_specifications, expected_type=type_hints["license_specifications"])
24396
+ check_type(argname="argument metadata_options", value=metadata_options, expected_type=type_hints["metadata_options"])
24231
24397
  check_type(argname="argument monitoring", value=monitoring, expected_type=type_hints["monitoring"])
24232
24398
  check_type(argname="argument network_interfaces", value=network_interfaces, expected_type=type_hints["network_interfaces"])
24233
24399
  check_type(argname="argument placement_group_name", value=placement_group_name, expected_type=type_hints["placement_group_name"])
@@ -24293,6 +24459,8 @@ class CfnInstanceProps:
24293
24459
  self._values["launch_template"] = launch_template
24294
24460
  if license_specifications is not None:
24295
24461
  self._values["license_specifications"] = license_specifications
24462
+ if metadata_options is not None:
24463
+ self._values["metadata_options"] = metadata_options
24296
24464
  if monitoring is not None:
24297
24465
  self._values["monitoring"] = monitoring
24298
24466
  if network_interfaces is not None:
@@ -24635,6 +24803,16 @@ class CfnInstanceProps:
24635
24803
  result = self._values.get("license_specifications")
24636
24804
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnInstance.LicenseSpecificationProperty]]]], result)
24637
24805
 
24806
+ @builtins.property
24807
+ def metadata_options(
24808
+ self,
24809
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnInstance.MetadataOptionsProperty]]:
24810
+ '''
24811
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-instance.html#cfn-ec2-instance-metadataoptions
24812
+ '''
24813
+ result = self._values.get("metadata_options")
24814
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnInstance.MetadataOptionsProperty]], result)
24815
+
24638
24816
  @builtins.property
24639
24817
  def monitoring(
24640
24818
  self,
@@ -80001,6 +80179,10 @@ class InstanceClass(enum.Enum):
80001
80179
  '''Storage optimized instances powered by 5th generation Intel Xeon Scalable processors, 7th generation.'''
80002
80180
  I7IE = "I7IE"
80003
80181
  '''Storage optimized instances powered by 5th generation Intel Xeon Scalable processors, 7th generation.'''
80182
+ IO7_INTEL = "IO7_INTEL"
80183
+ '''I/O-optimized instances with local NVME drive powered by 5th generation Intel Xeon Scalable processors, 7th generation.'''
80184
+ I7I = "I7I"
80185
+ '''I/O-optimized instances with local NVME drive powered by 5th generation Intel Xeon Scalable processors, 7th generation.'''
80004
80186
  STORAGE8_GRAVITON = "STORAGE8_GRAVITON"
80005
80187
  '''Storage optimized instances powered by Graviton4 processor, 8th generation.'''
80006
80188
  I8G = "I8G"
@@ -81996,6 +82178,11 @@ class InterfaceVpcEndpointAwsService(
81996
82178
  def DYNAMODB_FIPS(cls) -> "InterfaceVpcEndpointAwsService":
81997
82179
  return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "DYNAMODB_FIPS"))
81998
82180
 
82181
+ @jsii.python.classproperty
82182
+ @jsii.member(jsii_name="DYNAMODB_STREAMS")
82183
+ def DYNAMODB_STREAMS(cls) -> "InterfaceVpcEndpointAwsService":
82184
+ return typing.cast("InterfaceVpcEndpointAwsService", jsii.sget(cls, "DYNAMODB_STREAMS"))
82185
+
81999
82186
  @jsii.python.classproperty
82000
82187
  @jsii.member(jsii_name="EBS_DIRECT")
82001
82188
  def EBS_DIRECT(cls) -> "InterfaceVpcEndpointAwsService":
@@ -105905,6 +106092,7 @@ def _typecheckingstub__c4a16bcac45df35102107cab13dbaea279aac225408d8ffe54a341484
105905
106092
  key_name: typing.Optional[builtins.str] = None,
105906
106093
  launch_template: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.LaunchTemplateSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
105907
106094
  license_specifications: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.LicenseSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
106095
+ metadata_options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.MetadataOptionsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
105908
106096
  monitoring: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
105909
106097
  network_interfaces: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.NetworkInterfaceProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
105910
106098
  placement_group_name: typing.Optional[builtins.str] = None,
@@ -106081,6 +106269,12 @@ def _typecheckingstub__cc2686e45ed4c6d1878a8ae7e28861e3db1d532776cefb8db34c5911f
106081
106269
  """Type checking stubs"""
106082
106270
  pass
106083
106271
 
106272
+ def _typecheckingstub__829ee1a8f150cbfae9cd18b9c33d41b2e8f61b6ded5a58aa4c446baedaa0b5fc(
106273
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnInstance.MetadataOptionsProperty]],
106274
+ ) -> None:
106275
+ """Type checking stubs"""
106276
+ pass
106277
+
106084
106278
  def _typecheckingstub__7a0da44bb62f454316060622acd522d46ed58c088bae4a9f6249bcf6deca5588(
106085
106279
  value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
106086
106280
  ) -> None:
@@ -106290,6 +106484,17 @@ def _typecheckingstub__d052358cb33e29932cee94076b50021e871c21fc3250e7670a7f77437
106290
106484
  """Type checking stubs"""
106291
106485
  pass
106292
106486
 
106487
+ def _typecheckingstub__dd62c780267fd82323185183a14d7164b77b99b5493e4e4f98f5cd11a52c16a3(
106488
+ *,
106489
+ http_endpoint: typing.Optional[builtins.str] = None,
106490
+ http_protocol_ipv6: typing.Optional[builtins.str] = None,
106491
+ http_put_response_hop_limit: typing.Optional[jsii.Number] = None,
106492
+ http_tokens: typing.Optional[builtins.str] = None,
106493
+ instance_metadata_tags: typing.Optional[builtins.str] = None,
106494
+ ) -> None:
106495
+ """Type checking stubs"""
106496
+ pass
106497
+
106293
106498
  def _typecheckingstub__34d8c3e0456d2764eb1c3d4b68e63d75d3e51811fe46a5cc1a3cd7a841079228(
106294
106499
  *,
106295
106500
  device_index: builtins.str,
@@ -106443,6 +106648,7 @@ def _typecheckingstub__605ba8f22e222289aa0ed61b03690aaf9a4e8eabb86a9ba2b63d10f2b
106443
106648
  key_name: typing.Optional[builtins.str] = None,
106444
106649
  launch_template: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.LaunchTemplateSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
106445
106650
  license_specifications: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.LicenseSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
106651
+ metadata_options: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.MetadataOptionsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
106446
106652
  monitoring: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
106447
106653
  network_interfaces: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnInstance.NetworkInterfaceProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
106448
106654
  placement_group_name: typing.Optional[builtins.str] = None,
@@ -10064,7 +10064,7 @@ class CfnService(
10064
10064
  - For tasks that are on AWS Fargate , because you don't have access to the underlying infrastructure your tasks are hosted on, any additional software needed must be installed outside of the task. For example, the Fluentd output aggregators or a remote host running Logstash to send Gelf logs to.
10065
10065
 
10066
10066
  :param log_driver: The log driver to use for the container. For tasks on AWS Fargate , the supported log drivers are ``awslogs`` , ``splunk`` , and ``awsfirelens`` . For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs`` , ``fluentd`` , ``gelf`` , ``json-file`` , ``journald`` , ``syslog`` , ``splunk`` , and ``awsfirelens`` . For more information about using the ``awslogs`` log driver, see `Send Amazon ECS logs to CloudWatch <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html>`_ in the *Amazon Elastic Container Service Developer Guide* . For more information about using the ``awsfirelens`` log driver, see `Send Amazon ECS logs to an AWS service or AWS Partner <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html>`_ . .. epigraph:: If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's `available on GitHub <https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent>`_ and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software.
10067
- :param options: The configuration options to send to the log driver. The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following: - **awslogs-create-group** - Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to ``false`` . .. epigraph:: Your IAM policy must include the ``logs:CreateLogGroup`` permission before you attempt to use ``awslogs-create-group`` . - **awslogs-region** - Required: Yes Specify the AWS Region that the ``awslogs`` log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. - **awslogs-group** - Required: Yes Make sure to specify a log group that the ``awslogs`` log driver sends its log streams to. - **awslogs-stream-prefix** - Required: Yes, when using Fargate.Optional when using EC2. Use the ``awslogs-stream-prefix`` option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format ``prefix-name/container-name/ecs-task-id`` . If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. - **awslogs-datetime-format** - Required: No This option defines a multiline start pattern in Python ``strftime`` format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see `awslogs-datetime-format <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/awslogs/#awslogs-datetime-format>`_ . You cannot configure both the ``awslogs-datetime-format`` and ``awslogs-multiline-pattern`` options. .. epigraph:: Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. - **awslogs-multiline-pattern** - Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see `awslogs-multiline-pattern <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/awslogs/#awslogs-multiline-pattern>`_ . This option is ignored if ``awslogs-datetime-format`` is also configured. You cannot configure both the ``awslogs-datetime-format`` and ``awslogs-multiline-pattern`` options. .. epigraph:: Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. The following options apply to all supported log drivers. - **mode** - Required: No Valid values: ``non-blocking`` | ``blocking`` This option defines the delivery mode of log messages from the container to the log driver specified using ``logDriver`` . The delivery mode you choose affects application availability when the flow of logs from container is interrupted. If you use the ``blocking`` mode and the flow of logs is interrupted, calls from container code to write to the ``stdout`` and ``stderr`` streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the ``non-blocking`` mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the ``max-buffer-size`` option. This prevents the application from becoming unresponsive when logs cannot be sent. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see `Preventing log loss with non-blocking mode in the ``awslogs`` container log driver <https://docs.aws.amazon.com/containers/preventing-log-loss-with-non-blocking-mode-in-the-awslogs-container-log-driver/>`_ . You can set a default ``mode`` for all containers in a specific AWS Region by using the ``defaultLogDriverMode`` account setting. If you don't specify the ``mode`` option or configure the account setting, Amazon ECS will default to the ``blocking`` mode. For more information about the account setting, see `Default log driver mode <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#default-log-driver-mode>`_ in the *Amazon Elastic Container Service Developer Guide* . - **max-buffer-size** - Required: No Default value: ``1m`` When ``non-blocking`` mode is used, the ``max-buffer-size`` log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url`` . When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker. Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream`` . When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream`` . When you export logs to Amazon OpenSearch Service, you can specify options like ``Name`` , ``Host`` (OpenSearch Service endpoint without protocol), ``Port`` , ``Index`` , ``Type`` , ``Aws_auth`` , ``Aws_region`` , ``Suppress_Type_Name`` , and ``tls`` . For more information, see `Under the hood: FireLens for Amazon ECS Tasks <https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/>`_ . When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region`` , ``total_file_size`` , ``upload_timeout`` , and ``use_put_object`` as options. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``
10067
+ :param options: The configuration options to send to the log driver. The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following: - **awslogs-create-group** - Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to ``false`` . .. epigraph:: Your IAM policy must include the ``logs:CreateLogGroup`` permission before you attempt to use ``awslogs-create-group`` . - **awslogs-region** - Required: Yes Specify the AWS Region that the ``awslogs`` log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. - **awslogs-group** - Required: Yes Make sure to specify a log group that the ``awslogs`` log driver sends its log streams to. - **awslogs-stream-prefix** - Required: Yes, when using Fargate.Optional when using EC2. Use the ``awslogs-stream-prefix`` option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format ``prefix-name/container-name/ecs-task-id`` . If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. - **awslogs-datetime-format** - Required: No This option defines a multiline start pattern in Python ``strftime`` format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see `awslogs-datetime-format <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/awslogs/#awslogs-datetime-format>`_ . You cannot configure both the ``awslogs-datetime-format`` and ``awslogs-multiline-pattern`` options. .. epigraph:: Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. - **awslogs-multiline-pattern** - Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see `awslogs-multiline-pattern <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/awslogs/#awslogs-multiline-pattern>`_ . This option is ignored if ``awslogs-datetime-format`` is also configured. You cannot configure both the ``awslogs-datetime-format`` and ``awslogs-multiline-pattern`` options. .. epigraph:: Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. The following options apply to all supported log drivers. - **mode** - Required: No Valid values: ``non-blocking`` | ``blocking`` This option defines the delivery mode of log messages from the container to the log driver specified using ``logDriver`` . The delivery mode you choose affects application availability when the flow of logs from container is interrupted. If you use the ``blocking`` mode and the flow of logs is interrupted, calls from container code to write to the ``stdout`` and ``stderr`` streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the ``non-blocking`` mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the ``max-buffer-size`` option. This prevents the application from becoming unresponsive when logs cannot be sent. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see `Preventing log loss with non-blocking mode in the ``awslogs`` container log driver <https://docs.aws.amazon.com/containers/preventing-log-loss-with-non-blocking-mode-in-the-awslogs-container-log-driver/>`_ . You can set a default ``mode`` for all containers in a specific AWS Region by using the ``defaultLogDriverMode`` account setting. If you don't specify the ``mode`` option or configure the account setting, Amazon ECS will default to the ``blocking`` mode. For more information about the account setting, see `Default log driver mode <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#default-log-driver-mode>`_ in the *Amazon Elastic Container Service Developer Guide* . .. epigraph:: On June 25, 2025, Amazon ECS is changing the default log driver mode from ``blocking`` to ``non-blocking`` to prioritize task availability over logging. To continue using the ``blocking`` mode after this change, do one of the following: - Set the ``mode`` option in your container definition's ``logConfiguration`` as ``blocking`` . - Set the ``defaultLogDriverMode`` account setting to ``blocking`` . - **max-buffer-size** - Required: No Default value: ``1m`` When ``non-blocking`` mode is used, the ``max-buffer-size`` log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url`` . When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker. Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream`` . When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream`` . When you export logs to Amazon OpenSearch Service, you can specify options like ``Name`` , ``Host`` (OpenSearch Service endpoint without protocol), ``Port`` , ``Index`` , ``Type`` , ``Aws_auth`` , ``Aws_region`` , ``Suppress_Type_Name`` , and ``tls`` . For more information, see `Under the hood: FireLens for Amazon ECS Tasks <https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/>`_ . When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region`` , ``total_file_size`` , ``upload_timeout`` , and ``use_put_object`` as options. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``
10068
10068
  :param secret_options: The secrets to pass to the log configuration. For more information, see `Specifying sensitive data <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
10069
10069
 
10070
10070
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-logconfiguration.html
@@ -10192,6 +10192,12 @@ class CfnService(
10192
10192
  If you use the ``non-blocking`` mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the ``max-buffer-size`` option. This prevents the application from becoming unresponsive when logs cannot be sent. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see `Preventing log loss with non-blocking mode in the ``awslogs`` container log driver <https://docs.aws.amazon.com/containers/preventing-log-loss-with-non-blocking-mode-in-the-awslogs-container-log-driver/>`_ .
10193
10193
 
10194
10194
  You can set a default ``mode`` for all containers in a specific AWS Region by using the ``defaultLogDriverMode`` account setting. If you don't specify the ``mode`` option or configure the account setting, Amazon ECS will default to the ``blocking`` mode. For more information about the account setting, see `Default log driver mode <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#default-log-driver-mode>`_ in the *Amazon Elastic Container Service Developer Guide* .
10195
+ .. epigraph::
10196
+
10197
+ On June 25, 2025, Amazon ECS is changing the default log driver mode from ``blocking`` to ``non-blocking`` to prioritize task availability over logging. To continue using the ``blocking`` mode after this change, do one of the following:
10198
+
10199
+ - Set the ``mode`` option in your container definition's ``logConfiguration`` as ``blocking`` .
10200
+ - Set the ``defaultLogDriverMode`` account setting to ``blocking`` .
10195
10201
 
10196
10202
  - **max-buffer-size** - Required: No
10197
10203
 
@@ -15998,7 +16004,7 @@ class CfnTaskDefinition(
15998
16004
  '''The ``LogConfiguration`` property specifies log configuration options to send to a custom log driver for the container.
15999
16005
 
16000
16006
  :param log_driver: The log driver to use for the container. For tasks on AWS Fargate , the supported log drivers are ``awslogs`` , ``splunk`` , and ``awsfirelens`` . For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs`` , ``fluentd`` , ``gelf`` , ``json-file`` , ``journald`` , ``syslog`` , ``splunk`` , and ``awsfirelens`` . For more information about using the ``awslogs`` log driver, see `Send Amazon ECS logs to CloudWatch <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html>`_ in the *Amazon Elastic Container Service Developer Guide* . For more information about using the ``awsfirelens`` log driver, see `Send Amazon ECS logs to an AWS service or AWS Partner <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html>`_ . .. epigraph:: If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's `available on GitHub <https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs-agent>`_ and customize it to work with that driver. We encourage you to submit pull requests for changes that you would like to have included. However, we don't currently provide support for running modified copies of this software.
16001
- :param options: The configuration options to send to the log driver. The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following: - **awslogs-create-group** - Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to ``false`` . .. epigraph:: Your IAM policy must include the ``logs:CreateLogGroup`` permission before you attempt to use ``awslogs-create-group`` . - **awslogs-region** - Required: Yes Specify the AWS Region that the ``awslogs`` log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. - **awslogs-group** - Required: Yes Make sure to specify a log group that the ``awslogs`` log driver sends its log streams to. - **awslogs-stream-prefix** - Required: Yes, when using Fargate.Optional when using EC2. Use the ``awslogs-stream-prefix`` option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format ``prefix-name/container-name/ecs-task-id`` . If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. - **awslogs-datetime-format** - Required: No This option defines a multiline start pattern in Python ``strftime`` format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see `awslogs-datetime-format <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/awslogs/#awslogs-datetime-format>`_ . You cannot configure both the ``awslogs-datetime-format`` and ``awslogs-multiline-pattern`` options. .. epigraph:: Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. - **awslogs-multiline-pattern** - Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see `awslogs-multiline-pattern <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/awslogs/#awslogs-multiline-pattern>`_ . This option is ignored if ``awslogs-datetime-format`` is also configured. You cannot configure both the ``awslogs-datetime-format`` and ``awslogs-multiline-pattern`` options. .. epigraph:: Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. The following options apply to all supported log drivers. - **mode** - Required: No Valid values: ``non-blocking`` | ``blocking`` This option defines the delivery mode of log messages from the container to the log driver specified using ``logDriver`` . The delivery mode you choose affects application availability when the flow of logs from container is interrupted. If you use the ``blocking`` mode and the flow of logs is interrupted, calls from container code to write to the ``stdout`` and ``stderr`` streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the ``non-blocking`` mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the ``max-buffer-size`` option. This prevents the application from becoming unresponsive when logs cannot be sent. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see `Preventing log loss with non-blocking mode in the ``awslogs`` container log driver <https://docs.aws.amazon.com/containers/preventing-log-loss-with-non-blocking-mode-in-the-awslogs-container-log-driver/>`_ . You can set a default ``mode`` for all containers in a specific AWS Region by using the ``defaultLogDriverMode`` account setting. If you don't specify the ``mode`` option or configure the account setting, Amazon ECS will default to the ``blocking`` mode. For more information about the account setting, see `Default log driver mode <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#default-log-driver-mode>`_ in the *Amazon Elastic Container Service Developer Guide* . - **max-buffer-size** - Required: No Default value: ``1m`` When ``non-blocking`` mode is used, the ``max-buffer-size`` log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url`` . When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker. Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream`` . When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream`` . When you export logs to Amazon OpenSearch Service, you can specify options like ``Name`` , ``Host`` (OpenSearch Service endpoint without protocol), ``Port`` , ``Index`` , ``Type`` , ``Aws_auth`` , ``Aws_region`` , ``Suppress_Type_Name`` , and ``tls`` . For more information, see `Under the hood: FireLens for Amazon ECS Tasks <https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/>`_ . When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region`` , ``total_file_size`` , ``upload_timeout`` , and ``use_put_object`` as options. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``
16007
+ :param options: The configuration options to send to the log driver. The options you can specify depend on the log driver. Some of the options you can specify when you use the ``awslogs`` log driver to route logs to Amazon CloudWatch include the following: - **awslogs-create-group** - Required: No Specify whether you want the log group to be created automatically. If this option isn't specified, it defaults to ``false`` . .. epigraph:: Your IAM policy must include the ``logs:CreateLogGroup`` permission before you attempt to use ``awslogs-create-group`` . - **awslogs-region** - Required: Yes Specify the AWS Region that the ``awslogs`` log driver is to send your Docker logs to. You can choose to send all of your logs from clusters in different Regions to a single region in CloudWatch Logs. This is so that they're all visible in one location. Otherwise, you can separate them by Region for more granularity. Make sure that the specified log group exists in the Region that you specify with this option. - **awslogs-group** - Required: Yes Make sure to specify a log group that the ``awslogs`` log driver sends its log streams to. - **awslogs-stream-prefix** - Required: Yes, when using Fargate.Optional when using EC2. Use the ``awslogs-stream-prefix`` option to associate a log stream with the specified prefix, the container name, and the ID of the Amazon ECS task that the container belongs to. If you specify a prefix with this option, then the log stream takes the format ``prefix-name/container-name/ecs-task-id`` . If you don't specify a prefix with this option, then the log stream is named after the container ID that's assigned by the Docker daemon on the container instance. Because it's difficult to trace logs back to the container that sent them with just the Docker container ID (which is only available on the container instance), we recommend that you specify a prefix with this option. For Amazon ECS services, you can use the service name as the prefix. Doing so, you can trace log streams to the service that the container belongs to, the name of the container that sent them, and the ID of the task that the container belongs to. You must specify a stream-prefix for your logs to have your logs appear in the Log pane when using the Amazon ECS console. - **awslogs-datetime-format** - Required: No This option defines a multiline start pattern in Python ``strftime`` format. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. One example of a use case for using this format is for parsing output such as a stack dump, which might otherwise be logged in multiple entries. The correct pattern allows it to be captured in a single entry. For more information, see `awslogs-datetime-format <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/awslogs/#awslogs-datetime-format>`_ . You cannot configure both the ``awslogs-datetime-format`` and ``awslogs-multiline-pattern`` options. .. epigraph:: Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. - **awslogs-multiline-pattern** - Required: No This option defines a multiline start pattern that uses a regular expression. A log message consists of a line that matches the pattern and any following lines that don’t match the pattern. The matched line is the delimiter between log messages. For more information, see `awslogs-multiline-pattern <https://docs.aws.amazon.com/https://docs.docker.com/config/containers/logging/awslogs/#awslogs-multiline-pattern>`_ . This option is ignored if ``awslogs-datetime-format`` is also configured. You cannot configure both the ``awslogs-datetime-format`` and ``awslogs-multiline-pattern`` options. .. epigraph:: Multiline logging performs regular expression parsing and matching of all log messages. This might have a negative impact on logging performance. The following options apply to all supported log drivers. - **mode** - Required: No Valid values: ``non-blocking`` | ``blocking`` This option defines the delivery mode of log messages from the container to the log driver specified using ``logDriver`` . The delivery mode you choose affects application availability when the flow of logs from container is interrupted. If you use the ``blocking`` mode and the flow of logs is interrupted, calls from container code to write to the ``stdout`` and ``stderr`` streams will block. The logging thread of the application will block as a result. This may cause the application to become unresponsive and lead to container healthcheck failure. If you use the ``non-blocking`` mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the ``max-buffer-size`` option. This prevents the application from becoming unresponsive when logs cannot be sent. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see `Preventing log loss with non-blocking mode in the ``awslogs`` container log driver <https://docs.aws.amazon.com/containers/preventing-log-loss-with-non-blocking-mode-in-the-awslogs-container-log-driver/>`_ . You can set a default ``mode`` for all containers in a specific AWS Region by using the ``defaultLogDriverMode`` account setting. If you don't specify the ``mode`` option or configure the account setting, Amazon ECS will default to the ``blocking`` mode. For more information about the account setting, see `Default log driver mode <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#default-log-driver-mode>`_ in the *Amazon Elastic Container Service Developer Guide* . .. epigraph:: On June 25, 2025, Amazon ECS is changing the default log driver mode from ``blocking`` to ``non-blocking`` to prioritize task availability over logging. To continue using the ``blocking`` mode after this change, do one of the following: - Set the ``mode`` option in your container definition's ``logConfiguration`` as ``blocking`` . - Set the ``defaultLogDriverMode`` account setting to ``blocking`` . - **max-buffer-size** - Required: No Default value: ``1m`` When ``non-blocking`` mode is used, the ``max-buffer-size`` log option controls the size of the buffer that's used for intermediate message storage. Make sure to specify an adequate buffer size based on your application. When the buffer fills up, further logs cannot be stored. Logs that cannot be stored are lost. To route logs using the ``splunk`` log router, you need to specify a ``splunk-token`` and a ``splunk-url`` . When you use the ``awsfirelens`` log router to route logs to an AWS Service or AWS Partner Network destination for log storage and analytics, you can set the ``log-driver-buffer-limit`` option to limit the number of events that are buffered in memory, before being sent to the log router container. It can help to resolve potential log loss issue because high throughput might result in memory running out for the buffer inside of Docker. Other options you can specify when using ``awsfirelens`` to route logs depend on the destination. When you export logs to Amazon Data Firehose, you can specify the AWS Region with ``region`` and a name for the log stream with ``delivery_stream`` . When you export logs to Amazon Kinesis Data Streams, you can specify an AWS Region with ``region`` and a data stream name with ``stream`` . When you export logs to Amazon OpenSearch Service, you can specify options like ``Name`` , ``Host`` (OpenSearch Service endpoint without protocol), ``Port`` , ``Index`` , ``Type`` , ``Aws_auth`` , ``Aws_region`` , ``Suppress_Type_Name`` , and ``tls`` . For more information, see `Under the hood: FireLens for Amazon ECS Tasks <https://docs.aws.amazon.com/containers/under-the-hood-firelens-for-amazon-ecs-tasks/>`_ . When you export logs to Amazon S3, you can specify the bucket using the ``bucket`` option. You can also specify ``region`` , ``total_file_size`` , ``upload_timeout`` , and ``use_put_object`` as options. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'``
16002
16008
  :param secret_options: The secrets to pass to the log configuration. For more information, see `Specifying sensitive data <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html>`_ in the *Amazon Elastic Container Service Developer Guide* .
16003
16009
 
16004
16010
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-logconfiguration.html
@@ -16129,6 +16135,12 @@ class CfnTaskDefinition(
16129
16135
  If you use the ``non-blocking`` mode, the container's logs are instead stored in an in-memory intermediate buffer configured with the ``max-buffer-size`` option. This prevents the application from becoming unresponsive when logs cannot be sent. We recommend using this mode if you want to ensure service availability and are okay with some log loss. For more information, see `Preventing log loss with non-blocking mode in the ``awslogs`` container log driver <https://docs.aws.amazon.com/containers/preventing-log-loss-with-non-blocking-mode-in-the-awslogs-container-log-driver/>`_ .
16130
16136
 
16131
16137
  You can set a default ``mode`` for all containers in a specific AWS Region by using the ``defaultLogDriverMode`` account setting. If you don't specify the ``mode`` option or configure the account setting, Amazon ECS will default to the ``blocking`` mode. For more information about the account setting, see `Default log driver mode <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#default-log-driver-mode>`_ in the *Amazon Elastic Container Service Developer Guide* .
16138
+ .. epigraph::
16139
+
16140
+ On June 25, 2025, Amazon ECS is changing the default log driver mode from ``blocking`` to ``non-blocking`` to prioritize task availability over logging. To continue using the ``blocking`` mode after this change, do one of the following:
16141
+
16142
+ - Set the ``mode`` option in your container definition's ``logConfiguration`` as ``blocking`` .
16143
+ - Set the ``defaultLogDriverMode`` account setting to ``blocking`` .
16132
16144
 
16133
16145
  - **max-buffer-size** - Required: No
16134
16146