aws-sdk-wafv2 1.18.0 → 1.19.0

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.
@@ -42,6 +42,14 @@ module Aws::WAFV2
42
42
  CreateRuleGroupResponse = Shapes::StructureShape.new(name: 'CreateRuleGroupResponse')
43
43
  CreateWebACLRequest = Shapes::StructureShape.new(name: 'CreateWebACLRequest')
44
44
  CreateWebACLResponse = Shapes::StructureShape.new(name: 'CreateWebACLResponse')
45
+ CustomHTTPHeader = Shapes::StructureShape.new(name: 'CustomHTTPHeader')
46
+ CustomHTTPHeaderName = Shapes::StringShape.new(name: 'CustomHTTPHeaderName')
47
+ CustomHTTPHeaderValue = Shapes::StringShape.new(name: 'CustomHTTPHeaderValue')
48
+ CustomHTTPHeaders = Shapes::ListShape.new(name: 'CustomHTTPHeaders')
49
+ CustomRequestHandling = Shapes::StructureShape.new(name: 'CustomRequestHandling')
50
+ CustomResponse = Shapes::StructureShape.new(name: 'CustomResponse')
51
+ CustomResponseBodies = Shapes::MapShape.new(name: 'CustomResponseBodies')
52
+ CustomResponseBody = Shapes::StructureShape.new(name: 'CustomResponseBody')
45
53
  DefaultAction = Shapes::StructureShape.new(name: 'DefaultAction')
46
54
  DeleteFirewallManagerRuleGroupsRequest = Shapes::StructureShape.new(name: 'DeleteFirewallManagerRuleGroupsRequest')
47
55
  DeleteFirewallManagerRuleGroupsResponse = Shapes::StructureShape.new(name: 'DeleteFirewallManagerRuleGroupsResponse')
@@ -174,6 +182,9 @@ module Aws::WAFV2
174
182
  ResourceArn = Shapes::StringShape.new(name: 'ResourceArn')
175
183
  ResourceArns = Shapes::ListShape.new(name: 'ResourceArns')
176
184
  ResourceType = Shapes::StringShape.new(name: 'ResourceType')
185
+ ResponseContent = Shapes::StringShape.new(name: 'ResponseContent')
186
+ ResponseContentType = Shapes::StringShape.new(name: 'ResponseContentType')
187
+ ResponseStatusCode = Shapes::IntegerShape.new(name: 'ResponseStatusCode')
177
188
  Rule = Shapes::StructureShape.new(name: 'Rule')
178
189
  RuleAction = Shapes::StructureShape.new(name: 'RuleAction')
179
190
  RuleGroup = Shapes::StructureShape.new(name: 'RuleGroup')
@@ -248,6 +259,7 @@ module Aws::WAFV2
248
259
 
249
260
  AllQueryArguments.struct_class = Types::AllQueryArguments
250
261
 
262
+ AllowAction.add_member(:custom_request_handling, Shapes::ShapeRef.new(shape: CustomRequestHandling, location_name: "CustomRequestHandling"))
251
263
  AllowAction.struct_class = Types::AllowAction
252
264
 
253
265
  AndStatement.add_member(:statements, Shapes::ShapeRef.new(shape: Statements, required: true, location_name: "Statements"))
@@ -259,6 +271,7 @@ module Aws::WAFV2
259
271
 
260
272
  AssociateWebACLResponse.struct_class = Types::AssociateWebACLResponse
261
273
 
274
+ BlockAction.add_member(:custom_response, Shapes::ShapeRef.new(shape: CustomResponse, location_name: "CustomResponse"))
262
275
  BlockAction.struct_class = Types::BlockAction
263
276
 
264
277
  Body.struct_class = Types::Body
@@ -276,6 +289,7 @@ module Aws::WAFV2
276
289
  CheckCapacityResponse.add_member(:capacity, Shapes::ShapeRef.new(shape: ConsumedCapacity, location_name: "Capacity"))
277
290
  CheckCapacityResponse.struct_class = Types::CheckCapacityResponse
278
291
 
292
+ CountAction.add_member(:custom_request_handling, Shapes::ShapeRef.new(shape: CustomRequestHandling, location_name: "CustomRequestHandling"))
279
293
  CountAction.struct_class = Types::CountAction
280
294
 
281
295
  CountryCodes.member = Shapes::ShapeRef.new(shape: CountryCode)
@@ -308,6 +322,7 @@ module Aws::WAFV2
308
322
  CreateRuleGroupRequest.add_member(:rules, Shapes::ShapeRef.new(shape: Rules, location_name: "Rules"))
309
323
  CreateRuleGroupRequest.add_member(:visibility_config, Shapes::ShapeRef.new(shape: VisibilityConfig, required: true, location_name: "VisibilityConfig"))
310
324
  CreateRuleGroupRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
325
+ CreateRuleGroupRequest.add_member(:custom_response_bodies, Shapes::ShapeRef.new(shape: CustomResponseBodies, location_name: "CustomResponseBodies"))
311
326
  CreateRuleGroupRequest.struct_class = Types::CreateRuleGroupRequest
312
327
 
313
328
  CreateRuleGroupResponse.add_member(:summary, Shapes::ShapeRef.new(shape: RuleGroupSummary, location_name: "Summary"))
@@ -320,11 +335,33 @@ module Aws::WAFV2
320
335
  CreateWebACLRequest.add_member(:rules, Shapes::ShapeRef.new(shape: Rules, location_name: "Rules"))
321
336
  CreateWebACLRequest.add_member(:visibility_config, Shapes::ShapeRef.new(shape: VisibilityConfig, required: true, location_name: "VisibilityConfig"))
322
337
  CreateWebACLRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
338
+ CreateWebACLRequest.add_member(:custom_response_bodies, Shapes::ShapeRef.new(shape: CustomResponseBodies, location_name: "CustomResponseBodies"))
323
339
  CreateWebACLRequest.struct_class = Types::CreateWebACLRequest
324
340
 
325
341
  CreateWebACLResponse.add_member(:summary, Shapes::ShapeRef.new(shape: WebACLSummary, location_name: "Summary"))
326
342
  CreateWebACLResponse.struct_class = Types::CreateWebACLResponse
327
343
 
