aws-cdk-lib 2.210.0__py3-none-any.whl → 2.211.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (57) hide show
  1. aws_cdk/__init__.py +6 -11
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.210.0.jsii.tgz → aws-cdk-lib@2.211.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amazonmq/__init__.py +2 -1
  5. aws_cdk/aws_appconfig/__init__.py +9 -0
  6. aws_cdk/aws_arcregionswitch/__init__.py +4962 -0
  7. aws_cdk/aws_athena/__init__.py +23 -19
  8. aws_cdk/aws_autoscaling/__init__.py +6 -6
  9. aws_cdk/aws_batch/__init__.py +721 -51
  10. aws_cdk/aws_cassandra/__init__.py +28 -1
  11. aws_cdk/aws_cloudfront/__init__.py +20 -8
  12. aws_cdk/aws_cognito/__init__.py +9 -2
  13. aws_cdk/aws_datazone/__init__.py +118 -77
  14. aws_cdk/aws_dax/__init__.py +39 -0
  15. aws_cdk/aws_deadline/__init__.py +155 -7
  16. aws_cdk/aws_docdb/__init__.py +20 -11
  17. aws_cdk/aws_dynamodb/__init__.py +160 -20
  18. aws_cdk/aws_ec2/__init__.py +978 -256
  19. aws_cdk/aws_ecr/__init__.py +274 -0
  20. aws_cdk/aws_ecs/__init__.py +1642 -140
  21. aws_cdk/aws_eks/__init__.py +51 -3
  22. aws_cdk/aws_elasticloadbalancingv2/__init__.py +30 -16
  23. aws_cdk/aws_entityresolution/__init__.py +240 -45
  24. aws_cdk/aws_evs/__init__.py +20 -45
  25. aws_cdk/aws_iot/__init__.py +387 -0
  26. aws_cdk/aws_iotsitewise/__init__.py +1247 -139
  27. aws_cdk/aws_ivs/__init__.py +443 -33
  28. aws_cdk/aws_kinesisfirehose/__init__.py +2 -0
  29. aws_cdk/aws_lambda/__init__.py +3 -3
  30. aws_cdk/aws_lightsail/__init__.py +590 -0
  31. aws_cdk/aws_logs/__init__.py +97 -3
  32. aws_cdk/aws_medialive/__init__.py +270 -7
  33. aws_cdk/aws_mediapackagev2/__init__.py +204 -6
  34. aws_cdk/aws_neptune/__init__.py +41 -2
  35. aws_cdk/aws_networkfirewall/__init__.py +490 -134
  36. aws_cdk/aws_observabilityadmin/__init__.py +1468 -0
  37. aws_cdk/aws_opensearchserverless/__init__.py +2 -2
  38. aws_cdk/aws_opsworks/__init__.py +125 -125
  39. aws_cdk/aws_opsworkscm/__init__.py +1 -53
  40. aws_cdk/aws_pcs/__init__.py +36 -0
  41. aws_cdk/aws_qbusiness/__init__.py +3 -3
  42. aws_cdk/aws_quicksight/__init__.py +107 -0
  43. aws_cdk/aws_rds/__init__.py +274 -0
  44. aws_cdk/aws_s3/__init__.py +56 -1
  45. aws_cdk/aws_s3express/__init__.py +52 -1
  46. aws_cdk/aws_sagemaker/__init__.py +4033 -218
  47. aws_cdk/aws_ses/__init__.py +172 -9
  48. aws_cdk/aws_ssm/__init__.py +8 -4
  49. aws_cdk/aws_verifiedpermissions/__init__.py +23 -2
  50. aws_cdk/aws_wisdom/__init__.py +2 -2
  51. aws_cdk/aws_workspacesweb/__init__.py +949 -157
  52. {aws_cdk_lib-2.210.0.dist-info → aws_cdk_lib-2.211.0.dist-info}/METADATA +8 -8
  53. {aws_cdk_lib-2.210.0.dist-info → aws_cdk_lib-2.211.0.dist-info}/RECORD +57 -55
  54. {aws_cdk_lib-2.210.0.dist-info → aws_cdk_lib-2.211.0.dist-info}/LICENSE +0 -0
  55. {aws_cdk_lib-2.210.0.dist-info → aws_cdk_lib-2.211.0.dist-info}/NOTICE +0 -0
  56. {aws_cdk_lib-2.210.0.dist-info → aws_cdk_lib-2.211.0.dist-info}/WHEEL +0 -0
  57. {aws_cdk_lib-2.210.0.dist-info → aws_cdk_lib-2.211.0.dist-info}/top_level.txt +0 -0
@@ -76,7 +76,7 @@ class CfnFirewall(
76
76
  metaclass=jsii.JSIIMeta,
77
77
  jsii_type="aws-cdk-lib.aws_networkfirewall.CfnFirewall",
78
78
  ):
79
- '''Use the ``Firewall`` to provide stateful, managed, network firewall and intrusion detection and prevention filtering for your VPCs in Amazon VPC .
79
+ '''Use the firewall to provide stateful, managed, network firewall and intrusion detection and prevention filtering for your VPCs in Amazon VPC .
80
80
 
81
81
  The firewall defines the configuration settings for an AWS Network Firewall firewall. The settings include the firewall policy, the subnets in your VPC to use for the firewall endpoints, and any tags that are attached to the firewall AWS resource.
82
82
 
@@ -93,24 +93,29 @@ class CfnFirewall(
93
93
  cfn_firewall = networkfirewall.CfnFirewall(self, "MyCfnFirewall",
94
94
  firewall_name="firewallName",
95
95
  firewall_policy_arn="firewallPolicyArn",
96
- subnet_mappings=[networkfirewall.CfnFirewall.SubnetMappingProperty(
97
- subnet_id="subnetId",
98
-
99
- # the properties below are optional
100
- ip_address_type="ipAddressType"
101
- )],
102
- vpc_id="vpcId",
103
96
 
104
97
  # the properties below are optional
98
+ availability_zone_change_protection=False,
99
+ availability_zone_mappings=[networkfirewall.CfnFirewall.AvailabilityZoneMappingProperty(
100
+ availability_zone="availabilityZone"
101
+ )],
105
102
  delete_protection=False,
106
103
  description="description",
107
104
  enabled_analysis_types=["enabledAnalysisTypes"],
108
105
  firewall_policy_change_protection=False,
109
106
  subnet_change_protection=False,
107
+ subnet_mappings=[networkfirewall.CfnFirewall.SubnetMappingProperty(
108
+ subnet_id="subnetId",
109
+
110
+ # the properties below are optional
111
+ ip_address_type="ipAddressType"
112
+ )],
110
113
  tags=[CfnTag(
111
114
  key="key",
112
115
  value="value"
113
- )]
116
+ )],
117
+ transit_gateway_id="transitGatewayId",
118
+ vpc_id="vpcId"
114
119
  )
115
120
  '''
116
121
 
@@ -121,28 +126,34 @@ class CfnFirewall(
121
126
  *,
122
127
  firewall_name: builtins.str,
123
128
  firewall_policy_arn: builtins.str,
124
- subnet_mappings: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFirewall.SubnetMappingProperty", typing.Dict[builtins.str, typing.Any]]]]],
125
- vpc_id: builtins.str,
129
+ availability_zone_change_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
130
+ availability_zone_mappings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFirewall.AvailabilityZoneMappingProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
126
131
  delete_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
127
132
  description: typing.Optional[builtins.str] = None,
128
133
  enabled_analysis_types: typing.Optional[typing.Sequence[builtins.str]] = None,
129
134
  firewall_policy_change_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
130
135
  subnet_change_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
136
+ subnet_mappings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFirewall.SubnetMappingProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
131
137
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
138
+ transit_gateway_id: typing.Optional[builtins.str] = None,
139
+ vpc_id: typing.Optional[builtins.str] = None,
132
140
  ) -> None:
133
141
  '''
134
142
  :param scope: Scope in which this resource is defined.
135
143
  :param id: Construct identifier for this resource (unique in its scope).
136
144
  :param firewall_name: The descriptive name of the firewall. You can't change the name of a firewall after you create it.
137
145
  :param firewall_policy_arn: The Amazon Resource Name (ARN) of the firewall policy. The relationship of firewall to firewall policy is many to one. Each firewall requires one firewall policy association, and you can use the same firewall policy for multiple firewalls.
138
- :param subnet_mappings: The primary public subnets that Network Firewall is using for the firewall. Network Firewall creates a firewall endpoint in each subnet. Create a subnet mapping for each Availability Zone where you want to use the firewall. These subnets are all defined for a single, primary VPC, and each must belong to a different Availability Zone. Each of these subnets establishes the availability of the firewall in its Availability Zone. In addition to these subnets, you can define other endpoints for the firewall in ``VpcEndpointAssociation`` resources. You can define these additional endpoints for any VPC, and for any of the Availability Zones where the firewall resource already has a subnet mapping. VPC endpoint associations give you the ability to protect multiple VPCs using a single firewall, and to define multiple firewall endpoints for a VPC in a single Availability Zone.
139
- :param vpc_id: The unique identifier of the VPC where the firewall is in use. You can't change the VPC of a firewall after you create the firewall.
146
+ :param availability_zone_change_protection: A setting indicating whether the firewall is protected against changes to its Availability Zone configuration. When set to ``TRUE`` , you must first disable this protection before adding or removing Availability Zones.
147
+ :param availability_zone_mappings: The Availability Zones where the firewall endpoints are created for a transit gateway-attached firewall. Each mapping specifies an Availability Zone where the firewall processes traffic.
140
148
  :param delete_protection: A flag indicating whether it is possible to delete the firewall. A setting of ``TRUE`` indicates that the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. When you create a firewall, the operation initializes this flag to ``TRUE`` .
141
149
  :param description: A description of the firewall.
142
150
  :param enabled_analysis_types: An optional setting indicating the specific traffic analysis types to enable on the firewall.
143
151
  :param firewall_policy_change_protection: A setting indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. When you create a firewall, the operation initializes this setting to ``TRUE`` .
144
152
  :param subnet_change_protection: A setting indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. When you create a firewall, the operation initializes this setting to ``TRUE`` .
153
+ :param subnet_mappings: The primary public subnets that Network Firewall is using for the firewall. Network Firewall creates a firewall endpoint in each subnet. Create a subnet mapping for each Availability Zone where you want to use the firewall. These subnets are all defined for a single, primary VPC, and each must belong to a different Availability Zone. Each of these subnets establishes the availability of the firewall in its Availability Zone. In addition to these subnets, you can define other endpoints for the firewall in ``VpcEndpointAssociation`` resources. You can define these additional endpoints for any VPC, and for any of the Availability Zones where the firewall resource already has a subnet mapping. VPC endpoint associations give you the ability to protect multiple VPCs using a single firewall, and to define multiple firewall endpoints for a VPC in a single Availability Zone.
145
154
  :param tags: An array of key-value pairs to apply to this resource. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
155
+ :param transit_gateway_id: The unique identifier of the transit gateway associated with this firewall. This field is only present for transit gateway-attached firewalls.
156
+ :param vpc_id: The unique identifier of the VPC where the firewall is in use. You can't change the VPC of a firewall after you create the firewall.
146
157
  '''
147
158
  if __debug__:
148
159
  type_hints = typing.get_type_hints(_typecheckingstub__8735e4ce7e79159823190ad059af802b7721b71930c6b4b8805c4676b38d4d56)
@@ -151,14 +162,17 @@ class CfnFirewall(
151
162
  props = CfnFirewallProps(
152
163
  firewall_name=firewall_name,
153
164
  firewall_policy_arn=firewall_policy_arn,
154
- subnet_mappings=subnet_mappings,
155
- vpc_id=vpc_id,
165
+ availability_zone_change_protection=availability_zone_change_protection,
166
+ availability_zone_mappings=availability_zone_mappings,
156
167
  delete_protection=delete_protection,
157
168
  description=description,
158
169
  enabled_analysis_types=enabled_analysis_types,
159
170
  firewall_policy_change_protection=firewall_policy_change_protection,
160
171
  subnet_change_protection=subnet_change_protection,
172
+ subnet_mappings=subnet_mappings,
161
173
  tags=tags,
174
+ transit_gateway_id=transit_gateway_id,
175
+ vpc_id=vpc_id,
162
176
  )
163
177
 
164
178
  jsii.create(self.__class__, self, [scope, id, props])
@@ -207,7 +221,7 @@ class CfnFirewall(
207
221
  @builtins.property
208
222
  @jsii.member(jsii_name="attrFirewallArn")
209
223
  def attr_firewall_arn(self) -> builtins.str:
210
- '''The Amazon Resource Name (ARN) of the ``Firewall`` .
224
+ '''The Amazon Resource Name (ARN) of the firewall.
211
225
 
212
226
  :cloudformationAttribute: FirewallArn
213
227
  '''
