aws-cdk-lib 2.198.0__py3-none-any.whl → 2.200.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 (55) hide show
  1. aws_cdk/__init__.py +22 -24
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.198.0.jsii.tgz → aws-cdk-lib@2.200.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_acmpca/__init__.py +1 -1
  5. aws_cdk/aws_apigateway/__init__.py +1 -1
  6. aws_cdk/aws_appconfig/__init__.py +296 -48
  7. aws_cdk/aws_applicationautoscaling/__init__.py +4 -4
  8. aws_cdk/aws_aps/__init__.py +365 -14
  9. aws_cdk/aws_autoscaling/__init__.py +4 -4
  10. aws_cdk/aws_bedrock/__init__.py +436 -28
  11. aws_cdk/aws_cloudformation/__init__.py +17 -23
  12. aws_cdk/aws_cloudfront_origins/__init__.py +1 -1
  13. aws_cdk/aws_cloudtrail/__init__.py +4 -4
  14. aws_cdk/aws_cloudwatch/__init__.py +50 -1
  15. aws_cdk/aws_codebuild/__init__.py +116 -0
  16. aws_cdk/aws_datazone/__init__.py +699 -9
  17. aws_cdk/aws_deadline/__init__.py +38 -10
  18. aws_cdk/aws_ec2/__init__.py +97 -28
  19. aws_cdk/aws_ecs_patterns/__init__.py +49 -3
  20. aws_cdk/aws_eks/__init__.py +40 -9
  21. aws_cdk/aws_elasticloadbalancingv2/__init__.py +7 -7
  22. aws_cdk/aws_emr/__init__.py +36 -2
  23. aws_cdk/aws_events_targets/__init__.py +78 -1
  24. aws_cdk/aws_fsx/__init__.py +122 -0
  25. aws_cdk/aws_glue/__init__.py +55 -26
  26. aws_cdk/aws_iam/__init__.py +376 -2
  27. aws_cdk/aws_iot/__init__.py +57 -5
  28. aws_cdk/aws_kinesisfirehose/__init__.py +5 -1
  29. aws_cdk/aws_lambda/__init__.py +65 -45
  30. aws_cdk/aws_lex/__init__.py +27 -13
  31. aws_cdk/aws_lightsail/__init__.py +452 -0
  32. aws_cdk/aws_medialive/__init__.py +699 -497
  33. aws_cdk/aws_msk/__init__.py +4 -4
  34. aws_cdk/aws_networkfirewall/__init__.py +9 -5
  35. aws_cdk/aws_nimblestudio/__init__.py +208 -400
  36. aws_cdk/aws_panorama/__init__.py +30 -3
  37. aws_cdk/aws_pcs/__init__.py +12 -5
  38. aws_cdk/aws_rds/__init__.py +28 -16
  39. aws_cdk/aws_s3/__init__.py +367 -6
  40. aws_cdk/aws_s3express/__init__.py +789 -0
  41. aws_cdk/aws_ses/__init__.py +549 -32
  42. aws_cdk/aws_sns_subscriptions/__init__.py +256 -1
  43. aws_cdk/aws_stepfunctions/__init__.py +55 -17
  44. aws_cdk/aws_stepfunctions_tasks/__init__.py +1502 -2
  45. aws_cdk/aws_synthetics/__init__.py +26 -16
  46. aws_cdk/aws_voiceid/__init__.py +13 -3
  47. aws_cdk/aws_vpclattice/__init__.py +219 -209
  48. aws_cdk/cloud_assembly_schema/__init__.py +137 -42
  49. aws_cdk/cx_api/__init__.py +7 -7
  50. {aws_cdk_lib-2.198.0.dist-info → aws_cdk_lib-2.200.0.dist-info}/METADATA +2 -2
  51. {aws_cdk_lib-2.198.0.dist-info → aws_cdk_lib-2.200.0.dist-info}/RECORD +55 -55
  52. {aws_cdk_lib-2.198.0.dist-info → aws_cdk_lib-2.200.0.dist-info}/LICENSE +0 -0
  53. {aws_cdk_lib-2.198.0.dist-info → aws_cdk_lib-2.200.0.dist-info}/NOTICE +0 -0
  54. {aws_cdk_lib-2.198.0.dist-info → aws_cdk_lib-2.200.0.dist-info}/WHEEL +0 -0
  55. {aws_cdk_lib-2.198.0.dist-info → aws_cdk_lib-2.200.0.dist-info}/top_level.txt +0 -0
