aws-cdk-lib 2.155.0__py3-none-any.whl → 2.157.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.
- aws_cdk/__init__.py +28 -24
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.155.0.jsii.tgz → aws-cdk-lib@2.157.0.jsii.tgz} +0 -0
- aws_cdk/aws_acmpca/__init__.py +10 -75
- aws_cdk/aws_amplify/__init__.py +106 -0
- aws_cdk/aws_apigatewayv2/__init__.py +81 -13
- aws_cdk/aws_appintegrations/__init__.py +14 -14
- aws_cdk/aws_applicationsignals/__init__.py +750 -1
- aws_cdk/aws_appsync/__init__.py +50 -18
- aws_cdk/aws_autoscaling/__init__.py +6 -6
- aws_cdk/aws_backup/__init__.py +39 -0
- aws_cdk/aws_batch/__init__.py +41 -0
- aws_cdk/aws_bedrock/__init__.py +1528 -91
- aws_cdk/aws_chatbot/__init__.py +6 -6
- aws_cdk/aws_cloudformation/__init__.py +22 -22
- aws_cdk/aws_cloudfront/__init__.py +650 -57
- aws_cdk/aws_cloudfront/experimental/__init__.py +30 -3
- aws_cdk/aws_cloudfront_origins/__init__.py +2034 -91
- aws_cdk/aws_codebuild/__init__.py +1 -1
- aws_cdk/aws_datasync/__init__.py +40 -29
- aws_cdk/aws_docdb/__init__.py +78 -6
- aws_cdk/aws_ec2/__init__.py +397 -75
- aws_cdk/aws_ecs/__init__.py +271 -101
- aws_cdk/aws_ecs_patterns/__init__.py +129 -11
- aws_cdk/aws_eks/__init__.py +40 -4
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +26 -50
- aws_cdk/aws_entityresolution/__init__.py +117 -4
- aws_cdk/aws_events/__init__.py +40 -14
- aws_cdk/aws_events_targets/__init__.py +357 -0
- aws_cdk/aws_glue/__init__.py +0 -8
- aws_cdk/aws_groundstation/__init__.py +27 -16
- aws_cdk/aws_guardduty/__init__.py +26 -14
- aws_cdk/aws_iam/__init__.py +7 -8
- aws_cdk/aws_iotfleetwise/__init__.py +108 -0
- aws_cdk/aws_kms/__init__.py +53 -10
- aws_cdk/aws_lambda/__init__.py +147 -17
- aws_cdk/aws_lambda_nodejs/__init__.py +30 -3
- aws_cdk/aws_macie/__init__.py +4 -4
- aws_cdk/aws_medialive/__init__.py +348 -0
- aws_cdk/aws_mediapackagev2/__init__.py +38 -38
- aws_cdk/aws_neptune/__init__.py +14 -8
- aws_cdk/aws_opensearchservice/__init__.py +194 -0
- aws_cdk/aws_pcaconnectorscep/__init__.py +884 -0
- aws_cdk/aws_personalize/__init__.py +2 -2
- aws_cdk/aws_pipes/__init__.py +22 -22
- aws_cdk/aws_qbusiness/__init__.py +675 -6
- aws_cdk/aws_quicksight/__init__.py +3285 -0
- aws_cdk/aws_rds/__init__.py +24 -0
- aws_cdk/aws_s3/__init__.py +13 -14
- aws_cdk/aws_sagemaker/__init__.py +1167 -0
- aws_cdk/aws_secretsmanager/__init__.py +2 -3
- aws_cdk/aws_securityhub/__init__.py +108 -103
- aws_cdk/aws_ses/__init__.py +31 -0
- aws_cdk/aws_sns/__init__.py +19 -13
- aws_cdk/aws_ssm/__init__.py +10 -6
- aws_cdk/aws_ssmquicksetup/__init__.py +967 -0
- aws_cdk/aws_stepfunctions_tasks/__init__.py +106 -45
- aws_cdk/aws_synthetics/__init__.py +13 -0
- aws_cdk/cx_api/__init__.py +16 -0
- aws_cdk/triggers/__init__.py +30 -3
- {aws_cdk_lib-2.155.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/METADATA +1 -1
- {aws_cdk_lib-2.155.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/RECORD +66 -64
- {aws_cdk_lib-2.155.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.155.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.155.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.155.0.dist-info → aws_cdk_lib-2.157.0.dist-info}/top_level.txt +0 -0
|
@@ -2251,7 +2251,7 @@ class CfnSecretTargetAttachment(
|
|
|
2251
2251
|
:param id: Construct identifier for this resource (unique in its scope).
|
|
2252
2252
|
:param secret_id: The ARN or name of the secret. To reference a secret also created in this template, use the see `Ref <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html>`_ function with the secret's logical ID.
|
|
2253
2253
|
:param target_id: The ID of the database or cluster.
|
|
2254
|
-
:param target_type: A string that defines the type of service or database associated with the secret. This value instructs Secrets Manager how to update the secret with the details of the service or database. This value must be one of the following: - AWS::RDS::DBInstance - AWS::RDS::DBCluster - AWS::Redshift::Cluster - AWS::DocDB::DBInstance - AWS::DocDB::DBCluster
|
|
2254
|
+
:param target_type: A string that defines the type of service or database associated with the secret. This value instructs Secrets Manager how to update the secret with the details of the service or database. This value must be one of the following: - AWS::RDS::DBInstance - AWS::RDS::DBCluster - AWS::Redshift::Cluster - AWS::DocDB::DBInstance - AWS::DocDB::DBCluster
|
|
2255
2255
|
'''
|
|
2256
2256
|
if __debug__:
|
|
2257
2257
|
type_hints = typing.get_type_hints(_typecheckingstub__f27548ced74eb3d06a9cd3710e7d562d307b5a2c264476a3e685fcb94ccdee58)
|
|
@@ -2367,7 +2367,7 @@ class CfnSecretTargetAttachmentProps:
|
|
|
2367
2367
|
|
|
2368
2368
|
:param secret_id: The ARN or name of the secret. To reference a secret also created in this template, use the see `Ref <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html>`_ function with the secret's logical ID.
|
|
2369
2369
|
:param target_id: The ID of the database or cluster.
|
|
2370
|
-
:param target_type: A string that defines the type of service or database associated with the secret. This value instructs Secrets Manager how to update the secret with the details of the service or database. This value must be one of the following: - AWS::RDS::DBInstance - AWS::RDS::DBCluster - AWS::Redshift::Cluster - AWS::DocDB::DBInstance - AWS::DocDB::DBCluster
|
|
2370
|
+
:param target_type: A string that defines the type of service or database associated with the secret. This value instructs Secrets Manager how to update the secret with the details of the service or database. This value must be one of the following: - AWS::RDS::DBInstance - AWS::RDS::DBCluster - AWS::Redshift::Cluster - AWS::DocDB::DBInstance - AWS::DocDB::DBCluster
|
|
2371
2371
|
|
|
2372
2372
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html
|
|
2373
2373
|
:exampleMetadata: fixture=_generated
|
|
@@ -2428,7 +2428,6 @@ class CfnSecretTargetAttachmentProps:
|
|
|
2428
2428
|
- AWS::Redshift::Cluster
|
|
2429
2429
|
- AWS::DocDB::DBInstance
|
|
2430
2430
|
- AWS::DocDB::DBCluster
|
|
2431
|
-
- AWS::DocDBElastic::Cluster
|
|
2432
2431
|
|
|
2433
2432
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-secretsmanager-secrettargetattachment.html#cfn-secretsmanager-secrettargetattachment-targettype
|
|
2434
2433
|
'''
|
|
@@ -274,9 +274,11 @@ class CfnAutomationRule(
|
|
|
274
274
|
)]
|
|
275
275
|
),
|
|
276
276
|
description="description",
|
|
277
|
-
is_terminal=False,
|
|
278
277
|
rule_name="ruleName",
|
|
279
278
|
rule_order=123,
|
|
279
|
+
|
|
280
|
+
# the properties below are optional
|
|
281
|
+
is_terminal=False,
|
|
280
282
|
rule_status="ruleStatus",
|
|
281
283
|
tags={
|
|
282
284
|
"tags_key": "tags"
|
|
@@ -289,12 +291,12 @@ class CfnAutomationRule(
|
|
|
289
291
|
scope: _constructs_77d1e7e8.Construct,
|
|
290
292
|
id: builtins.str,
|
|
291
293
|
*,
|
|
292
|
-
actions: typing.
|
|
293
|
-
criteria: typing.
|
|
294
|
-
description:
|
|
294
|
+
actions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRule.AutomationRulesActionProperty", typing.Dict[builtins.str, typing.Any]]]]],
|
|
295
|
+
criteria: typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRule.AutomationRulesFindingFiltersProperty", typing.Dict[builtins.str, typing.Any]]],
|
|
296
|
+
description: builtins.str,
|
|
297
|
+
rule_name: builtins.str,
|
|
298
|
+
rule_order: jsii.Number,
|
|
295
299
|
is_terminal: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
296
|
-
rule_name: typing.Optional[builtins.str] = None,
|
|
297
|
-
rule_order: typing.Optional[jsii.Number] = None,
|
|
298
300
|
rule_status: typing.Optional[builtins.str] = None,
|
|
299
301
|
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
300
302
|
) -> None:
|
|
@@ -304,9 +306,9 @@ class CfnAutomationRule(
|
|
|
304
306
|
:param actions: One or more actions to update finding fields if a finding matches the conditions specified in ``Criteria`` .
|
|
305
307
|
:param criteria: A set of `AWS Security Finding Format (ASFF) <https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html>`_ finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a rule is enabled and a finding matches the criteria specified in this parameter, Security Hub applies the rule action to the finding.
|
|
306
308
|
:param description: A description of the rule.
|
|
307
|
-
:param is_terminal: Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.
|
|
308
309
|
:param rule_name: The name of the rule.
|
|
309
310
|
:param rule_order: An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings. Security Hub applies rules with lower values for this parameter first.
|
|
311
|
+
:param is_terminal: Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.
|
|
310
312
|
:param rule_status: Whether the rule is active after it is created. If this parameter is equal to ``ENABLED`` , Security Hub applies the rule to findings and finding updates after the rule is created.
|
|
311
313
|
:param tags: User-defined tags associated with an automation rule.
|
|
312
314
|
'''
|
|
@@ -318,9 +320,9 @@ class CfnAutomationRule(
|
|
|
318
320
|
actions=actions,
|
|
319
321
|
criteria=criteria,
|
|
320
322
|
description=description,
|
|
321
|
-
is_terminal=is_terminal,
|
|
322
323
|
rule_name=rule_name,
|
|
323
324
|
rule_order=rule_order,
|
|
325
|
+
is_terminal=is_terminal,
|
|
324
326
|
rule_status=rule_status,
|
|
325
327
|
tags=tags,
|
|
326
328
|
)
|
|
@@ -416,14 +418,14 @@ class CfnAutomationRule(
|
|
|
416
418
|
@jsii.member(jsii_name="actions")
|
|
417
419
|
def actions(
|
|
418
420
|
self,
|
|
419
|
-
) -> typing.
|
|
421
|
+
) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesActionProperty"]]]:
|
|
420
422
|
'''One or more actions to update finding fields if a finding matches the conditions specified in ``Criteria`` .'''
|
|
421
|
-
return typing.cast(typing.
|
|
423
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesActionProperty"]]], jsii.get(self, "actions"))
|
|
422
424
|
|
|
423
425
|
@actions.setter
|
|
424
426
|
def actions(
|
|
425
427
|
self,
|
|
426
|
-
value: typing.
|
|
428
|
+
value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesActionProperty"]]],
|
|
427
429
|
) -> None:
|
|
428
430
|
if __debug__:
|
|
429
431
|
type_hints = typing.get_type_hints(_typecheckingstub__90988dc6b536563439917056373f7379ca48a864b5a3471a7b3552f6c9b40897)
|
|
@@ -434,14 +436,14 @@ class CfnAutomationRule(
|
|
|
434
436
|
@jsii.member(jsii_name="criteria")
|
|
435
437
|
def criteria(
|
|
436
438
|
self,
|
|
437
|
-
) -> typing.
|
|
439
|
+
) -> typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesFindingFiltersProperty"]:
|
|
438
440
|
'''A set of `AWS Security Finding Format (ASFF) <https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html>`_ finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a rule is enabled and a finding matches the criteria specified in this parameter, Security Hub applies the rule action to the finding.'''
|
|
439
|
-
return typing.cast(typing.
|
|
441
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesFindingFiltersProperty"], jsii.get(self, "criteria"))
|
|
440
442
|
|
|
441
443
|
@criteria.setter
|
|
442
444
|
def criteria(
|
|
443
445
|
self,
|
|
444
|
-
value: typing.
|
|
446
|
+
value: typing.Union[_IResolvable_da3f097b, "CfnAutomationRule.AutomationRulesFindingFiltersProperty"],
|
|
445
447
|
) -> None:
|
|
446
448
|
if __debug__:
|
|
447
449
|
type_hints = typing.get_type_hints(_typecheckingstub__cc91daff88300654f2c8a9e4e5aad76fd0c26ae9c62e118febc7d1bff9733c5f)
|
|
@@ -450,43 +452,25 @@ class CfnAutomationRule(
|
|
|
450
452
|
|
|
451
453
|
@builtins.property
|
|
452
454
|
@jsii.member(jsii_name="description")
|
|
453
|
-
def description(self) ->
|
|
455
|
+
def description(self) -> builtins.str:
|
|
454
456
|
'''A description of the rule.'''
|
|
455
|
-
return typing.cast(
|
|
457
|
+
return typing.cast(builtins.str, jsii.get(self, "description"))
|
|
456
458
|
|
|
457
459
|
@description.setter
|
|
458
|
-
def description(self, value:
|
|
460
|
+
def description(self, value: builtins.str) -> None:
|
|
459
461
|
if __debug__:
|
|
460
462
|
type_hints = typing.get_type_hints(_typecheckingstub__13e710145ba6564ce42bac7fc3465ec7406a15699f473acd70e62bf605c1f259)
|
|
461
463
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
462
464
|
jsii.set(self, "description", value) # pyright: ignore[reportArgumentType]
|
|
463
465
|
|
|
464
|
-
@builtins.property
|
|
465
|
-
@jsii.member(jsii_name="isTerminal")
|
|
466
|
-
def is_terminal(
|
|
467
|
-
self,
|
|
468
|
-
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
469
|
-
'''Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria.'''
|
|
470
|
-
return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "isTerminal"))
|
|
471
|
-
|
|
472
|
-
@is_terminal.setter
|
|
473
|
-
def is_terminal(
|
|
474
|
-
self,
|
|
475
|
-
value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
|
|
476
|
-
) -> None:
|
|
477
|
-
if __debug__:
|
|
478
|
-
type_hints = typing.get_type_hints(_typecheckingstub__11031a77a18a3180e3bf703420372155750c7001d9c920558ff50230e0111537)
|
|
479
|
-
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
480
|
-
jsii.set(self, "isTerminal", value) # pyright: ignore[reportArgumentType]
|
|
481
|
-
|
|
482
466
|
@builtins.property
|
|
483
467
|
@jsii.member(jsii_name="ruleName")
|
|
484
|
-
def rule_name(self) ->
|
|
468
|
+
def rule_name(self) -> builtins.str:
|
|
485
469
|
'''The name of the rule.'''
|
|
486
|
-
return typing.cast(
|
|
470
|
+
return typing.cast(builtins.str, jsii.get(self, "ruleName"))
|
|
487
471
|
|
|
488
472
|
@rule_name.setter
|
|
489
|
-
def rule_name(self, value:
|
|
473
|
+
def rule_name(self, value: builtins.str) -> None:
|
|
490
474
|
if __debug__:
|
|
491
475
|
type_hints = typing.get_type_hints(_typecheckingstub__ffff694fc9dee0bbe561a13e56455e4e3a3b12c8c47e7c20a7fe2e8c13c0725c)
|
|
492
476
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
@@ -494,17 +478,35 @@ class CfnAutomationRule(
|
|
|
494
478
|
|
|
495
479
|
@builtins.property
|
|
496
480
|
@jsii.member(jsii_name="ruleOrder")
|
|
497
|
-
def rule_order(self) ->
|
|
481
|
+
def rule_order(self) -> jsii.Number:
|
|
498
482
|
'''An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings.'''
|
|
499
|
-
return typing.cast(
|
|
483
|
+
return typing.cast(jsii.Number, jsii.get(self, "ruleOrder"))
|
|
500
484
|
|
|
501
485
|
@rule_order.setter
|
|
502
|
-
def rule_order(self, value:
|
|
486
|
+
def rule_order(self, value: jsii.Number) -> None:
|
|
503
487
|
if __debug__:
|
|
504
488
|
type_hints = typing.get_type_hints(_typecheckingstub__db37e60211fd885d4c7d0aa9af521faa3786061d7fa1712b86f54f3646a4738b)
|
|
505
489
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
506
490
|
jsii.set(self, "ruleOrder", value) # pyright: ignore[reportArgumentType]
|
|
507
491
|
|
|
492
|
+
@builtins.property
|
|
493
|
+
@jsii.member(jsii_name="isTerminal")
|
|
494
|
+
def is_terminal(
|
|
495
|
+
self,
|
|
496
|
+
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
497
|
+
'''Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria.'''
|
|
498
|
+
return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "isTerminal"))
|
|
499
|
+
|
|
500
|
+
@is_terminal.setter
|
|
501
|
+
def is_terminal(
|
|
502
|
+
self,
|
|
503
|
+
value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
|
|
504
|
+
) -> None:
|
|
505
|
+
if __debug__:
|
|
506
|
+
type_hints = typing.get_type_hints(_typecheckingstub__11031a77a18a3180e3bf703420372155750c7001d9c920558ff50230e0111537)
|
|
507
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
508
|
+
jsii.set(self, "isTerminal", value) # pyright: ignore[reportArgumentType]
|
|
509
|
+
|
|
508
510
|
@builtins.property
|
|
509
511
|
@jsii.member(jsii_name="ruleStatus")
|
|
510
512
|
def rule_status(self) -> typing.Optional[builtins.str]:
|
|
@@ -2554,9 +2556,9 @@ class CfnAutomationRule(
|
|
|
2554
2556
|
"actions": "actions",
|
|
2555
2557
|
"criteria": "criteria",
|
|
2556
2558
|
"description": "description",
|
|
2557
|
-
"is_terminal": "isTerminal",
|
|
2558
2559
|
"rule_name": "ruleName",
|
|
2559
2560
|
"rule_order": "ruleOrder",
|
|
2561
|
+
"is_terminal": "isTerminal",
|
|
2560
2562
|
"rule_status": "ruleStatus",
|
|
2561
2563
|
"tags": "tags",
|
|
2562
2564
|
},
|
|
@@ -2565,12 +2567,12 @@ class CfnAutomationRuleProps:
|
|
|
2565
2567
|
def __init__(
|
|
2566
2568
|
self,
|
|
2567
2569
|
*,
|
|
2568
|
-
actions: typing.
|
|
2569
|
-
criteria: typing.
|
|
2570
|
-
description:
|
|
2570
|
+
actions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesActionProperty, typing.Dict[builtins.str, typing.Any]]]]],
|
|
2571
|
+
criteria: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesFindingFiltersProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
2572
|
+
description: builtins.str,
|
|
2573
|
+
rule_name: builtins.str,
|
|
2574
|
+
rule_order: jsii.Number,
|
|
2571
2575
|
is_terminal: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
2572
|
-
rule_name: typing.Optional[builtins.str] = None,
|
|
2573
|
-
rule_order: typing.Optional[jsii.Number] = None,
|
|
2574
2576
|
rule_status: typing.Optional[builtins.str] = None,
|
|
2575
2577
|
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
2576
2578
|
) -> None:
|
|
@@ -2579,9 +2581,9 @@ class CfnAutomationRuleProps:
|
|
|
2579
2581
|
:param actions: One or more actions to update finding fields if a finding matches the conditions specified in ``Criteria`` .
|
|
2580
2582
|
:param criteria: A set of `AWS Security Finding Format (ASFF) <https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html>`_ finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a rule is enabled and a finding matches the criteria specified in this parameter, Security Hub applies the rule action to the finding.
|
|
2581
2583
|
:param description: A description of the rule.
|
|
2582
|
-
:param is_terminal: Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.
|
|
2583
2584
|
:param rule_name: The name of the rule.
|
|
2584
2585
|
:param rule_order: An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings. Security Hub applies rules with lower values for this parameter first.
|
|
2586
|
+
:param is_terminal: Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria. This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.
|
|
2585
2587
|
:param rule_status: Whether the rule is active after it is created. If this parameter is equal to ``ENABLED`` , Security Hub applies the rule to findings and finding updates after the rule is created.
|
|
2586
2588
|
:param tags: User-defined tags associated with an automation rule.
|
|
2587
2589
|
|
|
@@ -2794,9 +2796,11 @@ class CfnAutomationRuleProps:
|
|
|
2794
2796
|
)]
|
|
2795
2797
|
),
|
|
2796
2798
|
description="description",
|
|
2797
|
-
is_terminal=False,
|
|
2798
2799
|
rule_name="ruleName",
|
|
2799
2800
|
rule_order=123,
|
|
2801
|
+
|
|
2802
|
+
# the properties below are optional
|
|
2803
|
+
is_terminal=False,
|
|
2800
2804
|
rule_status="ruleStatus",
|
|
2801
2805
|
tags={
|
|
2802
2806
|
"tags_key": "tags"
|
|
@@ -2808,24 +2812,20 @@ class CfnAutomationRuleProps:
|
|
|
2808
2812
|
check_type(argname="argument actions", value=actions, expected_type=type_hints["actions"])
|
|
2809
2813
|
check_type(argname="argument criteria", value=criteria, expected_type=type_hints["criteria"])
|
|
2810
2814
|
check_type(argname="argument description", value=description, expected_type=type_hints["description"])
|
|
2811
|
-
check_type(argname="argument is_terminal", value=is_terminal, expected_type=type_hints["is_terminal"])
|
|
2812
2815
|
check_type(argname="argument rule_name", value=rule_name, expected_type=type_hints["rule_name"])
|
|
2813
2816
|
check_type(argname="argument rule_order", value=rule_order, expected_type=type_hints["rule_order"])
|
|
2817
|
+
check_type(argname="argument is_terminal", value=is_terminal, expected_type=type_hints["is_terminal"])
|
|
2814
2818
|
check_type(argname="argument rule_status", value=rule_status, expected_type=type_hints["rule_status"])
|
|
2815
2819
|
check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
|
|
2816
|
-
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2820
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
2821
|
+
"actions": actions,
|
|
2822
|
+
"criteria": criteria,
|
|
2823
|
+
"description": description,
|
|
2824
|
+
"rule_name": rule_name,
|
|
2825
|
+
"rule_order": rule_order,
|
|
2826
|
+
}
|
|
2823
2827
|
if is_terminal is not None:
|
|
2824
2828
|
self._values["is_terminal"] = is_terminal
|
|
2825
|
-
if rule_name is not None:
|
|
2826
|
-
self._values["rule_name"] = rule_name
|
|
2827
|
-
if rule_order is not None:
|
|
2828
|
-
self._values["rule_order"] = rule_order
|
|
2829
2829
|
if rule_status is not None:
|
|
2830
2830
|
self._values["rule_status"] = rule_status
|
|
2831
2831
|
if tags is not None:
|
|
@@ -2834,58 +2834,49 @@ class CfnAutomationRuleProps:
|
|
|
2834
2834
|
@builtins.property
|
|
2835
2835
|
def actions(
|
|
2836
2836
|
self,
|
|
2837
|
-
) -> typing.
|
|
2837
|
+
) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesActionProperty]]]:
|
|
2838
2838
|
'''One or more actions to update finding fields if a finding matches the conditions specified in ``Criteria`` .
|
|
2839
2839
|
|
|
2840
2840
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-actions
|
|
2841
2841
|
'''
|
|
2842
2842
|
result = self._values.get("actions")
|
|
2843
|
-
|
|
2843
|
+
assert result is not None, "Required property 'actions' is missing"
|
|
2844
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesActionProperty]]], result)
|
|
2844
2845
|
|
|
2845
2846
|
@builtins.property
|
|
2846
2847
|
def criteria(
|
|
2847
2848
|
self,
|
|
2848
|
-
) -> typing.
|
|
2849
|
+
) -> typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesFindingFiltersProperty]:
|
|
2849
2850
|
'''A set of `AWS Security Finding Format (ASFF) <https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html>`_ finding field attributes and corresponding expected values that Security Hub uses to filter findings. If a rule is enabled and a finding matches the criteria specified in this parameter, Security Hub applies the rule action to the finding.
|
|
2850
2851
|
|
|
2851
2852
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-criteria
|
|
2852
2853
|
'''
|
|
2853
2854
|
result = self._values.get("criteria")
|
|
2854
|
-
|
|
2855
|
+
assert result is not None, "Required property 'criteria' is missing"
|
|
2856
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesFindingFiltersProperty], result)
|
|
2855
2857
|
|
|
2856
2858
|
@builtins.property
|
|
2857
|
-
def description(self) ->
|
|
2859
|
+
def description(self) -> builtins.str:
|
|
2858
2860
|
'''A description of the rule.
|
|
2859
2861
|
|
|
2860
2862
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-description
|
|
2861
2863
|
'''
|
|
2862
2864
|
result = self._values.get("description")
|
|
2863
|
-
|
|
2864
|
-
|
|
2865
|
-
@builtins.property
|
|
2866
|
-
def is_terminal(
|
|
2867
|
-
self,
|
|
2868
|
-
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
2869
|
-
'''Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria.
|
|
2870
|
-
|
|
2871
|
-
This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.
|
|
2872
|
-
|
|
2873
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-isterminal
|
|
2874
|
-
'''
|
|
2875
|
-
result = self._values.get("is_terminal")
|
|
2876
|
-
return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
|
|
2865
|
+
assert result is not None, "Required property 'description' is missing"
|
|
2866
|
+
return typing.cast(builtins.str, result)
|
|
2877
2867
|
|
|
2878
2868
|
@builtins.property
|
|
2879
|
-
def rule_name(self) ->
|
|
2869
|
+
def rule_name(self) -> builtins.str:
|
|
2880
2870
|
'''The name of the rule.
|
|
2881
2871
|
|
|
2882
2872
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-rulename
|
|
2883
2873
|
'''
|
|
2884
2874
|
result = self._values.get("rule_name")
|
|
2885
|
-
|
|
2875
|
+
assert result is not None, "Required property 'rule_name' is missing"
|
|
2876
|
+
return typing.cast(builtins.str, result)
|
|
2886
2877
|
|
|
2887
2878
|
@builtins.property
|
|
2888
|
-
def rule_order(self) ->
|
|
2879
|
+
def rule_order(self) -> jsii.Number:
|
|
2889
2880
|
'''An integer ranging from 1 to 1000 that represents the order in which the rule action is applied to findings.
|
|
2890
2881
|
|
|
2891
2882
|
Security Hub applies rules with lower values for this parameter first.
|
|
@@ -2893,7 +2884,21 @@ class CfnAutomationRuleProps:
|
|
|
2893
2884
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-ruleorder
|
|
2894
2885
|
'''
|
|
2895
2886
|
result = self._values.get("rule_order")
|
|
2896
|
-
|
|
2887
|
+
assert result is not None, "Required property 'rule_order' is missing"
|
|
2888
|
+
return typing.cast(jsii.Number, result)
|
|
2889
|
+
|
|
2890
|
+
@builtins.property
|
|
2891
|
+
def is_terminal(
|
|
2892
|
+
self,
|
|
2893
|
+
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
2894
|
+
'''Specifies whether a rule is the last to be applied with respect to a finding that matches the rule criteria.
|
|
2895
|
+
|
|
2896
|
+
This is useful when a finding matches the criteria for multiple rules, and each rule has different actions. If a rule is terminal, Security Hub applies the rule action to a finding that matches the rule criteria and doesn't evaluate other rules for the finding. By default, a rule isn't terminal.
|
|
2897
|
+
|
|
2898
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrule.html#cfn-securityhub-automationrule-isterminal
|
|
2899
|
+
'''
|
|
2900
|
+
result = self._values.get("is_terminal")
|
|
2901
|
+
return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
|
|
2897
2902
|
|
|
2898
2903
|
@builtins.property
|
|
2899
2904
|
def rule_status(self) -> typing.Optional[builtins.str]:
|
|
@@ -10314,12 +10319,12 @@ def _typecheckingstub__90c663d2946359b509542feafdcb3d89f11ca9e30a214aae02ea3d6b3
|
|
|
10314
10319
|
scope: _constructs_77d1e7e8.Construct,
|
|
10315
10320
|
id: builtins.str,
|
|
10316
10321
|
*,
|
|
10317
|
-
actions: typing.
|
|
10318
|
-
criteria: typing.
|
|
10319
|
-
description:
|
|
10322
|
+
actions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesActionProperty, typing.Dict[builtins.str, typing.Any]]]]],
|
|
10323
|
+
criteria: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesFindingFiltersProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
10324
|
+
description: builtins.str,
|
|
10325
|
+
rule_name: builtins.str,
|
|
10326
|
+
rule_order: jsii.Number,
|
|
10320
10327
|
is_terminal: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
10321
|
-
rule_name: typing.Optional[builtins.str] = None,
|
|
10322
|
-
rule_order: typing.Optional[jsii.Number] = None,
|
|
10323
10328
|
rule_status: typing.Optional[builtins.str] = None,
|
|
10324
10329
|
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
10325
10330
|
) -> None:
|
|
@@ -10339,37 +10344,37 @@ def _typecheckingstub__cc6a8a522560219490822e00b9ec3810152de6616cf975f073c37fc9d
|
|
|
10339
10344
|
pass
|
|
10340
10345
|
|
|
10341
10346
|
def _typecheckingstub__90988dc6b536563439917056373f7379ca48a864b5a3471a7b3552f6c9b40897(
|
|
10342
|
-
value: typing.
|
|
10347
|
+
value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesActionProperty]]],
|
|
10343
10348
|
) -> None:
|
|
10344
10349
|
"""Type checking stubs"""
|
|
10345
10350
|
pass
|
|
10346
10351
|
|
|
10347
10352
|
def _typecheckingstub__cc91daff88300654f2c8a9e4e5aad76fd0c26ae9c62e118febc7d1bff9733c5f(
|
|
10348
|
-
value: typing.
|
|
10353
|
+
value: typing.Union[_IResolvable_da3f097b, CfnAutomationRule.AutomationRulesFindingFiltersProperty],
|
|
10349
10354
|
) -> None:
|
|
10350
10355
|
"""Type checking stubs"""
|
|
10351
10356
|
pass
|
|
10352
10357
|
|
|
10353
10358
|
def _typecheckingstub__13e710145ba6564ce42bac7fc3465ec7406a15699f473acd70e62bf605c1f259(
|
|
10354
|
-
value:
|
|
10359
|
+
value: builtins.str,
|
|
10355
10360
|
) -> None:
|
|
10356
10361
|
"""Type checking stubs"""
|
|
10357
10362
|
pass
|
|
10358
10363
|
|
|
10359
|
-
def
|
|
10360
|
-
value:
|
|
10364
|
+
def _typecheckingstub__ffff694fc9dee0bbe561a13e56455e4e3a3b12c8c47e7c20a7fe2e8c13c0725c(
|
|
10365
|
+
value: builtins.str,
|
|
10361
10366
|
) -> None:
|
|
10362
10367
|
"""Type checking stubs"""
|
|
10363
10368
|
pass
|
|
10364
10369
|
|
|
10365
|
-
def
|
|
10366
|
-
value:
|
|
10370
|
+
def _typecheckingstub__db37e60211fd885d4c7d0aa9af521faa3786061d7fa1712b86f54f3646a4738b(
|
|
10371
|
+
value: jsii.Number,
|
|
10367
10372
|
) -> None:
|
|
10368
10373
|
"""Type checking stubs"""
|
|
10369
10374
|
pass
|
|
10370
10375
|
|
|
10371
|
-
def
|
|
10372
|
-
value: typing.Optional[
|
|
10376
|
+
def _typecheckingstub__11031a77a18a3180e3bf703420372155750c7001d9c920558ff50230e0111537(
|
|
10377
|
+
value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
|
|
10373
10378
|
) -> None:
|
|
10374
10379
|
"""Type checking stubs"""
|
|
10375
10380
|
pass
|
|
@@ -10527,12 +10532,12 @@ def _typecheckingstub__e47be336b722bb880cce3edf7d5752dceac8f243282fcb2bc5094d82b
|
|
|
10527
10532
|
|
|
10528
10533
|
def _typecheckingstub__221241b44c93ea569fcf69aaaade0ce7cf31b7343bc3d072d74ccd16895d9a2d(
|
|
10529
10534
|
*,
|
|
10530
|
-
actions: typing.
|
|
10531
|
-
criteria: typing.
|
|
10532
|
-
description:
|
|
10535
|
+
actions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesActionProperty, typing.Dict[builtins.str, typing.Any]]]]],
|
|
10536
|
+
criteria: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRule.AutomationRulesFindingFiltersProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
10537
|
+
description: builtins.str,
|
|
10538
|
+
rule_name: builtins.str,
|
|
10539
|
+
rule_order: jsii.Number,
|
|
10533
10540
|
is_terminal: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
10534
|
-
rule_name: typing.Optional[builtins.str] = None,
|
|
10535
|
-
rule_order: typing.Optional[jsii.Number] = None,
|
|
10536
10541
|
rule_status: typing.Optional[builtins.str] = None,
|
|
10537
10542
|
tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
10538
10543
|
) -> None:
|
aws_cdk/aws_ses/__init__.py
CHANGED
|
@@ -9944,6 +9944,7 @@ class CfnReceiptRule(
|
|
|
9944
9944
|
bucket_name="bucketName",
|
|
9945
9945
|
|
|
9946
9946
|
# the properties below are optional
|
|
9947
|
+
iam_role_arn="iamRoleArn",
|
|
9947
9948
|
kms_key_arn="kmsKeyArn",
|
|
9948
9949
|
object_key_prefix="objectKeyPrefix",
|
|
9949
9950
|
topic_arn="topicArn"
|
|
@@ -10164,6 +10165,7 @@ class CfnReceiptRule(
|
|
|
10164
10165
|
bucket_name="bucketName",
|
|
10165
10166
|
|
|
10166
10167
|
# the properties below are optional
|
|
10168
|
+
iam_role_arn="iamRoleArn",
|
|
10167
10169
|
kms_key_arn="kmsKeyArn",
|
|
10168
10170
|
object_key_prefix="objectKeyPrefix",
|
|
10169
10171
|
topic_arn="topicArn"
|
|
@@ -10686,6 +10688,7 @@ class CfnReceiptRule(
|
|
|
10686
10688
|
bucket_name="bucketName",
|
|
10687
10689
|
|
|
10688
10690
|
# the properties below are optional
|
|
10691
|
+
iam_role_arn="iamRoleArn",
|
|
10689
10692
|
kms_key_arn="kmsKeyArn",
|
|
10690
10693
|
object_key_prefix="objectKeyPrefix",
|
|
10691
10694
|
topic_arn="topicArn"
|
|
@@ -10826,6 +10829,7 @@ class CfnReceiptRule(
|
|
|
10826
10829
|
jsii_struct_bases=[],
|
|
10827
10830
|
name_mapping={
|
|
10828
10831
|
"bucket_name": "bucketName",
|
|
10832
|
+
"iam_role_arn": "iamRoleArn",
|
|
10829
10833
|
"kms_key_arn": "kmsKeyArn",
|
|
10830
10834
|
"object_key_prefix": "objectKeyPrefix",
|
|
10831
10835
|
"topic_arn": "topicArn",
|
|
@@ -10836,6 +10840,7 @@ class CfnReceiptRule(
|
|
|
10836
10840
|
self,
|
|
10837
10841
|
*,
|
|
10838
10842
|
bucket_name: builtins.str,
|
|
10843
|
+
iam_role_arn: typing.Optional[builtins.str] = None,
|
|
10839
10844
|
kms_key_arn: typing.Optional[builtins.str] = None,
|
|
10840
10845
|
object_key_prefix: typing.Optional[builtins.str] = None,
|
|
10841
10846
|
topic_arn: typing.Optional[builtins.str] = None,
|
|
@@ -10850,6 +10855,7 @@ class CfnReceiptRule(
|
|
|
10850
10855
|
For information about specifying Amazon S3 actions in receipt rules, see the `Amazon SES Developer Guide <https://docs.aws.amazon.com/ses/latest/dg/receiving-email-action-s3.html>`_ .
|
|
10851
10856
|
|
|
10852
10857
|
:param bucket_name: The name of the Amazon S3 bucket for incoming email.
|
|
10858
|
+
:param iam_role_arn: The ARN of the IAM role to be used by Amazon Simple Email Service while writing to the Amazon S3 bucket, optionally encrypting your mail via the provided customer managed key, and publishing to the Amazon SNS topic. This role should have access to the following APIs: - ``s3:PutObject`` , ``kms:Encrypt`` and ``kms:GenerateDataKey`` for the given Amazon S3 bucket. - ``kms:GenerateDataKey`` for the given AWS KMS customer managed key. - ``sns:Publish`` for the given Amazon SNS topic. .. epigraph:: If an IAM role ARN is provided, the role (and only the role) is used to access all the given resources (Amazon S3 bucket, AWS KMS customer managed key and Amazon SNS topic). Therefore, setting up individual resource access permissions is not required.
|
|
10853
10859
|
:param kms_key_arn: The customer managed key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket. You can use the AWS managed key or a customer managed key that you created in AWS KMS as follows: - To use the AWS managed key, provide an ARN in the form of ``arn:aws:kms:REGION:ACCOUNT-ID-WITHOUT-HYPHENS:alias/aws/ses`` . For example, if your AWS account ID is 123456789012 and you want to use the AWS managed key in the US West (Oregon) Region, the ARN of the AWS managed key would be ``arn:aws:kms:us-west-2:123456789012:alias/aws/ses`` . If you use the AWS managed key, you don't need to perform any extra steps to give Amazon SES permission to use the key. - To use a customer managed key that you created in AWS KMS, provide the ARN of the customer managed key and ensure that you add a statement to your key's policy to give Amazon SES permission to use it. For more information about giving permissions, see the `Amazon SES Developer Guide <https://docs.aws.amazon.com/ses/latest/dg/receiving-email-permissions.html>`_ . For more information about key policies, see the `AWS KMS Developer Guide <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html>`_ . If you do not specify an AWS KMS key, Amazon SES does not encrypt your emails. .. epigraph:: Your mail is encrypted by Amazon SES using the Amazon S3 encryption client before the mail is submitted to Amazon S3 for storage. It is not encrypted using Amazon S3 server-side encryption. This means that you must use the Amazon S3 encryption client to decrypt the email after retrieving it from Amazon S3, as the service has no access to use your AWS KMS keys for decryption. This encryption client is currently available with the `AWS SDK for Java <https://docs.aws.amazon.com/sdk-for-java/>`_ and `AWS SDK for Ruby <https://docs.aws.amazon.com/sdk-for-ruby/>`_ only. For more information about client-side encryption using AWS KMS managed keys, see the `Amazon S3 Developer Guide <https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html>`_ .
|
|
10854
10860
|
:param object_key_prefix: The key prefix of the Amazon S3 bucket. The key prefix is similar to a directory name that enables you to store similar data under the same directory in a bucket.
|
|
10855
10861
|
:param topic_arn: The ARN of the Amazon SNS topic to notify when the message is saved to the Amazon S3 bucket. You can find the ARN of a topic by using the `ListTopics <https://docs.aws.amazon.com/sns/latest/api/API_ListTopics.html>`_ operation in Amazon SNS. For more information about Amazon SNS topics, see the `Amazon SNS Developer Guide <https://docs.aws.amazon.com/sns/latest/dg/CreateTopic.html>`_ .
|
|
@@ -10867,6 +10873,7 @@ class CfnReceiptRule(
|
|
|
10867
10873
|
bucket_name="bucketName",
|
|
10868
10874
|
|
|
10869
10875
|
# the properties below are optional
|
|
10876
|
+
iam_role_arn="iamRoleArn",
|
|
10870
10877
|
kms_key_arn="kmsKeyArn",
|
|
10871
10878
|
object_key_prefix="objectKeyPrefix",
|
|
10872
10879
|
topic_arn="topicArn"
|
|
@@ -10875,12 +10882,15 @@ class CfnReceiptRule(
|
|
|
10875
10882
|
if __debug__:
|
|
10876
10883
|
type_hints = typing.get_type_hints(_typecheckingstub__39d61a089bfe9f0df546774b89ce5903a571f298fca9c95b6767da42860a40aa)
|
|
10877
10884
|
check_type(argname="argument bucket_name", value=bucket_name, expected_type=type_hints["bucket_name"])
|
|
10885
|
+
check_type(argname="argument iam_role_arn", value=iam_role_arn, expected_type=type_hints["iam_role_arn"])
|
|
10878
10886
|
check_type(argname="argument kms_key_arn", value=kms_key_arn, expected_type=type_hints["kms_key_arn"])
|
|
10879
10887
|
check_type(argname="argument object_key_prefix", value=object_key_prefix, expected_type=type_hints["object_key_prefix"])
|
|
10880
10888
|
check_type(argname="argument topic_arn", value=topic_arn, expected_type=type_hints["topic_arn"])
|
|
10881
10889
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
10882
10890
|
"bucket_name": bucket_name,
|
|
10883
10891
|
}
|
|
10892
|
+
if iam_role_arn is not None:
|
|
10893
|
+
self._values["iam_role_arn"] = iam_role_arn
|
|
10884
10894
|
if kms_key_arn is not None:
|
|
10885
10895
|
self._values["kms_key_arn"] = kms_key_arn
|
|
10886
10896
|
if object_key_prefix is not None:
|
|
@@ -10898,6 +10908,25 @@ class CfnReceiptRule(
|
|
|
10898
10908
|
assert result is not None, "Required property 'bucket_name' is missing"
|
|
10899
10909
|
return typing.cast(builtins.str, result)
|
|
10900
10910
|
|
|
10911
|
+
@builtins.property
|
|
10912
|
+
def iam_role_arn(self) -> typing.Optional[builtins.str]:
|
|
10913
|
+
'''The ARN of the IAM role to be used by Amazon Simple Email Service while writing to the Amazon S3 bucket, optionally encrypting your mail via the provided customer managed key, and publishing to the Amazon SNS topic.
|
|
10914
|
+
|
|
10915
|
+
This role should have access to the following APIs:
|
|
10916
|
+
|
|
10917
|
+
- ``s3:PutObject`` , ``kms:Encrypt`` and ``kms:GenerateDataKey`` for the given Amazon S3 bucket.
|
|
10918
|
+
- ``kms:GenerateDataKey`` for the given AWS KMS customer managed key.
|
|
10919
|
+
- ``sns:Publish`` for the given Amazon SNS topic.
|
|
10920
|
+
|
|
10921
|
+
.. epigraph::
|
|
10922
|
+
|
|
10923
|
+
If an IAM role ARN is provided, the role (and only the role) is used to access all the given resources (Amazon S3 bucket, AWS KMS customer managed key and Amazon SNS topic). Therefore, setting up individual resource access permissions is not required.
|
|
10924
|
+
|
|
10925
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-s3action.html#cfn-ses-receiptrule-s3action-iamrolearn
|
|
10926
|
+
'''
|
|
10927
|
+
result = self._values.get("iam_role_arn")
|
|
10928
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
10929
|
+
|
|
10901
10930
|
@builtins.property
|
|
10902
10931
|
def kms_key_arn(self) -> typing.Optional[builtins.str]:
|
|
10903
10932
|
'''The customer managed key that Amazon SES should use to encrypt your emails before saving them to the Amazon S3 bucket.
|
|
@@ -11261,6 +11290,7 @@ class CfnReceiptRuleProps:
|
|
|
11261
11290
|
bucket_name="bucketName",
|
|
11262
11291
|
|
|
11263
11292
|
# the properties below are optional
|
|
11293
|
+
iam_role_arn="iamRoleArn",
|
|
11264
11294
|
kms_key_arn="kmsKeyArn",
|
|
11265
11295
|
object_key_prefix="objectKeyPrefix",
|
|
11266
11296
|
topic_arn="topicArn"
|
|
@@ -17674,6 +17704,7 @@ def _typecheckingstub__597a4926fee926f01951cda574fa9265912d5bc1c5bf1e98c3410d25d
|
|
|
17674
17704
|
def _typecheckingstub__39d61a089bfe9f0df546774b89ce5903a571f298fca9c95b6767da42860a40aa(
|
|
17675
17705
|
*,
|
|
17676
17706
|
bucket_name: builtins.str,
|
|
17707
|
+
iam_role_arn: typing.Optional[builtins.str] = None,
|
|
17677
17708
|
kms_key_arn: typing.Optional[builtins.str] = None,
|
|
17678
17709
|
object_key_prefix: typing.Optional[builtins.str] = None,
|
|
17679
17710
|
topic_arn: typing.Optional[builtins.str] = None,
|