344
+ CustomHTTPHeader.add_member(:name, Shapes::ShapeRef.new(shape: CustomHTTPHeaderName, required: true, location_name: "Name"))
345
+ CustomHTTPHeader.add_member(:value, Shapes::ShapeRef.new(shape: CustomHTTPHeaderValue, required: true, location_name: "Value"))
346
+ CustomHTTPHeader.struct_class = Types::CustomHTTPHeader
347
+
348
+ CustomHTTPHeaders.member = Shapes::ShapeRef.new(shape: CustomHTTPHeader)
349
+
350
+ CustomRequestHandling.add_member(:insert_headers, Shapes::ShapeRef.new(shape: CustomHTTPHeaders, required: true, location_name: "InsertHeaders"))
351
+ CustomRequestHandling.struct_class = Types::CustomRequestHandling
352
+
353
+ CustomResponse.add_member(:response_code, Shapes::ShapeRef.new(shape: ResponseStatusCode, required: true, location_name: "ResponseCode"))
354
+ CustomResponse.add_member(:custom_response_body_key, Shapes::ShapeRef.new(shape: EntityName, location_name: "CustomResponseBodyKey"))
355
+ CustomResponse.add_member(:response_headers, Shapes::ShapeRef.new(shape: CustomHTTPHeaders, location_name: "ResponseHeaders"))
356
+ CustomResponse.struct_class = Types::CustomResponse
357
+
358
+ CustomResponseBodies.key = Shapes::ShapeRef.new(shape: EntityName)
359
+ CustomResponseBodies.value = Shapes::ShapeRef.new(shape: CustomResponseBody)
360
+
361
+ CustomResponseBody.add_member(:content_type, Shapes::ShapeRef.new(shape: ResponseContentType, required: true, location_name: "ContentType"))
362
+ CustomResponseBody.add_member(:content, Shapes::ShapeRef.new(shape: ResponseContent, required: true, location_name: "Content"))
363
+ CustomResponseBody.struct_class = Types::CustomResponseBody
364
+
328
365
  DefaultAction.add_member(:block, Shapes::ShapeRef.new(shape: BlockAction, location_name: "Block"))
329
366
  DefaultAction.add_member(:allow, Shapes::ShapeRef.new(shape: AllowAction, location_name: "Allow"))
330
367
  DefaultAction.struct_class = Types::DefaultAction
@@ -737,6 +774,7 @@ module Aws::WAFV2
737
774
  RuleGroup.add_member(:description, Shapes::ShapeRef.new(shape: EntityDescription, location_name: "Description"))
738
775
  RuleGroup.add_member(:rules, Shapes::ShapeRef.new(shape: Rules, location_name: "Rules"))
739
776
  RuleGroup.add_member(:visibility_config, Shapes::ShapeRef.new(shape: VisibilityConfig, required: true, location_name: "VisibilityConfig"))
777
+ RuleGroup.add_member(:custom_response_bodies, Shapes::ShapeRef.new(shape: CustomResponseBodies, location_name: "CustomResponseBodies"))
740
778
  RuleGroup.struct_class = Types::RuleGroup
741
779
 
742
780
  RuleGroupReferenceStatement.add_member(:arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ARN"))
@@ -765,6 +803,8 @@ module Aws::WAFV2
765
803
  SampledHTTPRequest.add_member(:timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "Timestamp"))
766
804
  SampledHTTPRequest.add_member(:action, Shapes::ShapeRef.new(shape: Action, location_name: "Action"))
767
805
  SampledHTTPRequest.add_member(:rule_name_within_rule_group, Shapes::ShapeRef.new(shape: EntityName, location_name: "RuleNameWithinRuleGroup"))
806
+ SampledHTTPRequest.add_member(:request_headers_inserted, Shapes::ShapeRef.new(shape: HTTPHeaders, location_name: "RequestHeadersInserted"))
807
+ SampledHTTPRequest.add_member(:response_code_sent, Shapes::ShapeRef.new(shape: ResponseStatusCode, location_name: "ResponseCodeSent"))
768
808
  SampledHTTPRequest.struct_class = Types::SampledHTTPRequest
769
809
 
770
810
  SampledHTTPRequests.member = Shapes::ShapeRef.new(shape: SampledHTTPRequest)
@@ -865,6 +905,7 @@ module Aws::WAFV2
865
905
  UpdateRuleGroupRequest.add_member(:rules, Shapes::ShapeRef.new(shape: Rules, location_name: "Rules"))
866
906
  UpdateRuleGroupRequest.add_member(:visibility_config, Shapes::ShapeRef.new(shape: VisibilityConfig, required: true, location_name: "VisibilityConfig"))
867
907
  UpdateRuleGroupRequest.add_member(:lock_token, Shapes::ShapeRef.new(shape: LockToken, required: true, location_name: "LockToken"))
908
+ UpdateRuleGroupRequest.add_member(:custom_response_bodies, Shapes::ShapeRef.new(shape: CustomResponseBodies, location_name: "CustomResponseBodies"))
868
909
  UpdateRuleGroupRequest.struct_class = Types::UpdateRuleGroupRequest
869
910
 
870
911
  UpdateRuleGroupResponse.add_member(:next_lock_token, Shapes::ShapeRef.new(shape: LockToken, location_name: "NextLockToken"))
@@ -878,6 +919,7 @@ module Aws::WAFV2
878
919
  UpdateWebACLRequest.add_member(:rules, Shapes::ShapeRef.new(shape: Rules, location_name: "Rules"))
879
920
  UpdateWebACLRequest.add_member(:visibility_config, Shapes::ShapeRef.new(shape: VisibilityConfig, required: true, location_name: "VisibilityConfig"))
880
921
  UpdateWebACLRequest.add_member(:lock_token, Shapes::ShapeRef.new(shape: LockToken, required: true, location_name: "LockToken"))
922
+ UpdateWebACLRequest.add_member(:custom_response_bodies, Shapes::ShapeRef.new(shape: CustomResponseBodies, location_name: "CustomResponseBodies"))
881
923
  UpdateWebACLRequest.struct_class = Types::UpdateWebACLRequest
882
924
 
883
925
  UpdateWebACLResponse.add_member(:next_lock_token, Shapes::ShapeRef.new(shape: LockToken, location_name: "NextLockToken"))
@@ -949,6 +991,7 @@ module Aws::WAFV2
949
991
  WebACL.add_member(:pre_process_firewall_manager_rule_groups, Shapes::ShapeRef.new(shape: FirewallManagerRuleGroups, location_name: "PreProcessFirewallManagerRuleGroups"))
950
992
  WebACL.add_member(:post_process_firewall_manager_rule_groups, Shapes::ShapeRef.new(shape: FirewallManagerRuleGroups, location_name: "PostProcessFirewallManagerRuleGroups"))
951
993
  WebACL.add_member(:managed_by_firewall_manager, Shapes::ShapeRef.new(shape: Boolean, location_name: "ManagedByFirewallManager"))
994
+ WebACL.add_member(:custom_response_bodies, Shapes::ShapeRef.new(shape: CustomResponseBodies, location_name: "CustomResponseBodies"))
952
995
  WebACL.struct_class = Types::WebACL
953
996
 
954
997
  WebACLSummaries.member = Shapes::ShapeRef.new(shape: WebACLSummary)
@@ -34,16 +34,46 @@ module Aws::WAFV2
34
34
  #
35
35
  class AllQueryArguments < Aws::EmptyStructure; end
36
36
 
37
- # Specifies that AWS WAF should allow requests.
37
+ # Specifies that AWS WAF should allow the request and optionally defines
38
+ # additional custom handling for the request.
38
39
  #
39
- # This is used only in the context of other settings, for example to
40
- # specify values for RuleAction and web ACL DefaultAction.
40
+ # This is used in the context of other settings, for example to specify
41
+ # values for RuleAction and web ACL DefaultAction.
41
42
  #
