aws-sdk-waf 1.2.0 → 1.3.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.
@@ -39,6 +39,8 @@ module Aws::WAF
39
39
  CreateRegexMatchSetResponse = Shapes::StructureShape.new(name: 'CreateRegexMatchSetResponse')
40
40
  CreateRegexPatternSetRequest = Shapes::StructureShape.new(name: 'CreateRegexPatternSetRequest')
41
41
  CreateRegexPatternSetResponse = Shapes::StructureShape.new(name: 'CreateRegexPatternSetResponse')
42
+ CreateRuleGroupRequest = Shapes::StructureShape.new(name: 'CreateRuleGroupRequest')
43
+ CreateRuleGroupResponse = Shapes::StructureShape.new(name: 'CreateRuleGroupResponse')
42
44
  CreateRuleRequest = Shapes::StructureShape.new(name: 'CreateRuleRequest')
43
45
  CreateRuleResponse = Shapes::StructureShape.new(name: 'CreateRuleResponse')
44
46
  CreateSizeConstraintSetRequest = Shapes::StructureShape.new(name: 'CreateSizeConstraintSetRequest')
@@ -61,6 +63,8 @@ module Aws::WAF
61
63
  DeleteRegexMatchSetResponse = Shapes::StructureShape.new(name: 'DeleteRegexMatchSetResponse')
62
64
  DeleteRegexPatternSetRequest = Shapes::StructureShape.new(name: 'DeleteRegexPatternSetRequest')
63
65
  DeleteRegexPatternSetResponse = Shapes::StructureShape.new(name: 'DeleteRegexPatternSetResponse')
66
+ DeleteRuleGroupRequest = Shapes::StructureShape.new(name: 'DeleteRuleGroupRequest')
67
+ DeleteRuleGroupResponse = Shapes::StructureShape.new(name: 'DeleteRuleGroupResponse')
64
68
  DeleteRuleRequest = Shapes::StructureShape.new(name: 'DeleteRuleRequest')
65
69
  DeleteRuleResponse = Shapes::StructureShape.new(name: 'DeleteRuleResponse')
66
70
  DeleteSizeConstraintSetRequest = Shapes::StructureShape.new(name: 'DeleteSizeConstraintSetRequest')
@@ -99,6 +103,8 @@ module Aws::WAF
99
103
  GetRegexMatchSetResponse = Shapes::StructureShape.new(name: 'GetRegexMatchSetResponse')
100
104
  GetRegexPatternSetRequest = Shapes::StructureShape.new(name: 'GetRegexPatternSetRequest')
101
105
  GetRegexPatternSetResponse = Shapes::StructureShape.new(name: 'GetRegexPatternSetResponse')
106
+ GetRuleGroupRequest = Shapes::StructureShape.new(name: 'GetRuleGroupRequest')
107
+ GetRuleGroupResponse = Shapes::StructureShape.new(name: 'GetRuleGroupResponse')
102
108
  GetRuleRequest = Shapes::StructureShape.new(name: 'GetRuleRequest')
103
109
  GetRuleResponse = Shapes::StructureShape.new(name: 'GetRuleResponse')
104
110
  GetSampledRequestsMaxItems = Shapes::IntegerShape.new(name: 'GetSampledRequestsMaxItems')
@@ -129,6 +135,8 @@ module Aws::WAF
129
135
  IPSetUpdate = Shapes::StructureShape.new(name: 'IPSetUpdate')
130
136
  IPSetUpdates = Shapes::ListShape.new(name: 'IPSetUpdates')
131
137
  IPString = Shapes::StringShape.new(name: 'IPString')
138
+ ListActivatedRulesInRuleGroupRequest = Shapes::StructureShape.new(name: 'ListActivatedRulesInRuleGroupRequest')
139
+ ListActivatedRulesInRuleGroupResponse = Shapes::StructureShape.new(name: 'ListActivatedRulesInRuleGroupResponse')
132
140
  ListByteMatchSetsRequest = Shapes::StructureShape.new(name: 'ListByteMatchSetsRequest')
133
141
  ListByteMatchSetsResponse = Shapes::StructureShape.new(name: 'ListByteMatchSetsResponse')
134
142
  ListGeoMatchSetsRequest = Shapes::StructureShape.new(name: 'ListGeoMatchSetsRequest')
@@ -141,12 +149,16 @@ module Aws::WAF
141
149
  ListRegexMatchSetsResponse = Shapes::StructureShape.new(name: 'ListRegexMatchSetsResponse')
142
150
  ListRegexPatternSetsRequest = Shapes::StructureShape.new(name: 'ListRegexPatternSetsRequest')
143
151
  ListRegexPatternSetsResponse = Shapes::StructureShape.new(name: 'ListRegexPatternSetsResponse')
152
+ ListRuleGroupsRequest = Shapes::StructureShape.new(name: 'ListRuleGroupsRequest')
153
+ ListRuleGroupsResponse = Shapes::StructureShape.new(name: 'ListRuleGroupsResponse')
144
154
  ListRulesRequest = Shapes::StructureShape.new(name: 'ListRulesRequest')
145
155
  ListRulesResponse = Shapes::StructureShape.new(name: 'ListRulesResponse')
146
156
  ListSizeConstraintSetsRequest = Shapes::StructureShape.new(name: 'ListSizeConstraintSetsRequest')
147
157
  ListSizeConstraintSetsResponse = Shapes::StructureShape.new(name: 'ListSizeConstraintSetsResponse')
148
158
  ListSqlInjectionMatchSetsRequest = Shapes::StructureShape.new(name: 'ListSqlInjectionMatchSetsRequest')
149
159
  ListSqlInjectionMatchSetsResponse = Shapes::StructureShape.new(name: 'ListSqlInjectionMatchSetsResponse')
160
+ ListSubscribedRuleGroupsRequest = Shapes::StructureShape.new(name: 'ListSubscribedRuleGroupsRequest')
161
+ ListSubscribedRuleGroupsResponse = Shapes::StructureShape.new(name: 'ListSubscribedRuleGroupsResponse')
150
162
  ListWebACLsRequest = Shapes::StructureShape.new(name: 'ListWebACLsRequest')
151
163
  ListWebACLsResponse = Shapes::StructureShape.new(name: 'ListWebACLsResponse')
152
164
  ListXssMatchSetsRequest = Shapes::StructureShape.new(name: 'ListXssMatchSetsRequest')
@@ -187,6 +199,11 @@ module Aws::WAF
187
199
  ResourceId = Shapes::StringShape.new(name: 'ResourceId')
188
200
  ResourceName = Shapes::StringShape.new(name: 'ResourceName')
189
201
  Rule = Shapes::StructureShape.new(name: 'Rule')
202
+ RuleGroup = Shapes::StructureShape.new(name: 'RuleGroup')
203
+ RuleGroupSummaries = Shapes::ListShape.new(name: 'RuleGroupSummaries')
204
+ RuleGroupSummary = Shapes::StructureShape.new(name: 'RuleGroupSummary')
205
+ RuleGroupUpdate = Shapes::StructureShape.new(name: 'RuleGroupUpdate')
206
+ RuleGroupUpdates = Shapes::ListShape.new(name: 'RuleGroupUpdates')
190
207
  RulePriority = Shapes::IntegerShape.new(name: 'RulePriority')
191
208
  RuleSummaries = Shapes::ListShape.new(name: 'RuleSummaries')
192
209
  RuleSummary = Shapes::StructureShape.new(name: 'RuleSummary')
@@ -210,6 +227,8 @@ module Aws::WAF
210
227
  SqlInjectionMatchSetUpdates = Shapes::ListShape.new(name: 'SqlInjectionMatchSetUpdates')
211
228
  SqlInjectionMatchTuple = Shapes::StructureShape.new(name: 'SqlInjectionMatchTuple')
212
229
  SqlInjectionMatchTuples = Shapes::ListShape.new(name: 'SqlInjectionMatchTuples')
230
+ SubscribedRuleGroupSummaries = Shapes::ListShape.new(name: 'SubscribedRuleGroupSummaries')
231
+ SubscribedRuleGroupSummary = Shapes::StructureShape.new(name: 'SubscribedRuleGroupSummary')
213
232
  TextTransformation = Shapes::StringShape.new(name: 'TextTransformation')