@@ -216,7 +230,7 @@ class CfnFirewall(
216
230
  @builtins.property
217
231
  @jsii.member(jsii_name="attrFirewallId")
218
232
  def attr_firewall_id(self) -> builtins.str:
219
- '''The name of the ``Firewall`` resource.
233
+ '''The name of the firewallresource.
220
234
 
221
235
  :cloudformationAttribute: FirewallId
222
236
  '''
@@ -260,35 +274,40 @@ class CfnFirewall(
260
274
  jsii.set(self, "firewallPolicyArn", value) # pyright: ignore[reportArgumentType]
261
275
 
262
276
  @builtins.property
263
- @jsii.member(jsii_name="subnetMappings")
264
- def subnet_mappings(
277
+ @jsii.member(jsii_name="availabilityZoneChangeProtection")
278
+ def availability_zone_change_protection(
265
279
  self,
266
- ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnFirewall.SubnetMappingProperty"]]]:
267
- '''The primary public subnets that Network Firewall is using for the firewall.'''
268
- return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnFirewall.SubnetMappingProperty"]]], jsii.get(self, "subnetMappings"))
280
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
281
+ '''A setting indicating whether the firewall is protected against changes to its Availability Zone configuration.'''
282
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "availabilityZoneChangeProtection"))
269
283
 
270
- @subnet_mappings.setter
271
- def subnet_mappings(
284
+ @availability_zone_change_protection.setter
285
+ def availability_zone_change_protection(
272
286
  self,
273
- value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnFirewall.SubnetMappingProperty"]]],
287
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
274
288
  ) -> None:
275
289
  if __debug__:
276
- type_hints = typing.get_type_hints(_typecheckingstub__0f2f1e41c3294b6f9ed43f3936b8feb28ed4bd73021f059aae4743db717241ab)
290
+ type_hints = typing.get_type_hints(_typecheckingstub__9264301e2259874347a035c96f8c2b41c3eace108b10ab012df466442d7477f1)
277
291
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
278
- jsii.set(self, "subnetMappings", value) # pyright: ignore[reportArgumentType]
292
+ jsii.set(self, "availabilityZoneChangeProtection", value) # pyright: ignore[reportArgumentType]
279
293
 
280
294
  @builtins.property
281
- @jsii.member(jsii_name="vpcId")
282
- def vpc_id(self) -> builtins.str:
283
- '''The unique identifier of the VPC where the firewall is in use.'''
284
- return typing.cast(builtins.str, jsii.get(self, "vpcId"))
295
+ @jsii.member(jsii_name="availabilityZoneMappings")
296
+ def availability_zone_mappings(
297
+ self,
298
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnFirewall.AvailabilityZoneMappingProperty"]]]]:
299
+ '''The Availability Zones where the firewall endpoints are created for a transit gateway-attached firewall.'''
300
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnFirewall.AvailabilityZoneMappingProperty"]]]], jsii.get(self, "availabilityZoneMappings"))
285
301
 
286
- @vpc_id.setter
287
- def vpc_id(self, value: builtins.str) -> None:
302
+ @availability_zone_mappings.setter
303
+ def availability_zone_mappings(
304
+ self,
305
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnFirewall.AvailabilityZoneMappingProperty"]]]],
306
+ ) -> None:
288
307
  if __debug__:
289
- type_hints = typing.get_type_hints(_typecheckingstub__ba092b3d0c9ca8819ad31fd4320cebdee3150a45603af80de70f2c0bbb9e04b5)
308
+ type_hints = typing.get_type_hints(_typecheckingstub__cf571f7b78cee2a31a1b36a9ada83e153f52c7a14fea3f65c9362d1d4634dd77)
290
309
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
291
- jsii.set(self, "vpcId", value) # pyright: ignore[reportArgumentType]
310
+ jsii.set(self, "availabilityZoneMappings", value) # pyright: ignore[reportArgumentType]
292
311
 
293
312
  @builtins.property
294
313
  @jsii.member(jsii_name="deleteProtection")
@@ -373,6 +392,24 @@ class CfnFirewall(
373
392
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
374
393
  jsii.set(self, "subnetChangeProtection", value) # pyright: ignore[reportArgumentType]
375
394
 
395
+ @builtins.property
396
+ @jsii.member(jsii_name="subnetMappings")
397
+ def subnet_mappings(
398
+ self,
399
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnFirewall.SubnetMappingProperty"]]]]:
400
+ '''The primary public subnets that Network Firewall is using for the firewall.'''
401
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnFirewall.SubnetMappingProperty"]]]], jsii.get(self, "subnetMappings"))
402
+
403
+ @subnet_mappings.setter
404
+ def subnet_mappings(
405
+ self,
406
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnFirewall.SubnetMappingProperty"]]]],
407
+ ) -> None:
408
+ if __debug__:
409
+ type_hints = typing.get_type_hints(_typecheckingstub__0f2f1e41c3294b6f9ed43f3936b8feb28ed4bd73021f059aae4743db717241ab)
410
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
411
+ jsii.set(self, "subnetMappings", value) # pyright: ignore[reportArgumentType]
412
+
376
413
  @builtins.property
377
414
  @jsii.member(jsii_name="tagsRaw")
378
415
  def tags_raw(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
@@ -386,6 +423,90 @@ class CfnFirewall(
386
423
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
387
424
  jsii.set(self, "tagsRaw", value) # pyright: ignore[reportArgumentType]
388
425
 
426
+ @builtins.property
427
+ @jsii.member(jsii_name="transitGatewayId")
428
+ def transit_gateway_id(self) -> typing.Optional[builtins.str]:
429
+ '''The unique identifier of the transit gateway associated with this firewall.'''
430
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "transitGatewayId"))
431
+
432
+ @transit_gateway_id.setter
433
+ def transit_gateway_id(self, value: typing.Optional[builtins.str]) -> None:
434
+ if __debug__:
435
+ type_hints = typing.get_type_hints(_typecheckingstub__ebf25e7b4ccdda1a25794e9d426e24b28f37c786df4576a4b499042b55c26bc6)
436
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
437
+ jsii.set(self, "transitGatewayId", value) # pyright: ignore[reportArgumentType]
438
+
439
+ @builtins.property
440
+ @jsii.member(jsii_name="vpcId")
441
+ def vpc_id(self) -> typing.Optional[builtins.str]:
442
+ '''The unique identifier of the VPC where the firewall is in use.'''
443
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "vpcId"))
444
+
445
+ @vpc_id.setter
446
+ def vpc_id(self, value: typing.Optional[builtins.str]) -> None:
447
+ if __debug__:
448
+ type_hints = typing.get_type_hints(_typecheckingstub__ba092b3d0c9ca8819ad31fd4320cebdee3150a45603af80de70f2c0bbb9e04b5)
449
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
450
+ jsii.set(self, "vpcId", value) # pyright: ignore[reportArgumentType]
451
+
452
+ @jsii.data_type(
453
+ jsii_type="aws-cdk-lib.aws_networkfirewall.CfnFirewall.AvailabilityZoneMappingProperty",
454
+ jsii_struct_bases=[],
455
+ name_mapping={"availability_zone": "availabilityZone"},
456
+ )
457
+ class AvailabilityZoneMappingProperty:
458
+ def __init__(self, *, availability_zone: builtins.str) -> None:
459
+ '''Defines the mapping between an Availability Zone and a firewall endpoint for a transit gateway-attached firewall.
460
+
461
+ Each mapping represents where the firewall can process traffic. You use these mappings when calling ``CreateFirewall`` , ``AssociateAvailabilityZones`` , and ``DisassociateAvailabilityZones`` .
462
+
463
+ To retrieve the current Availability Zone mappings for a firewall, use ``DescribeFirewall`` .
464
+
465
+ :param availability_zone: The ID of the Availability Zone where the firewall endpoint is located. For example, ``us-east-2a`` . The Availability Zone must be in the same Region as the transit gateway.
466
+
467
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewall-availabilityzonemapping.html
468
+ :exampleMetadata: fixture=_generated
469
+
470
+ Example::
471
+
472
+ # The code below shows an example of how to instantiate this type.
473
+ # The values are placeholders you should change.
474
+ from aws_cdk import aws_networkfirewall as networkfirewall
475
+
476
+ availability_zone_mapping_property = networkfirewall.CfnFirewall.AvailabilityZoneMappingProperty(
477
+ availability_zone="availabilityZone"
478
+ )
479
+ '''
480
+ if __debug__:
481
+ type_hints = typing.get_type_hints(_typecheckingstub__e12d4b074bc6fa59b990e1d43ef30390330da9da999dbf3bac9bf5e98eb30caf)
482
+ check_type(argname="argument availability_zone", value=availability_zone, expected_type=type_hints["availability_zone"])
483
+ self._values: typing.Dict[builtins.str, typing.Any] = {
484
+ "availability_zone": availability_zone,
485
+ }
486
+
487
+ @builtins.property
488
+ def availability_zone(self) -> builtins.str:
489
+ '''The ID of the Availability Zone where the firewall endpoint is located.
490
+
491
+ For example, ``us-east-2a`` . The Availability Zone must be in the same Region as the transit gateway.
492
+
493
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewall-availabilityzonemapping.html#cfn-networkfirewall-firewall-availabilityzonemapping-availabilityzone
494
+ '''
495
+ result = self._values.get("availability_zone")
496
+ assert result is not None, "Required property 'availability_zone' is missing"
497
+ return typing.cast(builtins.str, result)
498
+
499
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
500
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
501
+
502
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
503
+ return not (rhs == self)
504
+
505
+ def __repr__(self) -> str:
506
+ return "AvailabilityZoneMappingProperty(%s)" % ", ".join(
507
+ k + "=" + repr(v) for k, v in self._values.items()
508
+ )
509
+
389
510
  @jsii.data_type(
390
511
  jsii_type="aws-cdk-lib.aws_networkfirewall.CfnFirewall.SubnetMappingProperty",
391
512
  jsii_struct_bases=[],
@@ -470,7 +591,7 @@ class CfnFirewallPolicy(
470
591
  metaclass=jsii.JSIIMeta,
471
592
  jsii_type="aws-cdk-lib.aws_networkfirewall.CfnFirewallPolicy",
472
593
  ):
473
- '''Use the ``FirewallPolicy`` to define the stateless and stateful network traffic filtering behavior for your ``Firewall`` .
594
+ '''Use the firewall policy to define the stateless and stateful network traffic filtering behavior for your firewall.
474
595
 
475
596
  You can use one firewall policy for multiple firewalls.
476
597
 
@@ -509,6 +630,7 @@ class CfnFirewallPolicy(
509
630
  resource_arn="resourceArn",
510
631
 
511
632
  # the properties below are optional
633
+ deep_threat_inspection=False,
512
634
  override=networkfirewall.CfnFirewallPolicy.StatefulRuleGroupOverrideProperty(
513
635
  action="action"
514
636
  ),
@@ -605,7 +727,7 @@ class CfnFirewallPolicy(
605
727
  @builtins.property
606
728
  @jsii.member(jsii_name="attrFirewallPolicyArn")
607
729
  def attr_firewall_policy_arn(self) -> builtins.str:
608
- '''The Amazon Resource Name (ARN) of the ``FirewallPolicy`` .
730
+ '''The Amazon Resource Name (ARN) of the firewall policy.
609
731
 
610
732
  :cloudformationAttribute: FirewallPolicyArn
611
733
  '''
@@ -614,7 +736,7 @@ class CfnFirewallPolicy(
614
736
  @builtins.property
615
737
  @jsii.member(jsii_name="attrFirewallPolicyId")
616
738
  def attr_firewall_policy_id(self) -> builtins.str:
617
- '''The unique ID of the ``FirewallPolicy`` resource.
739
+ '''The unique ID of the firewall policy resource.
618
740
 
619
741
  :cloudformationAttribute: FirewallPolicyId
620
742
  '''
@@ -776,8 +898,8 @@ class CfnFirewallPolicy(
776
898
 
777
899
  You can use custom actions in the following places:
778
900
 
779
- - In an ``RuleGroup.StatelessRulesAndCustomActions`` . The custom actions are available for use by name inside the ``StatelessRulesAndCustomActions`` where you define them. You can use them for your stateless rule actions to specify what to do with a packet that matches the rule's match attributes.
780
- - In an ``FirewallPolicy`` specification, in ``StatelessCustomActions`` . The custom actions are available for use inside the policy where you define them. You can use them for the policy's default stateless actions settings to specify what to do with packets that don't match any of the policy's stateless rules.
901
+ - In an ``StatelessRulesAndCustomActions`` . The custom actions are available for use by name inside the ``StatelessRulesAndCustomActions`` where you define them. You can use them for your stateless rule actions to specify what to do with a packet that matches the rule's match attributes.
902
+ - In an firewall policy specification, in ``StatelessCustomActions`` . The custom actions are available for use inside the policy where you define them. You can use them for the policy's default stateless actions settings to specify what to do with packets that don't match any of the policy's stateless rules.
781
903
 
782
904
  :param action_definition: The custom action associated with the action name.
783
905
  :param action_name: The descriptive name of the custom action. You can't change the name of a custom action after you create it.
@@ -978,6 +1100,7 @@ class CfnFirewallPolicy(
978
1100
  resource_arn="resourceArn",
979
1101
 
980
1102
  # the properties below are optional
1103
+ deep_threat_inspection=False,
981
1104
  override=networkfirewall.CfnFirewallPolicy.StatefulRuleGroupOverrideProperty(
982
1105
  action="action"
983
1106
  ),
@@ -1241,7 +1364,7 @@ class CfnFirewallPolicy(
1241
1364
  ) -> None:
1242
1365
  '''A list of IP addresses and address ranges, in CIDR notation.
1243
1366
 
1244
- This is part of a ``RuleVariables`` .
1367
+ This is part of a rule variable.
1245
1368
 
1246
1369
  :param definition: The list of IP addresses and address ranges, in CIDR notation.
1247
1370
 
@@ -1568,6 +1691,7 @@ class CfnFirewallPolicy(
1568
1691
  jsii_struct_bases=[],
1569
1692
  name_mapping={
1570
1693
  "resource_arn": "resourceArn",
1694
+ "deep_threat_inspection": "deepThreatInspection",
1571
1695
  "override": "override",
1572
1696
  "priority": "priority",
1573
1697
  },
@@ -1577,14 +1701,16 @@ class CfnFirewallPolicy(
1577
1701
  self,
1578
1702
  *,
1579
1703
  resource_arn: builtins.str,
1704
+ deep_threat_inspection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1580
1705
  override: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFirewallPolicy.StatefulRuleGroupOverrideProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
1581
1706
  priority: typing.Optional[jsii.Number] = None,
1582
1707
  ) -> None:
1583
1708
  '''Identifier for a single stateful rule group, used in a firewall policy to refer to a rule group.
1584
1709
 
1585
1710
  :param resource_arn: The Amazon Resource Name (ARN) of the stateful rule group.
1711
+ :param deep_threat_inspection: AWS Network Firewall plans to augment the active threat defense managed rule group with an additional deep threat inspection capability. When this capability is released, AWS will analyze service logs of network traffic processed by these rule groups to identify threat indicators across customers. AWS will use these threat indicators to improve the active threat defense managed rule groups and protect the security of AWS customers and services. .. epigraph:: Customers can opt-out of deep threat inspection at any time through the AWS Network Firewall console or API. When customers opt out, AWS Network Firewall will not use the network traffic processed by those customers' active threat defense rule groups for rule group improvement.
1586
1712
  :param override: The action that allows the policy owner to override the behavior of the rule group within a policy.
1587
- :param priority: An integer setting that indicates the order in which to run the stateful rule groups in a single ``FirewallPolicy`` . This setting only applies to firewall policies that specify the ``STRICT_ORDER`` rule order in the stateful engine options settings. Network Firewall evalutes each stateful rule group against a packet starting with the group that has the lowest priority setting. You must ensure that the priority settings are unique within each policy. You can change the priority settings of your rule groups at any time. To make it easier to insert rule groups later, number them so there's a wide range in between, for example use 100, 200, and so on.
1713
+ :param priority: An integer setting that indicates the order in which to run the stateful rule groups in a single firewall policy. This setting only applies to firewall policies that specify the ``STRICT_ORDER`` rule order in the stateful engine options settings. Network Firewall evalutes each stateful rule group against a packet starting with the group that has the lowest priority setting. You must ensure that the priority settings are unique within each policy. You can change the priority settings of your rule groups at any time. To make it easier to insert rule groups later, number them so there's a wide range in between, for example use 100, 200, and so on.
1588
1714
 
1589
1715
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulrulegroupreference.html
1590
1716
  :exampleMetadata: fixture=_generated
@@ -1599,6 +1725,7 @@ class CfnFirewallPolicy(
1599
1725
  resource_arn="resourceArn",
1600
1726
 
1601
1727
  # the properties below are optional
1728
+ deep_threat_inspection=False,
1602
1729
  override=networkfirewall.CfnFirewallPolicy.StatefulRuleGroupOverrideProperty(
1603
1730
  action="action"
1604
1731
  ),
@@ -1608,11 +1735,14 @@ class CfnFirewallPolicy(
1608
1735
  if __debug__:
1609
1736
  type_hints = typing.get_type_hints(_typecheckingstub__b35f780a3045f4df1ecbf5bb69deb711659429dcfd9f87d388080942e7b17ef8)
1610
1737
  check_type(argname="argument resource_arn", value=resource_arn, expected_type=type_hints["resource_arn"])
1738
+ check_type(argname="argument deep_threat_inspection", value=deep_threat_inspection, expected_type=type_hints["deep_threat_inspection"])
1611
1739
  check_type(argname="argument override", value=override, expected_type=type_hints["override"])
1612
1740
  check_type(argname="argument priority", value=priority, expected_type=type_hints["priority"])
1613
1741
  self._values: typing.Dict[builtins.str, typing.Any] = {
1614
1742
  "resource_arn": resource_arn,
1615
1743
  }
1744
+ if deep_threat_inspection is not None:
1745
+ self._values["deep_threat_inspection"] = deep_threat_inspection
1616
1746
  if override is not None:
1617
1747
  self._values["override"] = override
1618
1748
  if priority is not None:
@@ -1628,6 +1758,22 @@ class CfnFirewallPolicy(
1628
1758
  assert result is not None, "Required property 'resource_arn' is missing"
1629
1759
  return typing.cast(builtins.str, result)
1630
1760
 
1761
+ @builtins.property
1762
+ def deep_threat_inspection(
1763
+ self,
1764
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
1765
+ '''AWS Network Firewall plans to augment the active threat defense managed rule group with an additional deep threat inspection capability.
1766
+
1767
+ When this capability is released, AWS will analyze service logs of network traffic processed by these rule groups to identify threat indicators across customers. AWS will use these threat indicators to improve the active threat defense managed rule groups and protect the security of AWS customers and services.
1768
+ .. epigraph::
1769
+
1770
+ Customers can opt-out of deep threat inspection at any time through the AWS Network Firewall console or API. When customers opt out, AWS Network Firewall will not use the network traffic processed by those customers' active threat defense rule groups for rule group improvement.
1771
+
1772
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statefulrulegroupreference.html#cfn-networkfirewall-firewallpolicy-statefulrulegroupreference-deepthreatinspection
1773
+ '''
1774
+ result = self._values.get("deep_threat_inspection")
1775
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
1776
+
1631
1777
  @builtins.property
1632
1778
  def override(
1633
1779
  self,
@@ -1641,7 +1787,7 @@ class CfnFirewallPolicy(
1641
1787
 
1642
1788
  @builtins.property
1643
1789
  def priority(self) -> typing.Optional[jsii.Number]:
1644
- '''An integer setting that indicates the order in which to run the stateful rule groups in a single ``FirewallPolicy`` .
1790
+ '''An integer setting that indicates the order in which to run the stateful rule groups in a single firewall policy.
1645
1791
 
1646
1792
  This setting only applies to firewall policies that specify the ``STRICT_ORDER`` rule order in the stateful engine options settings.
1647
1793
 
@@ -1679,7 +1825,7 @@ class CfnFirewallPolicy(
1679
1825
  ) -> None:
1680
1826
  '''Identifier for a single stateless rule group, used in a firewall policy to refer to the rule group.
1681
1827
 
1682
- :param priority: An integer setting that indicates the order in which to run the stateless rule groups in a single ``FirewallPolicy`` . Network Firewall applies each stateless rule group to a packet starting with the group that has the lowest priority setting. You must ensure that the priority settings are unique within each policy.
1828
+ :param priority: An integer setting that indicates the order in which to run the stateless rule groups in a single firewall policy. Network Firewall applies each stateless rule group to a packet starting with the group that has the lowest priority setting. You must ensure that the priority settings are unique within each policy.
1683
1829
  :param resource_arn: The Amazon Resource Name (ARN) of the stateless rule group.
1684
1830
 
1685
1831
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-firewallpolicy-statelessrulegroupreference.html
@@ -1707,7 +1853,7 @@ class CfnFirewallPolicy(
1707
1853
 
1708
1854
  @builtins.property
1709
1855
  def priority(self) -> jsii.Number:
1710
- '''An integer setting that indicates the order in which to run the stateless rule groups in a single ``FirewallPolicy`` .
1856
+ '''An integer setting that indicates the order in which to run the stateless rule groups in a single firewall policy.
1711
1857
 
1712
1858
  Network Firewall applies each stateless rule group to a packet starting with the group that has the lowest priority setting. You must ensure that the priority settings are unique within each policy.
1713
1859
 
@@ -1799,6 +1945,7 @@ class CfnFirewallPolicyProps:
1799
1945
  resource_arn="resourceArn",
1800
1946
 
1801
1947
  # the properties below are optional
1948
+ deep_threat_inspection=False,
1802
1949
  override=networkfirewall.CfnFirewallPolicy.StatefulRuleGroupOverrideProperty(
1803
1950
  action="action"
1804
1951
  ),
@@ -1907,14 +2054,17 @@ class CfnFirewallPolicyProps:
1907
2054
  name_mapping={
1908
2055
  "firewall_name": "firewallName",
1909
2056
  "firewall_policy_arn": "firewallPolicyArn",
1910
- "subnet_mappings": "subnetMappings",
1911
- "vpc_id": "vpcId",
2057
+ "availability_zone_change_protection": "availabilityZoneChangeProtection",
2058
+ "availability_zone_mappings": "availabilityZoneMappings",
1912
2059
  "delete_protection": "deleteProtection",
1913
2060
  "description": "description",
1914
2061
  "enabled_analysis_types": "enabledAnalysisTypes",
1915
2062
  "firewall_policy_change_protection": "firewallPolicyChangeProtection",
1916
2063
  "subnet_change_protection": "subnetChangeProtection",
2064
+ "subnet_mappings": "subnetMappings",
1917
2065
  "tags": "tags",
2066
+ "transit_gateway_id": "transitGatewayId",
2067
+ "vpc_id": "vpcId",
1918
2068
  },
1919
2069
  )
1920
2070
  class CfnFirewallProps:
@@ -1923,27 +2073,33 @@ class CfnFirewallProps:
1923
2073
  *,
1924
2074
  firewall_name: builtins.str,
1925
2075
  firewall_policy_arn: builtins.str,
1926
- subnet_mappings: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFirewall.SubnetMappingProperty, typing.Dict[builtins.str, typing.Any]]]]],
1927
- vpc_id: builtins.str,
2076
+ availability_zone_change_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2077
+ availability_zone_mappings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFirewall.AvailabilityZoneMappingProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
1928
2078
  delete_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1929