42
- # @api private
43
+ # @note When making an API call, you may pass AllowAction
44
+ # data as a hash:
45
+ #
46
+ # {
47
+ # custom_request_handling: {
48
+ # insert_headers: [ # required
49
+ # {
50
+ # name: "CustomHTTPHeaderName", # required
51
+ # value: "CustomHTTPHeaderValue", # required
52
+ # },
53
+ # ],
54
+ # },
55
+ # }
56
+ #
57
+ # @!attribute [rw] custom_request_handling
58
+ # Defines custom handling for the web request.
59
+ #
60
+ # For information about customizing web requests and responses, see
61
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS
62
+ # WAF Developer Guide][2].
63
+ #
64
+ #
65
+ #
66
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
67
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
68
+ # @return [Types::CustomRequestHandling]
43
69
  #
44
70
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/AllowAction AWS API Documentation
45
71
  #
46
- class AllowAction < Aws::EmptyStructure; end
72
+ class AllowAction < Struct.new(
73
+ :custom_request_handling)
74
+ SENSITIVE = []
75
+ include Aws::Structure
76
+ end
47
77
 
48
78
  # A logical rule statement used to combine other rule statements with
49
79
  # AND logic. You provide more than one Statement within the
@@ -353,16 +383,48 @@ module Aws::WAFV2
353
383
  #
354
384
  class AssociateWebACLResponse < Aws::EmptyStructure; end
355
385
 
356
- # Specifies that AWS WAF should block requests.
386
+ # Specifies that AWS WAF should block the request and optionally defines
387
+ # additional custom handling for the response to the web request.
357
388
  #
358
- # This is used only in the context of other settings, for example to
359
- # specify values for RuleAction and web ACL DefaultAction.
389
+ # This is used in the context of other settings, for example to specify
390
+ # values for RuleAction and web ACL DefaultAction.
360
391
  #
361
- # @api private
392
+ # @note When making an API call, you may pass BlockAction
393
+ # data as a hash:
394
+ #
395
+ # {
396
+ # custom_response: {
397
+ # response_code: 1, # required
398
+ # custom_response_body_key: "EntityName",
399
+ # response_headers: [
400
+ # {
401
+ # name: "CustomHTTPHeaderName", # required
402
+ # value: "CustomHTTPHeaderValue", # required
403
+ # },
404
+ # ],
405
+ # },
406
+ # }
407
+ #
408
+ # @!attribute [rw] custom_response
409
+ # Defines a custom response for the web request.
410
+ #
411
+ # For information about customizing web requests and responses, see
412
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS
413
+ # WAF Developer Guide][2].
414
+ #
415
+ #
416
+ #
417
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
418
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
419
+ # @return [Types::CustomResponse]
362
420
  #
363
421
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/BlockAction AWS API Documentation
364
422
  #
365
- class BlockAction < Aws::EmptyStructure; end
423
+ class BlockAction < Struct.new(
424
+ :custom_response)
425
+ SENSITIVE = []
426
+ include Aws::Structure
427
+ end
366
428
 
367
429
  # The body of a web request. This immediately follows the request
368
430
  # headers.
@@ -781,14 +843,48 @@ module Aws::WAFV2
781
843
  # },
782
844
  # action: {
783
845
  # block: {
846
+ # custom_response: {
847
+ # response_code: 1, # required
848
+ # custom_response_body_key: "EntityName",
849
+ # response_headers: [
850
+ # {
851
+ # name: "CustomHTTPHeaderName", # required
852
+ # value: "CustomHTTPHeaderValue", # required
853
+ # },
854
+ # ],
855
+ # },
784
856
  # },
785
857
  # allow: {
858
+ # custom_request_handling: {
859
+ # insert_headers: [ # required
860
+ # {
861
+ # name: "CustomHTTPHeaderName", # required
862
+ # value: "CustomHTTPHeaderValue", # required
863
+ # },
864
+ # ],
865
+ # },
786
866
  # },
787
867
  # count: {
868
+ # custom_request_handling: {
869
+ # insert_headers: [ # required
870
+ # {
871
+ # name: "CustomHTTPHeaderName", # required
872
+ # value: "CustomHTTPHeaderValue", # required
873
+ # },
874
+ # ],
875
+ # },
788
876
  # },
789
877
  # },
790
878
  # override_action: {
791
879
  # count: {
880
+ # custom_request_handling: {
881
+ # insert_headers: [ # required
882
+ # {
883
+ # name: "CustomHTTPHeaderName", # required
884
+ # value: "CustomHTTPHeaderValue", # required
885
+ # },
886
+ # ],
887
+ # },
792
888
  # },
793
889
  # none: {
794
890
  # },
@@ -843,16 +939,46 @@ module Aws::WAFV2
843
939
  include Aws::Structure
844
940
  end
845
941
 
846
- # Specifies that AWS WAF should count requests.
942
+ # Specifies that AWS WAF should count the request. Optionally defines
943
+ # additional custom handling for the request.
847
944
  #
848
- # This is used only in the context of other settings, for example to
849
- # specify values for RuleAction and web ACL DefaultAction.
945
+ # This is used in the context of other settings, for example to specify
946
+ # values for RuleAction and web ACL DefaultAction.
850
947
  #
851
- # @api private
948
+ # @note When making an API call, you may pass CountAction
949
+ # data as a hash:
950
+ #
951
+ # {
952
+ # custom_request_handling: {
953
+ # insert_headers: [ # required
954
+ # {
955
+ # name: "CustomHTTPHeaderName", # required
956
+ # value: "CustomHTTPHeaderValue", # required
957
+ # },
958
+ # ],
959
+ # },
960
+ # }
961
+ #
962
+ # @!attribute [rw] custom_request_handling
963
+ # Defines custom handling for the web request.
964
+ #
965
+ # For information about customizing web requests and responses, see
966
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS
967
+ # WAF Developer Guide][2].
968
+ #
969
+ #
970
+ #
971
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
972
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
973
+ # @return [Types::CustomRequestHandling]
852
974
  #
853
975
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CountAction AWS API Documentation
854
976
  #
855
- class CountAction < Aws::EmptyStructure; end
977
+ class CountAction < Struct.new(
978
+ :custom_request_handling)
979
+ SENSITIVE = []
980
+ include Aws::Structure
981
+ end
856
982
 
857
983
  # @note When making an API call, you may pass CreateIPSetRequest
858
984
  # data as a hash:
@@ -1304,14 +1430,48 @@ module Aws::WAFV2
1304
1430
  # },
1305
1431
  # action: {
1306
1432
  # block: {
1433
+ # custom_response: {
1434
+ # response_code: 1, # required
1435
+ # custom_response_body_key: "EntityName",
1436
+ # response_headers: [
1437
+ # {
1438
+ # name: "CustomHTTPHeaderName", # required
1439
+ # value: "CustomHTTPHeaderValue", # required
1440
+ # },
1441
+ # ],
1442
+ # },
1307
1443
  # },
1308
1444
  # allow: {
1445
+ # custom_request_handling: {
1446
+ # insert_headers: [ # required
1447
+ # {
1448
+ # name: "CustomHTTPHeaderName", # required
1449
+ # value: "CustomHTTPHeaderValue", # required
1450
+ # },
1451
+ # ],
1452
+ # },
1309
1453
  # },
1310
1454
  # count: {
