aws-cdk-lib 2.202.0__py3-none-any.whl → 2.203.1__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 (62) hide show
  1. aws_cdk/__init__.py +46 -47
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.202.0.jsii.tgz → aws-cdk-lib@2.203.1.jsii.tgz} +0 -0
  4. aws_cdk/aws_accessanalyzer/__init__.py +310 -4
  5. aws_cdk/aws_aiops/__init__.py +964 -0
  6. aws_cdk/aws_amplify/__init__.py +127 -0
  7. aws_cdk/aws_arczonalshift/__init__.py +8 -8
  8. aws_cdk/aws_b2bi/__init__.py +782 -3
  9. aws_cdk/aws_backup/__init__.py +22 -0
  10. aws_cdk/aws_batch/__init__.py +53 -1
  11. aws_cdk/aws_bedrock/__init__.py +123 -9
  12. aws_cdk/aws_cleanrooms/__init__.py +157 -154
  13. aws_cdk/aws_cloudformation/__init__.py +28 -28
  14. aws_cdk/aws_cloudfront/__init__.py +61 -18
  15. aws_cdk/aws_cloudfront/experimental/__init__.py +37 -3
  16. aws_cdk/aws_cloudwatch/__init__.py +228 -2
  17. aws_cdk/aws_connect/__init__.py +120 -8
  18. aws_cdk/aws_connectcampaignsv2/__init__.py +25 -4
  19. aws_cdk/aws_customerprofiles/__init__.py +140 -20
  20. aws_cdk/aws_datazone/__init__.py +23 -4
  21. aws_cdk/aws_deadline/__init__.py +4 -4
  22. aws_cdk/aws_dsql/__init__.py +148 -0
  23. aws_cdk/aws_ec2/__init__.py +159 -7
  24. aws_cdk/aws_ecr/__init__.py +3 -3
  25. aws_cdk/aws_ecs/__init__.py +48 -13
  26. aws_cdk/aws_elasticloadbalancingv2/__init__.py +4 -2
  27. aws_cdk/aws_emrserverless/__init__.py +118 -0
  28. aws_cdk/aws_fsx/__init__.py +891 -0
  29. aws_cdk/aws_iam/__init__.py +8 -8
  30. aws_cdk/aws_inspectorv2/__init__.py +442 -3
  31. aws_cdk/aws_kendra/__init__.py +10 -5
  32. aws_cdk/aws_kms/__init__.py +14 -8
  33. aws_cdk/aws_lambda/__init__.py +191 -24
  34. aws_cdk/aws_lambda_nodejs/__init__.py +37 -3
  35. aws_cdk/aws_lex/__init__.py +703 -0
  36. aws_cdk/aws_logs/__init__.py +144 -0
  37. aws_cdk/aws_mediatailor/__init__.py +399 -0
  38. aws_cdk/aws_mpa/__init__.py +1475 -0
  39. aws_cdk/aws_networkfirewall/__init__.py +4 -2
  40. aws_cdk/aws_networkmanager/__init__.py +51 -3
  41. aws_cdk/aws_opsworkscm/__init__.py +44 -2
  42. aws_cdk/aws_rds/__init__.py +171 -41
  43. aws_cdk/aws_redshiftserverless/__init__.py +632 -0
  44. aws_cdk/aws_route53resolver/__init__.py +58 -10
  45. aws_cdk/aws_s3/__init__.py +3 -1
  46. aws_cdk/aws_s3tables/__init__.py +230 -0
  47. aws_cdk/aws_sagemaker/__init__.py +6 -2
  48. aws_cdk/aws_securityhub/__init__.py +2887 -56
  49. aws_cdk/aws_synthetics/__init__.py +21 -0
  50. aws_cdk/aws_vpclattice/__init__.py +6 -4
  51. aws_cdk/aws_wafv2/__init__.py +156 -51
  52. aws_cdk/aws_workspacesinstances/__init__.py +3243 -0
  53. aws_cdk/cloud_assembly_schema/__init__.py +200 -4
  54. aws_cdk/cx_api/__init__.py +15 -14
  55. aws_cdk/pipelines/__init__.py +31 -3
  56. aws_cdk/triggers/__init__.py +41 -4
  57. {aws_cdk_lib-2.202.0.dist-info → aws_cdk_lib-2.203.1.dist-info}/METADATA +3 -3
  58. {aws_cdk_lib-2.202.0.dist-info → aws_cdk_lib-2.203.1.dist-info}/RECORD +62 -59
  59. {aws_cdk_lib-2.202.0.dist-info → aws_cdk_lib-2.203.1.dist-info}/LICENSE +0 -0
  60. {aws_cdk_lib-2.202.0.dist-info → aws_cdk_lib-2.203.1.dist-info}/NOTICE +0 -0
  61. {aws_cdk_lib-2.202.0.dist-info → aws_cdk_lib-2.203.1.dist-info}/WHEEL +0 -0
  62. {aws_cdk_lib-2.202.0.dist-info → aws_cdk_lib-2.203.1.dist-info}/top_level.txt +0 -0
@@ -69,6 +69,262 @@ from .. import (
69
69
  )
70
70
 
71
71
 
72
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
73
+ class CfnAggregatorV2(
74
+ _CfnResource_9df397a6,
75
+ metaclass=jsii.JSIIMeta,
76
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAggregatorV2",
77
+ ):
78
+ '''Enables aggregation across AWS Regions .
79
+
80
+ This API is in private preview and subject to change.
81
+
82
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-aggregatorv2.html
83
+ :cloudformationResource: AWS::SecurityHub::AggregatorV2
84
+ :exampleMetadata: fixture=_generated
85
+
86
+ Example::
87
+
88
+ # The code below shows an example of how to instantiate this type.
89
+ # The values are placeholders you should change.
90
+ from aws_cdk import aws_securityhub as securityhub
91
+
92
+ cfn_aggregator_v2 = securityhub.CfnAggregatorV2(self, "MyCfnAggregatorV2",
93
+ linked_regions=["linkedRegions"],
94
+ region_linking_mode="regionLinkingMode",
95
+
96
+ # the properties below are optional
97
+ tags={
98
+ "tags_key": "tags"
99
+ }
100
+ )
101
+ '''
102
+
103
+ def __init__(
104
+ self,
105
+ scope: _constructs_77d1e7e8.Construct,
106
+ id: builtins.str,
107
+ *,
108
+ linked_regions: typing.Sequence[builtins.str],
109
+ region_linking_mode: builtins.str,
110
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
111
+ ) -> None:
112
+ '''
113
+ :param scope: Scope in which this resource is defined.
114
+ :param id: Construct identifier for this resource (unique in its scope).
115
+ :param linked_regions: The list of Regions that are linked to the aggregation Region.
116
+ :param region_linking_mode: Determines how Regions are linked to an Aggregator V2.
117
+ :param tags: A list of key-value pairs to be applied to the AggregatorV2.
118
+ '''
119
+ if __debug__:
120
+ type_hints = typing.get_type_hints(_typecheckingstub__a48a2a082be753c7ff9a23ae8720fc6090537bc7754b3949c569c91cc2d97185)
121
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
122
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
123
+ props = CfnAggregatorV2Props(
124
+ linked_regions=linked_regions,
125
+ region_linking_mode=region_linking_mode,
126
+ tags=tags,
127
+ )
128
+
129
+ jsii.create(self.__class__, self, [scope, id, props])
130
+
131
+ @jsii.member(jsii_name="inspect")
132
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
133
+ '''Examines the CloudFormation resource and discloses attributes.
134
+
135
+ :param inspector: tree inspector to collect and process attributes.
136
+ '''
137
+ if __debug__:
138
+ type_hints = typing.get_type_hints(_typecheckingstub__faa540694e43a0e61feeb3f53848b1f6e9494b6ed7da21b25aac134881132c39)
139
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
140
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
141
+
142
+ @jsii.member(jsii_name="renderProperties")
143
+ def _render_properties(
144
+ self,
145
+ props: typing.Mapping[builtins.str, typing.Any],
146
+ ) -> typing.Mapping[builtins.str, typing.Any]:
147
+ '''
148
+ :param props: -
149
+ '''
150
+ if __debug__:
151
+ type_hints = typing.get_type_hints(_typecheckingstub__e6872b5e370c8e8f4d83602fa651c03fde81b36e7c5bc3b28fa097f66a87ee66)
152
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
153
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
154
+
155
+ @jsii.python.classproperty
156
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
157
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
158
+ '''The CloudFormation resource type name for this resource class.'''
159
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
160
+
161
+ @builtins.property
162
+ @jsii.member(jsii_name="attrAggregationRegion")
163
+ def attr_aggregation_region(self) -> builtins.str:
164
+ '''The AWS Region where data is aggregated.
165
+
166
+ :cloudformationAttribute: AggregationRegion
167
+ '''
168
+ return typing.cast(builtins.str, jsii.get(self, "attrAggregationRegion"))
169
+
170
+ @builtins.property
171
+ @jsii.member(jsii_name="attrAggregatorV2Arn")
172
+ def attr_aggregator_v2_arn(self) -> builtins.str:
173
+ '''The ARN of the AggregatorV2.
174
+
175
+ :cloudformationAttribute: AggregatorV2Arn
176
+ '''
177
+ return typing.cast(builtins.str, jsii.get(self, "attrAggregatorV2Arn"))
178
+
179
+ @builtins.property
180
+ @jsii.member(jsii_name="cdkTagManager")
181
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
182
+ '''Tag Manager which manages the tags for this resource.'''
183
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
184
+
185
+ @builtins.property
186
+ @jsii.member(jsii_name="cfnProperties")
187
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
188
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
189
+
190
+ @builtins.property
191
+ @jsii.member(jsii_name="linkedRegions")
192
+ def linked_regions(self) -> typing.List[builtins.str]:
193
+ '''The list of Regions that are linked to the aggregation Region.'''
194
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "linkedRegions"))
195
+
196
+ @linked_regions.setter
197
+ def linked_regions(self, value: typing.List[builtins.str]) -> None:
198
+ if __debug__:
199
+ type_hints = typing.get_type_hints(_typecheckingstub__73719aabf2def1251bbcce62564af2561a7db568f2cc383d665c93c84e03855c)
200
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
201
+ jsii.set(self, "linkedRegions", value) # pyright: ignore[reportArgumentType]
202
+
203
+ @builtins.property
204
+ @jsii.member(jsii_name="regionLinkingMode")
205
+ def region_linking_mode(self) -> builtins.str:
206
+ '''Determines how Regions are linked to an Aggregator V2.'''
207
+ return typing.cast(builtins.str, jsii.get(self, "regionLinkingMode"))
208
+
209
+ @region_linking_mode.setter
210
+ def region_linking_mode(self, value: builtins.str) -> None:
211
+ if __debug__:
212
+ type_hints = typing.get_type_hints(_typecheckingstub__3f12f6fa7491c9cf6429ed03592fa2e0b84dd1df61b65fe9caf3ffa327ed324f)
213
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
214
+ jsii.set(self, "regionLinkingMode", value) # pyright: ignore[reportArgumentType]
215
+
216
+ @builtins.property
217
+ @jsii.member(jsii_name="tags")
218
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
219
+ '''A list of key-value pairs to be applied to the AggregatorV2.'''
220
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], jsii.get(self, "tags"))
221
+
222
+ @tags.setter
223
+ def tags(
224
+ self,
225
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
226
+ ) -> None:
227
+ if __debug__:
228
+ type_hints = typing.get_type_hints(_typecheckingstub__e47a206d80ca672182e6fba3a9c614bda1d391a22aa37078d5b442ce9858a656)
229
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
230
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
231
+
232
+
233
+ @jsii.data_type(
234
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAggregatorV2Props",
235
+ jsii_struct_bases=[],
236
+ name_mapping={
237
+ "linked_regions": "linkedRegions",
238
+ "region_linking_mode": "regionLinkingMode",
239
+ "tags": "tags",
240
+ },
241
+ )
242
+ class CfnAggregatorV2Props:
243
+ def __init__(
244
+ self,
245
+ *,
246
+ linked_regions: typing.Sequence[builtins.str],
247
+ region_linking_mode: builtins.str,
248
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
249
+ ) -> None:
250
+ '''Properties for defining a ``CfnAggregatorV2``.
251
+
252
+ :param linked_regions: The list of Regions that are linked to the aggregation Region.
253
+ :param region_linking_mode: Determines how Regions are linked to an Aggregator V2.
254
+ :param tags: A list of key-value pairs to be applied to the AggregatorV2.
255
+
256
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-aggregatorv2.html
257
+ :exampleMetadata: fixture=_generated
258
+
259
+ Example::
260
+
261
+ # The code below shows an example of how to instantiate this type.
262
+ # The values are placeholders you should change.
263
+ from aws_cdk import aws_securityhub as securityhub
264
+
265
+ cfn_aggregator_v2_props = securityhub.CfnAggregatorV2Props(
266
+ linked_regions=["linkedRegions"],
267
+ region_linking_mode="regionLinkingMode",
268
+
269
+ # the properties below are optional
270
+ tags={
271
+ "tags_key": "tags"
272
+ }
273
+ )
274
+ '''
275
+ if __debug__:
276
+ type_hints = typing.get_type_hints(_typecheckingstub__ba603e1d6925ab7babf45e555f2f6c66e3573a9e5841cd7b5ebf0d444664667e)
277
+ check_type(argname="argument linked_regions", value=linked_regions, expected_type=type_hints["linked_regions"])
278
+ check_type(argname="argument region_linking_mode", value=region_linking_mode, expected_type=type_hints["region_linking_mode"])
279
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
280
+ self._values: typing.Dict[builtins.str, typing.Any] = {
281
+ "linked_regions": linked_regions,
282
+ "region_linking_mode": region_linking_mode,
283
+ }
284
+ if tags is not None:
285
+ self._values["tags"] = tags
286
+
287
+ @builtins.property
288
+ def linked_regions(self) -> typing.List[builtins.str]:
289
+ '''The list of Regions that are linked to the aggregation Region.
290
+
291
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-aggregatorv2.html#cfn-securityhub-aggregatorv2-linkedregions
292
+ '''
293
+ result = self._values.get("linked_regions")
294
+ assert result is not None, "Required property 'linked_regions' is missing"
295
+ return typing.cast(typing.List[builtins.str], result)
296
+
297
+ @builtins.property
298
+ def region_linking_mode(self) -> builtins.str:
299
+ '''Determines how Regions are linked to an Aggregator V2.
300
+
301
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-aggregatorv2.html#cfn-securityhub-aggregatorv2-regionlinkingmode
302
+ '''
303
+ result = self._values.get("region_linking_mode")
304
+ assert result is not None, "Required property 'region_linking_mode' is missing"
305
+ return typing.cast(builtins.str, result)
306
+
307
+ @builtins.property
308
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
309
+ '''A list of key-value pairs to be applied to the AggregatorV2.
310
+
311
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-aggregatorv2.html#cfn-securityhub-aggregatorv2-tags
312
+ '''
313
+ result = self._values.get("tags")
314
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
315
+
316
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
317
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
318
+
319
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
320
+ return not (rhs == self)
321
+
322
+ def __repr__(self) -> str:
323
+ return "CfnAggregatorV2Props(%s)" % ", ".join(
324
+ k + "=" + repr(v) for k, v in self._values.items()
325
+ )
326
+
327
+
72
328
  @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
