aws-cdk-lib 2.140.0__py3-none-any.whl → 2.142.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 +9 -1
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.140.0.jsii.tgz → aws-cdk-lib@2.142.0.jsii.tgz} +0 -0
- aws_cdk/aws_appsync/__init__.py +224 -94
- aws_cdk/aws_autoscaling/__init__.py +109 -25
- aws_cdk/aws_bedrock/__init__.py +51 -41
- aws_cdk/aws_cloudfront/__init__.py +34 -78
- aws_cdk/aws_cloudtrail/__init__.py +13 -4
- aws_cdk/aws_codepipeline/__init__.py +364 -27
- aws_cdk/aws_connectcampaigns/__init__.py +2 -2
- aws_cdk/aws_datasync/__init__.py +51 -56
- aws_cdk/aws_docdb/__init__.py +181 -4
- aws_cdk/aws_dynamodb/__init__.py +410 -0
- aws_cdk/aws_ec2/__init__.py +91 -42
- aws_cdk/aws_ecr/__init__.py +32 -7
- aws_cdk/aws_ecs/__init__.py +65 -18
- aws_cdk/aws_eks/__init__.py +36 -3
- aws_cdk/aws_entityresolution/__init__.py +6 -2
- aws_cdk/aws_events/__init__.py +46 -25
- aws_cdk/aws_events_targets/__init__.py +341 -0
- aws_cdk/aws_fms/__init__.py +7 -7
- aws_cdk/aws_gamelift/__init__.py +261 -160
- aws_cdk/aws_iam/__init__.py +13 -8
- aws_cdk/aws_ivs/__init__.py +1 -3
- aws_cdk/aws_kms/__init__.py +11 -5
- aws_cdk/aws_lambda_nodejs/__init__.py +3 -0
- aws_cdk/aws_location/__init__.py +8 -4
- aws_cdk/aws_logs/__init__.py +6 -6
- aws_cdk/aws_oam/__init__.py +45 -11
- aws_cdk/aws_omics/__init__.py +4 -4
- aws_cdk/aws_paymentcryptography/__init__.py +128 -48
- aws_cdk/aws_pinpoint/__init__.py +7 -5
- aws_cdk/aws_qbusiness/__init__.py +620 -294
- aws_cdk/aws_quicksight/__init__.py +103 -40
- aws_cdk/aws_rds/__init__.py +80 -16
- aws_cdk/aws_route53profiles/__init__.py +49 -49
- aws_cdk/aws_s3/__init__.py +9 -2
- aws_cdk/aws_sagemaker/__init__.py +30 -30
- aws_cdk/aws_servicecatalog/__init__.py +27 -4
- aws_cdk/aws_ses/__init__.py +9 -9
- aws_cdk/aws_stepfunctions_tasks/__init__.py +7 -6
- aws_cdk/aws_transfer/__init__.py +4 -4
- aws_cdk/aws_voiceid/__init__.py +2 -2
- {aws_cdk_lib-2.140.0.dist-info → aws_cdk_lib-2.142.0.dist-info}/METADATA +10 -2
- {aws_cdk_lib-2.140.0.dist-info → aws_cdk_lib-2.142.0.dist-info}/RECORD +49 -49
- {aws_cdk_lib-2.140.0.dist-info → aws_cdk_lib-2.142.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.140.0.dist-info → aws_cdk_lib-2.142.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.140.0.dist-info → aws_cdk_lib-2.142.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.140.0.dist-info → aws_cdk_lib-2.142.0.dist-info}/top_level.txt +0 -0
|
@@ -18,6 +18,7 @@ Currently supported are:
|
|
|
18
18
|
* [Queue a Batch job](#queue-a-batch-job)
|
|
19
19
|
* [Invoke an API Gateway REST API](#invoke-an-api-gateway-rest-api)
|
|
20
20
|
* [Invoke an API Destination](#invoke-an-api-destination)
|
|
21
|
+
* [Invoke an AppSync GraphQL API](#invoke-an-appsync-graphql-api)
|
|
21
22
|
* [Put an event on an EventBridge bus](#put-an-event-on-an-eventbridge-bus)
|
|
22
23
|
* [Run an ECS Task](#run-an-ecs-task)
|
|
23
24
|
|
|
@@ -362,6 +363,67 @@ rule = events.Rule(self, "OtherRule",
|
|
|
362
363
|
)
|
|
363
364
|
```
|
|
364
365
|
|
|
366
|
+
## Invoke an AppSync GraphQL API
|
|
367
|
+
|
|
368
|
+
Use the `AppSync` target to trigger an AppSync GraphQL API. You need to
|
|
369
|
+
create an `AppSync.GraphqlApi` configured with `AWS_IAM` authorization mode.
|
|
370
|
+
|
|
371
|
+
The code snippet below creates an AppSync GraphQL API target that is invoked every hour, calling the `publish` mutation.
|
|
372
|
+
|
|
373
|
+
```python
|
|
374
|
+
import aws_cdk.aws_appsync as appsync
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
api = appsync.GraphqlApi(self, "api",
|
|
378
|
+
name="api",
|
|
379
|
+
definition=appsync.Definition.from_file("schema.graphql"),
|
|
380
|
+
authorization_config=appsync.AuthorizationConfig(
|
|
381
|
+
default_authorization=appsync.AuthorizationMode(authorization_type=appsync.AuthorizationType.IAM)
|
|
382
|
+
)
|
|
383
|
+
)
|
|
384
|
+
|
|
385
|
+
rule = events.Rule(self, "Rule",
|
|
386
|
+
schedule=events.Schedule.rate(cdk.Duration.hours(1))
|
|
387
|
+
)
|
|
388
|
+
|
|
389
|
+
rule.add_target(targets.AppSync(api,
|
|
390
|
+
graph_qLOperation="mutation Publish($message: String!){ publish(message: $message) { message } }",
|
|
391
|
+
variables=events.RuleTargetInput.from_object({
|
|
392
|
+
"message": "hello world"
|
|
393
|
+
})
|
|
394
|
+
))
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
You can pass an existing role with the proper permissions to be used for the target when the rule is triggered. The code snippet below uses an existing role and grants permissions to use the publish Mutation on the GraphQL API.
|
|
398
|
+
|
|
399
|
+
```python
|
|
400
|
+
import aws_cdk.aws_iam as iam
|
|
401
|
+
import aws_cdk.aws_appsync as appsync
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
api = appsync.GraphqlApi.from_graphql_api_attributes(self, "ImportedAPI",
|
|
405
|
+
graphql_api_id="<api-id>",
|
|
406
|
+
graphql_api_arn="<api-arn>",
|
|
407
|
+
graph_qLEndpoint_arn="<api-endpoint-arn>",
|
|
408
|
+
visibility=appsync.Visibility.GLOBAL,
|
|
409
|
+
modes=[appsync.AuthorizationType.IAM]
|
|
410
|
+
)
|
|
411
|
+
|
|
412
|
+
rule = events.Rule(self, "Rule", schedule=events.Schedule.rate(cdk.Duration.minutes(1)))
|
|
413
|
+
role = iam.Role(self, "Role", assumed_by=iam.ServicePrincipal("events.amazonaws.com"))
|
|
414
|
+
|
|
415
|
+
# allow EventBridge to use the `publish` mutation
|
|
416
|
+
api.grant_mutation(role, "publish")
|
|
417
|
+
|
|
418
|
+
rule.add_target(targets.AppSync(api,
|
|
419
|
+
graph_qLOperation="mutation Publish($message: String!){ publish(message: $message) { message } }",
|
|
420
|
+
variables=events.RuleTargetInput.from_object({
|
|
421
|
+
"message": "hello world"
|
|
422
|
+
}),
|
|
423
|
+
event_role=role
|
|
424
|
+
))
|
|
425
|
+
```
|
|
426
|
+
|
|
365
427
|
## Put an event on an EventBridge bus
|
|
366
428
|
|
|
367
429
|
Use the `EventBus` target to route event to a different EventBus.
|
|
@@ -517,6 +579,7 @@ from .. import Duration as _Duration_4839e8c3
|
|
|
517
579
|
from ..aws_apigateway import (
|
|
518
580
|
IRestApi as _IRestApi_1f02523d, RestApi as _RestApi_777c8238
|
|
519
581
|
)
|
|
582
|
+
from ..aws_appsync import IGraphqlApi as _IGraphqlApi_ed8270f3
|
|
520
583
|
from ..aws_codebuild import IProject as _IProject_aafae30a
|
|
521
584
|
from ..aws_codepipeline import IPipeline as _IPipeline_0931f838
|
|
522
585
|
from ..aws_ec2 import (
|
|
@@ -767,6 +830,92 @@ class ApiGateway(
|
|
|
767
830
|
return typing.cast(_RestApi_777c8238, jsii.get(self, "restApi"))
|
|
768
831
|
|
|
769
832
|
|
|
833
|
+
@jsii.implements(_IRuleTarget_7a91f454)
|
|
834
|
+
class AppSync(
|
|
835
|
+
metaclass=jsii.JSIIMeta,
|
|
836
|
+
jsii_type="aws-cdk-lib.aws_events_targets.AppSync",
|
|
837
|
+
):
|
|
838
|
+
'''Use an AppSync GraphQL API as a target for Amazon EventBridge rules.
|
|
839
|
+
|
|
840
|
+
:exampleMetadata: infused
|
|
841
|
+
|
|
842
|
+
Example::
|
|
843
|
+
|
|
844
|
+
import aws_cdk.aws_appsync as appsync
|
|
845
|
+
|
|
846
|
+
|
|
847
|
+
api = appsync.GraphqlApi(self, "api",
|
|
848
|
+
name="api",
|
|
849
|
+
definition=appsync.Definition.from_file("schema.graphql"),
|
|
850
|
+
authorization_config=appsync.AuthorizationConfig(
|
|
851
|
+
default_authorization=appsync.AuthorizationMode(authorization_type=appsync.AuthorizationType.IAM)
|
|
852
|
+
)
|
|
853
|
+
)
|
|
854
|
+
|
|
855
|
+
rule = events.Rule(self, "Rule",
|
|
856
|
+
schedule=events.Schedule.rate(cdk.Duration.hours(1))
|
|
857
|
+
)
|
|
858
|
+
|
|
859
|
+
rule.add_target(targets.AppSync(api,
|
|
860
|
+
graph_qLOperation="mutation Publish($message: String!){ publish(message: $message) { message } }",
|
|
861
|
+
variables=events.RuleTargetInput.from_object({
|
|
862
|
+
"message": "hello world"
|
|
863
|
+
})
|
|
864
|
+
))
|
|
865
|
+
'''
|
|
866
|
+
|
|
867
|
+
def __init__(
|
|
868
|
+
self,
|
|
869
|
+
appsync_api: _IGraphqlApi_ed8270f3,
|
|
870
|
+
*,
|
|
871
|
+
graph_ql_operation: builtins.str,
|
|
872
|
+
event_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
873
|
+
variables: typing.Optional[_RuleTargetInput_6beca786] = None,
|
|
874
|
+
dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
|
|
875
|
+
max_event_age: typing.Optional[_Duration_4839e8c3] = None,
|
|
876
|
+
retry_attempts: typing.Optional[jsii.Number] = None,
|
|
877
|
+
) -> None:
|
|
878
|
+
'''
|
|
879
|
+
:param appsync_api: -
|
|
880
|
+
:param graph_ql_operation: The GraphQL operation; that is, the query, mutation, or subscription to be parsed and executed by the GraphQL service.
|
|
881
|
+
:param event_role: The role to assume before invoking the target (i.e., the pipeline) when the given rule is triggered. Default: - a new role with permissions to access mutations will be created
|
|
882
|
+
:param variables: The variables that are include in the GraphQL operation. Default: - The entire event is used
|
|
883
|
+
:param dead_letter_queue: The SQS queue to be used as deadLetterQueue. Check out the `considerations for using a dead-letter queue <https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations>`_. The events not successfully delivered are automatically retried for a specified period of time, depending on the retry policy of the target. If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. Default: - no dead-letter queue
|
|
884
|
+
:param max_event_age: The maximum age of a request that Lambda sends to a function for processing. Minimum value of 60. Maximum value of 86400. Default: Duration.hours(24)
|
|
885
|
+
:param retry_attempts: The maximum number of times to retry when the function returns an error. Minimum value of 0. Maximum value of 185. Default: 185
|
|
886
|
+
'''
|
|
887
|
+
if __debug__:
|
|
888
|
+
type_hints = typing.get_type_hints(_typecheckingstub__56a99cbd83a0d7a956b68eb6ee5cedd89a2b1c37754c2dc7f5a5ea2ccffb1c7f)
|
|
889
|
+
check_type(argname="argument appsync_api", value=appsync_api, expected_type=type_hints["appsync_api"])
|
|
890
|
+
props = AppSyncGraphQLApiProps(
|
|
891
|
+
graph_ql_operation=graph_ql_operation,
|
|
892
|
+
event_role=event_role,
|
|
893
|
+
variables=variables,
|
|
894
|
+
dead_letter_queue=dead_letter_queue,
|
|
895
|
+
max_event_age=max_event_age,
|
|
896
|
+
retry_attempts=retry_attempts,
|
|
897
|
+
)
|
|
898
|
+
|
|
899
|
+
jsii.create(self.__class__, self, [appsync_api, props])
|
|
900
|
+
|
|
901
|
+
@jsii.member(jsii_name="bind")
|
|
902
|
+
def bind(
|
|
903
|
+
self,
|
|
904
|
+
rule: _IRule_af9e3d28,
|
|
905
|
+
_id: typing.Optional[builtins.str] = None,
|
|
906
|
+
) -> _RuleTargetConfig_4e70fe03:
|
|
907
|
+
'''Returns a RuleTarget that can be used to trigger this AppSync GraphQL API as a result from an EventBridge event.
|
|
908
|
+
|
|
909
|
+
:param rule: -
|
|
910
|
+
:param _id: -
|
|
911
|
+
'''
|
|
912
|
+
if __debug__:
|
|
913
|
+
type_hints = typing.get_type_hints(_typecheckingstub__6b1999a517525e35ef54e6129e3396c11b46ecb394388d3f908c6d627c051c4f)
|
|
914
|
+
check_type(argname="argument rule", value=rule, expected_type=type_hints["rule"])
|
|
915
|
+
check_type(argname="argument _id", value=_id, expected_type=type_hints["_id"])
|
|
916
|
+
return typing.cast(_RuleTargetConfig_4e70fe03, jsii.invoke(self, "bind", [rule, _id]))
|
|
917
|
+
|
|
918
|
+
|
|
770
919
|
@jsii.implements(_IRuleTarget_7a91f454)
|
|
771
920
|
class AwsApi(
|
|
772
921
|
metaclass=jsii.JSIIMeta,
|
|
@@ -3277,6 +3426,164 @@ class ApiGatewayProps(TargetBaseProps):
|
|
|
3277
3426
|
)
|
|
3278
3427
|
|
|
3279
3428
|
|
|
3429
|
+
@jsii.data_type(
|
|
3430
|
+
jsii_type="aws-cdk-lib.aws_events_targets.AppSyncGraphQLApiProps",
|
|
3431
|
+
jsii_struct_bases=[TargetBaseProps],
|
|
3432
|
+
name_mapping={
|
|
3433
|
+
"dead_letter_queue": "deadLetterQueue",
|
|
3434
|
+
"max_event_age": "maxEventAge",
|
|
3435
|
+
"retry_attempts": "retryAttempts",
|
|
3436
|
+
"graph_ql_operation": "graphQLOperation",
|
|
3437
|
+
"event_role": "eventRole",
|
|
3438
|
+
"variables": "variables",
|
|
3439
|
+
},
|
|
3440
|
+
)
|
|
3441
|
+
class AppSyncGraphQLApiProps(TargetBaseProps):
|
|
3442
|
+
def __init__(
|
|
3443
|
+
self,
|
|
3444
|
+
*,
|
|
3445
|
+
dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
|
|
3446
|
+
max_event_age: typing.Optional[_Duration_4839e8c3] = None,
|
|
3447
|
+
retry_attempts: typing.Optional[jsii.Number] = None,
|
|
3448
|
+
graph_ql_operation: builtins.str,
|
|
3449
|
+
event_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
3450
|
+
variables: typing.Optional[_RuleTargetInput_6beca786] = None,
|
|
3451
|
+
) -> None:
|
|
3452
|
+
'''Customize the AppSync GraphQL API target.
|
|
3453
|
+
|
|
3454
|
+
:param dead_letter_queue: The SQS queue to be used as deadLetterQueue. Check out the `considerations for using a dead-letter queue <https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations>`_. The events not successfully delivered are automatically retried for a specified period of time, depending on the retry policy of the target. If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. Default: - no dead-letter queue
|
|
3455
|
+
:param max_event_age: The maximum age of a request that Lambda sends to a function for processing. Minimum value of 60. Maximum value of 86400. Default: Duration.hours(24)
|
|
3456
|
+
:param retry_attempts: The maximum number of times to retry when the function returns an error. Minimum value of 0. Maximum value of 185. Default: 185
|
|
3457
|
+
:param graph_ql_operation: The GraphQL operation; that is, the query, mutation, or subscription to be parsed and executed by the GraphQL service.
|
|
3458
|
+
:param event_role: The role to assume before invoking the target (i.e., the pipeline) when the given rule is triggered. Default: - a new role with permissions to access mutations will be created
|
|
3459
|
+
:param variables: The variables that are include in the GraphQL operation. Default: - The entire event is used
|
|
3460
|
+
|
|
3461
|
+
:exampleMetadata: infused
|
|
3462
|
+
|
|
3463
|
+
Example::
|
|
3464
|
+
|
|
3465
|
+
import aws_cdk.aws_appsync as appsync
|
|
3466
|
+
|
|
3467
|
+
|
|
3468
|
+
api = appsync.GraphqlApi(self, "api",
|
|
3469
|
+
name="api",
|
|
3470
|
+
definition=appsync.Definition.from_file("schema.graphql"),
|
|
3471
|
+
authorization_config=appsync.AuthorizationConfig(
|
|
3472
|
+
default_authorization=appsync.AuthorizationMode(authorization_type=appsync.AuthorizationType.IAM)
|
|
3473
|
+
)
|
|
3474
|
+
)
|
|
3475
|
+
|
|
3476
|
+
rule = events.Rule(self, "Rule",
|
|
3477
|
+
schedule=events.Schedule.rate(cdk.Duration.hours(1))
|
|
3478
|
+
)
|
|
3479
|
+
|
|
3480
|
+
rule.add_target(targets.AppSync(api,
|
|
3481
|
+
graph_qLOperation="mutation Publish($message: String!){ publish(message: $message) { message } }",
|
|
3482
|
+
variables=events.RuleTargetInput.from_object({
|
|
3483
|
+
"message": "hello world"
|
|
3484
|
+
})
|
|
3485
|
+
))
|
|
3486
|
+
'''
|
|
3487
|
+
if __debug__:
|
|
3488
|
+
type_hints = typing.get_type_hints(_typecheckingstub__aea6c33be1be64052595742c1fdd00fb0f53185ebe3c9f93ceacd92d82655d1d)
|
|
3489
|
+
check_type(argname="argument dead_letter_queue", value=dead_letter_queue, expected_type=type_hints["dead_letter_queue"])
|
|
3490
|
+
check_type(argname="argument max_event_age", value=max_event_age, expected_type=type_hints["max_event_age"])
|
|
3491
|
+
check_type(argname="argument retry_attempts", value=retry_attempts, expected_type=type_hints["retry_attempts"])
|
|
3492
|
+
check_type(argname="argument graph_ql_operation", value=graph_ql_operation, expected_type=type_hints["graph_ql_operation"])
|
|
3493
|
+
check_type(argname="argument event_role", value=event_role, expected_type=type_hints["event_role"])
|
|
3494
|
+
check_type(argname="argument variables", value=variables, expected_type=type_hints["variables"])
|
|
3495
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
3496
|
+
"graph_ql_operation": graph_ql_operation,
|
|
3497
|
+
}
|
|
3498
|
+
if dead_letter_queue is not None:
|
|
3499
|
+
self._values["dead_letter_queue"] = dead_letter_queue
|
|
3500
|
+
if max_event_age is not None:
|
|
3501
|
+
self._values["max_event_age"] = max_event_age
|
|
3502
|
+
if retry_attempts is not None:
|
|
3503
|
+
self._values["retry_attempts"] = retry_attempts
|
|
3504
|
+
if event_role is not None:
|
|
3505
|
+
self._values["event_role"] = event_role
|
|
3506
|
+
if variables is not None:
|
|
3507
|
+
self._values["variables"] = variables
|
|
3508
|
+
|
|
3509
|
+
@builtins.property
|
|
3510
|
+
def dead_letter_queue(self) -> typing.Optional[_IQueue_7ed6f679]:
|
|
3511
|
+
'''The SQS queue to be used as deadLetterQueue. Check out the `considerations for using a dead-letter queue <https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations>`_.
|
|
3512
|
+
|
|
3513
|
+
The events not successfully delivered are automatically retried for a specified period of time,
|
|
3514
|
+
depending on the retry policy of the target.
|
|
3515
|
+
If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue.
|
|
3516
|
+
|
|
3517
|
+
:default: - no dead-letter queue
|
|
3518
|
+
'''
|
|
3519
|
+
result = self._values.get("dead_letter_queue")
|
|
3520
|
+
return typing.cast(typing.Optional[_IQueue_7ed6f679], result)
|
|
3521
|
+
|
|
3522
|
+
@builtins.property
|
|
3523
|
+
def max_event_age(self) -> typing.Optional[_Duration_4839e8c3]:
|
|
3524
|
+
'''The maximum age of a request that Lambda sends to a function for processing.
|
|
3525
|
+
|
|
3526
|
+
Minimum value of 60.
|
|
3527
|
+
Maximum value of 86400.
|
|
3528
|
+
|
|
3529
|
+
:default: Duration.hours(24)
|
|
3530
|
+
'''
|
|
3531
|
+
result = self._values.get("max_event_age")
|
|
3532
|
+
return typing.cast(typing.Optional[_Duration_4839e8c3], result)
|
|
3533
|
+
|
|
3534
|
+
@builtins.property
|
|
3535
|
+
def retry_attempts(self) -> typing.Optional[jsii.Number]:
|
|
3536
|
+
'''The maximum number of times to retry when the function returns an error.
|
|
3537
|
+
|
|
3538
|
+
Minimum value of 0.
|
|
3539
|
+
Maximum value of 185.
|
|
3540
|
+
|
|
3541
|
+
:default: 185
|
|
3542
|
+
'''
|
|
3543
|
+
result = self._values.get("retry_attempts")
|
|
3544
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
3545
|
+
|
|
3546
|
+
@builtins.property
|
|
3547
|
+
def graph_ql_operation(self) -> builtins.str:
|
|
3548
|
+
'''The GraphQL operation;
|
|
3549
|
+
|
|
3550
|
+
that is, the query, mutation, or subscription
|
|
3551
|
+
to be parsed and executed by the GraphQL service.
|
|
3552
|
+
'''
|
|
3553
|
+
result = self._values.get("graph_ql_operation")
|
|
3554
|
+
assert result is not None, "Required property 'graph_ql_operation' is missing"
|
|
3555
|
+
return typing.cast(builtins.str, result)
|
|
3556
|
+
|
|
3557
|
+
@builtins.property
|
|
3558
|
+
def event_role(self) -> typing.Optional[_IRole_235f5d8e]:
|
|
3559
|
+
'''The role to assume before invoking the target (i.e., the pipeline) when the given rule is triggered.
|
|
3560
|
+
|
|
3561
|
+
:default: - a new role with permissions to access mutations will be created
|
|
3562
|
+
'''
|
|
3563
|
+
result = self._values.get("event_role")
|
|
3564
|
+
return typing.cast(typing.Optional[_IRole_235f5d8e], result)
|
|
3565
|
+
|
|
3566
|
+
@builtins.property
|
|
3567
|
+
def variables(self) -> typing.Optional[_RuleTargetInput_6beca786]:
|
|
3568
|
+
'''The variables that are include in the GraphQL operation.
|
|
3569
|
+
|
|
3570
|
+
:default: - The entire event is used
|
|
3571
|
+
'''
|
|
3572
|
+
result = self._values.get("variables")
|
|
3573
|
+
return typing.cast(typing.Optional[_RuleTargetInput_6beca786], result)
|
|
3574
|
+
|
|
3575
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
3576
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
3577
|
+
|
|
3578
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
3579
|
+
return not (rhs == self)
|
|
3580
|
+
|
|
3581
|
+
def __repr__(self) -> str:
|
|
3582
|
+
return "AppSyncGraphQLApiProps(%s)" % ", ".join(
|
|
3583
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
3584
|
+
)
|
|
3585
|
+
|
|
3586
|
+
|
|
3280
3587
|
@jsii.data_type(
|
|
3281
3588
|
jsii_type="aws-cdk-lib.aws_events_targets.BatchJobProps",
|
|
3282
3589
|
jsii_struct_bases=[TargetBaseProps],
|
|
@@ -4742,6 +5049,8 @@ __all__ = [
|
|
|
4742
5049
|
"ApiDestinationProps",
|
|
4743
5050
|
"ApiGateway",
|
|
4744
5051
|
"ApiGatewayProps",
|
|
5052
|
+
"AppSync",
|
|
5053
|
+
"AppSyncGraphQLApiProps",
|
|
4745
5054
|
"AwsApi",
|
|
4746
5055
|
"AwsApiInput",
|
|
4747
5056
|
"AwsApiProps",
|
|
@@ -4826,6 +5135,26 @@ def _typecheckingstub__f34d8ba93048cf243454dc97d2236199033c050fc0bbc6ff84e18fa60
|
|
|
4826
5135
|
"""Type checking stubs"""
|
|
4827
5136
|
pass
|
|
4828
5137
|
|
|
5138
|
+
def _typecheckingstub__56a99cbd83a0d7a956b68eb6ee5cedd89a2b1c37754c2dc7f5a5ea2ccffb1c7f(
|
|
5139
|
+
appsync_api: _IGraphqlApi_ed8270f3,
|
|
5140
|
+
*,
|
|
5141
|
+
graph_ql_operation: builtins.str,
|
|
5142
|
+
event_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
5143
|
+
variables: typing.Optional[_RuleTargetInput_6beca786] = None,
|
|
5144
|
+
dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
|
|
5145
|
+
max_event_age: typing.Optional[_Duration_4839e8c3] = None,
|
|
5146
|
+
retry_attempts: typing.Optional[jsii.Number] = None,
|
|
5147
|
+
) -> None:
|
|
5148
|
+
"""Type checking stubs"""
|
|
5149
|
+
pass
|
|
5150
|
+
|
|
5151
|
+
def _typecheckingstub__6b1999a517525e35ef54e6129e3396c11b46ecb394388d3f908c6d627c051c4f(
|
|
5152
|
+
rule: _IRule_af9e3d28,
|
|
5153
|
+
_id: typing.Optional[builtins.str] = None,
|
|
5154
|
+
) -> None:
|
|
5155
|
+
"""Type checking stubs"""
|
|
5156
|
+
pass
|
|
5157
|
+
|
|
4829
5158
|
def _typecheckingstub__a41bcbfd7e37d2d2cf83a8f636d325a2a328da0a83ef4d994f0be12782f7d357(
|
|
4830
5159
|
rule: _IRule_af9e3d28,
|
|
4831
5160
|
id: typing.Optional[builtins.str] = None,
|
|
@@ -5170,6 +5499,18 @@ def _typecheckingstub__ed5e368611ecca03be97333615df4f6727992e87138462a27cc1f9a4c
|
|
|
5170
5499
|
"""Type checking stubs"""
|
|
5171
5500
|
pass
|
|
5172
5501
|
|
|
5502
|
+
def _typecheckingstub__aea6c33be1be64052595742c1fdd00fb0f53185ebe3c9f93ceacd92d82655d1d(
|
|
5503
|
+
*,
|
|
5504
|
+
dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
|
|
5505
|
+
max_event_age: typing.Optional[_Duration_4839e8c3] = None,
|
|
5506
|
+
retry_attempts: typing.Optional[jsii.Number] = None,
|
|
5507
|
+
graph_ql_operation: builtins.str,
|
|
5508
|
+
event_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
5509
|
+
variables: typing.Optional[_RuleTargetInput_6beca786] = None,
|
|
5510
|
+
) -> None:
|
|
5511
|
+
"""Type checking stubs"""
|
|
5512
|
+
pass
|
|
5513
|
+
|
|
5173
5514
|
def _typecheckingstub__91b263189af78d46fd5bf421034197688036a7347fbaee9bef843d928f9bb43f(
|
|
5174
5515
|
*,
|
|
5175
5516
|
dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
|
aws_cdk/aws_fms/__init__.py
CHANGED
|
@@ -348,7 +348,7 @@ class CfnPolicy(
|
|
|
348
348
|
:param delete_all_policy_resources: Used when deleting a policy. If ``true`` , Firewall Manager performs cleanup according to the policy type. For AWS WAF and Shield Advanced policies, Firewall Manager does the following: - Deletes rule groups created by Firewall Manager - Removes web ACLs from in-scope resources - Deletes web ACLs that contain no rules or rule groups For security group policies, Firewall Manager does the following for each security group in the policy: - Disassociates the security group from in-scope resources - Deletes the security group if it was created through Firewall Manager and if it's no longer associated with any resources through another policy After the cleanup, in-scope resources are no longer protected by web ACLs in this policy. Protection of out-of-scope resources remains unchanged. Scope is determined by tags that you create and accounts that you associate with the policy. When creating the policy, if you specify that only resources in specific accounts or with specific tags are in scope of the policy, those accounts and resources are handled by the policy. All others are out of scope. If you don't specify tags or accounts, all resources are in scope.
|
|
349
349
|
:param exclude_map: Specifies the AWS account IDs and AWS Organizations organizational units (OUs) to exclude from the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time. You can specify inclusions or exclusions, but not both. If you specify an ``IncludeMap`` , AWS Firewall Manager applies the policy to all accounts specified by the ``IncludeMap`` , and does not evaluate any ``ExcludeMap`` specifications. If you do not specify an ``IncludeMap`` , then Firewall Manager applies the policy to all accounts except for those specified by the ``ExcludeMap`` . You can specify account IDs, OUs, or a combination: - Specify account IDs by setting the key to ``ACCOUNT`` . For example, the following is a valid map: ``{“ACCOUNT” : [“accountID1”, “accountID2”]}`` . - Specify OUs by setting the key to ``ORGUNIT`` . For example, the following is a valid map: ``{“ORGUNIT” : [“ouid111”, “ouid112”]}`` . - Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map: ``{“ACCOUNT” : [“accountID1”, “accountID2”], “ORGUNIT” : [“ouid111”, “ouid112”]}`` .
|
|
350
350
|
:param include_map: Specifies the AWS account IDs and AWS Organizations organizational units (OUs) to include in the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time. You can specify inclusions or exclusions, but not both. If you specify an ``IncludeMap`` , AWS Firewall Manager applies the policy to all accounts specified by the ``IncludeMap`` , and does not evaluate any ``ExcludeMap`` specifications. If you do not specify an ``IncludeMap`` , then Firewall Manager applies the policy to all accounts except for those specified by the ``ExcludeMap`` . You can specify account IDs, OUs, or a combination: - Specify account IDs by setting the key to ``ACCOUNT`` . For example, the following is a valid map: ``{“ACCOUNT” : [“accountID1”, “accountID2”]}`` . - Specify OUs by setting the key to ``ORGUNIT`` . For example, the following is a valid map: ``{“ORGUNIT” : [“ouid111”, “ouid112”]}`` . - Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map: ``{“ACCOUNT” : [“accountID1”, “accountID2”], “ORGUNIT” : [“ouid111”, “ouid112”]}`` .
|
|
351
|
-
:param policy_description:
|
|
351
|
+
:param policy_description: Your description of the AWS Firewall Manager policy.
|
|
352
352
|
:param resources_clean_up: Indicates whether AWS Firewall Manager should automatically remove protections from resources that leave the policy scope and clean up resources that Firewall Manager is managing for accounts when those accounts leave policy scope. For example, Firewall Manager will disassociate a Firewall Manager managed web ACL from a protected customer resource when the customer resource leaves policy scope. By default, Firewall Manager doesn't remove protections or delete Firewall Manager managed resources. This option is not available for Shield Advanced or AWS WAF Classic policies.
|
|
353
353
|
:param resource_set_ids: The unique identifiers of the resource sets used by the policy.
|
|
354
354
|
:param resource_tags: An array of ``ResourceTag`` objects, used to explicitly include resources in the policy scope or explicitly exclude them. If this isn't set, then tags aren't used to modify policy scope. See also ``ExcludeResourceTags`` .
|
|
@@ -563,7 +563,7 @@ class CfnPolicy(
|
|
|
563
563
|
@builtins.property
|
|
564
564
|
@jsii.member(jsii_name="policyDescription")
|
|
565
565
|
def policy_description(self) -> typing.Optional[builtins.str]:
|
|
566
|
-
'''
|
|
566
|
+
'''Your description of the AWS Firewall Manager policy.'''
|
|
567
567
|
return typing.cast(typing.Optional[builtins.str], jsii.get(self, "policyDescription"))
|
|
568
568
|
|
|
569
569
|
@policy_description.setter
|
|
@@ -821,7 +821,7 @@ class CfnPolicy(
|
|
|
821
821
|
network_firewall_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnPolicy.NetworkFirewallPolicyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
822
822
|
third_party_firewall_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnPolicy.ThirdPartyFirewallPolicyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
823
823
|
) -> None:
|
|
824
|
-
'''Contains the
|
|
824
|
+
'''Contains the settings to configure a network ACL policy, a AWS Network Firewall firewall policy deployment model, or a third-party firewall policy.
|
|
825
825
|
|
|
826
826
|
:param network_firewall_policy: Defines the deployment model to use for the firewall policy.
|
|
827
827
|
:param third_party_firewall_policy: Defines the policy options for a third-party firewall policy.
|
|
@@ -1055,7 +1055,7 @@ class CfnPolicy(
|
|
|
1055
1055
|
|
|
1056
1056
|
:param type: The service that the policy is using to protect the resources. This specifies the type of policy that is created, either an AWS WAF policy, a Shield Advanced policy, or a security group policy. For security group policies, Firewall Manager supports one security group for each common policy and for each content audit policy. This is an adjustable limit that you can increase by contacting AWS Support .
|
|
1057
1057
|
:param managed_service_data: Details about the service that are specific to the service type, in JSON format. - Example: ``DNS_FIREWALL`` ``"{\\"type\\":\\"DNS_FIREWALL\\",\\"preProcessRuleGroups\\":[{\\"ruleGroupId\\":\\"rslvr-frg-1\\",\\"priority\\":10}],\\"postProcessRuleGroups\\":[{\\"ruleGroupId\\":\\"rslvr-frg-2\\",\\"priority\\":9911}]}"`` .. epigraph:: Valid values for ``preProcessRuleGroups`` are between 1 and 99. Valid values for ``postProcessRuleGroups`` are between 9901 and 10000. - Example: ``NETWORK_FIREWALL`` - Centralized deployment model ``"{\\"type\\":\\"NETWORK_FIREWALL\\",\\"awsNetworkFirewallConfig\\":{\\"networkFirewallStatelessRuleGroupReferences\\":[{\\"resourceARN\\":\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\",\\"priority\\":1}],\\"networkFirewallStatelessDefaultActions\\":[\\"aws:forward_to_sfe\\",\\"customActionName\\"],\\"networkFirewallStatelessFragmentDefaultActions\\":[\\"aws:forward_to_sfe\\",\\"customActionName\\"],\\"networkFirewallStatelessCustomActions\\":[{\\"actionName\\":\\"customActionName\\",\\"actionDefinition\\":{\\"publishMetricAction\\":{\\"dimensions\\":[{\\"value\\":\\"metricdimensionvalue\\"}]}}}],\\"networkFirewallStatefulRuleGroupReferences\\":[{\\"resourceARN\\":\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\"}],\\"networkFirewallLoggingConfiguration\\":{\\"logDestinationConfigs\\":[{\\"logDestinationType\\":\\"S3\\",\\"logType\\":\\"ALERT\\",\\"logDestination\\":{\\"bucketName\\":\\"s3-bucket-name\\"}},{\\"logDestinationType\\":\\"S3\\",\\"logType\\":\\"FLOW\\",\\"logDestination\\":{\\"bucketName\\":\\"s3-bucket-name\\"}}],\\"overrideExistingConfig\\":true}},\\"firewallDeploymentModel\\":{\\"centralizedFirewallDeploymentModel\\":{\\"centralizedFirewallOrchestrationConfig\\":{\\"inspectionVpcIds\\":[{\\"resourceId\\":\\"vpc-1234\\",\\"accountId\\":\\"123456789011\\"}],\\"firewallCreationConfig\\":{\\"endpointLocation\\":{\\"availabilityZoneConfigList\\":[{\\"availabilityZoneId\\":null,\\"availabilityZoneName\\":\\"us-east-1a\\",\\"allowedIPV4CidrList\\":[\\"10.0.0.0/28\\"]}]}},\\"allowedIPV4CidrList\\":[]}}}}"`` To use the distributed deployment model, you must set `FirewallDeploymentModel <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-networkfirewallpolicy.html>`_ to ``DISTRIBUTED`` . - Example: ``NETWORK_FIREWALL`` - Distributed deployment model with automatic Availability Zone configuration ``"{\\"type\\":\\"NETWORK_FIREWALL\\",\\"networkFirewallStatelessRuleGroupReferences\\":[{\\"resourceARN\\":\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\",\\"priority\\":1}],\\"networkFirewallStatelessDefaultActions\\":[\\"aws:forward_to_sfe\\",\\"customActionName\\"],\\"networkFirewallStatelessFragmentDefaultActions\\":[\\"aws:forward_to_sfe\\",\\"customActionName\\"],\\"networkFirewallStatelessCustomActions\\":[{\\"actionName\\":\\"customActionName\\",\\"actionDefinition\\":{\\"publishMetricAction\\":{\\"dimensions\\":[{\\"value\\":\\"metricdimensionvalue\\"}]}}}],\\"networkFirewallStatefulRuleGroupReferences\\":[{\\"resourceARN\\":\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\"}],\\"networkFirewallOrchestrationConfig\\":{\\"singleFirewallEndpointPerVPC\\":false,\\"allowedIPV4CidrList\\":[\\"10.0.0.0/28\\",\\"192.168.0.0/28\\"],\\"routeManagementAction\\":\\"OFF\\"},\\"networkFirewallLoggingConfiguration\\":{\\"logDestinationConfigs\\":[{\\"logDestinationType\\":\\"S3\\",\\"logType\\":\\"ALERT\\",\\"logDestination\\":{\\"bucketName\\":\\"s3-bucket-name\\"}},{\\"logDestinationType\\":\\"S3\\",\\"logType\\":\\"FLOW\\",\\"logDestination\\":{\\"bucketName\\":\\"s3-bucket-name\\"}}],\\"overrideExistingConfig\\":true}}"`` With automatic Availbility Zone configuration, Firewall Manager chooses which Availability Zones to create the endpoints in. To use the distributed deployment model, you must set `FirewallDeploymentModel <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-networkfirewallpolicy.html>`_ to ``DISTRIBUTED`` . - Example: ``NETWORK_FIREWALL`` - Distributed deployment model with automatic Availability Zone configuration and route management ``"{\\"type\\":\\"NETWORK_FIREWALL\\",\\"networkFirewallStatelessRuleGroupReferences\\":[{\\"resourceARN\\":\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\",\\"priority\\":1}],\\"networkFirewallStatelessDefaultActions\\":[\\"aws:forward_to_sfe\\",\\"customActionName\\"],\\"networkFirewallStatelessFragmentDefaultActions\\":[\\"aws:forward_to_sfe\\",\\"customActionName\\"],\\"networkFirewallStatelessCustomActions\\":[{\\"actionName\\":\\"customActionName\\",\\"actionDefinition\\":{\\"publishMetricAction\\":{\\"dimensions\\":[{\\"value\\":\\"metricdimensionvalue\\"}]}}}],\\"networkFirewallStatefulRuleGroupReferences\\":[{\\"resourceARN\\":\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\"}],\\"networkFirewallOrchestrationConfig\\":{\\"singleFirewallEndpointPerVPC\\":false,\\"allowedIPV4CidrList\\":[\\"10.0.0.0/28\\",\\"192.168.0.0/28\\"],\\"routeManagementAction\\":\\"MONITOR\\",\\"routeManagementTargetTypes\\":[\\"InternetGateway\\"]},\\"networkFirewallLoggingConfiguration\\":{\\"logDestinationConfigs\\":[{\\"logDestinationType\\":\\"S3\\",\\"logType\\":\\"ALERT\\",\\"logDestination\\":{\\"bucketName\\":\\"s3-bucket-name\\"}},{\\"logDestinationType\\":\\"S3\\",\\"logType\\": \\"FLOW\\",\\"logDestination\\":{\\"bucketName\\":\\"s3-bucket-name\\"}}],\\"overrideExistingConfig\\":true}}"`` To use the distributed deployment model, you must set `FirewallDeploymentModel <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-networkfirewallpolicy.html>`_ to ``DISTRIBUTED`` . - Example: ``NETWORK_FIREWALL`` - Distributed deployment model with custom Availability Zone configuration ``"{\\"type\\":\\"NETWORK_FIREWALL\\",\\"networkFirewallStatelessRuleGroupReferences\\":[{\\"resourceARN\\":\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\",\\"priority\\":1}],\\"networkFirewallStatelessDefaultActions\\":[\\"aws:forward_to_sfe\\",\\"customActionName\\"],\\"networkFirewallStatelessFragmentDefaultActions\\":[\\"aws:forward_to_sfe\\",\\"fragmentcustomactionname\\"],\\"networkFirewallStatelessCustomActions\\":[{\\"actionName\\":\\"customActionName\\", \\"actionDefinition\\":{\\"publishMetricAction\\":{\\"dimensions\\":[{\\"value\\":\\"metricdimensionvalue\\"}]}}},{\\"actionName\\":\\"fragmentcustomactionname\\",\\"actionDefinition\\":{\\"publishMetricAction\\":{\\"dimensions\\":[{\\"value\\":\\"fragmentmetricdimensionvalue\\"}]}}}],\\"networkFirewallStatefulRuleGroupReferences\\":[{\\"resourceARN\\":\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\"}],\\"networkFirewallOrchestrationConfig\\":{\\"firewallCreationConfig\\":{ \\"endpointLocation\\":{\\"availabilityZoneConfigList\\":[{\\"availabilityZoneName\\":\\"us-east-1a\\",\\"allowedIPV4CidrList\\":[\\"10.0.0.0/28\\"]},{\\"availabilityZoneName\\":\\"us-east-1b\\",\\"allowedIPV4CidrList\\":[ \\"10.0.0.0/28\\"]}]} },\\"singleFirewallEndpointPerVPC\\":false,\\"allowedIPV4CidrList\\":null,\\"routeManagementAction\\":\\"OFF\\",\\"networkFirewallLoggingConfiguration\\":{\\"logDestinationConfigs\\":[{\\"logDestinationType\\":\\"S3\\",\\"logType\\":\\"ALERT\\",\\"logDestination\\":{\\"bucketName\\":\\"s3-bucket-name\\"}},{\\"logDestinationType\\":\\"S3\\",\\"logType\\":\\"FLOW\\",\\"logDestination\\":{\\"bucketName\\":\\"s3-bucket-name\\"}}],\\"overrideExistingConfig\\":boolean}}"`` With custom Availability Zone configuration, you define which specific Availability Zones to create endpoints in by configuring ``firewallCreationConfig`` . To configure the Availability Zones in ``firewallCreationConfig`` , specify either the ``availabilityZoneName`` or ``availabilityZoneId`` parameter, not both parameters. To use the distributed deployment model, you must set `FirewallDeploymentModel <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-networkfirewallpolicy.html>`_ to ``DISTRIBUTED`` . - Example: ``NETWORK_FIREWALL`` - Distributed deployment model with custom Availability Zone configuration and route management ``"{\\"type\\":\\"NETWORK_FIREWALL\\",\\"networkFirewallStatelessRuleGroupReferences\\":[{\\"resourceARN\\":\\"arn:aws:network-firewall:us-east-1:123456789011:stateless-rulegroup/test\\",\\"priority\\":1}],\\"networkFirewallStatelessDefaultActions\\":[\\"aws:forward_to_sfe\\",\\"customActionName\\"],\\"networkFirewallStatelessFragmentDefaultActions\\":[\\"aws:forward_to_sfe\\",\\"fragmentcustomactionname\\"],\\"networkFirewallStatelessCustomActions\\":[{\\"actionName\\":\\"customActionName\\",\\"actionDefinition\\":{\\"publishMetricAction\\":{\\"dimensions\\":[{\\"value\\":\\"metricdimensionvalue\\"}]}}},{\\"actionName\\":\\"fragmentcustomactionname\\",\\"actionDefinition\\":{\\"publishMetricAction\\":{\\"dimensions\\":[{\\"value\\":\\"fragmentmetricdimensionvalue\\"}]}}}],\\"networkFirewallStatefulRuleGroupReferences\\":[{\\"resourceARN\\":\\"arn:aws:network-firewall:us-east-1:123456789011:stateful-rulegroup/test\\"}],\\"networkFirewallOrchestrationConfig\\":{\\"firewallCreationConfig\\":{\\"endpointLocation\\":{\\"availabilityZoneConfigList\\":[{\\"availabilityZoneName\\":\\"us-east-1a\\",\\"allowedIPV4CidrList\\":[\\"10.0.0.0/28\\"]},{\\"availabilityZoneName\\":\\"us-east-1b\\",\\"allowedIPV4CidrList\\":[\\"10.0.0.0/28\\"]}]}},\\"singleFirewallEndpointPerVPC\\":false,\\"allowedIPV4CidrList\\":null,\\"routeManagementAction\\":\\"MONITOR\\",\\"routeManagementTargetTypes\\":[\\"InternetGateway\\"],\\"routeManagementConfig\\":{\\"allowCrossAZTrafficIfNoEndpoint\\":true}},\\"networkFirewallLoggingConfiguration\\":{\\"logDestinationConfigs\\":[{\\"logDestinationType\\":\\"S3\\",\\"logType\\":\\"ALERT\\",\\"logDestination\\":{\\"bucketName\\":\\"s3-bucket-name\\"}},{\\"logDestinationType\\":\\"S3\\",\\"logType\\":\\"FLOW\\",\\"logDestination\\":{\\"bucketName\\":\\"s3-bucket-name\\"}}],\\"overrideExistingConfig\\":boolean}}"`` To use the distributed deployment model, you must set `FirewallDeploymentModel <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-networkfirewallpolicy.html>`_ to ``DISTRIBUTED`` . - Specification for ``SHIELD_ADVANCED`` for Amazon CloudFront distributions ``"{\\"type\\":\\"SHIELD_ADVANCED\\",\\"automaticResponseConfiguration\\": {\\"automaticResponseStatus\\":\\"ENABLED|IGNORED|DISABLED\\", \\"automaticResponseAction\\":\\"BLOCK|COUNT\\"}, \\"overrideCustomerWebaclClassic\\":true|false, \\"optimizeUnassociatedWebACL\\":true|false}"`` For example: ``"{\\"type\\":\\"SHIELD_ADVANCED\\",\\"automaticResponseConfiguration\\": {\\"automaticResponseStatus\\":\\"ENABLED\\", \\"automaticResponseAction\\":\\"COUNT\\"}}"`` The default value for ``automaticResponseStatus`` is ``IGNORED`` . The value for ``automaticResponseAction`` is only required when ``automaticResponseStatus`` is set to ``ENABLED`` . The default value for ``overrideCustomerWebaclClassic`` is ``false`` . For other resource types that you can protect with a Shield Advanced policy, this ``ManagedServiceData`` configuration is an empty string. - Example: ``THIRD_PARTY_FIREWALL`` - Centralized deployment model Replace ``THIRD_PARTY_FIREWALL_NAME`` with the name of the third-party firewall. ``"{ \\"type\\":\\"THIRD_PARTY_FIREWALL\\", \\"thirdPartyFirewall\\":\\"\\THIRD_PARTY_FIREWALL_NAME\\", \\"thirdPartyFirewallConfig\\":{ \\"thirdPartyFirewallPolicyList\\":[\\"global-1\\"] },\\"firewallDeploymentModel\\":{\\"centralizedFirewallDeploymentModel\\":{\\"centralizedFirewallOrchestrationConfig\\":{\\"inspectionVpcIds\\":[{\\"resourceId\\":\\"vpc-1234\\",\\"accountId\\":\\"123456789011\\"}],\\"firewallCreationConfig\\":{\\"endpointLocation\\":{\\"availabilityZoneConfigList\\":[{\\"availabilityZoneId\\":null,\\"availabilityZoneName\\":\\"us-east-1a\\",\\"allowedIPV4CidrList\\":[\\"10.0.0.0/28\\"]}]}},\\"allowedIPV4CidrList\\":[]}}}}"`` To use the distributed deployment model, you must set `FirewallDeploymentModel <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-thirdpartyfirewallpolicy.html>`_ to ``CENTRALIZED`` . - Example: ``THIRD_PARTY_FIREWALL`` - Distributed deployment model Replace ``THIRD_PARTY_FIREWALL_NAME`` with the name of the third-party firewall. ``"{\\"type\\":\\"THIRD_PARTY_FIREWALL\\",\\"thirdPartyFirewall\\":\\"THIRD_PARTY_FIREWALL_NAME\\",\\"thirdPartyFirewallConfig\\":{\\"thirdPartyFirewallPolicyList\\":[\\"global-1\\"] },\\"firewallDeploymentModel\\":{ \\"distributedFirewallDeploymentModel\\":{ \\"distributedFirewallOrchestrationConfig\\":{\\"firewallCreationConfig\\":{\\"endpointLocation\\":{ \\"availabilityZoneConfigList\\":[ {\\"availabilityZoneName\\":\\"${AvailabilityZone}\\" } ] } }, \\"allowedIPV4CidrList\\":[ ] } } } }"`` To use the distributed deployment model, you must set `FirewallDeploymentModel <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-thirdpartyfirewallpolicy.html>`_ to ``DISTRIBUTED`` . - Example: ``WAFV2`` ``"{\\"type\\":\\"WAFV2\\",\\"preProcessRuleGroups\\":[{\\"ruleGroupArn\\":null,\\"overrideAction\\":{\\"type\\":\\"NONE\\"},\\"managedRuleGroupIdentifier\\":{\\"version\\":null,\\"vendorName\\":\\"AWS\\",\\"managedRuleGroupName\\":\\"AWSManagedRulesAmazonIpReputationList\\"},\\"ruleGroupType\\":\\"ManagedRuleGroup\\",\\"excludeRules\\":[{\\"name\\":\\"NoUserAgent_HEADER\\"}]}],\\"postProcessRuleGroups\\":[],\\"defaultAction\\":{\\"type\\":\\"ALLOW\\"},\\"overrideCustomerWebACLAssociation\\":false,\\"loggingConfiguration\\":{\\"logDestinationConfigs\\":[\\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\\"],\\"redactedFields\\":[{\\"redactedFieldType\\":\\"SingleHeader\\",\\"redactedFieldValue\\":\\"Cookies\\"},{\\"redactedFieldType\\":\\"Method\\"}]},\\"optimizeUnassociatedWebACL\\":true}"`` In the ``loggingConfiguration`` , you can specify one ``logDestinationConfigs`` , you can optionally provide up to 20 ``redactedFields`` , and the ``RedactedFieldType`` must be one of ``URI`` , ``QUERY_STRING`` , ``HEADER`` , or ``METHOD`` . - Example: ``AWS WAF Classic`` ``"{\\"type\\": \\"WAF\\", \\"ruleGroups\\": [{\\"id\\":\\"12345678-1bcd-9012-efga-0987654321ab\\", \\"overrideAction\\" : {\\"type\\": \\"COUNT\\"}}], \\"defaultAction\\": {\\"type\\": \\"BLOCK\\"}}"`` - Example: ``WAFV2`` - AWS Firewall Manager support for AWS WAF managed rule group versioning ``"{\\"type\\":\\"WAFV2\\",\\"preProcessRuleGroups\\":[{\\"ruleGroupArn\\":null,\\"overrideAction\\":{\\"type\\":\\"NONE\\"},\\"managedRuleGroupIdentifier\\":{\\"versionEnabled\\":true,\\"version\\":\\"Version_2.0\\",\\"vendorName\\":\\"AWS\\",\\"managedRuleGroupName\\":\\"AWSManagedRulesCommonRuleSet\\"},\\"ruleGroupType\\":\\"ManagedRuleGroup\\",\\"excludeRules\\":[{\\"name\\":\\"NoUserAgent_HEADER\\"}]}],\\"postProcessRuleGroups\\":[],\\"defaultAction\\":{\\"type\\":\\"ALLOW\\"},\\"overrideCustomerWebACLAssociation\\":false,\\"loggingConfiguration\\":{\\"logDestinationConfigs\\":[\\"arn:aws:firehose:us-west-2:12345678912:deliverystream/aws-waf-logs-fms-admin-destination\\"],\\"redactedFields\\":[{\\"redactedFieldType\\":\\"SingleHeader\\",\\"redactedFieldValue\\":\\"Cookies\\"},{\\"redactedFieldType\\":\\"Method\\"}]}}"`` To use a specific version of a AWS WAF managed rule group in your Firewall Manager policy, you must set ``versionEnabled`` to ``true`` , and set ``version`` to the version you'd like to use. If you don't set ``versionEnabled`` to ``true`` , or if you omit ``versionEnabled`` , then Firewall Manager uses the default version of the AWS WAF managed rule group. - Example: ``SECURITY_GROUPS_COMMON`` ``"{\\"type\\":\\"SECURITY_GROUPS_COMMON\\",\\"revertManualSecurityGroupChanges\\":false,\\"exclusiveResourceSecurityGroupManagement\\":false, \\"applyToAllEC2InstanceENIs\\":false,\\"securityGroups\\":[{\\"id\\":\\" sg-000e55995d61a06bd\\"}]}"`` - Example: Shared VPCs. Apply the preceding policy to resources in shared VPCs as well as to those in VPCs that the account owns ``"{\\"type\\":\\"SECURITY_GROUPS_COMMON\\",\\"revertManualSecurityGroupChanges\\":false,\\"exclusiveResourceSecurityGroupManagement\\":false, \\"applyToAllEC2InstanceENIs\\":false,\\"includeSharedVPC\\":true,\\"securityGroups\\":[{\\"id\\":\\" sg-000e55995d61a06bd\\"}]}"`` - Example: ``SECURITY_GROUPS_CONTENT_AUDIT`` ``"{\\"type\\":\\"SECURITY_GROUPS_CONTENT_AUDIT\\",\\"securityGroups\\":[{\\"id\\":\\"sg-000e55995d61a06bd\\"}],\\"securityGroupAction\\":{\\"type\\":\\"ALLOW\\"}}"`` The security group action for content audit can be ``ALLOW`` or ``DENY`` . For ``ALLOW`` , all in-scope security group rules must be within the allowed range of the policy's security group rules. For ``DENY`` , all in-scope security group rules must not contain a value or a range that matches a rule value or range in the policy security group. - Example: ``SECURITY_GROUPS_USAGE_AUDIT`` ``"{\\"type\\":\\"SECURITY_GROUPS_USAGE_AUDIT\\",\\"deleteUnusedSecurityGroups\\":true,\\"coalesceRedundantSecurityGroups\\":true}"``
|
|
1058
|
-
:param policy_option: Contains the Network Firewall firewall policy
|
|
1058
|
+
:param policy_option: Contains the settings to configure a network ACL policy, a AWS Network Firewall firewall policy deployment model, or a third-party firewall policy.
|
|
1059
1059
|
|
|
1060
1060
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-securityservicepolicydata.html
|
|
1061
1061
|
:exampleMetadata: fixture=_generated
|
|
@@ -1218,7 +1218,7 @@ class CfnPolicy(
|
|
|
1218
1218
|
def policy_option(
|
|
1219
1219
|
self,
|
|
1220
1220
|
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnPolicy.PolicyOptionProperty"]]:
|
|
1221
|
-
'''Contains the Network Firewall firewall policy
|
|
1221
|
+
'''Contains the settings to configure a network ACL policy, a AWS Network Firewall firewall policy deployment model, or a third-party firewall policy.
|
|
1222
1222
|
|
|
1223
1223
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fms-policy-securityservicepolicydata.html#cfn-fms-policy-securityservicepolicydata-policyoption
|
|
1224
1224
|
'''
|
|
@@ -1337,7 +1337,7 @@ class CfnPolicyProps:
|
|
|
1337
1337
|
:param delete_all_policy_resources: Used when deleting a policy. If ``true`` , Firewall Manager performs cleanup according to the policy type. For AWS WAF and Shield Advanced policies, Firewall Manager does the following: - Deletes rule groups created by Firewall Manager - Removes web ACLs from in-scope resources - Deletes web ACLs that contain no rules or rule groups For security group policies, Firewall Manager does the following for each security group in the policy: - Disassociates the security group from in-scope resources - Deletes the security group if it was created through Firewall Manager and if it's no longer associated with any resources through another policy After the cleanup, in-scope resources are no longer protected by web ACLs in this policy. Protection of out-of-scope resources remains unchanged. Scope is determined by tags that you create and accounts that you associate with the policy. When creating the policy, if you specify that only resources in specific accounts or with specific tags are in scope of the policy, those accounts and resources are handled by the policy. All others are out of scope. If you don't specify tags or accounts, all resources are in scope.
|
|
1338
1338
|
:param exclude_map: Specifies the AWS account IDs and AWS Organizations organizational units (OUs) to exclude from the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time. You can specify inclusions or exclusions, but not both. If you specify an ``IncludeMap`` , AWS Firewall Manager applies the policy to all accounts specified by the ``IncludeMap`` , and does not evaluate any ``ExcludeMap`` specifications. If you do not specify an ``IncludeMap`` , then Firewall Manager applies the policy to all accounts except for those specified by the ``ExcludeMap`` . You can specify account IDs, OUs, or a combination: - Specify account IDs by setting the key to ``ACCOUNT`` . For example, the following is a valid map: ``{“ACCOUNT” : [“accountID1”, “accountID2”]}`` . - Specify OUs by setting the key to ``ORGUNIT`` . For example, the following is a valid map: ``{“ORGUNIT” : [“ouid111”, “ouid112”]}`` . - Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map: ``{“ACCOUNT” : [“accountID1”, “accountID2”], “ORGUNIT” : [“ouid111”, “ouid112”]}`` .
|
|
1339
1339
|
:param include_map: Specifies the AWS account IDs and AWS Organizations organizational units (OUs) to include in the policy. Specifying an OU is the equivalent of specifying all accounts in the OU and in any of its child OUs, including any child OUs and accounts that are added at a later time. You can specify inclusions or exclusions, but not both. If you specify an ``IncludeMap`` , AWS Firewall Manager applies the policy to all accounts specified by the ``IncludeMap`` , and does not evaluate any ``ExcludeMap`` specifications. If you do not specify an ``IncludeMap`` , then Firewall Manager applies the policy to all accounts except for those specified by the ``ExcludeMap`` . You can specify account IDs, OUs, or a combination: - Specify account IDs by setting the key to ``ACCOUNT`` . For example, the following is a valid map: ``{“ACCOUNT” : [“accountID1”, “accountID2”]}`` . - Specify OUs by setting the key to ``ORGUNIT`` . For example, the following is a valid map: ``{“ORGUNIT” : [“ouid111”, “ouid112”]}`` . - Specify accounts and OUs together in a single map, separated with a comma. For example, the following is a valid map: ``{“ACCOUNT” : [“accountID1”, “accountID2”], “ORGUNIT” : [“ouid111”, “ouid112”]}`` .
|
|
1340
|
-
:param policy_description:
|
|
1340
|
+
:param policy_description: Your description of the AWS Firewall Manager policy.
|
|
1341
1341
|
:param resources_clean_up: Indicates whether AWS Firewall Manager should automatically remove protections from resources that leave the policy scope and clean up resources that Firewall Manager is managing for accounts when those accounts leave policy scope. For example, Firewall Manager will disassociate a Firewall Manager managed web ACL from a protected customer resource when the customer resource leaves policy scope. By default, Firewall Manager doesn't remove protections or delete Firewall Manager managed resources. This option is not available for Shield Advanced or AWS WAF Classic policies.
|
|
1342
1342
|
:param resource_set_ids: The unique identifiers of the resource sets used by the policy.
|
|
1343
1343
|
:param resource_tags: An array of ``ResourceTag`` objects, used to explicitly include resources in the policy scope or explicitly exclude them. If this isn't set, then tags aren't used to modify policy scope. See also ``ExcludeResourceTags`` .
|
|
@@ -1663,7 +1663,7 @@ class CfnPolicyProps:
|
|
|
1663
1663
|
|
|
1664
1664
|
@builtins.property
|
|
1665
1665
|
def policy_description(self) -> typing.Optional[builtins.str]:
|
|
1666
|
-
'''
|
|
1666
|
+
'''Your description of the AWS Firewall Manager policy.
|
|
1667
1667
|
|
|
1668
1668
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fms-policy.html#cfn-fms-policy-policydescription
|
|
1669
1669
|
'''
|