@@ -1976,10 +1976,13 @@ load_balancer_address = cluster.get_service_load_balancer_address("my-service")
1976
1976
 
1977
1977
  eks.Addon(self, "Addon",
1978
1978
  cluster=cluster,
1979
- addon_name="aws-guardduty-agent",
1980
- addon_version="v1.6.1",
1979
+ addon_name="coredns",
1980
+ addon_version="v1.11.4-eksbuild.2",
1981
1981
  # whether to preserve the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
1982
- preserve_on_delete=False
1982
+ preserve_on_delete=False,
1983
+ configuration_values={
1984
+ "replica_count": 2
1985
+ }
1983
1986
  )
1984
1987
  ```
1985
1988
 
@@ -2808,6 +2811,7 @@ class AddonAttributes:
2808
2811
  "addon_name": "addonName",
2809
2812
  "cluster": "cluster",
2810
2813
  "addon_version": "addonVersion",
2814
+ "configuration_values": "configurationValues",
2811
2815
  "preserve_on_delete": "preserveOnDelete",
2812
2816
  },
2813
2817
  )
@@ -2818,6 +2822,7 @@ class AddonProps:
2818
2822
  addon_name: builtins.str,
2819
2823
  cluster: "ICluster",
2820
2824
  addon_version: typing.Optional[builtins.str] = None,
2825
+ configuration_values: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
2821
2826
  preserve_on_delete: typing.Optional[builtins.bool] = None,
2822
2827
  ) -> None:
2823
2828
  '''Properties for creating an Amazon EKS Add-On.
@@ -2825,6 +2830,7 @@ class AddonProps:
2825
2830
  :param addon_name: Name of the Add-On.
2826
2831
  :param cluster: The EKS cluster the Add-On is associated with.
2827
2832
  :param addon_version: Version of the Add-On. You can check all available versions with describe-addon-versions. 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.
2833
+ :param configuration_values: The configuration values for the Add-on. Default: - Use default configuration.
2828
2834
  :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
2829
2835
 
2830
2836
  :exampleMetadata: infused
@@ -2836,10 +2842,13 @@ class AddonProps:
2836
2842
 
2837
2843
  eks.Addon(self, "Addon",
2838
2844
  cluster=cluster,
2839
- addon_name="aws-guardduty-agent",
2840
- addon_version="v1.6.1",
2845
+ addon_name="coredns",
2846
+ addon_version="v1.11.4-eksbuild.2",
2841
2847
  # whether to preserve the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
2842
- preserve_on_delete=False
2848
+ preserve_on_delete=False,
2849
+ configuration_values={
2850
+ "replica_count": 2
2851
+ }
2843
2852
  )
2844
2853
  '''
2845
2854
  if __debug__:
@@ -2847,6 +2856,7 @@ class AddonProps:
2847
2856
  check_type(argname="argument addon_name", value=addon_name, expected_type=type_hints["addon_name"])
2848
2857
  check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
2849
2858
  check_type(argname="argument addon_version", value=addon_version, expected_type=type_hints["addon_version"])
2859
+ check_type(argname="argument configuration_values", value=configuration_values, expected_type=type_hints["configuration_values"])
2850
2860
  check_type(argname="argument preserve_on_delete", value=preserve_on_delete, expected_type=type_hints["preserve_on_delete"])
2851
2861
  self._values: typing.Dict[builtins.str, typing.Any] = {
2852
2862
  "addon_name": addon_name,
@@ -2854,6 +2864,8 @@ class AddonProps:
2854
2864
  }
2855
2865
  if addon_version is not None:
2856
2866
  self._values["addon_version"] = addon_version
2867
+ if configuration_values is not None:
2868
+ self._values["configuration_values"] = configuration_values
2857
2869
  if preserve_on_delete is not None:
2858
2870
  self._values["preserve_on_delete"] = preserve_on_delete
2859
2871
 
@@ -2885,6 +2897,17 @@ class AddonProps:
2885
2897
  result = self._values.get("addon_version")
2886
2898
  return typing.cast(typing.Optional[builtins.str], result)
2887
2899
 
2900
+ @builtins.property
2901
+ def configuration_values(
2902
+ self,
2903
+ ) -> typing.Optional[typing.Mapping[builtins.str, typing.Any]]:
2904
+ '''The configuration values for the Add-on.
2905
+
2906
+ :default: - Use default configuration.
2907
+ '''
2908
+ result = self._values.get("configuration_values")
2909
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Any]], result)
2910
+
2888
2911
  @builtins.property
2889
2912
  def preserve_on_delete(self) -> typing.Optional[builtins.bool]:
2890
2913
  '''Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
@@ -18415,10 +18438,13 @@ class Addon(
18415
18438
 
18416
18439
  eks.Addon(self, "Addon",
18417
18440
  cluster=cluster,
18418
- addon_name="aws-guardduty-agent",
18419
- addon_version="v1.6.1",
18441
+ addon_name="coredns",
18442
+ addon_version="v1.11.4-eksbuild.2",
18420
18443
  # whether to preserve the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
18421
- preserve_on_delete=False
18444
+ preserve_on_delete=False,
18445
+ configuration_values={
18446
+ "replica_count": 2
18447
+ }
18422
18448
  )
18423
18449
  '''
18424
18450
 
@@ -18430,6 +18456,7 @@ class Addon(
18430
18456
  addon_name: builtins.str,
18431
18457
  cluster: ICluster,
18432
18458
  addon_version: typing.Optional[builtins.str] = None,
18459
+ configuration_values: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
18433
18460
  preserve_on_delete: typing.Optional[builtins.bool] = None,
18434
18461
  ) -> None:
18435
18462
  '''Creates a new Amazon EKS Add-On.
@@ -18439,6 +18466,7 @@ class Addon(
18439
18466
  :param addon_name: Name of the Add-On.
18440
18467
  :param cluster: The EKS cluster the Add-On is associated with.
18441
18468
  :param addon_version: Version of the Add-On. You can check all available versions with describe-addon-versions. 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.
18469
+ :param configuration_values: The configuration values for the Add-on. Default: - Use default configuration.
18442
18470
  :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
18443
18471
  '''
18444
18472
  if __debug__:
@@ -18449,6 +18477,7 @@ class Addon(
18449
18477
  addon_name=addon_name,
18450
18478
  cluster=cluster,
18451
18479
  addon_version=addon_version,
18480
+ configuration_values=configuration_values,
18452
18481
  preserve_on_delete=preserve_on_delete,
18453
18482
  )
18454
18483
 
@@ -21808,6 +21837,7 @@ def _typecheckingstub__febc9f6cb4243d885b1b1838be38d633e7c5fc6534eaaf731f00a2465
21808
21837
  addon_name: builtins.str,
21809
21838
  cluster: ICluster,
21810
21839
  addon_version: typing.Optional[builtins.str] = None,
21840
+ configuration_values: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
21811
21841
  preserve_on_delete: typing.Optional[builtins.bool] = None,
21812
21842
  ) -> None:
21813
21843
  """Type checking stubs"""
@@ -23585,6 +23615,7 @@ def _typecheckingstub__a8342124e215d4789acf852df764143c4809251dbcaa86f6b4a11860e
23585
23615
  addon_name: builtins.str,
23586
23616
  cluster: ICluster,
23587
23617
  addon_version: typing.Optional[builtins.str] = None,
23618
+ configuration_values: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
23588
23619
  preserve_on_delete: typing.Optional[builtins.bool] = None,
23589
23620
  ) -> None:
23590
23621
  """Type checking stubs"""
@@ -3863,7 +3863,7 @@ class CfnListener(
3863
3863
  :param mutual_authentication: The mutual authentication configuration information.
3864
3864
  :param port: The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer.
3865
3865
  :param protocol: The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer.
3866
- :param ssl_policy: [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. For more information, see `Security policies <https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html>`_ in the *Application Load Balancers Guide* and `Security policies <https://docs.aws.amazon.com/elasticloadbalancing/latest/network/describe-ssl-policies.html>`_ in the *Network Load Balancers Guide* . Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. To decrease the possibility of an interruption if your load balancer is handling a high volume of traffic, create an additional load balancer or request an LCU reservation.
3866
+ :param ssl_policy: [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. For more information, see `Security policies <https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html>`_ in the *Application Load Balancers Guide* and `Security policies <https://docs.aws.amazon.com/elasticloadbalancing/latest/network/describe-ssl-policies.html>`_ in the *Network Load Balancers Guide* . [HTTPS listeners] Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. To decrease the possibility of an interruption if your load balancer is handling a high volume of traffic, create an additional load balancer or request an LCU reservation.
3867
3867
  '''
3868
3868
  if __debug__:
3869
3869
  type_hints = typing.get_type_hints(_typecheckingstub__da6c6bab97eae93f0a1595d72a25ac890e7034cc701e7cf76b58f5c6a2170048)
@@ -5382,7 +5382,7 @@ class CfnListener(
5382
5382
  ) -> None:
5383
5383
  '''Information about the target group stickiness for a rule.
5384
5384
 
5385
- :param duration_seconds: The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days).
5385
+ :param duration_seconds: The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.
5386
5386
  :param enabled: Indicates whether target group stickiness is enabled.
