aws-cdk-lib 2.73.0__py3-none-any.whl → 2.76.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 (111) hide show
  1. aws_cdk/__init__.py +245 -259
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.73.0.jsii.tgz → aws-cdk-lib@2.76.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amplifyuibuilder/__init__.py +182 -214
  5. aws_cdk/aws_apigateway/__init__.py +95 -148
  6. aws_cdk/aws_appconfig/__init__.py +8 -4
  7. aws_cdk/aws_appflow/__init__.py +27 -52
  8. aws_cdk/aws_appmesh/__init__.py +91 -200
  9. aws_cdk/aws_apprunner/__init__.py +4 -16
  10. aws_cdk/aws_appstream/__init__.py +18 -82
  11. aws_cdk/aws_athena/__init__.py +18 -32
  12. aws_cdk/aws_backup/__init__.py +48 -86
  13. aws_cdk/aws_batch/__init__.py +9 -2
  14. aws_cdk/aws_billingconductor/__init__.py +12 -7
  15. aws_cdk/aws_budgets/__init__.py +8 -17
  16. aws_cdk/aws_certificatemanager/__init__.py +7 -4
  17. aws_cdk/aws_cloudfront/__init__.py +14 -11
  18. aws_cdk/aws_cloudfront_origins/__init__.py +18 -8
  19. aws_cdk/aws_cloudtrail/__init__.py +7 -14
  20. aws_cdk/aws_cloudwatch/__init__.py +63 -35
  21. aws_cdk/aws_codebuild/__init__.py +10 -13
  22. aws_cdk/aws_codecommit/__init__.py +0 -1
  23. aws_cdk/aws_codedeploy/__init__.py +165 -162
  24. aws_cdk/aws_codegurureviewer/__init__.py +4 -4
  25. aws_cdk/aws_codepipeline/__init__.py +0 -4
  26. aws_cdk/aws_codepipeline_actions/__init__.py +16 -164
  27. aws_cdk/aws_cognito/__init__.py +195 -100
  28. aws_cdk/aws_config/__init__.py +28 -51
  29. aws_cdk/aws_connectcampaigns/__init__.py +5 -6
  30. aws_cdk/aws_databrew/__init__.py +5 -6
  31. aws_cdk/aws_dlm/__init__.py +33 -71
  32. aws_cdk/aws_docdb/__init__.py +20 -76
  33. aws_cdk/aws_dynamodb/__init__.py +29 -22
  34. aws_cdk/aws_ec2/__init__.py +2414 -603
  35. aws_cdk/aws_ecr/__init__.py +1 -2
  36. aws_cdk/aws_ecr_assets/__init__.py +27 -14
  37. aws_cdk/aws_ecs/__init__.py +458 -163
  38. aws_cdk/aws_ecs_patterns/__init__.py +13 -11
  39. aws_cdk/aws_eks/__init__.py +13 -8
  40. aws_cdk/aws_elasticloadbalancing/__init__.py +16 -9
  41. aws_cdk/aws_elasticloadbalancingv2/__init__.py +142 -82
  42. aws_cdk/aws_elasticloadbalancingv2_actions/__init__.py +126 -61
  43. aws_cdk/aws_elasticsearch/__init__.py +0 -7
  44. aws_cdk/aws_emr/__init__.py +7 -16
  45. aws_cdk/aws_emrserverless/__init__.py +14 -18
  46. aws_cdk/aws_events/__init__.py +33 -29
  47. aws_cdk/aws_events_targets/__init__.py +248 -89
  48. aws_cdk/aws_frauddetector/__init__.py +3 -4
  49. aws_cdk/aws_fsx/__init__.py +13 -7
  50. aws_cdk/aws_gamelift/__init__.py +11 -20
  51. aws_cdk/aws_grafana/__init__.py +4 -4
  52. aws_cdk/aws_iam/__init__.py +21 -25
  53. aws_cdk/aws_imagebuilder/__init__.py +58 -80
  54. aws_cdk/aws_internetmonitor/__init__.py +18 -10
  55. aws_cdk/aws_iot/__init__.py +16 -10
  56. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +16 -26
  57. aws_cdk/aws_iotevents/__init__.py +6 -4
  58. aws_cdk/aws_iotfleetwise/__init__.py +27 -40
  59. aws_cdk/aws_iotsitewise/__init__.py +8 -5
  60. aws_cdk/aws_iotwireless/__init__.py +14 -9
  61. aws_cdk/aws_kinesisfirehose/__init__.py +21 -38
  62. aws_cdk/aws_lambda/__init__.py +76 -53
  63. aws_cdk/aws_lambda_event_sources/__init__.py +6 -21
  64. aws_cdk/aws_logs/__init__.py +5 -7
  65. aws_cdk/aws_macie/__init__.py +28 -23
  66. aws_cdk/aws_mediaconnect/__init__.py +5 -8
  67. aws_cdk/aws_mediaconvert/__init__.py +2 -2
  68. aws_cdk/aws_medialive/__init__.py +2 -4
  69. aws_cdk/aws_mediapackage/__init__.py +9 -18
  70. aws_cdk/aws_memorydb/__init__.py +5 -10
  71. aws_cdk/aws_mwaa/__init__.py +8 -4
  72. aws_cdk/aws_neptune/__init__.py +4 -4
  73. aws_cdk/aws_networkfirewall/__init__.py +8 -4
  74. aws_cdk/aws_networkmanager/__init__.py +4 -4
  75. aws_cdk/aws_nimblestudio/__init__.py +25 -45
  76. aws_cdk/aws_opensearchservice/__init__.py +0 -1
  77. aws_cdk/aws_panorama/__init__.py +11 -12
  78. aws_cdk/aws_personalize/__init__.py +46 -72
  79. aws_cdk/aws_pinpoint/__init__.py +36 -65
  80. aws_cdk/aws_quicksight/__init__.py +9972 -13374
  81. aws_cdk/aws_rds/__init__.py +53 -22
  82. aws_cdk/aws_route53/__init__.py +8 -16
  83. aws_cdk/aws_route53_targets/__init__.py +2 -4
  84. aws_cdk/aws_s3/__init__.py +41 -90
  85. aws_cdk/aws_s3_notifications/__init__.py +0 -3
  86. aws_cdk/aws_sagemaker/__init__.py +16 -10
  87. aws_cdk/aws_secretsmanager/__init__.py +17 -14
  88. aws_cdk/aws_servicecatalog/__init__.py +60 -83
  89. aws_cdk/aws_servicediscovery/__init__.py +4 -6
  90. aws_cdk/aws_ses/__init__.py +734 -28
  91. aws_cdk/aws_sns/__init__.py +4 -8
  92. aws_cdk/aws_ssm/__init__.py +19 -23
  93. aws_cdk/aws_ssmcontacts/__init__.py +10 -6
  94. aws_cdk/aws_ssmincidents/__init__.py +2 -1
  95. aws_cdk/aws_sso/__init__.py +4 -4
  96. aws_cdk/aws_stepfunctions/__init__.py +6 -15
  97. aws_cdk/aws_stepfunctions_tasks/__init__.py +51 -24
  98. aws_cdk/aws_timestream/__init__.py +22 -28
  99. aws_cdk/aws_transfer/__init__.py +188 -86
  100. aws_cdk/aws_wafv2/__init__.py +54 -38
  101. aws_cdk/aws_xray/__init__.py +15 -22
  102. aws_cdk/cloud_assembly_schema/__init__.py +14 -6
  103. aws_cdk/custom_resources/__init__.py +2 -3
  104. aws_cdk/pipelines/__init__.py +104 -134
  105. aws_cdk/triggers/__init__.py +46 -61
  106. {aws_cdk_lib-2.73.0.dist-info → aws_cdk_lib-2.76.0.dist-info}/METADATA +47 -92
  107. {aws_cdk_lib-2.73.0.dist-info → aws_cdk_lib-2.76.0.dist-info}/RECORD +111 -111
  108. {aws_cdk_lib-2.73.0.dist-info → aws_cdk_lib-2.76.0.dist-info}/LICENSE +0 -0
  109. {aws_cdk_lib-2.73.0.dist-info → aws_cdk_lib-2.76.0.dist-info}/NOTICE +0 -0
  110. {aws_cdk_lib-2.73.0.dist-info → aws_cdk_lib-2.76.0.dist-info}/WHEEL +0 -0
  111. {aws_cdk_lib-2.73.0.dist-info → aws_cdk_lib-2.76.0.dist-info}/top_level.txt +0 -0
