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

@@ -644,6 +644,14 @@ stack2 = Stack2(app, "Stack2",
644
644
  )
645
645
  ```
646
646
 
647
+ > Note: If you encounter an error like "Delete canceled. Cannot delete export ..."
648
+ > when using a cross-stack reference to a VPC, it's likely due to CloudFormation
649
+ > export/import constraints. In such cases, it's safer to use Vpc.fromLookup()
650
+ > in the consuming stack instead of directly referencing the VPC object, more details
651
+ > is provided in [Importing an existing VPC](#importing-an-existing-vpc). This
652
+ > avoids creating CloudFormation exports and gives more flexibility, especially
653
+ > when stacks need to be deleted or updated independently.
654
+
647
655
  ### Importing an existing VPC
648
656
 
649
657
  If your VPC is created outside your CDK app, you can use `Vpc.fromLookup()`.
@@ -90525,15 +90533,18 @@ class SecurityGroup(
90525
90533
 
90526
90534
  Example::
90527
90535
 
90528
- # vpc: ec2.Vpc
90529
-
90536
+ vpc = ec2.Vpc(self, "Vpc", max_azs=1)
90537
+ cluster = ecs.Cluster(self, "EcsCluster", vpc=vpc)
90538
+ security_group = ec2.SecurityGroup(self, "SG", vpc=vpc)
90530
90539
 
90531
- my_security_group = ec2.SecurityGroup(self, "SecurityGroup", vpc=vpc)
90532
- autoscaling.AutoScalingGroup(self, "ASG",
90533
- vpc=vpc,
90534
- instance_type=ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE2, ec2.InstanceSize.MICRO),
90535
- machine_image=ec2.MachineImage.latest_amazon_linux2(),
90536
- security_group=my_security_group
90540
+ scheduled_fargate_task = ecs_patterns.ScheduledFargateTask(self, "ScheduledFargateTask",
90541
+ cluster=cluster,
90542
+ scheduled_fargate_task_image_options=ecsPatterns.ScheduledFargateTaskImageOptions(
90543
+ image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
90544
+ memory_limit_mi_b=512
90545
+ ),
90546
+ schedule=appscaling.Schedule.expression("rate(1 minute)"),
90547
+ security_groups=[security_group]
90537
90548
  )
90538
90549
  '''
90539
90550
 
@@ -249,7 +249,9 @@ load_balanced_fargate_service = ecs_patterns.NetworkMultipleTargetGroupsFargateS
249
249
  container_port=90,
250
250
  listener="listener2"
251
251
  )
252
- ]
252
+ ],
253
+ min_healthy_percent=100,
254
+ max_healthy_percent=200
253
255
  )
254
256
  ```
255
257
 
@@ -12688,7 +12690,9 @@ class NetworkMultipleTargetGroupsFargateService(
12688
12690
  container_port=90,
12689
12691
  listener="listener2"
12690
12692
  )
12691
- ]
12693
+ ],
12694
+ min_healthy_percent=100,
12695
+ max_healthy_percent=200
12692
12696
  )