214
233
  TimeWindow = Shapes::StructureShape.new(name: 'TimeWindow')
215
234
  Timestamp = Shapes::TimestampShape.new(name: 'Timestamp')
@@ -226,6 +245,8 @@ module Aws::WAF
226
245
  UpdateRegexMatchSetResponse = Shapes::StructureShape.new(name: 'UpdateRegexMatchSetResponse')
227
246
  UpdateRegexPatternSetRequest = Shapes::StructureShape.new(name: 'UpdateRegexPatternSetRequest')
228
247
  UpdateRegexPatternSetResponse = Shapes::StructureShape.new(name: 'UpdateRegexPatternSetResponse')
248
+ UpdateRuleGroupRequest = Shapes::StructureShape.new(name: 'UpdateRuleGroupRequest')
249
+ UpdateRuleGroupResponse = Shapes::StructureShape.new(name: 'UpdateRuleGroupResponse')
229
250
  UpdateRuleRequest = Shapes::StructureShape.new(name: 'UpdateRuleRequest')
230
251
  UpdateRuleResponse = Shapes::StructureShape.new(name: 'UpdateRuleResponse')
231
252
  UpdateSizeConstraintSetRequest = Shapes::StructureShape.new(name: 'UpdateSizeConstraintSetRequest')
@@ -248,8 +269,11 @@ module Aws::WAF
248
269
  WAFNonexistentItemException = Shapes::StructureShape.new(name: 'WAFNonexistentItemException')
249
270
  WAFReferencedItemException = Shapes::StructureShape.new(name: 'WAFReferencedItemException')
250
271
  WAFStaleDataException = Shapes::StructureShape.new(name: 'WAFStaleDataException')
272
+ WAFSubscriptionNotFoundException = Shapes::StructureShape.new(name: 'WAFSubscriptionNotFoundException')
251
273
  WafAction = Shapes::StructureShape.new(name: 'WafAction')
252
274
  WafActionType = Shapes::StringShape.new(name: 'WafActionType')
275
+ WafOverrideAction = Shapes::StructureShape.new(name: 'WafOverrideAction')
276
+ WafOverrideActionType = Shapes::StringShape.new(name: 'WafOverrideActionType')
253
277
  WafRuleType = Shapes::StringShape.new(name: 'WafRuleType')
254
278
  WebACL = Shapes::StructureShape.new(name: 'WebACL')
255
279
  WebACLSummaries = Shapes::ListShape.new(name: 'WebACLSummaries')
@@ -267,7 +291,8 @@ module Aws::WAF
267
291
 
268
292
  ActivatedRule.add_member(:priority, Shapes::ShapeRef.new(shape: RulePriority, required: true, location_name: "Priority"))
269
293
  ActivatedRule.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
270
- ActivatedRule.add_member(:action, Shapes::ShapeRef.new(shape: WafAction, required: true, location_name: "Action"))
294
+ ActivatedRule.add_member(:action, Shapes::ShapeRef.new(shape: WafAction, location_name: "Action"))
295
+ ActivatedRule.add_member(:override_action, Shapes::ShapeRef.new(shape: WafOverrideAction, location_name: "OverrideAction"))
271
296
  ActivatedRule.add_member(:type, Shapes::ShapeRef.new(shape: WafRuleType, location_name: "Type"))
272
297
  ActivatedRule.struct_class = Types::ActivatedRule
273
298
 
@@ -349,6 +374,15 @@ module Aws::WAF
349
374
  CreateRegexPatternSetResponse.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, location_name: "ChangeToken"))
350
375
  CreateRegexPatternSetResponse.struct_class = Types::CreateRegexPatternSetResponse
351
376
 
377
+ CreateRuleGroupRequest.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "Name"))
378
+ CreateRuleGroupRequest.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, required: true, location_name: "MetricName"))
379
+ CreateRuleGroupRequest.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, required: true, location_name: "ChangeToken"))
380
+ CreateRuleGroupRequest.struct_class = Types::CreateRuleGroupRequest
381
+
382
+ CreateRuleGroupResponse.add_member(:rule_group, Shapes::ShapeRef.new(shape: RuleGroup, location_name: "RuleGroup"))
383
+ CreateRuleGroupResponse.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, location_name: "ChangeToken"))
384
+ CreateRuleGroupResponse.struct_class = Types::CreateRuleGroupResponse
385
+
352
386
  CreateRuleRequest.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "Name"))
353
387
  CreateRuleRequest.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, required: true, location_name: "MetricName"))
354
388
  CreateRuleRequest.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, required: true, location_name: "ChangeToken"))
@@ -434,6 +468,13 @@ module Aws::WAF
434
468
  DeleteRegexPatternSetResponse.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, location_name: "ChangeToken"))
435
469
  DeleteRegexPatternSetResponse.struct_class = Types::DeleteRegexPatternSetResponse
436
470
 
471
+ DeleteRuleGroupRequest.add_member(:rule_group_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleGroupId"))
472
+ DeleteRuleGroupRequest.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, required: true, location_name: "ChangeToken"))
473
+ DeleteRuleGroupRequest.struct_class = Types::DeleteRuleGroupRequest
474
+
475
+ DeleteRuleGroupResponse.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, location_name: "ChangeToken"))
476
+ DeleteRuleGroupResponse.struct_class = Types::DeleteRuleGroupResponse
477
+
437
478
  DeleteRuleRequest.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
438
479
  DeleteRuleRequest.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, required: true, location_name: "ChangeToken"))
439
480
  DeleteRuleRequest.struct_class = Types::DeleteRuleRequest
@@ -551,6 +592,12 @@ module Aws::WAF
551
592
  GetRegexPatternSetResponse.add_member(:regex_pattern_set, Shapes::ShapeRef.new(shape: RegexPatternSet, location_name: "RegexPatternSet"))
552
593
  GetRegexPatternSetResponse.struct_class = Types::GetRegexPatternSetResponse
553
594
 