2079
  description: typing.Optional[builtins.str] = None,
1930
2080
  enabled_analysis_types: typing.Optional[typing.Sequence[builtins.str]] = None,
1931
2081
  firewall_policy_change_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
1932
2082
  subnet_change_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
2083
+ subnet_mappings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFirewall.SubnetMappingProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
1933
2084
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2085
+ transit_gateway_id: typing.Optional[builtins.str] = None,
2086
+ vpc_id: typing.Optional[builtins.str] = None,
1934
2087
  ) -> None:
1935
2088
  '''Properties for defining a ``CfnFirewall``.
1936
2089
 
1937
2090
  :param firewall_name: The descriptive name of the firewall. You can't change the name of a firewall after you create it.
1938
2091
  :param firewall_policy_arn: The Amazon Resource Name (ARN) of the firewall policy. The relationship of firewall to firewall policy is many to one. Each firewall requires one firewall policy association, and you can use the same firewall policy for multiple firewalls.
1939
- :param subnet_mappings: The primary public subnets that Network Firewall is using for the firewall. Network Firewall creates a firewall endpoint in each subnet. Create a subnet mapping for each Availability Zone where you want to use the firewall. These subnets are all defined for a single, primary VPC, and each must belong to a different Availability Zone. Each of these subnets establishes the availability of the firewall in its Availability Zone. In addition to these subnets, you can define other endpoints for the firewall in ``VpcEndpointAssociation`` resources. You can define these additional endpoints for any VPC, and for any of the Availability Zones where the firewall resource already has a subnet mapping. VPC endpoint associations give you the ability to protect multiple VPCs using a single firewall, and to define multiple firewall endpoints for a VPC in a single Availability Zone.
1940
- :param vpc_id: The unique identifier of the VPC where the firewall is in use. You can't change the VPC of a firewall after you create the firewall.
2092
+ :param availability_zone_change_protection: A setting indicating whether the firewall is protected against changes to its Availability Zone configuration. When set to ``TRUE`` , you must first disable this protection before adding or removing Availability Zones.
2093
+ :param availability_zone_mappings: The Availability Zones where the firewall endpoints are created for a transit gateway-attached firewall. Each mapping specifies an Availability Zone where the firewall processes traffic.
1941
2094
  :param delete_protection: A flag indicating whether it is possible to delete the firewall. A setting of ``TRUE`` indicates that the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. When you create a firewall, the operation initializes this flag to ``TRUE`` .
1942
2095
  :param description: A description of the firewall.
1943
2096
  :param enabled_analysis_types: An optional setting indicating the specific traffic analysis types to enable on the firewall.
1944
2097
  :param firewall_policy_change_protection: A setting indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. When you create a firewall, the operation initializes this setting to ``TRUE`` .
1945
2098
  :param subnet_change_protection: A setting indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. When you create a firewall, the operation initializes this setting to ``TRUE`` .
2099
+ :param subnet_mappings: The primary public subnets that Network Firewall is using for the firewall. Network Firewall creates a firewall endpoint in each subnet. Create a subnet mapping for each Availability Zone where you want to use the firewall. These subnets are all defined for a single, primary VPC, and each must belong to a different Availability Zone. Each of these subnets establishes the availability of the firewall in its Availability Zone. In addition to these subnets, you can define other endpoints for the firewall in ``VpcEndpointAssociation`` resources. You can define these additional endpoints for any VPC, and for any of the Availability Zones where the firewall resource already has a subnet mapping. VPC endpoint associations give you the ability to protect multiple VPCs using a single firewall, and to define multiple firewall endpoints for a VPC in a single Availability Zone.
1946
2100
  :param tags: An array of key-value pairs to apply to this resource. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
2101
+ :param transit_gateway_id: The unique identifier of the transit gateway associated with this firewall. This field is only present for transit gateway-attached firewalls.
2102
+ :param vpc_id: The unique identifier of the VPC where the firewall is in use. You can't change the VPC of a firewall after you create the firewall.
1947
2103
 
1948
2104
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html
1949
2105
  :exampleMetadata: fixture=_generated
@@ -1957,44 +2113,54 @@ class CfnFirewallProps:
1957
2113
  cfn_firewall_props = networkfirewall.CfnFirewallProps(
1958
2114
  firewall_name="firewallName",
1959
2115
  firewall_policy_arn="firewallPolicyArn",
1960
- subnet_mappings=[networkfirewall.CfnFirewall.SubnetMappingProperty(
1961
- subnet_id="subnetId",
1962
-
1963
- # the properties below are optional
1964
- ip_address_type="ipAddressType"
1965
- )],
1966
- vpc_id="vpcId",
1967
2116
 
1968
2117
  # the properties below are optional
2118
+ availability_zone_change_protection=False,
2119
+ availability_zone_mappings=[networkfirewall.CfnFirewall.AvailabilityZoneMappingProperty(
2120
+ availability_zone="availabilityZone"
2121
+ )],
1969
2122
  delete_protection=False,
1970
2123
  description="description",
1971
2124
  enabled_analysis_types=["enabledAnalysisTypes"],
1972
2125
  firewall_policy_change_protection=False,
1973
2126
  subnet_change_protection=False,
2127
+ subnet_mappings=[networkfirewall.CfnFirewall.SubnetMappingProperty(
2128
+ subnet_id="subnetId",
2129
+
2130
+ # the properties below are optional
2131
+ ip_address_type="ipAddressType"
2132
+ )],
1974
2133
  tags=[CfnTag(
1975
2134
  key="key",
1976
2135
  value="value"
1977
- )]
2136
+ )],
2137
+ transit_gateway_id="transitGatewayId",
2138
+ vpc_id="vpcId"
1978
2139
  )
1979
2140
  '''