12693
12697
  '''
12694
12698
 
@@ -12698,6 +12702,8 @@ class NetworkMultipleTargetGroupsFargateService(
12698
12702
  id: builtins.str,
12699
12703
  *,
12700
12704
  assign_public_ip: typing.Optional[builtins.bool] = None,
12705
+ max_healthy_percent: typing.Optional[jsii.Number] = None,
12706
+ min_healthy_percent: typing.Optional[jsii.Number] = None,
12701
12707
  cloud_map_options: typing.Optional[typing.Union[_CloudMapOptions_444ee9f2, typing.Dict[builtins.str, typing.Any]]] = None,
12702
12708
  cluster: typing.Optional[_ICluster_16cddd09] = None,
12703
12709
  desired_count: typing.Optional[jsii.Number] = None,
@@ -12722,6 +12728,8 @@ class NetworkMultipleTargetGroupsFargateService(
12722
12728
  :param scope: -
12723
12729
  :param id: -
12724
12730
  :param assign_public_ip: Determines whether the service will be assigned a public IP address. Default: false
12731
+ :param max_healthy_percent: The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment. Default: - 200%
12732
+ :param min_healthy_percent: The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment. Default: - 50%
12725
12733
  :param cloud_map_options: The options for configuring an Amazon ECS service to use service discovery. Default: - AWS Cloud Map service discovery is not enabled.
12726
12734
  :param cluster: The name of the cluster that hosts the service. If a cluster is specified, the vpc construct should be omitted. Alternatively, you can omit both cluster and vpc. Default: - create a new cluster; if both cluster and vpc are omitted, a new VPC will be created for you.
12727
12735
  :param desired_count: The desired number of instantiations of the task definition to keep running on the service. The minimum value is 1 Default: - The default is 1 for all new services and uses the existing service's desired count when updating an existing service.
@@ -12747,6 +12755,8 @@ class NetworkMultipleTargetGroupsFargateService(
12747
12755
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
12748
12756
  props = NetworkMultipleTargetGroupsFargateServiceProps(
12749
12757
  assign_public_ip=assign_public_ip,
12758
+ max_healthy_percent=max_healthy_percent,
12759
+ min_healthy_percent=min_healthy_percent,
12750
12760
  cloud_map_options=cloud_map_options,
12751
12761
  cluster=cluster,
12752
12762
  desired_count=desired_count,
@@ -12830,6 +12840,8 @@ class NetworkMultipleTargetGroupsFargateService(
12830
12840
  "runtime_platform": "runtimePlatform",
12831
12841
  "task_definition": "taskDefinition",
12832
12842
  "assign_public_ip": "assignPublicIp",
12843
+ "max_healthy_percent": "maxHealthyPercent",
12844
+ "min_healthy_percent": "minHealthyPercent",
12833
12845
  },
12834
12846
  )
12835
12847
  class NetworkMultipleTargetGroupsFargateServiceProps(
@@ -12858,6 +12870,8 @@ class NetworkMultipleTargetGroupsFargateServiceProps(
12858
12870
  runtime_platform: typing.Optional[typing.Union[_RuntimePlatform_5ed98a9c, typing.Dict[builtins.str, typing.Any]]] = None,
12859
12871
  task_definition: typing.Optional[_FargateTaskDefinition_83754b60] = None,
12860
12872
  assign_public_ip: typing.Optional[builtins.bool] = None,
12873
+ max_healthy_percent: typing.Optional[jsii.Number] = None,
12874
+ min_healthy_percent: typing.Optional[jsii.Number] = None,
12861
12875
  ) -> None:
12862
12876
  '''The properties for the NetworkMultipleTargetGroupsFargateService service.
12863
12877
 
@@ -12880,6 +12894,8 @@ class NetworkMultipleTargetGroupsFargateServiceProps(
12880
12894
  :param runtime_platform: The runtime platform of the task definition. Default: - If the property is undefined, ``operatingSystemFamily`` is LINUX and ``cpuArchitecture`` is X86_64
12881
12895
  :param task_definition: The task definition to use for tasks in the service. TaskDefinition or TaskImageOptions must be specified, but not both. [disable-awslint:ref-via-interface] Default: - none
12882
12896
  :param assign_public_ip: Determines whether the service will be assigned a public IP address. Default: false
12897
+ :param max_healthy_percent: The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment. Default: - 200%
12898
+ :param min_healthy_percent: The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment. Default: - 50%
12883
12899
 
12884
12900
  :exampleMetadata: infused
12885
12901
 
@@ -12915,7 +12931,9 @@ class NetworkMultipleTargetGroupsFargateServiceProps(
12915
12931
  container_port=90,
12916
12932
  listener="listener2"
12917
12933
  )
12918
- ]
12934
+ ],
12935
+ min_healthy_percent=100,
12936
+ max_healthy_percent=200
12919
12937
  )