595
+ GetRuleGroupRequest.add_member(:rule_group_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleGroupId"))
596
+ GetRuleGroupRequest.struct_class = Types::GetRuleGroupRequest
597
+
598
+ GetRuleGroupResponse.add_member(:rule_group, Shapes::ShapeRef.new(shape: RuleGroup, location_name: "RuleGroup"))
599
+ GetRuleGroupResponse.struct_class = Types::GetRuleGroupResponse
600
+
554
601
  GetRuleRequest.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
555
602
  GetRuleRequest.struct_class = Types::GetRuleRequest
556
603
 
@@ -629,6 +676,15 @@ module Aws::WAF
629
676
 
630
677
  IPSetUpdates.member = Shapes::ShapeRef.new(shape: IPSetUpdate)
631
678
 
679
+ ListActivatedRulesInRuleGroupRequest.add_member(:rule_group_id, Shapes::ShapeRef.new(shape: ResourceId, location_name: "RuleGroupId"))
680
+ ListActivatedRulesInRuleGroupRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
681
+ ListActivatedRulesInRuleGroupRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
682
+ ListActivatedRulesInRuleGroupRequest.struct_class = Types::ListActivatedRulesInRuleGroupRequest
683
+
684
+ ListActivatedRulesInRuleGroupResponse.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
685
+ ListActivatedRulesInRuleGroupResponse.add_member(:activated_rules, Shapes::ShapeRef.new(shape: ActivatedRules, location_name: "ActivatedRules"))
686
+ ListActivatedRulesInRuleGroupResponse.struct_class = Types::ListActivatedRulesInRuleGroupResponse
687
+
632
688
  ListByteMatchSetsRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
633
689
  ListByteMatchSetsRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
634
690
  ListByteMatchSetsRequest.struct_class = Types::ListByteMatchSetsRequest
@@ -677,6 +733,14 @@ module Aws::WAF
677
733
  ListRegexPatternSetsResponse.add_member(:regex_pattern_sets, Shapes::ShapeRef.new(shape: RegexPatternSetSummaries, location_name: "RegexPatternSets"))
678
734
  ListRegexPatternSetsResponse.struct_class = Types::ListRegexPatternSetsResponse
679
735
 
736
+ ListRuleGroupsRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
737
+ ListRuleGroupsRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
738
+ ListRuleGroupsRequest.struct_class = Types::ListRuleGroupsRequest
739
+
740
+ ListRuleGroupsResponse.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
741
+ ListRuleGroupsResponse.add_member(:rule_groups, Shapes::ShapeRef.new(shape: RuleGroupSummaries, location_name: "RuleGroups"))
742
+ ListRuleGroupsResponse.struct_class = Types::ListRuleGroupsResponse
743
+
680
744
  ListRulesRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
681
745
  ListRulesRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
682
746
  ListRulesRequest.struct_class = Types::ListRulesRequest
@@ -701,6 +765,14 @@ module Aws::WAF
701
765
  ListSqlInjectionMatchSetsResponse.add_member(:sql_injection_match_sets, Shapes::ShapeRef.new(shape: SqlInjectionMatchSetSummaries, location_name: "SqlInjectionMatchSets"))
702
766
  ListSqlInjectionMatchSetsResponse.struct_class = Types::ListSqlInjectionMatchSetsResponse
703
767
 
768
+ ListSubscribedRuleGroupsRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
769
+ ListSubscribedRuleGroupsRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
770
+ ListSubscribedRuleGroupsRequest.struct_class = Types::ListSubscribedRuleGroupsRequest
771
+
772
+ ListSubscribedRuleGroupsResponse.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
773
+ ListSubscribedRuleGroupsResponse.add_member(:rule_groups, Shapes::ShapeRef.new(shape: SubscribedRuleGroupSummaries, location_name: "RuleGroups"))
774
+ ListSubscribedRuleGroupsResponse.struct_class = Types::ListSubscribedRuleGroupsResponse
775
+
704
776
  ListWebACLsRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
705
777
  ListWebACLsRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
706
778
  ListWebACLsRequest.struct_class = Types::ListWebACLsRequest
@@ -783,6 +855,23 @@ module Aws::WAF
783
855
  Rule.add_member(:predicates, Shapes::ShapeRef.new(shape: Predicates, required: true, location_name: "Predicates"))
784
856
  Rule.struct_class = Types::Rule
785
857
 
858
+ RuleGroup.add_member(:rule_group_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleGroupId"))
859
+ RuleGroup.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, location_name: "Name"))
860
+ RuleGroup.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, location_name: "MetricName"))
861
+ RuleGroup.struct_class = Types::RuleGroup
862
+
863
+ RuleGroupSummaries.member = Shapes::ShapeRef.new(shape: RuleGroupSummary)
864
+
865
+ RuleGroupSummary.add_member(:rule_group_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleGroupId"))
866
+ RuleGroupSummary.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "Name"))
867
+ RuleGroupSummary.struct_class = Types::RuleGroupSummary
868
+
869
+ RuleGroupUpdate.add_member(:action, Shapes::ShapeRef.new(shape: ChangeAction, required: true, location_name: "Action"))
870
+ RuleGroupUpdate.add_member(:activated_rule, Shapes::ShapeRef.new(shape: ActivatedRule, required: true, location_name: "ActivatedRule"))
871
+ RuleGroupUpdate.struct_class = Types::RuleGroupUpdate
872
+
873
+ RuleGroupUpdates.member = Shapes::ShapeRef.new(shape: RuleGroupUpdate)
874
+
786
875
  RuleSummaries.member = Shapes::ShapeRef.new(shape: RuleSummary)
787
876
 
788
877
  RuleSummary.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
@@ -799,6 +888,7 @@ module Aws::WAF
799
888
  SampledHTTPRequest.add_member(:weight, Shapes::ShapeRef.new(shape: SampleWeight, required: true, location_name: "Weight"))
800
889
  SampledHTTPRequest.add_member(:timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "Timestamp"))
801
890
  SampledHTTPRequest.add_member(:action, Shapes::ShapeRef.new(shape: Action, location_name: "Action"))
891
+ SampledHTTPRequest.add_member(:rule_within_rule_group, Shapes::ShapeRef.new(shape: ResourceId, location_name: "RuleWithinRuleGroup"))
802
892
  SampledHTTPRequest.struct_class = Types::SampledHTTPRequest
803
893
 
804
894
  SampledHTTPRequests.member = Shapes::ShapeRef.new(shape: SampledHTTPRequest)
@@ -851,6 +941,13 @@ module Aws::WAF
851
941
 
852
942
  SqlInjectionMatchTuples.member = Shapes::ShapeRef.new(shape: SqlInjectionMatchTuple)
853
943
 
944
+ SubscribedRuleGroupSummaries.member = Shapes::ShapeRef.new(shape: SubscribedRuleGroupSummary)
945
+
946
+ SubscribedRuleGroupSummary.add_member(:rule_group_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleGroupId"))
947
+ SubscribedRuleGroupSummary.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "Name"))
948
+ SubscribedRuleGroupSummary.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, required: true, location_name: "MetricName"))
949
+ SubscribedRuleGroupSummary.struct_class = Types::SubscribedRuleGroupSummary
950
+
854
951
  TimeWindow.add_member(:start_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "StartTime"))
855
952
  TimeWindow.add_member(:end_time, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "EndTime"))
856
953
  TimeWindow.struct_class = Types::TimeWindow
@@ -904,6 +1001,14 @@ module Aws::WAF
904
1001
  UpdateRegexPatternSetResponse.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, location_name: "ChangeToken"))
905
1002
  UpdateRegexPatternSetResponse.struct_class = Types::UpdateRegexPatternSetResponse
906
1003
 
1004
+ UpdateRuleGroupRequest.add_member(:rule_group_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleGroupId"))
1005
+ UpdateRuleGroupRequest.add_member(:updates, Shapes::ShapeRef.new(shape: RuleGroupUpdates, required: true, location_name: "Updates"))
1006
+ UpdateRuleGroupRequest.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, required: true, location_name: "ChangeToken"))
1007
+ UpdateRuleGroupRequest.struct_class = Types::UpdateRuleGroupRequest
1008
+
1009
+ UpdateRuleGroupResponse.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, location_name: "ChangeToken"))
1010
+ UpdateRuleGroupResponse.struct_class = Types::UpdateRuleGroupResponse
1011
+
907
1012
  UpdateRuleRequest.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
908
1013
  UpdateRuleRequest.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, required: true, location_name: "ChangeToken"))
909
1014
  UpdateRuleRequest.add_member(:updates, Shapes::ShapeRef.new(shape: RuleUpdates, required: true, location_name: "Updates"))
@@ -948,6 +1053,9 @@ module Aws::WAF
948
1053
  WafAction.add_member(:type, Shapes::ShapeRef.new(shape: WafActionType, required: true, location_name: "Type"))
949
1054
  WafAction.struct_class = Types::WafAction
950
1055
 
1056
+ WafOverrideAction.add_member(:type, Shapes::ShapeRef.new(shape: WafOverrideActionType, required: true, location_name: "Type"))
1057
+ WafOverrideAction.struct_class = Types::WafOverrideAction
1058
+
951
1059
  WebACL.add_member(:web_acl_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "WebACLId"))
952
1060
  WebACL.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, location_name: "Name"))
953
1061
  WebACL.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, location_name: "MetricName"))
@@ -1097,6 +1205,18 @@ module Aws::WAF
1097
1205
  o.errors << Shapes::ShapeRef.new(shape: WAFLimitsExceededException)
1098
1206
  end)
1099
1207
 