1455
+ # custom_request_handling: {
1456
+ # insert_headers: [ # required
1457
+ # {
1458
+ # name: "CustomHTTPHeaderName", # required
1459
+ # value: "CustomHTTPHeaderValue", # required
1460
+ # },
1461
+ # ],
1462
+ # },
1311
1463
  # },
1312
1464
  # },
1313
1465
  # override_action: {
1314
1466
  # count: {
1467
+ # custom_request_handling: {
1468
+ # insert_headers: [ # required
1469
+ # {
1470
+ # name: "CustomHTTPHeaderName", # required
1471
+ # value: "CustomHTTPHeaderValue", # required
1472
+ # },
1473
+ # ],
1474
+ # },
1315
1475
  # },
1316
1476
  # none: {
1317
1477
  # },
@@ -1334,6 +1494,12 @@ module Aws::WAFV2
1334
1494
  # value: "TagValue", # required
1335
1495
  # },
1336
1496
  # ],
1497
+ # custom_response_bodies: {
1498
+ # "EntityName" => {
1499
+ # content_type: "TEXT_PLAIN", # required, accepts TEXT_PLAIN, TEXT_HTML, APPLICATION_JSON
1500
+ # content: "ResponseContent", # required
1501
+ # },
1502
+ # },
1337
1503
  # }
1338
1504
  #
1339
1505
  # @!attribute [rw] name
@@ -1394,6 +1560,27 @@ module Aws::WAFV2
1394
1560
  # An array of key:value pairs to associate with the resource.
1395
1561
  # @return [Array<Types::Tag>]
1396
1562
  #
1563
+ # @!attribute [rw] custom_response_bodies
1564
+ # A map of custom response keys and content bodies. When you create a
1565
+ # rule with a block action, you can send a custom response to the web
1566
+ # request. You define these for the rule group, and then use them in
1567
+ # the rules that you define in the rule group.
1568
+ #
1569
+ # For information about customizing web requests and responses, see
1570
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS
1571
+ # WAF Developer Guide][2].
1572
+ #
1573
+ # For information about the limits on count and size for custom
1574
+ # request and response settings, see [AWS WAF quotas][3] in the [AWS
1575
+ # WAF Developer Guide][2].
1576
+ #
1577
+ #
1578
+ #
1579
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
1580
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
1581
+ # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
1582
+ # @return [Hash<String,Types::CustomResponseBody>]
1583
+ #
1397
1584
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRuleGroupRequest AWS API Documentation
1398
1585
  #
1399
1586
  class CreateRuleGroupRequest < Struct.new(
@@ -1403,7 +1590,8 @@ module Aws::WAFV2
1403
1590
  :description,
1404
1591
  :rules,
1405
1592
  :visibility_config,
1406
- :tags)
1593
+ :tags,
1594
+ :custom_response_bodies)
1407
1595
  SENSITIVE = []
1408
1596
  include Aws::Structure
1409
1597
  end
@@ -1432,8 +1620,26 @@ module Aws::WAFV2
1432
1620
  # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
1433
1621
  # default_action: { # required
1434
1622
  # block: {
1623
+ # custom_response: {
1624
+ # response_code: 1, # required
1625
+ # custom_response_body_key: "EntityName",
1626
+ # response_headers: [
1627
+ # {
1628
+ # name: "CustomHTTPHeaderName", # required
1629
+ # value: "CustomHTTPHeaderValue", # required
1630
+ # },
1631
+ # ],
1632
+ # },
1435
1633
  # },
1436
1634
  # allow: {
1635
+ # custom_request_handling: {
1636
+ # insert_headers: [ # required
1637
+ # {
1638
+ # name: "CustomHTTPHeaderName", # required
1639
+ # value: "CustomHTTPHeaderValue", # required
1640
+ # },
1641
+ # ],
1642
+ # },
1437
1643
  # },
1438
1644
  # },
1439
1645
  # description: "EntityDescription",
@@ -1687,14 +1893,48 @@ module Aws::WAFV2
1687
1893
  # },
1688
1894
  # action: {
1689
1895
  # block: {
1896
+ # custom_response: {
1897
+ # response_code: 1, # required
1898
+ # custom_response_body_key: "EntityName",
1899
+ # response_headers: [
1900
+ # {
1901
+ # name: "CustomHTTPHeaderName", # required
1902
+ # value: "CustomHTTPHeaderValue", # required
1903
+ # },
1904
+ # ],
1905
+ # },
1690
1906
  # },
1691
1907
  # allow: {
1908
+ # custom_request_handling: {
1909
+ # insert_headers: [ # required
1910
+ # {
1911
+ # name: "CustomHTTPHeaderName", # required
1912
+ # value: "CustomHTTPHeaderValue", # required
1913
+ # },
1914
+ # ],
1915
+ # },
1692
1916
  # },
1693
1917
  # count: {
1918
+ # custom_request_handling: {
1919
+ # insert_headers: [ # required
1920
+ # {
1921
+ # name: "CustomHTTPHeaderName", # required
1922
+ # value: "CustomHTTPHeaderValue", # required
1923
+ # },
1924
+ # ],
1925
+ # },
1694
1926
  # },
1695
1927
  # },
1696
1928
  # override_action: {
1697
1929
  # count: {
1930
+ # custom_request_handling: {
1931
+ # insert_headers: [ # required
1932
+ # {
1933
+ # name: "CustomHTTPHeaderName", # required
1934
+ # value: "CustomHTTPHeaderValue", # required
1935
+ # },
1936
+ # ],
1937
+ # },
1698
1938
  # },
1699
1939
  # none: {
1700
1940
  # },
@@ -1717,6 +1957,12 @@ module Aws::WAFV2
1717
1957
  # value: "TagValue", # required
1718
1958
  # },
1719
1959
  # ],
1960
+ # custom_response_bodies: {
1961
+ # "EntityName" => {
1962
+ # content_type: "TEXT_PLAIN", # required, accepts TEXT_PLAIN, TEXT_HTML, APPLICATION_JSON
1963
+ # content: "ResponseContent", # required
1964
+ # },
1965
+ # },
1720
1966
  # }
1721
1967
  #
1722
1968
  # @!attribute [rw] name
@@ -1764,6 +2010,27 @@ module Aws::WAFV2
1764
2010
  # An array of key:value pairs to associate with the resource.
1765
2011
  # @return [Array<Types::Tag>]
1766
2012
  #
2013
+ # @!attribute [rw] custom_response_bodies
2014
+ # A map of custom response keys and content bodies. When you create a
2015
+ # rule with a block action, you can send a custom response to the web
2016
+ # request. You define these for the web ACL, and then use them in the
2017
+ # rules and default actions that you define in the web ACL.
2018
+ #
2019
+ # For information about customizing web requests and responses, see
2020
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS
2021
+ # WAF Developer Guide][2].
2022
+ #
2023
+ # For information about the limits on count and size for custom
2024
+ # request and response settings, see [AWS WAF quotas][3] in the [AWS
2025
+ # WAF Developer Guide][2].
2026
+ #
2027
+ #
2028
+ #
2029
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
2030
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2031
+ # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
2032
+ # @return [Hash<String,Types::CustomResponseBody>]
2033
+ #
1767
2034
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateWebACLRequest AWS API Documentation
1768
2035
  #