1980
2141
  if __debug__:
1981
2142
  type_hints = typing.get_type_hints(_typecheckingstub__8d4108d5c35b1608da0d36c8bb60f52501d3b0634ca4324342a71c57bc238e99)
1982
2143
  check_type(argname="argument firewall_name", value=firewall_name, expected_type=type_hints["firewall_name"])
1983
2144
  check_type(argname="argument firewall_policy_arn", value=firewall_policy_arn, expected_type=type_hints["firewall_policy_arn"])
1984
- check_type(argname="argument subnet_mappings", value=subnet_mappings, expected_type=type_hints["subnet_mappings"])
1985
- check_type(argname="argument vpc_id", value=vpc_id, expected_type=type_hints["vpc_id"])
2145
+ check_type(argname="argument availability_zone_change_protection", value=availability_zone_change_protection, expected_type=type_hints["availability_zone_change_protection"])
2146
+ check_type(argname="argument availability_zone_mappings", value=availability_zone_mappings, expected_type=type_hints["availability_zone_mappings"])
1986
2147
  check_type(argname="argument delete_protection", value=delete_protection, expected_type=type_hints["delete_protection"])
1987
2148
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
1988
2149
  check_type(argname="argument enabled_analysis_types", value=enabled_analysis_types, expected_type=type_hints["enabled_analysis_types"])
1989
2150
  check_type(argname="argument firewall_policy_change_protection", value=firewall_policy_change_protection, expected_type=type_hints["firewall_policy_change_protection"])
1990
2151
  check_type(argname="argument subnet_change_protection", value=subnet_change_protection, expected_type=type_hints["subnet_change_protection"])
2152
+ check_type(argname="argument subnet_mappings", value=subnet_mappings, expected_type=type_hints["subnet_mappings"])
1991
2153
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
2154
+ check_type(argname="argument transit_gateway_id", value=transit_gateway_id, expected_type=type_hints["transit_gateway_id"])
2155
+ check_type(argname="argument vpc_id", value=vpc_id, expected_type=type_hints["vpc_id"])
1992
2156
  self._values: typing.Dict[builtins.str, typing.Any] = {
1993
2157
  "firewall_name": firewall_name,
1994
2158
  "firewall_policy_arn": firewall_policy_arn,
1995
- "subnet_mappings": subnet_mappings,
1996
- "vpc_id": vpc_id,
1997
2159
  }
2160
+ if availability_zone_change_protection is not None:
2161
+ self._values["availability_zone_change_protection"] = availability_zone_change_protection
2162
+ if availability_zone_mappings is not None:
2163
+ self._values["availability_zone_mappings"] = availability_zone_mappings
1998
2164
  if delete_protection is not None:
1999
2165
  self._values["delete_protection"] = delete_protection
2000
2166
  if description is not None:
@@ -2005,8 +2171,14 @@ class CfnFirewallProps:
2005
2171
  self._values["firewall_policy_change_protection"] = firewall_policy_change_protection
2006
2172
  if subnet_change_protection is not None:
2007
2173
  self._values["subnet_change_protection"] = subnet_change_protection
2174
+ if subnet_mappings is not None:
2175
+ self._values["subnet_mappings"] = subnet_mappings
2008
2176
  if tags is not None:
2009
2177
  self._values["tags"] = tags
2178
+ if transit_gateway_id is not None:
2179
+ self._values["transit_gateway_id"] = transit_gateway_id
2180
+ if vpc_id is not None:
2181
+ self._values["vpc_id"] = vpc_id
2010
2182
 
2011
2183
  @builtins.property
2012
2184
  def firewall_name(self) -> builtins.str:
@@ -2033,34 +2205,30 @@ class CfnFirewallProps:
2033
2205
  return typing.cast(builtins.str, result)
2034
2206
 
2035
2207
  @builtins.property
2036
- def subnet_mappings(
2208
+ def availability_zone_change_protection(
2037
2209
  self,
2038
- ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnFirewall.SubnetMappingProperty]]]:
2039
- '''The primary public subnets that Network Firewall is using for the firewall.
2210
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
2211
+ '''A setting indicating whether the firewall is protected against changes to its Availability Zone configuration.
2040
2212
 
2041
- Network Firewall creates a firewall endpoint in each subnet. Create a subnet mapping for each Availability Zone where you want to use the firewall.
2213
+ When set to ``TRUE`` , you must first disable this protection before adding or removing Availability Zones.
2042
2214
 
2043
- These subnets are all defined for a single, primary VPC, and each must belong to a different Availability Zone. Each of these subnets establishes the availability of the firewall in its Availability Zone.
2044
-
2045
- In addition to these subnets, you can define other endpoints for the firewall in ``VpcEndpointAssociation`` resources. You can define these additional endpoints for any VPC, and for any of the Availability Zones where the firewall resource already has a subnet mapping. VPC endpoint associations give you the ability to protect multiple VPCs using a single firewall, and to define multiple firewall endpoints for a VPC in a single Availability Zone.
2046
-
2047
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-subnetmappings
2215
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-availabilityzonechangeprotection
2048
2216
  '''
2049
- result = self._values.get("subnet_mappings")
2050
- assert result is not None, "Required property 'subnet_mappings' is missing"
2051
- return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnFirewall.SubnetMappingProperty]]], result)
2217
+ result = self._values.get("availability_zone_change_protection")
2218
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
2052
2219
 
2053
2220
  @builtins.property
2054
- def vpc_id(self) -> builtins.str:
2055
- '''The unique identifier of the VPC where the firewall is in use.
2221
+ def availability_zone_mappings(
2222
+ self,
2223
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnFirewall.AvailabilityZoneMappingProperty]]]]:
2224
+ '''The Availability Zones where the firewall endpoints are created for a transit gateway-attached firewall.
2056
2225
 
2057
- You can't change the VPC of a firewall after you create the firewall.
2226
+ Each mapping specifies an Availability Zone where the firewall processes traffic.
2058
2227
 
2059
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-vpcid
2228
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-availabilityzonemappings
2060
2229
  '''
2061
- result = self._values.get("vpc_id")
2062
- assert result is not None, "Required property 'vpc_id' is missing"
2063
- return typing.cast(builtins.str, result)
2230
+ result = self._values.get("availability_zone_mappings")
2231
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnFirewall.AvailabilityZoneMappingProperty]]]], result)
2064
2232
 
2065
2233
  @builtins.property
2066
2234
  def delete_protection(
@@ -2119,6 +2287,23 @@ class CfnFirewallProps:
2119
2287
  result = self._values.get("subnet_change_protection")
2120
2288
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
2121
2289
 
2290
+ @builtins.property
2291
+ def subnet_mappings(
2292
+ self,
2293
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnFirewall.SubnetMappingProperty]]]]:
2294
+ '''The primary public subnets that Network Firewall is using for the firewall.
2295
+
2296
+ Network Firewall creates a firewall endpoint in each subnet. Create a subnet mapping for each Availability Zone where you want to use the firewall.
2297
+
2298
+ These subnets are all defined for a single, primary VPC, and each must belong to a different Availability Zone. Each of these subnets establishes the availability of the firewall in its Availability Zone.
2299
+
2300
+ In addition to these subnets, you can define other endpoints for the firewall in ``VpcEndpointAssociation`` resources. You can define these additional endpoints for any VPC, and for any of the Availability Zones where the firewall resource already has a subnet mapping. VPC endpoint associations give you the ability to protect multiple VPCs using a single firewall, and to define multiple firewall endpoints for a VPC in a single Availability Zone.
2301
+
2302
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-subnetmappings
2303
+ '''
2304
+ result = self._values.get("subnet_mappings")
2305
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnFirewall.SubnetMappingProperty]]]], result)
2306
+
2122
2307
  @builtins.property
2123
2308
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
2124
2309
  '''An array of key-value pairs to apply to this resource.
@@ -2130,6 +2315,28 @@ class CfnFirewallProps:
2130
2315
  result = self._values.get("tags")
2131
2316
  return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
2132
2317
 
2318
+ @builtins.property
2319
+ def transit_gateway_id(self) -> typing.Optional[builtins.str]:
2320
+ '''The unique identifier of the transit gateway associated with this firewall.
2321
+
2322
+ This field is only present for transit gateway-attached firewalls.
2323
+
2324
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-transitgatewayid
2325
+ '''
2326
+ result = self._values.get("transit_gateway_id")
2327
+ return typing.cast(typing.Optional[builtins.str], result)
2328
+
2329
+ @builtins.property
2330
+ def vpc_id(self) -> typing.Optional[builtins.str]:
2331
+ '''The unique identifier of the VPC where the firewall is in use.
2332
+
2333
+ You can't change the VPC of a firewall after you create the firewall.
2334
+
2335
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html#cfn-networkfirewall-firewall-vpcid
2336
+ '''
2337
+ result = self._values.get("vpc_id")
2338
+ return typing.cast(typing.Optional[builtins.str], result)
2339
+
2133
2340
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
2134
2341
  return isinstance(rhs, self.__class__) and rhs._values == self._values
2135
2342
 
@@ -2148,11 +2355,11 @@ class CfnLoggingConfiguration(
2148
2355
  metaclass=jsii.JSIIMeta,
2149
2356
  jsii_type="aws-cdk-lib.aws_networkfirewall.CfnLoggingConfiguration",
2150
2357
  ):
2151
- '''Use the ``LoggingConfiguration`` to define the destinations and logging options for an ``Firewall`` .
2358
+ '''Use the logging configuration to define the destinations and logging options for an firewall.
2152
2359
 
2153
2360
  You must change the logging configuration by changing one ``LogDestinationConfig`` setting at a time in your ``LogDestinationConfigs`` .
2154
2361
 
2155
- You can make only one of the following changes to your ``LoggingConfiguration`` resource:
2362
+ You can make only one of the following changes to your logging configuration resource:
2156
2363
 
2157
2364
  - Create a new log destination object by adding a single ``LogDestinationConfig`` array element to ``LogDestinationConfigs`` .
2158
2365
  - Delete a log destination object by removing a single ``LogDestinationConfig`` array element from ``LogDestinationConfigs`` .
@@ -2201,8 +2408,8 @@ class CfnLoggingConfiguration(
2201
2408
  '''
