aws-sdk-waf 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
  #