1769
2036
  class CreateWebACLRequest < Struct.new(
@@ -1773,7 +2040,8 @@ module Aws::WAFV2
1773
2040
  :description,
1774
2041
  :rules,
1775
2042
  :visibility_config,
1776
- :tags)
2043
+ :tags,
2044
+ :custom_response_bodies)
1777
2045
  SENSITIVE = []
1778
2046
  include Aws::Structure
1779
2047
  end
@@ -1793,17 +2061,232 @@ module Aws::WAFV2
1793
2061
  include Aws::Structure
1794
2062
  end
1795
2063
 
2064
+ # A custom header for custom request and response handling. This is used
2065
+ # in CustomResponse and CustomRequestHandling.
2066
+ #
2067
+ # @note When making an API call, you may pass CustomHTTPHeader
2068
+ # data as a hash:
2069
+ #
2070
+ # {
2071
+ # name: "CustomHTTPHeaderName", # required
2072
+ # value: "CustomHTTPHeaderValue", # required
2073
+ # }
2074
+ #
2075
+ # @!attribute [rw] name
2076
+ # The name of the custom header.
2077
+ #
2078
+ # For custom request header insertion, when AWS WAF inserts the header
2079
+ # into the request, it prefixes this name `x-amzn-waf-`, to avoid
2080
+ # confusion with the headers that are already in the request. For
2081
+ # example, for the header name `sample`, AWS WAF inserts the header
2082
+ # `x-amzn-waf-sample`.
2083
+ # @return [String]
2084
+ #
2085
+ # @!attribute [rw] value
2086
+ # The value of the custom header.
2087
+ # @return [String]
2088
+ #
2089
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CustomHTTPHeader AWS API Documentation
2090
+ #
2091
+ class CustomHTTPHeader < Struct.new(
2092
+ :name,
2093
+ :value)
2094
+ SENSITIVE = []
2095
+ include Aws::Structure
2096
+ end
2097
+
2098
+ # Custom request handling behavior that inserts custom headers into a
2099
+ # web request. You can add custom request handling for the rule actions
2100
+ # allow and count.
2101
+ #
2102
+ # For information about customizing web requests and responses, see
2103
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS WAF
2104
+ # Developer Guide][2].
2105
+ #
2106
+ #
2107
+ #
2108
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
2109
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2110
+ #
2111
+ # @note When making an API call, you may pass CustomRequestHandling
2112
+ # data as a hash:
2113
+ #
2114
+ # {
2115
+ # insert_headers: [ # required
2116
+ # {
2117
+ # name: "CustomHTTPHeaderName", # required
2118
+ # value: "CustomHTTPHeaderValue", # required
2119
+ # },
2120
+ # ],
2121
+ # }
2122
+ #
2123
+ # @!attribute [rw] insert_headers
2124
+ # The HTTP headers to insert into the request. Duplicate header names
2125
+ # are not allowed.
2126
+ #
2127
+ # For information about the limits on count and size for custom
2128
+ # request and response settings, see [AWS WAF quotas][1] in the [AWS
2129
+ # WAF Developer Guide][2].
2130
+ #
2131
+ #
2132
+ #
2133
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
2134
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2135
+ # @return [Array<Types::CustomHTTPHeader>]
2136
+ #
2137
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CustomRequestHandling AWS API Documentation
2138
+ #
2139
+ class CustomRequestHandling < Struct.new(
2140
+ :insert_headers)
2141
+ SENSITIVE = []
2142
+ include Aws::Structure
2143
+ end
2144
+
2145
+ # A custom response to send to the client. You can define a custom
2146
+ # response for rule actions and default web ACL actions that are set to
2147
+ # BlockAction.
2148
+ #
2149
+ # For information about customizing web requests and responses, see
2150
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS WAF
2151
+ # Developer Guide][2].
2152
+ #
2153
+ #
2154
+ #
2155
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
2156
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2157
+ #
2158
+ # @note When making an API call, you may pass CustomResponse
2159
+ # data as a hash:
2160
+ #
2161
+ # {
2162
+ # response_code: 1, # required
2163
+ # custom_response_body_key: "EntityName",
2164
+ # response_headers: [
2165
+ # {
2166
+ # name: "CustomHTTPHeaderName", # required
2167
+ # value: "CustomHTTPHeaderValue", # required
2168
+ # },
2169
+ # ],
2170
+ # }
2171
+ #
2172
+ # @!attribute [rw] response_code
2173
+ # The HTTP status code to return to the client.
2174
+ #
2175
+ # For a list of status codes that you can use in your custom
2176
+ # reqponses, see [Supported status codes for custom response][1] in
2177
+ # the [AWS WAF Developer Guide][2].
2178
+ #
2179
+ #
2180
+ #
2181
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/customizing-the-response-status-codes.html
2182
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2183
+ # @return [Integer]
2184
+ #
2185
+ # @!attribute [rw] custom_response_body_key
2186
+ # References the response body that you want AWS WAF to return to the
2187
+ # web request client. You can define a custom response for a rule
2188
+ # action or a default web ACL action that is set to block. To do this,
2189
+ # you first define the response body key and value in the
2190
+ # `CustomResponseBodies` setting for the WebACL or RuleGroup where you
2191
+ # want to use it. Then, in the rule action or web ACL default action
2192
+ # `BlockAction` setting, you reference the response body using this
2193
+ # key.
2194
+ # @return [String]
2195
+ #
2196
+ # @!attribute [rw] response_headers
2197
+ # The HTTP headers to use in the response. Duplicate header names are
2198
+ # not allowed.
2199
+ #
2200
+ # For information about the limits on count and size for custom
2201
+ # request and response settings, see [AWS WAF quotas][1] in the [AWS
2202
+ # WAF Developer Guide][2].
2203
+ #
2204
+ #
2205
+ #
2206
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
2207
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2208
+ # @return [Array<Types::CustomHTTPHeader>]
2209
+ #
2210
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CustomResponse AWS API Documentation
2211
+ #
2212
+ class CustomResponse < Struct.new(
2213
+ :response_code,
2214
+ :custom_response_body_key,
2215
+ :response_headers)
2216
+ SENSITIVE = []
2217
+ include Aws::Structure
2218
+ end
2219
+
2220
+ # The response body to use in a custom response to a web request. This
2221
+ # is referenced by key from CustomResponse `CustomResponseBodyKey`.
2222
+ #
2223
+ # @note When making an API call, you may pass CustomResponseBody
2224
+ # data as a hash:
2225
+ #
2226
+ # {
2227
+ # content_type: "TEXT_PLAIN", # required, accepts TEXT_PLAIN, TEXT_HTML, APPLICATION_JSON
2228
+ # content: "ResponseContent", # required
2229
+ # }
2230
+ #
2231
+ # @!attribute [rw] content_type
2232
+ # The type of content in the payload that you are defining in the
2233
+ # `Content` string.
2234
+ # @return [String]
2235
+ #
2236
+ # @!attribute [rw] content
2237
+ # The payload of the custom response.
2238
+ #
2239
+ # You can use JSON escape strings in JSON content. To do this, you
2240
+ # must specify JSON content in the `ContentType` setting.
2241
+ #
2242
+ # For information about the limits on count and size for custom
2243
+ # request and response settings, see [AWS WAF quotas][1] in the [AWS
2244
+ # WAF Developer Guide][2].
2245
+ #
2246
+ #
2247
+ #
2248
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
2249
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
2250
+ # @return [String]
2251
+ #
2252
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CustomResponseBody AWS API Documentation
2253
+ #
2254
+ class CustomResponseBody < Struct.new(
2255
+ :content_type,
2256
+ :content)
2257
+ SENSITIVE = []
2258
+ include Aws::Structure
2259
+ end
2260
+
1796
2261
  # In a WebACL, this is the action that you want AWS WAF to perform when
