aws-cdk-lib 2.185.0__py3-none-any.whl → 2.187.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of aws-cdk-lib might be problematic. Click here for more details.
- aws_cdk/__init__.py +383 -145
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.185.0.jsii.tgz → aws-cdk-lib@2.187.0.jsii.tgz} +0 -0
- aws_cdk/aws_amazonmq/__init__.py +3 -2
- aws_cdk/aws_amplify/__init__.py +124 -0
- aws_cdk/aws_apigateway/__init__.py +48 -2
- aws_cdk/aws_apigatewayv2/__init__.py +9 -0
- aws_cdk/aws_appconfig/__init__.py +3 -3
- aws_cdk/aws_applicationsignals/__init__.py +363 -3
- aws_cdk/aws_appsync/__init__.py +74 -3
- aws_cdk/aws_bedrock/__init__.py +395 -14
- aws_cdk/aws_cassandra/__init__.py +2 -2
- aws_cdk/aws_cleanrooms/__init__.py +21 -9
- aws_cdk/aws_cloudformation/__init__.py +1 -5
- aws_cdk/aws_cloudfront/__init__.py +15 -1
- aws_cdk/aws_cloudfront_origins/__init__.py +4 -2
- aws_cdk/aws_cloudtrail/__init__.py +4 -18
- aws_cdk/aws_cloudwatch/__init__.py +50 -50
- aws_cdk/aws_codeartifact/__init__.py +20 -33
- aws_cdk/aws_codebuild/__init__.py +9 -0
- aws_cdk/aws_codepipeline/__init__.py +1328 -120
- aws_cdk/aws_cognito/__init__.py +1 -1
- aws_cdk/aws_cognito_identitypool/__init__.py +2303 -0
- aws_cdk/aws_config/__init__.py +2 -5
- aws_cdk/aws_connect/__init__.py +3 -7
- aws_cdk/aws_controltower/__init__.py +18 -26
- aws_cdk/aws_datazone/__init__.py +3540 -10
- aws_cdk/aws_detective/__init__.py +3 -3
- aws_cdk/aws_dynamodb/__init__.py +37 -0
- aws_cdk/aws_ec2/__init__.py +714 -37
- aws_cdk/aws_ecr/__init__.py +143 -0
- aws_cdk/aws_ecr_assets/__init__.py +115 -4
- aws_cdk/aws_ecs/__init__.py +66 -20
- aws_cdk/aws_eks/__init__.py +114 -0
- aws_cdk/aws_events/__init__.py +26 -6
- aws_cdk/aws_forecast/__init__.py +1 -1
- aws_cdk/aws_fsx/__init__.py +2 -2
- aws_cdk/aws_gamelift/__init__.py +11 -11
- aws_cdk/aws_iam/__init__.py +264 -0
- aws_cdk/aws_identitystore/__init__.py +16 -16
- aws_cdk/aws_imagebuilder/__init__.py +3 -27
- aws_cdk/aws_iotsitewise/__init__.py +623 -0
- aws_cdk/aws_kinesisfirehose/__init__.py +2 -3
- aws_cdk/aws_kms/__init__.py +10 -11
- aws_cdk/aws_lakeformation/__init__.py +3 -3
- aws_cdk/aws_lambda/__init__.py +112 -5
- aws_cdk/aws_lambda_event_sources/__init__.py +65 -3
- aws_cdk/aws_lambda_nodejs/__init__.py +5 -24
- aws_cdk/aws_lex/__init__.py +981 -5
- aws_cdk/aws_location/__init__.py +24 -7
- aws_cdk/aws_mediaconnect/__init__.py +714 -290
- aws_cdk/aws_msk/__init__.py +8 -2
- aws_cdk/aws_mwaa/__init__.py +9 -9
- aws_cdk/aws_networkfirewall/__init__.py +60 -12
- aws_cdk/aws_oam/__init__.py +8 -37
- aws_cdk/aws_omics/__init__.py +216 -0
- aws_cdk/aws_quicksight/__init__.py +250 -108
- aws_cdk/aws_rds/__init__.py +102 -10
- aws_cdk/aws_redshiftserverless/__init__.py +192 -15
- aws_cdk/aws_route53/__init__.py +2 -2
- aws_cdk/aws_route53recoverycontrol/__init__.py +43 -2
- aws_cdk/aws_rum/__init__.py +315 -52
- aws_cdk/aws_s3_assets/__init__.py +70 -1
- aws_cdk/aws_s3_deployment/__init__.py +4 -0
- aws_cdk/aws_sagemaker/__init__.py +6 -4
- aws_cdk/aws_scheduler/__init__.py +3944 -121
- aws_cdk/aws_scheduler_targets/__init__.py +4460 -0
- aws_cdk/aws_securitylake/__init__.py +2 -2
- aws_cdk/aws_servicecatalog/__init__.py +4 -0
- aws_cdk/aws_sns/__init__.py +1 -1
- aws_cdk/aws_ssmquicksetup/__init__.py +5 -3
- aws_cdk/aws_stepfunctions/__init__.py +8 -0
- aws_cdk/aws_stepfunctions_tasks/__init__.py +4 -0
- aws_cdk/aws_synthetics/__init__.py +9 -0
- aws_cdk/aws_systemsmanagersap/__init__.py +150 -0
- aws_cdk/aws_timestream/__init__.py +4 -4
- aws_cdk/aws_wafv2/__init__.py +1117 -1446
- aws_cdk/aws_workspacesthinclient/__init__.py +4 -4
- aws_cdk/cloud_assembly_schema/__init__.py +60 -10
- aws_cdk/cx_api/__init__.py +38 -0
- aws_cdk/pipelines/__init__.py +20 -2
- {aws_cdk_lib-2.185.0.dist-info → aws_cdk_lib-2.187.0.dist-info}/METADATA +4 -4
- {aws_cdk_lib-2.185.0.dist-info → aws_cdk_lib-2.187.0.dist-info}/RECORD +87 -85
- {aws_cdk_lib-2.185.0.dist-info → aws_cdk_lib-2.187.0.dist-info}/WHEEL +1 -1
- {aws_cdk_lib-2.185.0.dist-info → aws_cdk_lib-2.187.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.185.0.dist-info → aws_cdk_lib-2.187.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.185.0.dist-info → aws_cdk_lib-2.187.0.dist-info}/top_level.txt +0 -0
aws_cdk/aws_wafv2/__init__.py
CHANGED
|
@@ -1908,502 +1908,7 @@ class CfnRuleGroup(
|
|
|
1908
1908
|
|
|
1909
1909
|
Example::
|
|
1910
1910
|
|
|
1911
|
-
|
|
1912
|
-
# The values are placeholders you should change.
|
|
1913
|
-
from aws_cdk import aws_wafv2 as wafv2
|
|
1914
|
-
|
|
1915
|
-
# all: Any
|
|
1916
|
-
# allow: Any
|
|
1917
|
-
# all_query_arguments: Any
|
|
1918
|
-
# block: Any
|
|
1919
|
-
# captcha: Any
|
|
1920
|
-
# challenge: Any
|
|
1921
|
-
# count: Any
|
|
1922
|
-
# forwarded_ip: Any
|
|
1923
|
-
# http_method: Any
|
|
1924
|
-
# ip: Any
|
|
1925
|
-
# method: Any
|
|
1926
|
-
# query_string: Any
|
|
1927
|
-
# single_header: Any
|
|
1928
|
-
# single_query_argument: Any
|
|
1929
|
-
# statement_property_: wafv2.CfnRuleGroup.StatementProperty
|
|
1930
|
-
# uri_path: Any
|
|
1931
|
-
|
|
1932
|
-
cfn_rule_group = wafv2.CfnRuleGroup(self, "MyCfnRuleGroup",
|
|
1933
|
-
capacity=123,
|
|
1934
|
-
scope="scope",
|
|
1935
|
-
visibility_config=wafv2.CfnRuleGroup.VisibilityConfigProperty(
|
|
1936
|
-
cloud_watch_metrics_enabled=False,
|
|
1937
|
-
metric_name="metricName",
|
|
1938
|
-
sampled_requests_enabled=False
|
|
1939
|
-
),
|
|
1940
|
-
|
|
1941
|
-
# the properties below are optional
|
|
1942
|
-
available_labels=[wafv2.CfnRuleGroup.LabelSummaryProperty(
|
|
1943
|
-
name="name"
|
|
1944
|
-
)],
|
|
1945
|
-
consumed_labels=[wafv2.CfnRuleGroup.LabelSummaryProperty(
|
|
1946
|
-
name="name"
|
|
1947
|
-
)],
|
|
1948
|
-
custom_response_bodies={
|
|
1949
|
-
"custom_response_bodies_key": wafv2.CfnRuleGroup.CustomResponseBodyProperty(
|
|
1950
|
-
content="content",
|
|
1951
|
-
content_type="contentType"
|
|
1952
|
-
)
|
|
1953
|
-
},
|
|
1954
|
-
description="description",
|
|
1955
|
-
name="name",
|
|
1956
|
-
rules=[wafv2.CfnRuleGroup.RuleProperty(
|
|
1957
|
-
name="name",
|
|
1958
|
-
priority=123,
|
|
1959
|
-
statement=wafv2.CfnRuleGroup.StatementProperty(
|
|
1960
|
-
and_statement=wafv2.CfnRuleGroup.AndStatementProperty(
|
|
1961
|
-
statements=[statement_property_]
|
|
1962
|
-
),
|
|
1963
|
-
byte_match_statement=wafv2.CfnRuleGroup.ByteMatchStatementProperty(
|
|
1964
|
-
field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
|
|
1965
|
-
all_query_arguments=all_query_arguments,
|
|
1966
|
-
body=wafv2.CfnRuleGroup.BodyProperty(
|
|
1967
|
-
oversize_handling="oversizeHandling"
|
|
1968
|
-
),
|
|
1969
|
-
cookies=wafv2.CfnRuleGroup.CookiesProperty(
|
|
1970
|
-
match_pattern=wafv2.CfnRuleGroup.CookieMatchPatternProperty(
|
|
1971
|
-
all=all,
|
|
1972
|
-
excluded_cookies=["excludedCookies"],
|
|
1973
|
-
included_cookies=["includedCookies"]
|
|
1974
|
-
),
|
|
1975
|
-
match_scope="matchScope",
|
|
1976
|
-
oversize_handling="oversizeHandling"
|
|
1977
|
-
),
|
|
1978
|
-
headers=wafv2.CfnRuleGroup.HeadersProperty(
|
|
1979
|
-
match_pattern=wafv2.CfnRuleGroup.HeaderMatchPatternProperty(
|
|
1980
|
-
all=all,
|
|
1981
|
-
excluded_headers=["excludedHeaders"],
|
|
1982
|
-
included_headers=["includedHeaders"]
|
|
1983
|
-
),
|
|
1984
|
-
match_scope="matchScope",
|
|
1985
|
-
oversize_handling="oversizeHandling"
|
|
1986
|
-
),
|
|
1987
|
-
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
1988
|
-
fallback_behavior="fallbackBehavior"
|
|
1989
|
-
),
|
|
1990
|
-
ja4_fingerprint=wafv2.CfnRuleGroup.JA4FingerprintProperty(
|
|
1991
|
-
fallback_behavior="fallbackBehavior"
|
|
1992
|
-
),
|
|
1993
|
-
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
1994
|
-
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
1995
|
-
all=all,
|
|
1996
|
-
included_paths=["includedPaths"]
|
|
1997
|
-
),
|
|
1998
|
-
match_scope="matchScope",
|
|
1999
|
-
|
|
2000
|
-
# the properties below are optional
|
|
2001
|
-
invalid_fallback_behavior="invalidFallbackBehavior",
|
|
2002
|
-
oversize_handling="oversizeHandling"
|
|
2003
|
-
),
|
|
2004
|
-
method=method,
|
|
2005
|
-
query_string=query_string,
|
|
2006
|
-
single_header=single_header,
|
|
2007
|
-
single_query_argument=single_query_argument,
|
|
2008
|
-
uri_path=uri_path
|
|
2009
|
-
),
|
|
2010
|
-
positional_constraint="positionalConstraint",
|
|
2011
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
2012
|
-
priority=123,
|
|
2013
|
-
type="type"
|
|
2014
|
-
)],
|
|
2015
|
-
|
|
2016
|
-
# the properties below are optional
|
|
2017
|
-
search_string="searchString",
|
|
2018
|
-
search_string_base64="searchStringBase64"
|
|
2019
|
-
),
|
|
2020
|
-
geo_match_statement=wafv2.CfnRuleGroup.GeoMatchStatementProperty(
|
|
2021
|
-
country_codes=["countryCodes"],
|
|
2022
|
-
forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
|
|
2023
|
-
fallback_behavior="fallbackBehavior",
|
|
2024
|
-
header_name="headerName"
|
|
2025
|
-
)
|
|
2026
|
-
),
|
|
2027
|
-
ip_set_reference_statement={
|
|
2028
|
-
"arn": "arn",
|
|
2029
|
-
|
|
2030
|
-
# the properties below are optional
|
|
2031
|
-
"ip_set_forwarded_ip_config": {
|
|
2032
|
-
"fallback_behavior": "fallbackBehavior",
|
|
2033
|
-
"header_name": "headerName",
|
|
2034
|
-
"position": "position"
|
|
2035
|
-
}
|
|
2036
|
-
},
|
|
2037
|
-
label_match_statement=wafv2.CfnRuleGroup.LabelMatchStatementProperty(
|
|
2038
|
-
key="key",
|
|
2039
|
-
scope="scope"
|
|
2040
|
-
),
|
|
2041
|
-
not_statement=wafv2.CfnRuleGroup.NotStatementProperty(
|
|
2042
|
-
statement=statement_property_
|
|
2043
|
-
),
|
|
2044
|
-
or_statement=wafv2.CfnRuleGroup.OrStatementProperty(
|
|
2045
|
-
statements=[statement_property_]
|
|
2046
|
-
),
|
|
2047
|
-
rate_based_statement=wafv2.CfnRuleGroup.RateBasedStatementProperty(
|
|
2048
|
-
aggregate_key_type="aggregateKeyType",
|
|
2049
|
-
limit=123,
|
|
2050
|
-
|
|
2051
|
-
# the properties below are optional
|
|
2052
|
-
custom_keys=[wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
|
|
2053
|
-
cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
|
|
2054
|
-
name="name",
|
|
2055
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
2056
|
-
priority=123,
|
|
2057
|
-
type="type"
|
|
2058
|
-
)]
|
|
2059
|
-
),
|
|
2060
|
-
forwarded_ip=forwarded_ip,
|
|
2061
|
-
header=wafv2.CfnRuleGroup.RateLimitHeaderProperty(
|
|
2062
|
-
name="name",
|
|
2063
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
2064
|
-
priority=123,
|
|
2065
|
-
type="type"
|
|
2066
|
-
)]
|
|
2067
|
-
),
|
|
2068
|
-
http_method=http_method,
|
|
2069
|
-
ip=ip,
|
|
2070
|
-
ja3_fingerprint=wafv2.CfnRuleGroup.RateLimitJA3FingerprintProperty(
|
|
2071
|
-
fallback_behavior="fallbackBehavior"
|
|
2072
|
-
),
|
|
2073
|
-
ja4_fingerprint=wafv2.CfnRuleGroup.RateLimitJA4FingerprintProperty(
|
|
2074
|
-
fallback_behavior="fallbackBehavior"
|
|
2075
|
-
),
|
|
2076
|
-
label_namespace=wafv2.CfnRuleGroup.RateLimitLabelNamespaceProperty(
|
|
2077
|
-
namespace="namespace"
|
|
2078
|
-
),
|
|
2079
|
-
query_argument=wafv2.CfnRuleGroup.RateLimitQueryArgumentProperty(
|
|
2080
|
-
name="name",
|
|
2081
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
2082
|
-
priority=123,
|
|
2083
|
-
type="type"
|
|
2084
|
-
)]
|
|
2085
|
-
),
|
|
2086
|
-
query_string=wafv2.CfnRuleGroup.RateLimitQueryStringProperty(
|
|
2087
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
2088
|
-
priority=123,
|
|
2089
|
-
type="type"
|
|
2090
|
-
)]
|
|
2091
|
-
),
|
|
2092
|
-
uri_path=wafv2.CfnRuleGroup.RateLimitUriPathProperty(
|
|
2093
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
2094
|
-
priority=123,
|
|
2095
|
-
type="type"
|
|
2096
|
-
)]
|
|
2097
|
-
)
|
|
2098
|
-
)],
|
|
2099
|
-
evaluation_window_sec=123,
|
|
2100
|
-
forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
|
|
2101
|
-
fallback_behavior="fallbackBehavior",
|
|
2102
|
-
header_name="headerName"
|
|
2103
|
-
),
|
|
2104
|
-
scope_down_statement=statement_property_
|
|
2105
|
-
),
|
|
2106
|
-
regex_match_statement=wafv2.CfnRuleGroup.RegexMatchStatementProperty(
|
|
2107
|
-
field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
|
|
2108
|
-
all_query_arguments=all_query_arguments,
|
|
2109
|
-
body=wafv2.CfnRuleGroup.BodyProperty(
|
|
2110
|
-
oversize_handling="oversizeHandling"
|
|
2111
|
-
),
|
|
2112
|
-
cookies=wafv2.CfnRuleGroup.CookiesProperty(
|
|
2113
|
-
match_pattern=wafv2.CfnRuleGroup.CookieMatchPatternProperty(
|
|
2114
|
-
all=all,
|
|
2115
|
-
excluded_cookies=["excludedCookies"],
|
|
2116
|
-
included_cookies=["includedCookies"]
|
|
2117
|
-
),
|
|
2118
|
-
match_scope="matchScope",
|
|
2119
|
-
oversize_handling="oversizeHandling"
|
|
2120
|
-
),
|
|
2121
|
-
headers=wafv2.CfnRuleGroup.HeadersProperty(
|
|
2122
|
-
match_pattern=wafv2.CfnRuleGroup.HeaderMatchPatternProperty(
|
|
2123
|
-
all=all,
|
|
2124
|
-
excluded_headers=["excludedHeaders"],
|
|
2125
|
-
included_headers=["includedHeaders"]
|
|
2126
|
-
),
|
|
2127
|
-
match_scope="matchScope",
|
|
2128
|
-
oversize_handling="oversizeHandling"
|
|
2129
|
-
),
|
|
2130
|
-
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
2131
|
-
fallback_behavior="fallbackBehavior"
|
|
2132
|
-
),
|
|
2133
|
-
ja4_fingerprint=wafv2.CfnRuleGroup.JA4FingerprintProperty(
|
|
2134
|
-
fallback_behavior="fallbackBehavior"
|
|
2135
|
-
),
|
|
2136
|
-
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2137
|
-
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2138
|
-
all=all,
|
|
2139
|
-
included_paths=["includedPaths"]
|
|
2140
|
-
),
|
|
2141
|
-
match_scope="matchScope",
|
|
2142
|
-
|
|
2143
|
-
# the properties below are optional
|
|
2144
|
-
invalid_fallback_behavior="invalidFallbackBehavior",
|
|
2145
|
-
oversize_handling="oversizeHandling"
|
|
2146
|
-
),
|
|
2147
|
-
method=method,
|
|
2148
|
-
query_string=query_string,
|
|
2149
|
-
single_header=single_header,
|
|
2150
|
-
single_query_argument=single_query_argument,
|
|
2151
|
-
uri_path=uri_path
|
|
2152
|
-
),
|
|
2153
|
-
regex_string="regexString",
|
|
2154
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
2155
|
-
priority=123,
|
|
2156
|
-
type="type"
|
|
2157
|
-
)]
|
|
2158
|
-
),
|
|
2159
|
-
regex_pattern_set_reference_statement=wafv2.CfnRuleGroup.RegexPatternSetReferenceStatementProperty(
|
|
2160
|
-
arn="arn",
|
|
2161
|
-
field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
|
|
2162
|
-
all_query_arguments=all_query_arguments,
|
|
2163
|
-
body=wafv2.CfnRuleGroup.BodyProperty(
|
|
2164
|
-
oversize_handling="oversizeHandling"
|
|
2165
|
-
),
|
|
2166
|
-
cookies=wafv2.CfnRuleGroup.CookiesProperty(
|
|
2167
|
-
match_pattern=wafv2.CfnRuleGroup.CookieMatchPatternProperty(
|
|
2168
|
-
all=all,
|
|
2169
|
-
excluded_cookies=["excludedCookies"],
|
|
2170
|
-
included_cookies=["includedCookies"]
|
|
2171
|
-
),
|
|
2172
|
-
match_scope="matchScope",
|
|
2173
|
-
oversize_handling="oversizeHandling"
|
|
2174
|
-
),
|
|
2175
|
-
headers=wafv2.CfnRuleGroup.HeadersProperty(
|
|
2176
|
-
match_pattern=wafv2.CfnRuleGroup.HeaderMatchPatternProperty(
|
|
2177
|
-
all=all,
|
|
2178
|
-
excluded_headers=["excludedHeaders"],
|
|
2179
|
-
included_headers=["includedHeaders"]
|
|
2180
|
-
),
|
|
2181
|
-
match_scope="matchScope",
|
|
2182
|
-
oversize_handling="oversizeHandling"
|
|
2183
|
-
),
|
|
2184
|
-
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
2185
|
-
fallback_behavior="fallbackBehavior"
|
|
2186
|
-
),
|
|
2187
|
-
ja4_fingerprint=wafv2.CfnRuleGroup.JA4FingerprintProperty(
|
|
2188
|
-
fallback_behavior="fallbackBehavior"
|
|
2189
|
-
),
|
|
2190
|
-
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2191
|
-
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2192
|
-
all=all,
|
|
2193
|
-
included_paths=["includedPaths"]
|
|
2194
|
-
),
|
|
2195
|
-
match_scope="matchScope",
|
|
2196
|
-
|
|
2197
|
-
# the properties below are optional
|
|
2198
|
-
invalid_fallback_behavior="invalidFallbackBehavior",
|
|
2199
|
-
oversize_handling="oversizeHandling"
|
|
2200
|
-
),
|
|
2201
|
-
method=method,
|
|
2202
|
-
query_string=query_string,
|
|
2203
|
-
single_header=single_header,
|
|
2204
|
-
single_query_argument=single_query_argument,
|
|
2205
|
-
uri_path=uri_path
|
|
2206
|
-
),
|
|
2207
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
2208
|
-
priority=123,
|
|
2209
|
-
type="type"
|
|
2210
|
-
)]
|
|
2211
|
-
),
|
|
2212
|
-
size_constraint_statement=wafv2.CfnRuleGroup.SizeConstraintStatementProperty(
|
|
2213
|
-
comparison_operator="comparisonOperator",
|
|
2214
|
-
field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
|
|
2215
|
-
all_query_arguments=all_query_arguments,
|
|
2216
|
-
body=wafv2.CfnRuleGroup.BodyProperty(
|
|
2217
|
-
oversize_handling="oversizeHandling"
|
|
2218
|
-
),
|
|
2219
|
-
cookies=wafv2.CfnRuleGroup.CookiesProperty(
|
|
2220
|
-
match_pattern=wafv2.CfnRuleGroup.CookieMatchPatternProperty(
|
|
2221
|
-
all=all,
|
|
2222
|
-
excluded_cookies=["excludedCookies"],
|
|
2223
|
-
included_cookies=["includedCookies"]
|
|
2224
|
-
),
|
|
2225
|
-
match_scope="matchScope",
|
|
2226
|
-
oversize_handling="oversizeHandling"
|
|
2227
|
-
),
|
|
2228
|
-
headers=wafv2.CfnRuleGroup.HeadersProperty(
|
|
2229
|
-
match_pattern=wafv2.CfnRuleGroup.HeaderMatchPatternProperty(
|
|
2230
|
-
all=all,
|
|
2231
|
-
excluded_headers=["excludedHeaders"],
|
|
2232
|
-
included_headers=["includedHeaders"]
|
|
2233
|
-
),
|
|
2234
|
-
match_scope="matchScope",
|
|
2235
|
-
oversize_handling="oversizeHandling"
|
|
2236
|
-
),
|
|
2237
|
-
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
2238
|
-
fallback_behavior="fallbackBehavior"
|
|
2239
|
-
),
|
|
2240
|
-
ja4_fingerprint=wafv2.CfnRuleGroup.JA4FingerprintProperty(
|
|
2241
|
-
fallback_behavior="fallbackBehavior"
|
|
2242
|
-
),
|
|
2243
|
-
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2244
|
-
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2245
|
-
all=all,
|
|
2246
|
-
included_paths=["includedPaths"]
|
|
2247
|
-
),
|
|
2248
|
-
match_scope="matchScope",
|
|
2249
|
-
|
|
2250
|
-
# the properties below are optional
|
|
2251
|
-
invalid_fallback_behavior="invalidFallbackBehavior",
|
|
2252
|
-
oversize_handling="oversizeHandling"
|
|
2253
|
-
),
|
|
2254
|
-
method=method,
|
|
2255
|
-
query_string=query_string,
|
|
2256
|
-
single_header=single_header,
|
|
2257
|
-
single_query_argument=single_query_argument,
|
|
2258
|
-
uri_path=uri_path
|
|
2259
|
-
),
|
|
2260
|
-
size=123,
|
|
2261
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
2262
|
-
priority=123,
|
|
2263
|
-
type="type"
|
|
2264
|
-
)]
|
|
2265
|
-
),
|
|
2266
|
-
sqli_match_statement=wafv2.CfnRuleGroup.SqliMatchStatementProperty(
|
|
2267
|
-
field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
|
|
2268
|
-
all_query_arguments=all_query_arguments,
|
|
2269
|
-
body=wafv2.CfnRuleGroup.BodyProperty(
|
|
2270
|
-
oversize_handling="oversizeHandling"
|
|
2271
|
-
),
|
|
2272
|
-
cookies=wafv2.CfnRuleGroup.CookiesProperty(
|
|
2273
|
-
match_pattern=wafv2.CfnRuleGroup.CookieMatchPatternProperty(
|
|
2274
|
-
all=all,
|
|
2275
|
-
excluded_cookies=["excludedCookies"],
|
|
2276
|
-
included_cookies=["includedCookies"]
|
|
2277
|
-
),
|
|
2278
|
-
match_scope="matchScope",
|
|
2279
|
-
oversize_handling="oversizeHandling"
|
|
2280
|
-
),
|
|
2281
|
-
headers=wafv2.CfnRuleGroup.HeadersProperty(
|
|
2282
|
-
match_pattern=wafv2.CfnRuleGroup.HeaderMatchPatternProperty(
|
|
2283
|
-
all=all,
|
|
2284
|
-
excluded_headers=["excludedHeaders"],
|
|
2285
|
-
included_headers=["includedHeaders"]
|
|
2286
|
-
),
|
|
2287
|
-
match_scope="matchScope",
|
|
2288
|
-
oversize_handling="oversizeHandling"
|
|
2289
|
-
),
|
|
2290
|
-
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
2291
|
-
fallback_behavior="fallbackBehavior"
|
|
2292
|
-
),
|
|
2293
|
-
ja4_fingerprint=wafv2.CfnRuleGroup.JA4FingerprintProperty(
|
|
2294
|
-
fallback_behavior="fallbackBehavior"
|
|
2295
|
-
),
|
|
2296
|
-
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2297
|
-
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2298
|
-
all=all,
|
|
2299
|
-
included_paths=["includedPaths"]
|
|
2300
|
-
),
|
|
2301
|
-
match_scope="matchScope",
|
|
2302
|
-
|
|
2303
|
-
# the properties below are optional
|
|
2304
|
-
invalid_fallback_behavior="invalidFallbackBehavior",
|
|
2305
|
-
oversize_handling="oversizeHandling"
|
|
2306
|
-
),
|
|
2307
|
-
method=method,
|
|
2308
|
-
query_string=query_string,
|
|
2309
|
-
single_header=single_header,
|
|
2310
|
-
single_query_argument=single_query_argument,
|
|
2311
|
-
uri_path=uri_path
|
|
2312
|
-
),
|
|
2313
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
2314
|
-
priority=123,
|
|
2315
|
-
type="type"
|
|
2316
|
-
)],
|
|
2317
|
-
|
|
2318
|
-
# the properties below are optional
|
|
2319
|
-
sensitivity_level="sensitivityLevel"
|
|
2320
|
-
),
|
|
2321
|
-
xss_match_statement=wafv2.CfnRuleGroup.XssMatchStatementProperty(
|
|
2322
|
-
field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
|
|
2323
|
-
all_query_arguments=all_query_arguments,
|
|
2324
|
-
body=wafv2.CfnRuleGroup.BodyProperty(
|
|
2325
|
-
oversize_handling="oversizeHandling"
|
|
2326
|
-
),
|
|
2327
|
-
cookies=wafv2.CfnRuleGroup.CookiesProperty(
|
|
2328
|
-
match_pattern=wafv2.CfnRuleGroup.CookieMatchPatternProperty(
|
|
2329
|
-
all=all,
|
|
2330
|
-
excluded_cookies=["excludedCookies"],
|
|
2331
|
-
included_cookies=["includedCookies"]
|
|
2332
|
-
),
|
|
2333
|
-
match_scope="matchScope",
|
|
2334
|
-
oversize_handling="oversizeHandling"
|
|
2335
|
-
),
|
|
2336
|
-
headers=wafv2.CfnRuleGroup.HeadersProperty(
|
|
2337
|
-
match_pattern=wafv2.CfnRuleGroup.HeaderMatchPatternProperty(
|
|
2338
|
-
all=all,
|
|
2339
|
-
excluded_headers=["excludedHeaders"],
|
|
2340
|
-
included_headers=["includedHeaders"]
|
|
2341
|
-
),
|
|
2342
|
-
match_scope="matchScope",
|
|
2343
|
-
oversize_handling="oversizeHandling"
|
|
2344
|
-
),
|
|
2345
|
-
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
2346
|
-
fallback_behavior="fallbackBehavior"
|
|
2347
|
-
),
|
|
2348
|
-
ja4_fingerprint=wafv2.CfnRuleGroup.JA4FingerprintProperty(
|
|
2349
|
-
fallback_behavior="fallbackBehavior"
|
|
2350
|
-
),
|
|
2351
|
-
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
2352
|
-
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
2353
|
-
all=all,
|
|
2354
|
-
included_paths=["includedPaths"]
|
|
2355
|
-
),
|
|
2356
|
-
match_scope="matchScope",
|
|
2357
|
-
|
|
2358
|
-
# the properties below are optional
|
|
2359
|
-
invalid_fallback_behavior="invalidFallbackBehavior",
|
|
2360
|
-
oversize_handling="oversizeHandling"
|
|
2361
|
-
),
|
|
2362
|
-
method=method,
|
|
2363
|
-
query_string=query_string,
|
|
2364
|
-
single_header=single_header,
|
|
2365
|
-
single_query_argument=single_query_argument,
|
|
2366
|
-
uri_path=uri_path
|
|
2367
|
-
),
|
|
2368
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
2369
|
-
priority=123,
|
|
2370
|
-
type="type"
|
|
2371
|
-
)]
|
|
2372
|
-
)
|
|
2373
|
-
),
|
|
2374
|
-
visibility_config=wafv2.CfnRuleGroup.VisibilityConfigProperty(
|
|
2375
|
-
cloud_watch_metrics_enabled=False,
|
|
2376
|
-
metric_name="metricName",
|
|
2377
|
-
sampled_requests_enabled=False
|
|
2378
|
-
),
|
|
2379
|
-
|
|
2380
|
-
# the properties below are optional
|
|
2381
|
-
action=wafv2.CfnRuleGroup.RuleActionProperty(
|
|
2382
|
-
allow=allow,
|
|
2383
|
-
block=block,
|
|
2384
|
-
captcha=captcha,
|
|
2385
|
-
challenge=challenge,
|
|
2386
|
-
count=count
|
|
2387
|
-
),
|
|
2388
|
-
captcha_config=wafv2.CfnRuleGroup.CaptchaConfigProperty(
|
|
2389
|
-
immunity_time_property=wafv2.CfnRuleGroup.ImmunityTimePropertyProperty(
|
|
2390
|
-
immunity_time=123
|
|
2391
|
-
)
|
|
2392
|
-
),
|
|
2393
|
-
challenge_config=wafv2.CfnRuleGroup.ChallengeConfigProperty(
|
|
2394
|
-
immunity_time_property=wafv2.CfnRuleGroup.ImmunityTimePropertyProperty(
|
|
2395
|
-
immunity_time=123
|
|
2396
|
-
)
|
|
2397
|
-
),
|
|
2398
|
-
rule_labels=[wafv2.CfnRuleGroup.LabelProperty(
|
|
2399
|
-
name="name"
|
|
2400
|
-
)]
|
|
2401
|
-
)],
|
|
2402
|
-
tags=[CfnTag(
|
|
2403
|
-
key="key",
|
|
2404
|
-
value="value"
|
|
2405
|
-
)]
|
|
2406
|
-
)
|
|
1911
|
+
|
|
2407
1912
|
'''
|
|
2408
1913
|
|
|
2409
1914
|
def __init__(
|
|
@@ -2833,6 +2338,9 @@ class CfnRuleGroup(
|
|
|
2833
2338
|
query_string=query_string,
|
|
2834
2339
|
single_header=single_header,
|
|
2835
2340
|
single_query_argument=single_query_argument,
|
|
2341
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
2342
|
+
fallback_behavior="fallbackBehavior"
|
|
2343
|
+
),
|
|
2836
2344
|
uri_path=uri_path
|
|
2837
2345
|
),
|
|
2838
2346
|
positional_constraint="positionalConstraint",
|
|
@@ -2976,6 +2484,9 @@ class CfnRuleGroup(
|
|
|
2976
2484
|
query_string=query_string,
|
|
2977
2485
|
single_header=single_header,
|
|
2978
2486
|
single_query_argument=single_query_argument,
|
|
2487
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
2488
|
+
fallback_behavior="fallbackBehavior"
|
|
2489
|
+
),
|
|
2979
2490
|
uri_path=uri_path
|
|
2980
2491
|
),
|
|
2981
2492
|
regex_string="regexString",
|
|
@@ -3030,6 +2541,9 @@ class CfnRuleGroup(
|
|
|
3030
2541
|
query_string=query_string,
|
|
3031
2542
|
single_header=single_header,
|
|
3032
2543
|
single_query_argument=single_query_argument,
|
|
2544
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
2545
|
+
fallback_behavior="fallbackBehavior"
|
|
2546
|
+
),
|
|
3033
2547
|
uri_path=uri_path
|
|
3034
2548
|
),
|
|
3035
2549
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -3083,6 +2597,9 @@ class CfnRuleGroup(
|
|
|
3083
2597
|
query_string=query_string,
|
|
3084
2598
|
single_header=single_header,
|
|
3085
2599
|
single_query_argument=single_query_argument,
|
|
2600
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
2601
|
+
fallback_behavior="fallbackBehavior"
|
|
2602
|
+
),
|
|
3086
2603
|
uri_path=uri_path
|
|
3087
2604
|
),
|
|
3088
2605
|
size=123,
|
|
@@ -3136,6 +2653,9 @@ class CfnRuleGroup(
|
|
|
3136
2653
|
query_string=query_string,
|
|
3137
2654
|
single_header=single_header,
|
|
3138
2655
|
single_query_argument=single_query_argument,
|
|
2656
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
2657
|
+
fallback_behavior="fallbackBehavior"
|
|
2658
|
+
),
|
|
3139
2659
|
uri_path=uri_path
|
|
3140
2660
|
),
|
|
3141
2661
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -3191,6 +2711,9 @@ class CfnRuleGroup(
|
|
|
3191
2711
|
query_string=query_string,
|
|
3192
2712
|
single_header=single_header,
|
|
3193
2713
|
single_query_argument=single_query_argument,
|
|
2714
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
2715
|
+
fallback_behavior="fallbackBehavior"
|
|
2716
|
+
),
|
|
3194
2717
|
uri_path=uri_path
|
|
3195
2718
|
),
|
|
3196
2719
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -3464,6 +2987,9 @@ class CfnRuleGroup(
|
|
|
3464
2987
|
query_string=query_string,
|
|
3465
2988
|
single_header=single_header,
|
|
3466
2989
|
single_query_argument=single_query_argument,
|
|
2990
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
2991
|
+
fallback_behavior="fallbackBehavior"
|
|
2992
|
+
),
|
|
3467
2993
|
uri_path=uri_path
|
|
3468
2994
|
),
|
|
3469
2995
|
positional_constraint="positionalConstraint",
|
|
@@ -4457,6 +3983,7 @@ class CfnRuleGroup(
|
|
|
4457
3983
|
"query_string": "queryString",
|
|
4458
3984
|
"single_header": "singleHeader",
|
|
4459
3985
|
"single_query_argument": "singleQueryArgument",
|
|
3986
|
+
"uri_fragment": "uriFragment",
|
|
4460
3987
|
"uri_path": "uriPath",
|
|
4461
3988
|
},
|
|
4462
3989
|
)
|
|
@@ -4475,6 +4002,7 @@ class CfnRuleGroup(
|
|
|
4475
4002
|
query_string: typing.Any = None,
|
|
4476
4003
|
single_header: typing.Any = None,
|
|
4477
4004
|
single_query_argument: typing.Any = None,
|
|
4005
|
+
uri_fragment: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.UriFragmentProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
4478
4006
|
uri_path: typing.Any = None,
|
|
4479
4007
|
) -> None:
|
|
4480
4008
|
'''Specifies a web request component to be used in a rule match statement or in a logging configuration.
|
|
@@ -4505,6 +4033,7 @@ class CfnRuleGroup(
|
|
|
4505
4033
|
:param query_string: Inspect the query string. This is the part of a URL that appears after a ``?`` character, if any.
|
|
4506
4034
|
:param single_header: Inspect a single header. Provide the name of the header to inspect, for example, ``User-Agent`` or ``Referer`` . This setting isn't case sensitive. Example JSON: ``"SingleHeader": { "Name": "haystack" }`` Alternately, you can filter and inspect all headers with the ``Headers`` ``FieldToMatch`` setting.
|
|
4507
4035
|
:param single_query_argument: Inspect a single query argument. Provide the name of the query argument to inspect, such as *UserName* or *SalesRegion* . The name can be up to 30 characters long and isn't case sensitive. Example JSON: ``"SingleQueryArgument": { "Name": "myArgument" }``
|
|
4036
|
+
:param uri_fragment: The path component of the URI Fragment. This is the part of a web request that identifies a fragment uri, for example, /abcd#introduction
|
|
4508
4037
|
:param uri_path: Inspect the request URI path. This is the part of the web request that identifies a resource, for example, ``/images/daily-ad.jpg`` .
|
|
4509
4038
|
|
|
4510
4039
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html
|
|
@@ -4568,6 +4097,9 @@ class CfnRuleGroup(
|
|
|
4568
4097
|
query_string=query_string,
|
|
4569
4098
|
single_header=single_header,
|
|
4570
4099
|
single_query_argument=single_query_argument,
|
|
4100
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
4101
|
+
fallback_behavior="fallbackBehavior"
|
|
4102
|
+
),
|
|
4571
4103
|
uri_path=uri_path
|
|
4572
4104
|
)
|
|
4573
4105
|
'''
|
|
@@ -4584,6 +4116,7 @@ class CfnRuleGroup(
|
|
|
4584
4116
|
check_type(argname="argument query_string", value=query_string, expected_type=type_hints["query_string"])
|
|
4585
4117
|
check_type(argname="argument single_header", value=single_header, expected_type=type_hints["single_header"])
|
|
4586
4118
|
check_type(argname="argument single_query_argument", value=single_query_argument, expected_type=type_hints["single_query_argument"])
|
|
4119
|
+
check_type(argname="argument uri_fragment", value=uri_fragment, expected_type=type_hints["uri_fragment"])
|
|
4587
4120
|
check_type(argname="argument uri_path", value=uri_path, expected_type=type_hints["uri_path"])
|
|
4588
4121
|
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
4589
4122
|
if all_query_arguments is not None:
|
|
@@ -4608,6 +4141,8 @@ class CfnRuleGroup(
|
|
|
4608
4141
|
self._values["single_header"] = single_header
|
|
4609
4142
|
if single_query_argument is not None:
|
|
4610
4143
|
self._values["single_query_argument"] = single_query_argument
|
|
4144
|
+
if uri_fragment is not None:
|
|
4145
|
+
self._values["uri_fragment"] = uri_fragment
|
|
4611
4146
|
if uri_path is not None:
|
|
4612
4147
|
self._values["uri_path"] = uri_path
|
|
4613
4148
|
|
|
@@ -4780,6 +4315,19 @@ class CfnRuleGroup(
|
|
|
4780
4315
|
result = self._values.get("single_query_argument")
|
|
4781
4316
|
return typing.cast(typing.Any, result)
|
|
4782
4317
|
|
|
4318
|
+
@builtins.property
|
|
4319
|
+
def uri_fragment(
|
|
4320
|
+
self,
|
|
4321
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.UriFragmentProperty"]]:
|
|
4322
|
+
'''The path component of the URI Fragment.
|
|
4323
|
+
|
|
4324
|
+
This is the part of a web request that identifies a fragment uri, for example, /abcd#introduction
|
|
4325
|
+
|
|
4326
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html#cfn-wafv2-rulegroup-fieldtomatch-urifragment
|
|
4327
|
+
'''
|
|
4328
|
+
result = self._values.get("uri_fragment")
|
|
4329
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.UriFragmentProperty"]], result)
|
|
4330
|
+
|
|
4783
4331
|
@builtins.property
|
|
4784
4332
|
def uri_path(self) -> typing.Any:
|
|
4785
4333
|
'''Inspect the request URI path.
|
|
@@ -6122,6 +5670,9 @@ class CfnRuleGroup(
|
|
|
6122
5670
|
query_string=query_string,
|
|
6123
5671
|
single_header=single_header,
|
|
6124
5672
|
single_query_argument=single_query_argument,
|
|
5673
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
5674
|
+
fallback_behavior="fallbackBehavior"
|
|
5675
|
+
),
|
|
6125
5676
|
uri_path=uri_path
|
|
6126
5677
|
),
|
|
6127
5678
|
positional_constraint="positionalConstraint",
|
|
@@ -6263,6 +5814,9 @@ class CfnRuleGroup(
|
|
|
6263
5814
|
query_string=query_string,
|
|
6264
5815
|
single_header=single_header,
|
|
6265
5816
|
single_query_argument=single_query_argument,
|
|
5817
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
5818
|
+
fallback_behavior="fallbackBehavior"
|
|
5819
|
+
),
|
|
6266
5820
|
uri_path=uri_path
|
|
6267
5821
|
),
|
|
6268
5822
|
regex_string="regexString",
|
|
@@ -6317,6 +5871,9 @@ class CfnRuleGroup(
|
|
|
6317
5871
|
query_string=query_string,
|
|
6318
5872
|
single_header=single_header,
|
|
6319
5873
|
single_query_argument=single_query_argument,
|
|
5874
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
5875
|
+
fallback_behavior="fallbackBehavior"
|
|
5876
|
+
),
|
|
6320
5877
|
uri_path=uri_path
|
|
6321
5878
|
),
|
|
6322
5879
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -6370,6 +5927,9 @@ class CfnRuleGroup(
|
|
|
6370
5927
|
query_string=query_string,
|
|
6371
5928
|
single_header=single_header,
|
|
6372
5929
|
single_query_argument=single_query_argument,
|
|
5930
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
5931
|
+
fallback_behavior="fallbackBehavior"
|
|
5932
|
+
),
|
|
6373
5933
|
uri_path=uri_path
|
|
6374
5934
|
),
|
|
6375
5935
|
size=123,
|
|
@@ -6423,6 +5983,9 @@ class CfnRuleGroup(
|
|
|
6423
5983
|
query_string=query_string,
|
|
6424
5984
|
single_header=single_header,
|
|
6425
5985
|
single_query_argument=single_query_argument,
|
|
5986
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
5987
|
+
fallback_behavior="fallbackBehavior"
|
|
5988
|
+
),
|
|
6426
5989
|
uri_path=uri_path
|
|
6427
5990
|
),
|
|
6428
5991
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -6478,6 +6041,9 @@ class CfnRuleGroup(
|
|
|
6478
6041
|
query_string=query_string,
|
|
6479
6042
|
single_header=single_header,
|
|
6480
6043
|
single_query_argument=single_query_argument,
|
|
6044
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
6045
|
+
fallback_behavior="fallbackBehavior"
|
|
6046
|
+
),
|
|
6481
6047
|
uri_path=uri_path
|
|
6482
6048
|
),
|
|
6483
6049
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -6609,6 +6175,9 @@ class CfnRuleGroup(
|
|
|
6609
6175
|
query_string=query_string,
|
|
6610
6176
|
single_header=single_header,
|
|
6611
6177
|
single_query_argument=single_query_argument,
|
|
6178
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
6179
|
+
fallback_behavior="fallbackBehavior"
|
|
6180
|
+
),
|
|
6612
6181
|
uri_path=uri_path
|
|
6613
6182
|
),
|
|
6614
6183
|
positional_constraint="positionalConstraint",
|
|
@@ -6750,6 +6319,9 @@ class CfnRuleGroup(
|
|
|
6750
6319
|
query_string=query_string,
|
|
6751
6320
|
single_header=single_header,
|
|
6752
6321
|
single_query_argument=single_query_argument,
|
|
6322
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
6323
|
+
fallback_behavior="fallbackBehavior"
|
|
6324
|
+
),
|
|
6753
6325
|
uri_path=uri_path
|
|
6754
6326
|
),
|
|
6755
6327
|
regex_string="regexString",
|
|
@@ -6804,6 +6376,9 @@ class CfnRuleGroup(
|
|
|
6804
6376
|
query_string=query_string,
|
|
6805
6377
|
single_header=single_header,
|
|
6806
6378
|
single_query_argument=single_query_argument,
|
|
6379
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
6380
|
+
fallback_behavior="fallbackBehavior"
|
|
6381
|
+
),
|
|
6807
6382
|
uri_path=uri_path
|
|
6808
6383
|
),
|
|
6809
6384
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -6857,6 +6432,9 @@ class CfnRuleGroup(
|
|
|
6857
6432
|
query_string=query_string,
|
|
6858
6433
|
single_header=single_header,
|
|
6859
6434
|
single_query_argument=single_query_argument,
|
|
6435
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
6436
|
+
fallback_behavior="fallbackBehavior"
|
|
6437
|
+
),
|
|
6860
6438
|
uri_path=uri_path
|
|
6861
6439
|
),
|
|
6862
6440
|
size=123,
|
|
@@ -6910,6 +6488,9 @@ class CfnRuleGroup(
|
|
|
6910
6488
|
query_string=query_string,
|
|
6911
6489
|
single_header=single_header,
|
|
6912
6490
|
single_query_argument=single_query_argument,
|
|
6491
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
6492
|
+
fallback_behavior="fallbackBehavior"
|
|
6493
|
+
),
|
|
6913
6494
|
uri_path=uri_path
|
|
6914
6495
|
),
|
|
6915
6496
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -6965,6 +6546,9 @@ class CfnRuleGroup(
|
|
|
6965
6546
|
query_string=query_string,
|
|
6966
6547
|
single_header=single_header,
|
|
6967
6548
|
single_query_argument=single_query_argument,
|
|
6549
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
6550
|
+
fallback_behavior="fallbackBehavior"
|
|
6551
|
+
),
|
|
6968
6552
|
uri_path=uri_path
|
|
6969
6553
|
),
|
|
6970
6554
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -7513,6 +7097,9 @@ class CfnRuleGroup(
|
|
|
7513
7097
|
query_string=query_string,
|
|
7514
7098
|
single_header=single_header,
|
|
7515
7099
|
single_query_argument=single_query_argument,
|
|
7100
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
7101
|
+
fallback_behavior="fallbackBehavior"
|
|
7102
|
+
),
|
|
7516
7103
|
uri_path=uri_path
|
|
7517
7104
|
),
|
|
7518
7105
|
positional_constraint="positionalConstraint",
|
|
@@ -7598,6 +7185,9 @@ class CfnRuleGroup(
|
|
|
7598
7185
|
query_string=query_string,
|
|
7599
7186
|
single_header=single_header,
|
|
7600
7187
|
single_query_argument=single_query_argument,
|
|
7188
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
7189
|
+
fallback_behavior="fallbackBehavior"
|
|
7190
|
+
),
|
|
7601
7191
|
uri_path=uri_path
|
|
7602
7192
|
),
|
|
7603
7193
|
regex_string="regexString",
|
|
@@ -7652,6 +7242,9 @@ class CfnRuleGroup(
|
|
|
7652
7242
|
query_string=query_string,
|
|
7653
7243
|
single_header=single_header,
|
|
7654
7244
|
single_query_argument=single_query_argument,
|
|
7245
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
7246
|
+
fallback_behavior="fallbackBehavior"
|
|
7247
|
+
),
|
|
7655
7248
|
uri_path=uri_path
|
|
7656
7249
|
),
|
|
7657
7250
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -7705,6 +7298,9 @@ class CfnRuleGroup(
|
|
|
7705
7298
|
query_string=query_string,
|
|
7706
7299
|
single_header=single_header,
|
|
7707
7300
|
single_query_argument=single_query_argument,
|
|
7301
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
7302
|
+
fallback_behavior="fallbackBehavior"
|
|
7303
|
+
),
|
|
7708
7304
|
uri_path=uri_path
|
|
7709
7305
|
),
|
|
7710
7306
|
size=123,
|
|
@@ -7758,6 +7354,9 @@ class CfnRuleGroup(
|
|
|
7758
7354
|
query_string=query_string,
|
|
7759
7355
|
single_header=single_header,
|
|
7760
7356
|
single_query_argument=single_query_argument,
|
|
7357
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
7358
|
+
fallback_behavior="fallbackBehavior"
|
|
7359
|
+
),
|
|
7761
7360
|
uri_path=uri_path
|
|
7762
7361
|
),
|
|
7763
7362
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -7813,6 +7412,9 @@ class CfnRuleGroup(
|
|
|
7813
7412
|
query_string=query_string,
|
|
7814
7413
|
single_header=single_header,
|
|
7815
7414
|
single_query_argument=single_query_argument,
|
|
7415
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
7416
|
+
fallback_behavior="fallbackBehavior"
|
|
7417
|
+
),
|
|
7816
7418
|
uri_path=uri_path
|
|
7817
7419
|
),
|
|
7818
7420
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -8594,6 +8196,9 @@ class CfnRuleGroup(
|
|
|
8594
8196
|
query_string=query_string,
|
|
8595
8197
|
single_header=single_header,
|
|
8596
8198
|
single_query_argument=single_query_argument,
|
|
8199
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
8200
|
+
fallback_behavior="fallbackBehavior"
|
|
8201
|
+
),
|
|
8597
8202
|
uri_path=uri_path
|
|
8598
8203
|
),
|
|
8599
8204
|
regex_string="regexString",
|
|
@@ -8751,6 +8356,9 @@ class CfnRuleGroup(
|
|
|
8751
8356
|
query_string=query_string,
|
|
8752
8357
|
single_header=single_header,
|
|
8753
8358
|
single_query_argument=single_query_argument,
|
|
8359
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
8360
|
+
fallback_behavior="fallbackBehavior"
|
|
8361
|
+
),
|
|
8754
8362
|
uri_path=uri_path
|
|
8755
8363
|
),
|
|
8756
8364
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -9077,6 +8685,9 @@ class CfnRuleGroup(
|
|
|
9077
8685
|
query_string=query_string,
|
|
9078
8686
|
single_header=single_header,
|
|
9079
8687
|
single_query_argument=single_query_argument,
|
|
8688
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
8689
|
+
fallback_behavior="fallbackBehavior"
|
|
8690
|
+
),
|
|
9080
8691
|
uri_path=uri_path
|
|
9081
8692
|
),
|
|
9082
8693
|
positional_constraint="positionalConstraint",
|
|
@@ -9220,6 +8831,9 @@ class CfnRuleGroup(
|
|
|
9220
8831
|
query_string=query_string,
|
|
9221
8832
|
single_header=single_header,
|
|
9222
8833
|
single_query_argument=single_query_argument,
|
|
8834
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
8835
|
+
fallback_behavior="fallbackBehavior"
|
|
8836
|
+
),
|
|
9223
8837
|
uri_path=uri_path
|
|
9224
8838
|
),
|
|
9225
8839
|
regex_string="regexString",
|
|
@@ -9274,6 +8888,9 @@ class CfnRuleGroup(
|
|
|
9274
8888
|
query_string=query_string,
|
|
9275
8889
|
single_header=single_header,
|
|
9276
8890
|
single_query_argument=single_query_argument,
|
|
8891
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
8892
|
+
fallback_behavior="fallbackBehavior"
|
|
8893
|
+
),
|
|
9277
8894
|
uri_path=uri_path
|
|
9278
8895
|
),
|
|
9279
8896
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -9327,6 +8944,9 @@ class CfnRuleGroup(
|
|
|
9327
8944
|
query_string=query_string,
|
|
9328
8945
|
single_header=single_header,
|
|
9329
8946
|
single_query_argument=single_query_argument,
|
|
8947
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
8948
|
+
fallback_behavior="fallbackBehavior"
|
|
8949
|
+
),
|
|
9330
8950
|
uri_path=uri_path
|
|
9331
8951
|
),
|
|
9332
8952
|
size=123,
|
|
@@ -9380,6 +9000,9 @@ class CfnRuleGroup(
|
|
|
9380
9000
|
query_string=query_string,
|
|
9381
9001
|
single_header=single_header,
|
|
9382
9002
|
single_query_argument=single_query_argument,
|
|
9003
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
9004
|
+
fallback_behavior="fallbackBehavior"
|
|
9005
|
+
),
|
|
9383
9006
|
uri_path=uri_path
|
|
9384
9007
|
),
|
|
9385
9008
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -9435,6 +9058,9 @@ class CfnRuleGroup(
|
|
|
9435
9058
|
query_string=query_string,
|
|
9436
9059
|
single_header=single_header,
|
|
9437
9060
|
single_query_argument=single_query_argument,
|
|
9061
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
9062
|
+
fallback_behavior="fallbackBehavior"
|
|
9063
|
+
),
|
|
9438
9064
|
uri_path=uri_path
|
|
9439
9065
|
),
|
|
9440
9066
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -9837,6 +9463,9 @@ class CfnRuleGroup(
|
|
|
9837
9463
|
query_string=query_string,
|
|
9838
9464
|
single_header=single_header,
|
|
9839
9465
|
single_query_argument=single_query_argument,
|
|
9466
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
9467
|
+
fallback_behavior="fallbackBehavior"
|
|
9468
|
+
),
|
|
9840
9469
|
uri_path=uri_path
|
|
9841
9470
|
),
|
|
9842
9471
|
size=123,
|
|
@@ -10003,6 +9632,9 @@ class CfnRuleGroup(
|
|
|
10003
9632
|
query_string=query_string,
|
|
10004
9633
|
single_header=single_header,
|
|
10005
9634
|
single_query_argument=single_query_argument,
|
|
9635
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
9636
|
+
fallback_behavior="fallbackBehavior"
|
|
9637
|
+
),
|
|
10006
9638
|
uri_path=uri_path
|
|
10007
9639
|
),
|
|
10008
9640
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -10201,6 +9833,9 @@ class CfnRuleGroup(
|
|
|
10201
9833
|
query_string=query_string,
|
|
10202
9834
|
single_header=single_header,
|
|
10203
9835
|
single_query_argument=single_query_argument,
|
|
9836
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
9837
|
+
fallback_behavior="fallbackBehavior"
|
|
9838
|
+
),
|
|
10204
9839
|
uri_path=uri_path
|
|
10205
9840
|
),
|
|
10206
9841
|
positional_constraint="positionalConstraint",
|
|
@@ -10344,6 +9979,9 @@ class CfnRuleGroup(
|
|
|
10344
9979
|
query_string=query_string,
|
|
10345
9980
|
single_header=single_header,
|
|
10346
9981
|
single_query_argument=single_query_argument,
|
|
9982
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
9983
|
+
fallback_behavior="fallbackBehavior"
|
|
9984
|
+
),
|
|
10347
9985
|
uri_path=uri_path
|
|
10348
9986
|
),
|
|
10349
9987
|
regex_string="regexString",
|
|
@@ -10398,6 +10036,9 @@ class CfnRuleGroup(
|
|
|
10398
10036
|
query_string=query_string,
|
|
10399
10037
|
single_header=single_header,
|
|
10400
10038
|
single_query_argument=single_query_argument,
|
|
10039
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
10040
|
+
fallback_behavior="fallbackBehavior"
|
|
10041
|
+
),
|
|
10401
10042
|
uri_path=uri_path
|
|
10402
10043
|
),
|
|
10403
10044
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -10451,6 +10092,9 @@ class CfnRuleGroup(
|
|
|
10451
10092
|
query_string=query_string,
|
|
10452
10093
|
single_header=single_header,
|
|
10453
10094
|
single_query_argument=single_query_argument,
|
|
10095
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
10096
|
+
fallback_behavior="fallbackBehavior"
|
|
10097
|
+
),
|
|
10454
10098
|
uri_path=uri_path
|
|
10455
10099
|
),
|
|
10456
10100
|
size=123,
|
|
@@ -10504,6 +10148,9 @@ class CfnRuleGroup(
|
|
|
10504
10148
|
query_string=query_string,
|
|
10505
10149
|
single_header=single_header,
|
|
10506
10150
|
single_query_argument=single_query_argument,
|
|
10151
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
10152
|
+
fallback_behavior="fallbackBehavior"
|
|
10153
|
+
),
|
|
10507
10154
|
uri_path=uri_path
|
|
10508
10155
|
),
|
|
10509
10156
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -10559,6 +10206,9 @@ class CfnRuleGroup(
|
|
|
10559
10206
|
query_string=query_string,
|
|
10560
10207
|
single_header=single_header,
|
|
10561
10208
|
single_query_argument=single_query_argument,
|
|
10209
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
10210
|
+
fallback_behavior="fallbackBehavior"
|
|
10211
|
+
),
|
|
10562
10212
|
uri_path=uri_path
|
|
10563
10213
|
),
|
|
10564
10214
|
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
@@ -10779,238 +10429,62 @@ class CfnRuleGroup(
|
|
|
10779
10429
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.RegexMatchStatementProperty"]], result)
|
|
10780
10430
|
|
|
10781
10431
|
@builtins.property
|
|
10782
|
-
def regex_pattern_set_reference_statement(
|
|
10783
|
-
self,
|
|
10784
|
-
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.RegexPatternSetReferenceStatementProperty"]]:
|
|
10785
|
-
'''A rule statement used to search web request components for matches with regular expressions.
|
|
10786
|
-
|
|
10787
|
-
To use this, create a ``RegexPatternSet`` that specifies the expressions that you want to detect, then use the ARN of that set in this statement. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set.
|
|
10788
|
-
|
|
10789
|
-
Each regex pattern set rule statement references a regex pattern set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, AWS WAF automatically updates all rules that reference it.
|
|
10790
|
-
|
|
10791
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-regexpatternsetreferencestatement
|
|
10792
|
-
'''
|
|
10793
|
-
result = self._values.get("regex_pattern_set_reference_statement")
|
|
10794
|
-
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.RegexPatternSetReferenceStatementProperty"]], result)
|
|
10795
|
-
|
|
10796
|
-
@builtins.property
|
|
10797
|
-
def size_constraint_statement(
|
|
10798
|
-
self,
|
|
10799
|
-
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.SizeConstraintStatementProperty"]]:
|
|
10800
|
-
'''A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<).
|
|
10801
|
-
|
|
10802
|
-
For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.
|
|
10803
|
-
|
|
10804
|
-
If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes in the body up to the limit for the web ACL and protected resource type. If you know that the request body for your web requests should never exceed the inspection limit, you can use a size constraint statement to block requests that have a larger request body size. For more information about the inspection limits, see ``Body`` and ``JsonBody`` settings for the ``FieldToMatch`` data type.
|
|
10805
|
-
|
|
10806
|
-
If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI ``/logo.jpg`` is nine characters long.
|
|
10807
|
-
|
|
10808
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-sizeconstraintstatement
|
|
10809
|
-
'''
|
|
10810
|
-
result = self._values.get("size_constraint_statement")
|
|
10811
|
-
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.SizeConstraintStatementProperty"]], result)
|
|
10812
|
-
|
|
10813
|
-
@builtins.property
|
|
10814
|
-
def sqli_match_statement(
|
|
10815
|
-
self,
|
|
10816
|
-
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.SqliMatchStatementProperty"]]:
|
|
10817
|
-
'''A rule statement that inspects for malicious SQL code.
|
|
10818
|
-
|
|
10819
|
-
Attackers insert malicious SQL code into web requests to do things like modify your database or extract data from it.
|
|
10820
|
-
|
|
10821
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-sqlimatchstatement
|
|
10822
|
-
'''
|
|
10823
|
-
result = self._values.get("sqli_match_statement")
|
|
10824
|
-
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.SqliMatchStatementProperty"]], result)
|
|
10825
|
-
|
|
10826
|
-
@builtins.property
|
|
10827
|
-
def xss_match_statement(
|
|
10828
|
-
self,
|
|
10829
|
-
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.XssMatchStatementProperty"]]:
|
|
10830
|
-
'''A rule statement that inspects for cross-site scripting (XSS) attacks.
|
|
10831
|
-
|
|
10832
|
-
In XSS attacks, the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client-site scripts into other legitimate web browsers.
|
|
10833
|
-
|
|
10834
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-xssmatchstatement
|
|
10835
|
-
'''
|
|
10836
|
-
result = self._values.get("xss_match_statement")
|
|
10837
|
-
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.XssMatchStatementProperty"]], result)
|
|
10838
|
-
|
|
10839
|
-
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
10840
|
-
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
10841
|
-
|
|
10842
|
-
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
10843
|
-
return not (rhs == self)
|
|
10844
|
-
|
|
10845
|
-
def __repr__(self) -> str:
|
|
10846
|
-
return "StatementProperty(%s)" % ", ".join(
|
|
10847
|
-
k + "=" + repr(v) for k, v in self._values.items()
|
|
10848
|
-
)
|
|
10849
|
-
|
|
10850
|
-
@jsii.data_type(
|
|
10851
|
-
jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.TextTransformationProperty",
|
|
10852
|
-
jsii_struct_bases=[],
|
|
10853
|
-
name_mapping={"priority": "priority", "type": "type"},
|
|
10854
|
-
)
|
|
10855
|
-
class TextTransformationProperty:
|
|
10856
|
-
def __init__(self, *, priority: jsii.Number, type: builtins.str) -> None:
|
|
10857
|
-
'''Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.
|
|
10858
|
-
|
|
10859
|
-
:param priority: Sets the relative processing order for multiple transformations. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. The priorities don't need to be consecutive, but they must all be different.
|
|
10860
|
-
:param type: For detailed descriptions of each of the transformation types, see `Text transformations <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-transformation.html>`_ in the *AWS WAF Developer Guide* .
|
|
10861
|
-
|
|
10862
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html
|
|
10863
|
-
:exampleMetadata: fixture=_generated
|
|
10864
|
-
|
|
10865
|
-
Example::
|
|
10866
|
-
|
|
10867
|
-
# The code below shows an example of how to instantiate this type.
|
|
10868
|
-
# The values are placeholders you should change.
|
|
10869
|
-
from aws_cdk import aws_wafv2 as wafv2
|
|
10870
|
-
|
|
10871
|
-
text_transformation_property = wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
10872
|
-
priority=123,
|
|
10873
|
-
type="type"
|
|
10874
|
-
)
|
|
10875
|
-
'''
|
|
10876
|
-
if __debug__:
|
|
10877
|
-
type_hints = typing.get_type_hints(_typecheckingstub__cbdf04ef9e923368f792f61fdb73e804a219fcd9c66ffb20e85214a5a0861eae)
|
|
10878
|
-
check_type(argname="argument priority", value=priority, expected_type=type_hints["priority"])
|
|
10879
|
-
check_type(argname="argument type", value=type, expected_type=type_hints["type"])
|
|
10880
|
-
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
10881
|
-
"priority": priority,
|
|
10882
|
-
"type": type,
|
|
10883
|
-
}
|
|
10884
|
-
|
|
10885
|
-
@builtins.property
|
|
10886
|
-
def priority(self) -> jsii.Number:
|
|
10887
|
-
'''Sets the relative processing order for multiple transformations.
|
|
10888
|
-
|
|
10889
|
-
AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. The priorities don't need to be consecutive, but they must all be different.
|
|
10890
|
-
|
|
10891
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html#cfn-wafv2-rulegroup-texttransformation-priority
|
|
10892
|
-
'''
|
|
10893
|
-
result = self._values.get("priority")
|
|
10894
|
-
assert result is not None, "Required property 'priority' is missing"
|
|
10895
|
-
return typing.cast(jsii.Number, result)
|
|
10896
|
-
|
|
10897
|
-
@builtins.property
|
|
10898
|
-
def type(self) -> builtins.str:
|
|
10899
|
-
'''For detailed descriptions of each of the transformation types, see `Text transformations <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-transformation.html>`_ in the *AWS WAF Developer Guide* .
|
|
10900
|
-
|
|
10901
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html#cfn-wafv2-rulegroup-texttransformation-type
|
|
10902
|
-
'''
|
|
10903
|
-
result = self._values.get("type")
|
|
10904
|
-
assert result is not None, "Required property 'type' is missing"
|
|
10905
|
-
return typing.cast(builtins.str, result)
|
|
10906
|
-
|
|
10907
|
-
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
10908
|
-
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
10909
|
-
|
|
10910
|
-
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
10911
|
-
return not (rhs == self)
|
|
10912
|
-
|
|
10913
|
-
def __repr__(self) -> str:
|
|
10914
|
-
return "TextTransformationProperty(%s)" % ", ".join(
|
|
10915
|
-
k + "=" + repr(v) for k, v in self._values.items()
|
|
10916
|
-
)
|
|
10917
|
-
|
|
10918
|
-
@jsii.data_type(
|
|
10919
|
-
jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.VisibilityConfigProperty",
|
|
10920
|
-
jsii_struct_bases=[],
|
|
10921
|
-
name_mapping={
|
|
10922
|
-
"cloud_watch_metrics_enabled": "cloudWatchMetricsEnabled",
|
|
10923
|
-
"metric_name": "metricName",
|
|
10924
|
-
"sampled_requests_enabled": "sampledRequestsEnabled",
|
|
10925
|
-
},
|
|
10926
|
-
)
|
|
10927
|
-
class VisibilityConfigProperty:
|
|
10928
|
-
def __init__(
|
|
10929
|
-
self,
|
|
10930
|
-
*,
|
|
10931
|
-
cloud_watch_metrics_enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
|
|
10932
|
-
metric_name: builtins.str,
|
|
10933
|
-
sampled_requests_enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
|
|
10934
|
-
) -> None:
|
|
10935
|
-
'''Defines and enables Amazon CloudWatch metrics and web request sample collection.
|
|
10936
|
-
|
|
10937
|
-
:param cloud_watch_metrics_enabled: Indicates whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see `AWS WAF Metrics <https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics>`_ in the *AWS WAF Developer Guide* . For web ACLs, the metrics are for web requests that have the web ACL default action applied. AWS WAF applies the default action to web requests that pass the inspection of all rules in the web ACL without being either allowed or blocked. For more information, see `The web ACL default action <https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-default-action.html>`_ in the *AWS WAF Developer Guide* .
|
|
10938
|
-
:param metric_name: A name of the Amazon CloudWatch metric dimension. The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names that are reserved for AWS WAF , for example ``All`` and ``Default_Action`` .
|
|
10939
|
-
:param sampled_requests_enabled: Indicates whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console. If you configure data protection for the web ACL, the protection applies to the web ACL's sampled web request data. .. epigraph:: Request sampling doesn't provide a field redaction option, and any field redaction that you specify in your logging configuration doesn't affect sampling. You can only exclude fields from request sampling by disabling sampling in the web ACL visibility configuration or by configuring data protection for the web ACL.
|
|
10432
|
+
def regex_pattern_set_reference_statement(
|
|
10433
|
+
self,
|
|
10434
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.RegexPatternSetReferenceStatementProperty"]]:
|
|
10435
|
+
'''A rule statement used to search web request components for matches with regular expressions.
|
|
10940
10436
|
|
|
10941
|
-
|
|
10942
|
-
:exampleMetadata: fixture=_generated
|
|
10437
|
+
To use this, create a ``RegexPatternSet`` that specifies the expressions that you want to detect, then use the ARN of that set in this statement. A web request matches the pattern set rule statement if the request component matches any of the patterns in the set.
|
|
10943
10438
|
|
|
10944
|
-
|
|
10439
|
+
Each regex pattern set rule statement references a regex pattern set. You create and maintain the set independent of your rules. This allows you to use the single set in multiple rules. When you update the referenced set, AWS WAF automatically updates all rules that reference it.
|
|
10945
10440
|
|
|
10946
|
-
|
|
10947
|
-
# The values are placeholders you should change.
|
|
10948
|
-
from aws_cdk import aws_wafv2 as wafv2
|
|
10949
|
-
|
|
10950
|
-
visibility_config_property = wafv2.CfnRuleGroup.VisibilityConfigProperty(
|
|
10951
|
-
cloud_watch_metrics_enabled=False,
|
|
10952
|
-
metric_name="metricName",
|
|
10953
|
-
sampled_requests_enabled=False
|
|
10954
|
-
)
|
|
10441
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-regexpatternsetreferencestatement
|
|
10955
10442
|
'''
|
|
10956
|
-
|
|
10957
|
-
|
|
10958
|
-
check_type(argname="argument cloud_watch_metrics_enabled", value=cloud_watch_metrics_enabled, expected_type=type_hints["cloud_watch_metrics_enabled"])
|
|
10959
|
-
check_type(argname="argument metric_name", value=metric_name, expected_type=type_hints["metric_name"])
|
|
10960
|
-
check_type(argname="argument sampled_requests_enabled", value=sampled_requests_enabled, expected_type=type_hints["sampled_requests_enabled"])
|
|
10961
|
-
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
10962
|
-
"cloud_watch_metrics_enabled": cloud_watch_metrics_enabled,
|
|
10963
|
-
"metric_name": metric_name,
|
|
10964
|
-
"sampled_requests_enabled": sampled_requests_enabled,
|
|
10965
|
-
}
|
|
10443
|
+
result = self._values.get("regex_pattern_set_reference_statement")
|
|
10444
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.RegexPatternSetReferenceStatementProperty"]], result)
|
|
10966
10445
|
|
|
10967
10446
|
@builtins.property
|
|
10968
|
-
def
|
|
10447
|
+
def size_constraint_statement(
|
|
10969
10448
|
self,
|
|
10970
|
-
) -> typing.Union[
|
|
10971
|
-
'''
|
|
10449
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.SizeConstraintStatementProperty"]]:
|
|
10450
|
+
'''A rule statement that compares a number of bytes against the size of a request component, using a comparison operator, such as greater than (>) or less than (<).
|
|
10972
10451
|
|
|
10973
|
-
For
|
|
10452
|
+
For example, you can use a size constraint statement to look for query strings that are longer than 100 bytes.
|
|
10974
10453
|
|
|
10975
|
-
|
|
10976
|
-
see `The web ACL default action <https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-default-action.html>`_ in the *AWS WAF Developer Guide* .
|
|
10454
|
+
If you configure AWS WAF to inspect the request body, AWS WAF inspects only the number of bytes in the body up to the limit for the web ACL and protected resource type. If you know that the request body for your web requests should never exceed the inspection limit, you can use a size constraint statement to block requests that have a larger request body size. For more information about the inspection limits, see ``Body`` and ``JsonBody`` settings for the ``FieldToMatch`` data type.
|
|
10977
10455
|
|
|
10978
|
-
|
|
10456
|
+
If you choose URI for the value of Part of the request to filter on, the slash (/) in the URI counts as one character. For example, the URI ``/logo.jpg`` is nine characters long.
|
|
10457
|
+
|
|
10458
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-sizeconstraintstatement
|
|
10979
10459
|
'''
|
|
10980
|
-
result = self._values.get("
|
|
10981
|
-
|
|
10982
|
-
return typing.cast(typing.Union[builtins.bool, _IResolvable_da3f097b], result)
|
|
10460
|
+
result = self._values.get("size_constraint_statement")
|
|
10461
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.SizeConstraintStatementProperty"]], result)
|
|
10983
10462
|
|
|
10984
10463
|
@builtins.property
|
|
10985
|
-
def
|
|
10986
|
-
|
|
10464
|
+
def sqli_match_statement(
|
|
10465
|
+
self,
|
|
10466
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.SqliMatchStatementProperty"]]:
|
|
10467
|
+
'''A rule statement that inspects for malicious SQL code.
|
|
10987
10468
|
|
|
10988
|
-
|
|
10469
|
+
Attackers insert malicious SQL code into web requests to do things like modify your database or extract data from it.
|
|
10989
10470
|
|
|
10990
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-
|
|
10471
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-sqlimatchstatement
|
|
10991
10472
|
'''
|
|
10992
|
-
result = self._values.get("
|
|
10993
|
-
|
|
10994
|
-
return typing.cast(builtins.str, result)
|
|
10473
|
+
result = self._values.get("sqli_match_statement")
|
|
10474
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.SqliMatchStatementProperty"]], result)
|
|
10995
10475
|
|
|
10996
10476
|
@builtins.property
|
|
10997
|
-
def
|
|
10477
|
+
def xss_match_statement(
|
|
10998
10478
|
self,
|
|
10999
|
-
) -> typing.Union[
|
|
11000
|
-
'''
|
|
11001
|
-
|
|
11002
|
-
You can view the sampled requests through the AWS WAF console.
|
|
11003
|
-
|
|
11004
|
-
If you configure data protection for the web ACL, the protection applies to the web ACL's sampled web request data.
|
|
11005
|
-
.. epigraph::
|
|
10479
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.XssMatchStatementProperty"]]:
|
|
10480
|
+
'''A rule statement that inspects for cross-site scripting (XSS) attacks.
|
|
11006
10481
|
|
|
11007
|
-
|
|
10482
|
+
In XSS attacks, the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client-site scripts into other legitimate web browsers.
|
|
11008
10483
|
|
|
11009
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-
|
|
10484
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-xssmatchstatement
|
|
11010
10485
|
'''
|
|
11011
|
-
result = self._values.get("
|
|
11012
|
-
|
|
11013
|
-
return typing.cast(typing.Union[builtins.bool, _IResolvable_da3f097b], result)
|
|
10486
|
+
result = self._values.get("xss_match_statement")
|
|
10487
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.XssMatchStatementProperty"]], result)
|
|
11014
10488
|
|
|
11015
10489
|
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
11016
10490
|
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
@@ -11019,33 +10493,23 @@ class CfnRuleGroup(
|
|
|
11019
10493
|
return not (rhs == self)
|
|
11020
10494
|
|
|
11021
10495
|
def __repr__(self) -> str:
|
|
11022
|
-
return "
|
|
10496
|
+
return "StatementProperty(%s)" % ", ".join(
|
|
11023
10497
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
11024
10498
|
)
|
|
11025
10499
|
|
|
11026
10500
|
@jsii.data_type(
|
|
11027
|
-
jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.
|
|
10501
|
+
jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.TextTransformationProperty",
|
|
11028
10502
|
jsii_struct_bases=[],
|
|
11029
|
-
name_mapping={
|
|
11030
|
-
"field_to_match": "fieldToMatch",
|
|
11031
|
-
"text_transformations": "textTransformations",
|
|
11032
|
-
},
|
|
10503
|
+
name_mapping={"priority": "priority", "type": "type"},
|
|
11033
10504
|
)
|
|
11034
|
-
class
|
|
11035
|
-
def __init__(
|
|
11036
|
-
|
|
11037
|
-
*,
|
|
11038
|
-
field_to_match: typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.FieldToMatchProperty", typing.Dict[builtins.str, typing.Any]]],
|
|
11039
|
-
text_transformations: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.TextTransformationProperty", typing.Dict[builtins.str, typing.Any]]]]],
|
|
11040
|
-
) -> None:
|
|
11041
|
-
'''A rule statement that inspects for cross-site scripting (XSS) attacks.
|
|
11042
|
-
|
|
11043
|
-
In XSS attacks, the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client-site scripts into other legitimate web browsers.
|
|
10505
|
+
class TextTransformationProperty:
|
|
10506
|
+
def __init__(self, *, priority: jsii.Number, type: builtins.str) -> None:
|
|
10507
|
+
'''Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.
|
|
11044
10508
|
|
|
11045
|
-
:param
|
|
11046
|
-
:param
|
|
10509
|
+
:param priority: Sets the relative processing order for multiple transformations. AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. The priorities don't need to be consecutive, but they must all be different.
|
|
10510
|
+
:param type: For detailed descriptions of each of the transformation types, see `Text transformations <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-transformation.html>`_ in the *AWS WAF Developer Guide* .
|
|
11047
10511
|
|
|
11048
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-
|
|
10512
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html
|
|
11049
10513
|
:exampleMetadata: fixture=_generated
|
|
11050
10514
|
|
|
11051
10515
|
Example::
|
|
@@ -11054,659 +10518,409 @@ class CfnRuleGroup(
|
|
|
11054
10518
|
# The values are placeholders you should change.
|
|
11055
10519
|
from aws_cdk import aws_wafv2 as wafv2
|
|
11056
10520
|
|
|
11057
|
-
|
|
11058
|
-
|
|
11059
|
-
|
|
11060
|
-
# query_string: Any
|
|
11061
|
-
# single_header: Any
|
|
11062
|
-
# single_query_argument: Any
|
|
11063
|
-
# uri_path: Any
|
|
11064
|
-
|
|
11065
|
-
xss_match_statement_property = wafv2.CfnRuleGroup.XssMatchStatementProperty(
|
|
11066
|
-
field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
|
|
11067
|
-
all_query_arguments=all_query_arguments,
|
|
11068
|
-
body=wafv2.CfnRuleGroup.BodyProperty(
|
|
11069
|
-
oversize_handling="oversizeHandling"
|
|
11070
|
-
),
|
|
11071
|
-
cookies=wafv2.CfnRuleGroup.CookiesProperty(
|
|
11072
|
-
match_pattern=wafv2.CfnRuleGroup.CookieMatchPatternProperty(
|
|
11073
|
-
all=all,
|
|
11074
|
-
excluded_cookies=["excludedCookies"],
|
|
11075
|
-
included_cookies=["includedCookies"]
|
|
11076
|
-
),
|
|
11077
|
-
match_scope="matchScope",
|
|
11078
|
-
oversize_handling="oversizeHandling"
|
|
11079
|
-
),
|
|
11080
|
-
headers=wafv2.CfnRuleGroup.HeadersProperty(
|
|
11081
|
-
match_pattern=wafv2.CfnRuleGroup.HeaderMatchPatternProperty(
|
|
11082
|
-
all=all,
|
|
11083
|
-
excluded_headers=["excludedHeaders"],
|
|
11084
|
-
included_headers=["includedHeaders"]
|
|
11085
|
-
),
|
|
11086
|
-
match_scope="matchScope",
|
|
11087
|
-
oversize_handling="oversizeHandling"
|
|
11088
|
-
),
|
|
11089
|
-
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
11090
|
-
fallback_behavior="fallbackBehavior"
|
|
11091
|
-
),
|
|
11092
|
-
ja4_fingerprint=wafv2.CfnRuleGroup.JA4FingerprintProperty(
|
|
11093
|
-
fallback_behavior="fallbackBehavior"
|
|
11094
|
-
),
|
|
11095
|
-
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
11096
|
-
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
11097
|
-
all=all,
|
|
11098
|
-
included_paths=["includedPaths"]
|
|
11099
|
-
),
|
|
11100
|
-
match_scope="matchScope",
|
|
11101
|
-
|
|
11102
|
-
# the properties below are optional
|
|
11103
|
-
invalid_fallback_behavior="invalidFallbackBehavior",
|
|
11104
|
-
oversize_handling="oversizeHandling"
|
|
11105
|
-
),
|
|
11106
|
-
method=method,
|
|
11107
|
-
query_string=query_string,
|
|
11108
|
-
single_header=single_header,
|
|
11109
|
-
single_query_argument=single_query_argument,
|
|
11110
|
-
uri_path=uri_path
|
|
11111
|
-
),
|
|
11112
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
11113
|
-
priority=123,
|
|
11114
|
-
type="type"
|
|
11115
|
-
)]
|
|
10521
|
+
text_transformation_property = wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
10522
|
+
priority=123,
|
|
10523
|
+
type="type"
|
|
11116
10524
|
)
|
|
11117
10525
|
'''
|
|
11118
10526
|
if __debug__:
|
|
11119
|
-
type_hints = typing.get_type_hints(
|
|
11120
|
-
check_type(argname="argument
|
|
11121
|
-
check_type(argname="argument
|
|
10527
|
+
type_hints = typing.get_type_hints(_typecheckingstub__cbdf04ef9e923368f792f61fdb73e804a219fcd9c66ffb20e85214a5a0861eae)
|
|
10528
|
+
check_type(argname="argument priority", value=priority, expected_type=type_hints["priority"])
|
|
10529
|
+
check_type(argname="argument type", value=type, expected_type=type_hints["type"])
|
|
11122
10530
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
11123
|
-
"
|
|
11124
|
-
"
|
|
11125
|
-
}
|
|
11126
|
-
|
|
11127
|
-
@builtins.property
|
|
11128
|
-
def field_to_match(
|
|
11129
|
-
self,
|
|
11130
|
-
) -> typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.FieldToMatchProperty"]:
|
|
11131
|
-
'''The part of the web request that you want AWS WAF to inspect.
|
|
11132
|
-
|
|
11133
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-xssmatchstatement.html#cfn-wafv2-rulegroup-xssmatchstatement-fieldtomatch
|
|
11134
|
-
'''
|
|
11135
|
-
result = self._values.get("field_to_match")
|
|
11136
|
-
assert result is not None, "Required property 'field_to_match' is missing"
|
|
11137
|
-
return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.FieldToMatchProperty"], result)
|
|
11138
|
-
|
|
11139
|
-
@builtins.property
|
|
11140
|
-
def text_transformations(
|
|
11141
|
-
self,
|
|
11142
|
-
) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.TextTransformationProperty"]]]:
|
|
11143
|
-
'''Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.
|
|
11144
|
-
|
|
11145
|
-
If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content of the request component identified by ``FieldToMatch`` , starting from the lowest priority setting, before inspecting the content for a match.
|
|
11146
|
-
|
|
11147
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-xssmatchstatement.html#cfn-wafv2-rulegroup-xssmatchstatement-texttransformations
|
|
11148
|
-
'''
|
|
11149
|
-
result = self._values.get("text_transformations")
|
|
11150
|
-
assert result is not None, "Required property 'text_transformations' is missing"
|
|
11151
|
-
return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.TextTransformationProperty"]]], result)
|
|
11152
|
-
|
|
11153
|
-
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
11154
|
-
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
11155
|
-
|
|
11156
|
-
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
11157
|
-
return not (rhs == self)
|
|
11158
|
-
|
|
11159
|
-
def __repr__(self) -> str:
|
|
11160
|
-
return "XssMatchStatementProperty(%s)" % ", ".join(
|
|
11161
|
-
k + "=" + repr(v) for k, v in self._values.items()
|
|
11162
|
-
)
|
|
11163
|
-
|
|
11164
|
-
|
|
11165
|
-
@jsii.data_type(
|
|
11166
|
-
jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroupProps",
|
|
11167
|
-
jsii_struct_bases=[],
|
|
11168
|
-
name_mapping={
|
|
11169
|
-
"capacity": "capacity",
|
|
11170
|
-
"scope": "scope",
|
|
11171
|
-
"visibility_config": "visibilityConfig",
|
|
11172
|
-
"available_labels": "availableLabels",
|
|
11173
|
-
"consumed_labels": "consumedLabels",
|
|
11174
|
-
"custom_response_bodies": "customResponseBodies",
|
|
11175
|
-
"description": "description",
|
|
11176
|
-
"name": "name",
|
|
11177
|
-
"rules": "rules",
|
|
11178
|
-
"tags": "tags",
|
|
11179
|
-
},
|
|
11180
|
-
)
|
|
11181
|
-
class CfnRuleGroupProps:
|
|
11182
|
-
def __init__(
|
|
11183
|
-
self,
|
|
11184
|
-
*,
|
|
11185
|
-
capacity: jsii.Number,
|
|
11186
|
-
scope: builtins.str,
|
|
11187
|
-
visibility_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.VisibilityConfigProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
11188
|
-
available_labels: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.LabelSummaryProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
11189
|
-
consumed_labels: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.LabelSummaryProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
11190
|
-
custom_response_bodies: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.CustomResponseBodyProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
11191
|
-
description: typing.Optional[builtins.str] = None,
|
|
11192
|
-
name: typing.Optional[builtins.str] = None,
|
|
11193
|
-
rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.RuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
11194
|
-
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
11195
|
-
) -> None:
|
|
11196
|
-
'''Properties for defining a ``CfnRuleGroup``.
|
|
10531
|
+
"priority": priority,
|
|
10532
|
+
"type": type,
|
|
10533
|
+
}
|
|
11197
10534
|
|
|
11198
|
-
|
|
11199
|
-
|
|
11200
|
-
|
|
11201
|
-
:param available_labels: The labels that one or more rules in this rule group add to matching web requests. These labels are defined in the ``RuleLabels`` for a ``Rule`` .
|
|
11202
|
-
:param consumed_labels: The labels that one or more rules in this rule group match against in label match statements. These labels are defined in a ``LabelMatchStatement`` specification, in the ``Statement`` definition of a rule.
|
|
11203
|
-
:param custom_response_bodies: A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group. For information about customizing web requests and responses, see `Customizing web requests and responses in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html>`_ in the *AWS WAF Developer Guide* . For information about the limits on count and size for custom request and response settings, see `AWS WAF quotas <https://docs.aws.amazon.com/waf/latest/developerguide/limits.html>`_ in the *AWS WAF Developer Guide* .
|
|
11204
|
-
:param description: A description of the rule group that helps with identification.
|
|
11205
|
-
:param name: The name of the rule group. You cannot change the name of a rule group after you create it.
|
|
11206
|
-
:param rules: The rule statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.
|
|
11207
|
-
:param tags: Key:value pairs associated with an AWS resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each AWS resource. .. epigraph:: To modify tags on existing resources, use the AWS WAF APIs or command line interface. With AWS CloudFormation , you can only add tags to AWS WAF resources during resource creation.
|
|
10535
|
+
@builtins.property
|
|
10536
|
+
def priority(self) -> jsii.Number:
|
|
10537
|
+
'''Sets the relative processing order for multiple transformations.
|
|
11208
10538
|
|
|
11209
|
-
|
|
11210
|
-
:exampleMetadata: fixture=_generated
|
|
10539
|
+
AWS WAF processes all transformations, from lowest priority to highest, before inspecting the transformed content. The priorities don't need to be consecutive, but they must all be different.
|
|
11211
10540
|
|
|
11212
|
-
|
|
10541
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html#cfn-wafv2-rulegroup-texttransformation-priority
|
|
10542
|
+
'''
|
|
10543
|
+
result = self._values.get("priority")
|
|
10544
|
+
assert result is not None, "Required property 'priority' is missing"
|
|
10545
|
+
return typing.cast(jsii.Number, result)
|
|
11213
10546
|
|
|
11214
|
-
|
|
11215
|
-
|
|
11216
|
-
|
|
11217
|
-
|
|
11218
|
-
|
|
11219
|
-
|
|
11220
|
-
|
|
11221
|
-
|
|
11222
|
-
|
|
11223
|
-
|
|
11224
|
-
|
|
11225
|
-
|
|
11226
|
-
|
|
11227
|
-
|
|
11228
|
-
|
|
11229
|
-
|
|
11230
|
-
|
|
11231
|
-
|
|
11232
|
-
|
|
11233
|
-
|
|
11234
|
-
|
|
11235
|
-
|
|
11236
|
-
|
|
11237
|
-
|
|
11238
|
-
|
|
11239
|
-
|
|
11240
|
-
|
|
11241
|
-
|
|
11242
|
-
|
|
11243
|
-
|
|
11244
|
-
|
|
11245
|
-
|
|
11246
|
-
|
|
11247
|
-
|
|
11248
|
-
|
|
11249
|
-
|
|
11250
|
-
|
|
11251
|
-
|
|
11252
|
-
|
|
11253
|
-
|
|
11254
|
-
|
|
11255
|
-
|
|
11256
|
-
|
|
11257
|
-
|
|
11258
|
-
|
|
11259
|
-
|
|
11260
|
-
|
|
11261
|
-
|
|
11262
|
-
|
|
11263
|
-
|
|
11264
|
-
|
|
11265
|
-
|
|
11266
|
-
|
|
11267
|
-
|
|
11268
|
-
|
|
11269
|
-
|
|
11270
|
-
|
|
11271
|
-
|
|
11272
|
-
|
|
11273
|
-
|
|
11274
|
-
|
|
11275
|
-
|
|
11276
|
-
|
|
11277
|
-
|
|
11278
|
-
|
|
11279
|
-
|
|
11280
|
-
|
|
11281
|
-
|
|
11282
|
-
|
|
11283
|
-
|
|
11284
|
-
|
|
11285
|
-
|
|
11286
|
-
|
|
11287
|
-
|
|
11288
|
-
|
|
11289
|
-
|
|
11290
|
-
|
|
11291
|
-
|
|
11292
|
-
|
|
11293
|
-
|
|
11294
|
-
|
|
11295
|
-
|
|
11296
|
-
|
|
11297
|
-
|
|
11298
|
-
|
|
11299
|
-
|
|
11300
|
-
|
|
11301
|
-
|
|
11302
|
-
|
|
11303
|
-
|
|
11304
|
-
|
|
11305
|
-
|
|
11306
|
-
|
|
11307
|
-
|
|
11308
|
-
|
|
11309
|
-
|
|
11310
|
-
|
|
11311
|
-
|
|
11312
|
-
|
|
11313
|
-
|
|
11314
|
-
|
|
11315
|
-
|
|
11316
|
-
|
|
11317
|
-
|
|
11318
|
-
|
|
11319
|
-
|
|
11320
|
-
|
|
11321
|
-
|
|
11322
|
-
|
|
11323
|
-
|
|
11324
|
-
|
|
11325
|
-
|
|
11326
|
-
|
|
11327
|
-
|
|
11328
|
-
|
|
11329
|
-
|
|
11330
|
-
|
|
11331
|
-
|
|
11332
|
-
|
|
11333
|
-
|
|
11334
|
-
|
|
11335
|
-
|
|
11336
|
-
|
|
11337
|
-
|
|
11338
|
-
|
|
11339
|
-
|
|
11340
|
-
|
|
11341
|
-
|
|
11342
|
-
|
|
11343
|
-
|
|
11344
|
-
|
|
11345
|
-
|
|
11346
|
-
|
|
11347
|
-
|
|
11348
|
-
|
|
11349
|
-
|
|
11350
|
-
|
|
11351
|
-
|
|
11352
|
-
|
|
11353
|
-
|
|
11354
|
-
|
|
11355
|
-
|
|
11356
|
-
|
|
11357
|
-
|
|
11358
|
-
|
|
11359
|
-
|
|
11360
|
-
|
|
11361
|
-
|
|
11362
|
-
|
|
11363
|
-
|
|
11364
|
-
|
|
11365
|
-
|
|
11366
|
-
|
|
11367
|
-
|
|
11368
|
-
|
|
11369
|
-
|
|
11370
|
-
|
|
11371
|
-
|
|
11372
|
-
|
|
11373
|
-
|
|
11374
|
-
|
|
11375
|
-
|
|
11376
|
-
|
|
11377
|
-
|
|
11378
|
-
|
|
11379
|
-
|
|
11380
|
-
|
|
11381
|
-
|
|
11382
|
-
|
|
11383
|
-
|
|
11384
|
-
|
|
11385
|
-
|
|
11386
|
-
|
|
11387
|
-
|
|
11388
|
-
|
|
11389
|
-
|
|
11390
|
-
|
|
11391
|
-
|
|
11392
|
-
|
|
11393
|
-
|
|
11394
|
-
|
|
11395
|
-
|
|
11396
|
-
|
|
11397
|
-
|
|
11398
|
-
|
|
11399
|
-
|
|
11400
|
-
|
|
11401
|
-
|
|
11402
|
-
|
|
11403
|
-
|
|
11404
|
-
|
|
11405
|
-
|
|
11406
|
-
|
|
11407
|
-
|
|
11408
|
-
|
|
11409
|
-
|
|
11410
|
-
|
|
11411
|
-
|
|
11412
|
-
|
|
11413
|
-
|
|
11414
|
-
|
|
11415
|
-
|
|
11416
|
-
|
|
11417
|
-
|
|
11418
|
-
|
|
11419
|
-
|
|
11420
|
-
|
|
11421
|
-
|
|
11422
|
-
|
|
11423
|
-
|
|
11424
|
-
|
|
11425
|
-
|
|
11426
|
-
|
|
11427
|
-
|
|
11428
|
-
|
|
11429
|
-
|
|
11430
|
-
|
|
11431
|
-
|
|
11432
|
-
|
|
11433
|
-
|
|
11434
|
-
|
|
11435
|
-
|
|
11436
|
-
|
|
11437
|
-
|
|
11438
|
-
|
|
11439
|
-
|
|
11440
|
-
|
|
11441
|
-
|
|
11442
|
-
|
|
11443
|
-
),
|
|
11444
|
-
match_scope="matchScope",
|
|
11445
|
-
|
|
11446
|
-
# the properties below are optional
|
|
11447
|
-
invalid_fallback_behavior="invalidFallbackBehavior",
|
|
11448
|
-
oversize_handling="oversizeHandling"
|
|
11449
|
-
),
|
|
11450
|
-
method=method,
|
|
11451
|
-
query_string=query_string,
|
|
11452
|
-
single_header=single_header,
|
|
11453
|
-
single_query_argument=single_query_argument,
|
|
11454
|
-
uri_path=uri_path
|
|
11455
|
-
),
|
|
11456
|
-
regex_string="regexString",
|
|
11457
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
11458
|
-
priority=123,
|
|
11459
|
-
type="type"
|
|
11460
|
-
)]
|
|
10547
|
+
@builtins.property
|
|
10548
|
+
def type(self) -> builtins.str:
|
|
10549
|
+
'''For detailed descriptions of each of the transformation types, see `Text transformations <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-transformation.html>`_ in the *AWS WAF Developer Guide* .
|
|
10550
|
+
|
|
10551
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html#cfn-wafv2-rulegroup-texttransformation-type
|
|
10552
|
+
'''
|
|
10553
|
+
result = self._values.get("type")
|
|
10554
|
+
assert result is not None, "Required property 'type' is missing"
|
|
10555
|
+
return typing.cast(builtins.str, result)
|
|
10556
|
+
|
|
10557
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
10558
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
10559
|
+
|
|
10560
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
10561
|
+
return not (rhs == self)
|
|
10562
|
+
|
|
10563
|
+
def __repr__(self) -> str:
|
|
10564
|
+
return "TextTransformationProperty(%s)" % ", ".join(
|
|
10565
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
10566
|
+
)
|
|
10567
|
+
|
|
10568
|
+
@jsii.data_type(
|
|
10569
|
+
jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.UriFragmentProperty",
|
|
10570
|
+
jsii_struct_bases=[],
|
|
10571
|
+
name_mapping={"fallback_behavior": "fallbackBehavior"},
|
|
10572
|
+
)
|
|
10573
|
+
class UriFragmentProperty:
|
|
10574
|
+
def __init__(
|
|
10575
|
+
self,
|
|
10576
|
+
*,
|
|
10577
|
+
fallback_behavior: typing.Optional[builtins.str] = None,
|
|
10578
|
+
) -> None:
|
|
10579
|
+
'''The path component of the URI Fragment.
|
|
10580
|
+
|
|
10581
|
+
This is the part of a web request that identifies a fragment uri, for example, /abcd#introduction
|
|
10582
|
+
|
|
10583
|
+
:param fallback_behavior:
|
|
10584
|
+
|
|
10585
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-urifragment.html
|
|
10586
|
+
:exampleMetadata: fixture=_generated
|
|
10587
|
+
|
|
10588
|
+
Example::
|
|
10589
|
+
|
|
10590
|
+
# The code below shows an example of how to instantiate this type.
|
|
10591
|
+
# The values are placeholders you should change.
|
|
10592
|
+
from aws_cdk import aws_wafv2 as wafv2
|
|
10593
|
+
|
|
10594
|
+
uri_fragment_property = wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
10595
|
+
fallback_behavior="fallbackBehavior"
|
|
10596
|
+
)
|
|
10597
|
+
'''
|
|
10598
|
+
if __debug__:
|
|
10599
|
+
type_hints = typing.get_type_hints(_typecheckingstub__fe1c476d259659923a1664b8e966720fc48cf48f725562b81ef2c02997f8998a)
|
|
10600
|
+
check_type(argname="argument fallback_behavior", value=fallback_behavior, expected_type=type_hints["fallback_behavior"])
|
|
10601
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
10602
|
+
if fallback_behavior is not None:
|
|
10603
|
+
self._values["fallback_behavior"] = fallback_behavior
|
|
10604
|
+
|
|
10605
|
+
@builtins.property
|
|
10606
|
+
def fallback_behavior(self) -> typing.Optional[builtins.str]:
|
|
10607
|
+
'''
|
|
10608
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-urifragment.html#cfn-wafv2-rulegroup-urifragment-fallbackbehavior
|
|
10609
|
+
'''
|
|
10610
|
+
result = self._values.get("fallback_behavior")
|
|
10611
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
10612
|
+
|
|
10613
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
10614
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
10615
|
+
|
|
10616
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
10617
|
+
return not (rhs == self)
|
|
10618
|
+
|
|
10619
|
+
def __repr__(self) -> str:
|
|
10620
|
+
return "UriFragmentProperty(%s)" % ", ".join(
|
|
10621
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
10622
|
+
)
|
|
10623
|
+
|
|
10624
|
+
@jsii.data_type(
|
|
10625
|
+
jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.VisibilityConfigProperty",
|
|
10626
|
+
jsii_struct_bases=[],
|
|
10627
|
+
name_mapping={
|
|
10628
|
+
"cloud_watch_metrics_enabled": "cloudWatchMetricsEnabled",
|
|
10629
|
+
"metric_name": "metricName",
|
|
10630
|
+
"sampled_requests_enabled": "sampledRequestsEnabled",
|
|
10631
|
+
},
|
|
10632
|
+
)
|
|
10633
|
+
class VisibilityConfigProperty:
|
|
10634
|
+
def __init__(
|
|
10635
|
+
self,
|
|
10636
|
+
*,
|
|
10637
|
+
cloud_watch_metrics_enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
|
|
10638
|
+
metric_name: builtins.str,
|
|
10639
|
+
sampled_requests_enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
|
|
10640
|
+
) -> None:
|
|
10641
|
+
'''Defines and enables Amazon CloudWatch metrics and web request sample collection.
|
|
10642
|
+
|
|
10643
|
+
:param cloud_watch_metrics_enabled: Indicates whether the associated resource sends metrics to Amazon CloudWatch. For the list of available metrics, see `AWS WAF Metrics <https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics>`_ in the *AWS WAF Developer Guide* . For web ACLs, the metrics are for web requests that have the web ACL default action applied. AWS WAF applies the default action to web requests that pass the inspection of all rules in the web ACL without being either allowed or blocked. For more information, see `The web ACL default action <https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-default-action.html>`_ in the *AWS WAF Developer Guide* .
|
|
10644
|
+
:param metric_name: A name of the Amazon CloudWatch metric dimension. The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names that are reserved for AWS WAF , for example ``All`` and ``Default_Action`` .
|
|
10645
|
+
:param sampled_requests_enabled: Indicates whether AWS WAF should store a sampling of the web requests that match the rules. You can view the sampled requests through the AWS WAF console. If you configure data protection for the web ACL, the protection applies to the web ACL's sampled web request data. .. epigraph:: Request sampling doesn't provide a field redaction option, and any field redaction that you specify in your logging configuration doesn't affect sampling. You can only exclude fields from request sampling by disabling sampling in the web ACL visibility configuration or by configuring data protection for the web ACL.
|
|
10646
|
+
|
|
10647
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html
|
|
10648
|
+
:exampleMetadata: fixture=_generated
|
|
10649
|
+
|
|
10650
|
+
Example::
|
|
10651
|
+
|
|
10652
|
+
# The code below shows an example of how to instantiate this type.
|
|
10653
|
+
# The values are placeholders you should change.
|
|
10654
|
+
from aws_cdk import aws_wafv2 as wafv2
|
|
10655
|
+
|
|
10656
|
+
visibility_config_property = wafv2.CfnRuleGroup.VisibilityConfigProperty(
|
|
10657
|
+
cloud_watch_metrics_enabled=False,
|
|
10658
|
+
metric_name="metricName",
|
|
10659
|
+
sampled_requests_enabled=False
|
|
10660
|
+
)
|
|
10661
|
+
'''
|
|
10662
|
+
if __debug__:
|
|
10663
|
+
type_hints = typing.get_type_hints(_typecheckingstub__ffc3de9fa9cd77d11c4487ad80fc48948664b917c8642b35ca709762ce71fddf)
|
|
10664
|
+
check_type(argname="argument cloud_watch_metrics_enabled", value=cloud_watch_metrics_enabled, expected_type=type_hints["cloud_watch_metrics_enabled"])
|
|
10665
|
+
check_type(argname="argument metric_name", value=metric_name, expected_type=type_hints["metric_name"])
|
|
10666
|
+
check_type(argname="argument sampled_requests_enabled", value=sampled_requests_enabled, expected_type=type_hints["sampled_requests_enabled"])
|
|
10667
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
10668
|
+
"cloud_watch_metrics_enabled": cloud_watch_metrics_enabled,
|
|
10669
|
+
"metric_name": metric_name,
|
|
10670
|
+
"sampled_requests_enabled": sampled_requests_enabled,
|
|
10671
|
+
}
|
|
10672
|
+
|
|
10673
|
+
@builtins.property
|
|
10674
|
+
def cloud_watch_metrics_enabled(
|
|
10675
|
+
self,
|
|
10676
|
+
) -> typing.Union[builtins.bool, _IResolvable_da3f097b]:
|
|
10677
|
+
'''Indicates whether the associated resource sends metrics to Amazon CloudWatch.
|
|
10678
|
+
|
|
10679
|
+
For the list of available metrics, see `AWS WAF Metrics <https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics>`_ in the *AWS WAF Developer Guide* .
|
|
10680
|
+
|
|
10681
|
+
For web ACLs, the metrics are for web requests that have the web ACL default action applied. AWS WAF applies the default action to web requests that pass the inspection of all rules in the web ACL without being either allowed or blocked. For more information,
|
|
10682
|
+
see `The web ACL default action <https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-default-action.html>`_ in the *AWS WAF Developer Guide* .
|
|
10683
|
+
|
|
10684
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html#cfn-wafv2-rulegroup-visibilityconfig-cloudwatchmetricsenabled
|
|
10685
|
+
'''
|
|
10686
|
+
result = self._values.get("cloud_watch_metrics_enabled")
|
|
10687
|
+
assert result is not None, "Required property 'cloud_watch_metrics_enabled' is missing"
|
|
10688
|
+
return typing.cast(typing.Union[builtins.bool, _IResolvable_da3f097b], result)
|
|
10689
|
+
|
|
10690
|
+
@builtins.property
|
|
10691
|
+
def metric_name(self) -> builtins.str:
|
|
10692
|
+
'''A name of the Amazon CloudWatch metric dimension.
|
|
10693
|
+
|
|
10694
|
+
The name can contain only the characters: A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 128 characters long. It can't contain whitespace or metric names that are reserved for AWS WAF , for example ``All`` and ``Default_Action`` .
|
|
10695
|
+
|
|
10696
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html#cfn-wafv2-rulegroup-visibilityconfig-metricname
|
|
10697
|
+
'''
|
|
10698
|
+
result = self._values.get("metric_name")
|
|
10699
|
+
assert result is not None, "Required property 'metric_name' is missing"
|
|
10700
|
+
return typing.cast(builtins.str, result)
|
|
10701
|
+
|
|
10702
|
+
@builtins.property
|
|
10703
|
+
def sampled_requests_enabled(
|
|
10704
|
+
self,
|
|
10705
|
+
) -> typing.Union[builtins.bool, _IResolvable_da3f097b]:
|
|
10706
|
+
'''Indicates whether AWS WAF should store a sampling of the web requests that match the rules.
|
|
10707
|
+
|
|
10708
|
+
You can view the sampled requests through the AWS WAF console.
|
|
10709
|
+
|
|
10710
|
+
If you configure data protection for the web ACL, the protection applies to the web ACL's sampled web request data.
|
|
10711
|
+
.. epigraph::
|
|
10712
|
+
|
|
10713
|
+
Request sampling doesn't provide a field redaction option, and any field redaction that you specify in your logging configuration doesn't affect sampling. You can only exclude fields from request sampling by disabling sampling in the web ACL visibility configuration or by configuring data protection for the web ACL.
|
|
10714
|
+
|
|
10715
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html#cfn-wafv2-rulegroup-visibilityconfig-sampledrequestsenabled
|
|
10716
|
+
'''
|
|
10717
|
+
result = self._values.get("sampled_requests_enabled")
|
|
10718
|
+
assert result is not None, "Required property 'sampled_requests_enabled' is missing"
|
|
10719
|
+
return typing.cast(typing.Union[builtins.bool, _IResolvable_da3f097b], result)
|
|
10720
|
+
|
|
10721
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
10722
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
10723
|
+
|
|
10724
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
10725
|
+
return not (rhs == self)
|
|
10726
|
+
|
|
10727
|
+
def __repr__(self) -> str:
|
|
10728
|
+
return "VisibilityConfigProperty(%s)" % ", ".join(
|
|
10729
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
10730
|
+
)
|
|
10731
|
+
|
|
10732
|
+
@jsii.data_type(
|
|
10733
|
+
jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.XssMatchStatementProperty",
|
|
10734
|
+
jsii_struct_bases=[],
|
|
10735
|
+
name_mapping={
|
|
10736
|
+
"field_to_match": "fieldToMatch",
|
|
10737
|
+
"text_transformations": "textTransformations",
|
|
10738
|
+
},
|
|
10739
|
+
)
|
|
10740
|
+
class XssMatchStatementProperty:
|
|
10741
|
+
def __init__(
|
|
10742
|
+
self,
|
|
10743
|
+
*,
|
|
10744
|
+
field_to_match: typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.FieldToMatchProperty", typing.Dict[builtins.str, typing.Any]]],
|
|
10745
|
+
text_transformations: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.TextTransformationProperty", typing.Dict[builtins.str, typing.Any]]]]],
|
|
10746
|
+
) -> None:
|
|
10747
|
+
'''A rule statement that inspects for cross-site scripting (XSS) attacks.
|
|
10748
|
+
|
|
10749
|
+
In XSS attacks, the attacker uses vulnerabilities in a benign website as a vehicle to inject malicious client-site scripts into other legitimate web browsers.
|
|
10750
|
+
|
|
10751
|
+
:param field_to_match: The part of the web request that you want AWS WAF to inspect.
|
|
10752
|
+
:param text_transformations: Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content of the request component identified by ``FieldToMatch`` , starting from the lowest priority setting, before inspecting the content for a match.
|
|
10753
|
+
|
|
10754
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-xssmatchstatement.html
|
|
10755
|
+
:exampleMetadata: fixture=_generated
|
|
10756
|
+
|
|
10757
|
+
Example::
|
|
10758
|
+
|
|
10759
|
+
# The code below shows an example of how to instantiate this type.
|
|
10760
|
+
# The values are placeholders you should change.
|
|
10761
|
+
from aws_cdk import aws_wafv2 as wafv2
|
|
10762
|
+
|
|
10763
|
+
# all: Any
|
|
10764
|
+
# all_query_arguments: Any
|
|
10765
|
+
# method: Any
|
|
10766
|
+
# query_string: Any
|
|
10767
|
+
# single_header: Any
|
|
10768
|
+
# single_query_argument: Any
|
|
10769
|
+
# uri_path: Any
|
|
10770
|
+
|
|
10771
|
+
xss_match_statement_property = wafv2.CfnRuleGroup.XssMatchStatementProperty(
|
|
10772
|
+
field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
|
|
10773
|
+
all_query_arguments=all_query_arguments,
|
|
10774
|
+
body=wafv2.CfnRuleGroup.BodyProperty(
|
|
10775
|
+
oversize_handling="oversizeHandling"
|
|
11461
10776
|
),
|
|
11462
|
-
|
|
11463
|
-
|
|
11464
|
-
|
|
11465
|
-
|
|
11466
|
-
|
|
11467
|
-
oversize_handling="oversizeHandling"
|
|
11468
|
-
),
|
|
11469
|
-
cookies=wafv2.CfnRuleGroup.CookiesProperty(
|
|
11470
|
-
match_pattern=wafv2.CfnRuleGroup.CookieMatchPatternProperty(
|
|
11471
|
-
all=all,
|
|
11472
|
-
excluded_cookies=["excludedCookies"],
|
|
11473
|
-
included_cookies=["includedCookies"]
|
|
11474
|
-
),
|
|
11475
|
-
match_scope="matchScope",
|
|
11476
|
-
oversize_handling="oversizeHandling"
|
|
11477
|
-
),
|
|
11478
|
-
headers=wafv2.CfnRuleGroup.HeadersProperty(
|
|
11479
|
-
match_pattern=wafv2.CfnRuleGroup.HeaderMatchPatternProperty(
|
|
11480
|
-
all=all,
|
|
11481
|
-
excluded_headers=["excludedHeaders"],
|
|
11482
|
-
included_headers=["includedHeaders"]
|
|
11483
|
-
),
|
|
11484
|
-
match_scope="matchScope",
|
|
11485
|
-
oversize_handling="oversizeHandling"
|
|
11486
|
-
),
|
|
11487
|
-
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
11488
|
-
fallback_behavior="fallbackBehavior"
|
|
11489
|
-
),
|
|
11490
|
-
ja4_fingerprint=wafv2.CfnRuleGroup.JA4FingerprintProperty(
|
|
11491
|
-
fallback_behavior="fallbackBehavior"
|
|
11492
|
-
),
|
|
11493
|
-
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
11494
|
-
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
11495
|
-
all=all,
|
|
11496
|
-
included_paths=["includedPaths"]
|
|
11497
|
-
),
|
|
11498
|
-
match_scope="matchScope",
|
|
11499
|
-
|
|
11500
|
-
# the properties below are optional
|
|
11501
|
-
invalid_fallback_behavior="invalidFallbackBehavior",
|
|
11502
|
-
oversize_handling="oversizeHandling"
|
|
11503
|
-
),
|
|
11504
|
-
method=method,
|
|
11505
|
-
query_string=query_string,
|
|
11506
|
-
single_header=single_header,
|
|
11507
|
-
single_query_argument=single_query_argument,
|
|
11508
|
-
uri_path=uri_path
|
|
10777
|
+
cookies=wafv2.CfnRuleGroup.CookiesProperty(
|
|
10778
|
+
match_pattern=wafv2.CfnRuleGroup.CookieMatchPatternProperty(
|
|
10779
|
+
all=all,
|
|
10780
|
+
excluded_cookies=["excludedCookies"],
|
|
10781
|
+
included_cookies=["includedCookies"]
|
|
11509
10782
|
),
|
|
11510
|
-
|
|
11511
|
-
|
|
11512
|
-
type="type"
|
|
11513
|
-
)]
|
|
10783
|
+
match_scope="matchScope",
|
|
10784
|
+
oversize_handling="oversizeHandling"
|
|
11514
10785
|
),
|
|
11515
|
-
|
|
11516
|
-
|
|
11517
|
-
|
|
11518
|
-
|
|
11519
|
-
|
|
11520
|
-
oversize_handling="oversizeHandling"
|
|
11521
|
-
),
|
|
11522
|
-
cookies=wafv2.CfnRuleGroup.CookiesProperty(
|
|
11523
|
-
match_pattern=wafv2.CfnRuleGroup.CookieMatchPatternProperty(
|
|
11524
|
-
all=all,
|
|
11525
|
-
excluded_cookies=["excludedCookies"],
|
|
11526
|
-
included_cookies=["includedCookies"]
|
|
11527
|
-
),
|
|
11528
|
-
match_scope="matchScope",
|
|
11529
|
-
oversize_handling="oversizeHandling"
|
|
11530
|
-
),
|
|
11531
|
-
headers=wafv2.CfnRuleGroup.HeadersProperty(
|
|
11532
|
-
match_pattern=wafv2.CfnRuleGroup.HeaderMatchPatternProperty(
|
|
11533
|
-
all=all,
|
|
11534
|
-
excluded_headers=["excludedHeaders"],
|
|
11535
|
-
included_headers=["includedHeaders"]
|
|
11536
|
-
),
|
|
11537
|
-
match_scope="matchScope",
|
|
11538
|
-
oversize_handling="oversizeHandling"
|
|
11539
|
-
),
|
|
11540
|
-
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
11541
|
-
fallback_behavior="fallbackBehavior"
|
|
11542
|
-
),
|
|
11543
|
-
ja4_fingerprint=wafv2.CfnRuleGroup.JA4FingerprintProperty(
|
|
11544
|
-
fallback_behavior="fallbackBehavior"
|
|
11545
|
-
),
|
|
11546
|
-
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
11547
|
-
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
11548
|
-
all=all,
|
|
11549
|
-
included_paths=["includedPaths"]
|
|
11550
|
-
),
|
|
11551
|
-
match_scope="matchScope",
|
|
11552
|
-
|
|
11553
|
-
# the properties below are optional
|
|
11554
|
-
invalid_fallback_behavior="invalidFallbackBehavior",
|
|
11555
|
-
oversize_handling="oversizeHandling"
|
|
11556
|
-
),
|
|
11557
|
-
method=method,
|
|
11558
|
-
query_string=query_string,
|
|
11559
|
-
single_header=single_header,
|
|
11560
|
-
single_query_argument=single_query_argument,
|
|
11561
|
-
uri_path=uri_path
|
|
10786
|
+
headers=wafv2.CfnRuleGroup.HeadersProperty(
|
|
10787
|
+
match_pattern=wafv2.CfnRuleGroup.HeaderMatchPatternProperty(
|
|
10788
|
+
all=all,
|
|
10789
|
+
excluded_headers=["excludedHeaders"],
|
|
10790
|
+
included_headers=["includedHeaders"]
|
|
11562
10791
|
),
|
|
11563
|
-
|
|
11564
|
-
|
|
11565
|
-
priority=123,
|
|
11566
|
-
type="type"
|
|
11567
|
-
)]
|
|
10792
|
+
match_scope="matchScope",
|
|
10793
|
+
oversize_handling="oversizeHandling"
|
|
11568
10794
|
),
|
|
11569
|
-
|
|
11570
|
-
|
|
11571
|
-
|
|
11572
|
-
|
|
11573
|
-
|
|
11574
|
-
|
|
11575
|
-
|
|
11576
|
-
|
|
11577
|
-
|
|
11578
|
-
|
|
11579
|
-
included_cookies=["includedCookies"]
|
|
11580
|
-
),
|
|
11581
|
-
match_scope="matchScope",
|
|
11582
|
-
oversize_handling="oversizeHandling"
|
|
11583
|
-
),
|
|
11584
|
-
headers=wafv2.CfnRuleGroup.HeadersProperty(
|
|
11585
|
-
match_pattern=wafv2.CfnRuleGroup.HeaderMatchPatternProperty(
|
|
11586
|
-
all=all,
|
|
11587
|
-
excluded_headers=["excludedHeaders"],
|
|
11588
|
-
included_headers=["includedHeaders"]
|
|
11589
|
-
),
|
|
11590
|
-
match_scope="matchScope",
|
|
11591
|
-
oversize_handling="oversizeHandling"
|
|
11592
|
-
),
|
|
11593
|
-
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
11594
|
-
fallback_behavior="fallbackBehavior"
|
|
11595
|
-
),
|
|
11596
|
-
ja4_fingerprint=wafv2.CfnRuleGroup.JA4FingerprintProperty(
|
|
11597
|
-
fallback_behavior="fallbackBehavior"
|
|
11598
|
-
),
|
|
11599
|
-
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
11600
|
-
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
11601
|
-
all=all,
|
|
11602
|
-
included_paths=["includedPaths"]
|
|
11603
|
-
),
|
|
11604
|
-
match_scope="matchScope",
|
|
11605
|
-
|
|
11606
|
-
# the properties below are optional
|
|
11607
|
-
invalid_fallback_behavior="invalidFallbackBehavior",
|
|
11608
|
-
oversize_handling="oversizeHandling"
|
|
11609
|
-
),
|
|
11610
|
-
method=method,
|
|
11611
|
-
query_string=query_string,
|
|
11612
|
-
single_header=single_header,
|
|
11613
|
-
single_query_argument=single_query_argument,
|
|
11614
|
-
uri_path=uri_path
|
|
10795
|
+
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
10796
|
+
fallback_behavior="fallbackBehavior"
|
|
10797
|
+
),
|
|
10798
|
+
ja4_fingerprint=wafv2.CfnRuleGroup.JA4FingerprintProperty(
|
|
10799
|
+
fallback_behavior="fallbackBehavior"
|
|
10800
|
+
),
|
|
10801
|
+
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
10802
|
+
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
10803
|
+
all=all,
|
|
10804
|
+
included_paths=["includedPaths"]
|
|
11615
10805
|
),
|
|
11616
|
-
|
|
11617
|
-
|
|
11618
|
-
type="type"
|
|
11619
|
-
)],
|
|
11620
|
-
|
|
10806
|
+
match_scope="matchScope",
|
|
10807
|
+
|
|
11621
10808
|
# the properties below are optional
|
|
11622
|
-
|
|
10809
|
+
invalid_fallback_behavior="invalidFallbackBehavior",
|
|
10810
|
+
oversize_handling="oversizeHandling"
|
|
11623
10811
|
),
|
|
11624
|
-
|
|
11625
|
-
|
|
11626
|
-
|
|
11627
|
-
|
|
11628
|
-
|
|
11629
|
-
|
|
11630
|
-
|
|
11631
|
-
|
|
11632
|
-
all=all,
|
|
11633
|
-
excluded_cookies=["excludedCookies"],
|
|
11634
|
-
included_cookies=["includedCookies"]
|
|
11635
|
-
),
|
|
11636
|
-
match_scope="matchScope",
|
|
11637
|
-
oversize_handling="oversizeHandling"
|
|
11638
|
-
),
|
|
11639
|
-
headers=wafv2.CfnRuleGroup.HeadersProperty(
|
|
11640
|
-
match_pattern=wafv2.CfnRuleGroup.HeaderMatchPatternProperty(
|
|
11641
|
-
all=all,
|
|
11642
|
-
excluded_headers=["excludedHeaders"],
|
|
11643
|
-
included_headers=["includedHeaders"]
|
|
11644
|
-
),
|
|
11645
|
-
match_scope="matchScope",
|
|
11646
|
-
oversize_handling="oversizeHandling"
|
|
11647
|
-
),
|
|
11648
|
-
ja3_fingerprint=wafv2.CfnRuleGroup.JA3FingerprintProperty(
|
|
11649
|
-
fallback_behavior="fallbackBehavior"
|
|
11650
|
-
),
|
|
11651
|
-
ja4_fingerprint=wafv2.CfnRuleGroup.JA4FingerprintProperty(
|
|
11652
|
-
fallback_behavior="fallbackBehavior"
|
|
11653
|
-
),
|
|
11654
|
-
json_body=wafv2.CfnRuleGroup.JsonBodyProperty(
|
|
11655
|
-
match_pattern=wafv2.CfnRuleGroup.JsonMatchPatternProperty(
|
|
11656
|
-
all=all,
|
|
11657
|
-
included_paths=["includedPaths"]
|
|
11658
|
-
),
|
|
11659
|
-
match_scope="matchScope",
|
|
11660
|
-
|
|
11661
|
-
# the properties below are optional
|
|
11662
|
-
invalid_fallback_behavior="invalidFallbackBehavior",
|
|
11663
|
-
oversize_handling="oversizeHandling"
|
|
11664
|
-
),
|
|
11665
|
-
method=method,
|
|
11666
|
-
query_string=query_string,
|
|
11667
|
-
single_header=single_header,
|
|
11668
|
-
single_query_argument=single_query_argument,
|
|
11669
|
-
uri_path=uri_path
|
|
11670
|
-
),
|
|
11671
|
-
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
11672
|
-
priority=123,
|
|
11673
|
-
type="type"
|
|
11674
|
-
)]
|
|
11675
|
-
)
|
|
11676
|
-
),
|
|
11677
|
-
visibility_config=wafv2.CfnRuleGroup.VisibilityConfigProperty(
|
|
11678
|
-
cloud_watch_metrics_enabled=False,
|
|
11679
|
-
metric_name="metricName",
|
|
11680
|
-
sampled_requests_enabled=False
|
|
11681
|
-
),
|
|
11682
|
-
|
|
11683
|
-
# the properties below are optional
|
|
11684
|
-
action=wafv2.CfnRuleGroup.RuleActionProperty(
|
|
11685
|
-
allow=allow,
|
|
11686
|
-
block=block,
|
|
11687
|
-
captcha=captcha,
|
|
11688
|
-
challenge=challenge,
|
|
11689
|
-
count=count
|
|
11690
|
-
),
|
|
11691
|
-
captcha_config=wafv2.CfnRuleGroup.CaptchaConfigProperty(
|
|
11692
|
-
immunity_time_property=wafv2.CfnRuleGroup.ImmunityTimePropertyProperty(
|
|
11693
|
-
immunity_time=123
|
|
11694
|
-
)
|
|
11695
|
-
),
|
|
11696
|
-
challenge_config=wafv2.CfnRuleGroup.ChallengeConfigProperty(
|
|
11697
|
-
immunity_time_property=wafv2.CfnRuleGroup.ImmunityTimePropertyProperty(
|
|
11698
|
-
immunity_time=123
|
|
11699
|
-
)
|
|
10812
|
+
method=method,
|
|
10813
|
+
query_string=query_string,
|
|
10814
|
+
single_header=single_header,
|
|
10815
|
+
single_query_argument=single_query_argument,
|
|
10816
|
+
uri_fragment=wafv2.CfnRuleGroup.UriFragmentProperty(
|
|
10817
|
+
fallback_behavior="fallbackBehavior"
|
|
10818
|
+
),
|
|
10819
|
+
uri_path=uri_path
|
|
11700
10820
|
),
|
|
11701
|
-
|
|
11702
|
-
|
|
10821
|
+
text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
|
|
10822
|
+
priority=123,
|
|
10823
|
+
type="type"
|
|
11703
10824
|
)]
|
|
11704
|
-
)
|
|
11705
|
-
|
|
11706
|
-
|
|
11707
|
-
|
|
11708
|
-
)
|
|
10825
|
+
)
|
|
10826
|
+
'''
|
|
10827
|
+
if __debug__:
|
|
10828
|
+
type_hints = typing.get_type_hints(_typecheckingstub__e502ec1c8bc4096eb797b55f6c0a1f9c506e23db360770a855cc273d36ce4b4a)
|
|
10829
|
+
check_type(argname="argument field_to_match", value=field_to_match, expected_type=type_hints["field_to_match"])
|
|
10830
|
+
check_type(argname="argument text_transformations", value=text_transformations, expected_type=type_hints["text_transformations"])
|
|
10831
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
10832
|
+
"field_to_match": field_to_match,
|
|
10833
|
+
"text_transformations": text_transformations,
|
|
10834
|
+
}
|
|
10835
|
+
|
|
10836
|
+
@builtins.property
|
|
10837
|
+
def field_to_match(
|
|
10838
|
+
self,
|
|
10839
|
+
) -> typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.FieldToMatchProperty"]:
|
|
10840
|
+
'''The part of the web request that you want AWS WAF to inspect.
|
|
10841
|
+
|
|
10842
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-xssmatchstatement.html#cfn-wafv2-rulegroup-xssmatchstatement-fieldtomatch
|
|
10843
|
+
'''
|
|
10844
|
+
result = self._values.get("field_to_match")
|
|
10845
|
+
assert result is not None, "Required property 'field_to_match' is missing"
|
|
10846
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.FieldToMatchProperty"], result)
|
|
10847
|
+
|
|
10848
|
+
@builtins.property
|
|
10849
|
+
def text_transformations(
|
|
10850
|
+
self,
|
|
10851
|
+
) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.TextTransformationProperty"]]]:
|
|
10852
|
+
'''Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection.
|
|
10853
|
+
|
|
10854
|
+
If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content of the request component identified by ``FieldToMatch`` , starting from the lowest priority setting, before inspecting the content for a match.
|
|
10855
|
+
|
|
10856
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-xssmatchstatement.html#cfn-wafv2-rulegroup-xssmatchstatement-texttransformations
|
|
10857
|
+
'''
|
|
10858
|
+
result = self._values.get("text_transformations")
|
|
10859
|
+
assert result is not None, "Required property 'text_transformations' is missing"
|
|
10860
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.TextTransformationProperty"]]], result)
|
|
10861
|
+
|
|
10862
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
10863
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
10864
|
+
|
|
10865
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
10866
|
+
return not (rhs == self)
|
|
10867
|
+
|
|
10868
|
+
def __repr__(self) -> str:
|
|
10869
|
+
return "XssMatchStatementProperty(%s)" % ", ".join(
|
|
10870
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
11709
10871
|
)
|
|
10872
|
+
|
|
10873
|
+
|
|
10874
|
+
@jsii.data_type(
|
|
10875
|
+
jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroupProps",
|
|
10876
|
+
jsii_struct_bases=[],
|
|
10877
|
+
name_mapping={
|
|
10878
|
+
"capacity": "capacity",
|
|
10879
|
+
"scope": "scope",
|
|
10880
|
+
"visibility_config": "visibilityConfig",
|
|
10881
|
+
"available_labels": "availableLabels",
|
|
10882
|
+
"consumed_labels": "consumedLabels",
|
|
10883
|
+
"custom_response_bodies": "customResponseBodies",
|
|
10884
|
+
"description": "description",
|
|
10885
|
+
"name": "name",
|
|
10886
|
+
"rules": "rules",
|
|
10887
|
+
"tags": "tags",
|
|
10888
|
+
},
|
|
10889
|
+
)
|
|
10890
|
+
class CfnRuleGroupProps:
|
|
10891
|
+
def __init__(
|
|
10892
|
+
self,
|
|
10893
|
+
*,
|
|
10894
|
+
capacity: jsii.Number,
|
|
10895
|
+
scope: builtins.str,
|
|
10896
|
+
visibility_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.VisibilityConfigProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
10897
|
+
available_labels: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.LabelSummaryProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
10898
|
+
consumed_labels: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.LabelSummaryProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
10899
|
+
custom_response_bodies: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.CustomResponseBodyProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
10900
|
+
description: typing.Optional[builtins.str] = None,
|
|
10901
|
+
name: typing.Optional[builtins.str] = None,
|
|
10902
|
+
rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.RuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
10903
|
+
tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
10904
|
+
) -> None:
|
|
10905
|
+
'''Properties for defining a ``CfnRuleGroup``.
|
|
10906
|
+
|
|
10907
|
+
:param capacity: The web ACL capacity units (WCUs) required for this rule group. When you create your own rule group, you define this, and you cannot change it after creation. When you add or modify the rules in a rule group, AWS WAF enforces this limit. AWS WAF uses WCUs to calculate and control the operating resources that are used to run your rules, rule groups, and web ACLs. AWS WAF calculates capacity differently for each rule type, to reflect the relative cost of each rule. Simple rules that cost little to run use fewer WCUs than more complex rules that use more processing power. Rule group capacity is fixed at creation, which helps users plan their web ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500.
|
|
10908
|
+
:param scope: Specifies whether this is for an Amazon CloudFront distribution or for a regional application. A regional application can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, an AWS AppSync GraphQL API, an Amazon Cognito user pool, an AWS App Runner service, or an AWS Verified Access instance. Valid Values are ``CLOUDFRONT`` and ``REGIONAL`` . .. epigraph:: For ``CLOUDFRONT`` , you must create your WAFv2 resources in the US East (N. Virginia) Region, ``us-east-1`` .
|
|
10909
|
+
:param visibility_config: Defines and enables Amazon CloudWatch metrics and web request sample collection.
|
|
10910
|
+
:param available_labels: The labels that one or more rules in this rule group add to matching web requests. These labels are defined in the ``RuleLabels`` for a ``Rule`` .
|
|
10911
|
+
:param consumed_labels: The labels that one or more rules in this rule group match against in label match statements. These labels are defined in a ``LabelMatchStatement`` specification, in the ``Statement`` definition of a rule.
|
|
10912
|
+
:param custom_response_bodies: A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the rule group, and then use them in the rules that you define in the rule group. For information about customizing web requests and responses, see `Customizing web requests and responses in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html>`_ in the *AWS WAF Developer Guide* . For information about the limits on count and size for custom request and response settings, see `AWS WAF quotas <https://docs.aws.amazon.com/waf/latest/developerguide/limits.html>`_ in the *AWS WAF Developer Guide* .
|
|
10913
|
+
:param description: A description of the rule group that helps with identification.
|
|
10914
|
+
:param name: The name of the rule group. You cannot change the name of a rule group after you create it.
|
|
10915
|
+
:param rules: The rule statements used to identify the web requests that you want to allow, block, or count. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.
|
|
10916
|
+
:param tags: Key:value pairs associated with an AWS resource. The key:value pair can be anything you define. Typically, the tag key represents a category (such as "environment") and the tag value represents a specific value within that category (such as "test," "development," or "production"). You can add up to 50 tags to each AWS resource. .. epigraph:: To modify tags on existing resources, use the AWS WAF APIs or command line interface. With AWS CloudFormation , you can only add tags to AWS WAF resources during resource creation.
|
|
10917
|
+
|
|
10918
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html
|
|
10919
|
+
:exampleMetadata: fixture=_generated
|
|
10920
|
+
|
|
10921
|
+
Example::
|
|
10922
|
+
|
|
10923
|
+
|
|
11710
10924
|
'''
|
|
11711
10925
|
if __debug__:
|
|
11712
10926
|
type_hints = typing.get_type_hints(_typecheckingstub__c8dfa44d9c30297c12ad00bd34bbd4b85ea5438f4127e7e97226c16565c6ef5b)
|
|
@@ -11934,6 +11148,7 @@ class CfnWebACL(
|
|
|
11934
11148
|
captcha_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.CaptchaConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
11935
11149
|
challenge_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.ChallengeConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
11936
11150
|
custom_response_bodies: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.CustomResponseBodyProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
11151
|
+
data_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.DataProtectionConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
11937
11152
|
description: typing.Optional[builtins.str] = None,
|
|
11938
11153
|
name: typing.Optional[builtins.str] = None,
|
|
11939
11154
|
rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.RuleProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
@@ -11950,6 +11165,7 @@ class CfnWebACL(
|
|
|
11950
11165
|
:param captcha_config: Specifies how AWS WAF should handle ``CAPTCHA`` evaluations for rules that don't have their own ``CaptchaConfig`` settings. If you don't specify this, AWS WAF uses its default settings for ``CaptchaConfig`` .
|
|
11951
11166
|
:param challenge_config: Specifies how AWS WAF should handle challenge evaluations for rules that don't have their own ``ChallengeConfig`` settings. If you don't specify this, AWS WAF uses its default settings for ``ChallengeConfig`` .
|
|
11952
11167
|
:param custom_response_bodies: A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL. For information about customizing web requests and responses, see `Customizing web requests and responses in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html>`_ in the *AWS WAF Developer Guide* . For information about the limits on count and size for custom request and response settings, see `AWS WAF quotas <https://docs.aws.amazon.com/waf/latest/developerguide/limits.html>`_ in the *AWS WAF Developer Guide* .
|
|
11168
|
+
:param data_protection_config: Specifies data protection to apply to the web request data for the web ACL. This is a web ACL level data protection option. The data protection that you configure for the web ACL alters the data that's available for any other data collection activity, including your AWS WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging.
|
|
11953
11169
|
:param description: A description of the web ACL that helps with identification.
|
|
11954
11170
|
:param name: The name of the web ACL. You cannot change the name of a web ACL after you create it.
|
|
11955
11171
|
:param rules: The rule statements used to identify the web requests that you want to manage. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.
|
|
@@ -11968,6 +11184,7 @@ class CfnWebACL(
|
|
|
11968
11184
|
captcha_config=captcha_config,
|
|
11969
11185
|
challenge_config=challenge_config,
|
|
11970
11186
|
custom_response_bodies=custom_response_bodies,
|
|
11187
|
+
data_protection_config=data_protection_config,
|
|
11971
11188
|
description=description,
|
|
11972
11189
|
name=name,
|
|
11973
11190
|
rules=rules,
|
|
@@ -12183,6 +11400,24 @@ class CfnWebACL(
|
|
|
12183
11400
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
12184
11401
|
jsii.set(self, "customResponseBodies", value) # pyright: ignore[reportArgumentType]
|
|
12185
11402
|
|
|
11403
|
+
@builtins.property
|
|
11404
|
+
@jsii.member(jsii_name="dataProtectionConfig")
|
|
11405
|
+
def data_protection_config(
|
|
11406
|
+
self,
|
|
11407
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.DataProtectionConfigProperty"]]:
|
|
11408
|
+
'''Specifies data protection to apply to the web request data for the web ACL.'''
|
|
11409
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.DataProtectionConfigProperty"]], jsii.get(self, "dataProtectionConfig"))
|
|
11410
|
+
|
|
11411
|
+
@data_protection_config.setter
|
|
11412
|
+
def data_protection_config(
|
|
11413
|
+
self,
|
|
11414
|
+
value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.DataProtectionConfigProperty"]],
|
|
11415
|
+
) -> None:
|
|
11416
|
+
if __debug__:
|
|
11417
|
+
type_hints = typing.get_type_hints(_typecheckingstub__c8fdb8c606175920c3facb5c8db0632e7cdc7bedffcd3c6c787bab31ba6f6474)
|
|
11418
|
+
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
11419
|
+
jsii.set(self, "dataProtectionConfig", value) # pyright: ignore[reportArgumentType]
|
|
11420
|
+
|
|
12186
11421
|
@builtins.property
|
|
12187
11422
|
@jsii.member(jsii_name="description")
|
|
12188
11423
|
def description(self) -> typing.Optional[builtins.str]:
|
|
@@ -13116,6 +12351,9 @@ class CfnWebACL(
|
|
|
13116
12351
|
query_string=query_string,
|
|
13117
12352
|
single_header=single_header,
|
|
13118
12353
|
single_query_argument=single_query_argument,
|
|
12354
|
+
uri_fragment=wafv2.CfnWebACL.UriFragmentProperty(
|
|
12355
|
+
fallback_behavior="fallbackBehavior"
|
|
12356
|
+
),
|
|
13119
12357
|
uri_path=uri_path
|
|
13120
12358
|
),
|
|
13121
12359
|
positional_constraint="positionalConstraint",
|
|
@@ -13981,37 +13219,261 @@ class CfnWebACL(
|
|
|
13981
13219
|
)
|
|
13982
13220
|
'''
|
|
13983
13221
|
if __debug__:
|
|
13984
|
-
type_hints = typing.get_type_hints(_typecheckingstub__281879092afa665915e6fd969d0e9a5b5b4898fe8ef498c2dea6a4bf1109aafa)
|
|
13985
|
-
check_type(argname="argument content", value=content, expected_type=type_hints["content"])
|
|
13986
|
-
check_type(argname="argument content_type", value=content_type, expected_type=type_hints["content_type"])
|
|
13222
|
+
type_hints = typing.get_type_hints(_typecheckingstub__281879092afa665915e6fd969d0e9a5b5b4898fe8ef498c2dea6a4bf1109aafa)
|
|
13223
|
+
check_type(argname="argument content", value=content, expected_type=type_hints["content"])
|
|
13224
|
+
check_type(argname="argument content_type", value=content_type, expected_type=type_hints["content_type"])
|
|
13225
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
13226
|
+
"content": content,
|
|
13227
|
+
"content_type": content_type,
|
|
13228
|
+
}
|
|
13229
|
+
|
|
13230
|
+
@builtins.property
|
|
13231
|
+
def content(self) -> builtins.str:
|
|
13232
|
+
'''The payload of the custom response.
|
|
13233
|
+
|
|
13234
|
+
You can use JSON escape strings in JSON content. To do this, you must specify JSON content in the ``ContentType`` setting.
|
|
13235
|
+
|
|
13236
|
+
For information about the limits on count and size for custom request and response settings, see `AWS WAF quotas <https://docs.aws.amazon.com/waf/latest/developerguide/limits.html>`_ in the *AWS WAF Developer Guide* .
|
|
13237
|
+
|
|
13238
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponsebody.html#cfn-wafv2-webacl-customresponsebody-content
|
|
13239
|
+
'''
|
|
13240
|
+
result = self._values.get("content")
|
|
13241
|
+
assert result is not None, "Required property 'content' is missing"
|
|
13242
|
+
return typing.cast(builtins.str, result)
|
|
13243
|
+
|
|
13244
|
+
@builtins.property
|
|
13245
|
+
def content_type(self) -> builtins.str:
|
|
13246
|
+
'''The type of content in the payload that you are defining in the ``Content`` string.
|
|
13247
|
+
|
|
13248
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponsebody.html#cfn-wafv2-webacl-customresponsebody-contenttype
|
|
13249
|
+
'''
|
|
13250
|
+
result = self._values.get("content_type")
|
|
13251
|
+
assert result is not None, "Required property 'content_type' is missing"
|
|
13252
|
+
return typing.cast(builtins.str, result)
|
|
13253
|
+
|
|
13254
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
13255
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
13256
|
+
|
|
13257
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
13258
|
+
return not (rhs == self)
|
|
13259
|
+
|
|
13260
|
+
def __repr__(self) -> str:
|
|
13261
|
+
return "CustomResponseBodyProperty(%s)" % ", ".join(
|
|
13262
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
13263
|
+
)
|
|
13264
|
+
|
|
13265
|
+
@jsii.data_type(
|
|
13266
|
+
jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.CustomResponseProperty",
|
|
13267
|
+
jsii_struct_bases=[],
|
|
13268
|
+
name_mapping={
|
|
13269
|
+
"response_code": "responseCode",
|
|
13270
|
+
"custom_response_body_key": "customResponseBodyKey",
|
|
13271
|
+
"response_headers": "responseHeaders",
|
|
13272
|
+
},
|
|
13273
|
+
)
|
|
13274
|
+
class CustomResponseProperty:
|
|
13275
|
+
def __init__(
|
|
13276
|
+
self,
|
|
13277
|
+
*,
|
|
13278
|
+
response_code: jsii.Number,
|
|
13279
|
+
custom_response_body_key: typing.Optional[builtins.str] = None,
|
|
13280
|
+
response_headers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.CustomHTTPHeaderProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
13281
|
+
) -> None:
|
|
13282
|
+
'''A custom response to send to the client.
|
|
13283
|
+
|
|
13284
|
+
You can define a custom response for rule actions and default web ACL actions that are set to the block action.
|
|
13285
|
+
|
|
13286
|
+
For information about customizing web requests and responses, see `Customizing web requests and responses in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html>`_ in the `AWS WAF developer guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`_ .
|
|
13287
|
+
|
|
13288
|
+
:param response_code: The HTTP status code to return to the client. For a list of status codes that you can use in your custom responses, see `Supported status codes for custom response <https://docs.aws.amazon.com/waf/latest/developerguide/customizing-the-response-status-codes.html>`_ in the *AWS WAF Developer Guide* .
|
|
13289
|
+
:param custom_response_body_key: References the response body that you want AWS WAF to return to the web request client. You can define a custom response for a rule action or a default web ACL action that is set to block. To do this, you first define the response body key and value in the ``CustomResponseBodies`` setting for the ``WebACL`` or ``RuleGroup`` where you want to use it. Then, in the rule action or web ACL default action ``BlockAction`` setting, you reference the response body using this key.
|
|
13290
|
+
:param response_headers: The HTTP headers to use in the response. You can specify any header name except for ``content-type`` . Duplicate header names are not allowed. For information about the limits on count and size for custom request and response settings, see `AWS WAF quotas <https://docs.aws.amazon.com/waf/latest/developerguide/limits.html>`_ in the *AWS WAF Developer Guide* .
|
|
13291
|
+
|
|
13292
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponse.html
|
|
13293
|
+
:exampleMetadata: fixture=_generated
|
|
13294
|
+
|
|
13295
|
+
Example::
|
|
13296
|
+
|
|
13297
|
+
# The code below shows an example of how to instantiate this type.
|
|
13298
|
+
# The values are placeholders you should change.
|
|
13299
|
+
from aws_cdk import aws_wafv2 as wafv2
|
|
13300
|
+
|
|
13301
|
+
custom_response_property = wafv2.CfnWebACL.CustomResponseProperty(
|
|
13302
|
+
response_code=123,
|
|
13303
|
+
|
|
13304
|
+
# the properties below are optional
|
|
13305
|
+
custom_response_body_key="customResponseBodyKey",
|
|
13306
|
+
response_headers=[wafv2.CfnWebACL.CustomHTTPHeaderProperty(
|
|
13307
|
+
name="name",
|
|
13308
|
+
value="value"
|
|
13309
|
+
)]
|
|
13310
|
+
)
|
|
13311
|
+
'''
|
|
13312
|
+
if __debug__:
|
|
13313
|
+
type_hints = typing.get_type_hints(_typecheckingstub__6dbc9439dfbaeae9e0932894939e1048a58a2d028d4ee3fbdcead25e1600ad91)
|
|
13314
|
+
check_type(argname="argument response_code", value=response_code, expected_type=type_hints["response_code"])
|
|
13315
|
+
check_type(argname="argument custom_response_body_key", value=custom_response_body_key, expected_type=type_hints["custom_response_body_key"])
|
|
13316
|
+
check_type(argname="argument response_headers", value=response_headers, expected_type=type_hints["response_headers"])
|
|
13317
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
13318
|
+
"response_code": response_code,
|
|
13319
|
+
}
|
|
13320
|
+
if custom_response_body_key is not None:
|
|
13321
|
+
self._values["custom_response_body_key"] = custom_response_body_key
|
|
13322
|
+
if response_headers is not None:
|
|
13323
|
+
self._values["response_headers"] = response_headers
|
|
13324
|
+
|
|
13325
|
+
@builtins.property
|
|
13326
|
+
def response_code(self) -> jsii.Number:
|
|
13327
|
+
'''The HTTP status code to return to the client.
|
|
13328
|
+
|
|
13329
|
+
For a list of status codes that you can use in your custom responses, see `Supported status codes for custom response <https://docs.aws.amazon.com/waf/latest/developerguide/customizing-the-response-status-codes.html>`_ in the *AWS WAF Developer Guide* .
|
|
13330
|
+
|
|
13331
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponse.html#cfn-wafv2-webacl-customresponse-responsecode
|
|
13332
|
+
'''
|
|
13333
|
+
result = self._values.get("response_code")
|
|
13334
|
+
assert result is not None, "Required property 'response_code' is missing"
|
|
13335
|
+
return typing.cast(jsii.Number, result)
|
|
13336
|
+
|
|
13337
|
+
@builtins.property
|
|
13338
|
+
def custom_response_body_key(self) -> typing.Optional[builtins.str]:
|
|
13339
|
+
'''References the response body that you want AWS WAF to return to the web request client.
|
|
13340
|
+
|
|
13341
|
+
You can define a custom response for a rule action or a default web ACL action that is set to block. To do this, you first define the response body key and value in the ``CustomResponseBodies`` setting for the ``WebACL`` or ``RuleGroup`` where you want to use it. Then, in the rule action or web ACL default action ``BlockAction`` setting, you reference the response body using this key.
|
|
13342
|
+
|
|
13343
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponse.html#cfn-wafv2-webacl-customresponse-customresponsebodykey
|
|
13344
|
+
'''
|
|
13345
|
+
result = self._values.get("custom_response_body_key")
|
|
13346
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
13347
|
+
|
|
13348
|
+
@builtins.property
|
|
13349
|
+
def response_headers(
|
|
13350
|
+
self,
|
|
13351
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnWebACL.CustomHTTPHeaderProperty"]]]]:
|
|
13352
|
+
'''The HTTP headers to use in the response.
|
|
13353
|
+
|
|
13354
|
+
You can specify any header name except for ``content-type`` . Duplicate header names are not allowed.
|
|
13355
|
+
|
|
13356
|
+
For information about the limits on count and size for custom request and response settings, see `AWS WAF quotas <https://docs.aws.amazon.com/waf/latest/developerguide/limits.html>`_ in the *AWS WAF Developer Guide* .
|
|
13357
|
+
|
|
13358
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponse.html#cfn-wafv2-webacl-customresponse-responseheaders
|
|
13359
|
+
'''
|
|
13360
|
+
result = self._values.get("response_headers")
|
|
13361
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnWebACL.CustomHTTPHeaderProperty"]]]], result)
|
|
13362
|
+
|
|
13363
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
13364
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
13365
|
+
|
|
13366
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
13367
|
+
return not (rhs == self)
|
|
13368
|
+
|
|
13369
|
+
def __repr__(self) -> str:
|
|
13370
|
+
return "CustomResponseProperty(%s)" % ", ".join(
|
|
13371
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
13372
|
+
)
|
|
13373
|
+
|
|
13374
|
+
@jsii.data_type(
|
|
13375
|
+
jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.DataProtectProperty",
|
|
13376
|
+
jsii_struct_bases=[],
|
|
13377
|
+
name_mapping={
|
|
13378
|
+
"action": "action",
|
|
13379
|
+
"field": "field",
|
|
13380
|
+
"exclude_rate_based_details": "excludeRateBasedDetails",
|
|
13381
|
+
"exclude_rule_match_details": "excludeRuleMatchDetails",
|
|
13382
|
+
},
|
|
13383
|
+
)
|
|
13384
|
+
class DataProtectProperty:
|
|
13385
|
+
def __init__(
|
|
13386
|
+
self,
|
|
13387
|
+
*,
|
|
13388
|
+
action: builtins.str,
|
|
13389
|
+
field: typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.FieldToProtectProperty", typing.Dict[builtins.str, typing.Any]]],
|
|
13390
|
+
exclude_rate_based_details: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
13391
|
+
exclude_rule_match_details: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
13392
|
+
) -> None:
|
|
13393
|
+
'''
|
|
13394
|
+
:param action:
|
|
13395
|
+
:param field: Field in log to protect.
|
|
13396
|
+
:param exclude_rate_based_details:
|
|
13397
|
+
:param exclude_rule_match_details:
|
|
13398
|
+
|
|
13399
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-dataprotect.html
|
|
13400
|
+
:exampleMetadata: fixture=_generated
|
|
13401
|
+
|
|
13402
|
+
Example::
|
|
13403
|
+
|
|
13404
|
+
# The code below shows an example of how to instantiate this type.
|
|
13405
|
+
# The values are placeholders you should change.
|
|
13406
|
+
from aws_cdk import aws_wafv2 as wafv2
|
|
13407
|
+
|
|
13408
|
+
data_protect_property = wafv2.CfnWebACL.DataProtectProperty(
|
|
13409
|
+
action="action",
|
|
13410
|
+
field=wafv2.CfnWebACL.FieldToProtectProperty(
|
|
13411
|
+
field_type="fieldType",
|
|
13412
|
+
|
|
13413
|
+
# the properties below are optional
|
|
13414
|
+
field_keys=["fieldKeys"]
|
|
13415
|
+
),
|
|
13416
|
+
|
|
13417
|
+
# the properties below are optional
|
|
13418
|
+
exclude_rate_based_details=False,
|
|
13419
|
+
exclude_rule_match_details=False
|
|
13420
|
+
)
|
|
13421
|
+
'''
|
|
13422
|
+
if __debug__:
|
|
13423
|
+
type_hints = typing.get_type_hints(_typecheckingstub__426b9eaa484bd1569796d5a87210701ae64a082cfa2a2f0342a5b25283344e18)
|
|
13424
|
+
check_type(argname="argument action", value=action, expected_type=type_hints["action"])
|
|
13425
|
+
check_type(argname="argument field", value=field, expected_type=type_hints["field"])
|
|
13426
|
+
check_type(argname="argument exclude_rate_based_details", value=exclude_rate_based_details, expected_type=type_hints["exclude_rate_based_details"])
|
|
13427
|
+
check_type(argname="argument exclude_rule_match_details", value=exclude_rule_match_details, expected_type=type_hints["exclude_rule_match_details"])
|
|
13987
13428
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
13988
|
-
"
|
|
13989
|
-
"
|
|
13429
|
+
"action": action,
|
|
13430
|
+
"field": field,
|
|
13990
13431
|
}
|
|
13432
|
+
if exclude_rate_based_details is not None:
|
|
13433
|
+
self._values["exclude_rate_based_details"] = exclude_rate_based_details
|
|
13434
|
+
if exclude_rule_match_details is not None:
|
|
13435
|
+
self._values["exclude_rule_match_details"] = exclude_rule_match_details
|
|
13991
13436
|
|
|
13992
13437
|
@builtins.property
|
|
13993
|
-
def
|
|
13994
|
-
'''
|
|
13995
|
-
|
|
13996
|
-
|
|
13438
|
+
def action(self) -> builtins.str:
|
|
13439
|
+
'''
|
|
13440
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-dataprotect.html#cfn-wafv2-webacl-dataprotect-action
|
|
13441
|
+
'''
|
|
13442
|
+
result = self._values.get("action")
|
|
13443
|
+
assert result is not None, "Required property 'action' is missing"
|
|
13444
|
+
return typing.cast(builtins.str, result)
|
|
13997
13445
|
|
|
13998
|
-
|
|
13446
|
+
@builtins.property
|
|
13447
|
+
def field(
|
|
13448
|
+
self,
|
|
13449
|
+
) -> typing.Union[_IResolvable_da3f097b, "CfnWebACL.FieldToProtectProperty"]:
|
|
13450
|
+
'''Field in log to protect.
|
|
13999
13451
|
|
|
14000
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-
|
|
13452
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-dataprotect.html#cfn-wafv2-webacl-dataprotect-field
|
|
14001
13453
|
'''
|
|
14002
|
-
result = self._values.get("
|
|
14003
|
-
assert result is not None, "Required property '
|
|
14004
|
-
return typing.cast(
|
|
13454
|
+
result = self._values.get("field")
|
|
13455
|
+
assert result is not None, "Required property 'field' is missing"
|
|
13456
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnWebACL.FieldToProtectProperty"], result)
|
|
14005
13457
|
|
|
14006
13458
|
@builtins.property
|
|
14007
|
-
def
|
|
14008
|
-
|
|
13459
|
+
def exclude_rate_based_details(
|
|
13460
|
+
self,
|
|
13461
|
+
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
13462
|
+
'''
|
|
13463
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-dataprotect.html#cfn-wafv2-webacl-dataprotect-excluderatebaseddetails
|
|
13464
|
+
'''
|
|
13465
|
+
result = self._values.get("exclude_rate_based_details")
|
|
13466
|
+
return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
|
|
14009
13467
|
|
|
14010
|
-
|
|
13468
|
+
@builtins.property
|
|
13469
|
+
def exclude_rule_match_details(
|
|
13470
|
+
self,
|
|
13471
|
+
) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
|
|
14011
13472
|
'''
|
|
14012
|
-
|
|
14013
|
-
|
|
14014
|
-
|
|
13473
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-dataprotect.html#cfn-wafv2-webacl-dataprotect-excluderulematchdetails
|
|
13474
|
+
'''
|
|
13475
|
+
result = self._values.get("exclude_rule_match_details")
|
|
13476
|
+
return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
|
|
14015
13477
|
|
|
14016
13478
|
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
14017
13479
|
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
@@ -14020,38 +13482,32 @@ class CfnWebACL(
|
|
|
14020
13482
|
return not (rhs == self)
|
|
14021
13483
|
|
|
14022
13484
|
def __repr__(self) -> str:
|
|
14023
|
-
return "
|
|
13485
|
+
return "DataProtectProperty(%s)" % ", ".join(
|
|
14024
13486
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
14025
13487
|
)
|
|
14026
13488
|
|
|
14027
13489
|
@jsii.data_type(
|
|
14028
|
-
jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.
|
|
13490
|
+
jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.DataProtectionConfigProperty",
|
|
14029
13491
|
jsii_struct_bases=[],
|
|
14030
|
-
name_mapping={
|
|
14031
|
-
"response_code": "responseCode",
|
|
14032
|
-
"custom_response_body_key": "customResponseBodyKey",
|
|
14033
|
-
"response_headers": "responseHeaders",
|
|
14034
|
-
},
|
|
13492
|
+
name_mapping={"data_protections": "dataProtections"},
|
|
14035
13493
|
)
|
|
14036
|
-
class
|
|
13494
|
+
class DataProtectionConfigProperty:
|
|
14037
13495
|
def __init__(
|
|
14038
13496
|
self,
|
|
14039
13497
|
*,
|
|
14040
|
-
|
|
14041
|
-
custom_response_body_key: typing.Optional[builtins.str] = None,
|
|
14042
|
-
response_headers: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.CustomHTTPHeaderProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
13498
|
+
data_protections: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.DataProtectProperty", typing.Dict[builtins.str, typing.Any]]]]],
|
|
14043
13499
|
) -> None:
|
|
14044
|
-
'''
|
|
13500
|
+
'''Specifies data protection to apply to the web request data for the web ACL.
|
|
14045
13501
|
|
|
14046
|
-
|
|
13502
|
+
This is a web ACL level data protection option.
|
|
14047
13503
|
|
|
14048
|
-
|
|
13504
|
+
The data protection that you configure for the web ACL alters the data that's available for any other data collection activity, including your AWS WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging.
|
|
14049
13505
|
|
|
14050
|
-
|
|
14051
|
-
:param custom_response_body_key: References the response body that you want AWS WAF to return to the web request client. You can define a custom response for a rule action or a default web ACL action that is set to block. To do this, you first define the response body key and value in the ``CustomResponseBodies`` setting for the ``WebACL`` or ``RuleGroup`` where you want to use it. Then, in the rule action or web ACL default action ``BlockAction`` setting, you reference the response body using this key.
|
|
14052
|
-
:param response_headers: The HTTP headers to use in the response. You can specify any header name except for ``content-type`` . Duplicate header names are not allowed. For information about the limits on count and size for custom request and response settings, see `AWS WAF quotas <https://docs.aws.amazon.com/waf/latest/developerguide/limits.html>`_ in the *AWS WAF Developer Guide* .
|
|
13506
|
+
This is part of the data protection configuration for a web ACL.
|
|
14053
13507
|
|
|
14054
|
-
:
|
|
13508
|
+
:param data_protections: An array of data protection configurations for specific web request field types. This is defined for each web ACL. AWS WAF applies the specified protection to all web requests that the web ACL inspects.
|
|
13509
|
+
|
|
13510
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-dataprotectionconfig.html
|
|
14055
13511
|
:exampleMetadata: fixture=_generated
|
|
14056
13512
|
|
|
14057
13513
|
Example::
|
|
@@ -14060,67 +13516,42 @@ class CfnWebACL(
|
|
|
14060
13516
|
# The values are placeholders you should change.
|
|
14061
13517
|
from aws_cdk import aws_wafv2 as wafv2
|
|
14062
13518
|
|
|
14063
|
-
|
|
14064
|
-
|
|
13519
|
+
data_protection_config_property = wafv2.CfnWebACL.DataProtectionConfigProperty(
|
|
13520
|
+
data_protections=[wafv2.CfnWebACL.DataProtectProperty(
|
|
13521
|
+
action="action",
|
|
13522
|
+
field=wafv2.CfnWebACL.FieldToProtectProperty(
|
|
13523
|
+
field_type="fieldType",
|
|
14065
13524
|
|
|
14066
|
-
|
|
14067
|
-
|
|
14068
|
-
|
|
14069
|
-
|
|
14070
|
-
|
|
13525
|
+
# the properties below are optional
|
|
13526
|
+
field_keys=["fieldKeys"]
|
|
13527
|
+
),
|
|
13528
|
+
|
|
13529
|
+
# the properties below are optional
|
|
13530
|
+
exclude_rate_based_details=False,
|
|
13531
|
+
exclude_rule_match_details=False
|
|
14071
13532
|
)]
|
|
14072
13533
|
)
|
|
14073
13534
|
'''
|
|
14074
13535
|
if __debug__:
|
|
14075
|
-
type_hints = typing.get_type_hints(
|
|
14076
|
-
check_type(argname="argument
|
|
14077
|
-
check_type(argname="argument custom_response_body_key", value=custom_response_body_key, expected_type=type_hints["custom_response_body_key"])
|
|
14078
|
-
check_type(argname="argument response_headers", value=response_headers, expected_type=type_hints["response_headers"])
|
|
13536
|
+
type_hints = typing.get_type_hints(_typecheckingstub__00facdbed1fde99291b1bde086b472ce66ee6dd143e53d5639cc3ea8b02e5eac)
|
|
13537
|
+
check_type(argname="argument data_protections", value=data_protections, expected_type=type_hints["data_protections"])
|
|
14079
13538
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
14080
|
-
"
|
|
13539
|
+
"data_protections": data_protections,
|
|
14081
13540
|
}
|
|
14082
|
-
if custom_response_body_key is not None:
|
|
14083
|
-
self._values["custom_response_body_key"] = custom_response_body_key
|
|
14084
|
-
if response_headers is not None:
|
|
14085
|
-
self._values["response_headers"] = response_headers
|
|
14086
|
-
|
|
14087
|
-
@builtins.property
|
|
14088
|
-
def response_code(self) -> jsii.Number:
|
|
14089
|
-
'''The HTTP status code to return to the client.
|
|
14090
|
-
|
|
14091
|
-
For a list of status codes that you can use in your custom responses, see `Supported status codes for custom response <https://docs.aws.amazon.com/waf/latest/developerguide/customizing-the-response-status-codes.html>`_ in the *AWS WAF Developer Guide* .
|
|
14092
|
-
|
|
14093
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponse.html#cfn-wafv2-webacl-customresponse-responsecode
|
|
14094
|
-
'''
|
|
14095
|
-
result = self._values.get("response_code")
|
|
14096
|
-
assert result is not None, "Required property 'response_code' is missing"
|
|
14097
|
-
return typing.cast(jsii.Number, result)
|
|
14098
|
-
|
|
14099
|
-
@builtins.property
|
|
14100
|
-
def custom_response_body_key(self) -> typing.Optional[builtins.str]:
|
|
14101
|
-
'''References the response body that you want AWS WAF to return to the web request client.
|
|
14102
|
-
|
|
14103
|
-
You can define a custom response for a rule action or a default web ACL action that is set to block. To do this, you first define the response body key and value in the ``CustomResponseBodies`` setting for the ``WebACL`` or ``RuleGroup`` where you want to use it. Then, in the rule action or web ACL default action ``BlockAction`` setting, you reference the response body using this key.
|
|
14104
|
-
|
|
14105
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-customresponse.html#cfn-wafv2-webacl-customresponse-customresponsebodykey
|
|
14106
|
-
'''
|
|
14107
|
-
result = self._values.get("custom_response_body_key")
|
|
14108
|
-
return typing.cast(typing.Optional[builtins.str], result)
|
|
14109
13541
|
|
|
14110
13542
|
@builtins.property
|
|
14111
|
-
def
|
|
13543
|
+
def data_protections(
|
|
14112
13544
|
self,
|
|
14113
|
-
) -> typing.
|
|
14114
|
-
'''
|
|
14115
|
-
|
|
14116
|
-
You can specify any header name except for ``content-type`` . Duplicate header names are not allowed.
|
|
13545
|
+
) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnWebACL.DataProtectProperty"]]]:
|
|
13546
|
+
'''An array of data protection configurations for specific web request field types.
|
|
14117
13547
|
|
|
14118
|
-
|
|
13548
|
+
This is defined for each web ACL. AWS WAF applies the specified protection to all web requests that the web ACL inspects.
|
|
14119
13549
|
|
|
14120
|
-
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-
|
|
13550
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-dataprotectionconfig.html#cfn-wafv2-webacl-dataprotectionconfig-dataprotections
|
|
14121
13551
|
'''
|
|
14122
|
-
result = self._values.get("
|
|
14123
|
-
|
|
13552
|
+
result = self._values.get("data_protections")
|
|
13553
|
+
assert result is not None, "Required property 'data_protections' is missing"
|
|
13554
|
+
return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnWebACL.DataProtectProperty"]]], result)
|
|
14124
13555
|
|
|
14125
13556
|
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
14126
13557
|
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
@@ -14129,7 +13560,7 @@ class CfnWebACL(
|
|
|
14129
13560
|
return not (rhs == self)
|
|
14130
13561
|
|
|
14131
13562
|
def __repr__(self) -> str:
|
|
14132
|
-
return "
|
|
13563
|
+
return "DataProtectionConfigProperty(%s)" % ", ".join(
|
|
14133
13564
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
14134
13565
|
)
|
|
14135
13566
|
|
|
@@ -14358,6 +13789,7 @@ class CfnWebACL(
|
|
|
14358
13789
|
"query_string": "queryString",
|
|
14359
13790
|
"single_header": "singleHeader",
|
|
14360
13791
|
"single_query_argument": "singleQueryArgument",
|
|
13792
|
+
"uri_fragment": "uriFragment",
|
|
14361
13793
|
"uri_path": "uriPath",
|
|
14362
13794
|
},
|
|
14363
13795
|
)
|
|
@@ -14376,6 +13808,7 @@ class CfnWebACL(
|
|
|
14376
13808
|
query_string: typing.Any = None,
|
|
14377
13809
|
single_header: typing.Any = None,
|
|
14378
13810
|
single_query_argument: typing.Any = None,
|
|
13811
|
+
uri_fragment: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.UriFragmentProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
14379
13812
|
uri_path: typing.Any = None,
|
|
14380
13813
|
) -> None:
|
|
14381
13814
|
'''Specifies a web request component to be used in a rule match statement or in a logging configuration.
|
|
@@ -14406,6 +13839,7 @@ class CfnWebACL(
|
|
|
14406
13839
|
:param query_string: Inspect the query string. This is the part of a URL that appears after a ``?`` character, if any.
|
|
14407
13840
|
:param single_header: Inspect a single header. Provide the name of the header to inspect, for example, ``User-Agent`` or ``Referer`` . This setting isn't case sensitive. Example JSON: ``"SingleHeader": { "Name": "haystack" }`` Alternately, you can filter and inspect all headers with the ``Headers`` ``FieldToMatch`` setting.
|
|
14408
13841
|
:param single_query_argument: Inspect a single query argument. Provide the name of the query argument to inspect, such as *UserName* or *SalesRegion* . The name can be up to 30 characters long and isn't case sensitive. Example JSON: ``"SingleQueryArgument": { "Name": "myArgument" }``
|
|
13842
|
+
:param uri_fragment: The path component of the URI Fragment. This is the part of a web request that identifies a fragment uri, for example, /abcd#introduction
|
|
14409
13843
|
:param uri_path: Inspect the request URI path. This is the part of the web request that identifies a resource, for example, ``/images/daily-ad.jpg`` .
|
|
14410
13844
|
|
|
14411
13845
|
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html
|
|
@@ -14469,6 +13903,9 @@ class CfnWebACL(
|
|
|
14469
13903
|
query_string=query_string,
|
|
14470
13904
|
single_header=single_header,
|
|
14471
13905
|
single_query_argument=single_query_argument,
|
|
13906
|
+
uri_fragment=wafv2.CfnWebACL.UriFragmentProperty(
|
|
13907
|
+
fallback_behavior="fallbackBehavior"
|
|
13908
|
+
),
|
|
14472
13909
|
uri_path=uri_path
|
|
14473
13910
|
)
|
|
14474
13911
|
'''
|
|
@@ -14485,6 +13922,7 @@ class CfnWebACL(
|
|
|
14485
13922
|
check_type(argname="argument query_string", value=query_string, expected_type=type_hints["query_string"])
|
|
14486
13923
|
check_type(argname="argument single_header", value=single_header, expected_type=type_hints["single_header"])
|
|
14487
13924
|
check_type(argname="argument single_query_argument", value=single_query_argument, expected_type=type_hints["single_query_argument"])
|
|
13925
|
+
check_type(argname="argument uri_fragment", value=uri_fragment, expected_type=type_hints["uri_fragment"])
|
|
14488
13926
|
check_type(argname="argument uri_path", value=uri_path, expected_type=type_hints["uri_path"])
|
|
14489
13927
|
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
14490
13928
|
if all_query_arguments is not None:
|
|
@@ -14509,6 +13947,8 @@ class CfnWebACL(
|
|
|
14509
13947
|
self._values["single_header"] = single_header
|
|
14510
13948
|
if single_query_argument is not None:
|
|
14511
13949
|
self._values["single_query_argument"] = single_query_argument
|
|
13950
|
+
if uri_fragment is not None:
|
|
13951
|
+
self._values["uri_fragment"] = uri_fragment
|
|
14512
13952
|
if uri_path is not None:
|
|
14513
13953
|
self._values["uri_path"] = uri_path
|
|
14514
13954
|
|
|
@@ -14681,6 +14121,19 @@ class CfnWebACL(
|
|
|
14681
14121
|
result = self._values.get("single_query_argument")
|
|
14682
14122
|
return typing.cast(typing.Any, result)
|
|
14683
14123
|
|
|
14124
|
+
@builtins.property
|
|
14125
|
+
def uri_fragment(
|
|
14126
|
+
self,
|
|
14127
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.UriFragmentProperty"]]:
|
|
14128
|
+
'''The path component of the URI Fragment.
|
|
14129
|
+
|
|
14130
|
+
This is the part of a web request that identifies a fragment uri, for example, /abcd#introduction
|
|
14131
|
+
|
|
14132
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtomatch.html#cfn-wafv2-webacl-fieldtomatch-urifragment
|
|
14133
|
+
'''
|
|
14134
|
+
result = self._values.get("uri_fragment")
|
|
14135
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.UriFragmentProperty"]], result)
|
|
14136
|
+
|
|
14684
14137
|
@builtins.property
|
|
14685
14138
|
def uri_path(self) -> typing.Any:
|
|
14686
14139
|
'''Inspect the request URI path.
|
|
@@ -14703,6 +14156,83 @@ class CfnWebACL(
|
|
|
14703
14156
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
14704
14157
|
)
|
|
14705
14158
|
|
|
14159
|
+
@jsii.data_type(
|
|
14160
|
+
jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.FieldToProtectProperty",
|
|
14161
|
+
jsii_struct_bases=[],
|
|
14162
|
+
name_mapping={"field_type": "fieldType", "field_keys": "fieldKeys"},
|
|
14163
|
+
)
|
|
14164
|
+
class FieldToProtectProperty:
|
|
14165
|
+
def __init__(
|
|
14166
|
+
self,
|
|
14167
|
+
*,
|
|
14168
|
+
field_type: builtins.str,
|
|
14169
|
+
field_keys: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
14170
|
+
) -> None:
|
|
14171
|
+
'''Specifies a field type and keys to protect in stored web request data.
|
|
14172
|
+
|
|
14173
|
+
This is part of the data protection configuration for a web ACL.
|
|
14174
|
+
|
|
14175
|
+
:param field_type: Specifies the web request component type to protect.
|
|
14176
|
+
:param field_keys: Specifies the keys to protect for the specified field type. If you don't specify any key, then all keys for the field type are protected.
|
|
14177
|
+
|
|
14178
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtoprotect.html
|
|
14179
|
+
:exampleMetadata: fixture=_generated
|
|
14180
|
+
|
|
14181
|
+
Example::
|
|
14182
|
+
|
|
14183
|
+
# The code below shows an example of how to instantiate this type.
|
|
14184
|
+
# The values are placeholders you should change.
|
|
14185
|
+
from aws_cdk import aws_wafv2 as wafv2
|
|
14186
|
+
|
|
14187
|
+
field_to_protect_property = wafv2.CfnWebACL.FieldToProtectProperty(
|
|
14188
|
+
field_type="fieldType",
|
|
14189
|
+
|
|
14190
|
+
# the properties below are optional
|
|
14191
|
+
field_keys=["fieldKeys"]
|
|
14192
|
+
)
|
|
14193
|
+
'''
|
|
14194
|
+
if __debug__:
|
|
14195
|
+
type_hints = typing.get_type_hints(_typecheckingstub__b289950ea26daa0c8967a6c0a3a4de1a0fa062f7bc5f28fcf70ab8e7fa4989f0)
|
|
14196
|
+
check_type(argname="argument field_type", value=field_type, expected_type=type_hints["field_type"])
|
|
14197
|
+
check_type(argname="argument field_keys", value=field_keys, expected_type=type_hints["field_keys"])
|
|
14198
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
14199
|
+
"field_type": field_type,
|
|
14200
|
+
}
|
|
14201
|
+
if field_keys is not None:
|
|
14202
|
+
self._values["field_keys"] = field_keys
|
|
14203
|
+
|
|
14204
|
+
@builtins.property
|
|
14205
|
+
def field_type(self) -> builtins.str:
|
|
14206
|
+
'''Specifies the web request component type to protect.
|
|
14207
|
+
|
|
14208
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtoprotect.html#cfn-wafv2-webacl-fieldtoprotect-fieldtype
|
|
14209
|
+
'''
|
|
14210
|
+
result = self._values.get("field_type")
|
|
14211
|
+
assert result is not None, "Required property 'field_type' is missing"
|
|
14212
|
+
return typing.cast(builtins.str, result)
|
|
14213
|
+
|
|
14214
|
+
@builtins.property
|
|
14215
|
+
def field_keys(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
14216
|
+
'''Specifies the keys to protect for the specified field type.
|
|
14217
|
+
|
|
14218
|
+
If you don't specify any key, then all keys for the field type are protected.
|
|
14219
|
+
|
|
14220
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-fieldtoprotect.html#cfn-wafv2-webacl-fieldtoprotect-fieldkeys
|
|
14221
|
+
'''
|
|
14222
|
+
result = self._values.get("field_keys")
|
|
14223
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
14224
|
+
|
|
14225
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
14226
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
14227
|
+
|
|
14228
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
14229
|
+
return not (rhs == self)
|
|
14230
|
+
|
|
14231
|
+
def __repr__(self) -> str:
|
|
14232
|
+
return "FieldToProtectProperty(%s)" % ", ".join(
|
|
14233
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
14234
|
+
)
|
|
14235
|
+
|
|
14706
14236
|
@jsii.data_type(
|
|
14707
14237
|
jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.ForwardedIPConfigurationProperty",
|
|
14708
14238
|
jsii_struct_bases=[],
|
|
@@ -17692,6 +17222,9 @@ class CfnWebACL(
|
|
|
17692
17222
|
query_string=query_string,
|
|
17693
17223
|
single_header=single_header,
|
|
17694
17224
|
single_query_argument=single_query_argument,
|
|
17225
|
+
uri_fragment=wafv2.CfnWebACL.UriFragmentProperty(
|
|
17226
|
+
fallback_behavior="fallbackBehavior"
|
|
17227
|
+
),
|
|
17695
17228
|
uri_path=uri_path
|
|
17696
17229
|
),
|
|
17697
17230
|
regex_string="regexString",
|
|
@@ -17849,6 +17382,9 @@ class CfnWebACL(
|
|
|
17849
17382
|
query_string=query_string,
|
|
17850
17383
|
single_header=single_header,
|
|
17851
17384
|
single_query_argument=single_query_argument,
|
|
17385
|
+
uri_fragment=wafv2.CfnWebACL.UriFragmentProperty(
|
|
17386
|
+
fallback_behavior="fallbackBehavior"
|
|
17387
|
+
),
|
|
17852
17388
|
uri_path=uri_path
|
|
17853
17389
|
),
|
|
17854
17390
|
text_transformations=[wafv2.CfnWebACL.TextTransformationProperty(
|
|
@@ -19764,6 +19300,9 @@ class CfnWebACL(
|
|
|
19764
19300
|
query_string=query_string,
|
|
19765
19301
|
single_header=single_header,
|
|
19766
19302
|
single_query_argument=single_query_argument,
|
|
19303
|
+
uri_fragment=wafv2.CfnWebACL.UriFragmentProperty(
|
|
19304
|
+
fallback_behavior="fallbackBehavior"
|
|
19305
|
+
),
|
|
19767
19306
|
uri_path=uri_path
|
|
19768
19307
|
),
|
|
19769
19308
|
size=123,
|
|
@@ -19930,6 +19469,9 @@ class CfnWebACL(
|
|
|
19930
19469
|
query_string=query_string,
|
|
19931
19470
|
single_header=single_header,
|
|
19932
19471
|
single_query_argument=single_query_argument,
|
|
19472
|
+
uri_fragment=wafv2.CfnWebACL.UriFragmentProperty(
|
|
19473
|
+
fallback_behavior="fallbackBehavior"
|
|
19474
|
+
),
|
|
19933
19475
|
uri_path=uri_path
|
|
19934
19476
|
),
|
|
19935
19477
|
text_transformations=[wafv2.CfnWebACL.TextTransformationProperty(
|
|
@@ -20457,6 +19999,62 @@ class CfnWebACL(
|
|
|
20457
19999
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
20458
20000
|
)
|
|
20459
20001
|
|
|
20002
|
+
@jsii.data_type(
|
|
20003
|
+
jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.UriFragmentProperty",
|
|
20004
|
+
jsii_struct_bases=[],
|
|
20005
|
+
name_mapping={"fallback_behavior": "fallbackBehavior"},
|
|
20006
|
+
)
|
|
20007
|
+
class UriFragmentProperty:
|
|
20008
|
+
def __init__(
|
|
20009
|
+
self,
|
|
20010
|
+
*,
|
|
20011
|
+
fallback_behavior: typing.Optional[builtins.str] = None,
|
|
20012
|
+
) -> None:
|
|
20013
|
+
'''The path component of the URI Fragment.
|
|
20014
|
+
|
|
20015
|
+
This is the part of a web request that identifies a fragment uri, for example, /abcd#introduction
|
|
20016
|
+
|
|
20017
|
+
:param fallback_behavior:
|
|
20018
|
+
|
|
20019
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-urifragment.html
|
|
20020
|
+
:exampleMetadata: fixture=_generated
|
|
20021
|
+
|
|
20022
|
+
Example::
|
|
20023
|
+
|
|
20024
|
+
# The code below shows an example of how to instantiate this type.
|
|
20025
|
+
# The values are placeholders you should change.
|
|
20026
|
+
from aws_cdk import aws_wafv2 as wafv2
|
|
20027
|
+
|
|
20028
|
+
uri_fragment_property = wafv2.CfnWebACL.UriFragmentProperty(
|
|
20029
|
+
fallback_behavior="fallbackBehavior"
|
|
20030
|
+
)
|
|
20031
|
+
'''
|
|
20032
|
+
if __debug__:
|
|
20033
|
+
type_hints = typing.get_type_hints(_typecheckingstub__ff710cae8471ff92b17239c2eddf3d9fc58fc160b82b4603e07b06b6dc3a6dd1)
|
|
20034
|
+
check_type(argname="argument fallback_behavior", value=fallback_behavior, expected_type=type_hints["fallback_behavior"])
|
|
20035
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
20036
|
+
if fallback_behavior is not None:
|
|
20037
|
+
self._values["fallback_behavior"] = fallback_behavior
|
|
20038
|
+
|
|
20039
|
+
@builtins.property
|
|
20040
|
+
def fallback_behavior(self) -> typing.Optional[builtins.str]:
|
|
20041
|
+
'''
|
|
20042
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-urifragment.html#cfn-wafv2-webacl-urifragment-fallbackbehavior
|
|
20043
|
+
'''
|
|
20044
|
+
result = self._values.get("fallback_behavior")
|
|
20045
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
20046
|
+
|
|
20047
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
20048
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
20049
|
+
|
|
20050
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
20051
|
+
return not (rhs == self)
|
|
20052
|
+
|
|
20053
|
+
def __repr__(self) -> str:
|
|
20054
|
+
return "UriFragmentProperty(%s)" % ", ".join(
|
|
20055
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
20056
|
+
)
|
|
20057
|
+
|
|
20460
20058
|
@jsii.data_type(
|
|
20461
20059
|
jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.VisibilityConfigProperty",
|
|
20462
20060
|
jsii_struct_bases=[],
|
|
@@ -20649,6 +20247,9 @@ class CfnWebACL(
|
|
|
20649
20247
|
query_string=query_string,
|
|
20650
20248
|
single_header=single_header,
|
|
20651
20249
|
single_query_argument=single_query_argument,
|
|
20250
|
+
uri_fragment=wafv2.CfnWebACL.UriFragmentProperty(
|
|
20251
|
+
fallback_behavior="fallbackBehavior"
|
|
20252
|
+
),
|
|
20652
20253
|
uri_path=uri_path
|
|
20653
20254
|
),
|
|
20654
20255
|
text_transformations=[wafv2.CfnWebACL.TextTransformationProperty(
|
|
@@ -20931,6 +20532,7 @@ class CfnWebACLAssociationProps:
|
|
|
20931
20532
|
"captcha_config": "captchaConfig",
|
|
20932
20533
|
"challenge_config": "challengeConfig",
|
|
20933
20534
|
"custom_response_bodies": "customResponseBodies",
|
|
20535
|
+
"data_protection_config": "dataProtectionConfig",
|
|
20934
20536
|
"description": "description",
|
|
20935
20537
|
"name": "name",
|
|
20936
20538
|
"rules": "rules",
|
|
@@ -20949,6 +20551,7 @@ class CfnWebACLProps:
|
|
|
20949
20551
|
captcha_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.CaptchaConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20950
20552
|
challenge_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ChallengeConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20951
20553
|
custom_response_bodies: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.CustomResponseBodyProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
20554
|
+
data_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.DataProtectionConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
20952
20555
|
description: typing.Optional[builtins.str] = None,
|
|
20953
20556
|
name: typing.Optional[builtins.str] = None,
|
|
20954
20557
|
rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
@@ -20964,6 +20567,7 @@ class CfnWebACLProps:
|
|
|
20964
20567
|
:param captcha_config: Specifies how AWS WAF should handle ``CAPTCHA`` evaluations for rules that don't have their own ``CaptchaConfig`` settings. If you don't specify this, AWS WAF uses its default settings for ``CaptchaConfig`` .
|
|
20965
20568
|
:param challenge_config: Specifies how AWS WAF should handle challenge evaluations for rules that don't have their own ``ChallengeConfig`` settings. If you don't specify this, AWS WAF uses its default settings for ``ChallengeConfig`` .
|
|
20966
20569
|
:param custom_response_bodies: A map of custom response keys and content bodies. When you create a rule with a block action, you can send a custom response to the web request. You define these for the web ACL, and then use them in the rules and default actions that you define in the web ACL. For information about customizing web requests and responses, see `Customizing web requests and responses in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html>`_ in the *AWS WAF Developer Guide* . For information about the limits on count and size for custom request and response settings, see `AWS WAF quotas <https://docs.aws.amazon.com/waf/latest/developerguide/limits.html>`_ in the *AWS WAF Developer Guide* .
|
|
20570
|
+
:param data_protection_config: Specifies data protection to apply to the web request data for the web ACL. This is a web ACL level data protection option. The data protection that you configure for the web ACL alters the data that's available for any other data collection activity, including your AWS WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging.
|
|
20967
20571
|
:param description: A description of the web ACL that helps with identification.
|
|
20968
20572
|
:param name: The name of the web ACL. You cannot change the name of a web ACL after you create it.
|
|
20969
20573
|
:param rules: The rule statements used to identify the web requests that you want to manage. Each rule includes one top-level statement that AWS WAF uses to identify matching web requests, and parameters that govern how AWS WAF handles them.
|
|
@@ -20986,6 +20590,7 @@ class CfnWebACLProps:
|
|
|
20986
20590
|
check_type(argname="argument captcha_config", value=captcha_config, expected_type=type_hints["captcha_config"])
|
|
20987
20591
|
check_type(argname="argument challenge_config", value=challenge_config, expected_type=type_hints["challenge_config"])
|
|
20988
20592
|
check_type(argname="argument custom_response_bodies", value=custom_response_bodies, expected_type=type_hints["custom_response_bodies"])
|
|
20593
|
+
check_type(argname="argument data_protection_config", value=data_protection_config, expected_type=type_hints["data_protection_config"])
|
|
20989
20594
|
check_type(argname="argument description", value=description, expected_type=type_hints["description"])
|
|
20990
20595
|
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
20991
20596
|
check_type(argname="argument rules", value=rules, expected_type=type_hints["rules"])
|
|
@@ -21004,6 +20609,8 @@ class CfnWebACLProps:
|
|
|
21004
20609
|
self._values["challenge_config"] = challenge_config
|
|
21005
20610
|
if custom_response_bodies is not None:
|
|
21006
20611
|
self._values["custom_response_bodies"] = custom_response_bodies
|
|
20612
|
+
if data_protection_config is not None:
|
|
20613
|
+
self._values["data_protection_config"] = data_protection_config
|
|
21007
20614
|
if description is not None:
|
|
21008
20615
|
self._values["description"] = description
|
|
21009
20616
|
if name is not None:
|
|
@@ -21117,6 +20724,21 @@ class CfnWebACLProps:
|
|
|
21117
20724
|
result = self._values.get("custom_response_bodies")
|
|
21118
20725
|
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, CfnWebACL.CustomResponseBodyProperty]]]], result)
|
|
21119
20726
|
|
|
20727
|
+
@builtins.property
|
|
20728
|
+
def data_protection_config(
|
|
20729
|
+
self,
|
|
20730
|
+
) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnWebACL.DataProtectionConfigProperty]]:
|
|
20731
|
+
'''Specifies data protection to apply to the web request data for the web ACL.
|
|
20732
|
+
|
|
20733
|
+
This is a web ACL level data protection option.
|
|
20734
|
+
|
|
20735
|
+
The data protection that you configure for the web ACL alters the data that's available for any other data collection activity, including your AWS WAF logging destinations, web ACL request sampling, and Amazon Security Lake data collection and management. Your other option for data protection is in the logging configuration, which only affects logging.
|
|
20736
|
+
|
|
20737
|
+
:see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-dataprotectionconfig
|
|
20738
|
+
'''
|
|
20739
|
+
result = self._values.get("data_protection_config")
|
|
20740
|
+
return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnWebACL.DataProtectionConfigProperty]], result)
|
|
20741
|
+
|
|
21120
20742
|
@builtins.property
|
|
21121
20743
|
def description(self) -> typing.Optional[builtins.str]:
|
|
21122
20744
|
'''A description of the web ACL that helps with identification.
|
|
@@ -21703,6 +21325,7 @@ def _typecheckingstub__dcb790c3130e52c64e6b7cf00db86b37d1b54427689c46b6c9e6a7122
|
|
|
21703
21325
|
query_string: typing.Any = None,
|
|
21704
21326
|
single_header: typing.Any = None,
|
|
21705
21327
|
single_query_argument: typing.Any = None,
|
|
21328
|
+
uri_fragment: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.UriFragmentProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
21706
21329
|
uri_path: typing.Any = None,
|
|
21707
21330
|
) -> None:
|
|
21708
21331
|
"""Type checking stubs"""
|
|
@@ -22025,6 +21648,13 @@ def _typecheckingstub__cbdf04ef9e923368f792f61fdb73e804a219fcd9c66ffb20e85214a5a
|
|
|
22025
21648
|
"""Type checking stubs"""
|
|
22026
21649
|
pass
|
|
22027
21650
|
|
|
21651
|
+
def _typecheckingstub__fe1c476d259659923a1664b8e966720fc48cf48f725562b81ef2c02997f8998a(
|
|
21652
|
+
*,
|
|
21653
|
+
fallback_behavior: typing.Optional[builtins.str] = None,
|
|
21654
|
+
) -> None:
|
|
21655
|
+
"""Type checking stubs"""
|
|
21656
|
+
pass
|
|
21657
|
+
|
|
22028
21658
|
def _typecheckingstub__ffc3de9fa9cd77d11c4487ad80fc48948664b917c8642b35ca709762ce71fddf(
|
|
22029
21659
|
*,
|
|
22030
21660
|
cloud_watch_metrics_enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
|
|
@@ -22069,6 +21699,7 @@ def _typecheckingstub__03030a65c492e95a1d1ae5ddafd6acbb9efdfa7e18b6367ac7e03eb8f
|
|
|
22069
21699
|
captcha_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.CaptchaConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22070
21700
|
challenge_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ChallengeConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22071
21701
|
custom_response_bodies: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.CustomResponseBodyProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
21702
|
+
data_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.DataProtectionConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22072
21703
|
description: typing.Optional[builtins.str] = None,
|
|
22073
21704
|
name: typing.Optional[builtins.str] = None,
|
|
22074
21705
|
rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
@@ -22132,6 +21763,12 @@ def _typecheckingstub__5782b9cc65df721fabb81b38101a49b0dce480579e9b262edcfe915ec
|
|
|
22132
21763
|
"""Type checking stubs"""
|
|
22133
21764
|
pass
|
|
22134
21765
|
|
|
21766
|
+
def _typecheckingstub__c8fdb8c606175920c3facb5c8db0632e7cdc7bedffcd3c6c787bab31ba6f6474(
|
|
21767
|
+
value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnWebACL.DataProtectionConfigProperty]],
|
|
21768
|
+
) -> None:
|
|
21769
|
+
"""Type checking stubs"""
|
|
21770
|
+
pass
|
|
21771
|
+
|
|
22135
21772
|
def _typecheckingstub__b7cfda3db6502d36377ec778a8c90e7487c0f54a00cb343261a4d256ace27df9(
|
|
22136
21773
|
value: typing.Optional[builtins.str],
|
|
22137
21774
|
) -> None:
|
|
@@ -22322,6 +21959,23 @@ def _typecheckingstub__6dbc9439dfbaeae9e0932894939e1048a58a2d028d4ee3fbdcead25e1
|
|
|
22322
21959
|
"""Type checking stubs"""
|
|
22323
21960
|
pass
|
|
22324
21961
|
|
|
21962
|
+
def _typecheckingstub__426b9eaa484bd1569796d5a87210701ae64a082cfa2a2f0342a5b25283344e18(
|
|
21963
|
+
*,
|
|
21964
|
+
action: builtins.str,
|
|
21965
|
+
field: typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.FieldToProtectProperty, typing.Dict[builtins.str, typing.Any]]],
|
|
21966
|
+
exclude_rate_based_details: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
21967
|
+
exclude_rule_match_details: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
|
|
21968
|
+
) -> None:
|
|
21969
|
+
"""Type checking stubs"""
|
|
21970
|
+
pass
|
|
21971
|
+
|
|
21972
|
+
def _typecheckingstub__00facdbed1fde99291b1bde086b472ce66ee6dd143e53d5639cc3ea8b02e5eac(
|
|
21973
|
+
*,
|
|
21974
|
+
data_protections: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.DataProtectProperty, typing.Dict[builtins.str, typing.Any]]]]],
|
|
21975
|
+
) -> None:
|
|
21976
|
+
"""Type checking stubs"""
|
|
21977
|
+
pass
|
|
21978
|
+
|
|
22325
21979
|
def _typecheckingstub__4f9b2681c5a7f99be956a44a9c1d132bd2244e6fdc65ac82690f66a9402698b5(
|
|
22326
21980
|
*,
|
|
22327
21981
|
allow: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AllowActionProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
@@ -22357,11 +22011,20 @@ def _typecheckingstub__25d147c856e9a8fd64f4cc05856e4813e584f37ef787792ad3c4e0790
|
|
|
22357
22011
|
query_string: typing.Any = None,
|
|
22358
22012
|
single_header: typing.Any = None,
|
|
22359
22013
|
single_query_argument: typing.Any = None,
|
|
22014
|
+
uri_fragment: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.UriFragmentProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22360
22015
|
uri_path: typing.Any = None,
|
|
22361
22016
|
) -> None:
|
|
22362
22017
|
"""Type checking stubs"""
|
|
22363
22018
|
pass
|
|
22364
22019
|
|
|
22020
|
+
def _typecheckingstub__b289950ea26daa0c8967a6c0a3a4de1a0fa062f7bc5f28fcf70ab8e7fa4989f0(
|
|
22021
|
+
*,
|
|
22022
|
+
field_type: builtins.str,
|
|
22023
|
+
field_keys: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
22024
|
+
) -> None:
|
|
22025
|
+
"""Type checking stubs"""
|
|
22026
|
+
pass
|
|
22027
|
+
|
|
22365
22028
|
def _typecheckingstub__db1f5e352c4a5fdd9a13196892955f19f25065d63109402ea882298152866a75(
|
|
22366
22029
|
*,
|
|
22367
22030
|
fallback_behavior: builtins.str,
|
|
@@ -22798,6 +22461,13 @@ def _typecheckingstub__a7a1f13087f44f2554ec3d9d35f967247b32fc5b6c94bf2eacd3379ce
|
|
|
22798
22461
|
"""Type checking stubs"""
|
|
22799
22462
|
pass
|
|
22800
22463
|
|
|
22464
|
+
def _typecheckingstub__ff710cae8471ff92b17239c2eddf3d9fc58fc160b82b4603e07b06b6dc3a6dd1(
|
|
22465
|
+
*,
|
|
22466
|
+
fallback_behavior: typing.Optional[builtins.str] = None,
|
|
22467
|
+
) -> None:
|
|
22468
|
+
"""Type checking stubs"""
|
|
22469
|
+
pass
|
|
22470
|
+
|
|
22801
22471
|
def _typecheckingstub__f805e71e3de782928ad1bdb95c4cddf9f28e9dbda49ae45324c0dc8316955eaa(
|
|
22802
22472
|
*,
|
|
22803
22473
|
cloud_watch_metrics_enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
|
|
@@ -22866,6 +22536,7 @@ def _typecheckingstub__6e738df983d65d43590c0a02c03e6e0daa3a2097ae335371d22711838
|
|
|
22866
22536
|
captcha_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.CaptchaConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22867
22537
|
challenge_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ChallengeConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22868
22538
|
custom_response_bodies: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.CustomResponseBodyProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|
|
22539
|
+
data_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.DataProtectionConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
22869
22540
|
description: typing.Optional[builtins.str] = None,
|
|
22870
22541
|
name: typing.Optional[builtins.str] = None,
|
|
22871
22542
|
rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
|