12920
12938
  '''
12921
12939
  if isinstance(cloud_map_options, dict):
@@ -12945,6 +12963,8 @@ class NetworkMultipleTargetGroupsFargateServiceProps(
12945
12963
  check_type(argname="argument runtime_platform", value=runtime_platform, expected_type=type_hints["runtime_platform"])
12946
12964
  check_type(argname="argument task_definition", value=task_definition, expected_type=type_hints["task_definition"])
12947
12965
  check_type(argname="argument assign_public_ip", value=assign_public_ip, expected_type=type_hints["assign_public_ip"])
12966
+ check_type(argname="argument max_healthy_percent", value=max_healthy_percent, expected_type=type_hints["max_healthy_percent"])
12967
+ check_type(argname="argument min_healthy_percent", value=min_healthy_percent, expected_type=type_hints["min_healthy_percent"])
12948
12968
  self._values: typing.Dict[builtins.str, typing.Any] = {}
12949
12969
  if cloud_map_options is not None:
12950
12970
  self._values["cloud_map_options"] = cloud_map_options
@@ -12984,6 +13004,10 @@ class NetworkMultipleTargetGroupsFargateServiceProps(
12984
13004
  self._values["task_definition"] = task_definition
12985
13005
  if assign_public_ip is not None:
12986
13006
  self._values["assign_public_ip"] = assign_public_ip
13007
+ if max_healthy_percent is not None:
13008
+ self._values["max_healthy_percent"] = max_healthy_percent
13009
+ if min_healthy_percent is not None:
13010
+ self._values["min_healthy_percent"] = min_healthy_percent
12987
13011
 
12988
13012
  @builtins.property
12989
13013
  def cloud_map_options(self) -> typing.Optional[_CloudMapOptions_444ee9f2]:
@@ -13219,6 +13243,24 @@ class NetworkMultipleTargetGroupsFargateServiceProps(
13219
13243
  result = self._values.get("assign_public_ip")
13220
13244
  return typing.cast(typing.Optional[builtins.bool], result)
13221
13245
 
13246
+ @builtins.property
13247
+ def max_healthy_percent(self) -> typing.Optional[jsii.Number]:
13248
+ '''The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment.
13249
+
13250
+ :default: - 200%
13251
+ '''
13252
+ result = self._values.get("max_healthy_percent")
13253
+ return typing.cast(typing.Optional[jsii.Number], result)
13254
+
13255
+ @builtins.property
13256
+ def min_healthy_percent(self) -> typing.Optional[jsii.Number]:
13257
+ '''The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment.
13258
+
13259
+ :default: - 50%
13260
+ '''
13261
+ result = self._values.get("min_healthy_percent")
13262
+ return typing.cast(typing.Optional[jsii.Number], result)
13263
+
13222
13264
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
13223
13265
  return isinstance(rhs, self.__class__) and rhs._values == self._values
13224
13266
 
@@ -17595,6 +17637,8 @@ def _typecheckingstub__d0896ef010a141982cad4e6363ddf5474e1d63a5c38dc712f84a1d13e
17595
17637
  id: builtins.str,
17596
17638
  *,
17597
17639
  assign_public_ip: typing.Optional[builtins.bool] = None,
17640
+ max_healthy_percent: typing.Optional[jsii.Number] = None,
17641
+ min_healthy_percent: typing.Optional[jsii.Number] = None,
17598
17642
  cloud_map_options: typing.Optional[typing.Union[_CloudMapOptions_444ee9f2, typing.Dict[builtins.str, typing.Any]]] = None,
17599
17643
  cluster: typing.Optional[_ICluster_16cddd09] = None,
17600
17644
  desired_count: typing.Optional[jsii.Number] = None,
@@ -17638,6 +17682,8 @@ def _typecheckingstub__052b2be34bb887cde358099c21efe7f3e968827a5a4e4c975e35f96da
17638
17682
  runtime_platform: typing.Optional[typing.Union[_RuntimePlatform_5ed98a9c, typing.Dict[builtins.str, typing.Any]]] = None,
17639
17683
  task_definition: typing.Optional[_FargateTaskDefinition_83754b60] = None,
17640
17684
  assign_public_ip: typing.Optional[builtins.bool] = None,
17685
+ max_healthy_percent: typing.Optional[jsii.Number] = None,
17686
+ min_healthy_percent: typing.Optional[jsii.Number] = None,
17641
17687
  ) -> None:
17642
17688
  """Type checking stubs"""
17643
17689
  pass
@@ -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"""
@@ -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
@@ -21423,7 +21423,7 @@ class DatabaseClusterFromSnapshotProps:
21423
21423
  :param snapshot_credentials: Master user credentials. Note - It is not possible to change the master username for a snapshot; however, it is possible to provide (or generate) a new password. Default: - The existing username and password from the snapshot will be used.
21424
21424
  :param storage_encrypted: Whether to enable storage encryption. Default: - true if storageEncryptionKey is provided, false otherwise
21425
21425
  :param storage_encryption_key: The KMS key for storage encryption. If specified, ``storageEncrypted`` will be set to ``true``. Default: - if storageEncrypted is true then the default master key, no key otherwise
21426
- :param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA_IOPT1
21426
+ :param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA
21427
21427
  :param subnet_group: Existing subnet group for the cluster. Default: - a new subnet group will be created.
21428
21428
  :param vpc: What subnets to run the RDS instances in. Must be at least 2 subnets in two different AZs.
21429
21429
  :param vpc_subnets: Where to place the instances within the VPC. Default: - the Vpc default strategy if not specified.
@@ -22198,7 +22198,7 @@ class DatabaseClusterFromSnapshotProps:
22198
22198
  def storage_type(self) -> typing.Optional[DBClusterStorageType]:
22199
22199
  '''The storage type to be associated with the DB cluster.