73
329
  class CfnAutomationRule(
74
330
  _CfnResource_9df397a6,
@@ -2352,7 +2608,7 @@ class CfnAutomationRule(
2352
2608
  def __init__(self, *, comparison: builtins.str, value: builtins.str) -> None:
2353
2609
  '''A string filter for filtering AWS Security Hub findings.
2354
2610
 
2355
- :param comparison: The condition to apply to a string value when filtering Security Hub findings. To search for values that have the filter value, use one of the following comparison operators: - To search for values that include the filter value, use ``CONTAINS`` . For example, the filter ``Title CONTAINS CloudFront`` matches findings that have a ``Title`` that includes the string CloudFront. - To search for values that exactly match the filter value, use ``EQUALS`` . For example, the filter ``AwsAccountId EQUALS 123456789012`` only matches findings that have an account ID of ``123456789012`` . - To search for values that start with the filter value, use ``PREFIX`` . For example, the filter ``ResourceRegion PREFIX us`` matches findings that have a ``ResourceRegion`` that starts with ``us`` . A ``ResourceRegion`` that starts with a different value, such as ``af`` , ``ap`` , or ``ca`` , doesn't match. ``CONTAINS`` , ``EQUALS`` , and ``PREFIX`` filters on the same field are joined by ``OR`` . A finding matches if it matches any one of those filters. For example, the filters ``Title CONTAINS CloudFront OR Title CONTAINS CloudWatch`` match a finding that includes either ``CloudFront`` , ``CloudWatch`` , or both strings in the title. To search for values that don’t have the filter value, use one of the following comparison operators: - To search for values that exclude the filter value, use ``NOT_CONTAINS`` . For example, the filter ``Title NOT_CONTAINS CloudFront`` matches findings that have a ``Title`` that excludes the string CloudFront. - To search for values other than the filter value, use ``NOT_EQUALS`` . For example, the filter ``AwsAccountId NOT_EQUALS 123456789012`` only matches findings that have an account ID other than ``123456789012`` . - To search for values that don't start with the filter value, use ``PREFIX_NOT_EQUALS`` . For example, the filter ``ResourceRegion PREFIX_NOT_EQUALS us`` matches findings with a ``ResourceRegion`` that starts with a value other than ``us`` . ``NOT_CONTAINS`` , ``NOT_EQUALS`` , and ``PREFIX_NOT_EQUALS`` filters on the same field are joined by ``AND`` . A finding matches only if it matches all of those filters. For example, the filters ``Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch`` match a finding that excludes both ``CloudFront`` and ``CloudWatch`` in the title. You can’t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can't provide both an ``EQUALS`` filter and a ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters. You can combine ``PREFIX`` filters with ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters for the same field. Security Hub first processes the ``PREFIX`` filters, and then the ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters. For example, for the following filters, Security Hub first identifies findings that have resource types that start with either ``AwsIam`` or ``AwsEc2`` . It then excludes findings that have a resource type of ``AwsIamPolicy`` and findings that have a resource type of ``AwsEc2NetworkInterface`` . - ``ResourceType PREFIX AwsIam`` - ``ResourceType PREFIX AwsEc2`` - ``ResourceType NOT_EQUALS AwsIamPolicy`` - ``ResourceType NOT_EQUALS AwsEc2NetworkInterface`` ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules. For more information, see `Automation rules <https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html>`_ in the *AWS Security Hub User Guide* .
2611
+ :param comparison: The condition to apply to a string value when filtering Security Hub findings. To search for values that have the filter value, use one of the following comparison operators: - To search for values that include the filter value, use ``CONTAINS`` . For example, the filter ``Title CONTAINS CloudFront`` matches findings that have a ``Title`` that includes the string CloudFront. - To search for values that exactly match the filter value, use ``EQUALS`` . For example, the filter ``AwsAccountId EQUALS 123456789012`` only matches findings that have an account ID of ``123456789012`` . - To search for values that start with the filter value, use ``PREFIX`` . For example, the filter ``ResourceRegion PREFIX us`` matches findings that have a ``ResourceRegion`` that starts with ``us`` . A ``ResourceRegion`` that starts with a different value, such as ``af`` , ``ap`` , or ``ca`` , doesn't match. ``CONTAINS`` , ``EQUALS`` , and ``PREFIX`` filters on the same field are joined by ``OR`` . A finding matches if it matches any one of those filters. For example, the filters ``Title CONTAINS CloudFront OR Title CONTAINS CloudWatch`` match a finding that includes either ``CloudFront`` , ``CloudWatch`` , or both strings in the title. To search for values that don’t have the filter value, use one of the following comparison operators: - To search for values that exclude the filter value, use ``NOT_CONTAINS`` . For example, the filter ``Title NOT_CONTAINS CloudFront`` matches findings that have a ``Title`` that excludes the string CloudFront. - To search for values other than the filter value, use ``NOT_EQUALS`` . For example, the filter ``AwsAccountId NOT_EQUALS 123456789012`` only matches findings that have an account ID other than ``123456789012`` . - To search for values that don't start with the filter value, use ``PREFIX_NOT_EQUALS`` . For example, the filter ``ResourceRegion PREFIX_NOT_EQUALS us`` matches findings with a ``ResourceRegion`` that starts with a value other than ``us`` . ``NOT_CONTAINS`` , ``NOT_EQUALS`` , and ``PREFIX_NOT_EQUALS`` filters on the same field are joined by ``AND`` . A finding matches only if it matches all of those filters. For example, the filters ``Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch`` match a finding that excludes both ``CloudFront`` and ``CloudWatch`` in the title. You can’t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can't provide both an ``EQUALS`` filter and a ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters. You can combine ``PREFIX`` filters with ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters for the same field. Security Hub first processes the ``PREFIX`` filters, and then the ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters. For example, for the following filters, Security Hub first identifies findings that have resource types that start with either ``AwsIam`` or ``AwsEc2`` . It then excludes findings that have a resource type of ``AwsIamPolicy`` and findings that have a resource type of ``AwsEc2NetworkInterface`` . - ``ResourceType PREFIX AwsIam`` - ``ResourceType PREFIX AwsEc2`` - ``ResourceType NOT_EQUALS AwsIamPolicy`` - ``ResourceType NOT_EQUALS AwsEc2NetworkInterface`` ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules V1. ``CONTAINS_WORD`` operator is only supported in ``GetFindingsV2`` , ``GetFindingStatisticsV2`` , ``GetResourcesV2`` , and ``GetResourceStatisticsV2`` APIs. For more information, see `Automation rules <https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html>`_ in the *AWS Security Hub User Guide* .
2356
2612
  :param value: The string filter value. Filter values are case sensitive. For example, the product name for control-based findings is ``Security Hub`` . If you provide ``security hub`` as the filter value, there's no match.
2357
2613
 
2358
2614
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrule-stringfilter.html
@@ -2409,7 +2665,7 @@ class CfnAutomationRule(
2409
2665
  - ``ResourceType NOT_EQUALS AwsIamPolicy``
2410
2666
  - ``ResourceType NOT_EQUALS AwsEc2NetworkInterface``
2411
2667
 
2412
- ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules. For more information, see `Automation rules <https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html>`_ in the *AWS Security Hub User Guide* .
2668
+ ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules V1. ``CONTAINS_WORD`` operator is only supported in ``GetFindingsV2`` , ``GetFindingStatisticsV2`` , ``GetResourcesV2`` , and ``GetResourceStatisticsV2`` APIs. For more information, see `Automation rules <https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html>`_ in the *AWS Security Hub User Guide* .
2413
2669
 
2414
2670
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrule-stringfilter.html#cfn-securityhub-automationrule-stringfilter-comparison
2415
2671
  '''
@@ -2888,17 +3144,17 @@ class CfnAutomationRuleProps:
2888
3144
 
2889
3145
 
2890
3146
  @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
2891
- class CfnConfigurationPolicy(
3147
+ class CfnAutomationRuleV2(
2892
3148
  _CfnResource_9df397a6,
2893
3149
  metaclass=jsii.JSIIMeta,
2894
- jsii_type="aws-cdk-lib.aws_securityhub.CfnConfigurationPolicy",
3150
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2",
2895
3151
  ):
2896
- '''The ``AWS::SecurityHub::ConfigurationPolicy`` resource creates a central configuration policy with the defined settings.
3152
+ '''Creates a V2 automation rule.
2897
3153
 
2898
- Only the AWS Security Hub delegated administrator can create this resource in the home Region. For more information, see `Central configuration in Security Hub <https://docs.aws.amazon.com/securityhub/latest/userguide/central-configuration-intro.html>`_ in the *AWS Security Hub User Guide* .
3154
+ This API is in private preview and subject to change.
2899
3155
 
2900
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-configurationpolicy.html
2901
- :cloudformationResource: AWS::SecurityHub::ConfigurationPolicy
3156
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrulev2.html
3157
+ :cloudformationResource: AWS::SecurityHub::AutomationRuleV2
2902
3158
  :exampleMetadata: fixture=_generated
2903
3159
 
2904
3160
  Example::
@@ -2907,41 +3163,74 @@ class CfnConfigurationPolicy(
2907
3163
  # The values are placeholders you should change.
2908
3164
  from aws_cdk import aws_securityhub as securityhub
2909
3165
 
2910
- cfn_configuration_policy = securityhub.CfnConfigurationPolicy(self, "MyCfnConfigurationPolicy",
2911
- configuration_policy=securityhub.CfnConfigurationPolicy.PolicyProperty(
2912
- security_hub=securityhub.CfnConfigurationPolicy.SecurityHubPolicyProperty(
2913
- enabled_standard_identifiers=["enabledStandardIdentifiers"],
2914
- security_controls_configuration=securityhub.CfnConfigurationPolicy.SecurityControlsConfigurationProperty(
2915
- disabled_security_control_identifiers=["disabledSecurityControlIdentifiers"],
2916
- enabled_security_control_identifiers=["enabledSecurityControlIdentifiers"],
2917
- security_control_custom_parameters=[securityhub.CfnConfigurationPolicy.SecurityControlCustomParameterProperty(
2918
- parameters={
2919
- "parameters_key": securityhub.CfnConfigurationPolicy.ParameterConfigurationProperty(
2920
- value_type="valueType",
3166
+ cfn_automation_rule_v2 = securityhub.CfnAutomationRuleV2(self, "MyCfnAutomationRuleV2",
3167
+ actions=[securityhub.CfnAutomationRuleV2.AutomationRulesActionV2Property(
3168
+ type="type",
2921
3169
 
2922
- # the properties below are optional
2923
- value=securityhub.CfnConfigurationPolicy.ParameterValueProperty(
2924
- boolean=False,
2925
- double=123,
2926
- enum="enum",
2927
- enum_list=["enumList"],
2928
- integer=123,
2929
- integer_list=[123],
2930
- string="string",
2931
- string_list=["stringList"]
2932
- )
2933
- )
2934
- },
2935
- security_control_id="securityControlId"
3170
+ # the properties below are optional
3171
+ external_integration_configuration=securityhub.CfnAutomationRuleV2.ExternalIntegrationConfigurationProperty(
3172
+ connector_arn="connectorArn"
3173
+ ),
3174
+ finding_fields_update=securityhub.CfnAutomationRuleV2.AutomationRulesFindingFieldsUpdateV2Property(
3175
+ comment="comment",
3176
+ severity_id=123,
3177
+ status_id=123
3178
+ )
3179
+ )],
3180
+ criteria=securityhub.CfnAutomationRuleV2.CriteriaProperty(
3181
+ ocsf_finding_criteria=securityhub.CfnAutomationRuleV2.OcsfFindingFiltersProperty(
3182
+ composite_filters=[securityhub.CfnAutomationRuleV2.CompositeFilterProperty(
3183
+ boolean_filters=[securityhub.CfnAutomationRuleV2.OcsfBooleanFilterProperty(
3184
+ field_name="fieldName",
3185
+ filter=securityhub.CfnAutomationRuleV2.BooleanFilterProperty(
3186
+ value=False
3187
+ )
3188
+ )],
3189
+ date_filters=[securityhub.CfnAutomationRuleV2.OcsfDateFilterProperty(
3190
+ field_name="fieldName",
3191
+ filter=securityhub.CfnAutomationRuleV2.DateFilterProperty(
3192
+ date_range=securityhub.CfnAutomationRuleV2.DateRangeProperty(
3193
+ unit="unit",
3194
+ value=123
3195
+ ),
3196
+ end="end",
3197
+ start="start"
3198
+ )
3199
+ )],
3200
+ map_filters=[securityhub.CfnAutomationRuleV2.OcsfMapFilterProperty(
3201
+ field_name="fieldName",
3202
+ filter=securityhub.CfnAutomationRuleV2.MapFilterProperty(
3203
+ comparison="comparison",
3204
+ key="key",
3205
+ value="value"
3206
+ )
3207
+ )],
3208
+ number_filters=[securityhub.CfnAutomationRuleV2.OcsfNumberFilterProperty(
3209
+ field_name="fieldName",
3210
+ filter=securityhub.CfnAutomationRuleV2.NumberFilterProperty(
3211
+ eq=123,
3212
+ gte=123,
3213
+ lte=123
3214
+ )
3215
+ )],
3216
+ operator="operator",
3217
+ string_filters=[securityhub.CfnAutomationRuleV2.OcsfStringFilterProperty(
3218
+ field_name="fieldName",
3219
+ filter=securityhub.CfnAutomationRuleV2.StringFilterProperty(
3220
+ comparison="comparison",
3221
+ value="value"
3222
+ )
2936
3223
  )]
2937
- ),
2938
- service_enabled=False
3224
+ )],
3225
+ composite_operator="compositeOperator"
2939
3226
  )
2940
3227
  ),
2941
- name="name",
3228
+ description="description",
3229
+ rule_name="ruleName",
3230
+ rule_order=123,
2942
3231
 
2943
3232
  # the properties below are optional
2944
- description="description",
3233
+ rule_status="ruleStatus",
2945
3234
  tags={
2946
3235
  "tags_key": "tags"
2947
3236
  }
@@ -2953,21 +3242,2068 @@ class CfnConfigurationPolicy(
2953
3242
  scope: _constructs_77d1e7e8.Construct,
2954
3243
  id: builtins.str,
2955
3244
  *,
2956
- configuration_policy: typing.Union[_IResolvable_da3f097b, typing.Union["CfnConfigurationPolicy.PolicyProperty", typing.Dict[builtins.str, typing.Any]]],
2957
- name: builtins.str,
2958
- description: typing.Optional[builtins.str] = None,
3245
+ actions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.AutomationRulesActionV2Property", typing.Dict[builtins.str, typing.Any]]]]],
3246
+ criteria: typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.CriteriaProperty", typing.Dict[builtins.str, typing.Any]]],
3247
+ description: builtins.str,
3248
+ rule_name: builtins.str,
3249
+ rule_order: jsii.Number,
3250
+ rule_status: typing.Optional[builtins.str] = None,
2959
3251
  tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2960
3252
  ) -> None:
2961
3253
  '''
2962
3254
  :param scope: Scope in which this resource is defined.
2963
3255
  :param id: Construct identifier for this resource (unique in its scope).
2964
- :param configuration_policy: An object that defines how AWS Security Hub is configured. It includes whether Security Hub is enabled or disabled, a list of enabled security standards, a list of enabled or disabled security controls, and a list of custom parameter values for specified controls. If you provide a list of security controls that are enabled in the configuration policy, Security Hub disables all other controls (including newly released controls). If you provide a list of security controls that are disabled in the configuration policy, Security Hub enables all other controls (including newly released controls).
2965
- :param name: The name of the configuration policy. Alphanumeric characters and the following ASCII characters are permitted: ``-, ., !, *, /`` .
2966
- :param description: The description of the configuration policy.
2967
- :param tags: User-defined tags associated with a configuration policy. For more information, see `Tagging AWS Security Hub resources <https://docs.aws.amazon.com/securityhub/latest/userguide/tagging-resources.html>`_ in the *Security Hub user guide* .
3256
+ :param actions: A list of actions to be performed when the rule criteria is met.
3257
+ :param criteria: The filtering type and configuration of the automation rule.
3258
+ :param description: A description of the V2 automation rule.
3259
+ :param rule_name: The name of the V2 automation rule.
3260
+ :param rule_order: The value for the rule priority.
3261
+ :param rule_status: The status of the V2 automation rule.
3262
+ :param tags: A list of key-value pairs associated with the V2 automation rule.
2968
3263
  '''
2969
3264
  if __debug__:
2970
- type_hints = typing.get_type_hints(_typecheckingstub__e2cee5cf3fe5ba0b354ff30ea357f97d4a69893bed692305ae2919f0061404d2)
3265
+ type_hints = typing.get_type_hints(_typecheckingstub__d67bab57d18f8318b1f3e5e5aee0425c6d6ad2a73c3def328f22c6e22aa173d4)
3266
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3267
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3268
+ props = CfnAutomationRuleV2Props(
3269
+ actions=actions,
3270
+ criteria=criteria,
3271
+ description=description,
3272
+ rule_name=rule_name,
3273
+ rule_order=rule_order,
3274
+ rule_status=rule_status,
3275
+ tags=tags,
3276
+ )
3277
+
3278
+ jsii.create(self.__class__, self, [scope, id, props])
3279
+
3280
+ @jsii.member(jsii_name="inspect")
3281
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
3282
+ '''Examines the CloudFormation resource and discloses attributes.
3283
+
3284
+ :param inspector: tree inspector to collect and process attributes.
3285
+ '''
3286
+ if __debug__:
3287
+ type_hints = typing.get_type_hints(_typecheckingstub__148b5ad52f495a944fc188c33e9ce4790af9aae05ed5382a214fb325dffaf8bb)
3288
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
3289
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
3290
+
3291
+ @jsii.member(jsii_name="renderProperties")
3292
+ def _render_properties(
3293
+ self,
3294
+ props: typing.Mapping[builtins.str, typing.Any],
3295
+ ) -> typing.Mapping[builtins.str, typing.Any]:
3296
+ '''
3297
+ :param props: -
3298
+ '''
3299
+ if __debug__:
3300
+ type_hints = typing.get_type_hints(_typecheckingstub__2f9d1f99336eb3a75c15b25a178234de86a8bfdf4875bf0ce1cd38b114f64593)
3301
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
3302
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
3303
+
3304
+ @jsii.python.classproperty
3305
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
3306
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
3307
+ '''The CloudFormation resource type name for this resource class.'''
3308
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
3309
+
3310
+ @builtins.property
3311
+ @jsii.member(jsii_name="attrCreatedAt")
3312
+ def attr_created_at(self) -> builtins.str:
3313
+ '''The timestamp when the V2 automation rule was created.
3314
+
3315
+ :cloudformationAttribute: CreatedAt
3316
+ '''
3317
+ return typing.cast(builtins.str, jsii.get(self, "attrCreatedAt"))
3318
+
3319
+ @builtins.property
3320
+ @jsii.member(jsii_name="attrRuleArn")
3321
+ def attr_rule_arn(self) -> builtins.str:
3322
+ '''The ARN of the V2 automation rule.
3323
+
3324
+ :cloudformationAttribute: RuleArn
3325
+ '''
3326
+ return typing.cast(builtins.str, jsii.get(self, "attrRuleArn"))
3327
+
3328
+ @builtins.property
3329
+ @jsii.member(jsii_name="attrRuleId")
3330
+ def attr_rule_id(self) -> builtins.str:
3331
+ '''The ID of the V2 automation rule.
3332
+
3333
+ :cloudformationAttribute: RuleId
3334
+ '''
3335
+ return typing.cast(builtins.str, jsii.get(self, "attrRuleId"))
3336
+
3337
+ @builtins.property
3338
+ @jsii.member(jsii_name="attrUpdatedAt")
3339
+ def attr_updated_at(self) -> builtins.str:
3340
+ '''The timestamp when the V2 automation rule was updated.
3341
+
3342
+ :cloudformationAttribute: UpdatedAt
3343
+ '''
3344
+ return typing.cast(builtins.str, jsii.get(self, "attrUpdatedAt"))
3345
+
3346
+ @builtins.property
3347
+ @jsii.member(jsii_name="cdkTagManager")
3348
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
3349
+ '''Tag Manager which manages the tags for this resource.'''
3350
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
3351
+
3352
+ @builtins.property
3353
+ @jsii.member(jsii_name="cfnProperties")
3354
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3355
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3356
+
3357
+ @builtins.property
3358
+ @jsii.member(jsii_name="actions")
3359
+ def actions(
3360
+ self,
3361
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.AutomationRulesActionV2Property"]]]:
3362
+ '''A list of actions to be performed when the rule criteria is met.'''
3363
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.AutomationRulesActionV2Property"]]], jsii.get(self, "actions"))
3364
+
3365
+ @actions.setter
3366
+ def actions(
3367
+ self,
3368
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.AutomationRulesActionV2Property"]]],
3369
+ ) -> None:
3370
+ if __debug__:
3371
+ type_hints = typing.get_type_hints(_typecheckingstub__6347d27f0ba2cf053f67fe33ad975271c9a681e994a3d68259bee4b4cecff923)
3372
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3373
+ jsii.set(self, "actions", value) # pyright: ignore[reportArgumentType]
3374
+
3375
+ @builtins.property
3376
+ @jsii.member(jsii_name="criteria")
3377
+ def criteria(
3378
+ self,
3379
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.CriteriaProperty"]:
3380
+ '''The filtering type and configuration of the automation rule.'''
3381
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.CriteriaProperty"], jsii.get(self, "criteria"))
3382
+
3383
+ @criteria.setter
3384
+ def criteria(
3385
+ self,
3386
+ value: typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.CriteriaProperty"],
3387
+ ) -> None:
3388
+ if __debug__:
3389
+ type_hints = typing.get_type_hints(_typecheckingstub__a5adb921eebdd2ef5c8fd115e4be769f443780102c814dd43fe745285e68ab8e)
3390
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3391
+ jsii.set(self, "criteria", value) # pyright: ignore[reportArgumentType]
3392
+
3393
+ @builtins.property
3394
+ @jsii.member(jsii_name="description")
3395
+ def description(self) -> builtins.str:
3396
+ '''A description of the V2 automation rule.'''
3397
+ return typing.cast(builtins.str, jsii.get(self, "description"))
3398
+
3399
+ @description.setter
3400
+ def description(self, value: builtins.str) -> None:
3401
+ if __debug__:
3402
+ type_hints = typing.get_type_hints(_typecheckingstub__125c937bc05766b550dc71a5d1d56e19a69b4ef80f88b4ef38e2e5e003477882)
3403
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3404
+ jsii.set(self, "description", value) # pyright: ignore[reportArgumentType]
3405
+
3406
+ @builtins.property
3407
+ @jsii.member(jsii_name="ruleName")
3408
+ def rule_name(self) -> builtins.str:
3409
+ '''The name of the V2 automation rule.'''
3410
+ return typing.cast(builtins.str, jsii.get(self, "ruleName"))
3411
+
3412
+ @rule_name.setter
3413
+ def rule_name(self, value: builtins.str) -> None:
3414
+ if __debug__:
3415
+ type_hints = typing.get_type_hints(_typecheckingstub__d67119779ecc92e0cdf9224e19bbf9519a8b3464aefe9656b42f750f87734d6a)
3416
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3417
+ jsii.set(self, "ruleName", value) # pyright: ignore[reportArgumentType]
3418
+
3419
+ @builtins.property
3420
+ @jsii.member(jsii_name="ruleOrder")
3421
+ def rule_order(self) -> jsii.Number:
3422
+ '''The value for the rule priority.'''
3423
+ return typing.cast(jsii.Number, jsii.get(self, "ruleOrder"))
3424
+
3425
+ @rule_order.setter
3426
+ def rule_order(self, value: jsii.Number) -> None:
3427
+ if __debug__:
3428
+ type_hints = typing.get_type_hints(_typecheckingstub__0756c118bad7b3ecf44f8e5b333e1b12ae1f8fcc93cfb9994a9b01b1e420c800)
3429
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3430
+ jsii.set(self, "ruleOrder", value) # pyright: ignore[reportArgumentType]
3431
+
3432
+ @builtins.property
3433
+ @jsii.member(jsii_name="ruleStatus")
3434
+ def rule_status(self) -> typing.Optional[builtins.str]:
3435
+ '''The status of the V2 automation rule.'''
3436
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "ruleStatus"))
3437
+
3438
+ @rule_status.setter
3439
+ def rule_status(self, value: typing.Optional[builtins.str]) -> None:
3440
+ if __debug__:
3441
+ type_hints = typing.get_type_hints(_typecheckingstub__9d3ccd09d54183efd7f79c4f4fa028ef4ff9dcf82d873ad68a9b84292b42fca1)
3442
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3443
+ jsii.set(self, "ruleStatus", value) # pyright: ignore[reportArgumentType]
3444
+
3445
+ @builtins.property
3446
+ @jsii.member(jsii_name="tags")
3447
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
3448
+ '''A list of key-value pairs associated with the V2 automation rule.'''
3449
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], jsii.get(self, "tags"))
3450
+
3451
+ @tags.setter
3452
+ def tags(
3453
+ self,
3454
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
3455
+ ) -> None:
3456
+ if __debug__:
3457
+ type_hints = typing.get_type_hints(_typecheckingstub__c4cafeb60a0ac8c7088697f2b7bd61bc6887761dd3405c6d9a418c848d6a35ed)
3458
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3459
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
3460
+
3461
+ @jsii.data_type(
3462
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.AutomationRulesActionV2Property",
3463
+ jsii_struct_bases=[],
3464
+ name_mapping={
3465
+ "type": "type",
3466
+ "external_integration_configuration": "externalIntegrationConfiguration",
3467
+ "finding_fields_update": "findingFieldsUpdate",
3468
+ },
3469
+ )
3470
+ class AutomationRulesActionV2Property:
3471
+ def __init__(
3472
+ self,
3473
+ *,
3474
+ type: builtins.str,
3475
+ external_integration_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.ExternalIntegrationConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3476
+ finding_fields_update: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.AutomationRulesFindingFieldsUpdateV2Property", typing.Dict[builtins.str, typing.Any]]]] = None,
3477
+ ) -> None:
3478
+ '''Allows you to configure automated responses.
3479
+
3480
+ :param type: Specifies the type of action that Security Hub takes when a finding matches the defined criteria of a rule.
3481
+ :param external_integration_configuration: The settings for integrating automation rule actions with external systems or service.
3482
+ :param finding_fields_update: Specifies that the automation rule action is an update to a finding field.
3483
+
3484
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-automationrulesactionv2.html
3485
+ :exampleMetadata: fixture=_generated
3486
+
3487
+ Example::
3488
+
3489
+ # The code below shows an example of how to instantiate this type.
3490
+ # The values are placeholders you should change.
3491
+ from aws_cdk import aws_securityhub as securityhub
3492
+
3493
+ automation_rules_action_v2_property = securityhub.CfnAutomationRuleV2.AutomationRulesActionV2Property(
3494
+ type="type",
3495
+
3496
+ # the properties below are optional
3497
+ external_integration_configuration=securityhub.CfnAutomationRuleV2.ExternalIntegrationConfigurationProperty(
3498
+ connector_arn="connectorArn"
3499
+ ),
3500
+ finding_fields_update=securityhub.CfnAutomationRuleV2.AutomationRulesFindingFieldsUpdateV2Property(
3501
+ comment="comment",
3502
+ severity_id=123,
3503
+ status_id=123
3504
+ )
3505
+ )
3506
+ '''
3507
+ if __debug__:
3508
+ type_hints = typing.get_type_hints(_typecheckingstub__c5861ee659ea2189f4b0d18349855ec99f8b11ef0e6bc925783f2b7a3911d61f)
3509
+ check_type(argname="argument type", value=type, expected_type=type_hints["type"])
3510
+ check_type(argname="argument external_integration_configuration", value=external_integration_configuration, expected_type=type_hints["external_integration_configuration"])
3511
+ check_type(argname="argument finding_fields_update", value=finding_fields_update, expected_type=type_hints["finding_fields_update"])
3512
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3513
+ "type": type,
3514
+ }
3515
+ if external_integration_configuration is not None:
3516
+ self._values["external_integration_configuration"] = external_integration_configuration
3517
+ if finding_fields_update is not None:
3518
+ self._values["finding_fields_update"] = finding_fields_update
3519
+
3520
+ @builtins.property
3521
+ def type(self) -> builtins.str:
3522
+ '''Specifies the type of action that Security Hub takes when a finding matches the defined criteria of a rule.
3523
+
3524
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-automationrulesactionv2.html#cfn-securityhub-automationrulev2-automationrulesactionv2-type
3525
+ '''
3526
+ result = self._values.get("type")
3527
+ assert result is not None, "Required property 'type' is missing"
3528
+ return typing.cast(builtins.str, result)
3529
+
3530
+ @builtins.property
3531
+ def external_integration_configuration(
3532
+ self,
3533
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.ExternalIntegrationConfigurationProperty"]]:
3534
+ '''The settings for integrating automation rule actions with external systems or service.
3535
+
3536
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-automationrulesactionv2.html#cfn-securityhub-automationrulev2-automationrulesactionv2-externalintegrationconfiguration
3537
+ '''
3538
+ result = self._values.get("external_integration_configuration")
3539
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.ExternalIntegrationConfigurationProperty"]], result)
3540
+
3541
+ @builtins.property
3542
+ def finding_fields_update(
3543
+ self,
3544
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.AutomationRulesFindingFieldsUpdateV2Property"]]:
3545
+ '''Specifies that the automation rule action is an update to a finding field.
3546
+
3547
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-automationrulesactionv2.html#cfn-securityhub-automationrulev2-automationrulesactionv2-findingfieldsupdate
3548
+ '''
3549
+ result = self._values.get("finding_fields_update")
3550
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.AutomationRulesFindingFieldsUpdateV2Property"]], result)
3551
+
3552
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3553
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3554
+
3555
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3556
+ return not (rhs == self)
3557
+
3558
+ def __repr__(self) -> str:
3559
+ return "AutomationRulesActionV2Property(%s)" % ", ".join(
3560
+ k + "=" + repr(v) for k, v in self._values.items()
3561
+ )
3562
+
3563
+ @jsii.data_type(
3564
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.AutomationRulesFindingFieldsUpdateV2Property",
3565
+ jsii_struct_bases=[],
3566
+ name_mapping={
3567
+ "comment": "comment",
3568
+ "severity_id": "severityId",
3569
+ "status_id": "statusId",
3570
+ },
3571
+ )
3572
+ class AutomationRulesFindingFieldsUpdateV2Property:
3573
+ def __init__(
3574
+ self,
3575
+ *,
3576
+ comment: typing.Optional[builtins.str] = None,
3577
+ severity_id: typing.Optional[jsii.Number] = None,
3578
+ status_id: typing.Optional[jsii.Number] = None,
3579
+ ) -> None:
3580
+ '''Allows you to define the structure for modifying specific fields in security findings.
3581
+
3582
+ :param comment: Notes or contextual information for findings that are modified by the automation rule.
3583
+ :param severity_id: The severity level to be assigned to findings that match the automation rule criteria.
3584
+ :param status_id: The status to be applied to findings that match automation rule criteria.
3585
+
3586
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-automationrulesfindingfieldsupdatev2.html
3587
+ :exampleMetadata: fixture=_generated
3588
+
3589
+ Example::
3590
+
3591
+ # The code below shows an example of how to instantiate this type.
3592
+ # The values are placeholders you should change.
3593
+ from aws_cdk import aws_securityhub as securityhub
3594
+
3595
+ automation_rules_finding_fields_update_v2_property = securityhub.CfnAutomationRuleV2.AutomationRulesFindingFieldsUpdateV2Property(
3596
+ comment="comment",
3597
+ severity_id=123,
3598
+ status_id=123
3599
+ )
3600
+ '''
3601
+ if __debug__:
3602
+ type_hints = typing.get_type_hints(_typecheckingstub__4f90f98d77f04ef40f0534b1d8b8660117e52394e43158b5d7f298d3bc8625cc)
3603
+ check_type(argname="argument comment", value=comment, expected_type=type_hints["comment"])
3604
+ check_type(argname="argument severity_id", value=severity_id, expected_type=type_hints["severity_id"])
3605
+ check_type(argname="argument status_id", value=status_id, expected_type=type_hints["status_id"])
3606
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3607
+ if comment is not None:
3608
+ self._values["comment"] = comment
3609
+ if severity_id is not None:
3610
+ self._values["severity_id"] = severity_id
3611
+ if status_id is not None:
3612
+ self._values["status_id"] = status_id
3613
+
3614
+ @builtins.property
3615
+ def comment(self) -> typing.Optional[builtins.str]:
3616
+ '''Notes or contextual information for findings that are modified by the automation rule.
3617
+
3618
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-automationrulesfindingfieldsupdatev2.html#cfn-securityhub-automationrulev2-automationrulesfindingfieldsupdatev2-comment
3619
+ '''
3620
+ result = self._values.get("comment")
3621
+ return typing.cast(typing.Optional[builtins.str], result)
3622
+
3623
+ @builtins.property
3624
+ def severity_id(self) -> typing.Optional[jsii.Number]:
3625
+ '''The severity level to be assigned to findings that match the automation rule criteria.
3626
+
3627
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-automationrulesfindingfieldsupdatev2.html#cfn-securityhub-automationrulev2-automationrulesfindingfieldsupdatev2-severityid
3628
+ '''
3629
+ result = self._values.get("severity_id")
3630
+ return typing.cast(typing.Optional[jsii.Number], result)
3631
+
3632
+ @builtins.property
3633
+ def status_id(self) -> typing.Optional[jsii.Number]:
3634
+ '''The status to be applied to findings that match automation rule criteria.
3635
+
3636
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-automationrulesfindingfieldsupdatev2.html#cfn-securityhub-automationrulev2-automationrulesfindingfieldsupdatev2-statusid
3637
+ '''
3638
+ result = self._values.get("status_id")
3639
+ return typing.cast(typing.Optional[jsii.Number], result)
3640
+
3641
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3642
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3643
+
3644
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3645
+ return not (rhs == self)
3646
+
3647
+ def __repr__(self) -> str:
3648
+ return "AutomationRulesFindingFieldsUpdateV2Property(%s)" % ", ".join(
3649
+ k + "=" + repr(v) for k, v in self._values.items()
3650
+ )
3651
+
3652
+ @jsii.data_type(
3653
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.BooleanFilterProperty",
3654
+ jsii_struct_bases=[],
3655
+ name_mapping={"value": "value"},
3656
+ )
3657
+ class BooleanFilterProperty:
3658
+ def __init__(
3659
+ self,
3660
+ *,
3661
+ value: typing.Union[builtins.bool, _IResolvable_da3f097b],
3662
+ ) -> None:
3663
+ '''Boolean filter for querying findings.
3664
+
3665
+ :param value: The value of the boolean.
3666
+
3667
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-booleanfilter.html
3668
+ :exampleMetadata: fixture=_generated
3669
+
3670
+ Example::
3671
+
3672
+ # The code below shows an example of how to instantiate this type.
3673
+ # The values are placeholders you should change.
3674
+ from aws_cdk import aws_securityhub as securityhub
3675
+
3676
+ boolean_filter_property = securityhub.CfnAutomationRuleV2.BooleanFilterProperty(
3677
+ value=False
3678
+ )
3679
+ '''
3680
+ if __debug__:
3681
+ type_hints = typing.get_type_hints(_typecheckingstub__bf1f4033b6ab73724f96c846c6e76e7a50093a23574134c07515d9390346e33b)
3682
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3683
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3684
+ "value": value,
3685
+ }
3686
+
3687
+ @builtins.property
3688
+ def value(self) -> typing.Union[builtins.bool, _IResolvable_da3f097b]:
3689
+ '''The value of the boolean.
3690
+
3691
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-booleanfilter.html#cfn-securityhub-automationrulev2-booleanfilter-value
3692
+ '''
3693
+ result = self._values.get("value")
3694
+ assert result is not None, "Required property 'value' is missing"
3695
+ return typing.cast(typing.Union[builtins.bool, _IResolvable_da3f097b], result)
3696
+
3697
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3698
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3699
+
3700
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3701
+ return not (rhs == self)
3702
+
3703
+ def __repr__(self) -> str:
3704
+ return "BooleanFilterProperty(%s)" % ", ".join(
3705
+ k + "=" + repr(v) for k, v in self._values.items()
3706
+ )
3707
+
3708
+ @jsii.data_type(
3709
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.CompositeFilterProperty",
3710
+ jsii_struct_bases=[],
3711
+ name_mapping={
3712
+ "boolean_filters": "booleanFilters",
3713
+ "date_filters": "dateFilters",
3714
+ "map_filters": "mapFilters",
3715
+ "number_filters": "numberFilters",
3716
+ "operator": "operator",
3717
+ "string_filters": "stringFilters",
3718
+ },
3719
+ )
3720
+ class CompositeFilterProperty:
3721
+ def __init__(
3722
+ self,
3723
+ *,
3724
+ boolean_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.OcsfBooleanFilterProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3725
+ date_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.OcsfDateFilterProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3726
+ map_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.OcsfMapFilterProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3727
+ number_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.OcsfNumberFilterProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3728
+ operator: typing.Optional[builtins.str] = None,
3729
+ string_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.OcsfStringFilterProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
3730
+ ) -> None:
3731
+ '''Enables the creation of filtering criteria for security findings.
3732
+
3733
+ :param boolean_filters: Enables filtering based on boolean field values.
3734
+ :param date_filters: Enables filtering based on date and timestamp fields.
3735
+ :param map_filters: Enables the creation of filtering criteria for security findings.
3736
+ :param number_filters: Enables filtering based on numerical field values.
3737
+ :param operator: The logical operator used to combine multiple filter conditions.
3738
+ :param string_filters: Enables filtering based on string field values.
3739
+
3740
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-compositefilter.html
3741
+ :exampleMetadata: fixture=_generated
3742
+
3743
+ Example::
3744
+
3745
+ # The code below shows an example of how to instantiate this type.
3746
+ # The values are placeholders you should change.
3747
+ from aws_cdk import aws_securityhub as securityhub
3748
+
3749
+ composite_filter_property = securityhub.CfnAutomationRuleV2.CompositeFilterProperty(
3750
+ boolean_filters=[securityhub.CfnAutomationRuleV2.OcsfBooleanFilterProperty(
3751
+ field_name="fieldName",
3752
+ filter=securityhub.CfnAutomationRuleV2.BooleanFilterProperty(
3753
+ value=False
3754
+ )
3755
+ )],
3756
+ date_filters=[securityhub.CfnAutomationRuleV2.OcsfDateFilterProperty(
3757
+ field_name="fieldName",
3758
+ filter=securityhub.CfnAutomationRuleV2.DateFilterProperty(
3759
+ date_range=securityhub.CfnAutomationRuleV2.DateRangeProperty(
3760
+ unit="unit",
3761
+ value=123
3762
+ ),
3763
+ end="end",
3764
+ start="start"
3765
+ )
3766
+ )],
3767
+ map_filters=[securityhub.CfnAutomationRuleV2.OcsfMapFilterProperty(
3768
+ field_name="fieldName",
3769
+ filter=securityhub.CfnAutomationRuleV2.MapFilterProperty(
3770
+ comparison="comparison",
3771
+ key="key",
3772
+ value="value"
3773
+ )
3774
+ )],
3775
+ number_filters=[securityhub.CfnAutomationRuleV2.OcsfNumberFilterProperty(
3776
+ field_name="fieldName",
3777
+ filter=securityhub.CfnAutomationRuleV2.NumberFilterProperty(
3778
+ eq=123,
3779
+ gte=123,
3780
+ lte=123
3781
+ )
3782
+ )],
3783
+ operator="operator",
3784
+ string_filters=[securityhub.CfnAutomationRuleV2.OcsfStringFilterProperty(
3785
+ field_name="fieldName",
3786
+ filter=securityhub.CfnAutomationRuleV2.StringFilterProperty(
3787
+ comparison="comparison",
3788
+ value="value"
3789
+ )
3790
+ )]
3791
+ )
3792
+ '''
3793
+ if __debug__:
3794
+ type_hints = typing.get_type_hints(_typecheckingstub__ef5252b213e349428bc417b1dd29e26751fcc25bde34b016a3eaf19d58151f2e)
3795
+ check_type(argname="argument boolean_filters", value=boolean_filters, expected_type=type_hints["boolean_filters"])
3796
+ check_type(argname="argument date_filters", value=date_filters, expected_type=type_hints["date_filters"])
3797
+ check_type(argname="argument map_filters", value=map_filters, expected_type=type_hints["map_filters"])
3798
+ check_type(argname="argument number_filters", value=number_filters, expected_type=type_hints["number_filters"])
3799
+ check_type(argname="argument operator", value=operator, expected_type=type_hints["operator"])
3800
+ check_type(argname="argument string_filters", value=string_filters, expected_type=type_hints["string_filters"])
3801
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3802
+ if boolean_filters is not None:
3803
+ self._values["boolean_filters"] = boolean_filters
3804
+ if date_filters is not None:
3805
+ self._values["date_filters"] = date_filters
3806
+ if map_filters is not None:
3807
+ self._values["map_filters"] = map_filters
3808
+ if number_filters is not None:
3809
+ self._values["number_filters"] = number_filters
3810
+ if operator is not None:
3811
+ self._values["operator"] = operator
3812
+ if string_filters is not None:
3813
+ self._values["string_filters"] = string_filters
3814
+
3815
+ @builtins.property
3816
+ def boolean_filters(
3817
+ self,
3818
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.OcsfBooleanFilterProperty"]]]]:
3819
+ '''Enables filtering based on boolean field values.
3820
+
3821
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-compositefilter.html#cfn-securityhub-automationrulev2-compositefilter-booleanfilters
3822
+ '''
3823
+ result = self._values.get("boolean_filters")
3824
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.OcsfBooleanFilterProperty"]]]], result)
3825
+
3826
+ @builtins.property
3827
+ def date_filters(
3828
+ self,
3829
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.OcsfDateFilterProperty"]]]]:
3830
+ '''Enables filtering based on date and timestamp fields.
3831
+
3832
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-compositefilter.html#cfn-securityhub-automationrulev2-compositefilter-datefilters
3833
+ '''
3834
+ result = self._values.get("date_filters")
3835
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.OcsfDateFilterProperty"]]]], result)
3836
+
3837
+ @builtins.property
3838
+ def map_filters(
3839
+ self,
3840
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.OcsfMapFilterProperty"]]]]:
3841
+ '''Enables the creation of filtering criteria for security findings.
3842
+
3843
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-compositefilter.html#cfn-securityhub-automationrulev2-compositefilter-mapfilters
3844
+ '''
3845
+ result = self._values.get("map_filters")
3846
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.OcsfMapFilterProperty"]]]], result)
3847
+
3848
+ @builtins.property
3849
+ def number_filters(
3850
+ self,
3851
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.OcsfNumberFilterProperty"]]]]:
3852
+ '''Enables filtering based on numerical field values.
3853
+
3854
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-compositefilter.html#cfn-securityhub-automationrulev2-compositefilter-numberfilters
3855
+ '''
3856
+ result = self._values.get("number_filters")
3857
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.OcsfNumberFilterProperty"]]]], result)
3858
+
3859
+ @builtins.property
3860
+ def operator(self) -> typing.Optional[builtins.str]:
3861
+ '''The logical operator used to combine multiple filter conditions.
3862
+
3863
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-compositefilter.html#cfn-securityhub-automationrulev2-compositefilter-operator
3864
+ '''
3865
+ result = self._values.get("operator")
3866
+ return typing.cast(typing.Optional[builtins.str], result)
3867
+
3868
+ @builtins.property
3869
+ def string_filters(
3870
+ self,
3871
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.OcsfStringFilterProperty"]]]]:
3872
+ '''Enables filtering based on string field values.
3873
+
3874
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-compositefilter.html#cfn-securityhub-automationrulev2-compositefilter-stringfilters
3875
+ '''
3876
+ result = self._values.get("string_filters")
3877
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.OcsfStringFilterProperty"]]]], result)
3878
+
3879
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3880
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3881
+
3882
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3883
+ return not (rhs == self)
3884
+
3885
+ def __repr__(self) -> str:
3886
+ return "CompositeFilterProperty(%s)" % ", ".join(
3887
+ k + "=" + repr(v) for k, v in self._values.items()
3888
+ )
3889
+
3890
+ @jsii.data_type(
3891
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.CriteriaProperty",
3892
+ jsii_struct_bases=[],
3893
+ name_mapping={"ocsf_finding_criteria": "ocsfFindingCriteria"},
3894
+ )
3895
+ class CriteriaProperty:
3896
+ def __init__(
3897
+ self,
3898
+ *,
3899
+ ocsf_finding_criteria: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.OcsfFindingFiltersProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
3900
+ ) -> None:
3901
+ '''The filtering type and configuration of the automation rule.
3902
+
3903
+ :param ocsf_finding_criteria: The filtering conditions that align with OCSF standards.
3904
+
3905
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-criteria.html
3906
+ :exampleMetadata: fixture=_generated
3907
+
3908
+ Example::
3909
+
3910
+ # The code below shows an example of how to instantiate this type.
3911
+ # The values are placeholders you should change.
3912
+ from aws_cdk import aws_securityhub as securityhub
3913
+
3914
+ criteria_property = securityhub.CfnAutomationRuleV2.CriteriaProperty(
3915
+ ocsf_finding_criteria=securityhub.CfnAutomationRuleV2.OcsfFindingFiltersProperty(
3916
+ composite_filters=[securityhub.CfnAutomationRuleV2.CompositeFilterProperty(
3917
+ boolean_filters=[securityhub.CfnAutomationRuleV2.OcsfBooleanFilterProperty(
3918
+ field_name="fieldName",
3919
+ filter=securityhub.CfnAutomationRuleV2.BooleanFilterProperty(
3920
+ value=False
3921
+ )
3922
+ )],
3923
+ date_filters=[securityhub.CfnAutomationRuleV2.OcsfDateFilterProperty(
3924
+ field_name="fieldName",
3925
+ filter=securityhub.CfnAutomationRuleV2.DateFilterProperty(
3926
+ date_range=securityhub.CfnAutomationRuleV2.DateRangeProperty(
3927
+ unit="unit",
3928
+ value=123
3929
+ ),
3930
+ end="end",
3931
+ start="start"
3932
+ )
3933
+ )],
3934
+ map_filters=[securityhub.CfnAutomationRuleV2.OcsfMapFilterProperty(
3935
+ field_name="fieldName",
3936
+ filter=securityhub.CfnAutomationRuleV2.MapFilterProperty(
3937
+ comparison="comparison",
3938
+ key="key",
3939
+ value="value"
3940
+ )
3941
+ )],
3942
+ number_filters=[securityhub.CfnAutomationRuleV2.OcsfNumberFilterProperty(
3943
+ field_name="fieldName",
3944
+ filter=securityhub.CfnAutomationRuleV2.NumberFilterProperty(
3945
+ eq=123,
3946
+ gte=123,
3947
+ lte=123
3948
+ )
3949
+ )],
3950
+ operator="operator",
3951
+ string_filters=[securityhub.CfnAutomationRuleV2.OcsfStringFilterProperty(
3952
+ field_name="fieldName",
3953
+ filter=securityhub.CfnAutomationRuleV2.StringFilterProperty(
3954
+ comparison="comparison",
3955
+ value="value"
3956
+ )
3957
+ )]
3958
+ )],
3959
+ composite_operator="compositeOperator"
3960
+ )
3961
+ )
3962
+ '''
3963
+ if __debug__:
3964
+ type_hints = typing.get_type_hints(_typecheckingstub__1ba9d632d542a300365cf2fd23759ae4458525cb9c085d0a969ca6b488962b63)
3965
+ check_type(argname="argument ocsf_finding_criteria", value=ocsf_finding_criteria, expected_type=type_hints["ocsf_finding_criteria"])
3966
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3967
+ if ocsf_finding_criteria is not None:
3968
+ self._values["ocsf_finding_criteria"] = ocsf_finding_criteria
3969
+
3970
+ @builtins.property
3971
+ def ocsf_finding_criteria(
3972
+ self,
3973
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.OcsfFindingFiltersProperty"]]:
3974
+ '''The filtering conditions that align with OCSF standards.
3975
+
3976
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-criteria.html#cfn-securityhub-automationrulev2-criteria-ocsffindingcriteria
3977
+ '''
3978
+ result = self._values.get("ocsf_finding_criteria")
3979
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.OcsfFindingFiltersProperty"]], result)
3980
+
3981
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3982
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3983
+
3984
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3985
+ return not (rhs == self)
3986
+
3987
+ def __repr__(self) -> str:
3988
+ return "CriteriaProperty(%s)" % ", ".join(
3989
+ k + "=" + repr(v) for k, v in self._values.items()
3990
+ )
3991
+
3992
+ @jsii.data_type(
3993
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.DateFilterProperty",
3994
+ jsii_struct_bases=[],
3995
+ name_mapping={"date_range": "dateRange", "end": "end", "start": "start"},
3996
+ )
3997
+ class DateFilterProperty:
3998
+ def __init__(
3999
+ self,
4000
+ *,
4001
+ date_range: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.DateRangeProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4002
+ end: typing.Optional[builtins.str] = None,
4003
+ start: typing.Optional[builtins.str] = None,
4004
+ ) -> None:
4005
+ '''A date filter for querying findings.
4006
+
4007
+ :param date_range: A date range for the date filter.
4008
+ :param end: A timestamp that provides the end date for the date filter. For more information about the validation and formatting of timestamp fields in AWS Security Hub , see `Timestamps <https://docs.aws.amazon.com/securityhub/1.0/APIReference/Welcome.html#timestamps>`_ .
4009
+ :param start: A timestamp that provides the start date for the date filter. For more information about the validation and formatting of timestamp fields in AWS Security Hub , see `Timestamps <https://docs.aws.amazon.com/securityhub/1.0/APIReference/Welcome.html#timestamps>`_ .
4010
+
4011
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-datefilter.html
4012
+ :exampleMetadata: fixture=_generated
4013
+
4014
+ Example::
4015
+
4016
+ # The code below shows an example of how to instantiate this type.
4017
+ # The values are placeholders you should change.
4018
+ from aws_cdk import aws_securityhub as securityhub
4019
+
4020
+ date_filter_property = securityhub.CfnAutomationRuleV2.DateFilterProperty(
4021
+ date_range=securityhub.CfnAutomationRuleV2.DateRangeProperty(
4022
+ unit="unit",
4023
+ value=123
4024
+ ),
4025
+ end="end",
4026
+ start="start"
4027
+ )
4028
+ '''
4029
+ if __debug__:
4030
+ type_hints = typing.get_type_hints(_typecheckingstub__3d21b2c9e81f0b05c0b5eae1aed977679e202dd65257b012d2ffca3404d4bce2)
4031
+ check_type(argname="argument date_range", value=date_range, expected_type=type_hints["date_range"])
4032
+ check_type(argname="argument end", value=end, expected_type=type_hints["end"])
4033
+ check_type(argname="argument start", value=start, expected_type=type_hints["start"])
4034
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
4035
+ if date_range is not None:
4036
+ self._values["date_range"] = date_range
4037
+ if end is not None:
4038
+ self._values["end"] = end
4039
+ if start is not None:
4040
+ self._values["start"] = start
4041
+
4042
+ @builtins.property
4043
+ def date_range(
4044
+ self,
4045
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.DateRangeProperty"]]:
4046
+ '''A date range for the date filter.
4047
+
4048
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-datefilter.html#cfn-securityhub-automationrulev2-datefilter-daterange
4049
+ '''
4050
+ result = self._values.get("date_range")
4051
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.DateRangeProperty"]], result)
4052
+
4053
+ @builtins.property
4054
+ def end(self) -> typing.Optional[builtins.str]:
4055
+ '''A timestamp that provides the end date for the date filter.
4056
+
4057
+ For more information about the validation and formatting of timestamp fields in AWS Security Hub , see `Timestamps <https://docs.aws.amazon.com/securityhub/1.0/APIReference/Welcome.html#timestamps>`_ .
4058
+
4059
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-datefilter.html#cfn-securityhub-automationrulev2-datefilter-end
4060
+ '''
4061
+ result = self._values.get("end")
4062
+ return typing.cast(typing.Optional[builtins.str], result)
4063
+
4064
+ @builtins.property
4065
+ def start(self) -> typing.Optional[builtins.str]:
4066
+ '''A timestamp that provides the start date for the date filter.
4067
+
4068
+ For more information about the validation and formatting of timestamp fields in AWS Security Hub , see `Timestamps <https://docs.aws.amazon.com/securityhub/1.0/APIReference/Welcome.html#timestamps>`_ .
4069
+
4070
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-datefilter.html#cfn-securityhub-automationrulev2-datefilter-start
4071
+ '''
4072
+ result = self._values.get("start")
4073
+ return typing.cast(typing.Optional[builtins.str], result)
4074
+
4075
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4076
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4077
+
4078
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4079
+ return not (rhs == self)
4080
+
4081
+ def __repr__(self) -> str:
4082
+ return "DateFilterProperty(%s)" % ", ".join(
4083
+ k + "=" + repr(v) for k, v in self._values.items()
4084
+ )
4085
+
4086
+ @jsii.data_type(
4087
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.DateRangeProperty",
4088
+ jsii_struct_bases=[],
4089
+ name_mapping={"unit": "unit", "value": "value"},
4090
+ )
4091
+ class DateRangeProperty:
4092
+ def __init__(self, *, unit: builtins.str, value: jsii.Number) -> None:
4093
+ '''A date range for the date filter.
4094
+
4095
+ :param unit: A date range unit for the date filter.
4096
+ :param value: A date range value for the date filter.
4097
+
4098
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-daterange.html
4099
+ :exampleMetadata: fixture=_generated
4100
+
4101
+ Example::
4102
+
4103
+ # The code below shows an example of how to instantiate this type.
4104
+ # The values are placeholders you should change.
4105
+ from aws_cdk import aws_securityhub as securityhub
4106
+
4107
+ date_range_property = securityhub.CfnAutomationRuleV2.DateRangeProperty(
4108
+ unit="unit",
4109
+ value=123
4110
+ )
4111
+ '''
4112
+ if __debug__:
4113
+ type_hints = typing.get_type_hints(_typecheckingstub__6cd41336e92eb03ceeaab0c8bb04ecdcbaa676b6a22a3cd4a1f8ba069311dc05)
4114
+ check_type(argname="argument unit", value=unit, expected_type=type_hints["unit"])
4115
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4116
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4117
+ "unit": unit,
4118
+ "value": value,
4119
+ }
4120
+
4121
+ @builtins.property
4122
+ def unit(self) -> builtins.str:
4123
+ '''A date range unit for the date filter.
4124
+
4125
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-daterange.html#cfn-securityhub-automationrulev2-daterange-unit
4126
+ '''
4127
+ result = self._values.get("unit")
4128
+ assert result is not None, "Required property 'unit' is missing"
4129
+ return typing.cast(builtins.str, result)
4130
+
4131
+ @builtins.property
4132
+ def value(self) -> jsii.Number:
4133
+ '''A date range value for the date filter.
4134
+
4135
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-daterange.html#cfn-securityhub-automationrulev2-daterange-value
4136
+ '''
4137
+ result = self._values.get("value")
4138
+ assert result is not None, "Required property 'value' is missing"
4139
+ return typing.cast(jsii.Number, result)
4140
+
4141
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4142
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4143
+
4144
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4145
+ return not (rhs == self)
4146
+
4147
+ def __repr__(self) -> str:
4148
+ return "DateRangeProperty(%s)" % ", ".join(
4149
+ k + "=" + repr(v) for k, v in self._values.items()
4150
+ )
4151
+
4152
+ @jsii.data_type(
4153
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.ExternalIntegrationConfigurationProperty",
4154
+ jsii_struct_bases=[],
4155
+ name_mapping={"connector_arn": "connectorArn"},
4156
+ )
4157
+ class ExternalIntegrationConfigurationProperty:
4158
+ def __init__(
4159
+ self,
4160
+ *,
4161
+ connector_arn: typing.Optional[builtins.str] = None,
4162
+ ) -> None:
4163
+ '''The settings for integrating automation rule actions with external systems or service.
4164
+
4165
+ :param connector_arn: The ARN of the connector that establishes the integration.
4166
+
4167
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-externalintegrationconfiguration.html
4168
+ :exampleMetadata: fixture=_generated
4169
+
4170
+ Example::
4171
+
4172
+ # The code below shows an example of how to instantiate this type.
4173
+ # The values are placeholders you should change.
4174
+ from aws_cdk import aws_securityhub as securityhub
4175
+
4176
+ external_integration_configuration_property = securityhub.CfnAutomationRuleV2.ExternalIntegrationConfigurationProperty(
4177
+ connector_arn="connectorArn"
4178
+ )
4179
+ '''
4180
+ if __debug__:
4181
+ type_hints = typing.get_type_hints(_typecheckingstub__a2fd9a1462ca1711dacb92a0d07d564ed40fe787a40d0cfcdebf274371c09173)
4182
+ check_type(argname="argument connector_arn", value=connector_arn, expected_type=type_hints["connector_arn"])
4183
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
4184
+ if connector_arn is not None:
4185
+ self._values["connector_arn"] = connector_arn
4186
+
4187
+ @builtins.property
4188
+ def connector_arn(self) -> typing.Optional[builtins.str]:
4189
+ '''The ARN of the connector that establishes the integration.
4190
+
4191
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-externalintegrationconfiguration.html#cfn-securityhub-automationrulev2-externalintegrationconfiguration-connectorarn
4192
+ '''
4193
+ result = self._values.get("connector_arn")
4194
+ return typing.cast(typing.Optional[builtins.str], result)
4195
+
4196
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4197
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4198
+
4199
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4200
+ return not (rhs == self)
4201
+
4202
+ def __repr__(self) -> str:
4203
+ return "ExternalIntegrationConfigurationProperty(%s)" % ", ".join(
4204
+ k + "=" + repr(v) for k, v in self._values.items()
4205
+ )
4206
+
4207
+ @jsii.data_type(
4208
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.MapFilterProperty",
4209
+ jsii_struct_bases=[],
4210
+ name_mapping={"comparison": "comparison", "key": "key", "value": "value"},
4211
+ )
4212
+ class MapFilterProperty:
4213
+ def __init__(
4214
+ self,
4215
+ *,
4216
+ comparison: builtins.str,
4217
+ key: builtins.str,
4218
+ value: builtins.str,
4219
+ ) -> None:
4220
+ '''A map filter for filtering AWS Security Hub findings.
4221
+
4222
+ Each map filter provides the field to check for, the value to check for, and the comparison operator.
4223
+
4224
+ :param comparison: The condition to apply to the key value when filtering Security Hub findings with a map filter. To search for values that have the filter value, use one of the following comparison operators: - To search for values that include the filter value, use ``CONTAINS`` . For example, for the ``ResourceTags`` field, the filter ``Department CONTAINS Security`` matches findings that include the value ``Security`` for the ``Department`` tag. In the same example, a finding with a value of ``Security team`` for the ``Department`` tag is a match. - To search for values that exactly match the filter value, use ``EQUALS`` . For example, for the ``ResourceTags`` field, the filter ``Department EQUALS Security`` matches findings that have the value ``Security`` for the ``Department`` tag. ``CONTAINS`` and ``EQUALS`` filters on the same field are joined by ``OR`` . A finding matches if it matches any one of those filters. For example, the filters ``Department CONTAINS Security OR Department CONTAINS Finance`` match a finding that includes either ``Security`` , ``Finance`` , or both values. To search for values that don't have the filter value, use one of the following comparison operators: - To search for values that exclude the filter value, use ``NOT_CONTAINS`` . For example, for the ``ResourceTags`` field, the filter ``Department NOT_CONTAINS Finance`` matches findings that exclude the value ``Finance`` for the ``Department`` tag. - To search for values other than the filter value, use ``NOT_EQUALS`` . For example, for the ``ResourceTags`` field, the filter ``Department NOT_EQUALS Finance`` matches findings that don’t have the value ``Finance`` for the ``Department`` tag. ``NOT_CONTAINS`` and ``NOT_EQUALS`` filters on the same field are joined by ``AND`` . A finding matches only if it matches all of those filters. For example, the filters ``Department NOT_CONTAINS Security AND Department NOT_CONTAINS Finance`` match a finding that excludes both the ``Security`` and ``Finance`` values. ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters. You can’t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can’t have both an ``EQUALS`` filter and a ``NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules. For more information, see `Automation rules <https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html>`_ in the *AWS Security Hub User Guide* .
4225
+ :param key: The key of the map filter. For example, for ``ResourceTags`` , ``Key`` identifies the name of the tag. For ``UserDefinedFields`` , ``Key`` is the name of the field.
4226
+ :param value: The value for the key in the map filter. Filter values are case sensitive. For example, one of the values for a tag called ``Department`` might be ``Security`` . If you provide ``security`` as the filter value, then there's no match.
4227
+
4228
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-mapfilter.html
4229
+ :exampleMetadata: fixture=_generated
4230
+
4231
+ Example::
4232
+
4233
+ # The code below shows an example of how to instantiate this type.
4234
+ # The values are placeholders you should change.
4235
+ from aws_cdk import aws_securityhub as securityhub
4236
+
4237
+ map_filter_property = securityhub.CfnAutomationRuleV2.MapFilterProperty(
4238
+ comparison="comparison",
4239
+ key="key",
4240
+ value="value"
4241
+ )
4242
+ '''
4243
+ if __debug__:
4244
+ type_hints = typing.get_type_hints(_typecheckingstub__3ce382a730a7d946b88f0a9bbc8ee839e8cc4048403520f61f9601274312c198)
4245
+ check_type(argname="argument comparison", value=comparison, expected_type=type_hints["comparison"])
4246
+ check_type(argname="argument key", value=key, expected_type=type_hints["key"])
4247
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4248
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4249
+ "comparison": comparison,
4250
+ "key": key,
4251
+ "value": value,
4252
+ }
4253
+
4254
+ @builtins.property
4255
+ def comparison(self) -> builtins.str:
4256
+ '''The condition to apply to the key value when filtering Security Hub findings with a map filter.
4257
+
4258
+ To search for values that have the filter value, use one of the following comparison operators:
4259
+
4260
+ - To search for values that include the filter value, use ``CONTAINS`` . For example, for the ``ResourceTags`` field, the filter ``Department CONTAINS Security`` matches findings that include the value ``Security`` for the ``Department`` tag. In the same example, a finding with a value of ``Security team`` for the ``Department`` tag is a match.
4261
+ - To search for values that exactly match the filter value, use ``EQUALS`` . For example, for the ``ResourceTags`` field, the filter ``Department EQUALS Security`` matches findings that have the value ``Security`` for the ``Department`` tag.
4262
+
4263
+ ``CONTAINS`` and ``EQUALS`` filters on the same field are joined by ``OR`` . A finding matches if it matches any one of those filters. For example, the filters ``Department CONTAINS Security OR Department CONTAINS Finance`` match a finding that includes either ``Security`` , ``Finance`` , or both values.
4264
+
4265
+ To search for values that don't have the filter value, use one of the following comparison operators:
4266
+
4267
+ - To search for values that exclude the filter value, use ``NOT_CONTAINS`` . For example, for the ``ResourceTags`` field, the filter ``Department NOT_CONTAINS Finance`` matches findings that exclude the value ``Finance`` for the ``Department`` tag.
4268
+ - To search for values other than the filter value, use ``NOT_EQUALS`` . For example, for the ``ResourceTags`` field, the filter ``Department NOT_EQUALS Finance`` matches findings that don’t have the value ``Finance`` for the ``Department`` tag.
4269
+
4270
+ ``NOT_CONTAINS`` and ``NOT_EQUALS`` filters on the same field are joined by ``AND`` . A finding matches only if it matches all of those filters. For example, the filters ``Department NOT_CONTAINS Security AND Department NOT_CONTAINS Finance`` match a finding that excludes both the ``Security`` and ``Finance`` values.
4271
+
4272
+ ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters.
4273
+
4274
+ You can’t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can’t have both an ``EQUALS`` filter and a ``NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error.
4275
+
4276
+ ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules. For more information, see `Automation rules <https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html>`_ in the *AWS Security Hub User Guide* .
4277
+
4278
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-mapfilter.html#cfn-securityhub-automationrulev2-mapfilter-comparison
4279
+ '''
4280
+ result = self._values.get("comparison")
4281
+ assert result is not None, "Required property 'comparison' is missing"
4282
+ return typing.cast(builtins.str, result)
4283
+
4284
+ @builtins.property
4285
+ def key(self) -> builtins.str:
4286
+ '''The key of the map filter.
4287
+
4288
+ For example, for ``ResourceTags`` , ``Key`` identifies the name of the tag. For ``UserDefinedFields`` , ``Key`` is the name of the field.
4289
+
4290
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-mapfilter.html#cfn-securityhub-automationrulev2-mapfilter-key
4291
+ '''
4292
+ result = self._values.get("key")
4293
+ assert result is not None, "Required property 'key' is missing"
4294
+ return typing.cast(builtins.str, result)
4295
+
4296
+ @builtins.property
4297
+ def value(self) -> builtins.str:
4298
+ '''The value for the key in the map filter.
4299
+
4300
+ Filter values are case sensitive. For example, one of the values for a tag called ``Department`` might be ``Security`` . If you provide ``security`` as the filter value, then there's no match.
4301
+
4302
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-mapfilter.html#cfn-securityhub-automationrulev2-mapfilter-value
4303
+ '''
4304
+ result = self._values.get("value")
4305
+ assert result is not None, "Required property 'value' is missing"
4306
+ return typing.cast(builtins.str, result)
4307
+
4308
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4309
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4310
+
4311
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4312
+ return not (rhs == self)
4313
+
4314
+ def __repr__(self) -> str:
4315
+ return "MapFilterProperty(%s)" % ", ".join(
4316
+ k + "=" + repr(v) for k, v in self._values.items()
4317
+ )
4318
+
4319
+ @jsii.data_type(
4320
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.NumberFilterProperty",
4321
+ jsii_struct_bases=[],
4322
+ name_mapping={"eq": "eq", "gte": "gte", "lte": "lte"},
4323
+ )
4324
+ class NumberFilterProperty:
4325
+ def __init__(
4326
+ self,
4327
+ *,
4328
+ eq: typing.Optional[jsii.Number] = None,
4329
+ gte: typing.Optional[jsii.Number] = None,
4330
+ lte: typing.Optional[jsii.Number] = None,
4331
+ ) -> None:
4332
+ '''A number filter for querying findings.
4333
+
4334
+ :param eq: The equal-to condition to be applied to a single field when querying for findings.
4335
+ :param gte: The greater-than-equal condition to be applied to a single field when querying for findings.
4336
+ :param lte: The less-than-equal condition to be applied to a single field when querying for findings.
4337
+
4338
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-numberfilter.html
4339
+ :exampleMetadata: fixture=_generated
4340
+
4341
+ Example::
4342
+
4343
+ # The code below shows an example of how to instantiate this type.
4344
+ # The values are placeholders you should change.
4345
+ from aws_cdk import aws_securityhub as securityhub
4346
+
4347
+ number_filter_property = securityhub.CfnAutomationRuleV2.NumberFilterProperty(
4348
+ eq=123,
4349
+ gte=123,
4350
+ lte=123
4351
+ )
4352
+ '''
4353
+ if __debug__:
4354
+ type_hints = typing.get_type_hints(_typecheckingstub__647dc97c620209dca2753ac34dae13a3a6afc9916dad52290296e2565ad48048)
4355
+ check_type(argname="argument eq", value=eq, expected_type=type_hints["eq"])
4356
+ check_type(argname="argument gte", value=gte, expected_type=type_hints["gte"])
4357
+ check_type(argname="argument lte", value=lte, expected_type=type_hints["lte"])
4358
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
4359
+ if eq is not None:
4360
+ self._values["eq"] = eq
4361
+ if gte is not None:
4362
+ self._values["gte"] = gte
4363
+ if lte is not None:
4364
+ self._values["lte"] = lte
4365
+
4366
+ @builtins.property
4367
+ def eq(self) -> typing.Optional[jsii.Number]:
4368
+ '''The equal-to condition to be applied to a single field when querying for findings.
4369
+
4370
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-numberfilter.html#cfn-securityhub-automationrulev2-numberfilter-eq
4371
+ '''
4372
+ result = self._values.get("eq")
4373
+ return typing.cast(typing.Optional[jsii.Number], result)
4374
+
4375
+ @builtins.property
4376
+ def gte(self) -> typing.Optional[jsii.Number]:
4377
+ '''The greater-than-equal condition to be applied to a single field when querying for findings.
4378
+
4379
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-numberfilter.html#cfn-securityhub-automationrulev2-numberfilter-gte
4380
+ '''
4381
+ result = self._values.get("gte")
4382
+ return typing.cast(typing.Optional[jsii.Number], result)
4383
+
4384
+ @builtins.property
4385
+ def lte(self) -> typing.Optional[jsii.Number]:
4386
+ '''The less-than-equal condition to be applied to a single field when querying for findings.
4387
+
4388
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-numberfilter.html#cfn-securityhub-automationrulev2-numberfilter-lte
4389
+ '''
4390
+ result = self._values.get("lte")
4391
+ return typing.cast(typing.Optional[jsii.Number], result)
4392
+
4393
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4394
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4395
+
4396
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4397
+ return not (rhs == self)
4398
+
4399
+ def __repr__(self) -> str:
4400
+ return "NumberFilterProperty(%s)" % ", ".join(
4401
+ k + "=" + repr(v) for k, v in self._values.items()
4402
+ )
4403
+
4404
+ @jsii.data_type(
4405
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.OcsfBooleanFilterProperty",
4406
+ jsii_struct_bases=[],
4407
+ name_mapping={"field_name": "fieldName", "filter": "filter"},
4408
+ )
4409
+ class OcsfBooleanFilterProperty:
4410
+ def __init__(
4411
+ self,
4412
+ *,
4413
+ field_name: builtins.str,
4414
+ filter: typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.BooleanFilterProperty", typing.Dict[builtins.str, typing.Any]]],
4415
+ ) -> None:
4416
+ '''Enables filtering of security findings based on boolean field values in OCSF.
4417
+
4418
+ :param field_name: The name of the field.
4419
+ :param filter: Enables filtering of security findings based on boolean field values in OCSF.
4420
+
4421
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfbooleanfilter.html
4422
+ :exampleMetadata: fixture=_generated
4423
+
4424
+ Example::
4425
+
4426
+ # The code below shows an example of how to instantiate this type.
4427
+ # The values are placeholders you should change.
4428
+ from aws_cdk import aws_securityhub as securityhub
4429
+
4430
+ ocsf_boolean_filter_property = securityhub.CfnAutomationRuleV2.OcsfBooleanFilterProperty(
4431
+ field_name="fieldName",
4432
+ filter=securityhub.CfnAutomationRuleV2.BooleanFilterProperty(
4433
+ value=False
4434
+ )
4435
+ )
4436
+ '''
4437
+ if __debug__:
4438
+ type_hints = typing.get_type_hints(_typecheckingstub__a42eba30c4eef0c19b5165ead711c40b18983e8c78c7eaafba9deb680ec94bfd)
4439
+ check_type(argname="argument field_name", value=field_name, expected_type=type_hints["field_name"])
4440
+ check_type(argname="argument filter", value=filter, expected_type=type_hints["filter"])
4441
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4442
+ "field_name": field_name,
4443
+ "filter": filter,
4444
+ }
4445
+
4446
+ @builtins.property
4447
+ def field_name(self) -> builtins.str:
4448
+ '''The name of the field.
4449
+
4450
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfbooleanfilter.html#cfn-securityhub-automationrulev2-ocsfbooleanfilter-fieldname
4451
+ '''
4452
+ result = self._values.get("field_name")
4453
+ assert result is not None, "Required property 'field_name' is missing"
4454
+ return typing.cast(builtins.str, result)
4455
+
4456
+ @builtins.property
4457
+ def filter(
4458
+ self,
4459
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.BooleanFilterProperty"]:
4460
+ '''Enables filtering of security findings based on boolean field values in OCSF.
4461
+
4462
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfbooleanfilter.html#cfn-securityhub-automationrulev2-ocsfbooleanfilter-filter
4463
+ '''
4464
+ result = self._values.get("filter")
4465
+ assert result is not None, "Required property 'filter' is missing"
4466
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.BooleanFilterProperty"], result)
4467
+
4468
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4469
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4470
+
4471
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4472
+ return not (rhs == self)
4473
+
4474
+ def __repr__(self) -> str:
4475
+ return "OcsfBooleanFilterProperty(%s)" % ", ".join(
4476
+ k + "=" + repr(v) for k, v in self._values.items()
4477
+ )
4478
+
4479
+ @jsii.data_type(
4480
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.OcsfDateFilterProperty",
4481
+ jsii_struct_bases=[],
4482
+ name_mapping={"field_name": "fieldName", "filter": "filter"},
4483
+ )
4484
+ class OcsfDateFilterProperty:
4485
+ def __init__(
4486
+ self,
4487
+ *,
4488
+ field_name: builtins.str,
4489
+ filter: typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.DateFilterProperty", typing.Dict[builtins.str, typing.Any]]],
4490
+ ) -> None:
4491
+ '''Enables filtering of security findings based on date and timestamp fields in OCSF.
4492
+
4493
+ :param field_name: The name of the field.
4494
+ :param filter: Enables filtering of security findings based on date and timestamp fields in OCSF.
4495
+
4496
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfdatefilter.html
4497
+ :exampleMetadata: fixture=_generated
4498
+
4499
+ Example::
4500
+
4501
+ # The code below shows an example of how to instantiate this type.
4502
+ # The values are placeholders you should change.
4503
+ from aws_cdk import aws_securityhub as securityhub
4504
+
4505
+ ocsf_date_filter_property = securityhub.CfnAutomationRuleV2.OcsfDateFilterProperty(
4506
+ field_name="fieldName",
4507
+ filter=securityhub.CfnAutomationRuleV2.DateFilterProperty(
4508
+ date_range=securityhub.CfnAutomationRuleV2.DateRangeProperty(
4509
+ unit="unit",
4510
+ value=123
4511
+ ),
4512
+ end="end",
4513
+ start="start"
4514
+ )
4515
+ )
4516
+ '''
4517
+ if __debug__:
4518
+ type_hints = typing.get_type_hints(_typecheckingstub__0835da7838d6730412395869f245eb4865e7ae2b63a637022d4a3475231c342f)
4519
+ check_type(argname="argument field_name", value=field_name, expected_type=type_hints["field_name"])
4520
+ check_type(argname="argument filter", value=filter, expected_type=type_hints["filter"])
4521
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4522
+ "field_name": field_name,
4523
+ "filter": filter,
4524
+ }
4525
+
4526
+ @builtins.property
4527
+ def field_name(self) -> builtins.str:
4528
+ '''The name of the field.
4529
+
4530
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfdatefilter.html#cfn-securityhub-automationrulev2-ocsfdatefilter-fieldname
4531
+ '''
4532
+ result = self._values.get("field_name")
4533
+ assert result is not None, "Required property 'field_name' is missing"
4534
+ return typing.cast(builtins.str, result)
4535
+
4536
+ @builtins.property
4537
+ def filter(
4538
+ self,
4539
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.DateFilterProperty"]:
4540
+ '''Enables filtering of security findings based on date and timestamp fields in OCSF.
4541
+
4542
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfdatefilter.html#cfn-securityhub-automationrulev2-ocsfdatefilter-filter
4543
+ '''
4544
+ result = self._values.get("filter")
4545
+ assert result is not None, "Required property 'filter' is missing"
4546
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.DateFilterProperty"], result)
4547
+
4548
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4549
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4550
+
4551
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4552
+ return not (rhs == self)
4553
+
4554
+ def __repr__(self) -> str:
4555
+ return "OcsfDateFilterProperty(%s)" % ", ".join(
4556
+ k + "=" + repr(v) for k, v in self._values.items()
4557
+ )
4558
+
4559
+ @jsii.data_type(
4560
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.OcsfFindingFiltersProperty",
4561
+ jsii_struct_bases=[],
4562
+ name_mapping={
4563
+ "composite_filters": "compositeFilters",
4564
+ "composite_operator": "compositeOperator",
4565
+ },
4566
+ )
4567
+ class OcsfFindingFiltersProperty:
4568
+ def __init__(
4569
+ self,
4570
+ *,
4571
+ composite_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.CompositeFilterProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
4572
+ composite_operator: typing.Optional[builtins.str] = None,
4573
+ ) -> None:
4574
+ '''Specifies the filtering criteria for security findings using OCSF.
4575
+
4576
+ :param composite_filters: Enables the creation of complex filtering conditions by combining filter criteria.
4577
+ :param composite_operator: The logical operators used to combine the filtering on multiple ``CompositeFilters`` .
4578
+
4579
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsffindingfilters.html
4580
+ :exampleMetadata: fixture=_generated
4581
+
4582
+ Example::
4583
+
4584
+ # The code below shows an example of how to instantiate this type.
4585
+ # The values are placeholders you should change.
4586
+ from aws_cdk import aws_securityhub as securityhub
4587
+
4588
+ ocsf_finding_filters_property = securityhub.CfnAutomationRuleV2.OcsfFindingFiltersProperty(
4589
+ composite_filters=[securityhub.CfnAutomationRuleV2.CompositeFilterProperty(
4590
+ boolean_filters=[securityhub.CfnAutomationRuleV2.OcsfBooleanFilterProperty(
4591
+ field_name="fieldName",
4592
+ filter=securityhub.CfnAutomationRuleV2.BooleanFilterProperty(
4593
+ value=False
4594
+ )
4595
+ )],
4596
+ date_filters=[securityhub.CfnAutomationRuleV2.OcsfDateFilterProperty(
4597
+ field_name="fieldName",
4598
+ filter=securityhub.CfnAutomationRuleV2.DateFilterProperty(
4599
+ date_range=securityhub.CfnAutomationRuleV2.DateRangeProperty(
4600
+ unit="unit",
4601
+ value=123
4602
+ ),
4603
+ end="end",
4604
+ start="start"
4605
+ )
4606
+ )],
4607
+ map_filters=[securityhub.CfnAutomationRuleV2.OcsfMapFilterProperty(
4608
+ field_name="fieldName",
4609
+ filter=securityhub.CfnAutomationRuleV2.MapFilterProperty(
4610
+ comparison="comparison",
4611
+ key="key",
4612
+ value="value"
4613
+ )
4614
+ )],
4615
+ number_filters=[securityhub.CfnAutomationRuleV2.OcsfNumberFilterProperty(
4616
+ field_name="fieldName",
4617
+ filter=securityhub.CfnAutomationRuleV2.NumberFilterProperty(
4618
+ eq=123,
4619
+ gte=123,
4620
+ lte=123
4621
+ )
4622
+ )],
4623
+ operator="operator",
4624
+ string_filters=[securityhub.CfnAutomationRuleV2.OcsfStringFilterProperty(
4625
+ field_name="fieldName",
4626
+ filter=securityhub.CfnAutomationRuleV2.StringFilterProperty(
4627
+ comparison="comparison",
4628
+ value="value"
4629
+ )
4630
+ )]
4631
+ )],
4632
+ composite_operator="compositeOperator"
4633
+ )
4634
+ '''
4635
+ if __debug__:
4636
+ type_hints = typing.get_type_hints(_typecheckingstub__67b27a03af9c079f8cc42cdfa5f8df4adc151b555e1080317dfc2e8c5873519c)
4637
+ check_type(argname="argument composite_filters", value=composite_filters, expected_type=type_hints["composite_filters"])
4638
+ check_type(argname="argument composite_operator", value=composite_operator, expected_type=type_hints["composite_operator"])
4639
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
4640
+ if composite_filters is not None:
4641
+ self._values["composite_filters"] = composite_filters
4642
+ if composite_operator is not None:
4643
+ self._values["composite_operator"] = composite_operator
4644
+
4645
+ @builtins.property
4646
+ def composite_filters(
4647
+ self,
4648
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.CompositeFilterProperty"]]]]:
4649
+ '''Enables the creation of complex filtering conditions by combining filter criteria.
4650
+
4651
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsffindingfilters.html#cfn-securityhub-automationrulev2-ocsffindingfilters-compositefilters
4652
+ '''
4653
+ result = self._values.get("composite_filters")
4654
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.CompositeFilterProperty"]]]], result)
4655
+
4656
+ @builtins.property
4657
+ def composite_operator(self) -> typing.Optional[builtins.str]:
4658
+ '''The logical operators used to combine the filtering on multiple ``CompositeFilters`` .
4659
+
4660
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsffindingfilters.html#cfn-securityhub-automationrulev2-ocsffindingfilters-compositeoperator
4661
+ '''
4662
+ result = self._values.get("composite_operator")
4663
+ return typing.cast(typing.Optional[builtins.str], result)
4664
+
4665
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4666
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4667
+
4668
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4669
+ return not (rhs == self)
4670
+
4671
+ def __repr__(self) -> str:
4672
+ return "OcsfFindingFiltersProperty(%s)" % ", ".join(
4673
+ k + "=" + repr(v) for k, v in self._values.items()
4674
+ )
4675
+
4676
+ @jsii.data_type(
4677
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.OcsfMapFilterProperty",
4678
+ jsii_struct_bases=[],
4679
+ name_mapping={"field_name": "fieldName", "filter": "filter"},
4680
+ )
4681
+ class OcsfMapFilterProperty:
4682
+ def __init__(
4683
+ self,
4684
+ *,
4685
+ field_name: builtins.str,
4686
+ filter: typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.MapFilterProperty", typing.Dict[builtins.str, typing.Any]]],
4687
+ ) -> None:
4688
+ '''Enables filtering of security findings based on map field values in OCSF.
4689
+
4690
+ :param field_name: The name of the field.
4691
+ :param filter: Enables filtering of security findings based on map field values in OCSF.
4692
+
4693
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfmapfilter.html
4694
+ :exampleMetadata: fixture=_generated
4695
+
4696
+ Example::
4697
+
4698
+ # The code below shows an example of how to instantiate this type.
4699
+ # The values are placeholders you should change.
4700
+ from aws_cdk import aws_securityhub as securityhub
4701
+
4702
+ ocsf_map_filter_property = securityhub.CfnAutomationRuleV2.OcsfMapFilterProperty(
4703
+ field_name="fieldName",
4704
+ filter=securityhub.CfnAutomationRuleV2.MapFilterProperty(
4705
+ comparison="comparison",
4706
+ key="key",
4707
+ value="value"
4708
+ )
4709
+ )
4710
+ '''
4711
+ if __debug__:
4712
+ type_hints = typing.get_type_hints(_typecheckingstub__b733ec921abf18e15f42cbdb443df518e81d6c48b4cf4b2397f4812a20240777)
4713
+ check_type(argname="argument field_name", value=field_name, expected_type=type_hints["field_name"])
4714
+ check_type(argname="argument filter", value=filter, expected_type=type_hints["filter"])
4715
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4716
+ "field_name": field_name,
4717
+ "filter": filter,
4718
+ }
4719
+
4720
+ @builtins.property
4721
+ def field_name(self) -> builtins.str:
4722
+ '''The name of the field.
4723
+
4724
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfmapfilter.html#cfn-securityhub-automationrulev2-ocsfmapfilter-fieldname
4725
+ '''
4726
+ result = self._values.get("field_name")
4727
+ assert result is not None, "Required property 'field_name' is missing"
4728
+ return typing.cast(builtins.str, result)
4729
+
4730
+ @builtins.property
4731
+ def filter(
4732
+ self,
4733
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.MapFilterProperty"]:
4734
+ '''Enables filtering of security findings based on map field values in OCSF.
4735
+
4736
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfmapfilter.html#cfn-securityhub-automationrulev2-ocsfmapfilter-filter
4737
+ '''
4738
+ result = self._values.get("filter")
4739
+ assert result is not None, "Required property 'filter' is missing"
4740
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.MapFilterProperty"], result)
4741
+
4742
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4743
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4744
+
4745
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4746
+ return not (rhs == self)
4747
+
4748
+ def __repr__(self) -> str:
4749
+ return "OcsfMapFilterProperty(%s)" % ", ".join(
4750
+ k + "=" + repr(v) for k, v in self._values.items()
4751
+ )
4752
+
4753
+ @jsii.data_type(
4754
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.OcsfNumberFilterProperty",
4755
+ jsii_struct_bases=[],
4756
+ name_mapping={"field_name": "fieldName", "filter": "filter"},
4757
+ )
4758
+ class OcsfNumberFilterProperty:
4759
+ def __init__(
4760
+ self,
4761
+ *,
4762
+ field_name: builtins.str,
4763
+ filter: typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.NumberFilterProperty", typing.Dict[builtins.str, typing.Any]]],
4764
+ ) -> None:
4765
+ '''Enables filtering of security findings based on numerical field values in OCSF.
4766
+
4767
+ :param field_name: The name of the field.
4768
+ :param filter: Enables filtering of security findings based on numerical field values in OCSF.
4769
+
4770
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfnumberfilter.html
4771
+ :exampleMetadata: fixture=_generated
4772
+
4773
+ Example::
4774
+
4775
+ # The code below shows an example of how to instantiate this type.
4776
+ # The values are placeholders you should change.
4777
+ from aws_cdk import aws_securityhub as securityhub
4778
+
4779
+ ocsf_number_filter_property = securityhub.CfnAutomationRuleV2.OcsfNumberFilterProperty(
4780
+ field_name="fieldName",
4781
+ filter=securityhub.CfnAutomationRuleV2.NumberFilterProperty(
4782
+ eq=123,
4783
+ gte=123,
4784
+ lte=123
4785
+ )
4786
+ )
4787
+ '''
4788
+ if __debug__:
4789
+ type_hints = typing.get_type_hints(_typecheckingstub__96733fb6348f5b5cd478197a8fee3f33665015a9b17eb4ce28d9ca28862964c7)
4790
+ check_type(argname="argument field_name", value=field_name, expected_type=type_hints["field_name"])
4791
+ check_type(argname="argument filter", value=filter, expected_type=type_hints["filter"])
4792
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4793
+ "field_name": field_name,
4794
+ "filter": filter,
4795
+ }
4796
+
4797
+ @builtins.property
4798
+ def field_name(self) -> builtins.str:
4799
+ '''The name of the field.
4800
+
4801
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfnumberfilter.html#cfn-securityhub-automationrulev2-ocsfnumberfilter-fieldname
4802
+ '''
4803
+ result = self._values.get("field_name")
4804
+ assert result is not None, "Required property 'field_name' is missing"
4805
+ return typing.cast(builtins.str, result)
4806
+
4807
+ @builtins.property
4808
+ def filter(
4809
+ self,
4810
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.NumberFilterProperty"]:
4811
+ '''Enables filtering of security findings based on numerical field values in OCSF.
4812
+
4813
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfnumberfilter.html#cfn-securityhub-automationrulev2-ocsfnumberfilter-filter
4814
+ '''
4815
+ result = self._values.get("filter")
4816
+ assert result is not None, "Required property 'filter' is missing"
4817
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.NumberFilterProperty"], result)
4818
+
4819
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4820
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4821
+
4822
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4823
+ return not (rhs == self)
4824
+
4825
+ def __repr__(self) -> str:
4826
+ return "OcsfNumberFilterProperty(%s)" % ", ".join(
4827
+ k + "=" + repr(v) for k, v in self._values.items()
4828
+ )
4829
+
4830
+ @jsii.data_type(
4831
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.OcsfStringFilterProperty",
4832
+ jsii_struct_bases=[],
4833
+ name_mapping={"field_name": "fieldName", "filter": "filter"},
4834
+ )
4835
+ class OcsfStringFilterProperty:
4836
+ def __init__(
4837
+ self,
4838
+ *,
4839
+ field_name: builtins.str,
4840
+ filter: typing.Union[_IResolvable_da3f097b, typing.Union["CfnAutomationRuleV2.StringFilterProperty", typing.Dict[builtins.str, typing.Any]]],
4841
+ ) -> None:
4842
+ '''Enables filtering of security findings based on string field values in OCSF.
4843
+
4844
+ :param field_name: The name of the field.
4845
+ :param filter: Enables filtering of security findings based on string field values in OCSF.
4846
+
4847
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfstringfilter.html
4848
+ :exampleMetadata: fixture=_generated
4849
+
4850
+ Example::
4851
+
4852
+ # The code below shows an example of how to instantiate this type.
4853
+ # The values are placeholders you should change.
4854
+ from aws_cdk import aws_securityhub as securityhub
4855
+
4856
+ ocsf_string_filter_property = securityhub.CfnAutomationRuleV2.OcsfStringFilterProperty(
4857
+ field_name="fieldName",
4858
+ filter=securityhub.CfnAutomationRuleV2.StringFilterProperty(
4859
+ comparison="comparison",
4860
+ value="value"
4861
+ )
4862
+ )
4863
+ '''
4864
+ if __debug__:
4865
+ type_hints = typing.get_type_hints(_typecheckingstub__664006d14466473dd08a13af9d06be4f13672817d578a3e7b6c2e476b7e219f0)
4866
+ check_type(argname="argument field_name", value=field_name, expected_type=type_hints["field_name"])
4867
+ check_type(argname="argument filter", value=filter, expected_type=type_hints["filter"])
4868
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4869
+ "field_name": field_name,
4870
+ "filter": filter,
4871
+ }
4872
+
4873
+ @builtins.property
4874
+ def field_name(self) -> builtins.str:
4875
+ '''The name of the field.
4876
+
4877
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfstringfilter.html#cfn-securityhub-automationrulev2-ocsfstringfilter-fieldname
4878
+ '''
4879
+ result = self._values.get("field_name")
4880
+ assert result is not None, "Required property 'field_name' is missing"
4881
+ return typing.cast(builtins.str, result)
4882
+
4883
+ @builtins.property
4884
+ def filter(
4885
+ self,
4886
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.StringFilterProperty"]:
4887
+ '''Enables filtering of security findings based on string field values in OCSF.
4888
+
4889
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-ocsfstringfilter.html#cfn-securityhub-automationrulev2-ocsfstringfilter-filter
4890
+ '''
4891
+ result = self._values.get("filter")
4892
+ assert result is not None, "Required property 'filter' is missing"
4893
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnAutomationRuleV2.StringFilterProperty"], result)
4894
+
4895
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4896
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4897
+
4898
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4899
+ return not (rhs == self)
4900
+
4901
+ def __repr__(self) -> str:
4902
+ return "OcsfStringFilterProperty(%s)" % ", ".join(
4903
+ k + "=" + repr(v) for k, v in self._values.items()
4904
+ )
4905
+
4906
+ @jsii.data_type(
4907
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2.StringFilterProperty",
4908
+ jsii_struct_bases=[],
4909
+ name_mapping={"comparison": "comparison", "value": "value"},
4910
+ )
4911
+ class StringFilterProperty:
4912
+ def __init__(self, *, comparison: builtins.str, value: builtins.str) -> None:
4913
+ '''A string filter for filtering AWS Security Hub findings.
4914
+
4915
+ :param comparison: The condition to apply to a string value when filtering Security Hub findings. To search for values that have the filter value, use one of the following comparison operators: - To search for values that include the filter value, use ``CONTAINS`` . For example, the filter ``Title CONTAINS CloudFront`` matches findings that have a ``Title`` that includes the string CloudFront. - To search for values that exactly match the filter value, use ``EQUALS`` . For example, the filter ``AwsAccountId EQUALS 123456789012`` only matches findings that have an account ID of ``123456789012`` . - To search for values that start with the filter value, use ``PREFIX`` . For example, the filter ``ResourceRegion PREFIX us`` matches findings that have a ``ResourceRegion`` that starts with ``us`` . A ``ResourceRegion`` that starts with a different value, such as ``af`` , ``ap`` , or ``ca`` , doesn't match. ``CONTAINS`` , ``EQUALS`` , and ``PREFIX`` filters on the same field are joined by ``OR`` . A finding matches if it matches any one of those filters. For example, the filters ``Title CONTAINS CloudFront OR Title CONTAINS CloudWatch`` match a finding that includes either ``CloudFront`` , ``CloudWatch`` , or both strings in the title. To search for values that don’t have the filter value, use one of the following comparison operators: - To search for values that exclude the filter value, use ``NOT_CONTAINS`` . For example, the filter ``Title NOT_CONTAINS CloudFront`` matches findings that have a ``Title`` that excludes the string CloudFront. - To search for values other than the filter value, use ``NOT_EQUALS`` . For example, the filter ``AwsAccountId NOT_EQUALS 123456789012`` only matches findings that have an account ID other than ``123456789012`` . - To search for values that don't start with the filter value, use ``PREFIX_NOT_EQUALS`` . For example, the filter ``ResourceRegion PREFIX_NOT_EQUALS us`` matches findings with a ``ResourceRegion`` that starts with a value other than ``us`` . ``NOT_CONTAINS`` , ``NOT_EQUALS`` , and ``PREFIX_NOT_EQUALS`` filters on the same field are joined by ``AND`` . A finding matches only if it matches all of those filters. For example, the filters ``Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch`` match a finding that excludes both ``CloudFront`` and ``CloudWatch`` in the title. You can’t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can't provide both an ``EQUALS`` filter and a ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters. You can combine ``PREFIX`` filters with ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters for the same field. Security Hub first processes the ``PREFIX`` filters, and then the ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters. For example, for the following filters, Security Hub first identifies findings that have resource types that start with either ``AwsIam`` or ``AwsEc2`` . It then excludes findings that have a resource type of ``AwsIamPolicy`` and findings that have a resource type of ``AwsEc2NetworkInterface`` . - ``ResourceType PREFIX AwsIam`` - ``ResourceType PREFIX AwsEc2`` - ``ResourceType NOT_EQUALS AwsIamPolicy`` - ``ResourceType NOT_EQUALS AwsEc2NetworkInterface`` ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules V1. ``CONTAINS_WORD`` operator is only supported in ``GetFindingsV2`` , ``GetFindingStatisticsV2`` , ``GetResourcesV2`` , and ``GetResourceStatisticsV2`` APIs. For more information, see `Automation rules <https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html>`_ in the *AWS Security Hub User Guide* .
4916
+ :param value: The string filter value. Filter values are case sensitive. For example, the product name for control-based findings is ``Security Hub`` . If you provide ``security hub`` as the filter value, there's no match.
4917
+
4918
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-stringfilter.html
4919
+ :exampleMetadata: fixture=_generated
4920
+
4921
+ Example::
4922
+
4923
+ # The code below shows an example of how to instantiate this type.
4924
+ # The values are placeholders you should change.
4925
+ from aws_cdk import aws_securityhub as securityhub
4926
+
4927
+ string_filter_property = securityhub.CfnAutomationRuleV2.StringFilterProperty(
4928
+ comparison="comparison",
4929
+ value="value"
4930
+ )
4931
+ '''
4932
+ if __debug__:
4933
+ type_hints = typing.get_type_hints(_typecheckingstub__5b950655292e8a1a447bc6fef9ec46917dffad72edcfb67f4bae7b7bdbd3100b)
4934
+ check_type(argname="argument comparison", value=comparison, expected_type=type_hints["comparison"])
4935
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4936
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4937
+ "comparison": comparison,
4938
+ "value": value,
4939
+ }
4940
+
4941
+ @builtins.property
4942
+ def comparison(self) -> builtins.str:
4943
+ '''The condition to apply to a string value when filtering Security Hub findings.
4944
+
4945
+ To search for values that have the filter value, use one of the following comparison operators:
4946
+
4947
+ - To search for values that include the filter value, use ``CONTAINS`` . For example, the filter ``Title CONTAINS CloudFront`` matches findings that have a ``Title`` that includes the string CloudFront.
4948
+ - To search for values that exactly match the filter value, use ``EQUALS`` . For example, the filter ``AwsAccountId EQUALS 123456789012`` only matches findings that have an account ID of ``123456789012`` .
4949
+ - To search for values that start with the filter value, use ``PREFIX`` . For example, the filter ``ResourceRegion PREFIX us`` matches findings that have a ``ResourceRegion`` that starts with ``us`` . A ``ResourceRegion`` that starts with a different value, such as ``af`` , ``ap`` , or ``ca`` , doesn't match.
4950
+
4951
+ ``CONTAINS`` , ``EQUALS`` , and ``PREFIX`` filters on the same field are joined by ``OR`` . A finding matches if it matches any one of those filters. For example, the filters ``Title CONTAINS CloudFront OR Title CONTAINS CloudWatch`` match a finding that includes either ``CloudFront`` , ``CloudWatch`` , or both strings in the title.
4952
+
4953
+ To search for values that don’t have the filter value, use one of the following comparison operators:
4954
+
4955
+ - To search for values that exclude the filter value, use ``NOT_CONTAINS`` . For example, the filter ``Title NOT_CONTAINS CloudFront`` matches findings that have a ``Title`` that excludes the string CloudFront.
4956
+ - To search for values other than the filter value, use ``NOT_EQUALS`` . For example, the filter ``AwsAccountId NOT_EQUALS 123456789012`` only matches findings that have an account ID other than ``123456789012`` .
4957
+ - To search for values that don't start with the filter value, use ``PREFIX_NOT_EQUALS`` . For example, the filter ``ResourceRegion PREFIX_NOT_EQUALS us`` matches findings with a ``ResourceRegion`` that starts with a value other than ``us`` .
4958
+
4959
+ ``NOT_CONTAINS`` , ``NOT_EQUALS`` , and ``PREFIX_NOT_EQUALS`` filters on the same field are joined by ``AND`` . A finding matches only if it matches all of those filters. For example, the filters ``Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch`` match a finding that excludes both ``CloudFront`` and ``CloudWatch`` in the title.
4960
+
4961
+ You can’t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can't provide both an ``EQUALS`` filter and a ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters.
4962
+
4963
+ You can combine ``PREFIX`` filters with ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters for the same field. Security Hub first processes the ``PREFIX`` filters, and then the ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters.
4964
+
4965
+ For example, for the following filters, Security Hub first identifies findings that have resource types that start with either ``AwsIam`` or ``AwsEc2`` . It then excludes findings that have a resource type of ``AwsIamPolicy`` and findings that have a resource type of ``AwsEc2NetworkInterface`` .
4966
+
4967
+ - ``ResourceType PREFIX AwsIam``
4968
+ - ``ResourceType PREFIX AwsEc2``
4969
+ - ``ResourceType NOT_EQUALS AwsIamPolicy``
4970
+ - ``ResourceType NOT_EQUALS AwsEc2NetworkInterface``
4971
+
4972
+ ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules V1. ``CONTAINS_WORD`` operator is only supported in ``GetFindingsV2`` , ``GetFindingStatisticsV2`` , ``GetResourcesV2`` , and ``GetResourceStatisticsV2`` APIs. For more information, see `Automation rules <https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html>`_ in the *AWS Security Hub User Guide* .
4973
+
4974
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-stringfilter.html#cfn-securityhub-automationrulev2-stringfilter-comparison
4975
+ '''
4976
+ result = self._values.get("comparison")
4977
+ assert result is not None, "Required property 'comparison' is missing"
4978
+ return typing.cast(builtins.str, result)
4979
+
4980
+ @builtins.property
4981
+ def value(self) -> builtins.str:
4982
+ '''The string filter value.
4983
+
4984
+ Filter values are case sensitive. For example, the product name for control-based findings is ``Security Hub`` . If you provide ``security hub`` as the filter value, there's no match.
4985
+
4986
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-automationrulev2-stringfilter.html#cfn-securityhub-automationrulev2-stringfilter-value
4987
+ '''
4988
+ result = self._values.get("value")
4989
+ assert result is not None, "Required property 'value' is missing"
4990
+ return typing.cast(builtins.str, result)
4991
+
4992
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4993
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4994
+
4995
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4996
+ return not (rhs == self)
4997
+
4998
+ def __repr__(self) -> str:
4999
+ return "StringFilterProperty(%s)" % ", ".join(
5000
+ k + "=" + repr(v) for k, v in self._values.items()
5001
+ )
5002
+
5003
+
5004
+ @jsii.data_type(
5005
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnAutomationRuleV2Props",
5006
+ jsii_struct_bases=[],
5007
+ name_mapping={
5008
+ "actions": "actions",
5009
+ "criteria": "criteria",
5010
+ "description": "description",
5011
+ "rule_name": "ruleName",
5012
+ "rule_order": "ruleOrder",
5013
+ "rule_status": "ruleStatus",
5014
+ "tags": "tags",
5015
+ },
5016
+ )
5017
+ class CfnAutomationRuleV2Props:
5018
+ def __init__(
5019
+ self,
5020
+ *,
5021
+ actions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.AutomationRulesActionV2Property, typing.Dict[builtins.str, typing.Any]]]]],
5022
+ criteria: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.CriteriaProperty, typing.Dict[builtins.str, typing.Any]]],
5023
+ description: builtins.str,
5024
+ rule_name: builtins.str,
5025
+ rule_order: jsii.Number,
5026
+ rule_status: typing.Optional[builtins.str] = None,
5027
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
5028
+ ) -> None:
5029
+ '''Properties for defining a ``CfnAutomationRuleV2``.
5030
+
5031
+ :param actions: A list of actions to be performed when the rule criteria is met.
5032
+ :param criteria: The filtering type and configuration of the automation rule.
5033
+ :param description: A description of the V2 automation rule.
5034
+ :param rule_name: The name of the V2 automation rule.
5035
+ :param rule_order: The value for the rule priority.
5036
+ :param rule_status: The status of the V2 automation rule.
5037
+ :param tags: A list of key-value pairs associated with the V2 automation rule.
5038
+
5039
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrulev2.html
5040
+ :exampleMetadata: fixture=_generated
5041
+
5042
+ Example::
5043
+
5044
+ # The code below shows an example of how to instantiate this type.
5045
+ # The values are placeholders you should change.
5046
+ from aws_cdk import aws_securityhub as securityhub
5047
+
5048
+ cfn_automation_rule_v2_props = securityhub.CfnAutomationRuleV2Props(
5049
+ actions=[securityhub.CfnAutomationRuleV2.AutomationRulesActionV2Property(
5050
+ type="type",
5051
+
5052
+ # the properties below are optional
5053
+ external_integration_configuration=securityhub.CfnAutomationRuleV2.ExternalIntegrationConfigurationProperty(
5054
+ connector_arn="connectorArn"
5055
+ ),
5056
+ finding_fields_update=securityhub.CfnAutomationRuleV2.AutomationRulesFindingFieldsUpdateV2Property(
5057
+ comment="comment",
5058
+ severity_id=123,
5059
+ status_id=123
5060
+ )
5061
+ )],
5062
+ criteria=securityhub.CfnAutomationRuleV2.CriteriaProperty(
5063
+ ocsf_finding_criteria=securityhub.CfnAutomationRuleV2.OcsfFindingFiltersProperty(
5064
+ composite_filters=[securityhub.CfnAutomationRuleV2.CompositeFilterProperty(
5065
+ boolean_filters=[securityhub.CfnAutomationRuleV2.OcsfBooleanFilterProperty(
5066
+ field_name="fieldName",
5067
+ filter=securityhub.CfnAutomationRuleV2.BooleanFilterProperty(
5068
+ value=False
5069
+ )
5070
+ )],
5071
+ date_filters=[securityhub.CfnAutomationRuleV2.OcsfDateFilterProperty(
5072
+ field_name="fieldName",
5073
+ filter=securityhub.CfnAutomationRuleV2.DateFilterProperty(
5074
+ date_range=securityhub.CfnAutomationRuleV2.DateRangeProperty(
5075
+ unit="unit",
5076
+ value=123
5077
+ ),
5078
+ end="end",
5079
+ start="start"
5080
+ )
5081
+ )],
5082
+ map_filters=[securityhub.CfnAutomationRuleV2.OcsfMapFilterProperty(
5083
+ field_name="fieldName",
5084
+ filter=securityhub.CfnAutomationRuleV2.MapFilterProperty(
5085
+ comparison="comparison",
5086
+ key="key",
5087
+ value="value"
5088
+ )
5089
+ )],
5090
+ number_filters=[securityhub.CfnAutomationRuleV2.OcsfNumberFilterProperty(
5091
+ field_name="fieldName",
5092
+ filter=securityhub.CfnAutomationRuleV2.NumberFilterProperty(
5093
+ eq=123,
5094
+ gte=123,
5095
+ lte=123
5096
+ )
5097
+ )],
5098
+ operator="operator",
5099
+ string_filters=[securityhub.CfnAutomationRuleV2.OcsfStringFilterProperty(
5100
+ field_name="fieldName",
5101
+ filter=securityhub.CfnAutomationRuleV2.StringFilterProperty(
5102
+ comparison="comparison",
5103
+ value="value"
5104
+ )
5105
+ )]
5106
+ )],
5107
+ composite_operator="compositeOperator"
5108
+ )
5109
+ ),
5110
+ description="description",
5111
+ rule_name="ruleName",
5112
+ rule_order=123,
5113
+
5114
+ # the properties below are optional
5115
+ rule_status="ruleStatus",
5116
+ tags={
5117
+ "tags_key": "tags"
5118
+ }
5119
+ )
5120
+ '''
5121
+ if __debug__:
5122
+ type_hints = typing.get_type_hints(_typecheckingstub__96bf6ac88f339a8dafdb0d899cf9e7c5353a67121a8a0b34137e9631c11f04a4)
5123
+ check_type(argname="argument actions", value=actions, expected_type=type_hints["actions"])
5124
+ check_type(argname="argument criteria", value=criteria, expected_type=type_hints["criteria"])
5125
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
5126
+ check_type(argname="argument rule_name", value=rule_name, expected_type=type_hints["rule_name"])
5127
+ check_type(argname="argument rule_order", value=rule_order, expected_type=type_hints["rule_order"])
5128
+ check_type(argname="argument rule_status", value=rule_status, expected_type=type_hints["rule_status"])
5129
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
5130
+ self._values: typing.Dict[builtins.str, typing.Any] = {
5131
+ "actions": actions,
5132
+ "criteria": criteria,
5133
+ "description": description,
5134
+ "rule_name": rule_name,
5135
+ "rule_order": rule_order,
5136
+ }
5137
+ if rule_status is not None:
5138
+ self._values["rule_status"] = rule_status
5139
+ if tags is not None:
5140
+ self._values["tags"] = tags
5141
+
5142
+ @builtins.property
5143
+ def actions(
5144
+ self,
5145
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAutomationRuleV2.AutomationRulesActionV2Property]]]:
5146
+ '''A list of actions to be performed when the rule criteria is met.
5147
+
5148
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrulev2.html#cfn-securityhub-automationrulev2-actions
5149
+ '''
5150
+ result = self._values.get("actions")
5151
+ assert result is not None, "Required property 'actions' is missing"
5152
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAutomationRuleV2.AutomationRulesActionV2Property]]], result)
5153
+
5154
+ @builtins.property
5155
+ def criteria(
5156
+ self,
5157
+ ) -> typing.Union[_IResolvable_da3f097b, CfnAutomationRuleV2.CriteriaProperty]:
5158
+ '''The filtering type and configuration of the automation rule.
5159
+
5160
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrulev2.html#cfn-securityhub-automationrulev2-criteria
5161
+ '''
5162
+ result = self._values.get("criteria")
5163
+ assert result is not None, "Required property 'criteria' is missing"
5164
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnAutomationRuleV2.CriteriaProperty], result)
5165
+
5166
+ @builtins.property
5167
+ def description(self) -> builtins.str:
5168
+ '''A description of the V2 automation rule.
5169
+
5170
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrulev2.html#cfn-securityhub-automationrulev2-description
5171
+ '''
5172
+ result = self._values.get("description")
5173
+ assert result is not None, "Required property 'description' is missing"
5174
+ return typing.cast(builtins.str, result)
5175
+
5176
+ @builtins.property
5177
+ def rule_name(self) -> builtins.str:
5178
+ '''The name of the V2 automation rule.
5179
+
5180
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrulev2.html#cfn-securityhub-automationrulev2-rulename
5181
+ '''
5182
+ result = self._values.get("rule_name")
5183
+ assert result is not None, "Required property 'rule_name' is missing"
5184
+ return typing.cast(builtins.str, result)
5185
+
5186
+ @builtins.property
5187
+ def rule_order(self) -> jsii.Number:
5188
+ '''The value for the rule priority.
5189
+
5190
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrulev2.html#cfn-securityhub-automationrulev2-ruleorder
5191
+ '''
5192
+ result = self._values.get("rule_order")
5193
+ assert result is not None, "Required property 'rule_order' is missing"
5194
+ return typing.cast(jsii.Number, result)
5195
+
5196
+ @builtins.property
5197
+ def rule_status(self) -> typing.Optional[builtins.str]:
5198
+ '''The status of the V2 automation rule.
5199
+
5200
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrulev2.html#cfn-securityhub-automationrulev2-rulestatus
5201
+ '''
5202
+ result = self._values.get("rule_status")
5203
+ return typing.cast(typing.Optional[builtins.str], result)
5204
+
5205
+ @builtins.property
5206
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
5207
+ '''A list of key-value pairs associated with the V2 automation rule.
5208
+
5209
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-automationrulev2.html#cfn-securityhub-automationrulev2-tags
5210
+ '''
5211
+ result = self._values.get("tags")
5212
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
5213
+
5214
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
5215
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
5216
+
5217
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
5218
+ return not (rhs == self)
5219
+
5220
+ def __repr__(self) -> str:
5221
+ return "CfnAutomationRuleV2Props(%s)" % ", ".join(
5222
+ k + "=" + repr(v) for k, v in self._values.items()
5223
+ )
5224
+
5225
+
5226
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
5227
+ class CfnConfigurationPolicy(
5228
+ _CfnResource_9df397a6,
5229
+ metaclass=jsii.JSIIMeta,
5230
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnConfigurationPolicy",
5231
+ ):
5232
+ '''The ``AWS::SecurityHub::ConfigurationPolicy`` resource creates a central configuration policy with the defined settings.
5233
+
5234
+ Only the AWS Security Hub delegated administrator can create this resource in the home Region. For more information, see `Central configuration in Security Hub <https://docs.aws.amazon.com/securityhub/latest/userguide/central-configuration-intro.html>`_ in the *AWS Security Hub User Guide* .
5235
+
5236
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-configurationpolicy.html
5237
+ :cloudformationResource: AWS::SecurityHub::ConfigurationPolicy
5238
+ :exampleMetadata: fixture=_generated
5239
+
5240
+ Example::
5241
+
5242
+ # The code below shows an example of how to instantiate this type.
5243
+ # The values are placeholders you should change.
5244
+ from aws_cdk import aws_securityhub as securityhub
5245
+
5246
+ cfn_configuration_policy = securityhub.CfnConfigurationPolicy(self, "MyCfnConfigurationPolicy",
5247
+ configuration_policy=securityhub.CfnConfigurationPolicy.PolicyProperty(
5248
+ security_hub=securityhub.CfnConfigurationPolicy.SecurityHubPolicyProperty(
5249
+ enabled_standard_identifiers=["enabledStandardIdentifiers"],
5250
+ security_controls_configuration=securityhub.CfnConfigurationPolicy.SecurityControlsConfigurationProperty(
5251
+ disabled_security_control_identifiers=["disabledSecurityControlIdentifiers"],
5252
+ enabled_security_control_identifiers=["enabledSecurityControlIdentifiers"],
5253
+ security_control_custom_parameters=[securityhub.CfnConfigurationPolicy.SecurityControlCustomParameterProperty(
5254
+ parameters={
5255
+ "parameters_key": securityhub.CfnConfigurationPolicy.ParameterConfigurationProperty(
5256
+ value_type="valueType",
5257
+
5258
+ # the properties below are optional
5259
+ value=securityhub.CfnConfigurationPolicy.ParameterValueProperty(
5260
+ boolean=False,
5261
+ double=123,
5262
+ enum="enum",
5263
+ enum_list=["enumList"],
5264
+ integer=123,
5265
+ integer_list=[123],
5266
+ string="string",
5267
+ string_list=["stringList"]
5268
+ )
5269
+ )
5270
+ },
5271
+ security_control_id="securityControlId"
5272
+ )]
5273
+ ),
5274
+ service_enabled=False
5275
+ )
5276
+ ),
5277
+ name="name",
5278
+
5279
+ # the properties below are optional
5280
+ description="description",
5281
+ tags={
5282
+ "tags_key": "tags"
5283
+ }
5284
+ )
5285
+ '''
5286
+
5287
+ def __init__(
5288
+ self,
5289
+ scope: _constructs_77d1e7e8.Construct,
5290
+ id: builtins.str,
5291
+ *,
5292
+ configuration_policy: typing.Union[_IResolvable_da3f097b, typing.Union["CfnConfigurationPolicy.PolicyProperty", typing.Dict[builtins.str, typing.Any]]],
5293
+ name: builtins.str,
5294
+ description: typing.Optional[builtins.str] = None,
5295
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
5296
+ ) -> None:
5297
+ '''
5298
+ :param scope: Scope in which this resource is defined.
5299
+ :param id: Construct identifier for this resource (unique in its scope).
5300
+ :param configuration_policy: An object that defines how AWS Security Hub is configured. It includes whether Security Hub is enabled or disabled, a list of enabled security standards, a list of enabled or disabled security controls, and a list of custom parameter values for specified controls. If you provide a list of security controls that are enabled in the configuration policy, Security Hub disables all other controls (including newly released controls). If you provide a list of security controls that are disabled in the configuration policy, Security Hub enables all other controls (including newly released controls).
5301
+ :param name: The name of the configuration policy. Alphanumeric characters and the following ASCII characters are permitted: ``-, ., !, *, /`` .
5302
+ :param description: The description of the configuration policy.
5303
+ :param tags: User-defined tags associated with a configuration policy. For more information, see `Tagging AWS Security Hub resources <https://docs.aws.amazon.com/securityhub/latest/userguide/tagging-resources.html>`_ in the *Security Hub user guide* .
5304
+ '''
5305
+ if __debug__:
5306
+ type_hints = typing.get_type_hints(_typecheckingstub__e2cee5cf3fe5ba0b354ff30ea357f97d4a69893bed692305ae2919f0061404d2)
2971
5307
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
2972
5308
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
2973
5309
  props = CfnConfigurationPolicyProps(
@@ -4654,19 +6990,200 @@ class CfnHubProps:
4654
6990
 
4655
6991
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hub.html#cfn-securityhub-hub-enabledefaultstandards
4656
6992
  '''
4657
- result = self._values.get("enable_default_standards")
4658
- return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
6993
+ result = self._values.get("enable_default_standards")
6994
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
6995
+
6996
+ @builtins.property
6997
+ def tags(self) -> typing.Any:
6998
+ '''An array of key-value pairs to apply to this resource.
6999
+
7000
+ For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
7001
+
7002
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hub.html#cfn-securityhub-hub-tags
7003
+ '''
7004
+ result = self._values.get("tags")
7005
+ return typing.cast(typing.Any, result)
7006
+
7007
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
7008
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
7009
+
7010
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
7011
+ return not (rhs == self)
7012
+
7013
+ def __repr__(self) -> str:
7014
+ return "CfnHubProps(%s)" % ", ".join(
7015
+ k + "=" + repr(v) for k, v in self._values.items()
7016
+ )
7017
+
7018
+
7019
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
7020
+ class CfnHubV2(
7021
+ _CfnResource_9df397a6,
7022
+ metaclass=jsii.JSIIMeta,
7023
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnHubV2",
7024
+ ):
7025
+ '''Returns details about the service resource in your account.
7026
+
7027
+ This API is in private preview and subject to change.
7028
+
7029
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hubv2.html
7030
+ :cloudformationResource: AWS::SecurityHub::HubV2
7031
+ :exampleMetadata: fixture=_generated
7032
+
7033
+ Example::
7034
+
7035
+ # The code below shows an example of how to instantiate this type.
7036
+ # The values are placeholders you should change.
7037
+ from aws_cdk import aws_securityhub as securityhub
7038
+
7039
+ cfn_hub_v2 = securityhub.CfnHubV2(self, "MyCfnHubV2",
7040
+ tags={
7041
+ "tags_key": "tags"
7042
+ }
7043
+ )
7044
+ '''
7045
+
7046
+ def __init__(
7047
+ self,
7048
+ scope: _constructs_77d1e7e8.Construct,
7049
+ id: builtins.str,
7050
+ *,
7051
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
7052
+ ) -> None:
7053
+ '''
7054
+ :param scope: Scope in which this resource is defined.
7055
+ :param id: Construct identifier for this resource (unique in its scope).
7056
+ :param tags: The tags to add to the hub V2 resource when you enable Security Hub.
7057
+ '''
7058
+ if __debug__:
7059
+ type_hints = typing.get_type_hints(_typecheckingstub__8a938d6f02e5cc9357e7ae741d101719d29a8539be57e63f7148a944106dccc1)
7060
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
7061
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
7062
+ props = CfnHubV2Props(tags=tags)
7063
+
7064
+ jsii.create(self.__class__, self, [scope, id, props])
7065
+
7066
+ @jsii.member(jsii_name="inspect")
7067
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
7068
+ '''Examines the CloudFormation resource and discloses attributes.
7069
+
7070
+ :param inspector: tree inspector to collect and process attributes.
7071
+ '''
7072
+ if __debug__:
7073
+ type_hints = typing.get_type_hints(_typecheckingstub__e1dac3a23d94b8e2be0be6ae5d6d56142199c92d98f138b490e9a4036d9897ed)
7074
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
7075
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
7076
+
7077
+ @jsii.member(jsii_name="renderProperties")
7078
+ def _render_properties(
7079
+ self,
7080
+ props: typing.Mapping[builtins.str, typing.Any],
7081
+ ) -> typing.Mapping[builtins.str, typing.Any]:
7082
+ '''
7083
+ :param props: -
7084
+ '''
7085
+ if __debug__:
7086
+ type_hints = typing.get_type_hints(_typecheckingstub__f92498b56c6fcd7d027c6ff068634a704396d6376eee870869ddf3ffcd039b7a)
7087
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
7088
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
7089
+
7090
+ @jsii.python.classproperty
7091
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
7092
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
7093
+ '''The CloudFormation resource type name for this resource class.'''
7094
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
7095
+
7096
+ @builtins.property
7097
+ @jsii.member(jsii_name="attrHubV2Arn")
7098
+ def attr_hub_v2_arn(self) -> builtins.str:
7099
+ '''The ARN of the service resource.
7100
+
7101
+ :cloudformationAttribute: HubV2Arn
7102
+ '''
7103
+ return typing.cast(builtins.str, jsii.get(self, "attrHubV2Arn"))
7104
+
7105
+ @builtins.property
7106
+ @jsii.member(jsii_name="attrSubscribedAt")
7107
+ def attr_subscribed_at(self) -> builtins.str:
7108
+ '''The date and time when the service was enabled in the account.
7109
+
7110
+ :cloudformationAttribute: SubscribedAt
7111
+ '''
7112
+ return typing.cast(builtins.str, jsii.get(self, "attrSubscribedAt"))
7113
+
7114
+ @builtins.property
7115
+ @jsii.member(jsii_name="cdkTagManager")
7116
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
7117
+ '''Tag Manager which manages the tags for this resource.'''
7118
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
7119
+
7120
+ @builtins.property
7121
+ @jsii.member(jsii_name="cfnProperties")
7122
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
7123
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
7124
+
7125
+ @builtins.property
7126
+ @jsii.member(jsii_name="tags")
7127
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
7128
+ '''The tags to add to the hub V2 resource when you enable Security Hub.'''
7129
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], jsii.get(self, "tags"))
7130
+
7131
+ @tags.setter
7132
+ def tags(
7133
+ self,
7134
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
7135
+ ) -> None:
7136
+ if __debug__:
7137
+ type_hints = typing.get_type_hints(_typecheckingstub__6e41e91c55f6f2a331ab968ca257da397cb59475bac947e28be333f8f3cdc7cb)
7138
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
7139
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
7140
+
7141
+
7142
+ @jsii.data_type(
7143
+ jsii_type="aws-cdk-lib.aws_securityhub.CfnHubV2Props",
7144
+ jsii_struct_bases=[],
7145
+ name_mapping={"tags": "tags"},
7146
+ )
7147
+ class CfnHubV2Props:
7148
+ def __init__(
7149
+ self,
7150
+ *,
7151
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
7152
+ ) -> None:
7153
+ '''Properties for defining a ``CfnHubV2``.
7154
+
7155
+ :param tags: The tags to add to the hub V2 resource when you enable Security Hub.
7156
+
7157
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hubv2.html
7158
+ :exampleMetadata: fixture=_generated
7159
+
7160
+ Example::
7161
+
7162
+ # The code below shows an example of how to instantiate this type.
7163
+ # The values are placeholders you should change.
7164
+ from aws_cdk import aws_securityhub as securityhub
7165
+
7166
+ cfn_hub_v2_props = securityhub.CfnHubV2Props(
7167
+ tags={
7168
+ "tags_key": "tags"
7169
+ }
7170
+ )
7171
+ '''
7172
+ if __debug__:
7173
+ type_hints = typing.get_type_hints(_typecheckingstub__5701f591c6bb91f50e9187f704248e0e20e49f80fdbb611b3664c43166095344)
7174
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
7175
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
7176
+ if tags is not None:
7177
+ self._values["tags"] = tags
4659
7178
 
4660
7179
  @builtins.property
4661
- def tags(self) -> typing.Any:
4662
- '''An array of key-value pairs to apply to this resource.
4663
-
4664
- For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
7180
+ def tags(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
7181
+ '''The tags to add to the hub V2 resource when you enable Security Hub.
4665
7182
 
4666
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hub.html#cfn-securityhub-hub-tags
7183
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securityhub-hubv2.html#cfn-securityhub-hubv2-tags
4667
7184
  '''
4668
7185
  result = self._values.get("tags")
4669
- return typing.cast(typing.Any, result)
7186
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
4670
7187
 
4671
7188
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
4672
7189
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -4675,7 +7192,7 @@ class CfnHubProps:
4675
7192
  return not (rhs == self)
4676
7193
 
4677
7194
  def __repr__(self) -> str:
4678
- return "CfnHubProps(%s)" % ", ".join(
7195
+ return "CfnHubV2Props(%s)" % ", ".join(
4679
7196
  k + "=" + repr(v) for k, v in self._values.items()
4680
7197
  )
4681
7198
 
@@ -8186,7 +10703,7 @@ class CfnInsight(
8186
10703
  def __init__(self, *, comparison: builtins.str, value: builtins.str) -> None:
8187
10704
  '''A string filter for filtering AWS Security Hub findings.
8188
10705
 
8189
- :param comparison: The condition to apply to a string value when filtering Security Hub findings. To search for values that have the filter value, use one of the following comparison operators: - To search for values that include the filter value, use ``CONTAINS`` . For example, the filter ``Title CONTAINS CloudFront`` matches findings that have a ``Title`` that includes the string CloudFront. - To search for values that exactly match the filter value, use ``EQUALS`` . For example, the filter ``AwsAccountId EQUALS 123456789012`` only matches findings that have an account ID of ``123456789012`` . - To search for values that start with the filter value, use ``PREFIX`` . For example, the filter ``ResourceRegion PREFIX us`` matches findings that have a ``ResourceRegion`` that starts with ``us`` . A ``ResourceRegion`` that starts with a different value, such as ``af`` , ``ap`` , or ``ca`` , doesn't match. ``CONTAINS`` , ``EQUALS`` , and ``PREFIX`` filters on the same field are joined by ``OR`` . A finding matches if it matches any one of those filters. For example, the filters ``Title CONTAINS CloudFront OR Title CONTAINS CloudWatch`` match a finding that includes either ``CloudFront`` , ``CloudWatch`` , or both strings in the title. To search for values that don’t have the filter value, use one of the following comparison operators: - To search for values that exclude the filter value, use ``NOT_CONTAINS`` . For example, the filter ``Title NOT_CONTAINS CloudFront`` matches findings that have a ``Title`` that excludes the string CloudFront. - To search for values other than the filter value, use ``NOT_EQUALS`` . For example, the filter ``AwsAccountId NOT_EQUALS 123456789012`` only matches findings that have an account ID other than ``123456789012`` . - To search for values that don't start with the filter value, use ``PREFIX_NOT_EQUALS`` . For example, the filter ``ResourceRegion PREFIX_NOT_EQUALS us`` matches findings with a ``ResourceRegion`` that starts with a value other than ``us`` . ``NOT_CONTAINS`` , ``NOT_EQUALS`` , and ``PREFIX_NOT_EQUALS`` filters on the same field are joined by ``AND`` . A finding matches only if it matches all of those filters. For example, the filters ``Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch`` match a finding that excludes both ``CloudFront`` and ``CloudWatch`` in the title. You can’t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can't provide both an ``EQUALS`` filter and a ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters. You can combine ``PREFIX`` filters with ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters for the same field. Security Hub first processes the ``PREFIX`` filters, and then the ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters. For example, for the following filters, Security Hub first identifies findings that have resource types that start with either ``AwsIam`` or ``AwsEc2`` . It then excludes findings that have a resource type of ``AwsIamPolicy`` and findings that have a resource type of ``AwsEc2NetworkInterface`` . - ``ResourceType PREFIX AwsIam`` - ``ResourceType PREFIX AwsEc2`` - ``ResourceType NOT_EQUALS AwsIamPolicy`` - ``ResourceType NOT_EQUALS AwsEc2NetworkInterface`` ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules. For more information, see `Automation rules <https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html>`_ in the *AWS Security Hub User Guide* .
10706
+ :param comparison: The condition to apply to a string value when filtering Security Hub findings. To search for values that have the filter value, use one of the following comparison operators: - To search for values that include the filter value, use ``CONTAINS`` . For example, the filter ``Title CONTAINS CloudFront`` matches findings that have a ``Title`` that includes the string CloudFront. - To search for values that exactly match the filter value, use ``EQUALS`` . For example, the filter ``AwsAccountId EQUALS 123456789012`` only matches findings that have an account ID of ``123456789012`` . - To search for values that start with the filter value, use ``PREFIX`` . For example, the filter ``ResourceRegion PREFIX us`` matches findings that have a ``ResourceRegion`` that starts with ``us`` . A ``ResourceRegion`` that starts with a different value, such as ``af`` , ``ap`` , or ``ca`` , doesn't match. ``CONTAINS`` , ``EQUALS`` , and ``PREFIX`` filters on the same field are joined by ``OR`` . A finding matches if it matches any one of those filters. For example, the filters ``Title CONTAINS CloudFront OR Title CONTAINS CloudWatch`` match a finding that includes either ``CloudFront`` , ``CloudWatch`` , or both strings in the title. To search for values that don’t have the filter value, use one of the following comparison operators: - To search for values that exclude the filter value, use ``NOT_CONTAINS`` . For example, the filter ``Title NOT_CONTAINS CloudFront`` matches findings that have a ``Title`` that excludes the string CloudFront. - To search for values other than the filter value, use ``NOT_EQUALS`` . For example, the filter ``AwsAccountId NOT_EQUALS 123456789012`` only matches findings that have an account ID other than ``123456789012`` . - To search for values that don't start with the filter value, use ``PREFIX_NOT_EQUALS`` . For example, the filter ``ResourceRegion PREFIX_NOT_EQUALS us`` matches findings with a ``ResourceRegion`` that starts with a value other than ``us`` . ``NOT_CONTAINS`` , ``NOT_EQUALS`` , and ``PREFIX_NOT_EQUALS`` filters on the same field are joined by ``AND`` . A finding matches only if it matches all of those filters. For example, the filters ``Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch`` match a finding that excludes both ``CloudFront`` and ``CloudWatch`` in the title. You can’t have both a ``CONTAINS`` filter and a ``NOT_CONTAINS`` filter on the same field. Similarly, you can't provide both an ``EQUALS`` filter and a ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filter on the same field. Combining filters in this way returns an error. ``CONTAINS`` filters can only be used with other ``CONTAINS`` filters. ``NOT_CONTAINS`` filters can only be used with other ``NOT_CONTAINS`` filters. You can combine ``PREFIX`` filters with ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters for the same field. Security Hub first processes the ``PREFIX`` filters, and then the ``NOT_EQUALS`` or ``PREFIX_NOT_EQUALS`` filters. For example, for the following filters, Security Hub first identifies findings that have resource types that start with either ``AwsIam`` or ``AwsEc2`` . It then excludes findings that have a resource type of ``AwsIamPolicy`` and findings that have a resource type of ``AwsEc2NetworkInterface`` . - ``ResourceType PREFIX AwsIam`` - ``ResourceType PREFIX AwsEc2`` - ``ResourceType NOT_EQUALS AwsIamPolicy`` - ``ResourceType NOT_EQUALS AwsEc2NetworkInterface`` ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules V1. ``CONTAINS_WORD`` operator is only supported in ``GetFindingsV2`` , ``GetFindingStatisticsV2`` , ``GetResourcesV2`` , and ``GetResourceStatisticsV2`` APIs. For more information, see `Automation rules <https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html>`_ in the *AWS Security Hub User Guide* .
8190
10707
  :param value: The string filter value. Filter values are case sensitive. For example, the product name for control-based findings is ``Security Hub`` . If you provide ``security hub`` as the filter value, there's no match.
8191
10708
 
8192
10709
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-stringfilter.html
@@ -8243,7 +10760,7 @@ class CfnInsight(
8243
10760
  - ``ResourceType NOT_EQUALS AwsIamPolicy``
8244
10761
  - ``ResourceType NOT_EQUALS AwsEc2NetworkInterface``
8245
10762
 
8246
- ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules. For more information, see `Automation rules <https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html>`_ in the *AWS Security Hub User Guide* .
10763
+ ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules V1. ``CONTAINS_WORD`` operator is only supported in ``GetFindingsV2`` , ``GetFindingStatisticsV2`` , ``GetResourcesV2`` , and ``GetResourceStatisticsV2`` APIs. For more information, see `Automation rules <https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html>`_ in the *AWS Security Hub User Guide* .
8247
10764
 
8248
10765
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-securityhub-insight-stringfilter.html#cfn-securityhub-insight-stringfilter-comparison
8249
10766
  '''
@@ -10422,8 +12939,12 @@ class CfnStandardProps:
10422
12939
 
10423
12940
 
10424
12941
  __all__ = [
12942
+ "CfnAggregatorV2",
12943
+ "CfnAggregatorV2Props",
10425
12944
  "CfnAutomationRule",
10426
12945
  "CfnAutomationRuleProps",
12946
+ "CfnAutomationRuleV2",
12947
+ "CfnAutomationRuleV2Props",
10427
12948
  "CfnConfigurationPolicy",
10428
12949
  "CfnConfigurationPolicyProps",
10429
12950
  "CfnDelegatedAdmin",
@@ -10432,6 +12953,8 @@ __all__ = [
10432
12953
  "CfnFindingAggregatorProps",
10433
12954
  "CfnHub",
10434
12955
  "CfnHubProps",
12956
+ "CfnHubV2",
12957
+ "CfnHubV2Props",
10435
12958
  "CfnInsight",
10436
12959
  "CfnInsightProps",
10437
12960
  "CfnOrganizationConfiguration",
@@ -10448,6 +12971,56 @@ __all__ = [
10448
12971
 
10449
12972
  publication.publish()
10450
12973
 
12974
+ def _typecheckingstub__a48a2a082be753c7ff9a23ae8720fc6090537bc7754b3949c569c91cc2d97185(
12975
+ scope: _constructs_77d1e7e8.Construct,
12976
+ id: builtins.str,
12977
+ *,
12978
+ linked_regions: typing.Sequence[builtins.str],
12979
+ region_linking_mode: builtins.str,
12980
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
12981
+ ) -> None:
12982
+ """Type checking stubs"""
12983
+ pass
12984
+
12985
+ def _typecheckingstub__faa540694e43a0e61feeb3f53848b1f6e9494b6ed7da21b25aac134881132c39(
12986
+ inspector: _TreeInspector_488e0dd5,
12987
+ ) -> None:
12988
+ """Type checking stubs"""
12989
+ pass
12990
+
12991
+ def _typecheckingstub__e6872b5e370c8e8f4d83602fa651c03fde81b36e7c5bc3b28fa097f66a87ee66(
12992
+ props: typing.Mapping[builtins.str, typing.Any],
12993
+ ) -> None:
12994
+ """Type checking stubs"""
12995
+ pass
12996
+
12997
+ def _typecheckingstub__73719aabf2def1251bbcce62564af2561a7db568f2cc383d665c93c84e03855c(
12998
+ value: typing.List[builtins.str],
12999
+ ) -> None:
13000
+ """Type checking stubs"""
13001
+ pass
13002
+
13003
+ def _typecheckingstub__3f12f6fa7491c9cf6429ed03592fa2e0b84dd1df61b65fe9caf3ffa327ed324f(
13004
+ value: builtins.str,
13005
+ ) -> None:
13006
+ """Type checking stubs"""
13007
+ pass
13008
+
13009
+ def _typecheckingstub__e47a206d80ca672182e6fba3a9c614bda1d391a22aa37078d5b442ce9858a656(
13010
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
13011
+ ) -> None:
13012
+ """Type checking stubs"""
13013
+ pass
13014
+
13015
+ def _typecheckingstub__ba603e1d6925ab7babf45e555f2f6c66e3573a9e5841cd7b5ebf0d444664667e(
13016
+ *,
13017
+ linked_regions: typing.Sequence[builtins.str],
13018
+ region_linking_mode: builtins.str,
13019
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
13020
+ ) -> None:
13021
+ """Type checking stubs"""
13022
+ pass
13023
+
10451
13024
  def _typecheckingstub__90c663d2946359b509542feafdcb3d89f11ca9e30a214aae02ea3d6b354c9846(
10452
13025
  scope: _constructs_77d1e7e8.Construct,
10453
13026
  id: builtins.str,
@@ -10677,6 +13250,230 @@ def _typecheckingstub__221241b44c93ea569fcf69aaaade0ce7cf31b7343bc3d072d74ccd168
10677
13250
  """Type checking stubs"""
10678
13251
  pass
10679
13252
 
13253
+ def _typecheckingstub__d67bab57d18f8318b1f3e5e5aee0425c6d6ad2a73c3def328f22c6e22aa173d4(
13254
+ scope: _constructs_77d1e7e8.Construct,
13255
+ id: builtins.str,
13256
+ *,
13257
+ actions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.AutomationRulesActionV2Property, typing.Dict[builtins.str, typing.Any]]]]],
13258
+ criteria: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.CriteriaProperty, typing.Dict[builtins.str, typing.Any]]],
13259
+ description: builtins.str,
13260
+ rule_name: builtins.str,
13261
+ rule_order: jsii.Number,
13262
+ rule_status: typing.Optional[builtins.str] = None,
13263
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
13264
+ ) -> None:
13265
+ """Type checking stubs"""
13266
+ pass
13267
+
13268
+ def _typecheckingstub__148b5ad52f495a944fc188c33e9ce4790af9aae05ed5382a214fb325dffaf8bb(
13269
+ inspector: _TreeInspector_488e0dd5,
13270
+ ) -> None:
13271
+ """Type checking stubs"""
13272
+ pass
13273
+
13274
+ def _typecheckingstub__2f9d1f99336eb3a75c15b25a178234de86a8bfdf4875bf0ce1cd38b114f64593(
13275
+ props: typing.Mapping[builtins.str, typing.Any],
13276
+ ) -> None:
13277
+ """Type checking stubs"""
13278
+ pass
13279
+
13280
+ def _typecheckingstub__6347d27f0ba2cf053f67fe33ad975271c9a681e994a3d68259bee4b4cecff923(
13281
+ value: typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnAutomationRuleV2.AutomationRulesActionV2Property]]],
13282
+ ) -> None:
13283
+ """Type checking stubs"""
13284
+ pass
13285
+
13286
+ def _typecheckingstub__a5adb921eebdd2ef5c8fd115e4be769f443780102c814dd43fe745285e68ab8e(
13287
+ value: typing.Union[_IResolvable_da3f097b, CfnAutomationRuleV2.CriteriaProperty],
13288
+ ) -> None:
13289
+ """Type checking stubs"""
13290
+ pass
13291
+
13292
+ def _typecheckingstub__125c937bc05766b550dc71a5d1d56e19a69b4ef80f88b4ef38e2e5e003477882(
13293
+ value: builtins.str,
13294
+ ) -> None:
13295
+ """Type checking stubs"""
13296
+ pass
13297
+
13298
+ def _typecheckingstub__d67119779ecc92e0cdf9224e19bbf9519a8b3464aefe9656b42f750f87734d6a(
13299
+ value: builtins.str,
13300
+ ) -> None:
13301
+ """Type checking stubs"""
13302
+ pass
13303
+
13304
+ def _typecheckingstub__0756c118bad7b3ecf44f8e5b333e1b12ae1f8fcc93cfb9994a9b01b1e420c800(
13305
+ value: jsii.Number,
13306
+ ) -> None:
13307
+ """Type checking stubs"""
13308
+ pass
13309
+
13310
+ def _typecheckingstub__9d3ccd09d54183efd7f79c4f4fa028ef4ff9dcf82d873ad68a9b84292b42fca1(
13311
+ value: typing.Optional[builtins.str],
13312
+ ) -> None:
13313
+ """Type checking stubs"""
13314
+ pass
13315
+
13316
+ def _typecheckingstub__c4cafeb60a0ac8c7088697f2b7bd61bc6887761dd3405c6d9a418c848d6a35ed(
13317
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
13318
+ ) -> None:
13319
+ """Type checking stubs"""
13320
+ pass
13321
+
13322
+ def _typecheckingstub__c5861ee659ea2189f4b0d18349855ec99f8b11ef0e6bc925783f2b7a3911d61f(
13323
+ *,
13324
+ type: builtins.str,
13325
+ external_integration_configuration: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.ExternalIntegrationConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
13326
+ finding_fields_update: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.AutomationRulesFindingFieldsUpdateV2Property, typing.Dict[builtins.str, typing.Any]]]] = None,
13327
+ ) -> None:
13328
+ """Type checking stubs"""
13329
+ pass
13330
+
13331
+ def _typecheckingstub__4f90f98d77f04ef40f0534b1d8b8660117e52394e43158b5d7f298d3bc8625cc(
13332
+ *,
13333
+ comment: typing.Optional[builtins.str] = None,
13334
+ severity_id: typing.Optional[jsii.Number] = None,
13335
+ status_id: typing.Optional[jsii.Number] = None,
13336
+ ) -> None:
13337
+ """Type checking stubs"""
13338
+ pass
13339
+
13340
+ def _typecheckingstub__bf1f4033b6ab73724f96c846c6e76e7a50093a23574134c07515d9390346e33b(
13341
+ *,
13342
+ value: typing.Union[builtins.bool, _IResolvable_da3f097b],
13343
+ ) -> None:
13344
+ """Type checking stubs"""
13345
+ pass
13346
+
13347
+ def _typecheckingstub__ef5252b213e349428bc417b1dd29e26751fcc25bde34b016a3eaf19d58151f2e(
13348
+ *,
13349
+ boolean_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.OcsfBooleanFilterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
13350
+ date_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.OcsfDateFilterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
13351
+ map_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.OcsfMapFilterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
13352
+ number_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.OcsfNumberFilterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
13353
+ operator: typing.Optional[builtins.str] = None,
13354
+ string_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.OcsfStringFilterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
13355
+ ) -> None:
13356
+ """Type checking stubs"""
13357
+ pass
13358
+
13359
+ def _typecheckingstub__1ba9d632d542a300365cf2fd23759ae4458525cb9c085d0a969ca6b488962b63(
13360
+ *,
13361
+ ocsf_finding_criteria: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.OcsfFindingFiltersProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
13362
+ ) -> None:
13363
+ """Type checking stubs"""
13364
+ pass
13365
+
13366
+ def _typecheckingstub__3d21b2c9e81f0b05c0b5eae1aed977679e202dd65257b012d2ffca3404d4bce2(
13367
+ *,
13368
+ date_range: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.DateRangeProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
13369
+ end: typing.Optional[builtins.str] = None,
13370
+ start: typing.Optional[builtins.str] = None,
13371
+ ) -> None:
13372
+ """Type checking stubs"""
13373
+ pass
13374
+
13375
+ def _typecheckingstub__6cd41336e92eb03ceeaab0c8bb04ecdcbaa676b6a22a3cd4a1f8ba069311dc05(
13376
+ *,
13377
+ unit: builtins.str,
13378
+ value: jsii.Number,
13379
+ ) -> None:
13380
+ """Type checking stubs"""
13381
+ pass
13382
+
13383
+ def _typecheckingstub__a2fd9a1462ca1711dacb92a0d07d564ed40fe787a40d0cfcdebf274371c09173(
13384
+ *,
13385
+ connector_arn: typing.Optional[builtins.str] = None,
13386
+ ) -> None:
13387
+ """Type checking stubs"""
13388
+ pass
13389
+
13390
+ def _typecheckingstub__3ce382a730a7d946b88f0a9bbc8ee839e8cc4048403520f61f9601274312c198(
13391
+ *,
13392
+ comparison: builtins.str,
13393
+ key: builtins.str,
13394
+ value: builtins.str,
13395
+ ) -> None:
13396
+ """Type checking stubs"""
13397
+ pass
13398
+
13399
+ def _typecheckingstub__647dc97c620209dca2753ac34dae13a3a6afc9916dad52290296e2565ad48048(
13400
+ *,
13401
+ eq: typing.Optional[jsii.Number] = None,
13402
+ gte: typing.Optional[jsii.Number] = None,
13403
+ lte: typing.Optional[jsii.Number] = None,
13404
+ ) -> None:
13405
+ """Type checking stubs"""
13406
+ pass
13407
+
13408
+ def _typecheckingstub__a42eba30c4eef0c19b5165ead711c40b18983e8c78c7eaafba9deb680ec94bfd(
13409
+ *,
13410
+ field_name: builtins.str,
13411
+ filter: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.BooleanFilterProperty, typing.Dict[builtins.str, typing.Any]]],
13412
+ ) -> None:
13413
+ """Type checking stubs"""
13414
+ pass
13415
+
13416
+ def _typecheckingstub__0835da7838d6730412395869f245eb4865e7ae2b63a637022d4a3475231c342f(
13417
+ *,
13418
+ field_name: builtins.str,
13419
+ filter: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.DateFilterProperty, typing.Dict[builtins.str, typing.Any]]],
13420
+ ) -> None:
13421
+ """Type checking stubs"""
13422
+ pass
13423
+
13424
+ def _typecheckingstub__67b27a03af9c079f8cc42cdfa5f8df4adc151b555e1080317dfc2e8c5873519c(
13425
+ *,
13426
+ composite_filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.CompositeFilterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
13427
+ composite_operator: typing.Optional[builtins.str] = None,
13428
+ ) -> None:
13429
+ """Type checking stubs"""
13430
+ pass
13431
+
13432
+ def _typecheckingstub__b733ec921abf18e15f42cbdb443df518e81d6c48b4cf4b2397f4812a20240777(
13433
+ *,
13434
+ field_name: builtins.str,
13435
+ filter: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.MapFilterProperty, typing.Dict[builtins.str, typing.Any]]],
13436
+ ) -> None:
13437
+ """Type checking stubs"""
13438
+ pass
13439
+
13440
+ def _typecheckingstub__96733fb6348f5b5cd478197a8fee3f33665015a9b17eb4ce28d9ca28862964c7(
13441
+ *,
13442
+ field_name: builtins.str,
13443
+ filter: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.NumberFilterProperty, typing.Dict[builtins.str, typing.Any]]],
13444
+ ) -> None:
13445
+ """Type checking stubs"""
13446
+ pass
13447
+
13448
+ def _typecheckingstub__664006d14466473dd08a13af9d06be4f13672817d578a3e7b6c2e476b7e219f0(
13449
+ *,
13450
+ field_name: builtins.str,
13451
+ filter: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.StringFilterProperty, typing.Dict[builtins.str, typing.Any]]],
13452
+ ) -> None:
13453
+ """Type checking stubs"""
13454
+ pass
13455
+
13456
+ def _typecheckingstub__5b950655292e8a1a447bc6fef9ec46917dffad72edcfb67f4bae7b7bdbd3100b(
13457
+ *,
13458
+ comparison: builtins.str,
13459
+ value: builtins.str,
13460
+ ) -> None:
13461
+ """Type checking stubs"""
13462
+ pass
13463
+
13464
+ def _typecheckingstub__96bf6ac88f339a8dafdb0d899cf9e7c5353a67121a8a0b34137e9631c11f04a4(
13465
+ *,
13466
+ actions: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.AutomationRulesActionV2Property, typing.Dict[builtins.str, typing.Any]]]]],
13467
+ criteria: typing.Union[_IResolvable_da3f097b, typing.Union[CfnAutomationRuleV2.CriteriaProperty, typing.Dict[builtins.str, typing.Any]]],
13468
+ description: builtins.str,
13469
+ rule_name: builtins.str,
13470
+ rule_order: jsii.Number,
13471
+ rule_status: typing.Optional[builtins.str] = None,
13472
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
13473
+ ) -> None:
13474
+ """Type checking stubs"""
13475
+ pass
13476
+
10680
13477
  def _typecheckingstub__e2cee5cf3fe5ba0b354ff30ea357f97d4a69893bed692305ae2919f0061404d2(
10681
13478
  scope: _constructs_77d1e7e8.Construct,
10682
13479
  id: builtins.str,
@@ -10924,6 +13721,40 @@ def _typecheckingstub__9a38c34c1f2742403521eb4af2098475d7afb878d3f9aba37048ae543
10924
13721
  """Type checking stubs"""
10925
13722
  pass
10926
13723
 
13724
+ def _typecheckingstub__8a938d6f02e5cc9357e7ae741d101719d29a8539be57e63f7148a944106dccc1(
13725
+ scope: _constructs_77d1e7e8.Construct,
13726
+ id: builtins.str,
13727
+ *,
13728
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
13729
+ ) -> None:
13730
+ """Type checking stubs"""
13731
+ pass
13732
+
13733
+ def _typecheckingstub__e1dac3a23d94b8e2be0be6ae5d6d56142199c92d98f138b490e9a4036d9897ed(
13734
+ inspector: _TreeInspector_488e0dd5,
13735
+ ) -> None:
13736
+ """Type checking stubs"""
13737
+ pass
13738
+
13739
+ def _typecheckingstub__f92498b56c6fcd7d027c6ff068634a704396d6376eee870869ddf3ffcd039b7a(
13740
+ props: typing.Mapping[builtins.str, typing.Any],
13741
+ ) -> None:
13742
+ """Type checking stubs"""
13743
+ pass
13744
+
13745
+ def _typecheckingstub__6e41e91c55f6f2a331ab968ca257da397cb59475bac947e28be333f8f3cdc7cb(
13746
+ value: typing.Optional[typing.Mapping[builtins.str, builtins.str]],
13747
+ ) -> None:
13748
+ """Type checking stubs"""
13749
+ pass
13750
+
13751
+ def _typecheckingstub__5701f591c6bb91f50e9187f704248e0e20e49f80fdbb611b3664c43166095344(
13752
+ *,
13753
+ tags: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
13754
+ ) -> None:
13755
+ """Type checking stubs"""
13756
+ pass
13757
+
10927
13758
  def _typecheckingstub__d671d628902c96b28f2d378ea3f0a99fe19e13873725f86dd92bbe36b4c9a166(
10928
13759
  scope: _constructs_77d1e7e8.Construct,
10929
13760
  id: builtins.str,