1208
+ api.add_operation(:create_rule_group, Seahorse::Model::Operation.new.tap do |o|
1209
+ o.name = "CreateRuleGroup"
1210
+ o.http_method = "POST"
1211
+ o.http_request_uri = "/"
1212
+ o.input = Shapes::ShapeRef.new(shape: CreateRuleGroupRequest)
1213
+ o.output = Shapes::ShapeRef.new(shape: CreateRuleGroupResponse)
1214
+ o.errors << Shapes::ShapeRef.new(shape: WAFStaleDataException)
1215
+ o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
1216
+ o.errors << Shapes::ShapeRef.new(shape: WAFDisallowedNameException)
1217
+ o.errors << Shapes::ShapeRef.new(shape: WAFLimitsExceededException)
1218
+ end)
1219
+
1100
1220
  api.add_operation(:create_size_constraint_set, Seahorse::Model::Operation.new.tap do |o|
1101
1221
  o.name = "CreateSizeConstraintSet"
1102
1222
  o.http_method = "POST"
@@ -1251,6 +1371,19 @@ module Aws::WAF
1251
1371
  o.errors << Shapes::ShapeRef.new(shape: WAFNonEmptyEntityException)
1252
1372
  end)
1253
1373
 
1374
+ api.add_operation(:delete_rule_group, Seahorse::Model::Operation.new.tap do |o|
1375
+ o.name = "DeleteRuleGroup"
1376
+ o.http_method = "POST"
1377
+ o.http_request_uri = "/"
1378
+ o.input = Shapes::ShapeRef.new(shape: DeleteRuleGroupRequest)
1379
+ o.output = Shapes::ShapeRef.new(shape: DeleteRuleGroupResponse)
1380
+ o.errors << Shapes::ShapeRef.new(shape: WAFStaleDataException)
1381
+ o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
1382
+ o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
1383
+ o.errors << Shapes::ShapeRef.new(shape: WAFReferencedItemException)
1384
+ o.errors << Shapes::ShapeRef.new(shape: WAFNonEmptyEntityException)
1385
+ end)
1386
+
1254
1387
  api.add_operation(:delete_size_constraint_set, Seahorse::Model::Operation.new.tap do |o|
1255
1388
  o.name = "DeleteSizeConstraintSet"
1256
1389
  o.http_method = "POST"
@@ -1415,6 +1548,16 @@ module Aws::WAF
1415
1548
  o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
1416
1549
  end)
1417
1550
 
1551
+ api.add_operation(:get_rule_group, Seahorse::Model::Operation.new.tap do |o|
1552
+ o.name = "GetRuleGroup"
1553
+ o.http_method = "POST"
1554
+ o.http_request_uri = "/"
1555
+ o.input = Shapes::ShapeRef.new(shape: GetRuleGroupRequest)
1556
+ o.output = Shapes::ShapeRef.new(shape: GetRuleGroupResponse)
1557
+ o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
1558
+ o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
1559
+ end)
1560
+
1418
1561
  api.add_operation(:get_sampled_requests, Seahorse::Model::Operation.new.tap do |o|
1419
1562
  o.name = "GetSampledRequests"
1420
1563
  o.http_method = "POST"
@@ -1469,6 +1612,17 @@ module Aws::WAF
1469
1612
  o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
1470
1613
  end)
1471
1614
 
1615
+ api.add_operation(:list_activated_rules_in_rule_group, Seahorse::Model::Operation.new.tap do |o|
1616
+ o.name = "ListActivatedRulesInRuleGroup"
1617
+ o.http_method = "POST"
1618
+ o.http_request_uri = "/"
1619
+ o.input = Shapes::ShapeRef.new(shape: ListActivatedRulesInRuleGroupRequest)
1620
+ o.output = Shapes::ShapeRef.new(shape: ListActivatedRulesInRuleGroupResponse)
1621
+ o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
1622
+ o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
1623
+ o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
1624
+ end)
1625
+
1472
1626
  api.add_operation(:list_byte_match_sets, Seahorse::Model::Operation.new.tap do |o|
1473
1627
  o.name = "ListByteMatchSets"
1474
1628
  o.http_method = "POST"
@@ -1529,6 +1683,15 @@ module Aws::WAF
1529
1683
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidAccountException)
1530
1684
  end)
1531
1685
 
1686
+ api.add_operation(:list_rule_groups, Seahorse::Model::Operation.new.tap do |o|
1687
+ o.name = "ListRuleGroups"
1688
+ o.http_method = "POST"
1689
+ o.http_request_uri = "/"
1690
+ o.input = Shapes::ShapeRef.new(shape: ListRuleGroupsRequest)
1691
+ o.output = Shapes::ShapeRef.new(shape: ListRuleGroupsResponse)
1692
+ o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
1693
+ end)
1694
+
1532
1695
  api.add_operation(:list_rules, Seahorse::Model::Operation.new.tap do |o|
1533
1696
  o.name = "ListRules"
1534
1697
  o.http_method = "POST"
@@ -1559,6 +1722,16 @@ module Aws::WAF
1559
1722
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidAccountException)
1560
1723
  end)
1561
1724
 
1725
+ api.add_operation(:list_subscribed_rule_groups, Seahorse::Model::Operation.new.tap do |o|
1726
+ o.name = "ListSubscribedRuleGroups"
1727
+ o.http_method = "POST"
1728
+ o.http_request_uri = "/"
1729
+ o.input = Shapes::ShapeRef.new(shape: ListSubscribedRuleGroupsRequest)
1730
+ o.output = Shapes::ShapeRef.new(shape: ListSubscribedRuleGroupsResponse)
1731
+ o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
1732
+ o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
1733
+ end)
1734
+
1562
1735
  api.add_operation(:list_web_acls, Seahorse::Model::Operation.new.tap do |o|
1563
1736
  o.name = "ListWebACLs"
1564
1737
  o.http_method = "POST"
@@ -1671,6 +1844,7 @@ module Aws::WAF
1671
1844
  o.errors << Shapes::ShapeRef.new(shape: WAFStaleDataException)
1672
1845
  o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
1673
1846
  o.errors << Shapes::ShapeRef.new(shape: WAFLimitsExceededException)
1847
+ o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
1674
1848
  o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentContainerException)
1675
1849
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1676
1850
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidAccountException)
@@ -1694,6 +1868,21 @@ module Aws::WAF
1694
1868
  o.errors << Shapes::ShapeRef.new(shape: WAFLimitsExceededException)
1695
1869
  end)
1696
1870
 
1871
+ api.add_operation(:update_rule_group, Seahorse::Model::Operation.new.tap do |o|
1872
+ o.name = "UpdateRuleGroup"
1873
+ o.http_method = "POST"
1874
+ o.http_request_uri = "/"
1875
+ o.input = Shapes::ShapeRef.new(shape: UpdateRuleGroupRequest)
1876
+ o.output = Shapes::ShapeRef.new(shape: UpdateRuleGroupResponse)
1877
+ o.errors << Shapes::ShapeRef.new(shape: WAFStaleDataException)
1878
+ o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
1879
+ o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentContainerException)
1880
+ o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
1881
+ o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1882
+ o.errors << Shapes::ShapeRef.new(shape: WAFLimitsExceededException)
1883
+ o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
1884
+ end)
1885
+
1697
1886
  api.add_operation(:update_size_constraint_set, Seahorse::Model::Operation.new.tap do |o|
1698
1887
  o.name = "UpdateSizeConstraintSet"
1699
1888
  o.http_method = "POST"
@@ -1742,6 +1931,7 @@ module Aws::WAF
1742
1931
  o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
1743
1932
  o.errors << Shapes::ShapeRef.new(shape: WAFReferencedItemException)
1744
1933
  o.errors << Shapes::ShapeRef.new(shape: WAFLimitsExceededException)
1934
+ o.errors << Shapes::ShapeRef.new(shape: WAFSubscriptionNotFoundException)
1745
1935
  end)
1746
1936
 