1797
2262
  # a web request doesn't match any of the rules in the `WebACL`. The
1798
- # default action must be a terminating action, so count is not allowed.
2263
+ # default action must be a terminating action, so you can't use count.
1799
2264
  #
1800
2265
  # @note When making an API call, you may pass DefaultAction
1801
2266
  # data as a hash:
1802
2267
  #
1803
2268
  # {
1804
2269
  # block: {
2270
+ # custom_response: {
2271
+ # response_code: 1, # required
2272
+ # custom_response_body_key: "EntityName",
2273
+ # response_headers: [
2274
+ # {
2275
+ # name: "CustomHTTPHeaderName", # required
2276
+ # value: "CustomHTTPHeaderValue", # required
2277
+ # },
2278
+ # ],
2279
+ # },
1805
2280
  # },
1806
2281
  # allow: {
2282
+ # custom_request_handling: {
2283
+ # insert_headers: [ # required
2284
+ # {
2285
+ # name: "CustomHTTPHeaderName", # required
2286
+ # value: "CustomHTTPHeaderValue", # required
2287
+ # },
2288
+ # ],
2289
+ # },
1807
2290
  # },
1808
2291
  # }
1809
2292
  #
@@ -3544,12 +4027,12 @@ module Aws::WAFV2
3544
4027
  # @return [String]
3545
4028
  #
3546
4029
  # @!attribute [rw] invalid_fallback_behavior
3547
- # What AWS WAF should do if it fails to completely parse the JSON
3548
- # body. The options are the following:
4030
+ # The inspection behavior to fall back to if the JSON in the request
4031
+ # body is invalid. For AWS WAF, invalid JSON is any content that
4032
+ # isn't complete syntactical JSON, content whose root node isn't an
4033
+ # object or an array, and duplicate keys in the content.
3549
4034
  #
3550
- # * `EVALUATE_AS_STRING` - Inspect the body as plain text. AWS WAF
3551
- # applies the text transformations and inspection criteria that you
3552
- # defined for the JSON inspection to the body text string.
4035
+ # You can specify the following fallback behaviors:
3553
4036
  #
3554
4037
  # * `MATCH` - Treat the web request as matching the rule statement.
3555
4038
  # AWS WAF applies the rule action to the request.
@@ -3557,22 +4040,13 @@ module Aws::WAFV2
3557
4040
  # * `NO_MATCH` - Treat the web request as not matching the rule
3558
4041
  # statement.
3559
4042
  #
3560
- # If you don't provide this setting, AWS WAF parses and evaluates the
3561
- # content only up to the first parsing failure that it encounters.
3562
- #
3563
- # AWS WAF does its best to parse the entire JSON body, but might be
3564
- # forced to stop for reasons such as invalid characters, duplicate
3565
- # keys, truncation, and any content whose root node isn't an object
3566
- # or an array.
3567
- #
3568
- # AWS WAF parses the JSON in the following examples as two valid key,
3569
- # value pairs:
3570
- #
3571
- # * Missing comma: `\{"key1":"value1""key2":"value2"\}`
3572
- #
3573
- # * Missing colon: `\{"key1":"value1","key2""value2"\}`
4043
+ # * `EVALUATE_AS_STRING` - Inspect the body as plain text. This option
4044
+ # applies the text transformations and inspection criteria that you
4045
+ # defined for the JSON inspection to the body text string.
3574
4046
  #
3575
- # * Extra colons: `\{"key1"::"value1","key2""value2"\}`
4047
+ # If you don't provide this setting, when AWS WAF encounters invalid
4048
+ # JSON, it parses and inspects what it can, up to the first invalid
4049
+ # JSON that it encounters.
3576
4050
  # @return [String]
3577
4051
  #
3578
4052
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/JsonBody AWS API Documentation
@@ -4329,8 +4803,8 @@ module Aws::WAFV2
4329
4803
  # try out a rule without performing any actions. You set the
4330
4804
  # `OverrideAction` on the Rule.
4331
4805
  #
4332
- # This is used only in the context of other settings, for example to
4333
- # specify values for RuleAction and web ACL DefaultAction.
4806
+ # This is used in the context of other settings, for example to specify
4807
+ # values for RuleAction and web ACL DefaultAction.
4334
4808
  #
4335
4809
  # @api private
4336
4810
  #
@@ -4890,6 +5364,14 @@ module Aws::WAFV2
4890
5364
  #
4891
5365
  # {
4892
5366
  # count: {
5367
+ # custom_request_handling: {
5368
+ # insert_headers: [ # required
5369
+ # {
5370
+ # name: "CustomHTTPHeaderName", # required
5371
+ # value: "CustomHTTPHeaderValue", # required
5372
+ # },
5373
+ # ],
5374
+ # },
4893
5375
  # },
4894
5376
  # none: {
4895
5377
  # },
@@ -5847,14 +6329,48 @@ module Aws::WAFV2
5847
6329
  # },
5848
6330
  # action: {
5849
6331
  # block: {
6332
+ # custom_response: {
6333
+ # response_code: 1, # required
6334
+ # custom_response_body_key: "EntityName",
6335
+ # response_headers: [
6336
+ # {
6337
+ # name: "CustomHTTPHeaderName", # required
6338
+ # value: "CustomHTTPHeaderValue", # required
6339
+ # },
6340
+ # ],
6341
+ # },
5850
6342
  # },
5851
6343
  # allow: {
6344
+ # custom_request_handling: {
6345
+ # insert_headers: [ # required
6346
+ # {
6347
+ # name: "CustomHTTPHeaderName", # required
6348
+ # value: "CustomHTTPHeaderValue", # required
6349
+ # },
6350
+ # ],
6351
+ # },
5852
6352
  # },
5853
6353
  # count: {
6354
+ # custom_request_handling: {
6355
+ # insert_headers: [ # required
6356
+ # {
6357
+ # name: "CustomHTTPHeaderName", # required
6358
+ # value: "CustomHTTPHeaderValue", # required
6359
+ # },
6360
+ # ],
6361
+ # },
5854
6362
  # },
5855
6363
  # },
5856
6364
  # override_action: {
5857
6365
  # count: {
6366
+ # custom_request_handling: {
6367
+ # insert_headers: [ # required
6368
+ # {
6369
+ # name: "CustomHTTPHeaderName", # required
6370
+ # value: "CustomHTTPHeaderValue", # required
6371
+ # },
6372
+ # ],
6373
+ # },
5858
6374
  # },
5859
6375
  # none: {
5860
6376
  # },
@@ -5949,10 +6465,36 @@ module Aws::WAFV2
5949
6465
  #
