aws-cdk-lib 2.200.2__py3-none-any.whl → 2.224.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (569) hide show
  1. aws_cdk/__init__.py +1349 -373
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.200.2.jsii.tgz → aws-cdk-lib@2.224.0.jsii.tgz} +0 -0
  4. aws_cdk/alexa_ask/__init__.py +12 -2
  5. aws_cdk/aws_accessanalyzer/__init__.py +323 -6
  6. aws_cdk/aws_acmpca/__init__.py +53 -10
  7. aws_cdk/aws_aiops/__init__.py +1019 -0
  8. aws_cdk/aws_amazonmq/__init__.py +357 -313
  9. aws_cdk/aws_amplify/__init__.py +173 -17
  10. aws_cdk/aws_amplifyuibuilder/__init__.py +35 -6
  11. aws_cdk/aws_apigateway/__init__.py +1017 -155
  12. aws_cdk/aws_apigatewayv2/__init__.py +2796 -379
  13. aws_cdk/aws_apigatewayv2_integrations/__init__.py +94 -16
  14. aws_cdk/aws_appconfig/__init__.py +298 -43
  15. aws_cdk/aws_appflow/__init__.py +151 -6
  16. aws_cdk/aws_appintegrations/__init__.py +546 -6
  17. aws_cdk/aws_applicationautoscaling/__init__.py +29 -6
  18. aws_cdk/aws_applicationinsights/__init__.py +13 -2
  19. aws_cdk/aws_applicationsignals/__init__.py +374 -6
  20. aws_cdk/aws_appmesh/__init__.py +94 -26
  21. aws_cdk/aws_apprunner/__init__.py +66 -18
  22. aws_cdk/aws_appstream/__init__.py +309 -55
  23. aws_cdk/aws_appsync/__init__.py +227 -53
  24. aws_cdk/aws_apptest/__init__.py +71 -2
  25. aws_cdk/aws_aps/__init__.py +1875 -132
  26. aws_cdk/aws_arcregionswitch/__init__.py +5095 -0
  27. aws_cdk/aws_arczonalshift/__init__.py +39 -12
  28. aws_cdk/aws_athena/__init__.py +365 -29
  29. aws_cdk/aws_auditmanager/__init__.py +71 -2
  30. aws_cdk/aws_autoscaling/__init__.py +135 -55
  31. aws_cdk/aws_autoscaling_common/__init__.py +3 -0
  32. aws_cdk/aws_autoscalingplans/__init__.py +13 -2
  33. aws_cdk/aws_b2bi/__init__.py +1819 -99
  34. aws_cdk/aws_backup/__init__.py +317 -28
  35. aws_cdk/aws_backupgateway/__init__.py +13 -2
  36. aws_cdk/aws_batch/__init__.py +1405 -178
  37. aws_cdk/aws_bcmdataexports/__init__.py +21 -2
  38. aws_cdk/aws_bedrock/__init__.py +6747 -627
  39. aws_cdk/aws_bedrockagentcore/__init__.py +10425 -0
  40. aws_cdk/aws_billingconductor/__init__.py +197 -11
  41. aws_cdk/aws_budgets/__init__.py +42 -4
  42. aws_cdk/aws_cassandra/__init__.py +247 -6
  43. aws_cdk/aws_ce/__init__.py +35 -6
  44. aws_cdk/aws_certificatemanager/__init__.py +237 -32
  45. aws_cdk/aws_chatbot/__init__.py +70 -6
  46. aws_cdk/aws_cleanrooms/__init__.py +709 -206
  47. aws_cdk/aws_cleanroomsml/__init__.py +13 -2
  48. aws_cdk/aws_cloud9/__init__.py +13 -2
  49. aws_cdk/aws_cloudformation/__init__.py +345 -166
  50. aws_cdk/aws_cloudfront/__init__.py +2101 -680
  51. aws_cdk/aws_cloudfront/experimental/__init__.py +108 -16
  52. aws_cdk/aws_cloudfront_origins/__init__.py +614 -73
  53. aws_cdk/aws_cloudtrail/__init__.py +301 -17
  54. aws_cdk/aws_cloudwatch/__init__.py +1414 -153
  55. aws_cdk/aws_codeartifact/__init__.py +35 -6
  56. aws_cdk/aws_codebuild/__init__.py +1103 -118
  57. aws_cdk/aws_codecommit/__init__.py +23 -9
  58. aws_cdk/aws_codeconnections/__init__.py +13 -2
  59. aws_cdk/aws_codedeploy/__init__.py +67 -6
  60. aws_cdk/aws_codeguruprofiler/__init__.py +74 -2
  61. aws_cdk/aws_codegurureviewer/__init__.py +13 -2
  62. aws_cdk/aws_codepipeline/__init__.py +127 -64
  63. aws_cdk/aws_codepipeline_actions/__init__.py +749 -0
  64. aws_cdk/aws_codestar/__init__.py +13 -2
  65. aws_cdk/aws_codestarconnections/__init__.py +35 -6
  66. aws_cdk/aws_codestarnotifications/__init__.py +16 -2
  67. aws_cdk/aws_cognito/__init__.py +814 -80
  68. aws_cdk/aws_cognito_identitypool/__init__.py +17 -12
  69. aws_cdk/aws_comprehend/__init__.py +24 -4
  70. aws_cdk/aws_config/__init__.py +191 -30
  71. aws_cdk/aws_connect/__init__.py +2736 -191
  72. aws_cdk/aws_connectcampaigns/__init__.py +13 -2
  73. aws_cdk/aws_connectcampaignsv2/__init__.py +268 -6
  74. aws_cdk/aws_controltower/__init__.py +35 -6
  75. aws_cdk/aws_cur/__init__.py +100 -4
  76. aws_cdk/aws_customerprofiles/__init__.py +617 -27
  77. aws_cdk/aws_databrew/__init__.py +68 -12
  78. aws_cdk/aws_datapipeline/__init__.py +42 -2
  79. aws_cdk/aws_datasync/__init__.py +723 -203
  80. aws_cdk/aws_datazone/__init__.py +4425 -608
  81. aws_cdk/aws_dax/__init__.py +83 -6
  82. aws_cdk/aws_deadline/__init__.py +321 -32
  83. aws_cdk/aws_detective/__init__.py +35 -6
  84. aws_cdk/aws_devicefarm/__init__.py +68 -12
  85. aws_cdk/aws_devopsguru/__init__.py +37 -6
  86. aws_cdk/aws_directoryservice/__init__.py +53 -4
  87. aws_cdk/aws_dlm/__init__.py +13 -2
  88. aws_cdk/aws_dms/__init__.py +184 -27
  89. aws_cdk/aws_docdb/__init__.py +323 -46
  90. aws_cdk/aws_docdbelastic/__init__.py +13 -2
  91. aws_cdk/aws_dsql/__init__.py +340 -12
  92. aws_cdk/aws_dynamodb/__init__.py +1463 -166
  93. aws_cdk/aws_ec2/__init__.py +9636 -1120
  94. aws_cdk/aws_ecr/__init__.py +631 -43
  95. aws_cdk/aws_ecr_assets/__init__.py +4 -0
  96. aws_cdk/aws_ecs/__init__.py +6524 -497
  97. aws_cdk/aws_ecs_patterns/__init__.py +2 -0
  98. aws_cdk/aws_efs/__init__.py +264 -24
  99. aws_cdk/aws_eks/__init__.py +1050 -218
  100. aws_cdk/aws_elasticache/__init__.py +373 -20
  101. aws_cdk/aws_elasticbeanstalk/__init__.py +75 -8
  102. aws_cdk/aws_elasticloadbalancing/__init__.py +16 -2
  103. aws_cdk/aws_elasticloadbalancingv2/__init__.py +1670 -106
  104. aws_cdk/aws_elasticsearch/__init__.py +282 -9
  105. aws_cdk/aws_emr/__init__.py +187 -20
  106. aws_cdk/aws_emrcontainers/__init__.py +71 -2
  107. aws_cdk/aws_emrserverless/__init__.py +188 -3
  108. aws_cdk/aws_entityresolution/__init__.py +585 -58
  109. aws_cdk/aws_events/__init__.py +969 -124
  110. aws_cdk/aws_events_targets/__init__.py +310 -54
  111. aws_cdk/aws_eventschemas/__init__.py +46 -8
  112. aws_cdk/aws_evidently/__init__.py +57 -10
  113. aws_cdk/aws_evs/__init__.py +2244 -0
  114. aws_cdk/aws_finspace/__init__.py +71 -2
  115. aws_cdk/aws_fis/__init__.py +26 -4
  116. aws_cdk/aws_fms/__init__.py +35 -6
  117. aws_cdk/aws_forecast/__init__.py +24 -4
  118. aws_cdk/aws_frauddetector/__init__.py +79 -14
  119. aws_cdk/aws_fsx/__init__.py +1236 -142
  120. aws_cdk/aws_gamelift/__init__.py +653 -78
  121. aws_cdk/aws_gameliftstreams/__init__.py +38 -16
  122. aws_cdk/aws_globalaccelerator/__init__.py +55 -14
  123. aws_cdk/aws_glue/__init__.py +1368 -320
  124. aws_cdk/aws_grafana/__init__.py +13 -2
  125. aws_cdk/aws_greengrass/__init__.py +654 -32
  126. aws_cdk/aws_greengrassv2/__init__.py +53 -4
  127. aws_cdk/aws_groundstation/__init__.py +122 -6
  128. aws_cdk/aws_guardduty/__init__.py +1613 -123
  129. aws_cdk/aws_healthimaging/__init__.py +71 -2
  130. aws_cdk/aws_healthlake/__init__.py +42 -2
  131. aws_cdk/aws_iam/__init__.py +480 -140
  132. aws_cdk/aws_identitystore/__init__.py +24 -4
  133. aws_cdk/aws_imagebuilder/__init__.py +1433 -183
  134. aws_cdk/aws_inspector/__init__.py +38 -6
  135. aws_cdk/aws_inspectorv2/__init__.py +2285 -243
  136. aws_cdk/aws_internetmonitor/__init__.py +71 -2
  137. aws_cdk/aws_invoicing/__init__.py +13 -2
  138. aws_cdk/aws_iot/__init__.py +1730 -86
  139. aws_cdk/aws_iotanalytics/__init__.py +162 -8
  140. aws_cdk/aws_iotcoredeviceadvisor/__init__.py +106 -40
  141. aws_cdk/aws_iotevents/__init__.py +122 -6
  142. aws_cdk/aws_iotfleethub/__init__.py +71 -2
  143. aws_cdk/aws_iotfleetwise/__init__.py +195 -14
  144. aws_cdk/aws_iotsitewise/__init__.py +1837 -89
  145. aws_cdk/aws_iotthingsgraph/__init__.py +13 -2
  146. aws_cdk/aws_iottwinmaker/__init__.py +115 -10
  147. aws_cdk/aws_iotwireless/__init__.py +649 -22
  148. aws_cdk/aws_ivs/__init__.py +561 -57
  149. aws_cdk/aws_ivschat/__init__.py +24 -4
  150. aws_cdk/aws_kafkaconnect/__init__.py +35 -6
  151. aws_cdk/aws_kendra/__init__.py +120 -28
  152. aws_cdk/aws_kendraranking/__init__.py +13 -2
  153. aws_cdk/aws_kinesis/__init__.py +622 -22
  154. aws_cdk/aws_kinesisanalytics/__init__.py +467 -94
  155. aws_cdk/aws_kinesisanalyticsv2/__init__.py +201 -11
  156. aws_cdk/aws_kinesisfirehose/__init__.py +3077 -295
  157. aws_cdk/aws_kinesisvideo/__init__.py +24 -4
  158. aws_cdk/aws_kms/__init__.py +188 -41
  159. aws_cdk/aws_lakeformation/__init__.py +80 -15
  160. aws_cdk/aws_lambda/__init__.py +2101 -252
  161. aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
  162. aws_cdk/aws_lambda_nodejs/__init__.py +63 -24
  163. aws_cdk/aws_launchwizard/__init__.py +13 -2
  164. aws_cdk/aws_lex/__init__.py +871 -8
  165. aws_cdk/aws_licensemanager/__init__.py +24 -4
  166. aws_cdk/aws_lightsail/__init__.py +2159 -975
  167. aws_cdk/aws_location/__init__.py +618 -14
  168. aws_cdk/aws_logs/__init__.py +5904 -956
  169. aws_cdk/aws_lookoutequipment/__init__.py +13 -2
  170. aws_cdk/aws_lookoutmetrics/__init__.py +38 -6
  171. aws_cdk/aws_lookoutvision/__init__.py +71 -2
  172. aws_cdk/aws_m2/__init__.py +94 -19
  173. aws_cdk/aws_macie/__init__.py +49 -11
  174. aws_cdk/aws_managedblockchain/__init__.py +180 -6
  175. aws_cdk/aws_mediaconnect/__init__.py +101 -18
  176. aws_cdk/aws_mediaconvert/__init__.py +35 -6
  177. aws_cdk/aws_medialive/__init__.py +1239 -35
  178. aws_cdk/aws_mediapackage/__init__.py +59 -12
  179. aws_cdk/aws_mediapackagev2/__init__.py +1607 -225
  180. aws_cdk/aws_mediastore/__init__.py +13 -2
  181. aws_cdk/aws_mediatailor/__init__.py +583 -12
  182. aws_cdk/aws_memorydb/__init__.py +271 -12
  183. aws_cdk/aws_mpa/__init__.py +1495 -0
  184. aws_cdk/aws_msk/__init__.py +104 -18
  185. aws_cdk/aws_mwaa/__init__.py +121 -9
  186. aws_cdk/aws_neptune/__init__.py +290 -78
  187. aws_cdk/aws_neptunegraph/__init__.py +24 -4
  188. aws_cdk/aws_networkfirewall/__init__.py +1289 -273
  189. aws_cdk/aws_networkmanager/__init__.py +349 -33
  190. aws_cdk/aws_nimblestudio/__init__.py +75 -8
  191. aws_cdk/aws_notifications/__init__.py +317 -12
  192. aws_cdk/aws_notificationscontacts/__init__.py +13 -2
  193. aws_cdk/aws_oam/__init__.py +24 -4
  194. aws_cdk/aws_observabilityadmin/__init__.py +2561 -0
  195. aws_cdk/aws_odb/__init__.py +5872 -0
  196. aws_cdk/aws_omics/__init__.py +2495 -529
  197. aws_cdk/aws_opensearchserverless/__init__.py +312 -37
  198. aws_cdk/aws_opensearchservice/__init__.py +495 -19
  199. aws_cdk/aws_opsworks/__init__.py +235 -139
  200. aws_cdk/aws_opsworkscm/__init__.py +16 -52
  201. aws_cdk/aws_organizations/__init__.py +70 -10
  202. aws_cdk/aws_osis/__init__.py +167 -2
  203. aws_cdk/aws_panorama/__init__.py +151 -6
  204. aws_cdk/aws_paymentcryptography/__init__.py +24 -4
  205. aws_cdk/aws_pcaconnectorad/__init__.py +59 -10
  206. aws_cdk/aws_pcaconnectorscep/__init__.py +24 -4
  207. aws_cdk/aws_pcs/__init__.py +387 -68
  208. aws_cdk/aws_personalize/__init__.py +46 -8
  209. aws_cdk/aws_pinpoint/__init__.py +329 -38
  210. aws_cdk/aws_pinpointemail/__init__.py +48 -8
  211. aws_cdk/aws_pipes/__init__.py +12 -2
  212. aws_cdk/aws_proton/__init__.py +37 -6
  213. aws_cdk/aws_qbusiness/__init__.py +635 -34
  214. aws_cdk/aws_qldb/__init__.py +24 -4
  215. aws_cdk/aws_quicksight/__init__.py +7900 -1160
  216. aws_cdk/aws_ram/__init__.py +24 -4
  217. aws_cdk/aws_rbin/__init__.py +12 -2
  218. aws_cdk/aws_rds/__init__.py +3345 -512
  219. aws_cdk/aws_redshift/__init__.py +143 -20
  220. aws_cdk/aws_redshiftserverless/__init__.py +692 -4
  221. aws_cdk/aws_refactorspaces/__init__.py +64 -14
  222. aws_cdk/aws_rekognition/__init__.py +93 -6
  223. aws_cdk/aws_resiliencehub/__init__.py +24 -4
  224. aws_cdk/aws_resourceexplorer2/__init__.py +35 -6
  225. aws_cdk/aws_resourcegroups/__init__.py +82 -4
  226. aws_cdk/aws_robomaker/__init__.py +72 -12
  227. aws_cdk/aws_rolesanywhere/__init__.py +180 -6
  228. aws_cdk/aws_route53/__init__.py +3273 -1442
  229. aws_cdk/aws_route53_targets/__init__.py +3 -0
  230. aws_cdk/aws_route53profiles/__init__.py +37 -6
  231. aws_cdk/aws_route53recoverycontrol/__init__.py +46 -8
  232. aws_cdk/aws_route53recoveryreadiness/__init__.py +104 -8
  233. aws_cdk/aws_route53resolver/__init__.py +226 -36
  234. aws_cdk/aws_rtbfabric/__init__.py +3498 -0
  235. aws_cdk/aws_rum/__init__.py +13 -2
  236. aws_cdk/aws_s3/__init__.py +1291 -158
  237. aws_cdk/aws_s3_assets/__init__.py +11 -11
  238. aws_cdk/aws_s3_deployment/__init__.py +147 -11
  239. aws_cdk/aws_s3_notifications/__init__.py +7 -7
  240. aws_cdk/aws_s3express/__init__.py +266 -8
  241. aws_cdk/aws_s3objectlambda/__init__.py +68 -16
  242. aws_cdk/aws_s3outposts/__init__.py +46 -8
  243. aws_cdk/aws_s3tables/__init__.py +2000 -323
  244. aws_cdk/aws_s3vectors/__init__.py +1378 -0
  245. aws_cdk/aws_sagemaker/__init__.py +6617 -363
  246. aws_cdk/aws_sam/__init__.py +79 -14
  247. aws_cdk/aws_scheduler/__init__.py +237 -4
  248. aws_cdk/aws_sdb/__init__.py +12 -2
  249. aws_cdk/aws_secretsmanager/__init__.py +170 -14
  250. aws_cdk/aws_securityhub/__init__.py +3121 -176
  251. aws_cdk/aws_securitylake/__init__.py +46 -8
  252. aws_cdk/aws_servicecatalog/__init__.py +405 -246
  253. aws_cdk/aws_servicecatalogappregistry/__init__.py +164 -8
  254. aws_cdk/aws_servicediscovery/__init__.py +140 -47
  255. aws_cdk/aws_ses/__init__.py +1231 -140
  256. aws_cdk/aws_shield/__init__.py +46 -8
  257. aws_cdk/aws_signer/__init__.py +27 -4
  258. aws_cdk/aws_simspaceweaver/__init__.py +42 -2
  259. aws_cdk/aws_smsvoice/__init__.py +4716 -0
  260. aws_cdk/aws_sns/__init__.py +245 -29
  261. aws_cdk/aws_sns_subscriptions/__init__.py +3 -1
  262. aws_cdk/aws_sqs/__init__.py +211 -14
  263. aws_cdk/aws_ssm/__init__.py +401 -58
  264. aws_cdk/aws_ssmcontacts/__init__.py +46 -8
  265. aws_cdk/aws_ssmguiconnect/__init__.py +13 -2
  266. aws_cdk/aws_ssmincidents/__init__.py +24 -4
  267. aws_cdk/aws_ssmquicksetup/__init__.py +383 -6
  268. aws_cdk/aws_sso/__init__.py +70 -12
  269. aws_cdk/aws_stepfunctions/__init__.py +615 -70
  270. aws_cdk/aws_stepfunctions_tasks/__init__.py +781 -144
  271. aws_cdk/aws_supportapp/__init__.py +39 -6
  272. aws_cdk/aws_synthetics/__init__.py +861 -75
  273. aws_cdk/aws_systemsmanagersap/__init__.py +13 -2
  274. aws_cdk/aws_timestream/__init__.py +104 -8
  275. aws_cdk/aws_transfer/__init__.py +784 -87
  276. aws_cdk/aws_verifiedpermissions/__init__.py +145 -17
  277. aws_cdk/aws_voiceid/__init__.py +41 -2
  278. aws_cdk/aws_vpclattice/__init__.py +376 -30
  279. aws_cdk/aws_waf/__init__.py +79 -14
  280. aws_cdk/aws_wafregional/__init__.py +123 -22
  281. aws_cdk/aws_wafv2/__init__.py +1179 -60
  282. aws_cdk/aws_wisdom/__init__.py +1401 -90
  283. aws_cdk/aws_workspaces/__init__.py +93 -6
  284. aws_cdk/aws_workspacesinstances/__init__.py +3940 -0
  285. aws_cdk/aws_workspacesthinclient/__init__.py +79 -10
  286. aws_cdk/aws_workspacesweb/__init__.py +1057 -141
  287. aws_cdk/aws_xray/__init__.py +48 -8
  288. aws_cdk/cloud_assembly_schema/__init__.py +231 -6
  289. aws_cdk/custom_resources/__init__.py +40 -12
  290. aws_cdk/cx_api/__init__.py +85 -14
  291. aws_cdk/interfaces/__init__.py +739 -0
  292. aws_cdk/interfaces/alexa_ask/__init__.py +146 -0
  293. aws_cdk/interfaces/aws_accessanalyzer/__init__.py +146 -0
  294. aws_cdk/interfaces/aws_acmpca/__init__.py +501 -0
  295. aws_cdk/interfaces/aws_aiops/__init__.py +146 -0
  296. aws_cdk/interfaces/aws_amazonmq/__init__.py +386 -0
  297. aws_cdk/interfaces/aws_amplify/__init__.py +352 -0
  298. aws_cdk/interfaces/aws_amplifyuibuilder/__init__.py +454 -0
  299. aws_cdk/interfaces/aws_apigateway/__init__.py +2486 -0
  300. aws_cdk/interfaces/aws_apigatewayv2/__init__.py +1651 -0
  301. aws_cdk/interfaces/aws_appconfig/__init__.py +1020 -0
  302. aws_cdk/interfaces/aws_appflow/__init__.py +404 -0
  303. aws_cdk/interfaces/aws_appintegrations/__init__.py +396 -0
  304. aws_cdk/interfaces/aws_applicationautoscaling/__init__.py +307 -0
  305. aws_cdk/interfaces/aws_applicationinsights/__init__.py +148 -0
  306. aws_cdk/interfaces/aws_applicationsignals/__init__.py +358 -0
  307. aws_cdk/interfaces/aws_appmesh/__init__.py +888 -0
  308. aws_cdk/interfaces/aws_apprunner/__init__.py +564 -0
  309. aws_cdk/interfaces/aws_appstream/__init__.py +1482 -0
  310. aws_cdk/interfaces/aws_appsync/__init__.py +1326 -0
  311. aws_cdk/interfaces/aws_apptest/__init__.py +163 -0
  312. aws_cdk/interfaces/aws_aps/__init__.py +558 -0
  313. aws_cdk/interfaces/aws_arcregionswitch/__init__.py +146 -0
  314. aws_cdk/interfaces/aws_arczonalshift/__init__.py +273 -0
  315. aws_cdk/interfaces/aws_athena/__init__.py +575 -0
  316. aws_cdk/interfaces/aws_auditmanager/__init__.py +163 -0
  317. aws_cdk/interfaces/aws_autoscaling/__init__.py +705 -0
  318. aws_cdk/interfaces/aws_autoscalingplans/__init__.py +148 -0
  319. aws_cdk/interfaces/aws_b2bi/__init__.py +524 -0
  320. aws_cdk/interfaces/aws_backup/__init__.py +955 -0
  321. aws_cdk/interfaces/aws_backupgateway/__init__.py +146 -0
  322. aws_cdk/interfaces/aws_batch/__init__.py +681 -0
  323. aws_cdk/interfaces/aws_bcmdataexports/__init__.py +146 -0
  324. aws_cdk/interfaces/aws_bedrock/__init__.py +1942 -0
  325. aws_cdk/interfaces/aws_bedrockagentcore/__init__.py +934 -0
  326. aws_cdk/interfaces/aws_billing/__init__.py +146 -0
  327. aws_cdk/interfaces/aws_billingconductor/__init__.py +463 -0
  328. aws_cdk/interfaces/aws_budgets/__init__.py +261 -0
  329. aws_cdk/interfaces/aws_cassandra/__init__.py +381 -0
  330. aws_cdk/interfaces/aws_ce/__init__.py +352 -0
  331. aws_cdk/interfaces/aws_certificatemanager/__init__.py +251 -0
  332. aws_cdk/interfaces/aws_chatbot/__init__.py +366 -0
  333. aws_cdk/interfaces/aws_cleanrooms/__init__.py +1103 -0
  334. aws_cdk/interfaces/aws_cleanroomsml/__init__.py +148 -0
  335. aws_cdk/interfaces/aws_cloud9/__init__.py +166 -0
  336. aws_cdk/interfaces/aws_cloudformation/__init__.py +1919 -0
  337. aws_cdk/interfaces/aws_cloudfront/__init__.py +1998 -0
  338. aws_cdk/interfaces/aws_cloudtrail/__init__.py +570 -0
  339. aws_cdk/interfaces/aws_cloudwatch/__init__.py +733 -0
  340. aws_cdk/interfaces/aws_codeartifact/__init__.py +352 -0
  341. aws_cdk/interfaces/aws_codebuild/__init__.py +487 -0
  342. aws_cdk/interfaces/aws_codecommit/__init__.py +163 -0
  343. aws_cdk/interfaces/aws_codeconnections/__init__.py +146 -0
  344. aws_cdk/interfaces/aws_codedeploy/__init__.py +352 -0
  345. aws_cdk/interfaces/aws_codeguruprofiler/__init__.py +168 -0
  346. aws_cdk/interfaces/aws_codegurureviewer/__init__.py +148 -0
  347. aws_cdk/interfaces/aws_codepipeline/__init__.py +388 -0
  348. aws_cdk/interfaces/aws_codestar/__init__.py +146 -0
  349. aws_cdk/interfaces/aws_codestarconnections/__init__.py +370 -0
  350. aws_cdk/interfaces/aws_codestarnotifications/__init__.py +148 -0
  351. aws_cdk/interfaces/aws_cognito/__init__.py +1929 -0
  352. aws_cdk/interfaces/aws_comprehend/__init__.py +251 -0
  353. aws_cdk/interfaces/aws_config/__init__.py +1165 -0
  354. aws_cdk/interfaces/aws_connect/__init__.py +2949 -0
  355. aws_cdk/interfaces/aws_connectcampaigns/__init__.py +146 -0
  356. aws_cdk/interfaces/aws_connectcampaignsv2/__init__.py +146 -0
  357. aws_cdk/interfaces/aws_controltower/__init__.py +394 -0
  358. aws_cdk/interfaces/aws_cur/__init__.py +146 -0
  359. aws_cdk/interfaces/aws_customerprofiles/__init__.py +915 -0
  360. aws_cdk/interfaces/aws_databrew/__init__.py +661 -0
  361. aws_cdk/interfaces/aws_datapipeline/__init__.py +146 -0
  362. aws_cdk/interfaces/aws_datasync/__init__.py +1384 -0
  363. aws_cdk/interfaces/aws_datazone/__init__.py +2238 -0
  364. aws_cdk/interfaces/aws_dax/__init__.py +364 -0
  365. aws_cdk/interfaces/aws_deadline/__init__.py +1303 -0
  366. aws_cdk/interfaces/aws_detective/__init__.py +364 -0
  367. aws_cdk/interfaces/aws_devicefarm/__init__.py +663 -0
  368. aws_cdk/interfaces/aws_devopsguru/__init__.py +362 -0
  369. aws_cdk/interfaces/aws_directoryservice/__init__.py +251 -0
  370. aws_cdk/interfaces/aws_dlm/__init__.py +166 -0
  371. aws_cdk/interfaces/aws_dms/__init__.py +1176 -0
  372. aws_cdk/interfaces/aws_docdb/__init__.py +560 -0
  373. aws_cdk/interfaces/aws_docdbelastic/__init__.py +146 -0
  374. aws_cdk/interfaces/aws_dsql/__init__.py +146 -0
  375. aws_cdk/interfaces/aws_dynamodb/__init__.py +278 -0
  376. aws_cdk/interfaces/aws_ec2/__init__.py +11963 -0
  377. aws_cdk/interfaces/aws_ecr/__init__.py +814 -0
  378. aws_cdk/interfaces/aws_ecs/__init__.py +845 -0
  379. aws_cdk/interfaces/aws_efs/__init__.py +392 -0
  380. aws_cdk/interfaces/aws_eks/__init__.py +948 -0
  381. aws_cdk/interfaces/aws_elasticache/__init__.py +1108 -0
  382. aws_cdk/interfaces/aws_elasticbeanstalk/__init__.py +503 -0
  383. aws_cdk/interfaces/aws_elasticloadbalancing/__init__.py +148 -0
  384. aws_cdk/interfaces/aws_elasticloadbalancingv2/__init__.py +795 -0
  385. aws_cdk/interfaces/aws_elasticsearch/__init__.py +158 -0
  386. aws_cdk/interfaces/aws_emr/__init__.py +913 -0
  387. aws_cdk/interfaces/aws_emrcontainers/__init__.py +168 -0
  388. aws_cdk/interfaces/aws_emrserverless/__init__.py +166 -0
  389. aws_cdk/interfaces/aws_entityresolution/__init__.py +608 -0
  390. aws_cdk/interfaces/aws_events/__init__.py +872 -0
  391. aws_cdk/interfaces/aws_eventschemas/__init__.py +455 -0
  392. aws_cdk/interfaces/aws_evidently/__init__.py +558 -0
  393. aws_cdk/interfaces/aws_evs/__init__.py +166 -0
  394. aws_cdk/interfaces/aws_finspace/__init__.py +166 -0
  395. aws_cdk/interfaces/aws_fis/__init__.py +271 -0
  396. aws_cdk/interfaces/aws_fms/__init__.py +364 -0
  397. aws_cdk/interfaces/aws_forecast/__init__.py +249 -0
  398. aws_cdk/interfaces/aws_frauddetector/__init__.py +764 -0
  399. aws_cdk/interfaces/aws_fsx/__init__.py +663 -0
  400. aws_cdk/interfaces/aws_gamelift/__init__.py +1325 -0
  401. aws_cdk/interfaces/aws_gameliftstreams/__init__.py +249 -0
  402. aws_cdk/interfaces/aws_globalaccelerator/__init__.py +461 -0
  403. aws_cdk/interfaces/aws_glue/__init__.py +2377 -0
  404. aws_cdk/interfaces/aws_grafana/__init__.py +146 -0
  405. aws_cdk/interfaces/aws_greengrass/__init__.py +1871 -0
  406. aws_cdk/interfaces/aws_greengrassv2/__init__.py +251 -0
  407. aws_cdk/interfaces/aws_groundstation/__init__.py +396 -0
  408. aws_cdk/interfaces/aws_guardduty/__init__.py +1225 -0
  409. aws_cdk/interfaces/aws_healthimaging/__init__.py +163 -0
  410. aws_cdk/interfaces/aws_healthlake/__init__.py +146 -0
  411. aws_cdk/interfaces/aws_iam/__init__.py +1803 -0
  412. aws_cdk/interfaces/aws_identitystore/__init__.py +288 -0
  413. aws_cdk/interfaces/aws_imagebuilder/__init__.py +984 -0
  414. aws_cdk/interfaces/aws_inspector/__init__.py +354 -0
  415. aws_cdk/interfaces/aws_inspectorv2/__init__.py +467 -0
  416. aws_cdk/interfaces/aws_internetmonitor/__init__.py +163 -0
  417. aws_cdk/interfaces/aws_invoicing/__init__.py +146 -0
  418. aws_cdk/interfaces/aws_iot/__init__.py +3483 -0
  419. aws_cdk/interfaces/aws_iotanalytics/__init__.py +455 -0
  420. aws_cdk/interfaces/aws_iotcoredeviceadvisor/__init__.py +168 -0
  421. aws_cdk/interfaces/aws_iotevents/__init__.py +352 -0
  422. aws_cdk/interfaces/aws_iotfleethub/__init__.py +166 -0
  423. aws_cdk/interfaces/aws_iotfleetwise/__init__.py +892 -0
  424. aws_cdk/interfaces/aws_iotsitewise/__init__.py +1097 -0
  425. aws_cdk/interfaces/aws_iotthingsgraph/__init__.py +146 -0
  426. aws_cdk/interfaces/aws_iottwinmaker/__init__.py +711 -0
  427. aws_cdk/interfaces/aws_iotwireless/__init__.py +1401 -0
  428. aws_cdk/interfaces/aws_ivs/__init__.py +1075 -0
  429. aws_cdk/interfaces/aws_ivschat/__init__.py +251 -0
  430. aws_cdk/interfaces/aws_kafkaconnect/__init__.py +354 -0
  431. aws_cdk/interfaces/aws_kendra/__init__.py +428 -0
  432. aws_cdk/interfaces/aws_kendraranking/__init__.py +166 -0
  433. aws_cdk/interfaces/aws_kinesis/__init__.py +364 -0
  434. aws_cdk/interfaces/aws_kinesisanalytics/__init__.py +364 -0
  435. aws_cdk/interfaces/aws_kinesisanalyticsv2/__init__.py +479 -0
  436. aws_cdk/interfaces/aws_kinesisfirehose/__init__.py +168 -0
  437. aws_cdk/interfaces/aws_kinesisvideo/__init__.py +283 -0
  438. aws_cdk/interfaces/aws_kms/__init__.py +376 -0
  439. aws_cdk/interfaces/aws_lakeformation/__init__.py +860 -0
  440. aws_cdk/interfaces/aws_lambda/__init__.py +1141 -0
  441. aws_cdk/interfaces/aws_launchwizard/__init__.py +146 -0
  442. aws_cdk/interfaces/aws_lex/__init__.py +513 -0
  443. aws_cdk/interfaces/aws_licensemanager/__init__.py +249 -0
  444. aws_cdk/interfaces/aws_lightsail/__init__.py +1744 -0
  445. aws_cdk/interfaces/aws_location/__init__.py +879 -0
  446. aws_cdk/interfaces/aws_logs/__init__.py +1667 -0
  447. aws_cdk/interfaces/aws_lookoutequipment/__init__.py +168 -0
  448. aws_cdk/interfaces/aws_lookoutmetrics/__init__.py +251 -0
  449. aws_cdk/interfaces/aws_lookoutvision/__init__.py +163 -0
  450. aws_cdk/interfaces/aws_m2/__init__.py +352 -0
  451. aws_cdk/interfaces/aws_macie/__init__.py +512 -0
  452. aws_cdk/interfaces/aws_managedblockchain/__init__.py +381 -0
  453. aws_cdk/interfaces/aws_mediaconnect/__init__.py +1028 -0
  454. aws_cdk/interfaces/aws_mediaconvert/__init__.py +396 -0
  455. aws_cdk/interfaces/aws_medialive/__init__.py +1755 -0
  456. aws_cdk/interfaces/aws_mediapackage/__init__.py +644 -0
  457. aws_cdk/interfaces/aws_mediapackagev2/__init__.py +618 -0
  458. aws_cdk/interfaces/aws_mediastore/__init__.py +146 -0
  459. aws_cdk/interfaces/aws_mediatailor/__init__.py +788 -0
  460. aws_cdk/interfaces/aws_memorydb/__init__.py +685 -0
  461. aws_cdk/interfaces/aws_mpa/__init__.py +249 -0
  462. aws_cdk/interfaces/aws_msk/__init__.py +764 -0
  463. aws_cdk/interfaces/aws_mwaa/__init__.py +166 -0
  464. aws_cdk/interfaces/aws_neptune/__init__.py +663 -0
  465. aws_cdk/interfaces/aws_neptunegraph/__init__.py +265 -0
  466. aws_cdk/interfaces/aws_networkfirewall/__init__.py +669 -0
  467. aws_cdk/interfaces/aws_networkmanager/__init__.py +1832 -0
  468. aws_cdk/interfaces/aws_nimblestudio/__init__.py +388 -0
  469. aws_cdk/interfaces/aws_notifications/__init__.py +868 -0
  470. aws_cdk/interfaces/aws_notificationscontacts/__init__.py +148 -0
  471. aws_cdk/interfaces/aws_oam/__init__.py +249 -0
  472. aws_cdk/interfaces/aws_observabilityadmin/__init__.py +362 -0
  473. aws_cdk/interfaces/aws_odb/__init__.py +562 -0
  474. aws_cdk/interfaces/aws_omics/__init__.py +838 -0
  475. aws_cdk/interfaces/aws_opensearchserverless/__init__.py +859 -0
  476. aws_cdk/interfaces/aws_opensearchservice/__init__.py +283 -0
  477. aws_cdk/interfaces/aws_opsworks/__init__.py +772 -0
  478. aws_cdk/interfaces/aws_opsworkscm/__init__.py +146 -0
  479. aws_cdk/interfaces/aws_organizations/__init__.py +646 -0
  480. aws_cdk/interfaces/aws_osis/__init__.py +146 -0
  481. aws_cdk/interfaces/aws_panorama/__init__.py +420 -0
  482. aws_cdk/interfaces/aws_paymentcryptography/__init__.py +249 -0
  483. aws_cdk/interfaces/aws_pcaconnectorad/__init__.py +608 -0
  484. aws_cdk/interfaces/aws_pcaconnectorscep/__init__.py +249 -0
  485. aws_cdk/interfaces/aws_pcs/__init__.py +352 -0
  486. aws_cdk/interfaces/aws_personalize/__init__.py +455 -0
  487. aws_cdk/interfaces/aws_pinpoint/__init__.py +2125 -0
  488. aws_cdk/interfaces/aws_pinpointemail/__init__.py +467 -0
  489. aws_cdk/interfaces/aws_pipes/__init__.py +158 -0
  490. aws_cdk/interfaces/aws_proton/__init__.py +360 -0
  491. aws_cdk/interfaces/aws_qbusiness/__init__.py +1122 -0
  492. aws_cdk/interfaces/aws_qldb/__init__.py +283 -0
  493. aws_cdk/interfaces/aws_quicksight/__init__.py +1566 -0
  494. aws_cdk/interfaces/aws_ram/__init__.py +249 -0
  495. aws_cdk/interfaces/aws_rbin/__init__.py +146 -0
  496. aws_cdk/interfaces/aws_rds/__init__.py +1780 -0
  497. aws_cdk/interfaces/aws_redshift/__init__.py +1104 -0
  498. aws_cdk/interfaces/aws_redshiftserverless/__init__.py +356 -0
  499. aws_cdk/interfaces/aws_refactorspaces/__init__.py +605 -0
  500. aws_cdk/interfaces/aws_rekognition/__init__.py +406 -0
  501. aws_cdk/interfaces/aws_resiliencehub/__init__.py +251 -0
  502. aws_cdk/interfaces/aws_resourceexplorer2/__init__.py +354 -0
  503. aws_cdk/interfaces/aws_resourcegroups/__init__.py +261 -0
  504. aws_cdk/interfaces/aws_robomaker/__init__.py +673 -0
  505. aws_cdk/interfaces/aws_rolesanywhere/__init__.py +384 -0
  506. aws_cdk/interfaces/aws_route53/__init__.py +804 -0
  507. aws_cdk/interfaces/aws_route53profiles/__init__.py +368 -0
  508. aws_cdk/interfaces/aws_route53recoverycontrol/__init__.py +463 -0
  509. aws_cdk/interfaces/aws_route53recoveryreadiness/__init__.py +535 -0
  510. aws_cdk/interfaces/aws_route53resolver/__init__.py +1356 -0
  511. aws_cdk/interfaces/aws_rtbfabric/__init__.py +352 -0
  512. aws_cdk/interfaces/aws_rum/__init__.py +146 -0
  513. aws_cdk/interfaces/aws_s3/__init__.py +1171 -0
  514. aws_cdk/interfaces/aws_s3express/__init__.py +392 -0
  515. aws_cdk/interfaces/aws_s3objectlambda/__init__.py +271 -0
  516. aws_cdk/interfaces/aws_s3outposts/__init__.py +455 -0
  517. aws_cdk/interfaces/aws_s3tables/__init__.py +575 -0
  518. aws_cdk/interfaces/aws_s3vectors/__init__.py +354 -0
  519. aws_cdk/interfaces/aws_sagemaker/__init__.py +3797 -0
  520. aws_cdk/interfaces/aws_sam/__init__.py +603 -0
  521. aws_cdk/interfaces/aws_scheduler/__init__.py +286 -0
  522. aws_cdk/interfaces/aws_sdb/__init__.py +146 -0
  523. aws_cdk/interfaces/aws_secretsmanager/__init__.py +461 -0
  524. aws_cdk/interfaces/aws_securityhub/__init__.py +1499 -0
  525. aws_cdk/interfaces/aws_securitylake/__init__.py +474 -0
  526. aws_cdk/interfaces/aws_servicecatalog/__init__.py +1829 -0
  527. aws_cdk/interfaces/aws_servicecatalogappregistry/__init__.py +557 -0
  528. aws_cdk/interfaces/aws_servicediscovery/__init__.py +636 -0
  529. aws_cdk/interfaces/aws_ses/__init__.py +2018 -0
  530. aws_cdk/interfaces/aws_shield/__init__.py +455 -0
  531. aws_cdk/interfaces/aws_signer/__init__.py +266 -0
  532. aws_cdk/interfaces/aws_simspaceweaver/__init__.py +146 -0
  533. aws_cdk/interfaces/aws_smsvoice/__init__.py +892 -0
  534. aws_cdk/interfaces/aws_sns/__init__.py +455 -0
  535. aws_cdk/interfaces/aws_sqs/__init__.py +364 -0
  536. aws_cdk/interfaces/aws_ssm/__init__.py +982 -0
  537. aws_cdk/interfaces/aws_ssmcontacts/__init__.py +455 -0
  538. aws_cdk/interfaces/aws_ssmguiconnect/__init__.py +146 -0
  539. aws_cdk/interfaces/aws_ssmincidents/__init__.py +249 -0
  540. aws_cdk/interfaces/aws_ssmquicksetup/__init__.py +253 -0
  541. aws_cdk/interfaces/aws_sso/__init__.py +797 -0
  542. aws_cdk/interfaces/aws_stepfunctions/__init__.py +459 -0
  543. aws_cdk/interfaces/aws_supportapp/__init__.py +372 -0
  544. aws_cdk/interfaces/aws_synthetics/__init__.py +249 -0
  545. aws_cdk/interfaces/aws_systemsmanagersap/__init__.py +148 -0
  546. aws_cdk/interfaces/aws_timestream/__init__.py +526 -0
  547. aws_cdk/interfaces/aws_transfer/__init__.py +967 -0
  548. aws_cdk/interfaces/aws_verifiedpermissions/__init__.py +538 -0
  549. aws_cdk/interfaces/aws_voiceid/__init__.py +146 -0
  550. aws_cdk/interfaces/aws_vpclattice/__init__.py +1418 -0
  551. aws_cdk/interfaces/aws_waf/__init__.py +764 -0
  552. aws_cdk/interfaces/aws_wafregional/__init__.py +1182 -0
  553. aws_cdk/interfaces/aws_wafv2/__init__.py +870 -0
  554. aws_cdk/interfaces/aws_wisdom/__init__.py +1556 -0
  555. aws_cdk/interfaces/aws_workspaces/__init__.py +352 -0
  556. aws_cdk/interfaces/aws_workspacesinstances/__init__.py +390 -0
  557. aws_cdk/interfaces/aws_workspacesthinclient/__init__.py +168 -0
  558. aws_cdk/interfaces/aws_workspacesweb/__init__.py +1085 -0
  559. aws_cdk/interfaces/aws_xray/__init__.py +457 -0
  560. aws_cdk/pipelines/__init__.py +192 -42
  561. aws_cdk/region_info/__init__.py +3 -0
  562. aws_cdk/triggers/__init__.py +60 -18
  563. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/METADATA +338 -16
  564. aws_cdk_lib-2.224.0.dist-info/RECORD +584 -0
  565. aws_cdk_lib-2.200.2.dist-info/RECORD +0 -304
  566. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/LICENSE +0 -0
  567. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/NOTICE +0 -0
  568. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/WHEEL +0 -0
  569. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.224.0.dist-info}/top_level.txt +0 -0