1747
1937
  api.add_operation(:update_xss_match_set, Seahorse::Model::Operation.new.tap do |o|
@@ -22,10 +22,13 @@ module Aws::WAF
22
22
  # {
23
23
  # priority: 1, # required
24
24
  # rule_id: "ResourceId", # required
25
- # action: { # required
25
+ # action: {
26
26
  # type: "BLOCK", # required, accepts BLOCK, ALLOW, COUNT
27
27
  # },
28
- # type: "REGULAR", # accepts REGULAR, RATE_BASED
28
+ # override_action: {
29
+ # type: "NONE", # required, accepts NONE, COUNT
30
+ # },
31
+ # type: "REGULAR", # accepts REGULAR, RATE_BASED, GROUP
29
32
  # }
30
33
  #
31
34
  # @!attribute [rw] priority
@@ -58,15 +61,39 @@ module Aws::WAF
58
61
  # * `COUNT`\: AWS WAF increments a counter of requests that match the
59
62
  # conditions in the rule and then continues to inspect the web
60
63
  # request based on the remaining rules in the web ACL.
64
+ #
65
+ # The `Action` data type within `ActivatedRule` is used only when
66
+ # submitting an `UpdateWebACL` request. `ActivatedRule|Action` is not
67
+ # applicable and therefore not available for `UpdateRuleGroup`.
61
68
  # @return [Types::WafAction]
62
69
  #
70
+ # @!attribute [rw] override_action
71
+ # Use the `OverrideAction` to test your `RuleGroup`.
72
+ #
73
+ # Any rule in a `RuleGroup` can potentially block a request. If you
74
+ # set the `OverrideAction` to `None`, the `RuleGroup` will block a
75
+ # request if any individual rule in the `RuleGroup` matches the
76
+ # request and is configured to block that request. However if you
77
+ # first want to test the `RuleGroup`, set the `OverrideAction` to
78
+ # `Count`. The `RuleGroup` will then override any block action
79
+ # specified by individual rules contained within the group. Instead of
80
+ # blocking matching requests, those requests will be counted. You can
81
+ # view a record of counted requests using GetSampledRequests.
82
+ #
83
+ # The `OverrideAction` data type within `ActivatedRule` is used only
84
+ # when submitting an `UpdateRuleGroup` request.
85
+ # `ActivatedRule|OverrideAction` is not applicable and therefore not
86
+ # available for `UpdateWebACL`.
87
+ # @return [Types::WafOverrideAction]
88
+ #
63
89
  # @!attribute [rw] type
64
- # The rule type, either `REGULAR`, as defined by Rule, or
65
- # `RATE_BASED`, as defined by RateBasedRule. The default is REGULAR.
66
- # Although this field is optional, be aware that if you try to add a
67
- # RATE\_BASED rule to a web ACL without setting the type, the
68
- # UpdateWebACL request will fail because the request tries to add a
69
- # REGULAR rule with the specified ID, which does not exist.
90
+ # The rule type, either `REGULAR`, as defined by Rule, `RATE_BASED`,
91
+ # as defined by RateBasedRule, or `GROUP`, as defined by RuleGroup.
92
+ # The default is REGULAR. Although this field is optional, be aware
93
+ # that if you try to add a RATE\_BASED rule to a web ACL without
94
+ # setting the type, the UpdateWebACL request will fail because the
95
+ # request tries to add a REGULAR rule with the specified ID, which
96
+ # does not exist.
70
97
  # @return [String]
71
98
  #
72
99
  # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ActivatedRule AWS API Documentation
@@ -75,6 +102,7 @@ module Aws::WAF
75
102
  :priority,
76
103
  :rule_id,
77
104
  :action,
105
+ :override_action,
78
106
  :type)
79
107
  include Aws::Structure
80
108
  end
@@ -693,6 +721,58 @@ module Aws::WAF
693
721
  include Aws::Structure
694
722
  end
695
723
 
724
+ # @note When making an API call, you may pass CreateRuleGroupRequest
725
+ # data as a hash:
726
+ #
727
+ # {
728
+ # name: "ResourceName", # required
729
+ # metric_name: "MetricName", # required
730
+ # change_token: "ChangeToken", # required
731
+ # }
732
+ #
733
+ # @!attribute [rw] name
734
+ # A friendly name or description of the RuleGroup. You can't change
735
+ # `Name` after you create a `RuleGroup`.
736
+ # @return [String]
737
+ #
738
+ # @!attribute [rw] metric_name
739
+ # A friendly name or description for the metrics for this `RuleGroup`.
740
+ # The name can contain only alphanumeric characters (A-Z, a-z, 0-9);
741
+ # the name can't contain whitespace. You can't change the name of
742
+ # the metric after you create the `RuleGroup`.
743
+ # @return [String]
744
+ #
745
+ # @!attribute [rw] change_token
746
+ # The value returned by the most recent call to GetChangeToken.
747
+ # @return [String]
748
+ #
749
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRuleGroupRequest AWS API Documentation
750
+ #
751
+ class CreateRuleGroupRequest < Struct.new(
752
+ :name,
753
+ :metric_name,
754
+ :change_token)
755
+ include Aws::Structure
756
+ end
757
+
758
+ # @!attribute [rw] rule_group
759
+ # An empty RuleGroup.
760
+ # @return [Types::RuleGroup]
761
+ #
762
+ # @!attribute [rw] change_token
763
+ # The `ChangeToken` that you used to submit the `CreateRuleGroup`
764
+ # request. You can also use this value to query the status of the
765
+ # request. For more information, see GetChangeTokenStatus.
766
+ # @return [String]
767
+ #
768
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRuleGroupResponse AWS API Documentation
769
+ #
770
+ class CreateRuleGroupResponse < Struct.new(
771
+ :rule_group,
772
+ :change_token)
773
+ include Aws::Structure
774
+ end
775
+
696
776
  # @note When making an API call, you may pass CreateRuleRequest
697
777
  # data as a hash:
698
778
  #
@@ -1181,6 +1261,44 @@ module Aws::WAF
1181
1261
  include Aws::Structure
1182
1262
  end
1183
1263
 
1264
+ # @note When making an API call, you may pass DeleteRuleGroupRequest
1265
+ # data as a hash:
1266
+ #
1267
+ # {
1268
+ # rule_group_id: "ResourceId", # required
1269
+ # change_token: "ChangeToken", # required
1270
+ # }
1271
+ #
1272
+ # @!attribute [rw] rule_group_id
1273
+ # The `RuleGroupId` of the RuleGroup that you want to delete.
1274
+ # `RuleGroupId` is returned by CreateRuleGroup and by ListRuleGroups.
1275
+ # @return [String]
1276
+ #
1277
+ # @!attribute [rw] change_token
1278
+ # The value returned by the most recent call to GetChangeToken.
1279
+ # @return [String]
1280
+ #
1281
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRuleGroupRequest AWS API Documentation
1282
+ #
1283
+ class DeleteRuleGroupRequest < Struct.new(
1284
+ :rule_group_id,
1285
+ :change_token)
1286
+ include Aws::Structure
1287
+ end
1288
+
1289
+ # @!attribute [rw] change_token
1290
+ # The `ChangeToken` that you used to submit the `DeleteRuleGroup`
1291
+ # request. You can also use this value to query the status of the
1292
+ # request. For more information, see GetChangeTokenStatus.
1293
+ # @return [String]
1294
+ #
1295
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRuleGroupResponse AWS API Documentation
1296
+ #
1297
+ class DeleteRuleGroupResponse < Struct.new(
1298
+ :change_token)
1299
+ include Aws::Structure
1300
+ end
1301
+
1184
1302
  # @note When making an API call, you may pass DeleteRuleRequest
1185
1303
  # data as a hash:
1186
1304
  #
@@ -1857,6 +1975,37 @@ module Aws::WAF
1857
1975
  include Aws::Structure
1858
1976
  end
1859
1977
 
1978
+ # @note When making an API call, you may pass GetRuleGroupRequest
1979
+ # data as a hash:
1980
+ #
1981
+ # {
1982
+ # rule_group_id: "ResourceId", # required
1983
+ # }
1984
+ #
1985
+ # @!attribute [rw] rule_group_id
1986
+ # The `RuleGroupId` of the RuleGroup that you want to get.
1987
+ # `RuleGroupId` is returned by CreateRuleGroup and by ListRuleGroups.
1988
+ # @return [String]
1989
+ #
1990
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRuleGroupRequest AWS API Documentation
1991
+ #
1992
+ class GetRuleGroupRequest < Struct.new(
1993
+ :rule_group_id)
1994
+ include Aws::Structure
1995
+ end
1996
+
1997
+ # @!attribute [rw] rule_group
1998
+ # Information about the RuleGroup that you specified in the
1999
+ # `GetRuleGroup` request.
2000
+ # @return [Types::RuleGroup]
2001
+ #
2002
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRuleGroupResponse AWS API Documentation
2003
+ #
2004
+ class GetRuleGroupResponse < Struct.new(
2005
+ :rule_group)
2006
+ include Aws::Structure
2007
+ end
2008
+
1860
2009
  # @note When making an API call, you may pass GetRuleRequest