2202
2409
  :param scope: Scope in which this resource is defined.
2203
2410
  :param id: Construct identifier for this resource (unique in its scope).
2204
- :param firewall_arn: The Amazon Resource Name (ARN) of the ``Firewall`` that the logging configuration is associated with. You can't change the firewall specification after you create the logging configuration.
2205
- :param logging_configuration: Defines how AWS Network Firewall performs logging for a ``Firewall`` .
2411
+ :param firewall_arn: The Amazon Resource Name (ARN) of the firewallthat the logging configuration is associated with. You can't change the firewall specification after you create the logging configuration.
2412
+ :param logging_configuration: Defines how AWS Network Firewall performs logging for a firewall.
2206
2413
  :param enable_monitoring_dashboard:
2207
2414
  :param firewall_name: The name of the firewall that the logging configuration is associated with. You can't change the firewall specification after you create the logging configuration.
2208
2415
  '''
@@ -2257,7 +2464,7 @@ class CfnLoggingConfiguration(
2257
2464
  @builtins.property
2258
2465
  @jsii.member(jsii_name="firewallArn")
2259
2466
  def firewall_arn(self) -> builtins.str:
2260
- '''The Amazon Resource Name (ARN) of the ``Firewall`` that the logging configuration is associated with.'''
2467
+ '''The Amazon Resource Name (ARN) of the firewallthat the logging configuration is associated with.'''
2261
2468
  return typing.cast(builtins.str, jsii.get(self, "firewallArn"))
2262
2469
 
2263
2470
  @firewall_arn.setter
@@ -2272,7 +2479,7 @@ class CfnLoggingConfiguration(
2272
2479
  def logging_configuration(
2273
2480
  self,
2274
2481
  ) -> typing.Union[_IResolvable_da3f097b, "CfnLoggingConfiguration.LoggingConfigurationProperty"]:
2275
- '''Defines how AWS Network Firewall performs logging for a ``Firewall`` .'''
2482
+ '''Defines how AWS Network Firewall performs logging for a firewall.'''
2276
2483
  return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnLoggingConfiguration.LoggingConfigurationProperty"], jsii.get(self, "loggingConfiguration"))
2277
2484
 
2278
2485
  @logging_configuration.setter
@@ -2334,7 +2541,7 @@ class CfnLoggingConfiguration(
2334
2541
  ) -> None:
2335
2542
  '''Defines where AWS Network Firewall sends logs for the firewall for one log type.
2336
2543
 
2337
- This is used in ``LoggingConfiguration`` . You can send each type of log to an Amazon S3 bucket, a CloudWatch log group, or a Kinesis Data Firehose delivery stream.
2544
+ This is used in logging configuration. You can send each type of log to an Amazon S3 bucket, a CloudWatch log group, or a Kinesis Data Firehose delivery stream.
2338
2545
 
2339
2546
  Network Firewall generates logs for stateful rule groups. You can save alert and flow log types. The stateful rules engine records flow logs for all network traffic that it receives. It records alert logs for traffic that matches stateful rules that have the rule action set to ``DROP`` or ``ALERT`` .
2340
2547
 
@@ -2446,7 +2653,7 @@ class CfnLoggingConfiguration(
2446
2653
  *,
2447
2654
  log_destination_configs: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnLoggingConfiguration.LogDestinationConfigProperty", typing.Dict[builtins.str, typing.Any]]]]],
2448
2655
  ) -> None:
2449
- '''Defines how AWS Network Firewall performs logging for a ``Firewall`` .
2656
+ '''Defines how AWS Network Firewall performs logging for a firewall.
2450
2657
 
2451
2658
  :param log_destination_configs: Defines the logging destinations for the logs for a firewall. Network Firewall generates logs for stateful rule groups.
2452
2659
 
@@ -2523,8 +2730,8 @@ class CfnLoggingConfigurationProps:
2523
2730
  ) -> None:
2524
2731
  '''Properties for defining a ``CfnLoggingConfiguration``.
2525
2732
 
2526
- :param firewall_arn: The Amazon Resource Name (ARN) of the ``Firewall`` that the logging configuration is associated with. You can't change the firewall specification after you create the logging configuration.
2527
- :param logging_configuration: Defines how AWS Network Firewall performs logging for a ``Firewall`` .
2733
+ :param firewall_arn: The Amazon Resource Name (ARN) of the firewallthat the logging configuration is associated with. You can't change the firewall specification after you create the logging configuration.
2734
+ :param logging_configuration: Defines how AWS Network Firewall performs logging for a firewall.
2528
2735
  :param enable_monitoring_dashboard:
2529
2736
  :param firewall_name: The name of the firewall that the logging configuration is associated with. You can't change the firewall specification after you create the logging configuration.
2530
2737
 
@@ -2571,7 +2778,7 @@ class CfnLoggingConfigurationProps:
2571
2778
 
2572
2779
  @builtins.property
2573
2780
  def firewall_arn(self) -> builtins.str:
2574
- '''The Amazon Resource Name (ARN) of the ``Firewall`` that the logging configuration is associated with.
2781
+ '''The Amazon Resource Name (ARN) of the firewallthat the logging configuration is associated with.
2575
2782
 
2576
2783
  You can't change the firewall specification after you create the logging configuration.
2577
2784
 
@@ -2585,7 +2792,7 @@ class CfnLoggingConfigurationProps:
2585
2792
  def logging_configuration(
2586
2793
  self,
2587
2794
  ) -> typing.Union[_IResolvable_da3f097b, CfnLoggingConfiguration.LoggingConfigurationProperty]:
2588
- '''Defines how AWS Network Firewall performs logging for a ``Firewall`` .
2795
+ '''Defines how AWS Network Firewall performs logging for a firewall.
2589
2796
 
2590
2797
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html#cfn-networkfirewall-loggingconfiguration-loggingconfiguration
2591
2798
  '''
@@ -2632,9 +2839,7 @@ class CfnRuleGroup(
2632
2839
  metaclass=jsii.JSIIMeta,
2633
2840
  jsii_type="aws-cdk-lib.aws_networkfirewall.CfnRuleGroup",
2634
2841
  ):
2635
- '''Use the ``RuleGroup`` to define a reusable collection of stateless or stateful network traffic filtering rules.
2636
-
2637
- You use rule groups in an ``FirewallPolicy`` to specify the filtering behavior of an ``Firewall`` .
2842
+ '''Use the ` <https://docs.aws.amazon.com/RuleGroup>`_ to define a reusable collection of stateless or stateful network traffic filtering rules. You use rule groups in an firewall policy to specify the filtering behavior of an firewall.
2638
2843
 
2639
2844
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html
2640
2845
  :cloudformationResource: AWS::NetworkFirewall::RuleGroup
@@ -2747,6 +2952,9 @@ class CfnRuleGroup(
2747
2952
  rule_order="ruleOrder"
2748
2953
  )
2749
2954
  ),
