aws-cdk-lib 2.154.1__py3-none-any.whl → 2.155.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.

@@ -1862,7 +1862,9 @@ load_balancer_address = cluster.get_service_load_balancer_address("my-service")
1862
1862
  eks.Addon(self, "Addon",
1863
1863
  cluster=cluster,
1864
1864
  addon_name="aws-guardduty-agent",
1865
- addon_version="v1.6.1"
1865
+ addon_version="v1.6.1",
1866
+ # whether to preserve the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
1867
+ preserve_on_delete=False
1866
1868
  )
1867
1869
  ```
1868
1870
 
@@ -2656,6 +2658,7 @@ class AddonAttributes:
2656
2658
  "addon_name": "addonName",
2657
2659
  "cluster": "cluster",
2658
2660
  "addon_version": "addonVersion",
2661
+ "preserve_on_delete": "preserveOnDelete",
2659
2662
  },
2660
2663
  )
2661
2664
  class AddonProps:
@@ -2665,12 +2668,14 @@ class AddonProps:
2665
2668
  addon_name: builtins.str,
2666
2669
  cluster: "ICluster",
2667
2670
  addon_version: typing.Optional[builtins.str] = None,
2671
+ preserve_on_delete: typing.Optional[builtins.bool] = None,
2668
2672
  ) -> None:
2669
2673
  '''Properties for creating an Amazon EKS Add-On.
2670
2674
 
2671
2675
  :param addon_name: Name of the Add-On.
2672
2676
  :param cluster: The EKS cluster the Add-On is associated with.
2673
2677
  :param addon_version: Version of the Add-On. You can check all available versions with describe-addon-versons. For example, this lists all available versions for the ``eks-pod-identity-agent`` addon: $ aws eks describe-addon-versions --addon-name eks-pod-identity-agent --query 'addons[*].addonVersions[*].addonVersion' Default: the latest version.
2678
+ :param preserve_on_delete: Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on. If an IAM account is associated with the add-on, it isn't removed. Default: true
2674
2679
 
2675
2680
  :exampleMetadata: infused
2676
2681
 
@@ -2682,7 +2687,9 @@ class AddonProps:
2682
2687
  eks.Addon(self, "Addon",
2683
2688
  cluster=cluster,
2684
2689
  addon_name="aws-guardduty-agent",
2685
- addon_version="v1.6.1"
2690
+ addon_version="v1.6.1",
2691
+ # whether to preserve the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
2692
+ preserve_on_delete=False
2686
2693
  )
2687
2694
  '''
2688
2695
  if __debug__:
@@ -2690,12 +2697,15 @@ class AddonProps:
2690
2697
  check_type(argname="argument addon_name", value=addon_name, expected_type=type_hints["addon_name"])
2691
2698
  check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
2692
2699
  check_type(argname="argument addon_version", value=addon_version, expected_type=type_hints["addon_version"])
2700
+ check_type(argname="argument preserve_on_delete", value=preserve_on_delete, expected_type=type_hints["preserve_on_delete"])
2693
2701
  self._values: typing.Dict[builtins.str, typing.Any] = {
2694
2702
  "addon_name": addon_name,
2695
2703
  "cluster": cluster,
2696
2704
  }
2697
2705
  if addon_version is not None:
2698
2706
  self._values["addon_version"] = addon_version
2707
+ if preserve_on_delete is not None:
2708
+ self._values["preserve_on_delete"] = preserve_on_delete
2699
2709
 
2700
2710
  @builtins.property
2701
2711
  def addon_name(self) -> builtins.str:
@@ -2725,6 +2735,17 @@ class AddonProps:
2725
2735
  result = self._values.get("addon_version")
2726
2736
  return typing.cast(typing.Optional[builtins.str], result)
2727
2737
 
2738
+ @builtins.property
2739
+ def preserve_on_delete(self) -> typing.Optional[builtins.bool]:
2740
+ '''Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
2741
+
2742
+ If an IAM account is associated with the add-on, it isn't removed.
2743
+
2744
+ :default: true
2745
+ '''
2746
+ result = self._values.get("preserve_on_delete")
2747
+ return typing.cast(typing.Optional[builtins.bool], result)
2748
+
2728
2749
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
2729
2750
  return isinstance(rhs, self.__class__) and rhs._values == self._values
2730
2751
 
@@ -16806,7 +16827,9 @@ class Addon(
16806
16827
  eks.Addon(self, "Addon",
16807
16828
  cluster=cluster,
16808
16829
  addon_name="aws-guardduty-agent",
16809
- addon_version="v1.6.1"
16830
+ addon_version="v1.6.1",
16831
+ # whether to preserve the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
16832
+ preserve_on_delete=False
16810
16833
  )
16811
16834
  '''
16812
16835
 
@@ -16818,6 +16841,7 @@ class Addon(
16818
16841
  addon_name: builtins.str,
16819
16842
  cluster: ICluster,
16820
16843
  addon_version: typing.Optional[builtins.str] = None,
16844
+ preserve_on_delete: typing.Optional[builtins.bool] = None,
16821
16845
  ) -> None:
16822
16846
  '''Creates a new Amazon EKS Add-On.
16823
16847
 
@@ -16826,13 +16850,17 @@ class Addon(
16826
16850
  :param addon_name: Name of the Add-On.
16827
16851
  :param cluster: The EKS cluster the Add-On is associated with.
16828
16852
  :param addon_version: Version of the Add-On. You can check all available versions with describe-addon-versons. For example, this lists all available versions for the ``eks-pod-identity-agent`` addon: $ aws eks describe-addon-versions --addon-name eks-pod-identity-agent --query 'addons[*].addonVersions[*].addonVersion' Default: the latest version.
16853
+ :param preserve_on_delete: Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on. If an IAM account is associated with the add-on, it isn't removed. Default: true
16829
16854
  '''
16830
16855
  if __debug__:
16831
16856
  type_hints = typing.get_type_hints(_typecheckingstub__a8342124e215d4789acf852df764143c4809251dbcaa86f6b4a11860e46f830d)
16832
16857
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
16833
16858
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
16834
16859
  props = AddonProps(
16835
- addon_name=addon_name, cluster=cluster, addon_version=addon_version
16860
+ addon_name=addon_name,
16861
+ cluster=cluster,
16862
+ addon_version=addon_version,
16863
+ preserve_on_delete=preserve_on_delete,
16836
16864
  )
16837
16865
 
16838
16866
  jsii.create(self.__class__, self, [scope, id, props])
@@ -20043,6 +20071,7 @@ def _typecheckingstub__febc9f6cb4243d885b1b1838be38d633e7c5fc6534eaaf731f00a2465
20043
20071
  addon_name: builtins.str,
20044
20072
  cluster: ICluster,
20045
20073
  addon_version: typing.Optional[builtins.str] = None,
20074
+ preserve_on_delete: typing.Optional[builtins.bool] = None,
20046
20075
  ) -> None:
20047
20076
  """Type checking stubs"""
20048
20077
  pass
@@ -21672,6 +21701,7 @@ def _typecheckingstub__a8342124e215d4789acf852df764143c4809251dbcaa86f6b4a11860e
21672
21701
  addon_name: builtins.str,
21673
21702
  cluster: ICluster,
21674
21703
  addon_version: typing.Optional[builtins.str] = None,
21704
+ preserve_on_delete: typing.Optional[builtins.bool] = None,
21675
21705
  ) -> None:
21676
21706
  """Type checking stubs"""
21677
21707
  pass
@@ -2558,7 +2558,7 @@ class CfnStage(
2558
2558
  '''
2559
2559
  :param scope: Scope in which this resource is defined.
2560
2560
  :param id: Construct identifier for this resource (unique in its scope).
2561
- :param auto_participant_recording_configuration: An object representing a configuration to record a channel stream.
2561
+ :param auto_participant_recording_configuration: Configuration object for individual participant recording, to attach to the new stage.
2562
2562
  :param name: Stage name.
2563
2563
  :param tags: An array of key-value pairs to apply to this resource. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-stage-tag.html>`_ .