@@ -136,6 +136,18 @@ ses.ConfigurationSet(self, "ConfigurationSet",
136
136
  )
137
137
  ```
138
138
 
139
+ Use `addEventDestination()` to publish email sending events to Amazon SNS or Amazon CloudWatch:
140
+
141
+ ```python
142
+ # my_configuration_set: ses.ConfigurationSet
143
+ # my_topic: sns.Topic
144
+
145
+
146
+ my_configuration_set.add_event_destination("ToSns",
147
+ destination=ses.EventDestination.sns_topic(my_topic)
148
+ )
149
+ ```
150
+
139
151
  ### Email identity
140
152
 
141
153
  In Amazon SES, a verified identity is a domain or email address that you use to send or receive email. Before you
@@ -146,11 +158,10 @@ helps prevent unauthorized use.
146
158
  To verify an identity for a hosted zone, you create an `EmailIdentity`:
147
159
 
148
160
  ```python
149
- # Example automatically generated from non-compiling source. May contain errors.
150
161
  # my_hosted_zone: route53.IPublicHostedZone
151
162
 
152
163
 
153
- identity = ses.EmailIdentity(stack, "Identity",
164
+ identity = ses.EmailIdentity(self, "Identity",
154
165
  identity=ses.Identity.public_hosted_zone(my_hosted_zone),
155
166
  mail_from_domain="mail.cdk.dev"
156
167
  )
@@ -163,13 +174,12 @@ You can instead configure DKIM authentication by using your own public-private k
163
174
  as [Bring Your Own DKIM (BYODKIM)](https://docs.aws.amazon.com/ses/latest/dg/send-email-authentication-dkim-bring-your-own.html):
164
175
 
165
176
  ```python
166
- # Example automatically generated from non-compiling source. May contain errors.
167
177
  # my_hosted_zone: route53.IPublicHostedZone
168
178
 
169
179
 
170
- ses.EmailIdentity(stack, "Identity",
180
+ ses.EmailIdentity(self, "Identity",
171
181
  identity=ses.Identity.public_hosted_zone(my_hosted_zone),
172
- dkim_identity=DkimIdentity.byo_dkim(
182
+ dkim_identity=ses.DkimIdentity.byo_dkim(
173
183
  private_key=SecretValue.secrets_manager("dkim-private-key"),
174
184
  public_key="...base64-encoded-public-key...",
175
185
  selector="selector"
@@ -186,8 +196,7 @@ When using `publicHostedZone()` for the identity, all necessary Amazon Route 53
186
196
  When working with `domain()`, records must be created manually:
187
197
 
188
198
  ```python
189
- # Example automatically generated from non-compiling source. May contain errors.
190
- identity = ses.EmailIdentity(stack, "Identity",
199
+ identity = ses.EmailIdentity(self, "Identity",
191
200
  identity=ses.Identity.domain("cdk.dev")
192
201
  )
193
202
 
@@ -236,6 +245,7 @@ from .. import (
236
245
  TreeInspector as _TreeInspector_488e0dd5,
237
246
  )
238
247
  from ..aws_route53 import IPublicHostedZone as _IPublicHostedZone_9b6e7da4
248
+ from ..aws_sns import ITopic as _ITopic_9eca4852
239
249
 
240
250
 
241
251
  @jsii.data_type(
@@ -546,23 +556,20 @@ class ByoDkimOptions:
546
556
  :param selector: A string that's used to identify a public key in the DNS configuration for a domain.
547
557
  :param public_key: The public key. If specified, a TXT record with the public key is created. Default: - the validation TXT record with the public key is not created
548
558
 
549
- :exampleMetadata: fixture=_generated
559
+ :exampleMetadata: infused
550
560
 
551
561
  Example::
552
562
 
553
- # The code below shows an example of how to instantiate this type.
554
- # The values are placeholders you should change.
555
- import aws_cdk as cdk
556
- from aws_cdk import aws_ses as ses
557
-
558
- # secret_value: cdk.SecretValue
563
+ # my_hosted_zone: route53.IPublicHostedZone
559
564
 
560
- byo_dkim_options = ses.ByoDkimOptions(
561
- private_key=secret_value,
562
- selector="selector",
563
565
 
564
- # the properties below are optional
565
- public_key="publicKey"
566
+ ses.EmailIdentity(self, "Identity",
567
+ identity=ses.Identity.public_hosted_zone(my_hosted_zone),
568
+ dkim_identity=ses.DkimIdentity.byo_dkim(
569
+ private_key=SecretValue.secrets_manager("dkim-private-key"),
570
+ public_key="...base64-encoded-public-key...",
571
+ selector="selector"
572
+ )
566
573
  )
567
574
  '''
568
575
  if __debug__:
@@ -6333,6 +6340,331 @@ class CfnVdmAttributesProps:
6333
6340
  )
6334
6341
 
6335
6342
 
6343
+ @jsii.data_type(
6344
+ jsii_type="aws-cdk-lib.aws_ses.CloudWatchDimension",
6345
+ jsii_struct_bases=[],
6346
+ name_mapping={"default_value": "defaultValue", "name": "name", "source": "source"},
6347
+ )
6348
+ class CloudWatchDimension:
6349
+ def __init__(
6350
+ self,
6351
+ *,
6352
+ default_value: builtins.str,
6353
+ name: builtins.str,
6354
+ source: "CloudWatchDimensionSource",
6355
+ ) -> None:
6356
+ '''A CloudWatch dimension upon which to categorize your emails.
6357
+
6358
+ :param default_value: The default value of the dimension that is published to Amazon CloudWatch if you do not provide the value of the dimension when you send an email.
6359
+ :param name: The name of an Amazon CloudWatch dimension associated with an email sending metric.
6360
+ :param source: The place where Amazon SES finds the value of a dimension to publish to Amazon CloudWatch.
6361
+
6362
+ :exampleMetadata: fixture=_generated
6363
+
6364
+ Example::
6365
+
6366
+ # The code below shows an example of how to instantiate this type.
6367
+ # The values are placeholders you should change.
6368
+ from aws_cdk import aws_ses as ses
6369
+
6370
+ cloud_watch_dimension = ses.CloudWatchDimension(
6371
+ default_value="defaultValue",
6372
+ name="name",
6373
+ source=ses.CloudWatchDimensionSource.EMAIL_HEADER
6374
+ )
6375
+ '''
6376
+ if __debug__:
6377
+ type_hints = typing.get_type_hints(_typecheckingstub__c718e80d3dd746209ff12fd14d08ce529bed18f85e0af362c1a2df8b5adc173a)
6378
+ check_type(argname="argument default_value", value=default_value, expected_type=type_hints["default_value"])
6379
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
6380
+ check_type(argname="argument source", value=source, expected_type=type_hints["source"])
6381
+ self._values: typing.Dict[builtins.str, typing.Any] = {
6382
+ "default_value": default_value,
6383
+ "name": name,
6384
+ "source": source,
6385
+ }
6386
+
6387
+ @builtins.property
6388
+ def default_value(self) -> builtins.str:
6389
+ '''The default value of the dimension that is published to Amazon CloudWatch if you do not provide the value of the dimension when you send an email.'''
6390
+ result = self._values.get("default_value")
6391
+ assert result is not None, "Required property 'default_value' is missing"
6392
+ return typing.cast(builtins.str, result)
6393
+
6394
+ @builtins.property
6395
+ def name(self) -> builtins.str:
6396
+ '''The name of an Amazon CloudWatch dimension associated with an email sending metric.'''
6397
+ result = self._values.get("name")
6398
+ assert result is not None, "Required property 'name' is missing"
6399
+ return typing.cast(builtins.str, result)
6400
+
6401
+ @builtins.property
6402
+ def source(self) -> "CloudWatchDimensionSource":
6403
+ '''The place where Amazon SES finds the value of a dimension to publish to Amazon CloudWatch.'''
6404
+ result = self._values.get("source")
6405
+ assert result is not None, "Required property 'source' is missing"
6406
+ return typing.cast("CloudWatchDimensionSource", result)
6407
+
6408
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
6409
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
6410
+
6411
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
6412
+ return not (rhs == self)
6413
+
6414
+ def __repr__(self) -> str:
6415
+ return "CloudWatchDimension(%s)" % ", ".join(
6416
+ k + "=" + repr(v) for k, v in self._values.items()
6417
+ )
6418
+
6419
+
6420
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ses.CloudWatchDimensionSource")
6421
+ class CloudWatchDimensionSource(enum.Enum):
6422
+ '''Source for CloudWatch dimension.'''
6423
+
6424
+ EMAIL_HEADER = "EMAIL_HEADER"
6425
+ '''Amazon SES retrieves the dimension name and value from a header in the email.
6426
+
6427
+ Note: You can't use any of the following email headers as the Dimension Name:
6428
+ ``Received``, ``To``, ``From``, ``DKIM-Signature``, ``CC``, ``message-id``, or ``Return-Path``.
6429
+ '''
6430
+ LINK_TAG = "LINK_TAG"
6431
+ '''Amazon SES retrieves the dimension name and value from a tag that you specified in a link.
6432
+
6433
+ :see: https://docs.aws.amazon.com/ses/latest/dg/faqs-metrics.html#sending-metric-faqs-clicks-q5
6434
+ '''
6435
+ MESSAGE_TAG = "MESSAGE_TAG"
6436
+ '''Amazon SES retrieves the dimension name and value from a tag that you specify by using the ``X-SES-MESSAGE-TAGS`` header or the Tags API parameter.
6437
+
6438
+ You can also use the Message Tag value source to create dimensions based on Amazon SES auto-tags.
6439
+ To use an auto-tag, type the complete name of the auto-tag as the Dimension Name. For example,
6440
+ to create a dimension based on the configuration set auto-tag, use ``ses:configuration-set`` for the
6441
+ Dimension Name, and the name of the configuration set for the Default Value.
6442
+
6443
+ :see: https://docs.aws.amazon.com/ses/latest/dg/monitor-using-event-publishing.html#event-publishing-how-works
6444
+ '''
6445
+
6446
+
6447
+ @jsii.data_type(
6448
+ jsii_type="aws-cdk-lib.aws_ses.ConfigurationSetEventDestinationOptions",
6449
+ jsii_struct_bases=[],
6450
+ name_mapping={
6451
+ "destination": "destination",
6452
+ "configuration_set_event_destination_name": "configurationSetEventDestinationName",
6453
+ "enabled": "enabled",
6454
+ "events": "events",
6455
+ },
6456
+ )
6457
+ class ConfigurationSetEventDestinationOptions:
6458
+ def __init__(
6459
+ self,
6460
+ *,
6461
+ destination: "EventDestination",
6462
+ configuration_set_event_destination_name: typing.Optional[builtins.str] = None,
6463
+ enabled: typing.Optional[builtins.bool] = None,
6464
+ events: typing.Optional[typing.Sequence["EmailSendingEvent"]] = None,
6465
+ ) -> None:
6466
+ '''Options for a configuration set event destination.
6467
+
6468
+ :param destination: The event destination.
6469
+ :param configuration_set_event_destination_name: A name for the configuration set event destination. Default: - a CloudFormation generated name
6470
+ :param enabled: Whether Amazon SES publishes events to this destination. Default: true
6471
+ :param events: The type of email sending events to publish to the event destination. Default: - send all event types
6472
+
6473
+ :exampleMetadata: infused
6474
+
6475
+ Example::
6476
+
6477
+ # my_configuration_set: ses.ConfigurationSet
6478
+ # my_topic: sns.Topic
6479
+
6480
+
6481
+ my_configuration_set.add_event_destination("ToSns",
6482
+ destination=ses.EventDestination.sns_topic(my_topic)
6483
+ )
6484
+ '''
6485
+ if __debug__:
6486
+ type_hints = typing.get_type_hints(_typecheckingstub__80b5162c2d2ea9081e7450a4b5db43212eaf82f433a217fb2be6e012977034b6)
6487
+ check_type(argname="argument destination", value=destination, expected_type=type_hints["destination"])
6488
+ check_type(argname="argument configuration_set_event_destination_name", value=configuration_set_event_destination_name, expected_type=type_hints["configuration_set_event_destination_name"])
6489
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
6490
+ check_type(argname="argument events", value=events, expected_type=type_hints["events"])
6491
+ self._values: typing.Dict[builtins.str, typing.Any] = {
6492
+ "destination": destination,
6493
+ }
6494
+ if configuration_set_event_destination_name is not None:
6495
+ self._values["configuration_set_event_destination_name"] = configuration_set_event_destination_name
6496
+ if enabled is not None:
6497
+ self._values["enabled"] = enabled
6498
+ if events is not None:
6499
+ self._values["events"] = events
6500
+
6501
+ @builtins.property
6502
+ def destination(self) -> "EventDestination":
6503
+ '''The event destination.'''
6504
+ result = self._values.get("destination")
6505
+ assert result is not None, "Required property 'destination' is missing"
6506
+ return typing.cast("EventDestination", result)
6507
+
6508
+ @builtins.property
6509
+ def configuration_set_event_destination_name(self) -> typing.Optional[builtins.str]:
6510
+ '''A name for the configuration set event destination.
6511
+
6512
+ :default: - a CloudFormation generated name
6513
+ '''
6514
+ result = self._values.get("configuration_set_event_destination_name")
6515
+ return typing.cast(typing.Optional[builtins.str], result)
6516
+
6517
+ @builtins.property
6518
+ def enabled(self) -> typing.Optional[builtins.bool]:
6519
+ '''Whether Amazon SES publishes events to this destination.
6520
+
6521
+ :default: true
6522
+ '''
6523
+ result = self._values.get("enabled")
6524
+ return typing.cast(typing.Optional[builtins.bool], result)
6525
+
6526
+ @builtins.property
6527
+ def events(self) -> typing.Optional[typing.List["EmailSendingEvent"]]:
6528
+ '''The type of email sending events to publish to the event destination.
6529
+
6530
+ :default: - send all event types
6531
+ '''
6532
+ result = self._values.get("events")
6533
+ return typing.cast(typing.Optional[typing.List["EmailSendingEvent"]], result)
6534
+
6535
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
6536
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
6537
+
6538
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
6539
+ return not (rhs == self)
6540
+
6541
+ def __repr__(self) -> str:
6542
+ return "ConfigurationSetEventDestinationOptions(%s)" % ", ".join(
6543
+ k + "=" + repr(v) for k, v in self._values.items()
6544
+ )
6545
+
6546
+
6547
+ @jsii.data_type(
6548
+ jsii_type="aws-cdk-lib.aws_ses.ConfigurationSetEventDestinationProps",
6549
+ jsii_struct_bases=[ConfigurationSetEventDestinationOptions],
6550
+ name_mapping={
6551
+ "destination": "destination",
6552
+ "configuration_set_event_destination_name": "configurationSetEventDestinationName",
6553
+ "enabled": "enabled",
6554
+ "events": "events",
6555
+ "configuration_set": "configurationSet",
6556
+ },
6557
+ )
6558
+ class ConfigurationSetEventDestinationProps(ConfigurationSetEventDestinationOptions):
6559
+ def __init__(
6560
+ self,
6561
+ *,
6562
+ destination: "EventDestination",
6563
+ configuration_set_event_destination_name: typing.Optional[builtins.str] = None,
6564
+ enabled: typing.Optional[builtins.bool] = None,
6565
+ events: typing.Optional[typing.Sequence["EmailSendingEvent"]] = None,
6566
+ configuration_set: "IConfigurationSet",
6567
+ ) -> None:
6568
+ '''Properties for a configuration set event destination.
6569
+
6570
+ :param destination: The event destination.
6571
+ :param configuration_set_event_destination_name: A name for the configuration set event destination. Default: - a CloudFormation generated name
6572
+ :param enabled: Whether Amazon SES publishes events to this destination. Default: true
6573
+ :param events: The type of email sending events to publish to the event destination. Default: - send all event types
6574
+ :param configuration_set: The configuration set that contains the event destination.
6575
+
6576
+ :exampleMetadata: fixture=_generated
6577
+
6578
+ Example::
6579
+
6580
+ # The code below shows an example of how to instantiate this type.
6581
+ # The values are placeholders you should change.
6582
+ from aws_cdk import aws_ses as ses
6583
+
6584
+ # configuration_set: ses.ConfigurationSet
6585
+ # event_destination: ses.EventDestination
6586
+
6587
+ configuration_set_event_destination_props = ses.ConfigurationSetEventDestinationProps(
6588
+ configuration_set=configuration_set,
6589
+ destination=event_destination,
6590
+
6591
+ # the properties below are optional
6592
+ configuration_set_event_destination_name="configurationSetEventDestinationName",
6593
+ enabled=False,
6594
+ events=[ses.EmailSendingEvent.SEND]
6595
+ )
6596
+ '''
6597
+ if __debug__:
6598
+ type_hints = typing.get_type_hints(_typecheckingstub__dd3ac4f1af1f2fe9c11fa8894b2eae0f4b13c464b826cffda8b6937f4ab3e9c8)
6599
+ check_type(argname="argument destination", value=destination, expected_type=type_hints["destination"])
6600
+ check_type(argname="argument configuration_set_event_destination_name", value=configuration_set_event_destination_name, expected_type=type_hints["configuration_set_event_destination_name"])
6601
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
6602
+ check_type(argname="argument events", value=events, expected_type=type_hints["events"])
6603
+ check_type(argname="argument configuration_set", value=configuration_set, expected_type=type_hints["configuration_set"])
6604
+ self._values: typing.Dict[builtins.str, typing.Any] = {
6605
+ "destination": destination,
6606
+ "configuration_set": configuration_set,
6607
+ }
6608
+ if configuration_set_event_destination_name is not None:
6609
+ self._values["configuration_set_event_destination_name"] = configuration_set_event_destination_name
6610
+ if enabled is not None:
6611
+ self._values["enabled"] = enabled
6612
+ if events is not None:
6613
+ self._values["events"] = events
6614
+
6615
+ @builtins.property
6616
+ def destination(self) -> "EventDestination":
6617
+ '''The event destination.'''
6618
+ result = self._values.get("destination")
6619
+ assert result is not None, "Required property 'destination' is missing"
6620
+ return typing.cast("EventDestination", result)
6621
+
6622
+ @builtins.property
6623
+ def configuration_set_event_destination_name(self) -> typing.Optional[builtins.str]:
6624
+ '''A name for the configuration set event destination.
6625
+
6626
+ :default: - a CloudFormation generated name
6627
+ '''
6628
+ result = self._values.get("configuration_set_event_destination_name")
6629
+ return typing.cast(typing.Optional[builtins.str], result)
6630
+
6631
+ @builtins.property
6632
+ def enabled(self) -> typing.Optional[builtins.bool]:
6633
+ '''Whether Amazon SES publishes events to this destination.
6634
+
6635
+ :default: true
6636
+ '''
6637
+ result = self._values.get("enabled")
6638
+ return typing.cast(typing.Optional[builtins.bool], result)
6639
+
6640
+ @builtins.property
6641
+ def events(self) -> typing.Optional[typing.List["EmailSendingEvent"]]:
6642
+ '''The type of email sending events to publish to the event destination.
6643
+
6644
+ :default: - send all event types
6645
+ '''
6646
+ result = self._values.get("events")
6647
+ return typing.cast(typing.Optional[typing.List["EmailSendingEvent"]], result)
6648
+
6649
+ @builtins.property
6650
+ def configuration_set(self) -> "IConfigurationSet":
6651
+ '''The configuration set that contains the event destination.'''
6652
+ result = self._values.get("configuration_set")
6653
+ assert result is not None, "Required property 'configuration_set' is missing"
6654
+ return typing.cast("IConfigurationSet", result)
6655
+
6656
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
6657
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
6658
+
6659
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
6660
+ return not (rhs == self)
6661
+
6662
+ def __repr__(self) -> str:
6663
+ return "ConfigurationSetEventDestinationProps(%s)" % ", ".join(
6664
+ k + "=" + repr(v) for k, v in self._values.items()
6665
+ )
6666
+
6667
+
6336
6668
  @jsii.data_type(
6337
6669
  jsii_type="aws-cdk-lib.aws_ses.ConfigurationSetProps",
6338
6670
  jsii_struct_bases=[],
@@ -6572,13 +6904,12 @@ class DkimIdentity(
6572
6904
 
6573
6905
  Example::
6574
6906
 
6575
- # Example automatically generated from non-compiling source. May contain errors.
6576
6907
  # my_hosted_zone: route53.IPublicHostedZone
6577
6908
 
6578
6909
 
6579
- ses.EmailIdentity(stack, "Identity",
6910
+ ses.EmailIdentity(self, "Identity",
6580
6911
  identity=ses.Identity.public_hosted_zone(my_hosted_zone),
6581
- dkim_identity=DkimIdentity.byo_dkim(
6912
+ dkim_identity=ses.DkimIdentity.byo_dkim(
6582
6913
  private_key=SecretValue.secrets_manager("dkim-private-key"),
6583
6914
  public_key="...base64-encoded-public-key...",
6584
6915
  selector="selector"
@@ -6950,11 +7281,10 @@ class EmailIdentityProps:
6950
7281
 
6951
7282
  Example::
6952
7283
 
6953
- # Example automatically generated from non-compiling source. May contain errors.
6954
7284
  # my_hosted_zone: route53.IPublicHostedZone
6955
7285
 
6956
7286
 
6957
- identity = ses.EmailIdentity(stack, "Identity",
7287
+ identity = ses.EmailIdentity(self, "Identity",
6958
7288
  identity=ses.Identity.public_hosted_zone(my_hosted_zone),
6959
7289
  mail_from_domain="mail.cdk.dev"
6960
7290
  )
@@ -7075,6 +7405,143 @@ class EmailIdentityProps:
7075
7405
  )
7076
7406
 
7077
7407
 
7408
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_ses.EmailSendingEvent")
7409
+ class EmailSendingEvent(enum.Enum):
7410
+ '''Email sending event.'''
7411
+
7412
+ SEND = "SEND"
7413
+ '''The send request was successful and SES will attempt to deliver the message to the recipient's mail server.
7414
+
7415
+ (If account-level or global suppression is
7416
+ being used, SES will still count it as a send, but delivery is suppressed.)
7417
+ '''
7418
+ REJECT = "REJECT"
7419
+ '''SES accepted the email, but determined that it contained a virus and didn’t attempt to deliver it to the recipient’s mail server.'''
7420
+ BOUNCE = "BOUNCE"
7421
+ '''(Hard bounce) The recipient's mail server permanently rejected the email.
7422
+
7423
+ (Soft bounces are only included when SES fails to deliver the email after
7424
+ retrying for a period of time.)
7425
+ '''
7426
+ COMPLAINT = "COMPLAINT"
7427
+ '''The email was successfully delivered to the recipient’s mail server, but the recipient marked it as spam.'''
7428
+ DELIVERY = "DELIVERY"
7429
+ '''SES successfully delivered the email to the recipient's mail server.'''
7430
+ OPEN = "OPEN"
7431
+ '''The recipient received the message and opened it in their email client.'''
7432
+ CLICK = "CLICK"
7433
+ '''The recipient clicked one or more links in the email.'''
7434
+ RENDERING_FAILURE = "RENDERING_FAILURE"
7435
+ '''The email wasn't sent because of a template rendering issue.
7436
+
7437
+ This event type
7438
+ can occur when template data is missing, or when there is a mismatch between
7439
+ template parameters and data. (This event type only occurs when you send email
7440
+ using the ``SendTemplatedEmail`` or ``SendBulkTemplatedEmail`` API operations.)
7441
+ '''
7442
+ DELIVERY_DELAY = "DELIVERY_DELAY"
7443
+ '''The email couldn't be delivered to the recipient’s mail server because a temporary issue occurred.
7444
+
7445
+ Delivery delays can occur, for example, when the recipient's inbox
7446
+ is full, or when the receiving email server experiences a transient issue.
7447
+ '''
7448
+ SUBSCRIPTION = "SUBSCRIPTION"
7449
+ '''The email was successfully delivered, but the recipient updated their subscription preferences by clicking on an unsubscribe link as part of your subscription management.'''
7450
+
7451
+
7452
+ class EventDestination(
7453
+ metaclass=jsii.JSIIAbstractClass,
7454
+ jsii_type="aws-cdk-lib.aws_ses.EventDestination",
7455
+ ):
7456
+ '''An event destination.
7457
+
7458
+ :exampleMetadata: infused
7459
+
7460
+ Example::
7461
+
7462
+ # my_configuration_set: ses.ConfigurationSet
7463
+ # my_topic: sns.Topic
7464
+
7465
+
7466
+ my_configuration_set.add_event_destination("ToSns",
7467
+ destination=ses.EventDestination.sns_topic(my_topic)
7468
+ )
7469
+ '''
7470
+
7471
+ def __init__(self) -> None:
7472
+ jsii.create(self.__class__, self, [])
7473
+
7474
+ @jsii.member(jsii_name="cloudWatchDimensions")
7475
+ @builtins.classmethod
7476
+ def cloud_watch_dimensions(
7477
+ cls,
7478
+ dimensions: typing.Sequence[typing.Union[CloudWatchDimension, typing.Dict[builtins.str, typing.Any]]],
7479
+ ) -> "EventDestination":
7480
+ '''Use CloudWatch dimensions as event destination.
7481
+
7482
+ :param dimensions: -
7483
+ '''
7484
+ if __debug__:
7485
+ type_hints = typing.get_type_hints(_typecheckingstub__48f9cce8b82649ed9874f37f0ed571721b324063ca98764a07bb10a451e9fe92)
7486
+ check_type(argname="argument dimensions", value=dimensions, expected_type=type_hints["dimensions"])
7487
+ return typing.cast("EventDestination", jsii.sinvoke(cls, "cloudWatchDimensions", [dimensions]))
7488
+
7489
+ @jsii.member(jsii_name="snsTopic")
7490
+ @builtins.classmethod
7491
+ def sns_topic(cls, topic: _ITopic_9eca4852) -> "EventDestination":
7492
+ '''Use a SNS topic as event destination.
7493
+
7494
+ :param topic: -
7495
+ '''
7496
+ if __debug__:
7497
+ type_hints = typing.get_type_hints(_typecheckingstub__70dbe9528b7fbaa2cbed5b1def55a8c3126fbfed3ee256b878bbb907e4585c9c)
7498
+ check_type(argname="argument topic", value=topic, expected_type=type_hints["topic"])
7499
+ return typing.cast("EventDestination", jsii.sinvoke(cls, "snsTopic", [topic]))
7500
+
7501
+ @builtins.property
7502
+ @jsii.member(jsii_name="dimensions")
7503
+ @abc.abstractmethod
7504
+ def dimensions(self) -> typing.Optional[typing.List[CloudWatchDimension]]:
7505
+ '''A list of CloudWatch dimensions upon which to categorize your emails.
7506
+
7507
+ :default: - do not send events to CloudWatch
7508
+ '''
7509
+ ...
7510
+
7511
+ @builtins.property
7512
+ @jsii.member(jsii_name="topic")
7513
+ @abc.abstractmethod
7514
+ def topic(self) -> typing.Optional[_ITopic_9eca4852]:
7515
+ '''A SNS topic to use as event destination.
7516
+
7517
+ :default: - do not send events to a SNS topic
7518
+ '''
7519
+ ...
7520
+
7521
+
7522
+ class _EventDestinationProxy(EventDestination):
7523
+ @builtins.property
7524
+ @jsii.member(jsii_name="dimensions")
7525
+ def dimensions(self) -> typing.Optional[typing.List[CloudWatchDimension]]:
7526
+ '''A list of CloudWatch dimensions upon which to categorize your emails.
7527
+
7528
+ :default: - do not send events to CloudWatch
7529
+ '''
7530
+ return typing.cast(typing.Optional[typing.List[CloudWatchDimension]], jsii.get(self, "dimensions"))
7531
+
7532
+ @builtins.property
7533
+ @jsii.member(jsii_name="topic")
7534
+ def topic(self) -> typing.Optional[_ITopic_9eca4852]:
7535
+ '''A SNS topic to use as event destination.
7536
+
7537
+ :default: - do not send events to a SNS topic
7538
+ '''
7539
+ return typing.cast(typing.Optional[_ITopic_9eca4852], jsii.get(self, "topic"))
7540
+
7541
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the abstract class
7542
+ typing.cast(typing.Any, EventDestination).__jsii_proxy_class__ = lambda : _EventDestinationProxy
7543
+
7544
+
7078
7545
  @jsii.interface(jsii_type="aws-cdk-lib.aws_ses.IConfigurationSet")
7079
7546
  class IConfigurationSet(_IResource_c80c4260, typing_extensions.Protocol):
7080
7547
  '''A configuration set.'''
@@ -7109,6 +7576,43 @@ class _IConfigurationSetProxy(
7109
7576
  typing.cast(typing.Any, IConfigurationSet).__jsii_proxy_class__ = lambda : _IConfigurationSetProxy
7110
7577
 
7111
7578
 
7579
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_ses.IConfigurationSetEventDestination")
7580
+ class IConfigurationSetEventDestination(
7581
+ _IResource_c80c4260,
7582
+ typing_extensions.Protocol,
7583
+ ):
7584
+ '''A configuration set event destination.'''
7585
+
7586
+ @builtins.property
7587
+ @jsii.member(jsii_name="configurationSetEventDestinationId")
7588
+ def configuration_set_event_destination_id(self) -> builtins.str:
7589
+ '''The ID of the configuration set event destination.
7590
+
7591
+ :attribute: true
7592
+ '''
7593
+ ...
7594
+
7595
+
7596
+ class _IConfigurationSetEventDestinationProxy(
7597
+ jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
7598
+ ):
7599
+ '''A configuration set event destination.'''
7600
+
7601
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_ses.IConfigurationSetEventDestination"
7602
+
7603
+ @builtins.property
7604
+ @jsii.member(jsii_name="configurationSetEventDestinationId")
7605
+ def configuration_set_event_destination_id(self) -> builtins.str:
7606
+ '''The ID of the configuration set event destination.
7607
+
7608
+ :attribute: true
7609
+ '''
7610
+ return typing.cast(builtins.str, jsii.get(self, "configurationSetEventDestinationId"))
7611
+
7612
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
7613
+ typing.cast(typing.Any, IConfigurationSetEventDestination).__jsii_proxy_class__ = lambda : _IConfigurationSetEventDestinationProxy
7614
+
7615
+
7112
7616
  @jsii.interface(jsii_type="aws-cdk-lib.aws_ses.IDedicatedIpPool")
7113
7617
  class IDedicatedIpPool(_IResource_c80c4260, typing_extensions.Protocol):
7114
7618
  '''A dedicated IP pool.'''
@@ -7393,11 +7897,10 @@ class Identity(
7393
7897
 
7394
7898
  Example::
7395
7899
 
7396
- # Example automatically generated from non-compiling source. May contain errors.
7397
7900
  # my_hosted_zone: route53.IPublicHostedZone
7398
7901
 
7399
7902
 
7400
- identity = ses.EmailIdentity(stack, "Identity",
7903
+ identity = ses.EmailIdentity(self, "Identity",
7401
7904
  identity=ses.Identity.public_hosted_zone(my_hosted_zone),
7402
7905
  mail_from_domain="mail.cdk.dev"
7403
7906
  )
@@ -9183,6 +9686,36 @@ class ConfigurationSet(
9183
9686
  check_type(argname="argument configuration_set_name", value=configuration_set_name, expected_type=type_hints["configuration_set_name"])
9184
9687
  return typing.cast(IConfigurationSet, jsii.sinvoke(cls, "fromConfigurationSetName", [scope, id, configuration_set_name]))
9185
9688
 
9689
+ @jsii.member(jsii_name="addEventDestination")
9690
+ def add_event_destination(
9691
+ self,
9692
+ id: builtins.str,
9693
+ *,
9694
+ destination: EventDestination,
9695
+ configuration_set_event_destination_name: typing.Optional[builtins.str] = None,
9696
+ enabled: typing.Optional[builtins.bool] = None,
9697
+ events: typing.Optional[typing.Sequence[EmailSendingEvent]] = None,
9698
+ ) -> "ConfigurationSetEventDestination":
9699
+ '''Adds an event destination to this configuration set.
9700
+
9701
+ :param id: -
9702
+ :param destination: The event destination.
9703
+ :param configuration_set_event_destination_name: A name for the configuration set event destination. Default: - a CloudFormation generated name
9704
+ :param enabled: Whether Amazon SES publishes events to this destination. Default: true
9705
+ :param events: The type of email sending events to publish to the event destination. Default: - send all event types
9706
+ '''
9707
+ if __debug__:
9708
+ type_hints = typing.get_type_hints(_typecheckingstub__969c3bbc0e7891ce9eb910e67644f0f9bcb29f65f5ec021df94eed425cb0d707)
9709
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
9710
+ options = ConfigurationSetEventDestinationOptions(
9711
+ destination=destination,
9712
+ configuration_set_event_destination_name=configuration_set_event_destination_name,
9713
+ enabled=enabled,
9714
+ events=events,
9715
+ )
9716
+
9717
+ return typing.cast("ConfigurationSetEventDestination", jsii.invoke(self, "addEventDestination", [id, options]))
9718
+
9186
9719
  @builtins.property
9187
9720
  @jsii.member(jsii_name="configurationSetName")
9188
9721
  def configuration_set_name(self) -> builtins.str:
@@ -9190,6 +9723,98 @@ class ConfigurationSet(
9190
9723
  return typing.cast(builtins.str, jsii.get(self, "configurationSetName"))
9191
9724
 
9192
9725
 
9726
+ @jsii.implements(IConfigurationSetEventDestination)
9727
+ class ConfigurationSetEventDestination(
9728
+ _Resource_45bc6135,
9729
+ metaclass=jsii.JSIIMeta,
9730
+ jsii_type="aws-cdk-lib.aws_ses.ConfigurationSetEventDestination",
9731
+ ):
9732
+ '''A configuration set event destination.
9733
+
9734
+ :exampleMetadata: fixture=_generated
9735
+
9736
+ Example::
9737
+
9738
+ # The code below shows an example of how to instantiate this type.
9739
+ # The values are placeholders you should change.
9740
+ from aws_cdk import aws_ses as ses
9741
+
9742
+ # configuration_set: ses.ConfigurationSet
9743
+ # event_destination: ses.EventDestination
9744
+
9745
+ configuration_set_event_destination = ses.ConfigurationSetEventDestination(self, "MyConfigurationSetEventDestination",
9746
+ configuration_set=configuration_set,
9747
+ destination=event_destination,
9748
+
9749
+ # the properties below are optional
9750
+ configuration_set_event_destination_name="configurationSetEventDestinationName",
9751
+ enabled=False,
9752
+ events=[ses.EmailSendingEvent.SEND]
9753
+ )
9754
+ '''
9755
+
9756
+ def __init__(
9757
+ self,
9758
+ scope: _constructs_77d1e7e8.Construct,
9759
+ id: builtins.str,
9760
+ *,
9761
+ configuration_set: IConfigurationSet,
9762
+ destination: EventDestination,
9763
+ configuration_set_event_destination_name: typing.Optional[builtins.str] = None,
9764
+ enabled: typing.Optional[builtins.bool] = None,
9765
+ events: typing.Optional[typing.Sequence[EmailSendingEvent]] = None,
9766
+ ) -> None:
9767
+ '''
9768
+ :param scope: -
9769
+ :param id: -
9770
+ :param configuration_set: The configuration set that contains the event destination.
9771
+ :param destination: The event destination.
9772
+ :param configuration_set_event_destination_name: A name for the configuration set event destination. Default: - a CloudFormation generated name
9773
+ :param enabled: Whether Amazon SES publishes events to this destination. Default: true
9774
+ :param events: The type of email sending events to publish to the event destination. Default: - send all event types
9775
+ '''
9776
+ if __debug__:
9777
+ type_hints = typing.get_type_hints(_typecheckingstub__cf213dc05e866bbe3e9422388bafa084e54ef674803fa10657e5b96b908d6965)
9778
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
9779
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
9780
+ props = ConfigurationSetEventDestinationProps(
9781
+ configuration_set=configuration_set,
9782
+ destination=destination,
9783
+ configuration_set_event_destination_name=configuration_set_event_destination_name,
9784
+ enabled=enabled,
9785
+ events=events,
9786
+ )
9787
+
9788
+ jsii.create(self.__class__, self, [scope, id, props])
9789
+
9790
+ @jsii.member(jsii_name="fromConfigurationSetEventDestinationId")
9791
+ @builtins.classmethod
9792
+ def from_configuration_set_event_destination_id(
9793
+ cls,
9794
+ scope: _constructs_77d1e7e8.Construct,
9795
+ id: builtins.str,
9796
+ configuration_set_event_destination_id: builtins.str,
9797
+ ) -> IConfigurationSetEventDestination:
9798
+ '''Use an existing configuration set.
9799
+
9800
+ :param scope: -
9801
+ :param id: -
9802
+ :param configuration_set_event_destination_id: -
9803
+ '''
9804
+ if __debug__:
9805
+ type_hints = typing.get_type_hints(_typecheckingstub__4740349c6047d2ad783d767c6424ac19156d882d3534207b1440beda62370433)
9806
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
9807
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
9808
+ check_type(argname="argument configuration_set_event_destination_id", value=configuration_set_event_destination_id, expected_type=type_hints["configuration_set_event_destination_id"])
9809
+ return typing.cast(IConfigurationSetEventDestination, jsii.sinvoke(cls, "fromConfigurationSetEventDestinationId", [scope, id, configuration_set_event_destination_id]))
9810
+
9811
+ @builtins.property
9812
+ @jsii.member(jsii_name="configurationSetEventDestinationId")
9813
+ def configuration_set_event_destination_id(self) -> builtins.str:
9814
+ '''The ID of the configuration set event destination.'''
9815
+ return typing.cast(builtins.str, jsii.get(self, "configurationSetEventDestinationId"))
9816
+
9817
+
9193
9818
  @jsii.implements(IDedicatedIpPool)
9194
9819
  class DedicatedIpPool(
9195
9820
  _Resource_45bc6135,
@@ -9437,11 +10062,10 @@ class EmailIdentity(
9437
10062
 
9438
10063
  Example::
9439
10064
 
9440
- # Example automatically generated from non-compiling source. May contain errors.
9441
10065
  # my_hosted_zone: route53.IPublicHostedZone
9442
10066
 
9443
10067
 
9444
- identity = ses.EmailIdentity(stack, "Identity",
10068
+ identity = ses.EmailIdentity(self, "Identity",
9445
10069
  identity=ses.Identity.public_hosted_zone(my_hosted_zone),
9446
10070
  mail_from_domain="mail.cdk.dev"
9447
10071
  )
@@ -9601,7 +10225,12 @@ __all__ = [
9601
10225
  "CfnTemplateProps",
9602
10226
  "CfnVdmAttributes",
9603
10227
  "CfnVdmAttributesProps",
10228
+ "CloudWatchDimension",
10229
+ "CloudWatchDimensionSource",
9604
10230
  "ConfigurationSet",
10231
+ "ConfigurationSetEventDestination",
10232
+ "ConfigurationSetEventDestinationOptions",
10233
+ "ConfigurationSetEventDestinationProps",
9605
10234
  "ConfigurationSetProps",
9606
10235
  "ConfigurationSetTlsPolicy",
9607
10236
  "DedicatedIpPool",
@@ -9614,7 +10243,10 @@ __all__ = [
9614
10243
  "EasyDkimSigningKeyLength",
9615
10244
  "EmailIdentity",
9616
10245
  "EmailIdentityProps",
10246
+ "EmailSendingEvent",
10247
+ "EventDestination",
9617
10248
  "IConfigurationSet",
10249
+ "IConfigurationSetEventDestination",
9618
10250
  "IDedicatedIpPool",
9619
10251
  "IEmailIdentity",
9620
10252
  "IReceiptRule",
@@ -10451,6 +11083,36 @@ def _typecheckingstub__05720eed835713353d777877a75758a4e172dae5b79690ea107edcb7c
10451
11083
  """Type checking stubs"""
10452
11084
  pass
10453
11085
 
11086
+ def _typecheckingstub__c718e80d3dd746209ff12fd14d08ce529bed18f85e0af362c1a2df8b5adc173a(
11087
+ *,
11088
+ default_value: builtins.str,
11089
+ name: builtins.str,
11090
+ source: CloudWatchDimensionSource,
11091
+ ) -> None:
11092
+ """Type checking stubs"""
11093
+ pass
11094
+
11095
+ def _typecheckingstub__80b5162c2d2ea9081e7450a4b5db43212eaf82f433a217fb2be6e012977034b6(
11096
+ *,
11097
+ destination: EventDestination,
11098
+ configuration_set_event_destination_name: typing.Optional[builtins.str] = None,
11099
+ enabled: typing.Optional[builtins.bool] = None,
11100
+ events: typing.Optional[typing.Sequence[EmailSendingEvent]] = None,
11101
+ ) -> None:
11102
+ """Type checking stubs"""
11103
+ pass
11104
+
11105
+ def _typecheckingstub__dd3ac4f1af1f2fe9c11fa8894b2eae0f4b13c464b826cffda8b6937f4ab3e9c8(
11106
+ *,
11107
+ destination: EventDestination,
11108
+ configuration_set_event_destination_name: typing.Optional[builtins.str] = None,
11109
+ enabled: typing.Optional[builtins.bool] = None,
11110
+ events: typing.Optional[typing.Sequence[EmailSendingEvent]] = None,
11111
+ configuration_set: IConfigurationSet,
11112
+ ) -> None:
11113
+ """Type checking stubs"""
11114
+ pass
11115
+
10454
11116
  def _typecheckingstub__fb010161f6c1e40b88122d9cb7754dae093e9cbe5bbfc72b19737729a4f4523d(
10455
11117
  *,
10456
11118
  configuration_set_name: typing.Optional[builtins.str] = None,
@@ -10530,6 +11192,18 @@ def _typecheckingstub__53e1ee2f3b565a95ed952bf4ad2ae80cb7388ac4bd51d6eab5219f8a7
10530
11192
  """Type checking stubs"""
10531
11193
  pass
10532
11194
 
11195
+ def _typecheckingstub__48f9cce8b82649ed9874f37f0ed571721b324063ca98764a07bb10a451e9fe92(
11196
+ dimensions: typing.Sequence[typing.Union[CloudWatchDimension, typing.Dict[builtins.str, typing.Any]]],
11197
+ ) -> None:
11198
+ """Type checking stubs"""
11199
+ pass
11200
+
11201
+ def _typecheckingstub__70dbe9528b7fbaa2cbed5b1def55a8c3126fbfed3ee256b878bbb907e4585c9c(
11202
+ topic: _ITopic_9eca4852,
11203
+ ) -> None:
11204
+ """Type checking stubs"""
11205
+ pass
11206
+
10533
11207
  def _typecheckingstub__1c0b08f3a2fda3c68a4ad951604e55664aeae1537b8b8eb996f95b6feedcf9b5(
10534
11208
  receipt_rule: IReceiptRule,
10535
11209
  ) -> None:
@@ -10792,6 +11466,38 @@ def _typecheckingstub__2ae99096d05b68163763ffbed7aafa034cd3a774f632bff2370d017f7
10792
11466
  """Type checking stubs"""
10793
11467
  pass
10794
11468
 
11469
+ def _typecheckingstub__969c3bbc0e7891ce9eb910e67644f0f9bcb29f65f5ec021df94eed425cb0d707(
11470
+ id: builtins.str,
11471
+ *,
11472
+ destination: EventDestination,
11473
+ configuration_set_event_destination_name: typing.Optional[builtins.str] = None,
11474
+ enabled: typing.Optional[builtins.bool] = None,
11475
+ events: typing.Optional[typing.Sequence[EmailSendingEvent]] = None,
11476
+ ) -> None:
11477
+ """Type checking stubs"""
11478
+ pass
11479
+
11480
+ def _typecheckingstub__cf213dc05e866bbe3e9422388bafa084e54ef674803fa10657e5b96b908d6965(
11481
+ scope: _constructs_77d1e7e8.Construct,
11482
+ id: builtins.str,
11483
+ *,
11484
+ configuration_set: IConfigurationSet,
11485
+ destination: EventDestination,
11486
+ configuration_set_event_destination_name: typing.Optional[builtins.str] = None,
11487
+ enabled: typing.Optional[builtins.bool] = None,
11488
+ events: typing.Optional[typing.Sequence[EmailSendingEvent]] = None,
11489
+ ) -> None:
11490
+ """Type checking stubs"""
11491
+ pass
11492
+
11493
+ def _typecheckingstub__4740349c6047d2ad783d767c6424ac19156d882d3534207b1440beda62370433(
11494
+ scope: _constructs_77d1e7e8.Construct,
11495
+ id: builtins.str,
11496
+ configuration_set_event_destination_id: builtins.str,
11497
+ ) -> None:
11498
+ """Type checking stubs"""
11499
+ pass
11500
+
10795
11501
  def _typecheckingstub__a4f168ec9aad173d023a8ac330a62f7c1ce87601f0a8876e8cbf35c7dcd89ead(
10796
11502
  scope: _constructs_77d1e7e8.Construct,
10797
11503
  id: builtins.str,