1861
2010
  # data as a hash:
1862
2011
  #
@@ -1913,10 +2062,11 @@ module Aws::WAF
1913
2062
  # @return [String]
1914
2063
  #
1915
2064
  # @!attribute [rw] rule_id
1916
- # `RuleId` is one of two values:
2065
+ # `RuleId` is one of three values:
1917
2066
  #
1918
- # * The `RuleId` of the `Rule` for which you want `GetSampledRequests`
1919
- # to return a sample of requests.
2067
+ # * The `RuleId` of the `Rule` or the `RuleGroupId` of the `RuleGroup`
2068
+ # for which you want `GetSampledRequests` to return a sample of
2069
+ # requests.
1920
2070
  #
1921
2071
  # * `Default_Action`, which causes `GetSampledRequests` to return a
1922
2072
  # sample of the requests that didn't match any of the rules in the
@@ -2387,6 +2537,68 @@ module Aws::WAF
2387
2537
  include Aws::Structure
2388
2538
  end
2389
2539
 
2540
+ # @note When making an API call, you may pass ListActivatedRulesInRuleGroupRequest
2541
+ # data as a hash:
2542
+ #
2543
+ # {
2544
+ # rule_group_id: "ResourceId",
2545
+ # next_marker: "NextMarker",
2546
+ # limit: 1,
2547
+ # }
2548
+ #
2549
+ # @!attribute [rw] rule_group_id
2550
+ # The `RuleGroupId` of the RuleGroup for which you want to get a list
2551
+ # of ActivatedRule objects.
2552
+ # @return [String]
2553
+ #
2554
+ # @!attribute [rw] next_marker
2555
+ # If you specify a value for `Limit` and you have more
2556
+ # `ActivatedRules` than the value of `Limit`, AWS WAF returns a
2557
+ # `NextMarker` value in the response that allows you to list another
2558
+ # group of `ActivatedRules`. For the second and subsequent
2559
+ # `ListActivatedRulesInRuleGroup` requests, specify the value of
2560
+ # `NextMarker` from the previous response to get information about
2561
+ # another batch of `ActivatedRules`.
2562
+ # @return [String]
2563
+ #
2564
+ # @!attribute [rw] limit
2565
+ # Specifies the number of `ActivatedRules` that you want AWS WAF to
2566
+ # return for this request. If you have more `ActivatedRules` than the
2567
+ # number that you specify for `Limit`, the response includes a
2568
+ # `NextMarker` value that you can use to get another batch of
2569
+ # `ActivatedRules`.
2570
+ # @return [Integer]
2571
+ #
2572
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListActivatedRulesInRuleGroupRequest AWS API Documentation
2573
+ #
2574
+ class ListActivatedRulesInRuleGroupRequest < Struct.new(
2575
+ :rule_group_id,
2576
+ :next_marker,
2577
+ :limit)
2578
+ include Aws::Structure
2579
+ end
2580
+
2581
+ # @!attribute [rw] next_marker
2582
+ # If you have more `ActivatedRules` than the number that you specified
2583
+ # for `Limit` in the request, the response includes a `NextMarker`
2584
+ # value. To list more `ActivatedRules`, submit another
2585
+ # `ListActivatedRulesInRuleGroup` request, and specify the
2586
+ # `NextMarker` value from the response in the `NextMarker` value in
2587
+ # the next request.
2588
+ # @return [String]
2589
+ #
2590
+ # @!attribute [rw] activated_rules
2591
+ # An array of `ActivatedRules` objects.
2592
+ # @return [Array<Types::ActivatedRule>]
2593
+ #
2594
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListActivatedRulesInRuleGroupResponse AWS API Documentation
2595
+ #
2596
+ class ListActivatedRulesInRuleGroupResponse < Struct.new(
2597
+ :next_marker,
2598
+ :activated_rules)
2599
+ include Aws::Structure
2600
+ end
2601
+
2390
2602
  # @note When making an API call, you may pass ListByteMatchSetsRequest
2391
2603
  # data as a hash:
2392
2604
  #
@@ -2709,6 +2921,58 @@ module Aws::WAF
2709
2921
  include Aws::Structure
2710
2922
  end
2711
2923
 
2924
+ # @note When making an API call, you may pass ListRuleGroupsRequest
2925
+ # data as a hash:
2926
+ #
2927
+ # {
2928
+ # next_marker: "NextMarker",
2929
+ # limit: 1,
2930
+ # }
2931
+ #
2932
+ # @!attribute [rw] next_marker
2933
+ # If you specify a value for `Limit` and you have more `RuleGroups`
2934
+ # than the value of `Limit`, AWS WAF returns a `NextMarker` value in
2935
+ # the response that allows you to list another group of `RuleGroups`.
2936
+ # For the second and subsequent `ListRuleGroups` requests, specify the
2937
+ # value of `NextMarker` from the previous response to get information
2938
+ # about another batch of `RuleGroups`.
2939
+ # @return [String]
2940
+ #
2941
+ # @!attribute [rw] limit
2942
+ # Specifies the number of `RuleGroups` that you want AWS WAF to return
2943
+ # for this request. If you have more `RuleGroups` than the number that
2944
+ # you specify for `Limit`, the response includes a `NextMarker` value
2945
+ # that you can use to get another batch of `RuleGroups`.
2946
+ # @return [Integer]
2947
+ #
2948
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRuleGroupsRequest AWS API Documentation
2949
+ #
2950
+ class ListRuleGroupsRequest < Struct.new(
2951
+ :next_marker,
2952
+ :limit)
2953
+ include Aws::Structure
2954
+ end
2955
+
2956
+ # @!attribute [rw] next_marker
2957
+ # If you have more `RuleGroups` than the number that you specified for
2958
+ # `Limit` in the request, the response includes a `NextMarker` value.
2959
+ # To list more `RuleGroups`, submit another `ListRuleGroups` request,
2960
+ # and specify the `NextMarker` value from the response in the
2961
+ # `NextMarker` value in the next request.
2962
+ # @return [String]
2963
+ #
2964
+ # @!attribute [rw] rule_groups
2965
+ # An array of RuleGroup objects.
2966
+ # @return [Array<Types::RuleGroupSummary>]
2967
+ #
2968
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRuleGroupsResponse AWS API Documentation
2969
+ #
2970
+ class ListRuleGroupsResponse < Struct.new(
2971
+ :next_marker,
2972
+ :rule_groups)
2973
+ include Aws::Structure
2974
+ end
2975
+
2712
2976
  # @note When making an API call, you may pass ListRulesRequest
2713
2977
  # data as a hash:
2714
2978
  #
@@ -2876,6 +3140,59 @@ module Aws::WAF
2876
3140
  include Aws::Structure
2877
3141
  end
2878
3142
 