2564
2564
  '''
@@ -2642,7 +2642,7 @@ class CfnStage(
2642
2642
  def auto_participant_recording_configuration(
2643
2643
  self,
2644
2644
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnStage.AutoParticipantRecordingConfigurationProperty"]]:
2645
- '''An object representing a configuration to record a channel stream.'''
2645
+ '''Configuration object for individual participant recording, to attach to the new stage.'''
2646
2646
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnStage.AutoParticipantRecordingConfigurationProperty"]], jsii.get(self, "autoParticipantRecordingConfiguration"))
2647
2647
 
2648
2648
  @auto_participant_recording_configuration.setter
@@ -2696,10 +2696,10 @@ class CfnStage(
2696
2696
  storage_configuration_arn: builtins.str,
2697
2697
  media_types: typing.Optional[typing.Sequence[builtins.str]] = None,
2698
2698
  ) -> None:
2699
- '''Configuration object for individual participant recording, to attach to the new stage.
2699
+ '''The ``AWS::IVS::AutoParticipantRecordingConfiguration`` property type describes a configuration for individual participant recording.
2700
2700
 
2701
- :param storage_configuration_arn: ARN of the StorageConfiguration resource to use for individual participant recording.
2702
- :param media_types: Types of media to be recorded. Default: AUDIO_VIDEO.
2701
+ :param storage_configuration_arn: ARN of the StorageConfiguration resource to use for individual participant recording. Default: "" (empty string, no storage configuration is specified). Individual participant recording cannot be started unless a storage configuration is specified, when a Stage is created or updated.
2702
+ :param media_types: Types of media to be recorded. Default: ``AUDIO_VIDEO`` .
2703
2703
 
2704
2704
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-stage-autoparticipantrecordingconfiguration.html
2705
2705
  :exampleMetadata: fixture=_generated
@@ -2731,6 +2731,8 @@ class CfnStage(
2731
2731
  def storage_configuration_arn(self) -> builtins.str:
2732
2732
  '''ARN of the StorageConfiguration resource to use for individual participant recording.
2733
2733
 
2734
+ Default: "" (empty string, no storage configuration is specified). Individual participant recording cannot be started unless a storage configuration is specified, when a Stage is created or updated.
2735
+
2734
2736
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-stage-autoparticipantrecordingconfiguration.html#cfn-ivs-stage-autoparticipantrecordingconfiguration-storageconfigurationarn
2735
2737
  '''
2736
2738
  result = self._values.get("storage_configuration_arn")
@@ -2741,7 +2743,7 @@ class CfnStage(
2741
2743
  def media_types(self) -> typing.Optional[typing.List[builtins.str]]:
2742
2744
  '''Types of media to be recorded.
2743
2745
 
2744
- Default: AUDIO_VIDEO.
2746
+ Default: ``AUDIO_VIDEO`` .
2745
2747
 
2746
2748
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-stage-autoparticipantrecordingconfiguration.html#cfn-ivs-stage-autoparticipantrecordingconfiguration-mediatypes
2747
2749
  '''
@@ -2779,7 +2781,7 @@ class CfnStageProps:
2779
2781
  ) -> None:
2780
2782
  '''Properties for defining a ``CfnStage``.