5387
5387
 
5388
5388
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgroupstickinessconfig.html
@@ -5413,7 +5413,7 @@ class CfnListener(
5413
5413
  def duration_seconds(self) -> typing.Optional[jsii.Number]:
5414
5414
  '''The time period, in seconds, during which requests from a client should be routed to the same target group.
5415
5415
 
5416
- The range is 1-604800 seconds (7 days).
5416
+ The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.
5417
5417
 
5418
5418
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listener-targetgroupstickinessconfig.html#cfn-elasticloadbalancingv2-listener-targetgroupstickinessconfig-durationseconds
5419
5419
  '''
@@ -5812,7 +5812,7 @@ class CfnListenerProps:
5812
5812
  :param mutual_authentication: The mutual authentication configuration information.
5813
5813
  :param port: The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer.
5814
5814
  :param protocol: The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer.
5815
- :param ssl_policy: [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. For more information, see `Security policies <https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html>`_ in the *Application Load Balancers Guide* and `Security policies <https://docs.aws.amazon.com/elasticloadbalancing/latest/network/describe-ssl-policies.html>`_ in the *Network Load Balancers Guide* . Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. To decrease the possibility of an interruption if your load balancer is handling a high volume of traffic, create an additional load balancer or request an LCU reservation.
5815
+ :param ssl_policy: [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. For more information, see `Security policies <https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html>`_ in the *Application Load Balancers Guide* and `Security policies <https://docs.aws.amazon.com/elasticloadbalancing/latest/network/describe-ssl-policies.html>`_ in the *Network Load Balancers Guide* . [HTTPS listeners] Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. To decrease the possibility of an interruption if your load balancer is handling a high volume of traffic, create an additional load balancer or request an LCU reservation.
5816
5816
 
5817
5817
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html
5818
5818
  :exampleMetadata: fixture=_generated
@@ -6042,7 +6042,7 @@ class CfnListenerProps:
6042
6042
 
6043
6043
  For more information, see `Security policies <https://docs.aws.amazon.com/elasticloadbalancing/latest/application/describe-ssl-policies.html>`_ in the *Application Load Balancers Guide* and `Security policies <https://docs.aws.amazon.com/elasticloadbalancing/latest/network/describe-ssl-policies.html>`_ in the *Network Load Balancers Guide* .
6044
6044
 
6045
- Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. To decrease the possibility of an interruption if your load balancer is handling a high volume of traffic, create an additional load balancer or request an LCU reservation.
6045
+ [HTTPS listeners] Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. To decrease the possibility of an interruption if your load balancer is handling a high volume of traffic, create an additional load balancer or request an LCU reservation.
6046
6046
 
6047
6047
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listener.html#cfn-elasticloadbalancingv2-listener-sslpolicy
6048
6048
  '''
@@ -8082,7 +8082,7 @@ class CfnListenerRule(
8082
8082
  ) -> None:
8083
8083
  '''Information about the target group stickiness for a rule.
8084
8084
 
8085
- :param duration_seconds: The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days).
8085
+ :param duration_seconds: The time period, in seconds, during which requests from a client should be routed to the same target group. The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.
8086
8086
  :param enabled: Indicates whether target group stickiness is enabled.
8087
8087
 
8088
8088
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgroupstickinessconfig.html
@@ -8113,7 +8113,7 @@ class CfnListenerRule(
8113
8113
  def duration_seconds(self) -> typing.Optional[jsii.Number]:
8114
8114
  '''The time period, in seconds, during which requests from a client should be routed to the same target group.
8115
8115
 
8116
- The range is 1-604800 seconds (7 days).
8116
+ The range is 1-604800 seconds (7 days). You must specify this value when enabling target group stickiness.
8117
8117
 
8118
8118
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticloadbalancingv2-listenerrule-targetgroupstickinessconfig.html#cfn-elasticloadbalancingv2-listenerrule-targetgroupstickinessconfig-durationseconds
8119
8119
  '''
@@ -3704,19 +3704,27 @@ class CfnCluster(
3704
3704
  @jsii.data_type(
3705
3705
  jsii_type="aws-cdk-lib.aws_emr.CfnCluster.ManagedScalingPolicyProperty",
3706
3706
  jsii_struct_bases=[],
3707
- name_mapping={"compute_limits": "computeLimits"},
3707
+ name_mapping={
3708
+ "compute_limits": "computeLimits",
3709
+ "scaling_strategy": "scalingStrategy",
3710
+ "utilization_performance_index": "utilizationPerformanceIndex",
3711
+ },
3708
3712
  )
3709
3713
  class ManagedScalingPolicyProperty:
3710
3714
  def __init__(
3711
3715
  self,
3712
3716
  *,
3713
3717
  compute_limits: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCluster.ComputeLimitsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3718
+ scaling_strategy: typing.Optional[builtins.str] = None,
3719
+ utilization_performance_index: typing.Optional[jsii.Number] = None,
3714
3720
  ) -> None:
3715
3721
  '''Managed scaling policy for an Amazon EMR cluster.
3716
3722
 
3717
3723
  The policy specifies the limits for resources that can be added or terminated from a cluster. The policy only applies to the core and task nodes. The master node cannot be scaled after initial configuration.
3718
3724
 
3719
3725
  :param compute_limits: The Amazon EC2 unit limits for a managed scaling policy. The managed scaling activity of a cluster is not allowed to go above or below these limits. The limit only applies to the core and task nodes. The master node cannot be scaled after initial configuration.
3726
+ :param scaling_strategy:
3727
+ :param utilization_performance_index:
3720
3728
 
3721
3729
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-managedscalingpolicy.html
3722
3730
  :exampleMetadata: fixture=_generated
@@ -3736,15 +3744,23 @@ class CfnCluster(
3736
3744
  # the properties below are optional
3737
3745
  maximum_core_capacity_units=123,
3738
3746
  maximum_on_demand_capacity_units=123
3739
- )
3747
+ ),
3748
+ scaling_strategy="scalingStrategy",
3749
+ utilization_performance_index=123
3740
3750
  )
3741
3751
  '''
3742
3752
  if __debug__:
3743
3753
  type_hints = typing.get_type_hints(_typecheckingstub__0286741b316b450e24ed1eff9bc726fec190a69e54cee78ab3a340bcde86cafe)
3744
3754
  check_type(argname="argument compute_limits", value=compute_limits, expected_type=type_hints["compute_limits"])
3755
+ check_type(argname="argument scaling_strategy", value=scaling_strategy, expected_type=type_hints["scaling_strategy"])
3756
+ check_type(argname="argument utilization_performance_index", value=utilization_performance_index, expected_type=type_hints["utilization_performance_index"])
3745
3757
  self._values: typing.Dict[builtins.str, typing.Any] = {}
3746
3758
  if compute_limits is not None:
3747
3759
  self._values["compute_limits"] = compute_limits
3760
+ if scaling_strategy is not None:
3761
+ self._values["scaling_strategy"] = scaling_strategy
3762
+ if utilization_performance_index is not None:
3763
+ self._values["utilization_performance_index"] = utilization_performance_index
3748
3764
 
3749
3765
  @builtins.property
3750
3766
  def compute_limits(
@@ -3759,6 +3775,22 @@ class CfnCluster(
3759
3775
  result = self._values.get("compute_limits")
3760
3776
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnCluster.ComputeLimitsProperty"]], result)
3761
3777
 
3778
+ @builtins.property
3779
+ def scaling_strategy(self) -> typing.Optional[builtins.str]:
3780
+ '''
3781
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-managedscalingpolicy.html#cfn-emr-cluster-managedscalingpolicy-scalingstrategy
3782
+ '''
3783
+ result = self._values.get("scaling_strategy")
3784
+ return typing.cast(typing.Optional[builtins.str], result)
3785
+
3786
+ @builtins.property
3787
+ def utilization_performance_index(self) -> typing.Optional[jsii.Number]:
3788
+ '''
3789
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-emr-cluster-managedscalingpolicy.html#cfn-emr-cluster-managedscalingpolicy-utilizationperformanceindex
3790
+ '''
3791
+ result = self._values.get("utilization_performance_index")
3792
+ return typing.cast(typing.Optional[jsii.Number], result)
3793
+
3762
3794
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
3763
3795
  return isinstance(rhs, self.__class__) and rhs._values == self._values
3764
3796
 
@@ -11952,6 +11984,8 @@ def _typecheckingstub__0de77f42d53bb5f752f54244451586c821de421f64b6929630c898540
11952
11984
  def _typecheckingstub__0286741b316b450e24ed1eff9bc726fec190a69e54cee78ab3a340bcde86cafe(
11953
11985
  *,
11954
11986
  compute_limits: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCluster.ComputeLimitsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
11987
+ scaling_strategy: typing.Optional[builtins.str] = None,
11988
+ utilization_performance_index: typing.Optional[jsii.Number] = None,
11955
11989
  ) -> None:
11956
11990
  """Type checking stubs"""
11957
11991
  pass
@@ -27,6 +27,7 @@ Currently supported are:
27
27
  * [Assign public IP addresses to tasks](#assign-public-ip-addresses-to-tasks)
28
28
  * [Enable Amazon ECS Exec for ECS Task](#enable-amazon-ecs-exec-for-ecs-task)
29
29
  * [Run a Redshift query](#schedule-a-redshift-query-serverless-or-cluster)
30
+ * [Publish to an SNS topic](#publish-to-an-sns-topic)
30
31
 
31
32
  See the README of the `aws-cdk-lib/aws-events` library for more information on
32
33
  EventBridge.
@@ -624,6 +625,40 @@ rule.add_target(targets.RedshiftQuery(workgroup.attr_workgroup_workgroup_arn,
624
625
  sql=["SELECT * FROM foo", "SELECT * FROM baz"]
625
626
  ))
626
627
  ```
628
+
629
+ ## Publish to an SNS Topic
630
+
631
+ Use the `SnsTopic` target to publish to an SNS Topic.
632
+
633
+ The code snippet below creates the scheduled event rule that publishes to an SNS Topic using a resource policy.
634
+
635
+ ```python
636
+ import aws_cdk.aws_sns as sns
637
+
638
+ # topic: sns.ITopic
639
+
640
+
641
+ rule = events.Rule(self, "Rule",
642
+ schedule=events.Schedule.rate(cdk.Duration.hours(1))
643
+ )
644
+
645
+ rule.add_target(targets.SnsTopic(topic))
646
+ ```
647
+
648
+ Alternatively, a role can be attached to the target when the rule is triggered.
649
+
650
+ ```python
651
+ import aws_cdk.aws_sns as sns
652
+
653
+ # topic: sns.ITopic
654
+
655
+
656
+ rule = events.Rule(self, "Rule",
657
+ schedule=events.Schedule.rate(cdk.Duration.hours(1))
658
+ )
659
+
660
+ rule.add_target(targets.SnsTopic(topic, authorize_using_role=True))
661
+ ```
627
662
  '''
628
663
  from pkgutil import extend_path
629
664
  __path__ = extend_path(__path__, __name__)
@@ -3302,14 +3337,18 @@ class SnsTopic(
3302
3337
  self,
3303
3338
  topic: _ITopic_9eca4852,
3304
3339
  *,
3340
+ authorize_using_role: typing.Optional[builtins.bool] = None,
3305
3341
  message: typing.Optional[_RuleTargetInput_6beca786] = None,
3342
+ role: typing.Optional[_IRole_235f5d8e] = None,
3306
3343
  dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
3307
3344
  max_event_age: typing.Optional[_Duration_4839e8c3] = None,
3308
3345
  retry_attempts: typing.Optional[jsii.Number] = None,
3309
3346
  ) -> None:
3310
3347
  '''
3311
3348
  :param topic: -
3349
+ :param authorize_using_role: Specifies whether an IAM role should be used to publish to the topic. Default: - true if ``role`` is provided, false otherwise
3312
3350
  :param message: The message to send to the topic. Default: the entire EventBridge event
3351
+ :param role: The IAM role to be used to publish to the topic. Default: - a new role will be created if ``authorizeUsingRole`` is true
3313
3352
  :param dead_letter_queue: The SQS queue to be used as deadLetterQueue. Check out the `considerations for using a dead-letter queue <https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations>`_. The events not successfully delivered are automatically retried for a specified period of time, depending on the retry policy of the target. If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. Default: - no dead-letter queue
3314
3353
  :param max_event_age: The maximum age of a request that Lambda sends to a function for processing. Minimum value of 60. Maximum value of 86400. Default: Duration.hours(24)
3315
3354
  :param retry_attempts: The maximum number of times to retry when the function returns an error. Minimum value of 0. Maximum value of 185. Default: 185
@@ -3318,7 +3357,9 @@ class SnsTopic(
3318
3357
  type_hints = typing.get_type_hints(_typecheckingstub__b58aa74b2a717b90ef291556746b786df8882b8158b4b3255bf88691dbd8fd07)
3319
3358
  check_type(argname="argument topic", value=topic, expected_type=type_hints["topic"])
3320
3359
  props = SnsTopicProps(
3360
+ authorize_using_role=authorize_using_role,
3321
3361
  message=message,
3362
+ role=role,
3322
3363
  dead_letter_queue=dead_letter_queue,
3323
3364
  max_event_age=max_event_age,
3324
3365
  retry_attempts=retry_attempts,
@@ -5722,7 +5763,9 @@ class SfnStateMachineProps(TargetBaseProps):
5722
5763
  "dead_letter_queue": "deadLetterQueue",
5723
5764
  "max_event_age": "maxEventAge",
5724
5765
  "retry_attempts": "retryAttempts",
5766
+ "authorize_using_role": "authorizeUsingRole",
5725
5767
  "message": "message",
5768
+ "role": "role",
5726
5769
  },
5727
5770
  )
5728
5771
  class SnsTopicProps(TargetBaseProps):
@@ -5732,14 +5775,18 @@ class SnsTopicProps(TargetBaseProps):
5732
5775
  dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
5733
5776
  max_event_age: typing.Optional[_Duration_4839e8c3] = None,
5734
5777
  retry_attempts: typing.Optional[jsii.Number] = None,
5778
+ authorize_using_role: typing.Optional[builtins.bool] = None,
5735
5779
  message: typing.Optional[_RuleTargetInput_6beca786] = None,
5780
+ role: typing.Optional[_IRole_235f5d8e] = None,
5736
5781
  ) -> None:
5737
5782
  '''Customize the SNS Topic Event Target.
5738
5783
 
5739
5784
  :param dead_letter_queue: The SQS queue to be used as deadLetterQueue. Check out the `considerations for using a dead-letter queue <https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations>`_. The events not successfully delivered are automatically retried for a specified period of time, depending on the retry policy of the target. If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. Default: - no dead-letter queue
5740
5785
  :param max_event_age: The maximum age of a request that Lambda sends to a function for processing. Minimum value of 60. Maximum value of 86400. Default: Duration.hours(24)
5741
5786
  :param retry_attempts: The maximum number of times to retry when the function returns an error. Minimum value of 0. Maximum value of 185. Default: 185
5787
+ :param authorize_using_role: Specifies whether an IAM role should be used to publish to the topic. Default: - true if ``role`` is provided, false otherwise
5742
5788
  :param message: The message to send to the topic. Default: the entire EventBridge event
5789
+ :param role: The IAM role to be used to publish to the topic. Default: - a new role will be created if ``authorizeUsingRole`` is true
5743
5790
 
5744
5791
  :exampleMetadata: infused
5745
5792
 
@@ -5750,7 +5797,9 @@ class SnsTopicProps(TargetBaseProps):
5750
5797
 
5751
5798
 
5752
5799
  on_commit_rule.add_target(targets.SnsTopic(topic,
5753
- message=events.RuleTargetInput.from_text(f"A commit was pushed to the repository {codecommit.ReferenceEvent.repositoryName} on branch {codecommit.ReferenceEvent.referenceName}")
5800
+ message=events.RuleTargetInput.from_object({
5801
+ "DataType": f"custom_{events.EventField.fromPath('$.detail-type')}"
5802
+ })
5754
5803
  ))
5755
5804
  '''
5756
5805
  if __debug__:
@@ -5758,7 +5807,9 @@ class SnsTopicProps(TargetBaseProps):
5758
5807
  check_type(argname="argument dead_letter_queue", value=dead_letter_queue, expected_type=type_hints["dead_letter_queue"])
5759
5808
  check_type(argname="argument max_event_age", value=max_event_age, expected_type=type_hints["max_event_age"])
5760
5809
  check_type(argname="argument retry_attempts", value=retry_attempts, expected_type=type_hints["retry_attempts"])
5810
+ check_type(argname="argument authorize_using_role", value=authorize_using_role, expected_type=type_hints["authorize_using_role"])
5761
5811
  check_type(argname="argument message", value=message, expected_type=type_hints["message"])
5812
+ check_type(argname="argument role", value=role, expected_type=type_hints["role"])
5762
5813
  self._values: typing.Dict[builtins.str, typing.Any] = {}
5763
5814
  if dead_letter_queue is not None:
5764
5815
  self._values["dead_letter_queue"] = dead_letter_queue
@@ -5766,8 +5817,12 @@ class SnsTopicProps(TargetBaseProps):
5766
5817
  self._values["max_event_age"] = max_event_age
5767
5818
  if retry_attempts is not None:
5768
5819
  self._values["retry_attempts"] = retry_attempts
5820
+ if authorize_using_role is not None:
5821
+ self._values["authorize_using_role"] = authorize_using_role
5769
5822
  if message is not None:
5770
5823
  self._values["message"] = message
5824
+ if role is not None:
5825
+ self._values["role"] = role
5771
5826
 
5772
5827
  @builtins.property
5773
5828
  def dead_letter_queue(self) -> typing.Optional[_IQueue_7ed6f679]:
@@ -5806,6 +5861,15 @@ class SnsTopicProps(TargetBaseProps):
5806
5861
  result = self._values.get("retry_attempts")
5807
5862
  return typing.cast(typing.Optional[jsii.Number], result)
5808
5863
 
5864
+ @builtins.property
5865
+ def authorize_using_role(self) -> typing.Optional[builtins.bool]:
5866
+ '''Specifies whether an IAM role should be used to publish to the topic.
5867
+
5868
+ :default: - true if ``role`` is provided, false otherwise
5869
+ '''
5870
+ result = self._values.get("authorize_using_role")
5871
+ return typing.cast(typing.Optional[builtins.bool], result)
5872
+
5809
5873
  @builtins.property
5810
5874
  def message(self) -> typing.Optional[_RuleTargetInput_6beca786]:
5811
5875
  '''The message to send to the topic.
@@ -5815,6 +5879,15 @@ class SnsTopicProps(TargetBaseProps):
5815
5879
  result = self._values.get("message")
5816
5880
  return typing.cast(typing.Optional[_RuleTargetInput_6beca786], result)
5817
5881
 
5882
+ @builtins.property
5883
+ def role(self) -> typing.Optional[_IRole_235f5d8e]:
5884
+ '''The IAM role to be used to publish to the topic.
5885
+
5886
+ :default: - a new role will be created if ``authorizeUsingRole`` is true
5887
+ '''
5888
+ result = self._values.get("role")
5889
+ return typing.cast(typing.Optional[_IRole_235f5d8e], result)
5890
+
5818
5891
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
5819
5892
  return isinstance(rhs, self.__class__) and rhs._values == self._values
5820
5893
 
@@ -6428,7 +6501,9 @@ def _typecheckingstub__0e0733fbe09a8310edfc7237ca759e925b3db6d25ad43627fcf4f165c
6428
6501
  def _typecheckingstub__b58aa74b2a717b90ef291556746b786df8882b8158b4b3255bf88691dbd8fd07(
6429
6502
  topic: _ITopic_9eca4852,
6430
6503
  *,
6504
+ authorize_using_role: typing.Optional[builtins.bool] = None,
6431
6505
  message: typing.Optional[_RuleTargetInput_6beca786] = None,
6506
+ role: typing.Optional[_IRole_235f5d8e] = None,
6432
6507
  dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
6433
6508
  max_event_age: typing.Optional[_Duration_4839e8c3] = None,
6434
6509
  retry_attempts: typing.Optional[jsii.Number] = None,
@@ -6641,7 +6716,9 @@ def _typecheckingstub__29b5b095e8884167f8f78e4ccfc6cd844ecb24d73c2e229d24c0a7a18
6641
6716
  dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
6642
6717
  max_event_age: typing.Optional[_Duration_4839e8c3] = None,
6643
6718
  retry_attempts: typing.Optional[jsii.Number] = None,
6719
+ authorize_using_role: typing.Optional[builtins.bool] = None,
6644
6720
  message: typing.Optional[_RuleTargetInput_6beca786] = None,
6721
+ role: typing.Optional[_IRole_235f5d8e] = None,
6645
6722
  ) -> None:
6646
6723
  """Type checking stubs"""
6647
6724
  pass