3143
+ # @note When making an API call, you may pass ListSubscribedRuleGroupsRequest
3144
+ # data as a hash:
3145
+ #
3146
+ # {
3147
+ # next_marker: "NextMarker",
3148
+ # limit: 1,
3149
+ # }
3150
+ #
3151
+ # @!attribute [rw] next_marker
3152
+ # If you specify a value for `Limit` and you have more
3153
+ # `ByteMatchSets`subscribed rule groups than the value of `Limit`, AWS
3154
+ # WAF returns a `NextMarker` value in the response that allows you to
3155
+ # list another group of subscribed rule groups. For the second and
3156
+ # subsequent `ListSubscribedRuleGroupsRequest` requests, specify the
3157
+ # value of `NextMarker` from the previous response to get information
3158
+ # about another batch of subscribed rule groups.
3159
+ # @return [String]
3160
+ #
3161
+ # @!attribute [rw] limit
3162
+ # Specifies the number of subscribed rule groups that you want AWS WAF
3163
+ # to return for this request. If you have more objects than the number
3164
+ # you specify for `Limit`, the response includes a `NextMarker` value
3165
+ # that you can use to get another batch of objects.
3166
+ # @return [Integer]
3167
+ #
3168
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSubscribedRuleGroupsRequest AWS API Documentation
3169
+ #
3170
+ class ListSubscribedRuleGroupsRequest < Struct.new(
3171
+ :next_marker,
3172
+ :limit)
3173
+ include Aws::Structure
3174
+ end
3175
+
3176
+ # @!attribute [rw] next_marker
3177
+ # If you have more objects than the number that you specified for
3178
+ # `Limit` in the request, the response includes a `NextMarker` value.
3179
+ # To list more objects, submit another `ListSubscribedRuleGroups`
3180
+ # request, and specify the `NextMarker` value from the response in the
3181
+ # `NextMarker` value in the next request.
3182
+ # @return [String]
3183
+ #
3184
+ # @!attribute [rw] rule_groups
3185
+ # An array of RuleGroup objects.
3186
+ # @return [Array<Types::SubscribedRuleGroupSummary>]
3187
+ #
3188
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSubscribedRuleGroupsResponse AWS API Documentation
3189
+ #
3190
+ class ListSubscribedRuleGroupsResponse < Struct.new(
3191
+ :next_marker,
3192
+ :rule_groups)
3193
+ include Aws::Structure
3194
+ end
3195
+
2879
3196
  # @note When making an API call, you may pass ListWebACLsRequest
2880
3197
  # data as a hash:
2881
3198
  #
@@ -3497,6 +3814,115 @@ module Aws::WAF
3497
3814
  include Aws::Structure
3498
3815
  end
3499
3816
 
3817
+ # A collection of predefined rules that you can add to a web ACL.
3818
+ #
3819
+ # Rule groups are subject to the following limits:
3820
+ #
3821
+ # * Three rule groups per account. You can request an increase to this
3822
+ # limit by contacting customer support.
3823
+ #
3824
+ # * One rule group per web ACL.
3825
+ #
3826
+ # * Ten rules per rule group.
3827
+ #
3828
+ # @!attribute [rw] rule_group_id
3829
+ # A unique identifier for a `RuleGroup`. You use `RuleGroupId` to get
3830
+ # more information about a `RuleGroup` (see GetRuleGroup), update a
3831
+ # `RuleGroup` (see UpdateRuleGroup), insert a `RuleGroup` into a
3832
+ # `WebACL` or delete a one from a `WebACL` (see UpdateWebACL), or
3833
+ # delete a `RuleGroup` from AWS WAF (see DeleteRuleGroup).
3834
+ #
3835
+ # `RuleGroupId` is returned by CreateRuleGroup and by ListRuleGroups.
3836
+ # @return [String]
3837
+ #
3838
+ # @!attribute [rw] name
3839
+ # The friendly name or description for the `RuleGroup`. You can't
3840
+ # change the name of a `RuleGroup` after you create it.
3841
+ # @return [String]
3842
+ #
3843
+ # @!attribute [rw] metric_name
3844
+ # A friendly name or description for the metrics for this `RuleGroup`.
3845
+ # The name can contain only alphanumeric characters (A-Z, a-z, 0-9);
3846
+ # the name can't contain whitespace. You can't change the name of
3847
+ # the metric after you create the `RuleGroup`.
3848
+ # @return [String]
3849
+ #
3850
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RuleGroup AWS API Documentation
3851
+ #
3852
+ class RuleGroup < Struct.new(
3853
+ :rule_group_id,
3854
+ :name,
3855
+ :metric_name)
3856
+ include Aws::Structure
3857
+ end
3858
+
3859
+ # Contains the identifier and the friendly name or description of the
3860
+ # `RuleGroup`.
3861
+ #
3862
+ # @!attribute [rw] rule_group_id
3863
+ # A unique identifier for a `RuleGroup`. You use `RuleGroupId` to get
3864
+ # more information about a `RuleGroup` (see GetRuleGroup), update a
3865
+ # `RuleGroup` (see UpdateRuleGroup), insert a `RuleGroup` into a
3866
+ # `WebACL` or delete one from a `WebACL` (see UpdateWebACL), or delete
3867
+ # a `RuleGroup` from AWS WAF (see DeleteRuleGroup).
3868
+ #
3869
+ # `RuleGroupId` is returned by CreateRuleGroup and by ListRuleGroups.
3870
+ # @return [String]
3871
+ #
3872
+ # @!attribute [rw] name
3873
+ # A friendly name or description of the RuleGroup. You can't change
3874
+ # the name of a `RuleGroup` after you create it.
3875
+ # @return [String]
3876
+ #
3877
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RuleGroupSummary AWS API Documentation
3878
+ #
3879
+ class RuleGroupSummary < Struct.new(
3880
+ :rule_group_id,
3881
+ :name)
3882
+ include Aws::Structure
3883
+ end
3884
+
3885
+ # Specifies an `ActivatedRule` and indicates whether you want to add it
3886
+ # to a `RuleGroup` or delete it from a `RuleGroup`.
3887
+ #
3888
+ # @note When making an API call, you may pass RuleGroupUpdate
3889
+ # data as a hash:
3890
+ #
3891
+ # {
3892
+ # action: "INSERT", # required, accepts INSERT, DELETE
3893
+ # activated_rule: { # required
3894
+ # priority: 1, # required
3895
+ # rule_id: "ResourceId", # required
3896
+ # action: {
3897
+ # type: "BLOCK", # required, accepts BLOCK, ALLOW, COUNT
3898
+ # },
3899
+ # override_action: {
3900
+ # type: "NONE", # required, accepts NONE, COUNT
3901
+ # },
3902
+ # type: "REGULAR", # accepts REGULAR, RATE_BASED, GROUP
3903
+ # },
3904
+ # }
3905
+ #
3906
+ # @!attribute [rw] action
3907
+ # Specify `INSERT` to add an `ActivatedRule` to a `RuleGroup`. Use
3908
+ # `DELETE` to remove an `ActivatedRule` from a `RuleGroup`.
3909
+ # @return [String]
3910
+ #
3911
+ # @!attribute [rw] activated_rule
3912
+ # The `ActivatedRule` object specifies a `Rule` that you want to
3913
+ # insert or delete, the priority of the `Rule` in the `WebACL`, and
3914
+ # the action that you want AWS WAF to take when a web request matches
3915
+ # the `Rule` (`ALLOW`, `BLOCK`, or `COUNT`).
3916
+ # @return [Types::ActivatedRule]
3917
+ #
3918
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RuleGroupUpdate AWS API Documentation
3919
+ #
3920
+ class RuleGroupUpdate < Struct.new(
3921
+ :action,
3922
+ :activated_rule)
3923
+ include Aws::Structure
3924
+ end
3925
+
3500
3926
  # Contains the identifier and the friendly name or description of the
3501
3927
  # `Rule`.
3502
3928
  #
@@ -3583,13 +4009,21 @@ module Aws::WAF
3583
4009
  # `BLOCK`, or `COUNT`.
3584
4010
  # @return [String]
3585
4011
  #
4012
+ # @!attribute [rw] rule_within_rule_group
4013
+ # This value is returned if the `GetSampledRequests` request specifies
4014
+ # the ID of a `RuleGroup` rather than the ID of an individual rule.
4015
+ # `RuleWithinRuleGroup` is the rule within the specified `RuleGroup`
4016
+ # that matched the request listed in the response.
4017
+ # @return [String]
4018
+ #
3586
4019
  # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SampledHTTPRequest AWS API Documentation
3587
4020
  #
3588
4021
  class SampledHTTPRequest < Struct.new(
3589
4022
  :request,
3590
4023
  :weight,
3591
4024
  :timestamp,
3592
- :action)
4025
+ :action,
4026
+ :rule_within_rule_group)
3593
4027
  include Aws::Structure
3594
4028
  end
3595
4029
 
@@ -4060,6 +4494,33 @@ module Aws::WAF
4060
4494
  include Aws::Structure