2955
+ summary_configuration=networkfirewall.CfnRuleGroup.SummaryConfigurationProperty(
2956
+ rule_options=["ruleOptions"]
2957
+ ),
2750
2958
  tags=[CfnTag(
2751
2959
  key="key",
2752
2960
  value="value"
@@ -2764,6 +2972,7 @@ class CfnRuleGroup(
2764
2972
  type: builtins.str,
2765
2973
  description: typing.Optional[builtins.str] = None,
2766
2974
  rule_group: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.RuleGroupProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2975
+ summary_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.SummaryConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2767
2976
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
2768
2977
  ) -> None:
2769
2978
  '''
@@ -2774,6 +2983,7 @@ class CfnRuleGroup(
2774
2983
  :param type: Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains stateless rules. If it is stateful, it contains stateful rules.
2775
2984
  :param description: A description of the rule group.
2776
2985
  :param rule_group: An object that defines the rule group rules.
2986
+ :param summary_configuration: A complex type containing the currently selected rule option fields that will be displayed for rule summarization returned by ``DescribeRuleGroupSummary`` . - The ``RuleOptions`` specified in ``SummaryConfiguration`` - Rule metadata organization preferences
2777
2987
  :param tags: An array of key-value pairs to apply to this resource. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
2778
2988
  '''
2779
2989
  if __debug__:
@@ -2786,6 +2996,7 @@ class CfnRuleGroup(
2786
2996
  type=type,
2787
2997
  description=description,
2788
2998
  rule_group=rule_group,
2999
+ summary_configuration=summary_configuration,
2789
3000
  tags=tags,
2790
3001
  )
2791
3002
 
@@ -2824,7 +3035,7 @@ class CfnRuleGroup(
2824
3035
  @builtins.property
2825
3036
  @jsii.member(jsii_name="attrRuleGroupArn")
2826
3037
  def attr_rule_group_arn(self) -> builtins.str:
2827
- '''The Amazon Resource Name (ARN) of the ``RuleGroup`` .
3038
+ '''The Amazon Resource Name (ARN) of the rule group.
2828
3039
 
2829
3040
  :cloudformationAttribute: RuleGroupArn
2830
3041
  '''
@@ -2833,7 +3044,7 @@ class CfnRuleGroup(
2833
3044
  @builtins.property
2834
3045
  @jsii.member(jsii_name="attrRuleGroupId")
2835
3046
  def attr_rule_group_id(self) -> builtins.str:
2836
- '''The unique ID of the ``RuleGroup`` resource.
3047
+ '''The unique ID of the rule group resource.
2837
3048
 
2838
3049
  :cloudformationAttribute: RuleGroupId
2839
3050
  '''
@@ -2920,6 +3131,24 @@ class CfnRuleGroup(
2920
3131
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
2921
3132
  jsii.set(self, "ruleGroup", value) # pyright: ignore[reportArgumentType]
2922
3133
 
3134
+ @builtins.property
3135
+ @jsii.member(jsii_name="summaryConfiguration")
3136
+ def summary_configuration(
3137
+ self,
3138
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.SummaryConfigurationProperty"]]:
3139
+ '''A complex type containing the currently selected rule option fields that will be displayed for rule summarization returned by ``DescribeRuleGroupSummary`` .'''
3140
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.SummaryConfigurationProperty"]], jsii.get(self, "summaryConfiguration"))
3141
+
3142
+ @summary_configuration.setter
3143
+ def summary_configuration(
3144
+ self,
3145
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.SummaryConfigurationProperty"]],
3146
+ ) -> None:
3147
+ if __debug__:
3148
+ type_hints = typing.get_type_hints(_typecheckingstub__46973fc09b1e3c3e87b38c8ac10ef1cb472bfde25cd2947723ae44a7d98733e0)
3149
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3150
+ jsii.set(self, "summaryConfiguration", value) # pyright: ignore[reportArgumentType]
3151
+
2923
3152
  @builtins.property
2924
3153
  @jsii.member(jsii_name="tagsRaw")
2925
3154
  def tags_raw(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
@@ -3007,7 +3236,7 @@ class CfnRuleGroup(
3007
3236
  def __init__(self, *, address_definition: builtins.str) -> None:
3008
3237
  '''A single IP address specification.
3009
3238
 
3010
- This is used in the ``RuleGroup.MatchAttributes`` source and destination specifications.
3239
+ This is used in the match attributes source and destination specifications.
3011
3240
 
3012
3241
  :param address_definition: Specify an IP address or a block of IP addresses in Classless Inter-Domain Routing (CIDR) notation. Network Firewall supports all address ranges for IPv4 and IPv6. Examples: - To configure Network Firewall to inspect for the IP address 192.0.2.44, specify ``192.0.2.44/32`` . - To configure Network Firewall to inspect for IP addresses from 192.0.2.0 to 192.0.2.255, specify ``192.0.2.0/24`` . - To configure Network Firewall to inspect for the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify ``1111:0000:0000:0000:0000:0000:0000:0111/128`` . - To configure Network Firewall to inspect for IP addresses from 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify ``1111:0000:0000:0000:0000:0000:0000:0000/64`` . For more information about CIDR notation, see the Wikipedia entry `Classless Inter-Domain Routing <https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing>`_ .
3013
3242
 
@@ -3086,8 +3315,8 @@ class CfnRuleGroup(
3086
3315
 
3087
3316
  You can use custom actions in the following places:
3088
3317
 
3089
- - In an ``RuleGroup.StatelessRulesAndCustomActions`` . The custom actions are available for use by name inside the ``StatelessRulesAndCustomActions`` where you define them. You can use them for your stateless rule actions to specify what to do with a packet that matches the rule's match attributes.
3090
- - In an ``FirewallPolicy`` specification, in ``StatelessCustomActions`` . The custom actions are available for use inside the policy where you define them. You can use them for the policy's default stateless actions settings to specify what to do with packets that don't match any of the policy's stateless rules.
3318
+ - In a ``StatelessRulesAndCustomActions`` . The custom actions are available for use by name inside the ``StatelessRulesAndCustomActions`` where you define them. You can use them for your stateless rule actions to specify what to do with a packet that matches the rule's match attributes.
3319
+ - In an firewall policy specification, in ``StatelessCustomActions`` . The custom actions are available for use inside the policy where you define them. You can use them for the policy's default stateless actions settings to specify what to do with packets that don't match any of the policy's stateless rules.
3091
3320
 
3092
3321
  :param action_definition: The custom action associated with the action name.
3093
3322
  :param action_name: The descriptive name of the custom action. You can't change the name of a custom action after you create it.
@@ -3401,7 +3630,7 @@ class CfnRuleGroup(
3401
3630
  ) -> None:
3402
3631
  '''A list of IP addresses and address ranges, in CIDR notation.
3403
3632
 
3404
- This is part of a ``RuleGroup.RuleVariables`` .
3633
+ This is part of a ``RuleVariables`` .
3405
3634
 
3406
3635
  :param definition: The list of IP addresses and address ranges, in CIDR notation.
3407
3636
 
@@ -3456,11 +3685,11 @@ class CfnRuleGroup(
3456
3685
  *,
3457
3686
  reference_arn: typing.Optional[builtins.str] = None,
3458
3687
  ) -> None:
3459
- '''Configures one or more ``IPSetReferences`` for a Suricata-compatible rule group.
3688
+ '''Configures one or more IP set references for a Suricata-compatible rule group.
3460
3689
 
3461
3690
  An IP set reference is a rule variable that references a resource that you create and manage in another AWS service, such as an Amazon VPC prefix list. Network Firewall IP set references enable you to dynamically update the contents of your rules. When you create, update, or delete the IP set you are referencing in your rule, Network Firewall automatically updates the rule's content with the changes. For more information about IP set references in Network Firewall , see `Using IP set references <https://docs.aws.amazon.com/network-firewall/latest/developerguide/rule-groups-ip-set-references.html>`_ in the *Network Firewall Developer Guide* .
3462
3691
 
3463
- :param reference_arn: The Amazon Resource Name (ARN) of the resource to include in the ``RuleGroup.IPSetReference`` .
3692
+ :param reference_arn: The Amazon Resource Name (ARN) of the resource to include in the IP set reference.
3464
3693
 
3465
3694
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ipsetreference.html
3466
3695
  :exampleMetadata: fixture=_generated
@@ -3484,7 +3713,7 @@ class CfnRuleGroup(
3484
3713
 
3485
3714
  @builtins.property
3486
3715
  def reference_arn(self) -> typing.Optional[builtins.str]:
3487
- '''The Amazon Resource Name (ARN) of the resource to include in the ``RuleGroup.IPSetReference`` .
3716
+ '''The Amazon Resource Name (ARN) of the resource to include in the IP set reference.
3488
3717
 
3489
3718
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ipsetreference.html#cfn-networkfirewall-rulegroup-ipsetreference-referencearn
3490
3719
  '''
@@ -3695,7 +3924,7 @@ class CfnRuleGroup(
3695
3924
  def __init__(self, *, from_port: jsii.Number, to_port: jsii.Number) -> None:
3696
3925
  '''A single port range specification.
3697
3926
 
3698
- This is used for source and destination port ranges in the stateless ``RuleGroup.MatchAttributes`` .
3927
+ This is used for source and destination port ranges in the stateless match attributes.
3699
3928
 
3700
3929
  :param from_port: The lower limit of the port range. This must be less than or equal to the ``ToPort`` specification.
3701
3930
  :param to_port: The upper limit of the port range. This must be greater than or equal to the ``FromPort`` specification.
@@ -3885,7 +4114,7 @@ class CfnRuleGroup(
3885
4114
  *,
3886
4115
  ip_set_references: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.IPSetReferenceProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3887
4116
  ) -> None:
3888
- '''Configures the ``ReferenceSets`` for a stateful rule group.
4117
+ '''Configures the reference sets for a stateful rule group.
3889
4118
 
3890
4119
  For more information, see the `Using IP set references in Suricata compatible rule groups <https://docs.aws.amazon.com/network-firewall/latest/developerguide/rule-groups-ip-set-references.html>`_ in the *Network Firewall User Guide* .
3891
4120
 
@@ -3953,7 +4182,7 @@ class CfnRuleGroup(
3953
4182
 
3954
4183
  AWS Network Firewall inspects each packet for the specified matching criteria. When a packet matches the criteria, Network Firewall performs the rule's actions on the packet.
3955
4184
 
3956
- :param actions: The actions to take on a packet that matches one of the stateless rule definition's match attributes. You must specify a standard action and you can add custom actions. .. epigraph:: Network Firewall only forwards a packet for stateful rule inspection if you specify ``aws:forward_to_sfe`` for a rule that the packet matches, or if the packet doesn't match any stateless rule and you specify ``aws:forward_to_sfe`` for the ``StatelessDefaultActions`` setting for the ``FirewallPolicy`` . For every rule, you must specify exactly one of the following standard actions. - *aws:pass* - Discontinues all inspection of the packet and permits it to go to its intended destination. - *aws:drop* - Discontinues all inspection of the packet and blocks it from going to its intended destination. - *aws:forward_to_sfe* - Discontinues stateless inspection of the packet and forwards it to the stateful rule engine for inspection. Additionally, you can specify a custom action. To do this, you define a custom action by name and type, then provide the name you've assigned to the action in this ``Actions`` setting. To provide more than one action in this setting, separate the settings with a comma. For example, if you have a publish metrics custom action that you've named ``MyMetricsAction`` , then you could specify the standard action ``aws:pass`` combined with the custom action using ``[“aws:pass”, “MyMetricsAction”]`` .
4185
+ :param actions: The actions to take on a packet that matches one of the stateless rule definition's match attributes. You must specify a standard action and you can add custom actions. .. epigraph:: Network Firewall only forwards a packet for stateful rule inspection if you specify ``aws:forward_to_sfe`` for a rule that the packet matches, or if the packet doesn't match any stateless rule and you specify ``aws:forward_to_sfe`` for the ``StatelessDefaultActions`` setting for the firewall policy. For every rule, you must specify exactly one of the following standard actions. - *aws:pass* - Discontinues all inspection of the packet and permits it to go to its intended destination. - *aws:drop* - Discontinues all inspection of the packet and blocks it from going to its intended destination. - *aws:forward_to_sfe* - Discontinues stateless inspection of the packet and forwards it to the stateful rule engine for inspection. Additionally, you can specify a custom action. To do this, you define a custom action by name and type, then provide the name you've assigned to the action in this ``Actions`` setting. To provide more than one action in this setting, separate the settings with a comma. For example, if you have a publish metrics custom action that you've named ``MyMetricsAction`` , then you could specify the standard action ``aws:pass`` combined with the custom action using ``[“aws:pass”, “MyMetricsAction”]`` .
3957
4186
  :param match_attributes: Criteria for Network Firewall to use to inspect an individual packet in stateless rule inspection. Each match attributes set can include one or more items such as IP address, CIDR range, port number, protocol, and TCP flags.
3958
4187
 
3959
4188
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-ruledefinition.html
@@ -4008,7 +4237,7 @@ class CfnRuleGroup(
4008
4237
  You must specify a standard action and you can add custom actions.
4009
4238
  .. epigraph::
4010
4239
 
4011
- Network Firewall only forwards a packet for stateful rule inspection if you specify ``aws:forward_to_sfe`` for a rule that the packet matches, or if the packet doesn't match any stateless rule and you specify ``aws:forward_to_sfe`` for the ``StatelessDefaultActions`` setting for the ``FirewallPolicy`` .
4240
+ Network Firewall only forwards a packet for stateful rule inspection if you specify ``aws:forward_to_sfe`` for a rule that the packet matches, or if the packet doesn't match any stateless rule and you specify ``aws:forward_to_sfe`` for the ``StatelessDefaultActions`` setting for the firewall policy.
4012
4241
 
4013
4242
  For every rule, you must specify exactly one of the following standard actions.
4014
4243
 
@@ -4350,9 +4579,7 @@ class CfnRuleGroup(
4350
4579
  ip_sets: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.IPSetProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
4351
4580
  port_sets: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.PortSetProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
4352
4581
  ) -> None:
4353
- '''Settings that are available for use in the rules in the ``RuleGroup`` where this is defined.
4354
-
4355
- See ``CreateRuleGroup`` or ``UpdateRuleGroup`` for usage.
4582
+ '''Settings that are available for use in the rules in the rule group where this is defined.
4356
4583
 
4357
4584
  :param ip_sets: A list of IP addresses and address ranges, in CIDR notation.
4358
4585
  :param port_sets: A list of port ranges.
@@ -4443,7 +4670,7 @@ class CfnRuleGroup(
4443
4670
 
4444
4671
  For HTTPS traffic, domain filtering is SNI-based. It uses the server name indicator extension of the TLS handshake.
4445
4672
 
4446
- By default, Network Firewall domain list inspection only includes traffic coming from the VPC where you deploy the firewall. To inspect traffic from IP addresses outside of the deployment VPC, you set the ``HOME_NET`` rule variable to include the CIDR range of the deployment VPC plus the other CIDR ranges. For more information, see ``RuleGroup.RuleVariables`` in this guide and `Stateful domain list rule groups in AWS Network Firewall <https://docs.aws.amazon.com/network-firewall/latest/developerguide/stateful-rule-groups-domain-names.html>`_ in the *Network Firewall Developer Guide*
4673
+ By default, Network Firewall domain list inspection only includes traffic coming from the VPC where you deploy the firewall. To inspect traffic from IP addresses outside of the deployment VPC, you set the ``HOME_NET`` rule variable to include the CIDR range of the deployment VPC plus the other CIDR ranges. For more information, see ``RuleVariables`` in this guide and `Stateful domain list rule groups in AWS Network Firewall <https://docs.aws.amazon.com/network-firewall/latest/developerguide/stateful-rule-groups-domain-names.html>`_ in the *Network Firewall Developer Guide*
4447
4674
 
4448
4675
  :param generated_rules_type: Whether you want to allow or deny access to the domains in your target list.
4449
4676
  :param targets: The domains that you want to inspect for in your traffic flows. Valid domain specifications are the following:. - Explicit names. For example, ``abc.example.com`` matches only the domain ``abc.example.com`` . - Names that use a domain wildcard, which you indicate with an initial ' ``.`` '. For example, ``.example.com`` matches ``example.com`` and matches all subdomains of ``example.com`` , such as ``abc.example.com`` and ``www.example.com`` .
@@ -4545,7 +4772,7 @@ class CfnRuleGroup(
4545
4772
  Each rule group requires a single ``RulesSource`` . You can use an instance of this for either stateless rules or stateful rules.
4546
4773
 
4547
4774
  :param rules_source_list: Stateful inspection criteria for a domain list rule group.
4548
- :param rules_string: Stateful inspection criteria, provided in Suricata compatible rules. Suricata is an open-source threat detection framework that includes a standard rule-based language for network traffic inspection. These rules contain the inspection criteria and the action to take for traffic that matches the criteria, so this type of rule group doesn't have a separate action setting. .. epigraph:: You can't use the ``priority`` keyword if the ``RuleOrder`` option in ``StatefulRuleOptions`` is set to ``STRICT_ORDER`` .
4775
+ :param rules_string: Stateful inspection criteria, provided in Suricata compatible rules. Suricata is an open-source threat detection framework that includes a standard rule-based language for network traffic inspection. These rules contain the inspection criteria and the action to take for traffic that matches the criteria, so this type of rule group doesn't have a separate action setting. .. epigraph:: You can't use the ``priority`` keyword if the ``RuleOrder`` option in StatefulRuleOptions is set to ``STRICT_ORDER`` .
4549
4776
  :param stateful_rules: An array of individual stateful rules inspection criteria to be used together in a stateful rule group. Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options. For information about the Suricata ``Rules`` format, see `Rules Format <https://docs.aws.amazon.com/https://suricata.readthedocs.io/en/suricata-7.0.3/rules/intro.html>`_ .
4550
4777
  :param stateless_rules_and_custom_actions: Stateless inspection criteria to be used in a stateless rule group.
4551
4778
 
@@ -4663,7 +4890,7 @@ class CfnRuleGroup(
4663
4890
  These rules contain the inspection criteria and the action to take for traffic that matches the criteria, so this type of rule group doesn't have a separate action setting.
4664
4891
  .. epigraph::
4665
4892
 
4666
- You can't use the ``priority`` keyword if the ``RuleOrder`` option in ``StatefulRuleOptions`` is set to ``STRICT_ORDER`` .
4893
+ You can't use the ``priority`` keyword if the ``RuleOrder`` option in StatefulRuleOptions is set to ``STRICT_ORDER`` .
4667
4894
 
4668
4895
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html#cfn-networkfirewall-rulegroup-rulessource-rulesstring
4669
4896
  '''
@@ -4781,7 +5008,7 @@ class CfnRuleGroup(
4781
5008
 
4782
5009
  Use this option to specify a simple Suricata rule with protocol, source and destination, ports, direction, and rule options. For information about the Suricata ``Rules`` format, see `Rules Format <https://docs.aws.amazon.com/https://suricata.readthedocs.io/en/suricata-7.0.3/rules/intro.html>`_ .
4783
5010
 
4784
- :param action: Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow. The actions for a stateful rule are defined as follows: - *PASS* - Permits the packets to go to the intended destination. - *DROP* - Blocks the packets from going to the intended destination and sends an alert log message, if alert logging is configured in the ``Firewall`` ``LoggingConfiguration`` . - *REJECT* - Drops traffic that matches the conditions of the stateful rule and sends a TCP reset packet back to sender of the packet. A TCP reset packet is a packet with no payload and a ``RST`` bit contained in the TCP header flags. ``REJECT`` is available only for TCP traffic. - *ALERT* - Permits the packets to go to the intended destination and sends an alert log message, if alert logging is configured in the ``Firewall`` ``LoggingConfiguration`` . You can use this action to test a rule that you intend to use to drop traffic. You can enable the rule with ``ALERT`` action, verify in the logs that the rule is filtering as you want, then change the action to ``DROP`` . - *REJECT* - Drops TCP traffic that matches the conditions of the stateful rule, and sends a TCP reset packet back to sender of the packet. A TCP reset packet is a packet with no payload and a ``RST`` bit contained in the TCP header flags. Also sends an alert log mesage if alert logging is configured in the ``Firewall`` ``LoggingConfiguration`` . ``REJECT`` isn't currently available for use with IMAP and FTP protocols.
5011
+ :param action: Defines what Network Firewall should do with the packets in a traffic flow when the flow matches the stateful rule criteria. For all actions, Network Firewall performs the specified action and discontinues stateful inspection of the traffic flow. The actions for a stateful rule are defined as follows: - *PASS* - Permits the packets to go to the intended destination. - *DROP* - Blocks the packets from going to the intended destination and sends an alert log message, if alert logging is configured in the firewall logging configuration. - *REJECT* - Drops traffic that matches the conditions of the stateful rule and sends a TCP reset packet back to sender of the packet. A TCP reset packet is a packet with no payload and a ``RST`` bit contained in the TCP header flags. ``REJECT`` is available only for TCP traffic. - *ALERT* - Permits the packets to go to the intended destination and sends an alert log message, if alert logging is configured in the firewall logging configuration. You can use this action to test a rule that you intend to use to drop traffic. You can enable the rule with ``ALERT`` action, verify in the logs that the rule is filtering as you want, then change the action to ``DROP`` . - *REJECT* - Drops TCP traffic that matches the conditions of the stateful rule, and sends a TCP reset packet back to sender of the packet. A TCP reset packet is a packet with no payload and a ``RST`` bit contained in the TCP header flags. Also sends an alert log mesage if alert logging is configured in the firewall logging configuration. ``REJECT`` isn't currently available for use with IMAP and FTP protocols.
4785
5012
  :param header: The stateful inspection criteria for this rule, used to inspect traffic flows.
4786
5013
  :param rule_options: Additional settings for a stateful rule, provided as keywords and settings.
4787
5014
 
@@ -4832,13 +5059,13 @@ class CfnRuleGroup(
4832
5059
  The actions for a stateful rule are defined as follows:
4833
5060
 
4834
5061
  - *PASS* - Permits the packets to go to the intended destination.
4835
- - *DROP* - Blocks the packets from going to the intended destination and sends an alert log message, if alert logging is configured in the ``Firewall`` ``LoggingConfiguration`` .
5062
+ - *DROP* - Blocks the packets from going to the intended destination and sends an alert log message, if alert logging is configured in the firewall logging configuration.
4836
5063
  - *REJECT* - Drops traffic that matches the conditions of the stateful rule and sends a TCP reset packet back to sender of the packet. A TCP reset packet is a packet with no payload and a ``RST`` bit contained in the TCP header flags. ``REJECT`` is available only for TCP traffic.
4837
- - *ALERT* - Permits the packets to go to the intended destination and sends an alert log message, if alert logging is configured in the ``Firewall`` ``LoggingConfiguration`` .
5064
+ - *ALERT* - Permits the packets to go to the intended destination and sends an alert log message, if alert logging is configured in the firewall logging configuration.
4838
5065
 
4839
5066
  You can use this action to test a rule that you intend to use to drop traffic. You can enable the rule with ``ALERT`` action, verify in the logs that the rule is filtering as you want, then change the action to ``DROP`` .
4840
5067
 
4841
- - *REJECT* - Drops TCP traffic that matches the conditions of the stateful rule, and sends a TCP reset packet back to sender of the packet. A TCP reset packet is a packet with no payload and a ``RST`` bit contained in the TCP header flags. Also sends an alert log mesage if alert logging is configured in the ``Firewall`` ``LoggingConfiguration`` .
5068
+ - *REJECT* - Drops TCP traffic that matches the conditions of the stateful rule, and sends a TCP reset packet back to sender of the packet. A TCP reset packet is a packet with no payload and a ``RST`` bit contained in the TCP header flags. Also sends an alert log mesage if alert logging is configured in the firewall logging configuration.
4842
5069
 
4843
5070
  ``REJECT`` isn't currently available for use with IMAP and FTP protocols.
4844
5071
 
@@ -4897,7 +5124,7 @@ class CfnRuleGroup(
4897
5124
  ) -> None:
4898
5125
  '''A single stateless rule.
4899
5126
 
4900
- This is used in ``RuleGroup.StatelessRulesAndCustomActions`` .
5127
+ This is used in ``StatelessRulesAndCustomActions`` .
4901
5128
 
4902
5129
  :param priority: Indicates the order in which to run this rule relative to all of the rules that are defined for a stateless rule group. Network Firewall evaluates the rules in a rule group starting with the lowest priority setting. You must ensure that the priority settings are unique for the rule group. Each stateless rule group uses exactly one ``StatelessRulesAndCustomActions`` object, and each ``StatelessRulesAndCustomActions`` contains exactly one ``StatelessRules`` object. To ensure unique priority settings for your rule groups, set unique priorities for the stateless rules that you define inside any single ``StatelessRules`` object. You can change the priority settings of your rules at any time. To make it easier to insert rules later, number them so there's a wide range in between, for example use 100, 200, and so on.
4903
5130
  :param rule_definition: Defines the stateless 5-tuple packet inspection criteria and the action to take on a packet that matches the criteria.
@@ -5009,7 +5236,7 @@ class CfnRuleGroup(
5009
5236
  Each stateless rule group uses exactly one of these data types to define its stateless rules.
5010
5237
 
5011
5238
  :param stateless_rules: Defines the set of stateless rules for use in a stateless rule group.
5012
- :param custom_actions: Defines an array of individual custom action definitions that are available for use by the stateless rules in this ``StatelessRulesAndCustomActions`` specification. You name each custom action that you define, and then you can use it by name in your stateless rule ``RuleGroup.RuleDefinition`` ``Actions`` specification.
5239
+ :param custom_actions: Defines an array of individual custom action definitions that are available for use by the stateless rules in this ``StatelessRulesAndCustomActions`` specification. You name each custom action that you define, and then you can use it by name in your stateless rule definition ``Actions`` specification.
5013
5240
 
5014
5241
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrulesandcustomactions.html
5015
5242
  :exampleMetadata: fixture=_generated
@@ -5092,7 +5319,7 @@ class CfnRuleGroup(
5092
5319
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.CustomActionProperty"]]]]:
5093
5320
  '''Defines an array of individual custom action definitions that are available for use by the stateless rules in this ``StatelessRulesAndCustomActions`` specification.
5094
5321
 
5095
- You name each custom action that you define, and then you can use it by name in your stateless rule ``RuleGroup.RuleDefinition`` ``Actions`` specification.
5322
+ You name each custom action that you define, and then you can use it by name in your stateless rule definition ``Actions`` specification.
5096
5323
 
5097
5324
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-statelessrulesandcustomactions.html#cfn-networkfirewall-rulegroup-statelessrulesandcustomactions-customactions
5098
5325
  '''
@@ -5110,6 +5337,65 @@ class CfnRuleGroup(
5110
5337
  k + "=" + repr(v) for k, v in self._values.items()
5111
5338
  )
5112
5339
 
5340
+ @jsii.data_type(
5341
+ jsii_type="aws-cdk-lib.aws_networkfirewall.CfnRuleGroup.SummaryConfigurationProperty",
5342
+ jsii_struct_bases=[],
5343
+ name_mapping={"rule_options": "ruleOptions"},
5344
+ )
5345
+ class SummaryConfigurationProperty:
5346
+ def __init__(
5347
+ self,
5348
+ *,
5349
+ rule_options: typing.Optional[typing.Sequence[builtins.str]] = None,
5350
+ ) -> None:
5351
+ '''A complex type that specifies which Suricata rule metadata fields to use when displaying threat information. Contains:.
5352
+
5353
+ - ``RuleOptions`` - The Suricata rule options fields to extract and display
5354
+
5355
+ These settings affect how threat information appears in both the console and API responses. Summaries are available for rule groups you manage and for active threat defense AWS managed rule groups.
5356
+
5357
+ :param rule_options: Specifies the selected rule options returned by ``DescribeRuleGroupSummary`` .
5358
+
5359
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-summaryconfiguration.html
5360
+ :exampleMetadata: fixture=_generated
5361
+
5362
+ Example::
5363
+
5364
+ # The code below shows an example of how to instantiate this type.
5365
+ # The values are placeholders you should change.
5366
+ from aws_cdk import aws_networkfirewall as networkfirewall
5367
+
5368
+ summary_configuration_property = networkfirewall.CfnRuleGroup.SummaryConfigurationProperty(
5369
+ rule_options=["ruleOptions"]
5370
+ )
5371
+ '''
5372
+ if __debug__:
5373
+ type_hints = typing.get_type_hints(_typecheckingstub__46f2fcadfd6cf356e80e3b58b0b02c7c119bd9a36d7ac33ac0ee324f887c1307)
5374
+ check_type(argname="argument rule_options", value=rule_options, expected_type=type_hints["rule_options"])
5375
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
5376
+ if rule_options is not None:
5377
+ self._values["rule_options"] = rule_options
5378
+
5379
+ @builtins.property
5380
+ def rule_options(self) -> typing.Optional[typing.List[builtins.str]]:
5381
+ '''Specifies the selected rule options returned by ``DescribeRuleGroupSummary`` .
5382
+
5383
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-summaryconfiguration.html#cfn-networkfirewall-rulegroup-summaryconfiguration-ruleoptions
5384
+ '''
5385
+ result = self._values.get("rule_options")
5386
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
5387
+
5388
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
5389
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
5390
+
5391
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
5392
+ return not (rhs == self)
5393
+
5394
+ def __repr__(self) -> str:
5395
+ return "SummaryConfigurationProperty(%s)" % ", ".join(
5396
+ k + "=" + repr(v) for k, v in self._values.items()
5397
+ )
5398
+
5113
5399
  @jsii.data_type(
5114
5400
  jsii_type="aws-cdk-lib.aws_networkfirewall.CfnRuleGroup.TCPFlagFieldProperty",
5115
5401
  jsii_struct_bases=[],
@@ -5122,7 +5408,7 @@ class CfnRuleGroup(
5122
5408
  flags: typing.Sequence[builtins.str],
5123
5409
  masks: typing.Optional[typing.Sequence[builtins.str]] = None,
5124
5410
  ) -> None:
5125
- '''TCP flags and masks to inspect packets for. This is used in the ``RuleGroup.MatchAttributes`` specification.
5411
+ '''TCP flags and masks to inspect packets for. This is used in the match attributes specification.
5126
5412
 
5127
5413
  For example:
5128
5414
 
@@ -5206,6 +5492,7 @@ class CfnRuleGroup(
5206
5492
  "type": "type",
5207
5493
  "description": "description",
5208
5494
  "rule_group": "ruleGroup",
5495
+ "summary_configuration": "summaryConfiguration",
5209
5496
  "tags": "tags",
5210
5497
  },
5211
5498
  )
@@ -5218,6 +5505,7 @@ class CfnRuleGroupProps:
5218
5505
  type: builtins.str,
5219
5506
  description: typing.Optional[builtins.str] = None,
5220
5507
  rule_group: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.RuleGroupProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
5508
+ summary_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.SummaryConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
5221
5509
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
5222
5510
  ) -> None:
5223
5511
  '''Properties for defining a ``CfnRuleGroup``.
@@ -5227,6 +5515,7 @@ class CfnRuleGroupProps:
5227
5515
  :param type: Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains stateless rules. If it is stateful, it contains stateful rules.
5228
5516
  :param description: A description of the rule group.
5229
5517
  :param rule_group: An object that defines the rule group rules.
5518
+ :param summary_configuration: A complex type containing the currently selected rule option fields that will be displayed for rule summarization returned by ``DescribeRuleGroupSummary`` . - The ``RuleOptions`` specified in ``SummaryConfiguration`` - Rule metadata organization preferences
5230
5519
  :param tags: An array of key-value pairs to apply to this resource. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
5231
5520
 
5232
5521
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html
@@ -5339,6 +5628,9 @@ class CfnRuleGroupProps:
5339
5628
  rule_order="ruleOrder"
5340
5629
  )
5341
5630
  ),
5631
+ summary_configuration=networkfirewall.CfnRuleGroup.SummaryConfigurationProperty(
5632
+ rule_options=["ruleOptions"]
5633
+ ),
5342
5634
  tags=[CfnTag(
5343
5635
  key="key",
5344
5636
  value="value"
@@ -5352,6 +5644,7 @@ class CfnRuleGroupProps:
5352
5644
  check_type(argname="argument type", value=type, expected_type=type_hints["type"])
5353
5645
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
5354
5646
  check_type(argname="argument rule_group", value=rule_group, expected_type=type_hints["rule_group"])
5647
+ check_type(argname="argument summary_configuration", value=summary_configuration, expected_type=type_hints["summary_configuration"])
5355
5648
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
5356
5649
  self._values: typing.Dict[builtins.str, typing.Any] = {
5357
5650
  "capacity": capacity,
@@ -5362,6 +5655,8 @@ class CfnRuleGroupProps:
5362
5655
  self._values["description"] = description
5363
5656
  if rule_group is not None:
5364
5657
  self._values["rule_group"] = rule_group
5658
+ if summary_configuration is not None:
5659
+ self._values["summary_configuration"] = summary_configuration
5365
5660
  if tags is not None:
5366
5661
  self._values["tags"] = tags
5367
5662
 
@@ -5422,6 +5717,20 @@ class CfnRuleGroupProps:
5422
5717
  result = self._values.get("rule_group")
5423
5718
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnRuleGroup.RuleGroupProperty]], result)
5424
5719
 
5720
+ @builtins.property
5721
+ def summary_configuration(
5722
+ self,
5723
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnRuleGroup.SummaryConfigurationProperty]]:
5724
+ '''A complex type containing the currently selected rule option fields that will be displayed for rule summarization returned by ``DescribeRuleGroupSummary`` .
5725
+
5726
+ - The ``RuleOptions`` specified in ``SummaryConfiguration``
5727
+ - Rule metadata organization preferences
5728
+
5729
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html#cfn-networkfirewall-rulegroup-summaryconfiguration
5730
+ '''
5731
+ result = self._values.get("summary_configuration")
5732
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnRuleGroup.SummaryConfigurationProperty]], result)
5733
+
5425
5734
  @builtins.property
5426
5735
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
5427
5736
  '''An array of key-value pairs to apply to this resource.
@@ -6496,7 +6805,7 @@ class CfnVpcEndpointAssociation(
6496
6805
 
6497
6806
  You can use AWS Resource Access Manager to share a ``Firewall`` that you own with other accounts, which gives them the ability to use the firewall to create VPC endpoint associations. For information about sharing a firewall, see ``PutResourcePolicy`` in this guide and see `Sharing Network Firewall resources <https://docs.aws.amazon.com/network-firewall/latest/developerguide/sharing.html>`_ in the *AWS Network Firewall Developer Guide* .
6498
6807
 
6499
- The status of the VPC endpoint association, which indicates whether it's ready to filter network traffic, is provided in the corresponding ``VpcEndpointAssociationStatus`` . You can retrieve both the association and its status by calling ``DescribeVpcEndpointAssociation`` .
6808
+ The status of the VPC endpoint association, which indicates whether it's ready to filter network traffic, is provided in the corresponding VPC endpoint association status. You can retrieve both the association and its status by calling ``DescribeVpcEndpointAssociation`` .
6500
6809
 
6501
6810
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-vpcendpointassociation.html
6502
6811
  :cloudformationResource: AWS::NetworkFirewall::VpcEndpointAssociation
@@ -6594,7 +6903,7 @@ class CfnVpcEndpointAssociation(
6594
6903
  @builtins.property
6595
6904
  @jsii.member(jsii_name="attrEndpointId")
6596
6905
  def attr_endpoint_id(self) -> builtins.str:
6597
- '''An endpoint Id.
6906
+ '''The unique ID of the firewall endpoint for the subnet that you attached to the firewall.For example: "vpce-111122223333".
6598
6907
 
6599
6908
  :cloudformationAttribute: EndpointId
6600
6909
  '''
@@ -6937,14 +7246,17 @@ def _typecheckingstub__8735e4ce7e79159823190ad059af802b7721b71930c6b4b8805c4676b
6937
7246
  *,
6938
7247
  firewall_name: builtins.str,
6939
7248
  firewall_policy_arn: builtins.str,
6940
- subnet_mappings: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFirewall.SubnetMappingProperty, typing.Dict[builtins.str, typing.Any]]]]],
6941
- vpc_id: builtins.str,
7249
+ availability_zone_change_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7250
+ availability_zone_mappings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFirewall.AvailabilityZoneMappingProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
6942
7251
  delete_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
6943
7252
  description: typing.Optional[builtins.str] = None,
6944
7253
  enabled_analysis_types: typing.Optional[typing.Sequence[builtins.str]] = None,
6945
7254
  firewall_policy_change_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
6946
7255
  subnet_change_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7256
+ subnet_mappings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFirewall.SubnetMappingProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
6947
7257
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
7258
+ transit_gateway_id: typing.Optional[builtins.str] = None,
7259
+ vpc_id: typing.Optional[builtins.str] = None,
6948
7260
  ) -> None:
6949
7261
  """Type checking stubs"""
6950
7262
  pass
@@ -6973,14 +7285,14 @@ def _typecheckingstub__c711ef7af7567ab69b12f083b26c4033f7cdf1593bf27227f989d7c73
6973
7285
  """Type checking stubs"""
6974
7286
  pass
6975
7287
 
6976
- def _typecheckingstub__0f2f1e41c3294b6f9ed43f3936b8feb28ed4bd73021f059aae4743db717241ab(
6977
- value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnFirewall.SubnetMappingProperty]]],
7288
+ def _typecheckingstub__9264301e2259874347a035c96f8c2b41c3eace108b10ab012df466442d7477f1(
7289
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
6978
7290
  ) -> None:
6979
7291
  """Type checking stubs"""
6980
7292
  pass
6981
7293
 
6982
- def _typecheckingstub__ba092b3d0c9ca8819ad31fd4320cebdee3150a45603af80de70f2c0bbb9e04b5(
6983
- value: builtins.str,
7294
+ def _typecheckingstub__cf571f7b78cee2a31a1b36a9ada83e153f52c7a14fea3f65c9362d1d4634dd77(
7295
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnFirewall.AvailabilityZoneMappingProperty]]]],
6984
7296
  ) -> None:
6985
7297
  """Type checking stubs"""
6986
7298
  pass
@@ -7015,12 +7327,37 @@ def _typecheckingstub__3edeae6cf81be7cb1d87c21080d7c060fb1fdbd872b4292af576701d5
7015
7327
  """Type checking stubs"""
7016
7328
  pass
7017
7329
 
7330
+ def _typecheckingstub__0f2f1e41c3294b6f9ed43f3936b8feb28ed4bd73021f059aae4743db717241ab(
7331
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnFirewall.SubnetMappingProperty]]]],
7332
+ ) -> None:
7333
+ """Type checking stubs"""
7334
+ pass
7335
+
7018
7336
  def _typecheckingstub__e1b2b141c4b9a04d63365f9d8a2a5636d417c4a087ebfbfd40be7336d4d258da(
7019
7337
  value: typing.Optional[typing.List[_CfnTag_f6864754]],
7020
7338
  ) -> None:
7021
7339
  """Type checking stubs"""
7022
7340
  pass
7023
7341
 
7342
+ def _typecheckingstub__ebf25e7b4ccdda1a25794e9d426e24b28f37c786df4576a4b499042b55c26bc6(
7343
+ value: typing.Optional[builtins.str],
7344
+ ) -> None:
7345
+ """Type checking stubs"""
7346
+ pass
7347
+
7348
+ def _typecheckingstub__ba092b3d0c9ca8819ad31fd4320cebdee3150a45603af80de70f2c0bbb9e04b5(
7349
+ value: typing.Optional[builtins.str],
7350
+ ) -> None:
7351
+ """Type checking stubs"""
7352
+ pass
7353
+
7354
+ def _typecheckingstub__e12d4b074bc6fa59b990e1d43ef30390330da9da999dbf3bac9bf5e98eb30caf(
7355
+ *,
7356
+ availability_zone: builtins.str,
7357
+ ) -> None:
7358
+ """Type checking stubs"""
7359
+ pass
7360
+
7024
7361
  def _typecheckingstub__cf86d50b8eec902ee512afbe0dfd3b1ee2bc8f0b9f4fb9acb4ac637ae3662fc0(
7025
7362
  *,
7026
7363
  subnet_id: builtins.str,
@@ -7161,6 +7498,7 @@ def _typecheckingstub__62be7baa7c0ae22655f34e1d3316236c114457fe368caf2a958ba1fd9
7161
7498
  def _typecheckingstub__b35f780a3045f4df1ecbf5bb69deb711659429dcfd9f87d388080942e7b17ef8(
7162
7499
  *,
7163
7500
  resource_arn: builtins.str,
7501
+ deep_threat_inspection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7164
7502
  override: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFirewallPolicy.StatefulRuleGroupOverrideProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7165
7503
  priority: typing.Optional[jsii.Number] = None,
7166
7504
  ) -> None:
@@ -7189,14 +7527,17 @@ def _typecheckingstub__8d4108d5c35b1608da0d36c8bb60f52501d3b0634ca4324342a71c57b
7189
7527
  *,
7190
7528
  firewall_name: builtins.str,
7191
7529
  firewall_policy_arn: builtins.str,
7192
- subnet_mappings: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFirewall.SubnetMappingProperty, typing.Dict[builtins.str, typing.Any]]]]],
7193
- vpc_id: builtins.str,
7530
+ availability_zone_change_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7531
+ availability_zone_mappings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFirewall.AvailabilityZoneMappingProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
7194
7532
  delete_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7195
7533
  description: typing.Optional[builtins.str] = None,
7196
7534
  enabled_analysis_types: typing.Optional[typing.Sequence[builtins.str]] = None,
7197
7535
  firewall_policy_change_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7198
7536
  subnet_change_protection: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7537
+ subnet_mappings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFirewall.SubnetMappingProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
7199
7538
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
7539
+ transit_gateway_id: typing.Optional[builtins.str] = None,
7540
+ vpc_id: typing.Optional[builtins.str] = None,
7200
7541
  ) -> None:
7201
7542
  """Type checking stubs"""
7202
7543
  pass
@@ -7284,6 +7625,7 @@ def _typecheckingstub__2f1d19cebb2e7dfe2bb3a674253e22bfdb540bd48dc9cd243370420d8
7284
7625
  type: builtins.str,
7285
7626
  description: typing.Optional[builtins.str] = None,
7286
7627
  rule_group: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.RuleGroupProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7628
+ summary_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.SummaryConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7287
7629
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
7288
7630
  ) -> None:
7289
7631
  """Type checking stubs"""
@@ -7331,6 +7673,12 @@ def _typecheckingstub__6ed6ac96ae6360b92bfdf6614d9832ba1cad5080dce3a3257a75537c9
7331
7673
  """Type checking stubs"""
7332
7674
  pass
7333
7675
 
7676
+ def _typecheckingstub__46973fc09b1e3c3e87b38c8ac10ef1cb472bfde25cd2947723ae44a7d98733e0(
7677
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnRuleGroup.SummaryConfigurationProperty]],
7678
+ ) -> None:
7679
+ """Type checking stubs"""
7680
+ pass
7681
+
7334
7682
  def _typecheckingstub__5969fe74fc1a24641d71678e96d3133e152f5f87c43e5f7d72af22aa055d7db5(
7335
7683
  value: typing.Optional[typing.List[_CfnTag_f6864754]],
7336
7684
  ) -> None:
@@ -7518,6 +7866,13 @@ def _typecheckingstub__71d7a12c23bdb40d0d25319bf80720d55c4205129c386e8de5676df43
7518
7866
  """Type checking stubs"""
7519
7867
  pass
7520
7868
 
7869
+ def _typecheckingstub__46f2fcadfd6cf356e80e3b58b0b02c7c119bd9a36d7ac33ac0ee324f887c1307(
7870
+ *,
7871
+ rule_options: typing.Optional[typing.Sequence[builtins.str]] = None,
7872
+ ) -> None:
7873
+ """Type checking stubs"""
7874
+ pass
7875
+
7521
7876
  def _typecheckingstub__775fa1817d39168a6b1883b9e449352da902edc72fb398c55cda18aa8ead3039(
7522
7877
  *,
7523
7878
  flags: typing.Sequence[builtins.str],
@@ -7533,6 +7888,7 @@ def _typecheckingstub__775b93be404fbe10bf6b023b8192636307852f30e49da9892d7e20aa4
7533
7888
  type: builtins.str,
7534
7889
  description: typing.Optional[builtins.str] = None,
7535
7890
  rule_group: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.RuleGroupProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7891
+ summary_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.SummaryConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7536
7892
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
7537
7893
  ) -> None:
7538
7894
  """Type checking stubs"""