2781
2783
 
2782
- :param auto_participant_recording_configuration: An object representing a configuration to record a channel stream.
2784
+ :param auto_participant_recording_configuration: Configuration object for individual participant recording, to attach to the new stage.
2783
2785
  :param name: Stage name.
2784
2786
  :param tags: An array of key-value pairs to apply to this resource. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ivs-stage-tag.html>`_ .
2785
2787
 
@@ -2823,7 +2825,7 @@ class CfnStageProps:
2823
2825
  def auto_participant_recording_configuration(
2824
2826
  self,
2825
2827
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnStage.AutoParticipantRecordingConfigurationProperty]]:
2826
- '''An object representing a configuration to record a channel stream.
2828
+ '''Configuration object for individual participant recording, to attach to the new stage.
2827
2829
 
2828
2830
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ivs-stage.html#cfn-ivs-stage-autoparticipantrecordingconfiguration
2829
2831
  '''
@@ -39,6 +39,14 @@ key = kms.Key(self, "MyKey",
39
39
  )
40
40
  ```
41
41
 
42
+ Create a multi-Region primary key:
43
+
44
+ ```python
45
+ key = kms.Key(self, "MyKey",
46
+ multi_region=True
47
+ )
48
+ ```
49
+
42
50
  ## Sharing keys between stacks
43
51
 
44
52
  To use a KMS key in a different stack in the same CDK application,