4061
4495
  end
4062
4496
 
4497
+ # A summary of the rule groups you are subscribed to.
4498
+ #
4499
+ # @!attribute [rw] rule_group_id
4500
+ # A unique identifier for a `RuleGroup`.
4501
+ # @return [String]
4502
+ #
4503
+ # @!attribute [rw] name
4504
+ # A friendly name or description of the `RuleGroup`. You can't change
4505
+ # the name of a `RuleGroup` after you create it.
4506
+ # @return [String]
4507
+ #
4508
+ # @!attribute [rw] metric_name
4509
+ # A friendly name or description for the metrics for this `RuleGroup`.
4510
+ # The name can contain only alphanumeric characters (A-Z, a-z, 0-9);
4511
+ # the name can't contain whitespace. You can't change the name of
4512
+ # the metric after you create the `RuleGroup`.
4513
+ # @return [String]
4514
+ #
4515
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SubscribedRuleGroupSummary AWS API Documentation
4516
+ #
4517
+ class SubscribedRuleGroupSummary < Struct.new(
4518
+ :rule_group_id,
4519
+ :name,
4520
+ :metric_name)
4521
+ include Aws::Structure
4522
+ end
4523
+
4063
4524
  # In a GetSampledRequests request, the `StartTime` and `EndTime` objects
4064
4525
  # specify the time range for which you want AWS WAF to return a sample
4065
4526
  # of web requests.
@@ -4469,6 +4930,72 @@ module Aws::WAF
4469
4930
  include Aws::Structure
4470
4931
  end
4471
4932
 
4933
+ # @note When making an API call, you may pass UpdateRuleGroupRequest
4934
+ # data as a hash:
4935
+ #
4936
+ # {
4937
+ # rule_group_id: "ResourceId", # required
4938
+ # updates: [ # required
4939
+ # {
4940
+ # action: "INSERT", # required, accepts INSERT, DELETE
4941
+ # activated_rule: { # required
4942
+ # priority: 1, # required
4943
+ # rule_id: "ResourceId", # required
4944
+ # action: {
4945
+ # type: "BLOCK", # required, accepts BLOCK, ALLOW, COUNT
4946
+ # },
4947
+ # override_action: {
4948
+ # type: "NONE", # required, accepts NONE, COUNT
4949
+ # },
4950
+ # type: "REGULAR", # accepts REGULAR, RATE_BASED, GROUP
4951
+ # },
4952
+ # },
4953
+ # ],
4954
+ # change_token: "ChangeToken", # required
4955
+ # }
4956
+ #
4957
+ # @!attribute [rw] rule_group_id
4958
+ # The `RuleGroupId` of the RuleGroup that you want to update.
4959
+ # `RuleGroupId` is returned by CreateRuleGroup and by ListRuleGroups.
4960
+ # @return [String]
4961
+ #
4962
+ # @!attribute [rw] updates
4963
+ # An array of `RuleGroupUpdate` objects that you want to insert into
4964
+ # or delete from a RuleGroup.
4965
+ #
4966
+ # You can only insert `REGULAR` rules into a rule group.
4967
+ #
4968
+ # The `Action` data type within `ActivatedRule` is used only when
4969
+ # submitting an `UpdateWebACL` request. `ActivatedRule|Action` is not
4970
+ # applicable and therefore not available for `UpdateRuleGroup`.
4971
+ # @return [Array<Types::RuleGroupUpdate>]
4972
+ #
4973
+ # @!attribute [rw] change_token
4974
+ # The value returned by the most recent call to GetChangeToken.
4975
+ # @return [String]
4976
+ #
4977
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRuleGroupRequest AWS API Documentation
4978
+ #
4979
+ class UpdateRuleGroupRequest < Struct.new(
4980
+ :rule_group_id,
4981
+ :updates,
4982
+ :change_token)
4983
+ include Aws::Structure
4984
+ end
4985
+
4986
+ # @!attribute [rw] change_token
4987
+ # The `ChangeToken` that you used to submit the `UpdateRuleGroup`
4988
+ # request. You can also use this value to query the status of the
4989
+ # request. For more information, see GetChangeTokenStatus.
4990
+ # @return [String]
4991
+ #
4992
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRuleGroupResponse AWS API Documentation
4993
+ #
4994
+ class UpdateRuleGroupResponse < Struct.new(
4995
+ :change_token)
4996
+ include Aws::Structure
4997
+ end
4998
+
4472
4999
  # @note When making an API call, you may pass UpdateRuleRequest
4473
5000
  # data as a hash:
4474
5001
  #
@@ -4681,10 +5208,13 @@ module Aws::WAF
4681
5208
  # activated_rule: { # required
4682
5209
  # priority: 1, # required
4683
5210
  # rule_id: "ResourceId", # required
4684
- # action: { # required
5211
+ # action: {
4685
5212
  # type: "BLOCK", # required, accepts BLOCK, ALLOW, COUNT
4686
5213
  # },
4687
- # type: "REGULAR", # accepts REGULAR, RATE_BASED
5214
+ # override_action: {
5215
+ # type: "NONE", # required, accepts NONE, COUNT
5216
+ # },
5217
+ # type: "REGULAR", # accepts REGULAR, RATE_BASED, GROUP
4688
5218
  # },
4689
5219
  # },
4690
5220
  # ],
@@ -4711,7 +5241,11 @@ module Aws::WAF
4711
5241
  #
4712
5242
  # * WebACLUpdate: Contains `Action` and `ActivatedRule`
4713
5243
  #
4714
- # * ActivatedRule: Contains `Action`, `Priority`, `RuleId`, and `Type`
5244
+ # * ActivatedRule: Contains `Action`, `Priority`, `RuleId`, and
5245
+ # `Type`. The `OverrideAction` data type within `ActivatedRule` is
5246
+ # used only when submitting an `UpdateRuleGroup` request.
5247
+ # `ActivatedRule|OverrideAction` is not applicable and therefore not
5248
+ # available for `UpdateWebACL`.
4715
5249
  #
4716
5250
  # * WafAction: Contains `Type`
4717
5251
  # @return [Array<Types::WebACLUpdate>]
@@ -4849,6 +5383,29 @@ module Aws::WAF
4849
5383
  include Aws::Structure
4850
5384
  end
4851
5385
 
5386
+ # The action to take if any rule within the `RuleGroup` matches a
5387
+ # request.
5388
+ #
5389
+ # @note When making an API call, you may pass WafOverrideAction
5390
+ # data as a hash:
5391
+ #
5392
+ # {
5393
+ # type: "NONE", # required, accepts NONE, COUNT
5394
+ # }
5395
+ #
5396
+ # @!attribute [rw] type
5397
+ # `COUNT` overrides the action specified by the individual rule within
5398
+ # a `RuleGroup` . If set to `NONE`, the rule's action will take
5399
+ # place.
5400
+ # @return [String]
5401
+ #
5402
+ # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/WafOverrideAction AWS API Documentation
5403
+ #
5404
+ class WafOverrideAction < Struct.new(
5405
+ :type)
5406
+ include Aws::Structure
5407
+ end
5408
+
4852
5409
  # Contains the `Rules` that identify the requests that you want to
4853
5410
  # allow, block, or count. In a `WebACL`, you also specify a default
4854
5411
  # action (`ALLOW` or `BLOCK`), and the action for each `Rule` that you
@@ -4937,10 +5494,13 @@ module Aws::WAF
4937
5494
  # activated_rule: { # required
4938
5495
  # priority: 1, # required
4939
5496
  # rule_id: "ResourceId", # required
4940
- # action: { # required
5497
+ # action: {
4941
5498
  # type: "BLOCK", # required, accepts BLOCK, ALLOW, COUNT
4942
5499
  # },
4943
- # type: "REGULAR", # accepts REGULAR, RATE_BASED
5500
+ # override_action: {
5501
+ # type: "NONE", # required, accepts NONE, COUNT
5502
+ # },
5503
+ # type: "REGULAR", # accepts REGULAR, RATE_BASED, GROUP
4944
5504
  # },
4945
5505
  # }
4946
5506
  #