@@ -67,9 +67,23 @@ from .. import (
67
67
  TagManager as _TagManager_0a598cb3,
68
68
  TreeInspector as _TreeInspector_488e0dd5,
69
69
  )
70
+ from ..interfaces.aws_wafv2 import (
71
+ IIPSetRef as _IIPSetRef_7ceca2ca,
72
+ ILoggingConfigurationRef as _ILoggingConfigurationRef_d8299b46,
73
+ IPSetReference as _IPSetReference_1b447a31,
74
+ IRegexPatternSetRef as _IRegexPatternSetRef_4af57c5a,
75
+ IRuleGroupRef as _IRuleGroupRef_42ed609b,
76
+ IWebACLAssociationRef as _IWebACLAssociationRef_16e76921,
77
+ IWebACLRef as _IWebACLRef_3dd0843c,
78
+ LoggingConfigurationReference as _LoggingConfigurationReference_1cb27b11,
79
+ RegexPatternSetReference as _RegexPatternSetReference_247d9777,
80
+ RuleGroupReference as _RuleGroupReference_f7804c21,
81
+ WebACLAssociationReference as _WebACLAssociationReference_f2f05891,
82
+ WebACLReference as _WebACLReference_21f0435a,
83
+ )
70
84
 
71
85
 
72
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
86
+ @jsii.implements(_IInspectable_c2943556, _IIPSetRef_7ceca2ca, _ITaggable_36806126)
73
87
  class CfnIPSet(
74
88
  _CfnResource_9df397a6,
75
89
  metaclass=jsii.JSIIMeta,
@@ -122,7 +136,8 @@ class CfnIPSet(
122
136
  name: typing.Optional[builtins.str] = None,
123
137
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
124
138
  ) -> None:
125
- '''
139
+ '''Create a new ``AWS::WAFv2::IPSet``.
140
+
126
141
  :param scope_: Scope in which this resource is defined.
127
142
  :param id: Construct identifier for this resource (unique in its scope).
128
143
  :param addresses: Contains an array of strings that specifies zero or more IP addresses or blocks of IP addresses that you want AWS WAF to inspect for in incoming requests. All addresses must be specified using Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports all IPv4 and IPv6 CIDR ranges except for ``/0`` . Example address strings: - For requests that originated from the IP address 192.0.2.44, specify ``192.0.2.44/32`` . - For requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify ``192.0.2.0/24`` . - For requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify ``1111:0000:0000:0000:0000:0000:0000:0111/128`` . - For requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify ``1111:0000:0000:0000:0000:0000:0000:0000/64`` . For more information about CIDR notation, see the Wikipedia entry `Classless Inter-Domain Routing <https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing>`_ . Example JSON ``Addresses`` specifications: - Empty array: ``"Addresses": []`` - Array with one address: ``"Addresses": ["192.0.2.44/32"]`` - Array with three addresses: ``"Addresses": ["192.0.2.44/32", "192.0.2.0/24", "192.0.0.0/16"]`` - INVALID specification: ``"Addresses": [""]`` INVALID
@@ -200,6 +215,12 @@ class CfnIPSet(
200
215
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
201
216
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
202
217
 
218
+ @builtins.property
219
+ @jsii.member(jsii_name="ipSetRef")
220
+ def ip_set_ref(self) -> _IPSetReference_1b447a31:
221
+ '''A reference to a IPSet resource.'''
222
+ return typing.cast(_IPSetReference_1b447a31, jsii.get(self, "ipSetRef"))
223
+
203
224
  @builtins.property
204
225
  @jsii.member(jsii_name="tags")
205
226
  def tags(self) -> _TagManager_0a598cb3:
@@ -459,7 +480,7 @@ class CfnIPSetProps:
459
480
  )
460
481
 
461
482
 
462
- @jsii.implements(_IInspectable_c2943556)
483
+ @jsii.implements(_IInspectable_c2943556, _ILoggingConfigurationRef_d8299b46)
463
484
  class CfnLoggingConfiguration(
464
485
  _CfnResource_9df397a6,
465
486
  metaclass=jsii.JSIIMeta,
@@ -531,7 +552,8 @@ class CfnLoggingConfiguration(
531
552
  logging_filter: typing.Any = None,
532
553
  redacted_fields: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnLoggingConfiguration.FieldToMatchProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
533
554
  ) -> None:
534
- '''
555
+ '''Create a new ``AWS::WAFv2::LoggingConfiguration``.
556
+
535
557
  :param scope: Scope in which this resource is defined.
536
558
  :param id: Construct identifier for this resource (unique in its scope).
537
559
  :param log_destination_configs: The logging destination configuration that you want to associate with the web ACL. .. epigraph:: You can associate one logging destination to a web ACL.
@@ -598,6 +620,12 @@ class CfnLoggingConfiguration(
598
620
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
599
621
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
600
622
 
623
+ @builtins.property
624
+ @jsii.member(jsii_name="loggingConfigurationRef")
625
+ def logging_configuration_ref(self) -> _LoggingConfigurationReference_1cb27b11:
626
+ '''A reference to a LoggingConfiguration resource.'''
627
+ return typing.cast(_LoggingConfigurationReference_1cb27b11, jsii.get(self, "loggingConfigurationRef"))
628
+
601
629
  @builtins.property
602
630
  @jsii.member(jsii_name="logDestinationConfigs")
603
631
  def log_destination_configs(self) -> typing.List[builtins.str]:
@@ -1547,7 +1575,7 @@ class CfnLoggingConfigurationProps:
1547
1575
  )
1548
1576
 
1549
1577
 
1550
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
1578
+ @jsii.implements(_IInspectable_c2943556, _IRegexPatternSetRef_4af57c5a, _ITaggable_36806126)
1551
1579
  class CfnRegexPatternSet(
1552
1580
  _CfnResource_9df397a6,
1553
1581
  metaclass=jsii.JSIIMeta,
@@ -1598,7 +1626,8 @@ class CfnRegexPatternSet(
1598
1626
  name: typing.Optional[builtins.str] = None,
1599
1627
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1600
1628
  ) -> None:
1601
- '''
1629
+ '''Create a new ``AWS::WAFv2::RegexPatternSet``.
1630
+
1602
1631
  :param scope_: Scope in which this resource is defined.
1603
1632
  :param id: Construct identifier for this resource (unique in its scope).
1604
1633
  :param regular_expression_list: The regular expression patterns in the set.
@@ -1674,6 +1703,12 @@ class CfnRegexPatternSet(
1674
1703
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
1675
1704
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
1676
1705
 
1706
+ @builtins.property
1707
+ @jsii.member(jsii_name="regexPatternSetRef")
1708
+ def regex_pattern_set_ref(self) -> _RegexPatternSetReference_247d9777:
1709
+ '''A reference to a RegexPatternSet resource.'''
1710
+ return typing.cast(_RegexPatternSetReference_247d9777, jsii.get(self, "regexPatternSetRef"))
1711
+
1677
1712
  @builtins.property
1678
1713
  @jsii.member(jsii_name="tags")
1679
1714
  def tags(self) -> _TagManager_0a598cb3:
@@ -1886,7 +1921,7 @@ class CfnRegexPatternSetProps:
1886
1921
  )
1887
1922
 
1888
1923
 
1889
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
1924
+ @jsii.implements(_IInspectable_c2943556, _IRuleGroupRef_42ed609b, _ITaggable_36806126)
1890
1925
  class CfnRuleGroup(
1891
1926
  _CfnResource_9df397a6,
1892
1927
  metaclass=jsii.JSIIMeta,
@@ -1927,7 +1962,8 @@ class CfnRuleGroup(
1927
1962
  rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.RuleProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
1928
1963
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1929
1964
  ) -> None:
1930
- '''
1965
+ '''Create a new ``AWS::WAFv2::RuleGroup``.
1966
+
1931
1967
  :param scope_: Scope in which this resource is defined.
1932
1968
  :param id: Construct identifier for this resource (unique in its scope).
1933
1969
  :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.
@@ -2028,6 +2064,12 @@ class CfnRuleGroup(
2028
2064
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
2029
2065
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
2030
2066
 
2067
+ @builtins.property
2068
+ @jsii.member(jsii_name="ruleGroupRef")
2069
+ def rule_group_ref(self) -> _RuleGroupReference_f7804c21:
2070
+ '''A reference to a RuleGroup resource.'''
2071
+ return typing.cast(_RuleGroupReference_f7804c21, jsii.get(self, "ruleGroupRef"))
2072
+
2031
2073
  @builtins.property
2032
2074
  @jsii.member(jsii_name="tags")
2033
2075
  def tags(self) -> _TagManager_0a598cb3:
@@ -2280,6 +2322,7 @@ class CfnRuleGroup(
2280
2322
  # all: Any
2281
2323
  # all_query_arguments: Any
2282
2324
  # and_statement_property_: wafv2.CfnRuleGroup.AndStatementProperty
2325
+ # asn: Any
2283
2326
  # forwarded_ip: Any
2284
2327
  # http_method: Any
2285
2328
  # ip: Any
@@ -2293,6 +2336,13 @@ class CfnRuleGroup(
2293
2336
  and_statement_property = wafv2.CfnRuleGroup.AndStatementProperty(
2294
2337
  statements=[wafv2.CfnRuleGroup.StatementProperty(
2295
2338
  and_statement=and_statement_property_,
2339
+ asn_match_statement=wafv2.CfnRuleGroup.AsnMatchStatementProperty(
2340
+ asn_list=[123],
2341
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
2342
+ fallback_behavior="fallbackBehavior",
2343
+ header_name="headerName"
2344
+ )
2345
+ ),
2296
2346
  byte_match_statement=wafv2.CfnRuleGroup.ByteMatchStatementProperty(
2297
2347
  field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
2298
2348
  all_query_arguments=all_query_arguments,
@@ -2386,6 +2436,7 @@ class CfnRuleGroup(
2386
2436
 
2387
2437
  # the properties below are optional
2388
2438
  custom_keys=[wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
2439
+ asn=asn,
2389
2440
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
2390
2441
  name="name",
2391
2442
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -2756,6 +2807,92 @@ class CfnRuleGroup(
2756
2807
  k + "=" + repr(v) for k, v in self._values.items()
2757
2808
  )
2758
2809
 
2810
+ @jsii.data_type(
2811
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.AsnMatchStatementProperty",
2812
+ jsii_struct_bases=[],
2813
+ name_mapping={
2814
+ "asn_list": "asnList",
2815
+ "forwarded_ip_config": "forwardedIpConfig",
2816
+ },
2817
+ )
2818
+ class AsnMatchStatementProperty:
2819
+ def __init__(
2820
+ self,
2821
+ *,
2822
+ asn_list: typing.Optional[typing.Union[typing.Sequence[jsii.Number], _IResolvable_da3f097b]] = None,
2823
+ forwarded_ip_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.ForwardedIPConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2824
+ ) -> None:
2825
+ '''A rule statement that inspects web traffic based on the Autonomous System Number (ASN) associated with the request's IP address.
2826
+
2827
+ For additional details, see `ASN match rule statement <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-asn-match.html>`_ in the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`_ .
2828
+
2829
+ :param asn_list: Contains one or more Autonomous System Numbers (ASNs). ASNs are unique identifiers assigned to large internet networks managed by organizations such as internet service providers, enterprises, universities, or government agencies.
2830
+ :param forwarded_ip_config: The configuration for inspecting IP addresses to match against an ASN in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name.
2831
+
2832
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-asnmatchstatement.html
2833
+ :exampleMetadata: fixture=_generated
2834
+
2835
+ Example::
2836
+
2837
+ # The code below shows an example of how to instantiate this type.
2838
+ # The values are placeholders you should change.
2839
+ from aws_cdk import aws_wafv2 as wafv2
2840
+
2841
+ asn_match_statement_property = wafv2.CfnRuleGroup.AsnMatchStatementProperty(
2842
+ asn_list=[123],
2843
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
2844
+ fallback_behavior="fallbackBehavior",
2845
+ header_name="headerName"
2846
+ )
2847
+ )
2848
+ '''
2849
+ if __debug__:
2850
+ type_hints = typing.get_type_hints(_typecheckingstub__1b7bfd70c769fabe423acc42aa4ce7a934b8907c56a69421327294c209c8da78)
2851
+ check_type(argname="argument asn_list", value=asn_list, expected_type=type_hints["asn_list"])
2852
+ check_type(argname="argument forwarded_ip_config", value=forwarded_ip_config, expected_type=type_hints["forwarded_ip_config"])
2853
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
2854
+ if asn_list is not None:
2855
+ self._values["asn_list"] = asn_list
2856
+ if forwarded_ip_config is not None:
2857
+ self._values["forwarded_ip_config"] = forwarded_ip_config
2858
+
2859
+ @builtins.property
2860
+ def asn_list(
2861
+ self,
2862
+ ) -> typing.Optional[typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b]]:
2863
+ '''Contains one or more Autonomous System Numbers (ASNs).
2864
+
2865
+ ASNs are unique identifiers assigned to large internet networks managed by organizations such as internet service providers, enterprises, universities, or government agencies.
2866
+
2867
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-asnmatchstatement.html#cfn-wafv2-rulegroup-asnmatchstatement-asnlist
2868
+ '''
2869
+ result = self._values.get("asn_list")
2870
+ return typing.cast(typing.Optional[typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b]], result)
2871
+
2872
+ @builtins.property
2873
+ def forwarded_ip_config(
2874
+ self,
2875
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.ForwardedIPConfigurationProperty"]]:
2876
+ '''The configuration for inspecting IP addresses to match against an ASN in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin.
2877
+
2878
+ Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name.
2879
+
2880
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-asnmatchstatement.html#cfn-wafv2-rulegroup-asnmatchstatement-forwardedipconfig
2881
+ '''
2882
+ result = self._values.get("forwarded_ip_config")
2883
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.ForwardedIPConfigurationProperty"]], result)
2884
+
2885
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
2886
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
2887
+
2888
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
2889
+ return not (rhs == self)
2890
+
2891
+ def __repr__(self) -> str:
2892
+ return "AsnMatchStatementProperty(%s)" % ", ".join(
2893
+ k + "=" + repr(v) for k, v in self._values.items()
2894
+ )
2895
+
2759
2896
  @jsii.data_type(
2760
2897
  jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.BlockProperty",
2761
2898
  jsii_struct_bases=[],
@@ -4377,7 +4514,7 @@ class CfnRuleGroup(
4377
4514
 
4378
4515
  If the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all.
4379
4516
 
4380
- This configuration is used for ``GeoMatchStatement`` and ``RateBasedStatement`` . For ``IPSetReferenceStatement`` , use ``IPSetForwardedIPConfig`` instead.
4517
+ This configuration is used for ``GeoMatchStatement`` , ``AsnMatchStatement`` , and ``RateBasedStatement`` . For ``IPSetReferenceStatement`` , use ``IPSetForwardedIPConfig`` instead.
4381
4518
 
4382
4519
  AWS WAF only evaluates the first IP address found in the specified HTTP header.
4383
4520
 
@@ -5615,6 +5752,7 @@ class CfnRuleGroup(
5615
5752
 
5616
5753
  # all: Any
5617
5754
  # all_query_arguments: Any
5755
+ # asn: Any
5618
5756
  # forwarded_ip: Any
5619
5757
  # http_method: Any
5620
5758
  # ip: Any
@@ -5631,6 +5769,13 @@ class CfnRuleGroup(
5631
5769
  and_statement=wafv2.CfnRuleGroup.AndStatementProperty(
5632
5770
  statements=[statement_property_]
5633
5771
  ),
5772
+ asn_match_statement=wafv2.CfnRuleGroup.AsnMatchStatementProperty(
5773
+ asn_list=[123],
5774
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
5775
+ fallback_behavior="fallbackBehavior",
5776
+ header_name="headerName"
5777
+ )
5778
+ ),
5634
5779
  byte_match_statement=wafv2.CfnRuleGroup.ByteMatchStatementProperty(
5635
5780
  field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
5636
5781
  all_query_arguments=all_query_arguments,
@@ -5722,6 +5867,7 @@ class CfnRuleGroup(
5722
5867
 
5723
5868
  # the properties below are optional
5724
5869
  custom_keys=[wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
5870
+ asn=asn,
5725
5871
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
5726
5872
  name="name",
5727
5873
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -6120,6 +6266,7 @@ class CfnRuleGroup(
6120
6266
 
6121
6267
  # all: Any
6122
6268
  # all_query_arguments: Any
6269
+ # asn: Any
6123
6270
  # forwarded_ip: Any
6124
6271
  # http_method: Any
6125
6272
  # ip: Any
@@ -6136,6 +6283,13 @@ class CfnRuleGroup(
6136
6283
  and_statement=wafv2.CfnRuleGroup.AndStatementProperty(
6137
6284
  statements=[statement_property_]
6138
6285
  ),
6286
+ asn_match_statement=wafv2.CfnRuleGroup.AsnMatchStatementProperty(
6287
+ asn_list=[123],
6288
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
6289
+ fallback_behavior="fallbackBehavior",
6290
+ header_name="headerName"
6291
+ )
6292
+ ),
6139
6293
  byte_match_statement=wafv2.CfnRuleGroup.ByteMatchStatementProperty(
6140
6294
  field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
6141
6295
  all_query_arguments=all_query_arguments,
@@ -6227,6 +6381,7 @@ class CfnRuleGroup(
6227
6381
 
6228
6382
  # the properties below are optional
6229
6383
  custom_keys=[wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
6384
+ asn=asn,
6230
6385
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
6231
6386
  name="name",
6232
6387
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -6601,6 +6756,7 @@ class CfnRuleGroup(
6601
6756
  jsii_type="aws-cdk-lib.aws_wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty",
6602
6757
  jsii_struct_bases=[],
6603
6758
  name_mapping={
6759
+ "asn": "asn",
6604
6760
  "cookie": "cookie",
6605
6761
  "forwarded_ip": "forwardedIp",
6606
6762
  "header": "header",
@@ -6618,6 +6774,7 @@ class CfnRuleGroup(
6618
6774
  def __init__(
6619
6775
  self,
6620
6776
  *,
6777
+ asn: typing.Any = None,
6621
6778
  cookie: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.RateLimitCookieProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6622
6779
  forwarded_ip: typing.Any = None,
6623
6780
  header: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.RateLimitHeaderProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -6636,6 +6793,7 @@ class CfnRuleGroup(
6636
6793
 
6637
6794
  Web requests that are missing any of the components specified in the aggregation keys are omitted from the rate-based rule evaluation and handling.
6638
6795
 
6796
+ :param asn: Use an Autonomous System Number (ASN) derived from the request's originating or forwarded IP address as an aggregate key. Each distinct ASN contributes to the aggregation instance.
6639
6797
  :param cookie: Use the value of a cookie in the request as an aggregate key. Each distinct value in the cookie contributes to the aggregation instance. If you use a single cookie as your custom key, then each value fully defines an aggregation instance.
6640
6798
  :param forwarded_ip: Use the first IP address in an HTTP header as an aggregate key. Each distinct forwarded IP address contributes to the aggregation instance. When you specify an IP or forwarded IP in the custom key settings, you must also specify at least one other key to use. You can aggregate on only the forwarded IP address by specifying ``FORWARDED_IP`` in your rate-based statement's ``AggregateKeyType`` . With this option, you must specify the header to use in the rate-based rule's ``ForwardedIPConfig`` property.
6641
6799
  :param header: Use the value of a header in the request as an aggregate key. Each distinct value in the header contributes to the aggregation instance. If you use a single header as your custom key, then each value fully defines an aggregation instance.
@@ -6657,11 +6815,13 @@ class CfnRuleGroup(
6657
6815
  # The values are placeholders you should change.
6658
6816
  from aws_cdk import aws_wafv2 as wafv2
6659
6817
 
6818
+ # asn: Any
6660
6819
  # forwarded_ip: Any
6661
6820
  # http_method: Any
6662
6821
  # ip: Any
6663
6822
 
6664
6823
  rate_based_statement_custom_key_property = wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
6824
+ asn=asn,
6665
6825
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
6666
6826
  name="name",
6667
6827
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -6711,6 +6871,7 @@ class CfnRuleGroup(
6711
6871
  '''
6712
6872
  if __debug__:
6713
6873
  type_hints = typing.get_type_hints(_typecheckingstub__6bc232408309212f7b145d76c0106073269f111e106ab6d74a4d2168f41f248b)
6874
+ check_type(argname="argument asn", value=asn, expected_type=type_hints["asn"])
6714
6875
  check_type(argname="argument cookie", value=cookie, expected_type=type_hints["cookie"])
6715
6876
  check_type(argname="argument forwarded_ip", value=forwarded_ip, expected_type=type_hints["forwarded_ip"])
6716
6877
  check_type(argname="argument header", value=header, expected_type=type_hints["header"])
@@ -6723,6 +6884,8 @@ class CfnRuleGroup(
6723
6884
  check_type(argname="argument query_string", value=query_string, expected_type=type_hints["query_string"])
6724
6885
  check_type(argname="argument uri_path", value=uri_path, expected_type=type_hints["uri_path"])
6725
6886
  self._values: typing.Dict[builtins.str, typing.Any] = {}
6887
+ if asn is not None:
6888
+ self._values["asn"] = asn
6726
6889
  if cookie is not None:
6727
6890
  self._values["cookie"] = cookie
6728
6891
  if forwarded_ip is not None:
@@ -6746,6 +6909,17 @@ class CfnRuleGroup(
6746
6909
  if uri_path is not None:
6747
6910
  self._values["uri_path"] = uri_path
6748
6911
 
6912
+ @builtins.property
6913
+ def asn(self) -> typing.Any:
6914
+ '''Use an Autonomous System Number (ASN) derived from the request's originating or forwarded IP address as an aggregate key.
6915
+
6916
+ Each distinct ASN contributes to the aggregation instance.
6917
+
6918
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratebasedstatementcustomkey.html#cfn-wafv2-rulegroup-ratebasedstatementcustomkey-asn
6919
+ '''
6920
+ result = self._values.get("asn")
6921
+ return typing.cast(typing.Any, result)
6922
+
6749
6923
  @builtins.property
6750
6924
  def cookie(
6751
6925
  self,
@@ -6986,6 +7160,7 @@ class CfnRuleGroup(
6986
7160
 
6987
7161
  # all: Any
6988
7162
  # all_query_arguments: Any
7163
+ # asn: Any
6989
7164
  # forwarded_ip: Any
6990
7165
  # http_method: Any
6991
7166
  # ip: Any
@@ -7003,6 +7178,7 @@ class CfnRuleGroup(
7003
7178
 
7004
7179
  # the properties below are optional
7005
7180
  custom_keys=[wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
7181
+ asn=asn,
7006
7182
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
7007
7183
  name="name",
7008
7184
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -7058,6 +7234,13 @@ class CfnRuleGroup(
7058
7234
  and_statement=wafv2.CfnRuleGroup.AndStatementProperty(
7059
7235
  statements=[statement_property_]
7060
7236
  ),
7237
+ asn_match_statement=wafv2.CfnRuleGroup.AsnMatchStatementProperty(
7238
+ asn_list=[123],
7239
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
7240
+ fallback_behavior="fallbackBehavior",
7241
+ header_name="headerName"
7242
+ )
7243
+ ),
7061
7244
  byte_match_statement=wafv2.CfnRuleGroup.ByteMatchStatementProperty(
7062
7245
  field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
7063
7246
  all_query_arguments=all_query_arguments,
@@ -8625,6 +8808,7 @@ class CfnRuleGroup(
8625
8808
  # all: Any
8626
8809
  # allow: Any
8627
8810
  # all_query_arguments: Any
8811
+ # asn: Any
8628
8812
  # block: Any
8629
8813
  # captcha: Any
8630
8814
  # challenge: Any
@@ -8646,6 +8830,13 @@ class CfnRuleGroup(
8646
8830
  and_statement=wafv2.CfnRuleGroup.AndStatementProperty(
8647
8831
  statements=[statement_property_]
8648
8832
  ),
8833
+ asn_match_statement=wafv2.CfnRuleGroup.AsnMatchStatementProperty(
8834
+ asn_list=[123],
8835
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
8836
+ fallback_behavior="fallbackBehavior",
8837
+ header_name="headerName"
8838
+ )
8839
+ ),
8649
8840
  byte_match_statement=wafv2.CfnRuleGroup.ByteMatchStatementProperty(
8650
8841
  field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
8651
8842
  all_query_arguments=all_query_arguments,
@@ -8739,6 +8930,7 @@ class CfnRuleGroup(
8739
8930
 
8740
8931
  # the properties below are optional
8741
8932
  custom_keys=[wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
8933
+ asn=asn,
8742
8934
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
8743
8935
  name="name",
8744
8936
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -9721,6 +9913,7 @@ class CfnRuleGroup(
9721
9913
  jsii_struct_bases=[],
9722
9914
  name_mapping={
9723
9915
  "and_statement": "andStatement",
9916
+ "asn_match_statement": "asnMatchStatement",
9724
9917
  "byte_match_statement": "byteMatchStatement",
9725
9918
  "geo_match_statement": "geoMatchStatement",
9726
9919
  "ip_set_reference_statement": "ipSetReferenceStatement",
@@ -9740,6 +9933,7 @@ class CfnRuleGroup(
9740
9933
  self,
9741
9934
  *,
9742
9935
  and_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.AndStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
9936
+ asn_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.AsnMatchStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
9743
9937
  byte_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.ByteMatchStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
9744
9938
  geo_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.GeoMatchStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
9745
9939
  ip_set_reference_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRuleGroup.IPSetReferenceStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -9756,6 +9950,7 @@ class CfnRuleGroup(
9756
9950
  '''The processing guidance for a rule, used by AWS WAF to determine whether a web request matches the rule.
9757
9951
 
9758
9952
  :param and_statement: A logical rule statement used to combine other rule statements with AND logic. You provide more than one ``Statement`` within the ``AndStatement`` .
9953
+ :param asn_match_statement: A rule statement that inspects web traffic based on the Autonomous System Number (ASN) associated with the request's IP address. For additional details, see `ASN match rule statement <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-asn-match.html>`_ in the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`_ .
9759
9954
  :param byte_match_statement: A rule statement that defines a string match search for AWS WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want AWS WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the AWS WAF console and the developer guide, this is called a string match statement.
9760
9955
  :param geo_match_statement: A rule statement that labels web requests by country and region and that matches against web requests based on country code. A geo match rule labels every request that it inspects regardless of whether it finds a match. - To manage requests only by country, you can use this statement by itself and specify the countries that you want to match against in the ``CountryCodes`` array. - Otherwise, configure your geo match rule with Count action so that it only labels requests. Then, add one or more label match rules to run after the geo match rule and configure them to match against the geographic labels and handle the requests as needed. AWS WAF labels requests using the alpha-2 country and region codes from the International Organization for Standardization (ISO) 3166 standard. AWS WAF determines the codes using either the IP address in the web request origin or, if you specify it, the address in the geo match ``ForwardedIPConfig`` . If you use the web request origin, the label formats are ``awswaf:clientip:geo:region:<ISO country code>-<ISO region code>`` and ``awswaf:clientip:geo:country:<ISO country code>`` . If you use a forwarded IP address, the label formats are ``awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code>`` and ``awswaf:forwardedip:geo:country:<ISO country code>`` . For additional details, see `Geographic match rule statement <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-geo-match.html>`_ in the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`_ .
9761
9956
  :param ip_set_reference_statement: A rule statement used to detect web requests coming from particular IP addresses or address ranges. To use this, create an ``IPSet`` that specifies the addresses you want to detect, then use the ARN of that set in this statement. Each IP set rule statement references an IP 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.
@@ -9780,6 +9975,7 @@ class CfnRuleGroup(
9780
9975
 
9781
9976
  # all: Any
9782
9977
  # all_query_arguments: Any
9978
+ # asn: Any
9783
9979
  # forwarded_ip: Any
9784
9980
  # http_method: Any
9785
9981
  # ip: Any
@@ -9794,6 +9990,13 @@ class CfnRuleGroup(
9794
9990
  and_statement=wafv2.CfnRuleGroup.AndStatementProperty(
9795
9991
  statements=[statement_property_]
9796
9992
  ),
9993
+ asn_match_statement=wafv2.CfnRuleGroup.AsnMatchStatementProperty(
9994
+ asn_list=[123],
9995
+ forwarded_ip_config=wafv2.CfnRuleGroup.ForwardedIPConfigurationProperty(
9996
+ fallback_behavior="fallbackBehavior",
9997
+ header_name="headerName"
9998
+ )
9999
+ ),
9797
10000
  byte_match_statement=wafv2.CfnRuleGroup.ByteMatchStatementProperty(
9798
10001
  field_to_match=wafv2.CfnRuleGroup.FieldToMatchProperty(
9799
10002
  all_query_arguments=all_query_arguments,
@@ -9887,6 +10090,7 @@ class CfnRuleGroup(
9887
10090
 
9888
10091
  # the properties below are optional
9889
10092
  custom_keys=[wafv2.CfnRuleGroup.RateBasedStatementCustomKeyProperty(
10093
+ asn=asn,
9890
10094
  cookie=wafv2.CfnRuleGroup.RateLimitCookieProperty(
9891
10095
  name="name",
9892
10096
  text_transformations=[wafv2.CfnRuleGroup.TextTransformationProperty(
@@ -10227,6 +10431,7 @@ class CfnRuleGroup(
10227
10431
  if __debug__:
10228
10432
  type_hints = typing.get_type_hints(_typecheckingstub__c10bc3e3f69d89ad06f25a44daee62e7de586ae4280e39230f29c24092fe4a4f)
10229
10433
  check_type(argname="argument and_statement", value=and_statement, expected_type=type_hints["and_statement"])
10434
+ check_type(argname="argument asn_match_statement", value=asn_match_statement, expected_type=type_hints["asn_match_statement"])
10230
10435
  check_type(argname="argument byte_match_statement", value=byte_match_statement, expected_type=type_hints["byte_match_statement"])
10231
10436
  check_type(argname="argument geo_match_statement", value=geo_match_statement, expected_type=type_hints["geo_match_statement"])
10232
10437
  check_type(argname="argument ip_set_reference_statement", value=ip_set_reference_statement, expected_type=type_hints["ip_set_reference_statement"])
@@ -10242,6 +10447,8 @@ class CfnRuleGroup(
10242
10447
  self._values: typing.Dict[builtins.str, typing.Any] = {}
10243
10448
  if and_statement is not None:
10244
10449
  self._values["and_statement"] = and_statement
10450
+ if asn_match_statement is not None:
10451
+ self._values["asn_match_statement"] = asn_match_statement
10245
10452
  if byte_match_statement is not None:
10246
10453
  self._values["byte_match_statement"] = byte_match_statement
10247
10454
  if geo_match_statement is not None:
@@ -10280,6 +10487,19 @@ class CfnRuleGroup(
10280
10487
  result = self._values.get("and_statement")
10281
10488
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.AndStatementProperty"]], result)
10282
10489
 
10490
+ @builtins.property
10491
+ def asn_match_statement(
10492
+ self,
10493
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.AsnMatchStatementProperty"]]:
10494
+ '''A rule statement that inspects web traffic based on the Autonomous System Number (ASN) associated with the request's IP address.
10495
+
10496
+ For additional details, see `ASN match rule statement <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-asn-match.html>`_ in the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`_ .
10497
+
10498
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html#cfn-wafv2-rulegroup-statement-asnmatchstatement
10499
+ '''
10500
+ result = self._values.get("asn_match_statement")
10501
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnRuleGroup.AsnMatchStatementProperty"]], result)
10502
+
10283
10503
  @builtins.property
10284
10504
  def byte_match_statement(
10285
10505
  self,
@@ -11119,7 +11339,7 @@ class CfnRuleGroupProps:
11119
11339
  )
11120
11340
 
11121
11341
 
11122
- @jsii.implements(_IInspectable_c2943556, _ITaggable_36806126)
11342
+ @jsii.implements(_IInspectable_c2943556, _IWebACLRef_3dd0843c, _ITaggable_36806126)
11123
11343
  class CfnWebACL(
11124
11344
  _CfnResource_9df397a6,
11125
11345
  metaclass=jsii.JSIIMeta,
@@ -11166,6 +11386,7 @@ class CfnWebACL(
11166
11386
  default_action: typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.DefaultActionProperty", typing.Dict[builtins.str, typing.Any]]],
11167
11387
  scope: builtins.str,
11168
11388
  visibility_config: typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.VisibilityConfigProperty", typing.Dict[builtins.str, typing.Any]]],
11389
+ application_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.ApplicationConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
11169
11390
  association_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.AssociationConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
11170
11391
  captcha_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.CaptchaConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
11171
11392
  challenge_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.ChallengeConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -11173,16 +11394,19 @@ class CfnWebACL(
11173
11394
  data_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.DataProtectionConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
11174
11395
  description: typing.Optional[builtins.str] = None,
11175
11396
  name: typing.Optional[builtins.str] = None,
11397
+ on_source_d_do_s_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.OnSourceDDoSProtectionConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
11176
11398
  rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.RuleProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
11177
11399
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
11178
11400
  token_domains: typing.Optional[typing.Sequence[builtins.str]] = None,
11179
11401
  ) -> None:
11180
- '''
11402
+ '''Create a new ``AWS::WAFv2::WebACL``.
11403
+
11181
11404
  :param scope_: Scope in which this resource is defined.
11182
11405
  :param id: Construct identifier for this resource (unique in its scope).
11183
11406
  :param default_action: The action to perform if none of the ``Rules`` contained in the ``WebACL`` match.
11184
11407
  :param scope: Specifies whether this is for an Amazon CloudFront distribution or for a regional application. For an AWS Amplify application, use ``CLOUDFRONT`` . 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`` . For information about how to define the association of the web ACL with your resource, see ``WebACLAssociation`` .
11185
11408
  :param visibility_config: Defines and enables Amazon CloudWatch metrics and web request sample collection.
11409
+ :param application_config: Returns a list of ``ApplicationAttribute`` s.
11186
11410
  :param association_config: Specifies custom configurations for the associations between the web ACL and protected resources. Use this to customize the maximum size of the request body that your protected resources forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 bytes). .. epigraph:: You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ . For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
11187
11411
  :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`` .
11188
11412
  :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`` .
@@ -11190,6 +11414,7 @@ class CfnWebACL(
11190
11414
  :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.
11191
11415
  :param description: A description of the web ACL that helps with identification.
11192
11416
  :param name: The name of the web ACL. You cannot change the name of a web ACL after you create it.
11417
+ :param on_source_d_do_s_protection_config: Configures the level of DDoS protection that applies to web ACLs associated with Application Load Balancers.
11193
11418
  :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.
11194
11419
  :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.
11195
11420
  :param token_domains: Specifies the domains that AWS WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When AWS WAF provides a token, it uses the domain of the AWS resource that the web ACL is protecting. If you don't specify a list of token domains, AWS WAF accepts tokens only for the domain of the protected resource. With a token domain list, AWS WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.
@@ -11202,6 +11427,7 @@ class CfnWebACL(
11202
11427
  default_action=default_action,
11203
11428
  scope=scope,
11204
11429
  visibility_config=visibility_config,
11430
+ application_config=application_config,
11205
11431
  association_config=association_config,
11206
11432
  captcha_config=captcha_config,
11207
11433
  challenge_config=challenge_config,
@@ -11209,6 +11435,7 @@ class CfnWebACL(
11209
11435
  data_protection_config=data_protection_config,
11210
11436
  description=description,
11211
11437
  name=name,
11438
+ on_source_d_do_s_protection_config=on_source_d_do_s_protection_config,
11212
11439
  rules=rules,
11213
11440
  tags=tags,
11214
11441
  token_domains=token_domains,
@@ -11301,6 +11528,12 @@ class CfnWebACL(
11301
11528
  '''Tag Manager which manages the tags for this resource.'''
11302
11529
  return typing.cast(_TagManager_0a598cb3, jsii.get(self, "tags"))
11303
11530
 
11531
+ @builtins.property
11532
+ @jsii.member(jsii_name="webAclRef")
11533
+ def web_acl_ref(self) -> _WebACLReference_21f0435a:
11534
+ '''A reference to a WebACL resource.'''
11535
+ return typing.cast(_WebACLReference_21f0435a, jsii.get(self, "webAclRef"))
11536
+
11304
11537
  @builtins.property
11305
11538
  @jsii.member(jsii_name="defaultAction")
11306
11539
  def default_action(
@@ -11350,6 +11583,24 @@ class CfnWebACL(
11350
11583
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11351
11584
  jsii.set(self, "visibilityConfig", value) # pyright: ignore[reportArgumentType]
11352
11585
 
11586
+ @builtins.property
11587
+ @jsii.member(jsii_name="applicationConfig")
11588
+ def application_config(
11589
+ self,
11590
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.ApplicationConfigProperty"]]:
11591
+ '''Returns a list of ``ApplicationAttribute`` s.'''
11592
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.ApplicationConfigProperty"]], jsii.get(self, "applicationConfig"))
11593
+
11594
+ @application_config.setter
11595
+ def application_config(
11596
+ self,
11597
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.ApplicationConfigProperty"]],
11598
+ ) -> None:
11599
+ if __debug__:
11600
+ type_hints = typing.get_type_hints(_typecheckingstub__ead4c1be355009abdb5c2bef2a7b836cddf9001fdb29e766c4445e21aa5b7091)
11601
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11602
+ jsii.set(self, "applicationConfig", value) # pyright: ignore[reportArgumentType]
11603
+
11353
11604
  @builtins.property
11354
11605
  @jsii.member(jsii_name="associationConfig")
11355
11606
  def association_config(
@@ -11466,6 +11717,24 @@ class CfnWebACL(
11466
11717
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11467
11718
  jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
11468
11719
 
11720
+ @builtins.property
11721
+ @jsii.member(jsii_name="onSourceDDoSProtectionConfig")
11722
+ def on_source_d_do_s_protection_config(
11723
+ self,
11724
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.OnSourceDDoSProtectionConfigProperty"]]:
11725
+ '''Configures the level of DDoS protection that applies to web ACLs associated with Application Load Balancers.'''
11726
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.OnSourceDDoSProtectionConfigProperty"]], jsii.get(self, "onSourceDDoSProtectionConfig"))
11727
+
11728
+ @on_source_d_do_s_protection_config.setter
11729
+ def on_source_d_do_s_protection_config(
11730
+ self,
11731
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.OnSourceDDoSProtectionConfigProperty"]],
11732
+ ) -> None:
11733
+ if __debug__:
11734
+ type_hints = typing.get_type_hints(_typecheckingstub__1180464a1661a74085b880efee37841284ce892adac9d3cda8cb5c117c625ba2)
11735
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11736
+ jsii.set(self, "onSourceDDoSProtectionConfig", value) # pyright: ignore[reportArgumentType]
11737
+
11469
11738
  @builtins.property
11470
11739
  @jsii.member(jsii_name="rules")
11471
11740
  def rules(
@@ -11535,6 +11804,8 @@ class CfnWebACL(
11535
11804
 
11536
11805
  This configuration is used in ``ManagedRuleGroupConfig`` .
11537
11806
 
11807
+ For additional information about this and the other intelligent threat mitigation rule groups, see `Intelligent threat mitigation in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-managed-protections>`_ and `AWS Managed Rules rule groups list <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list>`_ in the *AWS WAF Developer Guide* .
11808
+
11538
11809
  :param creation_path: The path of the account creation endpoint for your application. This is the page on your website that accepts the completed registration form for a new user. This page must accept ``POST`` requests. For example, for the URL ``https://example.com/web/newaccount`` , you would provide the path ``/web/newaccount`` . Account creation page paths that start with the path that you provide are considered a match. For example ``/web/newaccount`` matches the account creation paths ``/web/newaccount`` , ``/web/newaccount/`` , ``/web/newaccountPage`` , and ``/web/newaccount/thisPage`` , but doesn't match the path ``/home/web/newaccount`` or ``/website/newaccount`` .
11539
11810
  :param registration_page_path: The path of the account registration endpoint for your application. This is the page on your website that presents the registration form to new users. .. epigraph:: This page must accept ``GET`` text/html requests. For example, for the URL ``https://example.com/web/registration`` , you would provide the path ``/web/registration`` . Registration page paths that start with the path that you provide are considered a match. For example ``/web/registration`` matches the registration paths ``/web/registration`` , ``/web/registration/`` , ``/web/registrationPage`` , and ``/web/registration/thisPage`` , but doesn't match the path ``/home/web/registration`` or ``/website/registration`` .
11540
11811
  :param request_inspection: The criteria for inspecting account creation requests, used by the ACFP rule group to validate and track account creation attempts.
@@ -11720,6 +11991,8 @@ class CfnWebACL(
11720
11991
 
11721
11992
  This configuration is used in ``ManagedRuleGroupConfig`` .
11722
11993
 
11994
+ For additional information about this and the other intelligent threat mitigation rule groups, see `Intelligent threat mitigation in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-managed-protections>`_ and `AWS Managed Rules rule groups list <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list>`_ in the *AWS WAF Developer Guide* .
11995
+
11723
11996
  :param login_path: The path of the login endpoint for your application. For example, for the URL ``https://example.com/web/login`` , you would provide the path ``/web/login`` . Login paths that start with the path that you provide are considered a match. For example ``/web/login`` matches the login paths ``/web/login`` , ``/web/login/`` , ``/web/loginPage`` , and ``/web/login/thisPage`` , but doesn't match the login path ``/home/web/login`` or ``/website/login`` . The rule group inspects only HTTP ``POST`` requests to your specified login endpoint.
11724
11997
  :param enable_regex_in_path: Allow the use of regular expressions in the login page path.
11725
11998
  :param request_inspection: The criteria for inspecting login requests, used by the ATP rule group to validate credentials usage.
@@ -11850,6 +12123,108 @@ class CfnWebACL(
11850
12123
  k + "=" + repr(v) for k, v in self._values.items()
11851
12124
  )
11852
12125
 
12126
+ @jsii.data_type(
12127
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty",
12128
+ jsii_struct_bases=[],
12129
+ name_mapping={
12130
+ "client_side_action_config": "clientSideActionConfig",
12131
+ "sensitivity_to_block": "sensitivityToBlock",
12132
+ },
12133
+ )
12134
+ class AWSManagedRulesAntiDDoSRuleSetProperty:
12135
+ def __init__(
12136
+ self,
12137
+ *,
12138
+ client_side_action_config: typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.ClientSideActionConfigProperty", typing.Dict[builtins.str, typing.Any]]],
12139
+ sensitivity_to_block: typing.Optional[builtins.str] = None,
12140
+ ) -> None:
12141
+ '''Configures the use of the anti-DDoS managed rule group, ``AWSManagedRulesAntiDDoSRuleSet`` . This configuration is used in ``ManagedRuleGroupConfig`` .
12142
+
12143
+ The configuration that you provide here determines whether and how the rules in the rule group are used.
12144
+
12145
+ For additional information about this and the other intelligent threat mitigation rule groups, see `Intelligent threat mitigation in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-managed-protections>`_ and `AWS Managed Rules rule groups list <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list>`_ in the *AWS WAF Developer Guide* .
12146
+
12147
+ :param client_side_action_config: Configures the request handling that's applied by the managed rule group rules ``ChallengeAllDuringEvent`` and ``ChallengeDDoSRequests`` during a distributed denial of service (DDoS) attack.
12148
+ :param sensitivity_to_block: The sensitivity that the rule group rule ``DDoSRequests`` uses when matching against the DDoS suspicion labeling on a request. The managed rule group adds the labeling during DDoS events, before the ``DDoSRequests`` rule runs. The higher the sensitivity, the more levels of labeling that the rule matches: - Low sensitivity is less sensitive, causing the rule to match only on the most likely participants in an attack, which are the requests with the high suspicion label ``awswaf:managed:aws:anti-ddos:high-suspicion-ddos-request`` . - Medium sensitivity causes the rule to match on the medium and high suspicion labels. - High sensitivity causes the rule to match on all of the suspicion labels: low, medium, and high. Default: ``LOW``
12149
+
12150
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-awsmanagedrulesantiddosruleset.html
12151
+ :exampleMetadata: fixture=_generated
12152
+
12153
+ Example::
12154
+
12155
+ # The code below shows an example of how to instantiate this type.
12156
+ # The values are placeholders you should change.
12157
+ from aws_cdk import aws_wafv2 as wafv2
12158
+
12159
+ a_wSManaged_rules_anti_dDo_sRule_set_property = wafv2.CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty(
12160
+ client_side_action_config=wafv2.CfnWebACL.ClientSideActionConfigProperty(
12161
+ challenge=wafv2.CfnWebACL.ClientSideActionProperty(
12162
+ usage_of_action="usageOfAction",
12163
+
12164
+ # the properties below are optional
12165
+ exempt_uri_regular_expressions=[wafv2.CfnWebACL.RegexProperty(
12166
+ regex_string="regexString"
12167
+ )],
12168
+ sensitivity="sensitivity"
12169
+ )
12170
+ ),
12171
+
12172
+ # the properties below are optional
12173
+ sensitivity_to_block="sensitivityToBlock"
12174
+ )
12175
+ '''
12176
+ if __debug__:
12177
+ type_hints = typing.get_type_hints(_typecheckingstub__9315d92e3528c134a601f6cf9b27df2b90e082b1e29a17eadf8fbf68ac10e8c4)
12178
+ check_type(argname="argument client_side_action_config", value=client_side_action_config, expected_type=type_hints["client_side_action_config"])
12179
+ check_type(argname="argument sensitivity_to_block", value=sensitivity_to_block, expected_type=type_hints["sensitivity_to_block"])
12180
+ self._values: typing.Dict[builtins.str, typing.Any] = {
12181
+ "client_side_action_config": client_side_action_config,
12182
+ }
12183
+ if sensitivity_to_block is not None:
12184
+ self._values["sensitivity_to_block"] = sensitivity_to_block
12185
+
12186
+ @builtins.property
12187
+ def client_side_action_config(
12188
+ self,
12189
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnWebACL.ClientSideActionConfigProperty"]:
12190
+ '''Configures the request handling that's applied by the managed rule group rules ``ChallengeAllDuringEvent`` and ``ChallengeDDoSRequests`` during a distributed denial of service (DDoS) attack.
12191
+
12192
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-awsmanagedrulesantiddosruleset.html#cfn-wafv2-webacl-awsmanagedrulesantiddosruleset-clientsideactionconfig
12193
+ '''
12194
+ result = self._values.get("client_side_action_config")
12195
+ assert result is not None, "Required property 'client_side_action_config' is missing"
12196
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnWebACL.ClientSideActionConfigProperty"], result)
12197
+
12198
+ @builtins.property
12199
+ def sensitivity_to_block(self) -> typing.Optional[builtins.str]:
12200
+ '''The sensitivity that the rule group rule ``DDoSRequests`` uses when matching against the DDoS suspicion labeling on a request.
12201
+
12202
+ The managed rule group adds the labeling during DDoS events, before the ``DDoSRequests`` rule runs.
12203
+
12204
+ The higher the sensitivity, the more levels of labeling that the rule matches:
12205
+
12206
+ - Low sensitivity is less sensitive, causing the rule to match only on the most likely participants in an attack, which are the requests with the high suspicion label ``awswaf:managed:aws:anti-ddos:high-suspicion-ddos-request`` .
12207
+ - Medium sensitivity causes the rule to match on the medium and high suspicion labels.
12208
+ - High sensitivity causes the rule to match on all of the suspicion labels: low, medium, and high.
12209
+
12210
+ Default: ``LOW``
12211
+
12212
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-awsmanagedrulesantiddosruleset.html#cfn-wafv2-webacl-awsmanagedrulesantiddosruleset-sensitivitytoblock
12213
+ '''
12214
+ result = self._values.get("sensitivity_to_block")
12215
+ return typing.cast(typing.Optional[builtins.str], result)
12216
+
12217
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12218
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12219
+
12220
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12221
+ return not (rhs == self)
12222
+
12223
+ def __repr__(self) -> str:
12224
+ return "AWSManagedRulesAntiDDoSRuleSetProperty(%s)" % ", ".join(
12225
+ k + "=" + repr(v) for k, v in self._values.items()
12226
+ )
12227
+
11853
12228
  @jsii.data_type(
11854
12229
  jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.AWSManagedRulesBotControlRuleSetProperty",
11855
12230
  jsii_struct_bases=[],
@@ -11869,6 +12244,8 @@ class CfnWebACL(
11869
12244
 
11870
12245
  This configuration is used in ``ManagedRuleGroupConfig`` .
11871
12246
 
12247
+ For additional information about this and the other intelligent threat mitigation rule groups, see `Intelligent threat mitigation in AWS WAF <https://docs.aws.amazon.com/waf/latest/developerguide/waf-managed-protections>`_ and `AWS Managed Rules rule groups list <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list>`_ in the *AWS WAF Developer Guide* .
12248
+
11872
12249
  :param inspection_level: The inspection level to use for the Bot Control rule group. The common level is the least expensive. The targeted level includes all common level rules and adds rules with more advanced inspection criteria. For details, see `AWS WAF Bot Control rule group <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html>`_ in the *AWS WAF Developer Guide* .
11873
12250
  :param enable_machine_learning: Applies only to the targeted inspection level. Determines whether to use machine learning (ML) to analyze your web traffic for bot-related activity. Machine learning is required for the Bot Control rules ``TGT_ML_CoordinatedActivityLow`` and ``TGT_ML_CoordinatedActivityMedium`` , which inspect for anomalous behavior that might indicate distributed, coordinated bot activity. For more information about this choice, see the listing for these rules in the table at `Bot Control rules listing <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html#aws-managed-rule-groups-bot-rules>`_ in the *AWS WAF Developer Guide* . Default: ``TRUE``
11874
12251
 
@@ -12062,28 +12439,25 @@ class CfnWebACL(
12062
12439
  )
12063
12440
 
12064
12441
  @jsii.data_type(
12065
- jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.AssociationConfigProperty",
12442
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.ApplicationAttributeProperty",
12066
12443
  jsii_struct_bases=[],
12067
- name_mapping={"request_body": "requestBody"},
12444
+ name_mapping={"name": "name", "values": "values"},
12068
12445
  )
12069
- class AssociationConfigProperty:
12446
+ class ApplicationAttributeProperty:
12070
12447
  def __init__(
12071
12448
  self,
12072
12449
  *,
12073
- request_body: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
12450
+ name: builtins.str,
12451
+ values: typing.Sequence[builtins.str],
12074
12452
  ) -> None:
12075
- '''Specifies custom configurations for the associations between the web ACL and protected resources.
12453
+ '''Application details defined during the web ACL creation process.
12076
12454
 
12077
- Use this to customize the maximum size of the request body that your protected resources forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 bytes).
12078
- .. epigraph::
12079
-
12080
- You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ .
12455
+ Application attributes help AWS WAF give recommendations for protection packs.
12081
12456
 
12082
- For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
12083
-
12084
- :param request_body: Customizes the maximum size of the request body that your protected CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access resources forward to AWS WAF for inspection. The default size is 16 KB (16,384 bytes). You can change the setting for any of the available resource types. .. epigraph:: You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ . Example JSON: ``{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }`` For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
12457
+ :param name: Specifies the attribute name.
12458
+ :param values: Specifies the attribute value.
12085
12459
 
12086
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-associationconfig.html
12460
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-applicationattribute.html
12087
12461
  :exampleMetadata: fixture=_generated
12088
12462
 
12089
12463
  Example::
@@ -12092,40 +12466,39 @@ class CfnWebACL(
12092
12466
  # The values are placeholders you should change.
12093
12467
  from aws_cdk import aws_wafv2 as wafv2
12094
12468
 
12095
- association_config_property = wafv2.CfnWebACL.AssociationConfigProperty(
12096
- request_body={
12097
- "request_body_key": wafv2.CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty(
12098
- default_size_inspection_limit="defaultSizeInspectionLimit"
12099
- )
12100
- }
12469
+ application_attribute_property = wafv2.CfnWebACL.ApplicationAttributeProperty(
12470
+ name="name",
12471
+ values=["values"]
12101
12472
  )
12102
12473
  '''
12103
12474
  if __debug__:
12104
- type_hints = typing.get_type_hints(_typecheckingstub__889bff55ba91160187275a11669025b829161457b27db183745c6a70c6fb0947)
12105
- check_type(argname="argument request_body", value=request_body, expected_type=type_hints["request_body"])
12106
- self._values: typing.Dict[builtins.str, typing.Any] = {}
12107
- if request_body is not None:
12108
- self._values["request_body"] = request_body
12475
+ type_hints = typing.get_type_hints(_typecheckingstub__66f2adaad9f19c44dc2cd5fab5ec44ef266cea6d9b6def3e9dff0bf7e376ee21)
12476
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
12477
+ check_type(argname="argument values", value=values, expected_type=type_hints["values"])
12478
+ self._values: typing.Dict[builtins.str, typing.Any] = {
12479
+ "name": name,
12480
+ "values": values,
12481
+ }
12109
12482
 
12110
12483
  @builtins.property
12111
- def request_body(
12112
- self,
12113
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, "CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty"]]]]:
12114
- '''Customizes the maximum size of the request body that your protected CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access resources forward to AWS WAF for inspection.
12115
-
12116
- The default size is 16 KB (16,384 bytes). You can change the setting for any of the available resource types.
12117
- .. epigraph::
12118
-
12119
- You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ .
12484
+ def name(self) -> builtins.str:
12485
+ '''Specifies the attribute name.
12120
12486
 
12121
- Example JSON: ``{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }``
12487
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-applicationattribute.html#cfn-wafv2-webacl-applicationattribute-name
12488
+ '''
12489
+ result = self._values.get("name")
12490
+ assert result is not None, "Required property 'name' is missing"
12491
+ return typing.cast(builtins.str, result)
12122
12492
 
12123
- For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
12493
+ @builtins.property
12494
+ def values(self) -> typing.List[builtins.str]:
12495
+ '''Specifies the attribute value.
12124
12496
 
12125
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-associationconfig.html#cfn-wafv2-webacl-associationconfig-requestbody
12497
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-applicationattribute.html#cfn-wafv2-webacl-applicationattribute-values
12126
12498
  '''
12127
- result = self._values.get("request_body")
12128
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, "CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty"]]]], result)
12499
+ result = self._values.get("values")
12500
+ assert result is not None, "Required property 'values' is missing"
12501
+ return typing.cast(typing.List[builtins.str], result)
12129
12502
 
12130
12503
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
12131
12504
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -12134,14 +12507,238 @@ class CfnWebACL(
12134
12507
  return not (rhs == self)
12135
12508
 
12136
12509
  def __repr__(self) -> str:
12137
- return "AssociationConfigProperty(%s)" % ", ".join(
12510
+ return "ApplicationAttributeProperty(%s)" % ", ".join(
12138
12511
  k + "=" + repr(v) for k, v in self._values.items()
12139
12512
  )
12140
12513
 
12141
12514
  @jsii.data_type(
12142
- jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.BlockActionProperty",
12515
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.ApplicationConfigProperty",
12143
12516
  jsii_struct_bases=[],
12144
- name_mapping={"custom_response": "customResponse"},
12517
+ name_mapping={"attributes": "attributes"},
12518
+ )
12519
+ class ApplicationConfigProperty:
12520
+ def __init__(
12521
+ self,
12522
+ *,
12523
+ attributes: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.ApplicationAttributeProperty", typing.Dict[builtins.str, typing.Any]]]]],
12524
+ ) -> None:
12525
+ '''A list of ``ApplicationAttribute`` s that contains information about the application.
12526
+
12527
+ :param attributes: Contains the attribute name and a list of values for that attribute.
12528
+
12529
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-applicationconfig.html
12530
+ :exampleMetadata: fixture=_generated
12531
+
12532
+ Example::
12533
+
12534
+ # The code below shows an example of how to instantiate this type.
12535
+ # The values are placeholders you should change.
12536
+ from aws_cdk import aws_wafv2 as wafv2
12537
+
12538
+ application_config_property = wafv2.CfnWebACL.ApplicationConfigProperty(
12539
+ attributes=[wafv2.CfnWebACL.ApplicationAttributeProperty(
12540
+ name="name",
12541
+ values=["values"]
12542
+ )]
12543
+ )
12544
+ '''
12545
+ if __debug__:
12546
+ type_hints = typing.get_type_hints(_typecheckingstub__0c9805d456e58fdf333f88cd7ea47bcd6006aee9ebb8f4f23bd7fa2a03587fbb)
12547
+ check_type(argname="argument attributes", value=attributes, expected_type=type_hints["attributes"])
12548
+ self._values: typing.Dict[builtins.str, typing.Any] = {
12549
+ "attributes": attributes,
12550
+ }
12551
+
12552
+ @builtins.property
12553
+ def attributes(
12554
+ self,
12555
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnWebACL.ApplicationAttributeProperty"]]]:
12556
+ '''Contains the attribute name and a list of values for that attribute.
12557
+
12558
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-applicationconfig.html#cfn-wafv2-webacl-applicationconfig-attributes
12559
+ '''
12560
+ result = self._values.get("attributes")
12561
+ assert result is not None, "Required property 'attributes' is missing"
12562
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnWebACL.ApplicationAttributeProperty"]]], result)
12563
+
12564
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12565
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12566
+
12567
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12568
+ return not (rhs == self)
12569
+
12570
+ def __repr__(self) -> str:
12571
+ return "ApplicationConfigProperty(%s)" % ", ".join(
12572
+ k + "=" + repr(v) for k, v in self._values.items()
12573
+ )
12574
+
12575
+ @jsii.data_type(
12576
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.AsnMatchStatementProperty",
12577
+ jsii_struct_bases=[],
12578
+ name_mapping={
12579
+ "asn_list": "asnList",
12580
+ "forwarded_ip_config": "forwardedIpConfig",
12581
+ },
12582
+ )
12583
+ class AsnMatchStatementProperty:
12584
+ def __init__(
12585
+ self,
12586
+ *,
12587
+ asn_list: typing.Optional[typing.Union[typing.Sequence[jsii.Number], _IResolvable_da3f097b]] = None,
12588
+ forwarded_ip_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.ForwardedIPConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
12589
+ ) -> None:
12590
+ '''A rule statement that inspects web traffic based on the Autonomous System Number (ASN) associated with the request's IP address.
12591
+
12592
+ For additional details, see `ASN match rule statement <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-asn-match.html>`_ in the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`_ .
12593
+
12594
+ :param asn_list: Contains one or more Autonomous System Numbers (ASNs). ASNs are unique identifiers assigned to large internet networks managed by organizations such as internet service providers, enterprises, universities, or government agencies.
12595
+ :param forwarded_ip_config: The configuration for inspecting IP addresses to match against an ASN in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name.
12596
+
12597
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-asnmatchstatement.html
12598
+ :exampleMetadata: fixture=_generated
12599
+
12600
+ Example::
12601
+
12602
+ # The code below shows an example of how to instantiate this type.
12603
+ # The values are placeholders you should change.
12604
+ from aws_cdk import aws_wafv2 as wafv2
12605
+
12606
+ asn_match_statement_property = wafv2.CfnWebACL.AsnMatchStatementProperty(
12607
+ asn_list=[123],
12608
+ forwarded_ip_config=wafv2.CfnWebACL.ForwardedIPConfigurationProperty(
12609
+ fallback_behavior="fallbackBehavior",
12610
+ header_name="headerName"
12611
+ )
12612
+ )
12613
+ '''
12614
+ if __debug__:
12615
+ type_hints = typing.get_type_hints(_typecheckingstub__8995ed18208bf9dcca46075f2ba4072467a8327472896fee5efcf1415648dfe8)
12616
+ check_type(argname="argument asn_list", value=asn_list, expected_type=type_hints["asn_list"])
12617
+ check_type(argname="argument forwarded_ip_config", value=forwarded_ip_config, expected_type=type_hints["forwarded_ip_config"])
12618
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
12619
+ if asn_list is not None:
12620
+ self._values["asn_list"] = asn_list
12621
+ if forwarded_ip_config is not None:
12622
+ self._values["forwarded_ip_config"] = forwarded_ip_config
12623
+
12624
+ @builtins.property
12625
+ def asn_list(
12626
+ self,
12627
+ ) -> typing.Optional[typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b]]:
12628
+ '''Contains one or more Autonomous System Numbers (ASNs).
12629
+
12630
+ ASNs are unique identifiers assigned to large internet networks managed by organizations such as internet service providers, enterprises, universities, or government agencies.
12631
+
12632
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-asnmatchstatement.html#cfn-wafv2-webacl-asnmatchstatement-asnlist
12633
+ '''
12634
+ result = self._values.get("asn_list")
12635
+ return typing.cast(typing.Optional[typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b]], result)
12636
+
12637
+ @builtins.property
12638
+ def forwarded_ip_config(
12639
+ self,
12640
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.ForwardedIPConfigurationProperty"]]:
12641
+ '''The configuration for inspecting IP addresses to match against an ASN in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin.
12642
+
12643
+ Commonly, this is the X-Forwarded-For (XFF) header, but you can specify any header name.
12644
+
12645
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-asnmatchstatement.html#cfn-wafv2-webacl-asnmatchstatement-forwardedipconfig
12646
+ '''
12647
+ result = self._values.get("forwarded_ip_config")
12648
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.ForwardedIPConfigurationProperty"]], result)
12649
+
12650
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12651
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12652
+
12653
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12654
+ return not (rhs == self)
12655
+
12656
+ def __repr__(self) -> str:
12657
+ return "AsnMatchStatementProperty(%s)" % ", ".join(
12658
+ k + "=" + repr(v) for k, v in self._values.items()
12659
+ )
12660
+
12661
+ @jsii.data_type(
12662
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.AssociationConfigProperty",
12663
+ jsii_struct_bases=[],
12664
+ name_mapping={"request_body": "requestBody"},
12665
+ )
12666
+ class AssociationConfigProperty:
12667
+ def __init__(
12668
+ self,
12669
+ *,
12670
+ request_body: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
12671
+ ) -> None:
12672
+ '''Specifies custom configurations for the associations between the web ACL and protected resources.
12673
+
12674
+ Use this to customize the maximum size of the request body that your protected resources forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 bytes).
12675
+ .. epigraph::
12676
+
12677
+ You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ .
12678
+
12679
+ For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
12680
+
12681
+ :param request_body: Customizes the maximum size of the request body that your protected CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access resources forward to AWS WAF for inspection. The default size is 16 KB (16,384 bytes). You can change the setting for any of the available resource types. .. epigraph:: You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ . Example JSON: ``{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }`` For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
12682
+
12683
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-associationconfig.html
12684
+ :exampleMetadata: fixture=_generated
12685
+
12686
+ Example::
12687
+
12688
+ # The code below shows an example of how to instantiate this type.
12689
+ # The values are placeholders you should change.
12690
+ from aws_cdk import aws_wafv2 as wafv2
12691
+
12692
+ association_config_property = wafv2.CfnWebACL.AssociationConfigProperty(
12693
+ request_body={
12694
+ "request_body_key": wafv2.CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty(
12695
+ default_size_inspection_limit="defaultSizeInspectionLimit"
12696
+ )
12697
+ }
12698
+ )
12699
+ '''
12700
+ if __debug__:
12701
+ type_hints = typing.get_type_hints(_typecheckingstub__889bff55ba91160187275a11669025b829161457b27db183745c6a70c6fb0947)
12702
+ check_type(argname="argument request_body", value=request_body, expected_type=type_hints["request_body"])
12703
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
12704
+ if request_body is not None:
12705
+ self._values["request_body"] = request_body
12706
+
12707
+ @builtins.property
12708
+ def request_body(
12709
+ self,
12710
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, "CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty"]]]]:
12711
+ '''Customizes the maximum size of the request body that your protected CloudFront, API Gateway, Amazon Cognito, App Runner, and Verified Access resources forward to AWS WAF for inspection.
12712
+
12713
+ The default size is 16 KB (16,384 bytes). You can change the setting for any of the available resource types.
12714
+ .. epigraph::
12715
+
12716
+ You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ .
12717
+
12718
+ Example JSON: ``{ "API_GATEWAY": "KB_48", "APP_RUNNER_SERVICE": "KB_32" }``
12719
+
12720
+ For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
12721
+
12722
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-associationconfig.html#cfn-wafv2-webacl-associationconfig-requestbody
12723
+ '''
12724
+ result = self._values.get("request_body")
12725
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, "CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty"]]]], result)
12726
+
12727
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12728
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12729
+
12730
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12731
+ return not (rhs == self)
12732
+
12733
+ def __repr__(self) -> str:
12734
+ return "AssociationConfigProperty(%s)" % ", ".join(
12735
+ k + "=" + repr(v) for k, v in self._values.items()
12736
+ )
12737
+
12738
+ @jsii.data_type(
12739
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.BlockActionProperty",
12740
+ jsii_struct_bases=[],
12741
+ name_mapping={"custom_response": "customResponse"},
12145
12742
  )
12146
12743
  class BlockActionProperty:
12147
12744
  def __init__(
@@ -12790,6 +13387,210 @@ class CfnWebACL(
12790
13387
  k + "=" + repr(v) for k, v in self._values.items()
12791
13388
  )
12792
13389
 
13390
+ @jsii.data_type(
13391
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.ClientSideActionConfigProperty",
13392
+ jsii_struct_bases=[],
13393
+ name_mapping={"challenge": "challenge"},
13394
+ )
13395
+ class ClientSideActionConfigProperty:
13396
+ def __init__(
13397
+ self,
13398
+ *,
13399
+ challenge: typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.ClientSideActionProperty", typing.Dict[builtins.str, typing.Any]]],
13400
+ ) -> None:
13401
+ '''This is part of the configuration for the managed rules ``AWSManagedRulesAntiDDoSRuleSet`` in ``ManagedRuleGroupConfig`` .
13402
+
13403
+ :param challenge: Configuration for the use of the ``AWSManagedRulesAntiDDoSRuleSet`` rules ``ChallengeAllDuringEvent`` and ``ChallengeDDoSRequests`` . .. epigraph:: This setting isn't related to the configuration of the ``Challenge`` action itself. It only configures the use of the two anti-DDoS rules named here. You can enable or disable the use of these rules, and you can configure how to use them when they are enabled.
13404
+
13405
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideactionconfig.html
13406
+ :exampleMetadata: fixture=_generated
13407
+
13408
+ Example::
13409
+
13410
+ # The code below shows an example of how to instantiate this type.
13411
+ # The values are placeholders you should change.
13412
+ from aws_cdk import aws_wafv2 as wafv2
13413
+
13414
+ client_side_action_config_property = wafv2.CfnWebACL.ClientSideActionConfigProperty(
13415
+ challenge=wafv2.CfnWebACL.ClientSideActionProperty(
13416
+ usage_of_action="usageOfAction",
13417
+
13418
+ # the properties below are optional
13419
+ exempt_uri_regular_expressions=[wafv2.CfnWebACL.RegexProperty(
13420
+ regex_string="regexString"
13421
+ )],
13422
+ sensitivity="sensitivity"
13423
+ )
13424
+ )
13425
+ '''
13426
+ if __debug__:
13427
+ type_hints = typing.get_type_hints(_typecheckingstub__776e223dfae595baf3dc144792b2d7158c77847ddf24785048d19516ebcb955b)
13428
+ check_type(argname="argument challenge", value=challenge, expected_type=type_hints["challenge"])
13429
+ self._values: typing.Dict[builtins.str, typing.Any] = {
13430
+ "challenge": challenge,
13431
+ }
13432
+
13433
+ @builtins.property
13434
+ def challenge(
13435
+ self,
13436
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnWebACL.ClientSideActionProperty"]:
13437
+ '''Configuration for the use of the ``AWSManagedRulesAntiDDoSRuleSet`` rules ``ChallengeAllDuringEvent`` and ``ChallengeDDoSRequests`` .
13438
+
13439
+ .. epigraph::
13440
+
13441
+ This setting isn't related to the configuration of the ``Challenge`` action itself. It only configures the use of the two anti-DDoS rules named here.
13442
+
13443
+ You can enable or disable the use of these rules, and you can configure how to use them when they are enabled.
13444
+
13445
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideactionconfig.html#cfn-wafv2-webacl-clientsideactionconfig-challenge
13446
+ '''
13447
+ result = self._values.get("challenge")
13448
+ assert result is not None, "Required property 'challenge' is missing"
13449
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnWebACL.ClientSideActionProperty"], result)
13450
+
13451
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
13452
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
13453
+
13454
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
13455
+ return not (rhs == self)
13456
+
13457
+ def __repr__(self) -> str:
13458
+ return "ClientSideActionConfigProperty(%s)" % ", ".join(
13459
+ k + "=" + repr(v) for k, v in self._values.items()
13460
+ )
13461
+
13462
+ @jsii.data_type(
13463
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.ClientSideActionProperty",
13464
+ jsii_struct_bases=[],
13465
+ name_mapping={
13466
+ "usage_of_action": "usageOfAction",
13467
+ "exempt_uri_regular_expressions": "exemptUriRegularExpressions",
13468
+ "sensitivity": "sensitivity",
13469
+ },
13470
+ )
13471
+ class ClientSideActionProperty:
13472
+ def __init__(
13473
+ self,
13474
+ *,
13475
+ usage_of_action: builtins.str,
13476
+ exempt_uri_regular_expressions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.RegexProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
13477
+ sensitivity: typing.Optional[builtins.str] = None,
13478
+ ) -> None:
13479
+ '''This is part of the ``AWSManagedRulesAntiDDoSRuleSet`` ``ClientSideActionConfig`` configuration in ``ManagedRuleGroupConfig`` .
13480
+
13481
+ :param usage_of_action: Determines whether to use the ``AWSManagedRulesAntiDDoSRuleSet`` rules ``ChallengeAllDuringEvent`` and ``ChallengeDDoSRequests`` in the rule group evaluation and the related label ``awswaf:managed:aws:anti-ddos:challengeable-request`` . - If usage is enabled: - The managed rule group adds the label ``awswaf:managed:aws:anti-ddos:challengeable-request`` to any web request whose URL does *NOT* match the regular expressions provided in the ``ClientSideAction`` setting ``ExemptUriRegularExpressions`` . - The two rules are evaluated against web requests for protected resources that are experiencing a DDoS attack. The two rules only apply their action to matching requests that have the label ``awswaf:managed:aws:anti-ddos:challengeable-request`` . - If usage is disabled: - The managed rule group doesn't add the label ``awswaf:managed:aws:anti-ddos:challengeable-request`` to any web requests. - The two rules are not evaluated. - None of the other ``ClientSideAction`` settings have any effect. .. epigraph:: This setting only enables or disables the use of the two anti-DDOS rules ``ChallengeAllDuringEvent`` and ``ChallengeDDoSRequests`` in the anti-DDoS managed rule group. This setting doesn't alter the action setting in the two rules. To override the actions used by the rules ``ChallengeAllDuringEvent`` and ``ChallengeDDoSRequests`` , enable this setting, and then override the rule actions in the usual way, in your managed rule group configuration.
13482
+ :param exempt_uri_regular_expressions: The regular expression to match against the web request URI, used to identify requests that can't handle a silent browser challenge. When the ``ClientSideAction`` setting ``UsageOfAction`` is enabled, the managed rule group uses this setting to determine which requests to label with ``awswaf:managed:aws:anti-ddos:challengeable-request`` . If ``UsageOfAction`` is disabled, this setting has no effect and the managed rule group doesn't add the label to any requests. The anti-DDoS managed rule group doesn't evaluate the rules ``ChallengeDDoSRequests`` or ``ChallengeAllDuringEvent`` for web requests whose URIs match this regex. This is true regardless of whether you override the rule action for either of the rules in your web ACL configuration. AWS recommends using a regular expression. This setting is required if ``UsageOfAction`` is set to ``ENABLED`` . If required, you can provide between 1 and 5 regex objects in the array of settings. AWS recommends starting with the following setting. Review and update it for your application's needs: ``\\/api\\/|\\.(acc|avi|css|gif|jpe?g|js|mp[34]|ogg|otf|pdf|png|tiff?|ttf|webm|webp|woff2?)$``
13483
+ :param sensitivity: The sensitivity that the rule group rule ``ChallengeDDoSRequests`` uses when matching against the DDoS suspicion labeling on a request. The managed rule group adds the labeling during DDoS events, before the ``ChallengeDDoSRequests`` rule runs. The higher the sensitivity, the more levels of labeling that the rule matches: - Low sensitivity is less sensitive, causing the rule to match only on the most likely participants in an attack, which are the requests with the high suspicion label ``awswaf:managed:aws:anti-ddos:high-suspicion-ddos-request`` . - Medium sensitivity causes the rule to match on the medium and high suspicion labels. - High sensitivity causes the rule to match on all of the suspicion labels: low, medium, and high. Default: ``HIGH``
13484
+
13485
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideaction.html
13486
+ :exampleMetadata: fixture=_generated
13487
+
13488
+ Example::
13489
+
13490
+ # The code below shows an example of how to instantiate this type.
13491
+ # The values are placeholders you should change.
13492
+ from aws_cdk import aws_wafv2 as wafv2
13493
+
13494
+ client_side_action_property = wafv2.CfnWebACL.ClientSideActionProperty(
13495
+ usage_of_action="usageOfAction",
13496
+
13497
+ # the properties below are optional
13498
+ exempt_uri_regular_expressions=[wafv2.CfnWebACL.RegexProperty(
13499
+ regex_string="regexString"
13500
+ )],
13501
+ sensitivity="sensitivity"
13502
+ )
13503
+ '''
13504
+ if __debug__:
13505
+ type_hints = typing.get_type_hints(_typecheckingstub__de331114f33ba80cf8bd042358ad9467ab930574012abea7782f175fd2a7b649)
13506
+ check_type(argname="argument usage_of_action", value=usage_of_action, expected_type=type_hints["usage_of_action"])
13507
+ check_type(argname="argument exempt_uri_regular_expressions", value=exempt_uri_regular_expressions, expected_type=type_hints["exempt_uri_regular_expressions"])
13508
+ check_type(argname="argument sensitivity", value=sensitivity, expected_type=type_hints["sensitivity"])
13509
+ self._values: typing.Dict[builtins.str, typing.Any] = {
13510
+ "usage_of_action": usage_of_action,
13511
+ }
13512
+ if exempt_uri_regular_expressions is not None:
13513
+ self._values["exempt_uri_regular_expressions"] = exempt_uri_regular_expressions
13514
+ if sensitivity is not None:
13515
+ self._values["sensitivity"] = sensitivity
13516
+
13517
+ @builtins.property
13518
+ def usage_of_action(self) -> builtins.str:
13519
+ '''Determines whether to use the ``AWSManagedRulesAntiDDoSRuleSet`` rules ``ChallengeAllDuringEvent`` and ``ChallengeDDoSRequests`` in the rule group evaluation and the related label ``awswaf:managed:aws:anti-ddos:challengeable-request`` .
13520
+
13521
+ - If usage is enabled:
13522
+ - The managed rule group adds the label ``awswaf:managed:aws:anti-ddos:challengeable-request`` to any web request whose URL does *NOT* match the regular expressions provided in the ``ClientSideAction`` setting ``ExemptUriRegularExpressions`` .
13523
+ - The two rules are evaluated against web requests for protected resources that are experiencing a DDoS attack. The two rules only apply their action to matching requests that have the label ``awswaf:managed:aws:anti-ddos:challengeable-request`` .
13524
+ - If usage is disabled:
13525
+ - The managed rule group doesn't add the label ``awswaf:managed:aws:anti-ddos:challengeable-request`` to any web requests.
13526
+ - The two rules are not evaluated.
13527
+ - None of the other ``ClientSideAction`` settings have any effect.
13528
+
13529
+ .. epigraph::
13530
+
13531
+ This setting only enables or disables the use of the two anti-DDOS rules ``ChallengeAllDuringEvent`` and ``ChallengeDDoSRequests`` in the anti-DDoS managed rule group.
13532
+
13533
+ This setting doesn't alter the action setting in the two rules. To override the actions used by the rules ``ChallengeAllDuringEvent`` and ``ChallengeDDoSRequests`` , enable this setting, and then override the rule actions in the usual way, in your managed rule group configuration.
13534
+
13535
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideaction.html#cfn-wafv2-webacl-clientsideaction-usageofaction
13536
+ '''
13537
+ result = self._values.get("usage_of_action")
13538
+ assert result is not None, "Required property 'usage_of_action' is missing"
13539
+ return typing.cast(builtins.str, result)
13540
+
13541
+ @builtins.property
13542
+ def exempt_uri_regular_expressions(
13543
+ self,
13544
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnWebACL.RegexProperty"]]]]:
13545
+ '''The regular expression to match against the web request URI, used to identify requests that can't handle a silent browser challenge.
13546
+
13547
+ When the ``ClientSideAction`` setting ``UsageOfAction`` is enabled, the managed rule group uses this setting to determine which requests to label with ``awswaf:managed:aws:anti-ddos:challengeable-request`` . If ``UsageOfAction`` is disabled, this setting has no effect and the managed rule group doesn't add the label to any requests.
13548
+
13549
+ The anti-DDoS managed rule group doesn't evaluate the rules ``ChallengeDDoSRequests`` or ``ChallengeAllDuringEvent`` for web requests whose URIs match this regex. This is true regardless of whether you override the rule action for either of the rules in your web ACL configuration.
13550
+
13551
+ AWS recommends using a regular expression.
13552
+
13553
+ This setting is required if ``UsageOfAction`` is set to ``ENABLED`` . If required, you can provide between 1 and 5 regex objects in the array of settings.
13554
+
13555
+ AWS recommends starting with the following setting. Review and update it for your application's needs:
13556
+
13557
+ ``\\/api\\/|\\.(acc|avi|css|gif|jpe?g|js|mp[34]|ogg|otf|pdf|png|tiff?|ttf|webm|webp|woff2?)$``
13558
+
13559
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideaction.html#cfn-wafv2-webacl-clientsideaction-exempturiregularexpressions
13560
+ '''
13561
+ result = self._values.get("exempt_uri_regular_expressions")
13562
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnWebACL.RegexProperty"]]]], result)
13563
+
13564
+ @builtins.property
13565
+ def sensitivity(self) -> typing.Optional[builtins.str]:
13566
+ '''The sensitivity that the rule group rule ``ChallengeDDoSRequests`` uses when matching against the DDoS suspicion labeling on a request.
13567
+
13568
+ The managed rule group adds the labeling during DDoS events, before the ``ChallengeDDoSRequests`` rule runs.
13569
+
13570
+ The higher the sensitivity, the more levels of labeling that the rule matches:
13571
+
13572
+ - Low sensitivity is less sensitive, causing the rule to match only on the most likely participants in an attack, which are the requests with the high suspicion label ``awswaf:managed:aws:anti-ddos:high-suspicion-ddos-request`` .
13573
+ - Medium sensitivity causes the rule to match on the medium and high suspicion labels.
13574
+ - High sensitivity causes the rule to match on all of the suspicion labels: low, medium, and high.
13575
+
13576
+ Default: ``HIGH``
13577
+
13578
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-clientsideaction.html#cfn-wafv2-webacl-clientsideaction-sensitivity
13579
+ '''
13580
+ result = self._values.get("sensitivity")
13581
+ return typing.cast(typing.Optional[builtins.str], result)
13582
+
13583
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
13584
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
13585
+
13586
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
13587
+ return not (rhs == self)
13588
+
13589
+ def __repr__(self) -> str:
13590
+ return "ClientSideActionProperty(%s)" % ", ".join(
13591
+ k + "=" + repr(v) for k, v in self._values.items()
13592
+ )
13593
+
12793
13594
  @jsii.data_type(
12794
13595
  jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.CookieMatchPatternProperty",
12795
13596
  jsii_struct_bases=[],
@@ -14282,7 +15083,7 @@ class CfnWebACL(
14282
15083
 
14283
15084
  If the specified header isn't present in the request, AWS WAF doesn't apply the rule to the web request at all.
14284
15085
 
14285
- This configuration is used for ``GeoMatchStatement`` and ``RateBasedStatement`` . For ``IPSetReferenceStatement`` , use ``IPSetForwardedIPConfig`` instead.
15086
+ This configuration is used for ``GeoMatchStatement`` , ``AsnMatchStatement`` , and ``RateBasedStatement`` . For ``IPSetReferenceStatement`` , use ``IPSetForwardedIPConfig`` instead.
14286
15087
 
14287
15088
  AWS WAF only evaluates the first IP address found in the specified HTTP header.
14288
15089
 
@@ -15441,6 +16242,7 @@ class CfnWebACL(
15441
16242
  jsii_struct_bases=[],
15442
16243
  name_mapping={
15443
16244
  "aws_managed_rules_acfp_rule_set": "awsManagedRulesAcfpRuleSet",
16245
+ "aws_managed_rules_anti_d_do_s_rule_set": "awsManagedRulesAntiDDoSRuleSet",
15444
16246
  "aws_managed_rules_atp_rule_set": "awsManagedRulesAtpRuleSet",
15445
16247
  "aws_managed_rules_bot_control_rule_set": "awsManagedRulesBotControlRuleSet",
15446
16248
  "login_path": "loginPath",
@@ -15454,6 +16256,7 @@ class CfnWebACL(
15454
16256
  self,
15455
16257
  *,
15456
16258
  aws_managed_rules_acfp_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.AWSManagedRulesACFPRuleSetProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
16259
+ aws_managed_rules_anti_d_do_s_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
15457
16260
  aws_managed_rules_atp_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.AWSManagedRulesATPRuleSetProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
15458
16261
  aws_managed_rules_bot_control_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.AWSManagedRulesBotControlRuleSetProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
15459
16262
  login_path: typing.Optional[builtins.str] = None,
@@ -15470,6 +16273,7 @@ class CfnWebACL(
15470
16273
  - Use the ``AWSManagedRulesBotControlRuleSet`` configuration object to configure the protection level that you want the Bot Control rule group to use.
15471
16274
 
15472
16275
  :param aws_managed_rules_acfp_rule_set: Additional configuration for using the account creation fraud prevention (ACFP) managed rule group, ``AWSManagedRulesACFPRuleSet`` . Use this to provide account creation request information to the rule group. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to account creation requests. For information about using the ACFP managed rule group, see `AWS WAF Fraud Control account creation fraud prevention (ACFP) rule group <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-acfp.html>`_ and `AWS WAF Fraud Control account creation fraud prevention (ACFP) <https://docs.aws.amazon.com/waf/latest/developerguide/waf-acfp.html>`_ in the *AWS WAF Developer Guide* .
16276
+ :param aws_managed_rules_anti_d_do_s_rule_set: Additional configuration for using the anti-DDoS managed rule group, ``AWSManagedRulesAntiDDoSRuleSet`` . Use this to configure anti-DDoS behavior for the rule group. For information about using the anti-DDoS managed rule group, see `AWS WAF Anti-DDoS rule group <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-anti-ddos.html>`_ and `Distributed Denial of Service (DDoS) prevention <https://docs.aws.amazon.com/waf/latest/developerguide/waf-anti-ddos.html>`_ in the *AWS WAF Developer Guide* .
15473
16277
  :param aws_managed_rules_atp_rule_set: Additional configuration for using the account takeover prevention (ATP) managed rule group, ``AWSManagedRulesATPRuleSet`` . Use this to provide login request information to the rule group. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to login requests. This configuration replaces the individual configuration fields in ``ManagedRuleGroupConfig`` and provides additional feature configuration. For information about using the ATP managed rule group, see `AWS WAF Fraud Control account takeover prevention (ATP) rule group <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-atp.html>`_ and `AWS WAF Fraud Control account takeover prevention (ATP) <https://docs.aws.amazon.com/waf/latest/developerguide/waf-atp.html>`_ in the *AWS WAF Developer Guide* .
15474
16278
  :param aws_managed_rules_bot_control_rule_set: Additional configuration for using the Bot Control managed rule group. Use this to specify the inspection level that you want to use. For information about using the Bot Control managed rule group, see `AWS WAF Bot Control rule group <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html>`_ and `AWS WAF Bot Control <https://docs.aws.amazon.com/waf/latest/developerguide/waf-bot-control.html>`_ in the *AWS WAF Developer Guide* .
15475
16279
  :param login_path: .. epigraph:: Instead of this setting, provide your configuration under ``AWSManagedRulesATPRuleSet`` .
@@ -15534,6 +16338,22 @@ class CfnWebACL(
15534
16338
  )
15535
16339
  )
15536
16340
  ),
16341
+ aws_managed_rules_anti_dDo_sRule_set=wafv2.CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty(
16342
+ client_side_action_config=wafv2.CfnWebACL.ClientSideActionConfigProperty(
16343
+ challenge=wafv2.CfnWebACL.ClientSideActionProperty(
16344
+ usage_of_action="usageOfAction",
16345
+
16346
+ # the properties below are optional
16347
+ exempt_uri_regular_expressions=[wafv2.CfnWebACL.RegexProperty(
16348
+ regex_string="regexString"
16349
+ )],
16350
+ sensitivity="sensitivity"
16351
+ )
16352
+ ),
16353
+
16354
+ # the properties below are optional
16355
+ sensitivity_to_block="sensitivityToBlock"
16356
+ ),
15537
16357
  aws_managed_rules_atp_rule_set=wafv2.CfnWebACL.AWSManagedRulesATPRuleSetProperty(
15538
16358
  login_path="loginPath",
15539
16359
 
@@ -15588,6 +16408,7 @@ class CfnWebACL(
15588
16408
  if __debug__:
15589
16409
  type_hints = typing.get_type_hints(_typecheckingstub__517661cb97cc58c609587fc6ca9907b2e23d8f3cd6e1e4034f3f6d82b85d2d77)
15590
16410
  check_type(argname="argument aws_managed_rules_acfp_rule_set", value=aws_managed_rules_acfp_rule_set, expected_type=type_hints["aws_managed_rules_acfp_rule_set"])
16411
+ check_type(argname="argument aws_managed_rules_anti_d_do_s_rule_set", value=aws_managed_rules_anti_d_do_s_rule_set, expected_type=type_hints["aws_managed_rules_anti_d_do_s_rule_set"])
15591
16412
  check_type(argname="argument aws_managed_rules_atp_rule_set", value=aws_managed_rules_atp_rule_set, expected_type=type_hints["aws_managed_rules_atp_rule_set"])
15592
16413
  check_type(argname="argument aws_managed_rules_bot_control_rule_set", value=aws_managed_rules_bot_control_rule_set, expected_type=type_hints["aws_managed_rules_bot_control_rule_set"])
15593
16414
  check_type(argname="argument login_path", value=login_path, expected_type=type_hints["login_path"])
@@ -15597,6 +16418,8 @@ class CfnWebACL(
15597
16418
  self._values: typing.Dict[builtins.str, typing.Any] = {}
15598
16419
  if aws_managed_rules_acfp_rule_set is not None:
15599
16420
  self._values["aws_managed_rules_acfp_rule_set"] = aws_managed_rules_acfp_rule_set
16421
+ if aws_managed_rules_anti_d_do_s_rule_set is not None:
16422
+ self._values["aws_managed_rules_anti_d_do_s_rule_set"] = aws_managed_rules_anti_d_do_s_rule_set
15600
16423
  if aws_managed_rules_atp_rule_set is not None:
15601
16424
  self._values["aws_managed_rules_atp_rule_set"] = aws_managed_rules_atp_rule_set
15602
16425
  if aws_managed_rules_bot_control_rule_set is not None:
@@ -15625,6 +16448,21 @@ class CfnWebACL(
15625
16448
  result = self._values.get("aws_managed_rules_acfp_rule_set")
15626
16449
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.AWSManagedRulesACFPRuleSetProperty"]], result)
15627
16450
 
16451
+ @builtins.property
16452
+ def aws_managed_rules_anti_d_do_s_rule_set(
16453
+ self,
16454
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty"]]:
16455
+ '''Additional configuration for using the anti-DDoS managed rule group, ``AWSManagedRulesAntiDDoSRuleSet`` .
16456
+
16457
+ Use this to configure anti-DDoS behavior for the rule group.
16458
+
16459
+ For information about using the anti-DDoS managed rule group, see `AWS WAF Anti-DDoS rule group <https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-anti-ddos.html>`_ and `Distributed Denial of Service (DDoS) prevention <https://docs.aws.amazon.com/waf/latest/developerguide/waf-anti-ddos.html>`_ in the *AWS WAF Developer Guide* .
16460
+
16461
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-managedrulegroupconfig.html#cfn-wafv2-webacl-managedrulegroupconfig-awsmanagedrulesantiddosruleset
16462
+ '''
16463
+ result = self._values.get("aws_managed_rules_anti_d_do_s_rule_set")
16464
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty"]], result)
16465
+
15628
16466
  @builtins.property
15629
16467
  def aws_managed_rules_atp_rule_set(
15630
16468
  self,
@@ -15751,8 +16589,8 @@ class CfnWebACL(
15751
16589
  :param name: The name of the managed rule group. You use this, along with the vendor name, to identify the rule group.
15752
16590
  :param vendor_name: The name of the managed rule group vendor. You use this, along with the rule group name, to identify a rule group.
15753
16591
  :param excluded_rules: Rules in the referenced rule group whose actions are set to ``Count`` . .. epigraph:: Instead of this option, use ``RuleActionOverrides`` . It accepts any valid action setting, including ``Count`` .
15754
- :param managed_rule_group_configs: Additional information that's used by a managed rule group. Many managed rule groups don't require this. The rule groups used for intelligent threat mitigation require additional configuration: - Use the ``AWSManagedRulesACFPRuleSet`` configuration object to configure the account creation fraud prevention managed rule group. The configuration includes the registration and sign-up pages of your application and the locations in the account creation request payload of data, such as the user email and phone number fields. - Use the ``AWSManagedRulesATPRuleSet`` configuration object to configure the account takeover prevention managed rule group. The configuration includes the sign-in page of your application and the locations in the login request payload of data such as the username and password. - Use the ``AWSManagedRulesBotControlRuleSet`` configuration object to configure the protection level that you want the Bot Control rule group to use.
15755
- :param rule_action_overrides: Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. .. epigraph:: Take care to verify the rule names in your overrides. If you provide a rule name that doesn't match the name of any rule in the rule group, AWS WAF doesn't return an error and doesn't apply the override setting. You can use overrides for testing, for example you can override all of rule actions to ``Count`` and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.
16592
+ :param managed_rule_group_configs: Additional information that's used by a managed rule group. Many managed rule groups don't require this. The rule groups used for intelligent threat mitigation require additional configuration: - Use the ``AWSManagedRulesACFPRuleSet`` configuration object to configure the account creation fraud prevention managed rule group. The configuration includes the registration and sign-up pages of your application and the locations in the account creation request payload of data, such as the user email and phone number fields. - Use the ``AWSManagedRulesAntiDDoSRuleSet`` configuration object to configure the anti-DDoS managed rule group. The configuration includes the sensitivity levels to use in the rules that typically block and challenge requests that might be participating in DDoS attacks and the specification to use to indicate whether a request can handle a silent browser challenge. - Use the ``AWSManagedRulesATPRuleSet`` configuration object to configure the account takeover prevention managed rule group. The configuration includes the sign-in page of your application and the locations in the login request payload of data such as the username and password. - Use the ``AWSManagedRulesBotControlRuleSet`` configuration object to configure the protection level that you want the Bot Control rule group to use.
16593
+ :param rule_action_overrides: Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. .. epigraph:: Verify the rule names in your overrides carefully. With managed rule groups, AWS WAF silently ignores any override that uses an invalid rule name. With customer-owned rule groups, invalid rule names in your overrides will cause web ACL updates to fail. An invalid rule name is any name that doesn't exactly match the case-sensitive name of an existing rule in the rule group. You can use overrides for testing, for example you can override all of rule actions to ``Count`` and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.
15756
16594
  :param scope_down_statement: An optional nested statement that narrows the scope of the web requests that are evaluated by the managed rule group. Requests are only evaluated by the rule group if they match the scope-down statement. You can use any nestable ``Statement`` in the scope-down statement, and you can nest statements at any level, the same as you can for a rule statement.
15757
16595
  :param version: The version of the managed rule group to use. If you specify this, the version setting is fixed until you change it. If you don't specify this, AWS WAF uses the vendor's default version, and then keeps the version at the vendor's default when the vendor updates the managed rule group settings.
15758
16596
 
@@ -15835,6 +16673,7 @@ class CfnWebACL(
15835
16673
  The rule groups used for intelligent threat mitigation require additional configuration:
15836
16674
 
15837
16675
  - Use the ``AWSManagedRulesACFPRuleSet`` configuration object to configure the account creation fraud prevention managed rule group. The configuration includes the registration and sign-up pages of your application and the locations in the account creation request payload of data, such as the user email and phone number fields.
16676
+ - Use the ``AWSManagedRulesAntiDDoSRuleSet`` configuration object to configure the anti-DDoS managed rule group. The configuration includes the sensitivity levels to use in the rules that typically block and challenge requests that might be participating in DDoS attacks and the specification to use to indicate whether a request can handle a silent browser challenge.
15838
16677
  - Use the ``AWSManagedRulesATPRuleSet`` configuration object to configure the account takeover prevention managed rule group. The configuration includes the sign-in page of your application and the locations in the login request payload of data such as the username and password.
15839
16678
  - Use the ``AWSManagedRulesBotControlRuleSet`` configuration object to configure the protection level that you want the Bot Control rule group to use.
15840
16679
 
@@ -15852,7 +16691,7 @@ class CfnWebACL(
15852
16691
  You specify one override for each rule whose action you want to change.
15853
16692
  .. epigraph::
15854
16693
 
15855
- Take care to verify the rule names in your overrides. If you provide a rule name that doesn't match the name of any rule in the rule group, AWS WAF doesn't return an error and doesn't apply the override setting.
16694
+ Verify the rule names in your overrides carefully. With managed rule groups, AWS WAF silently ignores any override that uses an invalid rule name. With customer-owned rule groups, invalid rule names in your overrides will cause web ACL updates to fail. An invalid rule name is any name that doesn't exactly match the case-sensitive name of an existing rule in the rule group.
15856
16695
 
15857
16696
  You can use overrides for testing, for example you can override all of rule actions to ``Count`` and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.
15858
16697
 
@@ -15952,6 +16791,60 @@ class CfnWebACL(
15952
16791
  k + "=" + repr(v) for k, v in self._values.items()
15953
16792
  )
15954
16793
 
16794
+ @jsii.data_type(
16795
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.OnSourceDDoSProtectionConfigProperty",
16796
+ jsii_struct_bases=[],
16797
+ name_mapping={"alb_low_reputation_mode": "albLowReputationMode"},
16798
+ )
16799
+ class OnSourceDDoSProtectionConfigProperty:
16800
+ def __init__(self, *, alb_low_reputation_mode: builtins.str) -> None:
16801
+ '''Configures the level of DDoS protection that applies to web ACLs associated with Application Load Balancers.
16802
+
16803
+ :param alb_low_reputation_mode: The level of DDoS protection that applies to web ACLs associated with Application Load Balancers. ``ACTIVE_UNDER_DDOS`` protection is enabled by default whenever a web ACL is associated with an Application Load Balancer. In the event that an Application Load Balancer experiences high-load conditions or suspected DDoS attacks, the ``ACTIVE_UNDER_DDOS`` protection automatically rate limits traffic from known low reputation sources without disrupting Application Load Balancer availability. ``ALWAYS_ON`` protection provides constant, always-on monitoring of known low reputation sources for suspected DDoS attacks. While this provides a higher level of protection, there may be potential impacts on legitimate traffic.
16804
+
16805
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-onsourceddosprotectionconfig.html
16806
+ :exampleMetadata: fixture=_generated
16807
+
16808
+ Example::
16809
+
16810
+ # The code below shows an example of how to instantiate this type.
16811
+ # The values are placeholders you should change.
16812
+ from aws_cdk import aws_wafv2 as wafv2
16813
+
16814
+ on_source_dDo_sProtection_config_property = wafv2.CfnWebACL.OnSourceDDoSProtectionConfigProperty(
16815
+ alb_low_reputation_mode="albLowReputationMode"
16816
+ )
16817
+ '''
16818
+ if __debug__:
16819
+ type_hints = typing.get_type_hints(_typecheckingstub__b1d55e97c88ee1084655df55da4bb940ea39dc6807c3b4f425073a3a747e0dbc)
16820
+ check_type(argname="argument alb_low_reputation_mode", value=alb_low_reputation_mode, expected_type=type_hints["alb_low_reputation_mode"])
16821
+ self._values: typing.Dict[builtins.str, typing.Any] = {
16822
+ "alb_low_reputation_mode": alb_low_reputation_mode,
16823
+ }
16824
+
16825
+ @builtins.property
16826
+ def alb_low_reputation_mode(self) -> builtins.str:
16827
+ '''The level of DDoS protection that applies to web ACLs associated with Application Load Balancers.
16828
+
16829
+ ``ACTIVE_UNDER_DDOS`` protection is enabled by default whenever a web ACL is associated with an Application Load Balancer. In the event that an Application Load Balancer experiences high-load conditions or suspected DDoS attacks, the ``ACTIVE_UNDER_DDOS`` protection automatically rate limits traffic from known low reputation sources without disrupting Application Load Balancer availability. ``ALWAYS_ON`` protection provides constant, always-on monitoring of known low reputation sources for suspected DDoS attacks. While this provides a higher level of protection, there may be potential impacts on legitimate traffic.
16830
+
16831
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-onsourceddosprotectionconfig.html#cfn-wafv2-webacl-onsourceddosprotectionconfig-alblowreputationmode
16832
+ '''
16833
+ result = self._values.get("alb_low_reputation_mode")
16834
+ assert result is not None, "Required property 'alb_low_reputation_mode' is missing"
16835
+ return typing.cast(builtins.str, result)
16836
+
16837
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
16838
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
16839
+
16840
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
16841
+ return not (rhs == self)
16842
+
16843
+ def __repr__(self) -> str:
16844
+ return "OnSourceDDoSProtectionConfigProperty(%s)" % ", ".join(
16845
+ k + "=" + repr(v) for k, v in self._values.items()
16846
+ )
16847
+
15955
16848
  @jsii.data_type(
15956
16849
  jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.OrStatementProperty",
15957
16850
  jsii_struct_bases=[],
@@ -16098,6 +16991,7 @@ class CfnWebACL(
16098
16991
  jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.RateBasedStatementCustomKeyProperty",
16099
16992
  jsii_struct_bases=[],
16100
16993
  name_mapping={
16994
+ "asn": "asn",
16101
16995
  "cookie": "cookie",
16102
16996
  "forwarded_ip": "forwardedIp",
16103
16997
  "header": "header",
@@ -16115,6 +17009,7 @@ class CfnWebACL(
16115
17009
  def __init__(
16116
17010
  self,
16117
17011
  *,
17012
+ asn: typing.Any = None,
16118
17013
  cookie: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.RateLimitCookieProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
16119
17014
  forwarded_ip: typing.Any = None,
16120
17015
  header: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.RateLimitHeaderProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -16133,6 +17028,7 @@ class CfnWebACL(
16133
17028
 
16134
17029
  Web requests that are missing any of the components specified in the aggregation keys are omitted from the rate-based rule evaluation and handling.
16135
17030
 
17031
+ :param asn: Use an Autonomous System Number (ASN) derived from the request's originating or forwarded IP address as an aggregate key. Each distinct ASN contributes to the aggregation instance.
16136
17032
  :param cookie: Use the value of a cookie in the request as an aggregate key. Each distinct value in the cookie contributes to the aggregation instance. If you use a single cookie as your custom key, then each value fully defines an aggregation instance.
16137
17033
  :param forwarded_ip: Use the first IP address in an HTTP header as an aggregate key. Each distinct forwarded IP address contributes to the aggregation instance. When you specify an IP or forwarded IP in the custom key settings, you must also specify at least one other key to use. You can aggregate on only the forwarded IP address by specifying ``FORWARDED_IP`` in your rate-based statement's ``AggregateKeyType`` . With this option, you must specify the header to use in the rate-based rule's ``ForwardedIPConfig`` property.
16138
17034
  :param header: Use the value of a header in the request as an aggregate key. Each distinct value in the header contributes to the aggregation instance. If you use a single header as your custom key, then each value fully defines an aggregation instance.
@@ -16154,11 +17050,13 @@ class CfnWebACL(
16154
17050
  # The values are placeholders you should change.
16155
17051
  from aws_cdk import aws_wafv2 as wafv2
16156
17052
 
17053
+ # asn: Any
16157
17054
  # forwarded_ip: Any
16158
17055
  # http_method: Any
16159
17056
  # ip: Any
16160
17057
 
16161
17058
  rate_based_statement_custom_key_property = wafv2.CfnWebACL.RateBasedStatementCustomKeyProperty(
17059
+ asn=asn,
16162
17060
  cookie=wafv2.CfnWebACL.RateLimitCookieProperty(
16163
17061
  name="name",
16164
17062
  text_transformations=[wafv2.CfnWebACL.TextTransformationProperty(
@@ -16208,6 +17106,7 @@ class CfnWebACL(
16208
17106
  '''
16209
17107
  if __debug__:
16210
17108
  type_hints = typing.get_type_hints(_typecheckingstub__2edac52bcb13f69d4349ba55a4d083851908f1dd71831794e88ac043e1ade5a3)
17109
+ check_type(argname="argument asn", value=asn, expected_type=type_hints["asn"])
16211
17110
  check_type(argname="argument cookie", value=cookie, expected_type=type_hints["cookie"])
16212
17111
  check_type(argname="argument forwarded_ip", value=forwarded_ip, expected_type=type_hints["forwarded_ip"])
16213
17112
  check_type(argname="argument header", value=header, expected_type=type_hints["header"])
@@ -16220,6 +17119,8 @@ class CfnWebACL(
16220
17119
  check_type(argname="argument query_string", value=query_string, expected_type=type_hints["query_string"])
16221
17120
  check_type(argname="argument uri_path", value=uri_path, expected_type=type_hints["uri_path"])
16222
17121
  self._values: typing.Dict[builtins.str, typing.Any] = {}
17122
+ if asn is not None:
17123
+ self._values["asn"] = asn
16223
17124
  if cookie is not None:
16224
17125
  self._values["cookie"] = cookie
16225
17126
  if forwarded_ip is not None:
@@ -16243,6 +17144,17 @@ class CfnWebACL(
16243
17144
  if uri_path is not None:
16244
17145
  self._values["uri_path"] = uri_path
16245
17146
 
17147
+ @builtins.property
17148
+ def asn(self) -> typing.Any:
17149
+ '''Use an Autonomous System Number (ASN) derived from the request's originating or forwarded IP address as an aggregate key.
17150
+
17151
+ Each distinct ASN contributes to the aggregation instance.
17152
+
17153
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-ratebasedstatementcustomkey.html#cfn-wafv2-webacl-ratebasedstatementcustomkey-asn
17154
+ '''
17155
+ result = self._values.get("asn")
17156
+ return typing.cast(typing.Any, result)
17157
+
16246
17158
  @builtins.property
16247
17159
  def cookie(
16248
17160
  self,
@@ -17479,6 +18391,63 @@ class CfnWebACL(
17479
18391
  k + "=" + repr(v) for k, v in self._values.items()
17480
18392
  )
17481
18393
 
18394
+ @jsii.data_type(
18395
+ jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.RegexProperty",
18396
+ jsii_struct_bases=[],
18397
+ name_mapping={"regex_string": "regexString"},
18398
+ )
18399
+ class RegexProperty:
18400
+ def __init__(
18401
+ self,
18402
+ *,
18403
+ regex_string: typing.Optional[builtins.str] = None,
18404
+ ) -> None:
18405
+ '''A single regular expression.
18406
+
18407
+ This is used in a ``RegexPatternSet`` and also in the configuration for the AWS Managed Rules rule group ``AWSManagedRulesAntiDDoSRuleSet`` .
18408
+
18409
+ :param regex_string: The string representing the regular expression.
18410
+
18411
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-regex.html
18412
+ :exampleMetadata: fixture=_generated
18413
+
18414
+ Example::
18415
+
18416
+ # The code below shows an example of how to instantiate this type.
18417
+ # The values are placeholders you should change.
18418
+ from aws_cdk import aws_wafv2 as wafv2
18419
+
18420
+ regex_property = wafv2.CfnWebACL.RegexProperty(
18421
+ regex_string="regexString"
18422
+ )
18423
+ '''
18424
+ if __debug__:
18425
+ type_hints = typing.get_type_hints(_typecheckingstub__91e754c074f286d30a035b0cb9d25503568a265d4426fe4f4bfc0766c9c71d90)
18426
+ check_type(argname="argument regex_string", value=regex_string, expected_type=type_hints["regex_string"])
18427
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
18428
+ if regex_string is not None:
18429
+ self._values["regex_string"] = regex_string
18430
+
18431
+ @builtins.property
18432
+ def regex_string(self) -> typing.Optional[builtins.str]:
18433
+ '''The string representing the regular expression.
18434
+
18435
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-regex.html#cfn-wafv2-webacl-regex-regexstring
18436
+ '''
18437
+ result = self._values.get("regex_string")
18438
+ return typing.cast(typing.Optional[builtins.str], result)
18439
+
18440
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
18441
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
18442
+
18443
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
18444
+ return not (rhs == self)
18445
+
18446
+ def __repr__(self) -> str:
18447
+ return "RegexProperty(%s)" % ", ".join(
18448
+ k + "=" + repr(v) for k, v in self._values.items()
18449
+ )
18450
+
17482
18451
  @jsii.data_type(
17483
18452
  jsii_type="aws-cdk-lib.aws_wafv2.CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty",
17484
18453
  jsii_struct_bases=[],
@@ -18747,7 +19716,7 @@ class CfnWebACL(
18747
19716
 
18748
19717
  :param arn: The Amazon Resource Name (ARN) of the entity.
18749
19718
  :param excluded_rules: Rules in the referenced rule group whose actions are set to ``Count`` . .. epigraph:: Instead of this option, use ``RuleActionOverrides`` . It accepts any valid action setting, including ``Count`` .
18750
- :param rule_action_overrides: Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. .. epigraph:: Take care to verify the rule names in your overrides. If you provide a rule name that doesn't match the name of any rule in the rule group, AWS WAF doesn't return an error and doesn't apply the override setting. You can use overrides for testing, for example you can override all of rule actions to ``Count`` and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.
19719
+ :param rule_action_overrides: Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. .. epigraph:: Verify the rule names in your overrides carefully. With managed rule groups, AWS WAF silently ignores any override that uses an invalid rule name. With customer-owned rule groups, invalid rule names in your overrides will cause web ACL updates to fail. An invalid rule name is any name that doesn't exactly match the case-sensitive name of an existing rule in the rule group. You can use overrides for testing, for example you can override all of rule actions to ``Count`` and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.
18751
19720
 
18752
19721
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-rulegroupreferencestatement.html
18753
19722
  :exampleMetadata: fixture=_generated
@@ -18863,7 +19832,7 @@ class CfnWebACL(
18863
19832
  You specify one override for each rule whose action you want to change.
18864
19833
  .. epigraph::
18865
19834
 
18866
- Take care to verify the rule names in your overrides. If you provide a rule name that doesn't match the name of any rule in the rule group, AWS WAF doesn't return an error and doesn't apply the override setting.
19835
+ Verify the rule names in your overrides carefully. With managed rule groups, AWS WAF silently ignores any override that uses an invalid rule name. With customer-owned rule groups, invalid rule names in your overrides will cause web ACL updates to fail. An invalid rule name is any name that doesn't exactly match the case-sensitive name of an existing rule in the rule group.
18867
19836
 
18868
19837
  You can use overrides for testing, for example you can override all of rule actions to ``Count`` and then monitor the resulting count metrics to understand how the rule group would handle your web traffic. You can also permanently override some or all actions, to modify how the rule group manages your web traffic.
18869
19838
 
@@ -19580,6 +20549,7 @@ class CfnWebACL(
19580
20549
  jsii_struct_bases=[],
19581
20550
  name_mapping={
19582
20551
  "and_statement": "andStatement",
20552
+ "asn_match_statement": "asnMatchStatement",
19583
20553
  "byte_match_statement": "byteMatchStatement",
19584
20554
  "geo_match_statement": "geoMatchStatement",
19585
20555
  "ip_set_reference_statement": "ipSetReferenceStatement",
@@ -19601,6 +20571,7 @@ class CfnWebACL(
19601
20571
  self,
19602
20572
  *,
19603
20573
  and_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.AndStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
20574
+ asn_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.AsnMatchStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
19604
20575
  byte_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.ByteMatchStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
19605
20576
  geo_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.GeoMatchStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
19606
20577
  ip_set_reference_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnWebACL.IPSetReferenceStatementProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -19619,6 +20590,7 @@ class CfnWebACL(
19619
20590
  '''The processing guidance for a rule, used by AWS WAF to determine whether a web request matches the rule.
19620
20591
 
19621
20592
  :param and_statement: A logical rule statement used to combine other rule statements with AND logic. You provide more than one ``Statement`` within the ``AndStatement`` .
20593
+ :param asn_match_statement: A rule statement that inspects web traffic based on the Autonomous System Number (ASN) associated with the request's IP address. For additional details, see `ASN match rule statement <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-asn-match.html>`_ in the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`_ .
19622
20594
  :param byte_match_statement: A rule statement that defines a string match search for AWS WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want AWS WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the AWS WAF console and the developer guide, this is called a string match statement.
19623
20595
  :param geo_match_statement: A rule statement that labels web requests by country and region and that matches against web requests based on country code. A geo match rule labels every request that it inspects regardless of whether it finds a match. - To manage requests only by country, you can use this statement by itself and specify the countries that you want to match against in the ``CountryCodes`` array. - Otherwise, configure your geo match rule with Count action so that it only labels requests. Then, add one or more label match rules to run after the geo match rule and configure them to match against the geographic labels and handle the requests as needed. AWS WAF labels requests using the alpha-2 country and region codes from the International Organization for Standardization (ISO) 3166 standard. AWS WAF determines the codes using either the IP address in the web request origin or, if you specify it, the address in the geo match ``ForwardedIPConfig`` . If you use the web request origin, the label formats are ``awswaf:clientip:geo:region:<ISO country code>-<ISO region code>`` and ``awswaf:clientip:geo:country:<ISO country code>`` . If you use a forwarded IP address, the label formats are ``awswaf:forwardedip:geo:region:<ISO country code>-<ISO region code>`` and ``awswaf:forwardedip:geo:country:<ISO country code>`` . For additional details, see `Geographic match rule statement <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-geo-match.html>`_ in the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`_ .
19624
20596
  :param ip_set_reference_statement: A rule statement used to detect web requests coming from particular IP addresses or address ranges. To use this, create an ``IPSet`` that specifies the addresses you want to detect, then use the ARN of that set in this statement. Each IP set rule statement references an IP 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.
@@ -19644,6 +20616,7 @@ class CfnWebACL(
19644
20616
  if __debug__:
19645
20617
  type_hints = typing.get_type_hints(_typecheckingstub__0382dea984940e1444b28282683162580df37103e33ab59384736c3a85a2ec11)
19646
20618
  check_type(argname="argument and_statement", value=and_statement, expected_type=type_hints["and_statement"])
20619
+ check_type(argname="argument asn_match_statement", value=asn_match_statement, expected_type=type_hints["asn_match_statement"])
19647
20620
  check_type(argname="argument byte_match_statement", value=byte_match_statement, expected_type=type_hints["byte_match_statement"])
19648
20621
  check_type(argname="argument geo_match_statement", value=geo_match_statement, expected_type=type_hints["geo_match_statement"])
19649
20622
  check_type(argname="argument ip_set_reference_statement", value=ip_set_reference_statement, expected_type=type_hints["ip_set_reference_statement"])
@@ -19661,6 +20634,8 @@ class CfnWebACL(
19661
20634
  self._values: typing.Dict[builtins.str, typing.Any] = {}
19662
20635
  if and_statement is not None:
19663
20636
  self._values["and_statement"] = and_statement
20637
+ if asn_match_statement is not None:
20638
+ self._values["asn_match_statement"] = asn_match_statement
19664
20639
  if byte_match_statement is not None:
19665
20640
  self._values["byte_match_statement"] = byte_match_statement
19666
20641
  if geo_match_statement is not None:
@@ -19703,6 +20678,19 @@ class CfnWebACL(
19703
20678
  result = self._values.get("and_statement")
19704
20679
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.AndStatementProperty"]], result)
19705
20680
 
20681
+ @builtins.property
20682
+ def asn_match_statement(
20683
+ self,
20684
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.AsnMatchStatementProperty"]]:
20685
+ '''A rule statement that inspects web traffic based on the Autonomous System Number (ASN) associated with the request's IP address.
20686
+
20687
+ For additional details, see `ASN match rule statement <https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-type-asn-match.html>`_ in the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`_ .
20688
+
20689
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-statement.html#cfn-wafv2-webacl-statement-asnmatchstatement
20690
+ '''
20691
+ result = self._values.get("asn_match_statement")
20692
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnWebACL.AsnMatchStatementProperty"]], result)
20693
+
19706
20694
  @builtins.property
19707
20695
  def byte_match_statement(
19708
20696
  self,
@@ -20349,7 +21337,7 @@ class CfnWebACL(
20349
21337
  )
20350
21338
 
20351
21339
 
20352
- @jsii.implements(_IInspectable_c2943556)
21340
+ @jsii.implements(_IInspectable_c2943556, _IWebACLAssociationRef_16e76921)
20353
21341
  class CfnWebACLAssociation(
20354
21342
  _CfnResource_9df397a6,
20355
21343
  metaclass=jsii.JSIIMeta,
@@ -20405,7 +21393,8 @@ class CfnWebACLAssociation(
20405
21393
  resource_arn: builtins.str,
20406
21394
  web_acl_arn: builtins.str,
20407
21395
  ) -> None:
20408
- '''
21396
+ '''Create a new ``AWS::WAFv2::WebACLAssociation``.
21397
+
20409
21398
  :param scope: Scope in which this resource is defined.
20410
21399
  :param id: Construct identifier for this resource (unique in its scope).
20411
21400
  :param resource_arn: The Amazon Resource Name (ARN) of the resource to associate with the web ACL. The ARN must be in one of the following formats: - For an Application Load Balancer: ``arn: *partition* :elasticloadbalancing: *region* : *account-id* :loadbalancer/app/ *load-balancer-name* / *load-balancer-id*`` - For an Amazon API Gateway REST API: ``arn: *partition* :apigateway: *region* ::/restapis/ *api-id* /stages/ *stage-name*`` - For an AWS AppSync GraphQL API: ``arn: *partition* :appsync: *region* : *account-id* :apis/ *GraphQLApiId*`` - For an Amazon Cognito user pool: ``arn: *partition* :cognito-idp: *region* : *account-id* :userpool/ *user-pool-id*`` - For an AWS App Runner service: ``arn: *partition* :apprunner: *region* : *account-id* :service/ *apprunner-service-name* / *apprunner-service-id*`` - For an AWS Verified Access instance: ``arn: *partition* :ec2: *region* : *account-id* :verified-access-instance/ *instance-id*`` - For an AWS Amplify instance: ``arn: *partition* :amplify: *region* : *account-id* :apps/ *app-id*``
@@ -20456,6 +21445,12 @@ class CfnWebACLAssociation(
20456
21445
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
20457
21446
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
20458
21447
 
21448
+ @builtins.property
21449
+ @jsii.member(jsii_name="webAclAssociationRef")
21450
+ def web_acl_association_ref(self) -> _WebACLAssociationReference_f2f05891:
21451
+ '''A reference to a WebACLAssociation resource.'''
21452
+ return typing.cast(_WebACLAssociationReference_f2f05891, jsii.get(self, "webAclAssociationRef"))
21453
+
20459
21454
  @builtins.property
20460
21455
  @jsii.member(jsii_name="resourceArn")
20461
21456
  def resource_arn(self) -> builtins.str:
@@ -20573,6 +21568,7 @@ class CfnWebACLAssociationProps:
20573
21568
  "default_action": "defaultAction",
20574
21569
  "scope": "scope",
20575
21570
  "visibility_config": "visibilityConfig",
21571
+ "application_config": "applicationConfig",
20576
21572
  "association_config": "associationConfig",
20577
21573
  "captcha_config": "captchaConfig",
20578
21574
  "challenge_config": "challengeConfig",
@@ -20580,6 +21576,7 @@ class CfnWebACLAssociationProps:
20580
21576
  "data_protection_config": "dataProtectionConfig",
20581
21577
  "description": "description",
20582
21578
  "name": "name",
21579
+ "on_source_d_do_s_protection_config": "onSourceDDoSProtectionConfig",
20583
21580
  "rules": "rules",
20584
21581
  "tags": "tags",
20585
21582
  "token_domains": "tokenDomains",
@@ -20592,6 +21589,7 @@ class CfnWebACLProps:
20592
21589
  default_action: typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.DefaultActionProperty, typing.Dict[builtins.str, typing.Any]]],
20593
21590
  scope: builtins.str,
20594
21591
  visibility_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.VisibilityConfigProperty, typing.Dict[builtins.str, typing.Any]]],
21592
+ application_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ApplicationConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
20595
21593
  association_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AssociationConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
20596
21594
  captcha_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.CaptchaConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
20597
21595
  challenge_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ChallengeConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -20599,6 +21597,7 @@ class CfnWebACLProps:
20599
21597
  data_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.DataProtectionConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
20600
21598
  description: typing.Optional[builtins.str] = None,
20601
21599
  name: typing.Optional[builtins.str] = None,
21600
+ on_source_d_do_s_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.OnSourceDDoSProtectionConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
20602
21601
  rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
20603
21602
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
20604
21603
  token_domains: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -20608,6 +21607,7 @@ class CfnWebACLProps:
20608
21607
  :param default_action: The action to perform if none of the ``Rules`` contained in the ``WebACL`` match.
20609
21608
  :param scope: Specifies whether this is for an Amazon CloudFront distribution or for a regional application. For an AWS Amplify application, use ``CLOUDFRONT`` . 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`` . For information about how to define the association of the web ACL with your resource, see ``WebACLAssociation`` .
20610
21609
  :param visibility_config: Defines and enables Amazon CloudWatch metrics and web request sample collection.
21610
+ :param application_config: Returns a list of ``ApplicationAttribute`` s.
20611
21611
  :param association_config: Specifies custom configurations for the associations between the web ACL and protected resources. Use this to customize the maximum size of the request body that your protected resources forward to AWS WAF for inspection. You can customize this setting for CloudFront, API Gateway, Amazon Cognito, App Runner, or Verified Access resources. The default setting is 16 KB (16,384 bytes). .. epigraph:: You are charged additional fees when your protected resources forward body sizes that are larger than the default. For more information, see `AWS WAF Pricing <https://docs.aws.amazon.com/waf/pricing/>`_ . For Application Load Balancer and AWS AppSync , the limit is fixed at 8 KB (8,192 bytes).
20612
21612
  :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`` .
20613
21613
  :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`` .
@@ -20615,6 +21615,7 @@ class CfnWebACLProps:
20615
21615
  :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.
20616
21616
  :param description: A description of the web ACL that helps with identification.
20617
21617
  :param name: The name of the web ACL. You cannot change the name of a web ACL after you create it.
21618
+ :param on_source_d_do_s_protection_config: Configures the level of DDoS protection that applies to web ACLs associated with Application Load Balancers.
20618
21619
  :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.
20619
21620
  :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.
20620
21621
  :param token_domains: Specifies the domains that AWS WAF should accept in a web request token. This enables the use of tokens across multiple protected websites. When AWS WAF provides a token, it uses the domain of the AWS resource that the web ACL is protecting. If you don't specify a list of token domains, AWS WAF accepts tokens only for the domain of the protected resource. With a token domain list, AWS WAF accepts the resource's host domain plus all domains in the token domain list, including their prefixed subdomains.
@@ -20631,6 +21632,7 @@ class CfnWebACLProps:
20631
21632
  check_type(argname="argument default_action", value=default_action, expected_type=type_hints["default_action"])
20632
21633
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
20633
21634
  check_type(argname="argument visibility_config", value=visibility_config, expected_type=type_hints["visibility_config"])
21635
+ check_type(argname="argument application_config", value=application_config, expected_type=type_hints["application_config"])
20634
21636
  check_type(argname="argument association_config", value=association_config, expected_type=type_hints["association_config"])
20635
21637
  check_type(argname="argument captcha_config", value=captcha_config, expected_type=type_hints["captcha_config"])
20636
21638
  check_type(argname="argument challenge_config", value=challenge_config, expected_type=type_hints["challenge_config"])
@@ -20638,6 +21640,7 @@ class CfnWebACLProps:
20638
21640
  check_type(argname="argument data_protection_config", value=data_protection_config, expected_type=type_hints["data_protection_config"])
20639
21641
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
20640
21642
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
21643
+ check_type(argname="argument on_source_d_do_s_protection_config", value=on_source_d_do_s_protection_config, expected_type=type_hints["on_source_d_do_s_protection_config"])
20641
21644
  check_type(argname="argument rules", value=rules, expected_type=type_hints["rules"])
20642
21645
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
20643
21646
  check_type(argname="argument token_domains", value=token_domains, expected_type=type_hints["token_domains"])
@@ -20646,6 +21649,8 @@ class CfnWebACLProps:
20646
21649
  "scope": scope,
20647
21650
  "visibility_config": visibility_config,
20648
21651
  }
21652
+ if application_config is not None:
21653
+ self._values["application_config"] = application_config
20649
21654
  if association_config is not None:
20650
21655
  self._values["association_config"] = association_config
20651
21656
  if captcha_config is not None:
@@ -20660,6 +21665,8 @@ class CfnWebACLProps:
20660
21665
  self._values["description"] = description
20661
21666
  if name is not None:
20662
21667
  self._values["name"] = name
21668
+ if on_source_d_do_s_protection_config is not None:
21669
+ self._values["on_source_d_do_s_protection_config"] = on_source_d_do_s_protection_config
20663
21670
  if rules is not None:
20664
21671
  self._values["rules"] = rules
20665
21672
  if tags is not None:
@@ -20708,6 +21715,17 @@ class CfnWebACLProps:
20708
21715
  assert result is not None, "Required property 'visibility_config' is missing"
20709
21716
  return typing.cast(typing.Union[_IResolvable_da3f097b, CfnWebACL.VisibilityConfigProperty], result)
20710
21717
 
21718
+ @builtins.property
21719
+ def application_config(
21720
+ self,
21721
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnWebACL.ApplicationConfigProperty]]:
21722
+ '''Returns a list of ``ApplicationAttribute`` s.
21723
+
21724
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-applicationconfig
21725
+ '''
21726
+ result = self._values.get("application_config")
21727
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnWebACL.ApplicationConfigProperty]], result)
21728
+
20711
21729
  @builtins.property
20712
21730
  def association_config(
20713
21731
  self,
@@ -20804,6 +21822,17 @@ class CfnWebACLProps:
20804
21822
  result = self._values.get("name")
20805
21823
  return typing.cast(typing.Optional[builtins.str], result)
20806
21824
 
21825
+ @builtins.property
21826
+ def on_source_d_do_s_protection_config(
21827
+ self,
21828
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnWebACL.OnSourceDDoSProtectionConfigProperty]]:
21829
+ '''Configures the level of DDoS protection that applies to web ACLs associated with Application Load Balancers.
21830
+
21831
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-webacl.html#cfn-wafv2-webacl-onsourceddosprotectionconfig
21832
+ '''
21833
+ result = self._values.get("on_source_d_do_s_protection_config")
21834
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnWebACL.OnSourceDDoSProtectionConfigProperty]], result)
21835
+
20807
21836
  @builtins.property
20808
21837
  def rules(
20809
21838
  self,
@@ -21247,6 +22276,14 @@ def _typecheckingstub__563d7c7c3c7b0cea107ea61895bf83f08deacaa77dd306915bce97452
21247
22276
  """Type checking stubs"""
21248
22277
  pass
21249
22278
 
22279
+ def _typecheckingstub__1b7bfd70c769fabe423acc42aa4ce7a934b8907c56a69421327294c209c8da78(
22280
+ *,
22281
+ asn_list: typing.Optional[typing.Union[typing.Sequence[jsii.Number], _IResolvable_da3f097b]] = None,
22282
+ forwarded_ip_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.ForwardedIPConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22283
+ ) -> None:
22284
+ """Type checking stubs"""
22285
+ pass
22286
+
21250
22287
  def _typecheckingstub__48d37744c2bde6e8969fbbe9f60128093f4d69360ff6c086fcb635ca42f3ae63(
21251
22288
  *,
21252
22289
  custom_response: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.CustomResponseProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -21504,6 +22541,7 @@ def _typecheckingstub__ac0f7a31c2c062eaaca70b7d43c11c1e6b78ce7502ec2206e832cabc7
21504
22541
 
21505
22542
  def _typecheckingstub__6bc232408309212f7b145d76c0106073269f111e106ab6d74a4d2168f41f248b(
21506
22543
  *,
22544
+ asn: typing.Any = None,
21507
22545
  cookie: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.RateLimitCookieProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21508
22546
  forwarded_ip: typing.Any = None,
21509
22547
  header: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.RateLimitHeaderProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -21669,6 +22707,7 @@ def _typecheckingstub__b9ae549bd77f9cf10d97954d1e78a797db181843dcc5510b91fc32672
21669
22707
  def _typecheckingstub__c10bc3e3f69d89ad06f25a44daee62e7de586ae4280e39230f29c24092fe4a4f(
21670
22708
  *,
21671
22709
  and_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.AndStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22710
+ asn_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.AsnMatchStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21672
22711
  byte_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.ByteMatchStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21673
22712
  geo_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.GeoMatchStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21674
22713
  ip_set_reference_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnRuleGroup.IPSetReferenceStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -21740,6 +22779,7 @@ def _typecheckingstub__03030a65c492e95a1d1ae5ddafd6acbb9efdfa7e18b6367ac7e03eb8f
21740
22779
  default_action: typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.DefaultActionProperty, typing.Dict[builtins.str, typing.Any]]],
21741
22780
  scope: builtins.str,
21742
22781
  visibility_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.VisibilityConfigProperty, typing.Dict[builtins.str, typing.Any]]],
22782
+ application_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ApplicationConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21743
22783
  association_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AssociationConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21744
22784
  captcha_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.CaptchaConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21745
22785
  challenge_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ChallengeConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -21747,6 +22787,7 @@ def _typecheckingstub__03030a65c492e95a1d1ae5ddafd6acbb9efdfa7e18b6367ac7e03eb8f
21747
22787
  data_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.DataProtectionConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21748
22788
  description: typing.Optional[builtins.str] = None,
21749
22789
  name: typing.Optional[builtins.str] = None,
22790
+ on_source_d_do_s_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.OnSourceDDoSProtectionConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
21750
22791
  rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
21751
22792
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
21752
22793
  token_domains: typing.Optional[typing.Sequence[builtins.str]] = None,
@@ -21784,6 +22825,12 @@ def _typecheckingstub__c31cd418fc7ecfcb56c27ca59f7e1a72ad63669e0587305727953071e
21784
22825
  """Type checking stubs"""
21785
22826
  pass
21786
22827
 
22828
+ def _typecheckingstub__ead4c1be355009abdb5c2bef2a7b836cddf9001fdb29e766c4445e21aa5b7091(
22829
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnWebACL.ApplicationConfigProperty]],
22830
+ ) -> None:
22831
+ """Type checking stubs"""
22832
+ pass
22833
+
21787
22834
  def _typecheckingstub__cd4131e7b800e93fe8dbfa57a0b3448dcc676e6dccccd567162368dbc7b9aa88(
21788
22835
  value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnWebACL.AssociationConfigProperty]],
21789
22836
  ) -> None:
@@ -21826,6 +22873,12 @@ def _typecheckingstub__191460374393c7b9829682ab4faa571596cd3c2090e46352a427930a2
21826
22873
  """Type checking stubs"""
21827
22874
  pass
21828
22875
 
22876
+ def _typecheckingstub__1180464a1661a74085b880efee37841284ce892adac9d3cda8cb5c117c625ba2(
22877
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnWebACL.OnSourceDDoSProtectionConfigProperty]],
22878
+ ) -> None:
22879
+ """Type checking stubs"""
22880
+ pass
22881
+
21829
22882
  def _typecheckingstub__7e3abb4095a53abe30bca846b48411ffb15b0267398c52a824a8ffba45db4f4c(
21830
22883
  value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnWebACL.RuleProperty]]]],
21831
22884
  ) -> None:
@@ -21865,6 +22918,14 @@ def _typecheckingstub__f9aee7f94c21473b0495313f92d8a99724499d3f5a99e7229679efb1e
21865
22918
  """Type checking stubs"""
21866
22919
  pass
21867
22920
 
22921
+ def _typecheckingstub__9315d92e3528c134a601f6cf9b27df2b90e082b1e29a17eadf8fbf68ac10e8c4(
22922
+ *,
22923
+ client_side_action_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ClientSideActionConfigProperty, typing.Dict[builtins.str, typing.Any]]],
22924
+ sensitivity_to_block: typing.Optional[builtins.str] = None,
22925
+ ) -> None:
22926
+ """Type checking stubs"""
22927
+ pass
22928
+
21868
22929
  def _typecheckingstub__23917b7bd12237aafb58493973b8f61366778e01800aad21ea2f95a01294dc76(
21869
22930
  *,
21870
22931
  inspection_level: builtins.str,
@@ -21887,6 +22948,29 @@ def _typecheckingstub__e3977b616ebe935b8882258fb7fe1261468bceabf99977afc1c05b1df
21887
22948
  """Type checking stubs"""
21888
22949
  pass
21889
22950
 
22951
+ def _typecheckingstub__66f2adaad9f19c44dc2cd5fab5ec44ef266cea6d9b6def3e9dff0bf7e376ee21(
22952
+ *,
22953
+ name: builtins.str,
22954
+ values: typing.Sequence[builtins.str],
22955
+ ) -> None:
22956
+ """Type checking stubs"""
22957
+ pass
22958
+
22959
+ def _typecheckingstub__0c9805d456e58fdf333f88cd7ea47bcd6006aee9ebb8f4f23bd7fa2a03587fbb(
22960
+ *,
22961
+ attributes: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ApplicationAttributeProperty, typing.Dict[builtins.str, typing.Any]]]]],
22962
+ ) -> None:
22963
+ """Type checking stubs"""
22964
+ pass
22965
+
22966
+ def _typecheckingstub__8995ed18208bf9dcca46075f2ba4072467a8327472896fee5efcf1415648dfe8(
22967
+ *,
22968
+ asn_list: typing.Optional[typing.Union[typing.Sequence[jsii.Number], _IResolvable_da3f097b]] = None,
22969
+ forwarded_ip_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ForwardedIPConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22970
+ ) -> None:
22971
+ """Type checking stubs"""
22972
+ pass
22973
+
21890
22974
  def _typecheckingstub__889bff55ba91160187275a11669025b829161457b27db183745c6a70c6fb0947(
21891
22975
  *,
21892
22976
  request_body: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RequestBodyAssociatedResourceTypeConfigProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
@@ -21947,6 +23031,22 @@ def _typecheckingstub__e59d4e09b55c6fb1e18f3dbf3d0659f147db2659c300a744e836928d4
21947
23031
  """Type checking stubs"""
21948
23032
  pass
21949
23033
 
23034
+ def _typecheckingstub__776e223dfae595baf3dc144792b2d7158c77847ddf24785048d19516ebcb955b(
23035
+ *,
23036
+ challenge: typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ClientSideActionProperty, typing.Dict[builtins.str, typing.Any]]],
23037
+ ) -> None:
23038
+ """Type checking stubs"""
23039
+ pass
23040
+
23041
+ def _typecheckingstub__de331114f33ba80cf8bd042358ad9467ab930574012abea7782f175fd2a7b649(
23042
+ *,
23043
+ usage_of_action: builtins.str,
23044
+ exempt_uri_regular_expressions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RegexProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
23045
+ sensitivity: typing.Optional[builtins.str] = None,
23046
+ ) -> None:
23047
+ """Type checking stubs"""
23048
+ pass
23049
+
21950
23050
  def _typecheckingstub__11e565e9aad1b474694cbb7c884715be324a3c5b38238a45e13e0d2ed78d816d(
21951
23051
  *,
21952
23052
  all: typing.Any = None,
@@ -22178,6 +23278,7 @@ def _typecheckingstub__bf81be90baf4410ecf4fe3290d007b8b6c18da545bbac600a4ec86a29
22178
23278
  def _typecheckingstub__517661cb97cc58c609587fc6ca9907b2e23d8f3cd6e1e4034f3f6d82b85d2d77(
22179
23279
  *,
22180
23280
  aws_managed_rules_acfp_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AWSManagedRulesACFPRuleSetProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23281
+ aws_managed_rules_anti_d_do_s_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AWSManagedRulesAntiDDoSRuleSetProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22181
23282
  aws_managed_rules_atp_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AWSManagedRulesATPRuleSetProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22182
23283
  aws_managed_rules_bot_control_rule_set: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AWSManagedRulesBotControlRuleSetProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22183
23284
  login_path: typing.Optional[builtins.str] = None,
@@ -22208,6 +23309,13 @@ def _typecheckingstub__6323d964e28230f9d2649acc0c25b70ee57b1f6721b37df85848f3c96
22208
23309
  """Type checking stubs"""
22209
23310
  pass
22210
23311
 
23312
+ def _typecheckingstub__b1d55e97c88ee1084655df55da4bb940ea39dc6807c3b4f425073a3a747e0dbc(
23313
+ *,
23314
+ alb_low_reputation_mode: builtins.str,
23315
+ ) -> None:
23316
+ """Type checking stubs"""
23317
+ pass
23318
+
22211
23319
  def _typecheckingstub__857a9b37018dee0d151e0a05984b557cea8bf5f8e57f6957cacb75335b7f4985(
22212
23320
  *,
22213
23321
  statements: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.StatementProperty, typing.Dict[builtins.str, typing.Any]]]]],
@@ -22225,6 +23333,7 @@ def _typecheckingstub__799e1b838f491914647df091fcbac72eb8119756fda0c013be732c461
22225
23333
 
22226
23334
  def _typecheckingstub__2edac52bcb13f69d4349ba55a4d083851908f1dd71831794e88ac043e1ade5a3(
22227
23335
  *,
23336
+ asn: typing.Any = None,
22228
23337
  cookie: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RateLimitCookieProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22229
23338
  forwarded_ip: typing.Any = None,
22230
23339
  header: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RateLimitHeaderProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -22329,6 +23438,13 @@ def _typecheckingstub__02b7d36560bfd4ed2bd6508818cf89b216972c719200032cdc4b3a04e
22329
23438
  """Type checking stubs"""
22330
23439
  pass
22331
23440
 
23441
+ def _typecheckingstub__91e754c074f286d30a035b0cb9d25503568a265d4426fe4f4bfc0766c9c71d90(
23442
+ *,
23443
+ regex_string: typing.Optional[builtins.str] = None,
23444
+ ) -> None:
23445
+ """Type checking stubs"""
23446
+ pass
23447
+
22332
23448
  def _typecheckingstub__22d5e10d054b4857a7983cdc47094a04c46a1c4d98b791e6c9aa5b16fe172d31(
22333
23449
  *,
22334
23450
  default_size_inspection_limit: builtins.str,
@@ -22480,6 +23596,7 @@ def _typecheckingstub__58178c25f953747f989ea51846855e784a44825b0202fe8e0a5c3920a
22480
23596
  def _typecheckingstub__0382dea984940e1444b28282683162580df37103e33ab59384736c3a85a2ec11(
22481
23597
  *,
22482
23598
  and_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AndStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
23599
+ asn_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AsnMatchStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22483
23600
  byte_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ByteMatchStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22484
23601
  geo_match_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.GeoMatchStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22485
23602
  ip_set_reference_statement: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.IPSetReferenceStatementProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -22577,6 +23694,7 @@ def _typecheckingstub__6e738df983d65d43590c0a02c03e6e0daa3a2097ae335371d22711838
22577
23694
  default_action: typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.DefaultActionProperty, typing.Dict[builtins.str, typing.Any]]],
22578
23695
  scope: builtins.str,
22579
23696
  visibility_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.VisibilityConfigProperty, typing.Dict[builtins.str, typing.Any]]],
23697
+ application_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ApplicationConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22580
23698
  association_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.AssociationConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22581
23699
  captcha_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.CaptchaConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22582
23700
  challenge_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.ChallengeConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -22584,6 +23702,7 @@ def _typecheckingstub__6e738df983d65d43590c0a02c03e6e0daa3a2097ae335371d22711838
22584
23702
  data_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.DataProtectionConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22585
23703
  description: typing.Optional[builtins.str] = None,
22586
23704
  name: typing.Optional[builtins.str] = None,
23705
+ on_source_d_do_s_protection_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.OnSourceDDoSProtectionConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
22587
23706
  rules: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnWebACL.RuleProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
22588
23707
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
22589
23708
  token_domains: typing.Optional[typing.Sequence[builtins.str]] = None,