22200
22200
 
22201
- :default: - DBClusterStorageType.AURORA_IOPT1
22201
+ :default: - DBClusterStorageType.AURORA
22202
22202
  '''
22203
22203
  result = self._values.get("storage_type")
22204
22204
  return typing.cast(typing.Optional[DBClusterStorageType], result)
@@ -22418,7 +22418,7 @@ class DatabaseClusterProps:
22418
22418
  :param serverless_v2_min_capacity: The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5. Default: 0.5
22419
22419
  :param storage_encrypted: Whether to enable storage encryption. Default: - true if storageEncryptionKey is provided, false otherwise
22420
22420
  :param storage_encryption_key: The KMS key for storage encryption. If specified, ``storageEncrypted`` will be set to ``true``. Default: - if storageEncrypted is true then the default master key, no key otherwise
22421
- :param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA_IOPT1
22421
+ :param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA
22422
22422
  :param subnet_group: Existing subnet group for the cluster. Default: - a new subnet group will be created.
22423
22423
  :param vpc: What subnets to run the RDS instances in. Must be at least 2 subnets in two different AZs.
22424
22424
  :param vpc_subnets: Where to place the instances within the VPC. Default: - the Vpc default strategy if not specified.
@@ -23176,7 +23176,7 @@ class DatabaseClusterProps:
23176
23176
  def storage_type(self) -> typing.Optional[DBClusterStorageType]:
23177
23177
  '''The storage type to be associated with the DB cluster.
23178
23178
 
23179
- :default: - DBClusterStorageType.AURORA_IOPT1
23179
+ :default: - DBClusterStorageType.AURORA
23180
23180
  '''
23181
23181
  result = self._values.get("storage_type")
23182
23182
  return typing.cast(typing.Optional[DBClusterStorageType], result)
@@ -42728,7 +42728,7 @@ class DatabaseClusterFromSnapshot(
42728
42728
  :param snapshot_credentials: Master user credentials. Note - It is not possible to change the master username for a snapshot; however, it is possible to provide (or generate) a new password. Default: - The existing username and password from the snapshot will be used.
42729
42729
  :param storage_encrypted: Whether to enable storage encryption. Default: - true if storageEncryptionKey is provided, false otherwise
42730
42730
  :param storage_encryption_key: The KMS key for storage encryption. If specified, ``storageEncrypted`` will be set to ``true``. Default: - if storageEncrypted is true then the default master key, no key otherwise
42731
- :param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA_IOPT1
42731
+ :param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA
42732
42732
  :param subnet_group: Existing subnet group for the cluster. Default: - a new subnet group will be created.
42733
42733
  :param vpc: What subnets to run the RDS instances in. Must be at least 2 subnets in two different AZs.
42734
42734
  :param vpc_subnets: Where to place the instances within the VPC. Default: - the Vpc default strategy if not specified.
@@ -46936,7 +46936,7 @@ class DatabaseCluster(
46936
46936
  :param serverless_v2_min_capacity: The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5. Default: 0.5
46937
46937
  :param storage_encrypted: Whether to enable storage encryption. Default: - true if storageEncryptionKey is provided, false otherwise
46938
46938
  :param storage_encryption_key: The KMS key for storage encryption. If specified, ``storageEncrypted`` will be set to ``true``. Default: - if storageEncrypted is true then the default master key, no key otherwise
46939
- :param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA_IOPT1
46939
+ :param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA
46940
46940
  :param subnet_group: Existing subnet group for the cluster. Default: - a new subnet group will be created.
46941
46941
  :param vpc: What subnets to run the RDS instances in. Must be at least 2 subnets in two different AZs.
46942
46942
  :param vpc_subnets: Where to place the instances within the VPC. Default: - the Vpc default strategy if not specified.