5950
6466
  # {
5951
6467
  # block: {
6468
+ # custom_response: {
6469
+ # response_code: 1, # required
6470
+ # custom_response_body_key: "EntityName",
6471
+ # response_headers: [
6472
+ # {
6473
+ # name: "CustomHTTPHeaderName", # required
6474
+ # value: "CustomHTTPHeaderValue", # required
6475
+ # },
6476
+ # ],
6477
+ # },
5952
6478
  # },
5953
6479
  # allow: {
6480
+ # custom_request_handling: {
6481
+ # insert_headers: [ # required
6482
+ # {
6483
+ # name: "CustomHTTPHeaderName", # required
6484
+ # value: "CustomHTTPHeaderValue", # required
6485
+ # },
6486
+ # ],
6487
+ # },
5954
6488
  # },
5955
6489
  # count: {
6490
+ # custom_request_handling: {
6491
+ # insert_headers: [ # required
6492
+ # {
6493
+ # name: "CustomHTTPHeaderName", # required
6494
+ # value: "CustomHTTPHeaderValue", # required
6495
+ # },
6496
+ # ],
6497
+ # },
5956
6498
  # },
5957
6499
  # }
5958
6500
  #
@@ -6033,6 +6575,27 @@ module Aws::WAFV2
6033
6575
  # collection.
6034
6576
  # @return [Types::VisibilityConfig]
6035
6577
  #
6578
+ # @!attribute [rw] custom_response_bodies
6579
+ # A map of custom response keys and content bodies. When you create a
6580
+ # rule with a block action, you can send a custom response to the web
6581
+ # request. You define these for the rule group, and then use them in
6582
+ # the rules that you define in the rule group.
6583
+ #
6584
+ # For information about customizing web requests and responses, see
6585
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS
6586
+ # WAF Developer Guide][2].
6587
+ #
6588
+ # For information about the limits on count and size for custom
6589
+ # request and response settings, see [AWS WAF quotas][3] in the [AWS
6590
+ # WAF Developer Guide][2].
6591
+ #
6592
+ #
6593
+ #
6594
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
6595
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
6596
+ # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
6597
+ # @return [Hash<String,Types::CustomResponseBody>]
6598
+ #
6036
6599
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/RuleGroup AWS API Documentation
6037
6600
  #
6038
6601
  class RuleGroup < Struct.new(
@@ -6042,7 +6605,8 @@ module Aws::WAFV2
6042
6605
  :arn,
6043
6606
  :description,
6044
6607
  :rules,
6045
- :visibility_config)
6608
+ :visibility_config,
6609
+ :custom_response_bodies)
6046
6610
  SENSITIVE = []
6047
6611
  include Aws::Structure
6048
6612
  end
@@ -6194,6 +6758,16 @@ module Aws::WAFV2
6194
6758
  # a rule group, this field is absent.
6195
6759
  # @return [String]
6196
6760
  #
6761
+ # @!attribute [rw] request_headers_inserted
6762
+ # Custom request headers inserted by AWS WAF into the request,
6763
+ # according to the custom request configuration for the matching rule
6764
+ # action.
6765
+ # @return [Array<Types::HTTPHeader>]
6766
+ #
6767
+ # @!attribute [rw] response_code_sent
6768
+ # The response code that was sent for the request.
6769
+ # @return [Integer]
6770
+ #
6197
6771
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/SampledHTTPRequest AWS API Documentation
6198
6772
  #
6199
6773
  class SampledHTTPRequest < Struct.new(
@@ -6201,7 +6775,9 @@ module Aws::WAFV2
6201
6775
  :weight,
6202
6776
  :timestamp,
6203
6777
  :action,
6204
- :rule_name_within_rule_group)
6778
+ :rule_name_within_rule_group,
6779
+ :request_headers_inserted,
6780
+ :response_code_sent)
6205
6781
  SENSITIVE = []
6206
6782
  include Aws::Structure
6207
6783
  end
@@ -8537,14 +9113,48 @@ module Aws::WAFV2
8537
9113
  # },
8538
9114
  # action: {
8539
9115
  # block: {
9116
+ # custom_response: {
9117
+ # response_code: 1, # required
9118
+ # custom_response_body_key: "EntityName",
9119
+ # response_headers: [
9120
+ # {
9121
+ # name: "CustomHTTPHeaderName", # required
9122
+ # value: "CustomHTTPHeaderValue", # required
9123
+ # },
9124
+ # ],
9125
+ # },
8540
9126
  # },
8541
9127
  # allow: {
9128
+ # custom_request_handling: {
9129
+ # insert_headers: [ # required
9130
+ # {
9131
+ # name: "CustomHTTPHeaderName", # required
9132
+ # value: "CustomHTTPHeaderValue", # required
9133
+ # },
9134
+ # ],
9135
+ # },
8542
9136
  # },
8543
9137
  # count: {
9138
+ # custom_request_handling: {
9139
+ # insert_headers: [ # required
9140
+ # {
9141
+ # name: "CustomHTTPHeaderName", # required
9142
+ # value: "CustomHTTPHeaderValue", # required
9143
+ # },
9144
+ # ],
9145
+ # },
8544
9146
  # },
8545
9147
  # },
8546
9148
  # override_action: {
8547
9149
  # count: {
9150
+ # custom_request_handling: {
9151
+ # insert_headers: [ # required
9152
+ # {
9153
+ # name: "CustomHTTPHeaderName", # required
9154
+ # value: "CustomHTTPHeaderValue", # required
9155
+ # },
9156
+ # ],
9157
+ # },
8548
9158
  # },
8549
9159
  # none: {
8550
9160
  # },
@@ -8562,6 +9172,12 @@ module Aws::WAFV2
8562
9172
  # metric_name: "MetricName", # required
8563
9173
  # },
8564
9174
  # lock_token: "LockToken", # required
9175
+ # custom_response_bodies: {
9176
+ # "EntityName" => {
9177
+ # content_type: "TEXT_PLAIN", # required, accepts TEXT_PLAIN, TEXT_HTML, APPLICATION_JSON
9178
+ # content: "ResponseContent", # required
9179
+ # },
9180
+ # },
8565
9181
  # }
8566
9182
  #
8567
9183
  # @!attribute [rw] name
@@ -8618,6 +9234,27 @@ module Aws::WAFV2
8618
9234
  # operation.
8619
9235
  # @return [String]
8620
9236
  #
9237
+ # @!attribute [rw] custom_response_bodies
9238
+ # A map of custom response keys and content bodies. When you create a
9239
+ # rule with a block action, you can send a custom response to the web
9240
+ # request. You define these for the rule group, and then use them in
9241
+ # the rules that you define in the rule group.
9242
+ #
9243
+ # For information about customizing web requests and responses, see
9244
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS
9245
+ # WAF Developer Guide][2].
9246
+ #
9247
+ # For information about the limits on count and size for custom
9248
+ # request and response settings, see [AWS WAF quotas][3] in the [AWS
9249
+ # WAF Developer Guide][2].
9250
+ #
9251
+ #
9252
+ #
9253
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
9254
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
9255
+ # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
9256
+ # @return [Hash<String,Types::CustomResponseBody>]
9257
+ #
8621
9258
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRuleGroupRequest AWS API Documentation
8622
9259
  #