@@ -2102,6 +2110,7 @@ class Key(
2102
2110
  enable_key_rotation: typing.Optional[builtins.bool] = None,
2103
2111
  key_spec: typing.Optional["KeySpec"] = None,
2104
2112
  key_usage: typing.Optional["KeyUsage"] = None,
2113
+ multi_region: typing.Optional[builtins.bool] = None,
2105
2114
  pending_window: typing.Optional[_Duration_4839e8c3] = None,
2106
2115
  policy: typing.Optional[_PolicyDocument_3ac34393] = None,
2107
2116
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
@@ -2117,6 +2126,7 @@ class Key(
2117
2126
  :param enable_key_rotation: Indicates whether AWS KMS rotates the key. Default: false
2118
2127
  :param key_spec: The cryptographic configuration of the key. The valid value depends on usage of the key. IMPORTANT: If you change this property of an existing key, the existing key is scheduled for deletion and a new key is created with the specified value. Default: KeySpec.SYMMETRIC_DEFAULT
2119
2128
  :param key_usage: The cryptographic operations for which the key can be used. IMPORTANT: If you change this property of an existing key, the existing key is scheduled for deletion and a new key is created with the specified value. Default: KeyUsage.ENCRYPT_DECRYPT
2129
+ :param multi_region: Creates a multi-Region primary key that you can replicate in other AWS Regions. You can't change the ``multiRegion`` value after the KMS key is created. IMPORTANT: If you change the value of the ``multiRegion`` property on an existing KMS key, the update request fails, regardless of the value of the UpdateReplacePolicy attribute. This prevents you from accidentally deleting a KMS key by changing an immutable property value. Default: false
2120
2130
  :param pending_window: Specifies the number of days in the waiting period before AWS KMS deletes a CMK that has been removed from a CloudFormation stack. When you remove a customer master key (CMK) from a CloudFormation stack, AWS KMS schedules the CMK for deletion and starts the mandatory waiting period. The PendingWindowInDays property determines the length of waiting period. During the waiting period, the key state of CMK is Pending Deletion, which prevents the CMK from being used in cryptographic operations. When the waiting period expires, AWS KMS permanently deletes the CMK. Enter a value between 7 and 30 days. Default: - 30 days
2121
2131
  :param policy: Custom policy document to attach to the KMS key. NOTE - If the ``@aws-cdk/aws-kms:defaultKeyPolicies`` feature flag is set (the default for new projects), this policy will *override* the default key policy and become the only key policy for the key. If the feature flag is not set, this policy will be appended to the default key policy. Default: - A policy document with permissions for the account root to administer the key will be created.
2122
2132
  :param removal_policy: Whether the encryption key should be retained when it is removed from the Stack. This is useful when one wants to retain access to data that was encrypted with a key that is being retired. Default: RemovalPolicy.Retain
@@ -2134,6 +2144,7 @@ class Key(
2134
2144
  enable_key_rotation=enable_key_rotation,
2135
2145
  key_spec=key_spec,
2136
2146
  key_usage=key_usage,
2147
+ multi_region=multi_region,
2137
2148
  pending_window=pending_window,
2138
2149
  policy=policy,
2139
2150
  removal_policy=removal_policy,
@@ -2439,6 +2450,7 @@ class KeyLookupOptions:
2439
2450
  "enable_key_rotation": "enableKeyRotation",
2440
2451
  "key_spec": "keySpec",
2441
2452
  "key_usage": "keyUsage",
2453
+ "multi_region": "multiRegion",
2442
2454
  "pending_window": "pendingWindow",
2443
2455
  "policy": "policy",
2444
2456
  "removal_policy": "removalPolicy",
@@ -2456,6 +2468,7 @@ class KeyProps:
2456
2468
  enable_key_rotation: typing.Optional[builtins.bool] = None,
2457
2469
  key_spec: typing.Optional["KeySpec"] = None,
2458
2470
  key_usage: typing.Optional["KeyUsage"] = None,
2471
+ multi_region: typing.Optional[builtins.bool] = None,
2459
2472
  pending_window: typing.Optional[_Duration_4839e8c3] = None,
2460
2473
  policy: typing.Optional[_PolicyDocument_3ac34393] = None,
2461
2474
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
@@ -2470,6 +2483,7 @@ class KeyProps:
2470
2483
  :param enable_key_rotation: Indicates whether AWS KMS rotates the key. Default: false
2471
2484
  :param key_spec: The cryptographic configuration of the key. The valid value depends on usage of the key. IMPORTANT: If you change this property of an existing key, the existing key is scheduled for deletion and a new key is created with the specified value. Default: KeySpec.SYMMETRIC_DEFAULT
2472
2485
  :param key_usage: The cryptographic operations for which the key can be used. IMPORTANT: If you change this property of an existing key, the existing key is scheduled for deletion and a new key is created with the specified value. Default: KeyUsage.ENCRYPT_DECRYPT
2486
+ :param multi_region: Creates a multi-Region primary key that you can replicate in other AWS Regions. You can't change the ``multiRegion`` value after the KMS key is created. IMPORTANT: If you change the value of the ``multiRegion`` property on an existing KMS key, the update request fails, regardless of the value of the UpdateReplacePolicy attribute. This prevents you from accidentally deleting a KMS key by changing an immutable property value. Default: false
2473
2487
  :param pending_window: Specifies the number of days in the waiting period before AWS KMS deletes a CMK that has been removed from a CloudFormation stack. When you remove a customer master key (CMK) from a CloudFormation stack, AWS KMS schedules the CMK for deletion and starts the mandatory waiting period. The PendingWindowInDays property determines the length of waiting period. During the waiting period, the key state of CMK is Pending Deletion, which prevents the CMK from being used in cryptographic operations. When the waiting period expires, AWS KMS permanently deletes the CMK. Enter a value between 7 and 30 days. Default: - 30 days
2474
2488
  :param policy: Custom policy document to attach to the KMS key. NOTE - If the ``@aws-cdk/aws-kms:defaultKeyPolicies`` feature flag is set (the default for new projects), this policy will *override* the default key policy and become the only key policy for the key. If the feature flag is not set, this policy will be appended to the default key policy. Default: - A policy document with permissions for the account root to administer the key will be created.
2475
2489
  :param removal_policy: Whether the encryption key should be retained when it is removed from the Stack. This is useful when one wants to retain access to data that was encrypted with a key that is being retired. Default: RemovalPolicy.Retain
@@ -2509,6 +2523,7 @@ class KeyProps:
2509
2523
  check_type(argname="argument enable_key_rotation", value=enable_key_rotation, expected_type=type_hints["enable_key_rotation"])
2510
2524
  check_type(argname="argument key_spec", value=key_spec, expected_type=type_hints["key_spec"])
2511
2525
  check_type(argname="argument key_usage", value=key_usage, expected_type=type_hints["key_usage"])
2526
+ check_type(argname="argument multi_region", value=multi_region, expected_type=type_hints["multi_region"])
2512
2527
  check_type(argname="argument pending_window", value=pending_window, expected_type=type_hints["pending_window"])
2513
2528
  check_type(argname="argument policy", value=policy, expected_type=type_hints["policy"])
2514
2529
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
@@ -2528,6 +2543,8 @@ class KeyProps:
2528
2543
  self._values["key_spec"] = key_spec
2529
2544
  if key_usage is not None:
2530
2545
  self._values["key_usage"] = key_usage
2546
+ if multi_region is not None:
2547
+ self._values["multi_region"] = multi_region
2531
2548
  if pending_window is not None:
2532
2549
  self._values["pending_window"] = pending_window
2533
2550
  if policy is not None:
@@ -2616,6 +2633,23 @@ class KeyProps:
2616
2633
  result = self._values.get("key_usage")
2617
2634
  return typing.cast(typing.Optional["KeyUsage"], result)
2618
2635
 
2636
+ @builtins.property
2637
+ def multi_region(self) -> typing.Optional[builtins.bool]:
2638
+ '''Creates a multi-Region primary key that you can replicate in other AWS Regions.
2639
+
2640
+ You can't change the ``multiRegion`` value after the KMS key is created.
2641
+
2642
+ IMPORTANT: If you change the value of the ``multiRegion`` property on an existing KMS key, the update request fails,
2643
+ regardless of the value of the UpdateReplacePolicy attribute.
2644
+ This prevents you from accidentally deleting a KMS key by changing an immutable property value.
2645
+
2646
+ :default: false
2647
+
2648
+ :see: https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html
2649
+ '''
2650
+ result = self._values.get("multi_region")
2651
+ return typing.cast(typing.Optional[builtins.bool], result)
2652
+
2619
2653
  @builtins.property
2620
2654
  def pending_window(self) -> typing.Optional[_Duration_4839e8c3]:
2621
2655
  '''Specifies the number of days in the waiting period before AWS KMS deletes a CMK that has been removed from a CloudFormation stack.
@@ -3491,6 +3525,7 @@ def _typecheckingstub__2cde9534bdfe7c19d6e24354f8a0de8ca349632d3f565addcaed7e86a
3491
3525
  enable_key_rotation: typing.Optional[builtins.bool] = None,
3492
3526
  key_spec: typing.Optional[KeySpec] = None,
3493
3527
  key_usage: typing.Optional[KeyUsage] = None,
3528
+ multi_region: typing.Optional[builtins.bool] = None,
3494
3529
  pending_window: typing.Optional[_Duration_4839e8c3] = None,
3495
3530
  policy: typing.Optional[_PolicyDocument_3ac34393] = None,
3496
3531
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
@@ -3594,6 +3629,7 @@ def _typecheckingstub__b3cbd21baa1113e5b2864ce6b440a0d87704642442943c3a554ab23ae
3594
3629
  enable_key_rotation: typing.Optional[builtins.bool] = None,
3595
3630
  key_spec: typing.Optional[KeySpec] = None,
3596
3631
  key_usage: typing.Optional[KeyUsage] = None,
3632
+ multi_region: typing.Optional[builtins.bool] = None,
3597
3633
  pending_window: typing.Optional[_Duration_4839e8c3] = None,
3598
3634
  policy: typing.Optional[_PolicyDocument_3ac34393] = None,
3599
3635
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
@@ -85,6 +85,10 @@ configurations as well as choosing a specific tag or digest. See their docs for
85
85
  To deploy a `DockerImageFunction` on Lambda `arm64` architecture, specify `Architecture.ARM_64` in `architecture`.
86
86
  This will bundle docker image assets for `arm64` architecture with `--platform linux/arm64` even if build within an `x86_64` host.
87
87
 
88
+ With that being said, if you are bundling `DockerImageFunction` for Lambda `amd64` architecture from a `arm64` machine like a Macbook with `arm64` CPU, you would
89
+ need to specify `architecture: lambda.Architecture.X86_64` as well. This ensures the `--platform` argument is passed to the image assets
90
+ bundling process so you can bundle up `X86_64` images from the `arm64` machine.
91
+
88
92
  ```python
89
93
  lambda_.DockerImageFunction(self, "AssetFunction",
90
94
  code=lambda_.DockerImageCode.from_image_asset(path.join(__dirname, "docker-arm64-handler")),
@@ -10120,7 +10124,7 @@ class CfnVersion(
10120
10124
  @builtins.property
10121
10125
  @jsii.member(jsii_name="attrFunctionArn")
10122
10126
  def attr_function_arn(self) -> builtins.str:
10123
- '''The ARN of the version.
10127
+ '''The ARN of the function.
10124
10128
 
10125
10129
  :cloudformationAttribute: FunctionArn
10126
10130
  '''
@@ -13774,21 +13778,25 @@ class FilterCriteria(
13774
13778
 
13775
13779
  Example::
13776
13780
 
13777
- import aws_cdk.aws_lambda_event_sources as eventsources
13778
13781
  import aws_cdk.aws_dynamodb as dynamodb
13782
+ from aws_cdk.aws_lambda_event_sources import DynamoEventSource
13783
+
13784
+ # table: dynamodb.Table
13779
13785
 
13780
13786
  # fn: lambda.Function
13781
13787
 
13782
- table = dynamodb.Table(self, "Table",
13783
- partition_key=dynamodb.Attribute(
13784
- name="id",
13785
- type=dynamodb.AttributeType.STRING
13786
- ),
13787
- stream=dynamodb.StreamViewType.NEW_IMAGE
13788
- )
13789
- fn.add_event_source(eventsources.DynamoEventSource(table,
13788
+ fn.add_event_source(DynamoEventSource(table,
13790
13789
  starting_position=lambda_.StartingPosition.LATEST,
13791
- filters=[lambda_.FilterCriteria.filter({"event_name": lambda_.FilterRule.is_equal("INSERT")})]
13790
+ filters=[
13791
+ lambda_.FilterCriteria.filter({
13792
+ "event_name": lambda_.FilterRule.is_equal("INSERT"),
13793
+ "dynamodb": {
13794
+ "NewImage": {
13795
+ "id": {"BOOL": lambda_.FilterRule.is_equal(True)}
13796
+ }
13797
+ }
13798
+ })
13799
+ ]
13792
13800
  ))
13793
13801
  '''
13794
13802
 
@@ -13821,21 +13829,25 @@ class FilterRule(
13821
13829
 
13822
13830
  Example::
13823
13831
 
13824
- import aws_cdk.aws_lambda_event_sources as eventsources
13825
13832
  import aws_cdk.aws_dynamodb as dynamodb
13833
+ from aws_cdk.aws_lambda_event_sources import DynamoEventSource
13834
+
13835
+ # table: dynamodb.Table
13826
13836
 
13827
13837
  # fn: lambda.Function
13828
13838
 
13829
- table = dynamodb.Table(self, "Table",
13830
- partition_key=dynamodb.Attribute(
13831
- name="id",
13832
- type=dynamodb.AttributeType.STRING
13833
- ),
13834
- stream=dynamodb.StreamViewType.NEW_IMAGE
13835
- )
13836
- fn.add_event_source(eventsources.DynamoEventSource(table,
13839
+ fn.add_event_source(DynamoEventSource(table,
13837
13840
  starting_position=lambda_.StartingPosition.LATEST,
13838
- filters=[lambda_.FilterCriteria.filter({"event_name": lambda_.FilterRule.is_equal("INSERT")})]
13841
+ filters=[
13842
+ lambda_.FilterCriteria.filter({
13843
+ "event_name": lambda_.FilterRule.is_equal("INSERT"),
13844
+ "dynamodb": {
13845
+ "NewImage": {
13846
+ "id": {"BOOL": lambda_.FilterRule.is_equal(True)}
13847
+ }
13848
+ }
13849
+ })
13850
+ ]
13839
13851
  ))
13840
13852
  '''
13841
13853
 
@@ -13889,7 +13901,10 @@ class FilterRule(
13889
13901
 
13890
13902
  @jsii.member(jsii_name="isEqual")
13891
13903
  @builtins.classmethod
13892
- def is_equal(cls, item: typing.Union[builtins.str, jsii.Number]) -> typing.Any:
13904
+ def is_equal(
13905
+ cls,
13906
+ item: typing.Union[builtins.str, jsii.Number, builtins.bool],
13907
+ ) -> typing.Any:
13893
13908
  '''Equals comparison operator.
13894
13909
 
13895
13910
  :param item: -
@@ -29506,7 +29521,7 @@ def _typecheckingstub__e532ccec0d2d2a11fd00b0da70142d367dca7a52eb785533bf0fe354f
29506
29521
  pass
29507
29522
 
29508
29523
  def _typecheckingstub__6ffacf0ca301bfbc6a30c7fc32201cecba4e3530eb53e51d1b21c3349a4e5ba5(
29509
- item: typing.Union[builtins.str, jsii.Number],
29524
+ item: typing.Union[builtins.str, jsii.Number, builtins.bool],
29510
29525
  ) -> None:
29511
29526
  """Type checking stubs"""
29512
29527
  pass
@@ -175,6 +175,7 @@ and add it to your Lambda function. The following parameters will impact Amazon
175
175
  * **startingPosition**: Will determine where to being consumption, either at the most recent ('LATEST') record or the oldest record ('TRIM_HORIZON'). 'TRIM_HORIZON' will ensure you process all available data, while 'LATEST' will ignore all records that arrived prior to attaching the event source.
176
176
  * **tumblingWindow**: The duration in seconds of a processing window when using streams.
177
177
  * **enabled**: If the DynamoDB Streams event source mapping should be enabled. The default is true.
178
+ * **filters**: Filters to apply before sending a change event from a DynamoDB table to a Lambda function. Events that are filtered out are not sent to the Lambda function.
178
179
 
179
180
  ```python
180
181
  import aws_cdk.aws_dynamodb as dynamodb
@@ -195,6 +196,32 @@ fn.add_event_source(DynamoEventSource(table,
195
196
  ))
196
197
  ```
197
198
 
199
+ The following code sets up a Lambda function with a DynamoDB event source. A filter is applied to only send DynamoDB events to
200
+ the Lambda function when the `id` column is a boolean that equals `true`.
201
+
202
+ ```python
203
+ import aws_cdk.aws_dynamodb as dynamodb
204
+ from aws_cdk.aws_lambda_event_sources import DynamoEventSource
205
+
206
+ # table: dynamodb.Table
207
+
208
+ # fn: lambda.Function
209
+
210
+ fn.add_event_source(DynamoEventSource(table,
211
+ starting_position=lambda_.StartingPosition.LATEST,
212
+ filters=[
213
+ lambda_.FilterCriteria.filter({
214
+ "event_name": lambda_.FilterRule.is_equal("INSERT"),
215
+ "dynamodb": {
216
+ "NewImage": {
217
+ "id": {"BOOL": lambda_.FilterRule.is_equal(True)}
218
+ }
219
+ }
220
+ })
221
+ ]
222
+ ))
223
+ ```
224
+
198
225
  ## Kinesis
199
226
 
200
227
  You can write Lambda functions to process streaming data in Amazon Kinesis Streams. For more information about Amazon Kinesis, see [Amazon Kinesis
@@ -33229,6 +33229,12 @@ class PostgresEngineVersion(
33229
33229
  '''Version "11.22-rds.20240509".'''
33230
33230
  return typing.cast("PostgresEngineVersion", jsii.sget(cls, "VER_11_22_RDS_20240509"))
33231
33231
 
33232
+ @jsii.python.classproperty
33233
+ @jsii.member(jsii_name="VER_11_22_RDS_20240808")
33234
+ def VER_11_22_RDS_20240808(cls) -> "PostgresEngineVersion":
33235
+ '''Version "11.22-rds.20240808".'''
33236
+ return typing.cast("PostgresEngineVersion", jsii.sget(cls, "VER_11_22_RDS_20240808"))
33237
+
33232
33238
  @jsii.python.classproperty
33233
33239
  @jsii.member(jsii_name="VER_11_4")
33234
33240
  def VER_11_4(cls) -> "PostgresEngineVersion":
@@ -2251,7 +2251,7 @@ class CfnSecretTargetAttachment(
2251
2251
  :param id: Construct identifier for this resource (unique in its scope).
2252
2252
  :param secret_id: The ARN or name of the secret. To reference a secret also created in this template, use the see `Ref <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html>`_ function with the secret's logical ID.
2253
2253
  :param target_id: The ID of the database or cluster.
2254
- :param target_type: A string that defines the type of service or database associated with the secret. This value instructs Secrets Manager how to update the secret with the details of the service or database. This value must be one of the following: - AWS::RDS::DBInstance - AWS::RDS::DBCluster - AWS::Redshift::Cluster - AWS::DocDB::DBInstance - AWS::DocDB::DBCluster
2254
+ :param target_type: A string that defines the type of service or database associated with the secret. This value instructs Secrets Manager how to update the secret with the details of the service or database. This value must be one of the following: - AWS::RDS::DBInstance - AWS::RDS::DBCluster - AWS::Redshift::Cluster - AWS::DocDB::DBInstance - AWS::DocDB::DBCluster - AWS::DocDBElastic::Cluster
2255
2255
  '''
2256
2256
  if __debug__:
2257
2257
  type_hints = typing.get_type_hints(_typecheckingstub__f27548ced74eb3d06a9cd3710e7d562d307b5a2c264476a3e685fcb94ccdee58)
@@ -2367,7 +2367,7 @@ class CfnSecretTargetAttachmentProps:
2367
2367
 
2368
2368
  :param secret_id: The ARN or name of the secret. To reference a secret also created in this template, use the see `Ref <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html>`_ function with the secret's logical ID.
2369
2369
  :param target_id: The ID of the database or cluster.
2370
- :param target_type: A string that defines the type of service or database associated with the secret. This value instructs Secrets Manager how to update the secret with the details of the service or database. This value must be one of the following: - AWS::RDS::DBInstance - AWS::RDS::DBCluster - AWS::Redshift::Cluster - AWS::DocDB::DBInstance - AWS::DocDB::DBCluster
2370
+ :param target_type: A string that defines the type of service or database associated with the secret. This value instructs Secrets Manager how to update the secret with the details of the service or database. This value must be one of the following: - AWS::RDS::DBInstance - AWS::RDS::DBCluster - AWS::Redshift::Cluster - AWS::DocDB::DBInstance - AWS::DocDB::DBCluster - AWS::DocDBElastic::Cluster
2371
2371
 
2372
2372
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html
2373
2373
  :exampleMetadata: fixture=_generated
@@ -2428,6 +2428,7 @@ class CfnSecretTargetAttachmentProps:
2428
2428
  - AWS::Redshift::Cluster
2429
2429
  - AWS::DocDB::DBInstance
2430
2430
  - AWS::DocDB::DBCluster
2431
+ - AWS::DocDBElastic::Cluster
2431
2432
 
2432
2433
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html#cfn-secretsmanager-secrettargetattachment-targettype
2433
2434
  '''
@@ -10850,7 +10850,7 @@ class CfnReceiptRule(
10850
10850
  For information about specifying Amazon S3 actions in receipt rules, see the `Amazon SES Developer Guide <https://docs.aws.amazon.com/ses/latest/dg/receiving-email-action-s3.html>`_ .
10851
10851
 
10852
10852
  :param bucket_name: The name of the Amazon S3 bucket for incoming email.
10853
- :param kms_key_arn: The customer master key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket. You can use the default master key or a custom master key that you created in AWS KMS as follows: - To use the default master key, provide an ARN in the form of ``arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses`` . For example, if your AWS account ID is 123456789012 and you want to use the default master key in the US West (Oregon) Region, the ARN of the default master key would be ``arn:aws:kms:us-west-2:123456789012:alias/aws/ses`` . If you use the default master key, you don't need to perform any extra steps to give Amazon SES permission to use the key. - To use a custom master key that you created in AWS KMS, provide the ARN of the master key and ensure that you add a statement to your key's policy to give Amazon SES permission to use it. For more information about giving permissions, see the `Amazon SES Developer Guide <https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html>`_ . For more information about key policies, see the `AWS KMS Developer Guide <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html>`_ . If you do not specify a master key, Amazon SES does not encrypt your emails. .. epigraph:: Your mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail is submitted to Amazon S3 for storage. It is not encrypted using Amazon S3 server-side encryption. This means that you must use the Amazon S3 encryption client to decrypt the email after retrieving it from Amazon S3, as the service has no access to use your AWS KMS keys for decryption. This encryption client is currently available with the `AWS SDK for Java <https://docs.aws.amazon.com/sdk-for-java/>`_ and `AWS SDK for Ruby <https://docs.aws.amazon.com/sdk-for-ruby/>`_ only. For more information about client-side encryption using AWS KMS master keys, see the `Amazon S3 Developer Guide <https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html>`_ .
10853
+ :param kms_key_arn: The customer managed key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket. You can use the AWS managed key or a customer managed key that you created in AWS KMS as follows: - To use the AWS managed key, provide an ARN in the form of ``arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses`` . For example, if your AWS account ID is 123456789012 and you want to use the AWS managed key in the US West (Oregon) Region, the ARN of the AWS managed key would be ``arn:aws:kms:us-west-2:123456789012:alias/aws/ses`` . If you use the AWS managed key, you don't need to perform any extra steps to give Amazon SES permission to use the key. - To use a customer managed key that you created in AWS KMS, provide the ARN of the customer managed key and ensure that you add a statement to your key's policy to give Amazon SES permission to use it. For more information about giving permissions, see the `Amazon SES Developer Guide <https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html>`_ . For more information about key policies, see the `AWS KMS Developer Guide <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html>`_ . If you do not specify an AWS KMS key, Amazon SES does not encrypt your emails. .. epigraph:: Your mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail is submitted to Amazon S3 for storage. It is not encrypted using Amazon S3 server-side encryption. This means that you must use the Amazon S3 encryption client to decrypt the email after retrieving it from Amazon S3, as the service has no access to use your AWS KMS keys for decryption. This encryption client is currently available with the `AWS SDK for Java <https://docs.aws.amazon.com/sdk-for-java/>`_ and `AWS SDK for Ruby <https://docs.aws.amazon.com/sdk-for-ruby/>`_ only. For more information about client-side encryption using AWS KMS managed keys, see the `Amazon S3 Developer Guide <https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html>`_ .
10854
10854
  :param object_key_prefix: The key prefix of the Amazon S3 bucket. The key prefix is similar to a directory name that enables you to store similar data under the same directory in a bucket.
10855
10855
  :param topic_arn: The ARN of the Amazon SNS topic to notify when the message is saved to the Amazon S3 bucket. You can find the ARN of a topic by using the `ListTopics <https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html>`_ operation in Amazon SNS. For more information about Amazon SNS topics, see the `Amazon SNS Developer Guide <https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html>`_ .
10856
10856
 
@@ -10900,17 +10900,17 @@ class CfnReceiptRule(
10900
10900
 
10901
10901
  @builtins.property
10902
10902
  def kms_key_arn(self) -> typing.Optional[builtins.str]:
10903
- '''The customer master key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket.
10903
+ '''The customer managed key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket.
10904
10904
 
10905
- You can use the default master key or a custom master key that you created in AWS KMS as follows:
10905
+ You can use the AWS managed key or a customer managed key that you created in AWS KMS as follows:
10906
10906
 
10907
- - To use the default master key, provide an ARN in the form of ``arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses`` . For example, if your AWS account ID is 123456789012 and you want to use the default master key in the US West (Oregon) Region, the ARN of the default master key would be ``arn:aws:kms:us-west-2:123456789012:alias/aws/ses`` . If you use the default master key, you don't need to perform any extra steps to give Amazon SES permission to use the key.
10908
- - To use a custom master key that you created in AWS KMS, provide the ARN of the master key and ensure that you add a statement to your key's policy to give Amazon SES permission to use it. For more information about giving permissions, see the `Amazon SES Developer Guide <https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html>`_ .
10907
+ - To use the AWS managed key, provide an ARN in the form of ``arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses`` . For example, if your AWS account ID is 123456789012 and you want to use the AWS managed key in the US West (Oregon) Region, the ARN of the AWS managed key would be ``arn:aws:kms:us-west-2:123456789012:alias/aws/ses`` . If you use the AWS managed key, you don't need to perform any extra steps to give Amazon SES permission to use the key.
10908
+ - To use a customer managed key that you created in AWS KMS, provide the ARN of the customer managed key and ensure that you add a statement to your key's policy to give Amazon SES permission to use it. For more information about giving permissions, see the `Amazon SES Developer Guide <https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html>`_ .
10909
10909
 
10910
- For more information about key policies, see the `AWS KMS Developer Guide <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html>`_ . If you do not specify a master key, Amazon SES does not encrypt your emails.
10910
+ For more information about key policies, see the `AWS KMS Developer Guide <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html>`_ . If you do not specify an AWS KMS key, Amazon SES does not encrypt your emails.
10911
10911
  .. epigraph::
10912
10912
 
10913
- Your mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail is submitted to Amazon S3 for storage. It is not encrypted using Amazon S3 server-side encryption. This means that you must use the Amazon S3 encryption client to decrypt the email after retrieving it from Amazon S3, as the service has no access to use your AWS KMS keys for decryption. This encryption client is currently available with the `AWS SDK for Java <https://docs.aws.amazon.com/sdk-for-java/>`_ and `AWS SDK for Ruby <https://docs.aws.amazon.com/sdk-for-ruby/>`_ only. For more information about client-side encryption using AWS KMS master keys, see the `Amazon S3 Developer Guide <https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html>`_ .
10913
+ Your mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail is submitted to Amazon S3 for storage. It is not encrypted using Amazon S3 server-side encryption. This means that you must use the Amazon S3 encryption client to decrypt the email after retrieving it from Amazon S3, as the service has no access to use your AWS KMS keys for decryption. This encryption client is currently available with the `AWS SDK for Java <https://docs.aws.amazon.com/sdk-for-java/>`_ and `AWS SDK for Ruby <https://docs.aws.amazon.com/sdk-for-ruby/>`_ only. For more information about client-side encryption using AWS KMS managed keys, see the `Amazon S3 Developer Guide <https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html>`_ .
10914
10914
 
10915
10915
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html#cfn-ses-receiptrule-s3action-kmskeyarn
10916
10916
  '''
@@ -565,6 +565,10 @@ class CfnContactChannel(
565
565
  ):
566
566
  '''The ``AWS::SSMContacts::ContactChannel`` resource specifies a contact channel as the method that Incident Manager uses to engage your contact.
567
567
 
568
+ .. epigraph::
569
+
570
+ *Template example* : We recommend creating all Incident Manager ``Contacts`` resources using a single AWS CloudFormation template. For a demonstration, see the examples for `AWS::SSMContacts::Contacts <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-contact.html>`_ .
571
+
568
572
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-contactchannel.html
569
573
  :cloudformationResource: AWS::SSMContacts::ContactChannel
570
574
  :exampleMetadata: fixture=_generated
@@ -1009,6 +1013,10 @@ class CfnPlan(
1009
1013
  ):
1010
1014
  '''Information about the stages and on-call rotation teams associated with an escalation plan or engagement plan.
1011
1015
 
1016
+ .. epigraph::
1017
+
1018
+ *Template example* : We recommend creating all Incident Manager ``Contacts`` resources using a single AWS CloudFormation template. For a demonstration, see the examples for `AWS::SSMContacts::Contacts <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-contact.html>`_ .
1019
+
1012
1020
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-plan.html
1013
1021
  :cloudformationResource: AWS::SSMContacts::Plan
1014
1022
  :exampleMetadata: fixture=_generated
@@ -1591,6 +1599,10 @@ class CfnRotation(
1591
1599
  ):
1592
1600
  '''Specifies a rotation in an on-call schedule.
1593
1601
 
1602
+ .. epigraph::
1603
+
1604
+ *Template example* : We recommend creating all Incident Manager ``Contacts`` resources using a single AWS CloudFormation template. For a demonstration, see the examples for `AWS::SSMContacts::Contacts <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-contact.html>`_ .
1605
+
1594
1606
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssmcontacts-rotation.html
1595
1607
  :cloudformationResource: AWS::SSMContacts::Rotation
1596
1608
  :exampleMetadata: fixture=_generated