8623
9260
  class UpdateRuleGroupRequest < Struct.new(
@@ -8627,7 +9264,8 @@ module Aws::WAFV2
8627
9264
  :description,
8628
9265
  :rules,
8629
9266
  :visibility_config,
8630
- :lock_token)
9267
+ :lock_token,
9268
+ :custom_response_bodies)
8631
9269
  SENSITIVE = []
8632
9270
  include Aws::Structure
8633
9271
  end
@@ -8655,8 +9293,26 @@ module Aws::WAFV2
8655
9293
  # id: "EntityId", # required
8656
9294
  # default_action: { # required
8657
9295
  # block: {
9296
+ # custom_response: {
9297
+ # response_code: 1, # required
9298
+ # custom_response_body_key: "EntityName",
9299
+ # response_headers: [
9300
+ # {
9301
+ # name: "CustomHTTPHeaderName", # required
9302
+ # value: "CustomHTTPHeaderValue", # required
9303
+ # },
9304
+ # ],
9305
+ # },
8658
9306
  # },
8659
9307
  # allow: {
9308
+ # custom_request_handling: {
9309
+ # insert_headers: [ # required
9310
+ # {
9311
+ # name: "CustomHTTPHeaderName", # required
9312
+ # value: "CustomHTTPHeaderValue", # required
9313
+ # },
9314
+ # ],
9315
+ # },
8660
9316
  # },
8661
9317
  # },
8662
9318
  # description: "EntityDescription",
@@ -8910,14 +9566,48 @@ module Aws::WAFV2
8910
9566
  # },
8911
9567
  # action: {
8912
9568
  # block: {
9569
+ # custom_response: {
9570
+ # response_code: 1, # required
9571
+ # custom_response_body_key: "EntityName",
9572
+ # response_headers: [
9573
+ # {
9574
+ # name: "CustomHTTPHeaderName", # required
9575
+ # value: "CustomHTTPHeaderValue", # required
9576
+ # },
9577
+ # ],
9578
+ # },
8913
9579
  # },
8914
9580
  # allow: {
9581
+ # custom_request_handling: {
9582
+ # insert_headers: [ # required
9583
+ # {
9584
+ # name: "CustomHTTPHeaderName", # required
9585
+ # value: "CustomHTTPHeaderValue", # required
9586
+ # },
9587
+ # ],
9588
+ # },
8915
9589
  # },
8916
9590
  # count: {
9591
+ # custom_request_handling: {
9592
+ # insert_headers: [ # required
9593
+ # {
9594
+ # name: "CustomHTTPHeaderName", # required
9595
+ # value: "CustomHTTPHeaderValue", # required
9596
+ # },
9597
+ # ],
9598
+ # },
8917
9599
  # },
8918
9600
  # },
8919
9601
  # override_action: {
8920
9602
  # count: {
9603
+ # custom_request_handling: {
9604
+ # insert_headers: [ # required
9605
+ # {
9606
+ # name: "CustomHTTPHeaderName", # required
9607
+ # value: "CustomHTTPHeaderValue", # required
9608
+ # },
9609
+ # ],
9610
+ # },
8921
9611
  # },
8922
9612
  # none: {
8923
9613
  # },
@@ -8935,6 +9625,12 @@ module Aws::WAFV2
8935
9625
  # metric_name: "MetricName", # required
8936
9626
  # },
8937
9627
  # lock_token: "LockToken", # required
9628
+ # custom_response_bodies: {
9629
+ # "EntityName" => {
9630
+ # content_type: "TEXT_PLAIN", # required, accepts TEXT_PLAIN, TEXT_HTML, APPLICATION_JSON
9631
+ # content: "ResponseContent", # required
9632
+ # },
9633
+ # },
8938
9634
  # }
8939
9635
  #
8940
9636
  # @!attribute [rw] name
@@ -8996,6 +9692,27 @@ module Aws::WAFV2
8996
9692
  # operation.
8997
9693
  # @return [String]
8998
9694
  #
9695
+ # @!attribute [rw] custom_response_bodies
9696
+ # A map of custom response keys and content bodies. When you create a
9697
+ # rule with a block action, you can send a custom response to the web
9698
+ # request. You define these for the web ACL, and then use them in the
9699
+ # rules and default actions that you define in the web ACL.
9700
+ #
9701
+ # For information about customizing web requests and responses, see
9702
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS
9703
+ # WAF Developer Guide][2].
9704
+ #
9705
+ # For information about the limits on count and size for custom
9706
+ # request and response settings, see [AWS WAF quotas][3] in the [AWS
9707
+ # WAF Developer Guide][2].
9708
+ #
9709
+ #
9710
+ #
9711
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
9712
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
9713
+ # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
9714
+ # @return [Hash<String,Types::CustomResponseBody>]
9715
+ #
8999
9716
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateWebACLRequest AWS API Documentation
9000
9717
  #
9001
9718
  class UpdateWebACLRequest < Struct.new(
@@ -9006,7 +9723,8 @@ module Aws::WAFV2
9006
9723
  :description,
9007
9724
  :rules,
9008
9725
  :visibility_config,
9009
- :lock_token)
9726
+ :lock_token,
9727
+ :custom_response_bodies)
9010
9728
  SENSITIVE = []
9011
9729
  include Aws::Structure
9012
9730
  end
@@ -9442,6 +10160,27 @@ module Aws::WAFV2
9442
10160
  # any Firewall Manager rule groups in the web ACL.
9443
10161
  # @return [Boolean]
9444
10162
  #
10163
+ # @!attribute [rw] custom_response_bodies
10164
+ # A map of custom response keys and content bodies. When you create a
10165
+ # rule with a block action, you can send a custom response to the web
10166
+ # request. You define these for the web ACL, and then use them in the
10167
+ # rules and default actions that you define in the web ACL.
10168
+ #
10169
+ # For information about customizing web requests and responses, see
10170
+ # [Customizing web requests and responses in AWS WAF][1] in the [AWS
10171
+ # WAF Developer Guide][2].
10172
+ #
10173
+ # For information about the limits on count and size for custom
10174
+ # request and response settings, see [AWS WAF quotas][3] in the [AWS
10175
+ # WAF Developer Guide][2].
10176
+ #
10177
+ #
10178
+ #
10179
+ # [1]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html
10180
+ # [2]: https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html
10181
+ # [3]: https://docs.aws.amazon.com/waf/latest/developerguide/limits.html
10182
+ # @return [Hash<String,Types::CustomResponseBody>]
10183
+ #
9445
10184
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/WebACL AWS API Documentation
9446
10185
  #
9447
10186
  class WebACL < Struct.new(
@@ -9455,7 +10194,8 @@ module Aws::WAFV2
9455
10194
  :capacity,
9456
10195
  :pre_process_firewall_manager_rule_groups,
9457
10196
  :post_process_firewall_manager_rule_groups,
9458
- :managed_by_firewall_manager)
10197
+ :managed_by_firewall_manager,
10198
+ :custom_response_bodies)
9459
10199
  SENSITIVE = []
9460
10200
  include Aws::Structure
9461
10201
  end