aws-sdk-wafv2 1.22.0 → 1.26.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -98,6 +98,8 @@ module Aws::WAFV2
98
98
  GetIPSetResponse = Shapes::StructureShape.new(name: 'GetIPSetResponse')
99
99
  GetLoggingConfigurationRequest = Shapes::StructureShape.new(name: 'GetLoggingConfigurationRequest')
100
100
  GetLoggingConfigurationResponse = Shapes::StructureShape.new(name: 'GetLoggingConfigurationResponse')
101
+ GetManagedRuleSetRequest = Shapes::StructureShape.new(name: 'GetManagedRuleSetRequest')
102
+ GetManagedRuleSetResponse = Shapes::StructureShape.new(name: 'GetManagedRuleSetResponse')
101
103
  GetPermissionPolicyRequest = Shapes::StructureShape.new(name: 'GetPermissionPolicyRequest')
102
104
  GetPermissionPolicyResponse = Shapes::StructureShape.new(name: 'GetPermissionPolicyResponse')
103
105
  GetRateBasedStatementManagedKeysRequest = Shapes::StructureShape.new(name: 'GetRateBasedStatementManagedKeysRequest')
@@ -142,12 +144,16 @@ module Aws::WAFV2
142
144
  LabelSummaries = Shapes::ListShape.new(name: 'LabelSummaries')
143
145
  LabelSummary = Shapes::StructureShape.new(name: 'LabelSummary')
144
146
  Labels = Shapes::ListShape.new(name: 'Labels')
147
+ ListAvailableManagedRuleGroupVersionsRequest = Shapes::StructureShape.new(name: 'ListAvailableManagedRuleGroupVersionsRequest')
148
+ ListAvailableManagedRuleGroupVersionsResponse = Shapes::StructureShape.new(name: 'ListAvailableManagedRuleGroupVersionsResponse')
145
149
  ListAvailableManagedRuleGroupsRequest = Shapes::StructureShape.new(name: 'ListAvailableManagedRuleGroupsRequest')
146
150
  ListAvailableManagedRuleGroupsResponse = Shapes::StructureShape.new(name: 'ListAvailableManagedRuleGroupsResponse')
147
151
  ListIPSetsRequest = Shapes::StructureShape.new(name: 'ListIPSetsRequest')
148
152
  ListIPSetsResponse = Shapes::StructureShape.new(name: 'ListIPSetsResponse')
149
153
  ListLoggingConfigurationsRequest = Shapes::StructureShape.new(name: 'ListLoggingConfigurationsRequest')
150
154
  ListLoggingConfigurationsResponse = Shapes::StructureShape.new(name: 'ListLoggingConfigurationsResponse')
155
+ ListManagedRuleSetsRequest = Shapes::StructureShape.new(name: 'ListManagedRuleSetsRequest')
156
+ ListManagedRuleSetsResponse = Shapes::StructureShape.new(name: 'ListManagedRuleSetsResponse')
151
157
  ListMaxItems = Shapes::IntegerShape.new(name: 'ListMaxItems')
152
158
  ListRegexPatternSetsRequest = Shapes::StructureShape.new(name: 'ListRegexPatternSetsRequest')
153
159
  ListRegexPatternSetsResponse = Shapes::StructureShape.new(name: 'ListRegexPatternSetsResponse')
@@ -167,6 +173,12 @@ module Aws::WAFV2
167
173
  ManagedRuleGroupStatement = Shapes::StructureShape.new(name: 'ManagedRuleGroupStatement')
168
174
  ManagedRuleGroupSummaries = Shapes::ListShape.new(name: 'ManagedRuleGroupSummaries')
169
175
  ManagedRuleGroupSummary = Shapes::StructureShape.new(name: 'ManagedRuleGroupSummary')
176
+ ManagedRuleGroupVersion = Shapes::StructureShape.new(name: 'ManagedRuleGroupVersion')
177
+ ManagedRuleGroupVersions = Shapes::ListShape.new(name: 'ManagedRuleGroupVersions')
178
+ ManagedRuleSet = Shapes::StructureShape.new(name: 'ManagedRuleSet')
179
+ ManagedRuleSetSummaries = Shapes::ListShape.new(name: 'ManagedRuleSetSummaries')
180
+ ManagedRuleSetSummary = Shapes::StructureShape.new(name: 'ManagedRuleSetSummary')
181
+ ManagedRuleSetVersion = Shapes::StructureShape.new(name: 'ManagedRuleSetVersion')
170
182
  Method = Shapes::StructureShape.new(name: 'Method')
171
183
  MetricName = Shapes::StringShape.new(name: 'MetricName')
172
184
  NextMarker = Shapes::StringShape.new(name: 'NextMarker')
@@ -180,8 +192,11 @@ module Aws::WAFV2
180
192
  PolicyString = Shapes::StringShape.new(name: 'PolicyString')
181
193
  PopulationSize = Shapes::IntegerShape.new(name: 'PopulationSize')
182
194
  PositionalConstraint = Shapes::StringShape.new(name: 'PositionalConstraint')
195
+ PublishedVersions = Shapes::MapShape.new(name: 'PublishedVersions')
183
196
  PutLoggingConfigurationRequest = Shapes::StructureShape.new(name: 'PutLoggingConfigurationRequest')
184
197
  PutLoggingConfigurationResponse = Shapes::StructureShape.new(name: 'PutLoggingConfigurationResponse')
198
+ PutManagedRuleSetVersionsRequest = Shapes::StructureShape.new(name: 'PutManagedRuleSetVersionsRequest')
199
+ PutManagedRuleSetVersionsResponse = Shapes::StructureShape.new(name: 'PutManagedRuleSetVersionsResponse')
185
200
  PutPermissionPolicyRequest = Shapes::StructureShape.new(name: 'PutPermissionPolicyRequest')
186
201
  PutPermissionPolicyResponse = Shapes::StructureShape.new(name: 'PutPermissionPolicyResponse')
187
202
  QueryString = Shapes::StructureShape.new(name: 'QueryString')
@@ -238,12 +253,15 @@ module Aws::WAFV2
238
253
  TextTransformationType = Shapes::StringShape.new(name: 'TextTransformationType')
239
254
  TextTransformations = Shapes::ListShape.new(name: 'TextTransformations')
240
255
  TimeWindow = Shapes::StructureShape.new(name: 'TimeWindow')
256
+ TimeWindowDay = Shapes::IntegerShape.new(name: 'TimeWindowDay')
241
257
  Timestamp = Shapes::TimestampShape.new(name: 'Timestamp')
242
258
  URIString = Shapes::StringShape.new(name: 'URIString')
243
259
  UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
244
260
  UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse')
245
261
  UpdateIPSetRequest = Shapes::StructureShape.new(name: 'UpdateIPSetRequest')
246
262
  UpdateIPSetResponse = Shapes::StructureShape.new(name: 'UpdateIPSetResponse')
263
+ UpdateManagedRuleSetVersionExpiryDateRequest = Shapes::StructureShape.new(name: 'UpdateManagedRuleSetVersionExpiryDateRequest')
264
+ UpdateManagedRuleSetVersionExpiryDateResponse = Shapes::StructureShape.new(name: 'UpdateManagedRuleSetVersionExpiryDateResponse')
247
265
  UpdateRegexPatternSetRequest = Shapes::StructureShape.new(name: 'UpdateRegexPatternSetRequest')
248
266
  UpdateRegexPatternSetResponse = Shapes::StructureShape.new(name: 'UpdateRegexPatternSetResponse')
249
267
  UpdateRuleGroupRequest = Shapes::StructureShape.new(name: 'UpdateRuleGroupRequest')
@@ -252,9 +270,13 @@ module Aws::WAFV2
252
270
  UpdateWebACLResponse = Shapes::StructureShape.new(name: 'UpdateWebACLResponse')
253
271
  UriPath = Shapes::StructureShape.new(name: 'UriPath')
254
272
  VendorName = Shapes::StringShape.new(name: 'VendorName')
273
+ VersionKeyString = Shapes::StringShape.new(name: 'VersionKeyString')
274
+ VersionToPublish = Shapes::StructureShape.new(name: 'VersionToPublish')
275
+ VersionsToPublish = Shapes::MapShape.new(name: 'VersionsToPublish')
255
276
  VisibilityConfig = Shapes::StructureShape.new(name: 'VisibilityConfig')
256
277
  WAFAssociatedItemException = Shapes::StructureShape.new(name: 'WAFAssociatedItemException')
257
278
  WAFDuplicateItemException = Shapes::StructureShape.new(name: 'WAFDuplicateItemException')
279
+ WAFExpiredManagedRuleGroupVersionException = Shapes::StructureShape.new(name: 'WAFExpiredManagedRuleGroupVersionException')
258
280
  WAFInternalErrorException = Shapes::StructureShape.new(name: 'WAFInternalErrorException')
259
281
  WAFInvalidOperationException = Shapes::StructureShape.new(name: 'WAFInvalidOperationException')
260
282
  WAFInvalidParameterException = Shapes::StructureShape.new(name: 'WAFInvalidParameterException')
@@ -445,8 +467,11 @@ module Aws::WAFV2
445
467
  DescribeManagedRuleGroupRequest.add_member(:vendor_name, Shapes::ShapeRef.new(shape: VendorName, required: true, location_name: "VendorName"))
446
468
  DescribeManagedRuleGroupRequest.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "Name"))
447
469
  DescribeManagedRuleGroupRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
470
+ DescribeManagedRuleGroupRequest.add_member(:version_name, Shapes::ShapeRef.new(shape: VersionKeyString, location_name: "VersionName"))
448
471
  DescribeManagedRuleGroupRequest.struct_class = Types::DescribeManagedRuleGroupRequest
449
472
 
473
+ DescribeManagedRuleGroupResponse.add_member(:version_name, Shapes::ShapeRef.new(shape: VersionKeyString, location_name: "VersionName"))
474
+ DescribeManagedRuleGroupResponse.add_member(:sns_topic_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "SnsTopicArn"))
450
475
  DescribeManagedRuleGroupResponse.add_member(:capacity, Shapes::ShapeRef.new(shape: CapacityUnit, location_name: "Capacity"))
451
476
  DescribeManagedRuleGroupResponse.add_member(:rules, Shapes::ShapeRef.new(shape: RuleSummaries, location_name: "Rules"))
452
477
  DescribeManagedRuleGroupResponse.add_member(:label_namespace, Shapes::ShapeRef.new(shape: LabelName, location_name: "LabelNamespace"))
@@ -517,6 +542,15 @@ module Aws::WAFV2
517
542
  GetLoggingConfigurationResponse.add_member(:logging_configuration, Shapes::ShapeRef.new(shape: LoggingConfiguration, location_name: "LoggingConfiguration"))
518
543
  GetLoggingConfigurationResponse.struct_class = Types::GetLoggingConfigurationResponse
519
544
 
545
+ GetManagedRuleSetRequest.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "Name"))
546
+ GetManagedRuleSetRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
547
+ GetManagedRuleSetRequest.add_member(:id, Shapes::ShapeRef.new(shape: EntityId, required: true, location_name: "Id"))
548
+ GetManagedRuleSetRequest.struct_class = Types::GetManagedRuleSetRequest
549
+
550
+ GetManagedRuleSetResponse.add_member(:managed_rule_set, Shapes::ShapeRef.new(shape: ManagedRuleSet, location_name: "ManagedRuleSet"))
551
+ GetManagedRuleSetResponse.add_member(:lock_token, Shapes::ShapeRef.new(shape: LockToken, location_name: "LockToken"))
552
+ GetManagedRuleSetResponse.struct_class = Types::GetManagedRuleSetResponse
553
+
520
554
  GetPermissionPolicyRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceArn"))
521
555
  GetPermissionPolicyRequest.struct_class = Types::GetPermissionPolicyRequest
522
556
 
@@ -526,6 +560,7 @@ module Aws::WAFV2
526
560
  GetRateBasedStatementManagedKeysRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
527
561
  GetRateBasedStatementManagedKeysRequest.add_member(:web_acl_name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "WebACLName"))
528
562
  GetRateBasedStatementManagedKeysRequest.add_member(:web_acl_id, Shapes::ShapeRef.new(shape: EntityId, required: true, location_name: "WebACLId"))
563
+ GetRateBasedStatementManagedKeysRequest.add_member(:rule_group_rule_name, Shapes::ShapeRef.new(shape: EntityName, location_name: "RuleGroupRuleName"))
529
564
  GetRateBasedStatementManagedKeysRequest.add_member(:rule_name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "RuleName"))
530
565
  GetRateBasedStatementManagedKeysRequest.struct_class = Types::GetRateBasedStatementManagedKeysRequest
531
566
 
@@ -649,6 +684,17 @@ module Aws::WAFV2
649
684
 
650
685
  Labels.member = Shapes::ShapeRef.new(shape: Label)
651
686
 
687
+ ListAvailableManagedRuleGroupVersionsRequest.add_member(:vendor_name, Shapes::ShapeRef.new(shape: VendorName, required: true, location_name: "VendorName"))
688
+ ListAvailableManagedRuleGroupVersionsRequest.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "Name"))
689
+ ListAvailableManagedRuleGroupVersionsRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
690
+ ListAvailableManagedRuleGroupVersionsRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
691
+ ListAvailableManagedRuleGroupVersionsRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
692
+ ListAvailableManagedRuleGroupVersionsRequest.struct_class = Types::ListAvailableManagedRuleGroupVersionsRequest
693
+
694
+ ListAvailableManagedRuleGroupVersionsResponse.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
695
+ ListAvailableManagedRuleGroupVersionsResponse.add_member(:versions, Shapes::ShapeRef.new(shape: ManagedRuleGroupVersions, location_name: "Versions"))
696
+ ListAvailableManagedRuleGroupVersionsResponse.struct_class = Types::ListAvailableManagedRuleGroupVersionsResponse
697
+
652
698
  ListAvailableManagedRuleGroupsRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
653
699
  ListAvailableManagedRuleGroupsRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
654
700
  ListAvailableManagedRuleGroupsRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
@@ -676,6 +722,15 @@ module Aws::WAFV2
676
722
  ListLoggingConfigurationsResponse.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
677
723
  ListLoggingConfigurationsResponse.struct_class = Types::ListLoggingConfigurationsResponse
678
724
 
725
+ ListManagedRuleSetsRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
726
+ ListManagedRuleSetsRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
727
+ ListManagedRuleSetsRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
728
+ ListManagedRuleSetsRequest.struct_class = Types::ListManagedRuleSetsRequest
729
+
730
+ ListManagedRuleSetsResponse.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
731
+ ListManagedRuleSetsResponse.add_member(:managed_rule_sets, Shapes::ShapeRef.new(shape: ManagedRuleSetSummaries, location_name: "ManagedRuleSets"))
732
+ ListManagedRuleSetsResponse.struct_class = Types::ListManagedRuleSetsResponse
733
+
679
734
  ListRegexPatternSetsRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
680
735
  ListRegexPatternSetsRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
681
736
  ListRegexPatternSetsRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
@@ -736,6 +791,7 @@ module Aws::WAFV2
736
791
 
737
792
  ManagedRuleGroupStatement.add_member(:vendor_name, Shapes::ShapeRef.new(shape: VendorName, required: true, location_name: "VendorName"))
738
793
  ManagedRuleGroupStatement.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "Name"))
794
+ ManagedRuleGroupStatement.add_member(:version, Shapes::ShapeRef.new(shape: VersionKeyString, location_name: "Version"))
739
795
  ManagedRuleGroupStatement.add_member(:excluded_rules, Shapes::ShapeRef.new(shape: ExcludedRules, location_name: "ExcludedRules"))
740
796
  ManagedRuleGroupStatement.add_member(:scope_down_statement, Shapes::ShapeRef.new(shape: Statement, location_name: "ScopeDownStatement"))
741
797
  ManagedRuleGroupStatement.struct_class = Types::ManagedRuleGroupStatement
@@ -747,6 +803,39 @@ module Aws::WAFV2
747
803
  ManagedRuleGroupSummary.add_member(:description, Shapes::ShapeRef.new(shape: EntityDescription, location_name: "Description"))
748
804
  ManagedRuleGroupSummary.struct_class = Types::ManagedRuleGroupSummary
749
805
 
806
+ ManagedRuleGroupVersion.add_member(:name, Shapes::ShapeRef.new(shape: VersionKeyString, location_name: "Name"))
807
+ ManagedRuleGroupVersion.add_member(:last_update_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastUpdateTimestamp"))
808
+ ManagedRuleGroupVersion.struct_class = Types::ManagedRuleGroupVersion
809
+
810
+ ManagedRuleGroupVersions.member = Shapes::ShapeRef.new(shape: ManagedRuleGroupVersion)
811
+
812
+ ManagedRuleSet.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "Name"))
813
+ ManagedRuleSet.add_member(:id, Shapes::ShapeRef.new(shape: EntityId, required: true, location_name: "Id"))
814
+ ManagedRuleSet.add_member(:arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ARN"))
815
+ ManagedRuleSet.add_member(:description, Shapes::ShapeRef.new(shape: EntityDescription, location_name: "Description"))
816
+ ManagedRuleSet.add_member(:published_versions, Shapes::ShapeRef.new(shape: PublishedVersions, location_name: "PublishedVersions"))
817
+ ManagedRuleSet.add_member(:recommended_version, Shapes::ShapeRef.new(shape: VersionKeyString, location_name: "RecommendedVersion"))
818
+ ManagedRuleSet.add_member(:label_namespace, Shapes::ShapeRef.new(shape: LabelName, location_name: "LabelNamespace"))
819
+ ManagedRuleSet.struct_class = Types::ManagedRuleSet
820
+
821
+ ManagedRuleSetSummaries.member = Shapes::ShapeRef.new(shape: ManagedRuleSetSummary)
822
+
823
+ ManagedRuleSetSummary.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, location_name: "Name"))
824
+ ManagedRuleSetSummary.add_member(:id, Shapes::ShapeRef.new(shape: EntityId, location_name: "Id"))
825
+ ManagedRuleSetSummary.add_member(:description, Shapes::ShapeRef.new(shape: EntityDescription, location_name: "Description"))
826
+ ManagedRuleSetSummary.add_member(:lock_token, Shapes::ShapeRef.new(shape: LockToken, location_name: "LockToken"))
827
+ ManagedRuleSetSummary.add_member(:arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "ARN"))
828
+ ManagedRuleSetSummary.add_member(:label_namespace, Shapes::ShapeRef.new(shape: LabelName, location_name: "LabelNamespace"))
829
+ ManagedRuleSetSummary.struct_class = Types::ManagedRuleSetSummary
830
+
831
+ ManagedRuleSetVersion.add_member(:associated_rule_group_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "AssociatedRuleGroupArn"))
832
+ ManagedRuleSetVersion.add_member(:capacity, Shapes::ShapeRef.new(shape: CapacityUnit, location_name: "Capacity"))
833
+ ManagedRuleSetVersion.add_member(:forecasted_lifetime, Shapes::ShapeRef.new(shape: TimeWindowDay, location_name: "ForecastedLifetime"))
834
+ ManagedRuleSetVersion.add_member(:publish_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "PublishTimestamp"))
835
+ ManagedRuleSetVersion.add_member(:last_update_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastUpdateTimestamp"))
836
+ ManagedRuleSetVersion.add_member(:expiry_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "ExpiryTimestamp"))
837
+ ManagedRuleSetVersion.struct_class = Types::ManagedRuleSetVersion
838
+
750
839
  Method.struct_class = Types::Method
751
840
 
752
841
  NoneAction.struct_class = Types::NoneAction
@@ -761,12 +850,26 @@ module Aws::WAFV2
761
850
  OverrideAction.add_member(:none, Shapes::ShapeRef.new(shape: NoneAction, location_name: "None"))
762
851
  OverrideAction.struct_class = Types::OverrideAction
763
852
 
853
+ PublishedVersions.key = Shapes::ShapeRef.new(shape: VersionKeyString)
854
+ PublishedVersions.value = Shapes::ShapeRef.new(shape: ManagedRuleSetVersion)
855
+
764
856
  PutLoggingConfigurationRequest.add_member(:logging_configuration, Shapes::ShapeRef.new(shape: LoggingConfiguration, required: true, location_name: "LoggingConfiguration"))
765
857
  PutLoggingConfigurationRequest.struct_class = Types::PutLoggingConfigurationRequest
766
858
 
767
859
  PutLoggingConfigurationResponse.add_member(:logging_configuration, Shapes::ShapeRef.new(shape: LoggingConfiguration, location_name: "LoggingConfiguration"))
768
860
  PutLoggingConfigurationResponse.struct_class = Types::PutLoggingConfigurationResponse
769
861
 
862
+ PutManagedRuleSetVersionsRequest.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "Name"))
863
+ PutManagedRuleSetVersionsRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
864
+ PutManagedRuleSetVersionsRequest.add_member(:id, Shapes::ShapeRef.new(shape: EntityId, required: true, location_name: "Id"))
865
+ PutManagedRuleSetVersionsRequest.add_member(:lock_token, Shapes::ShapeRef.new(shape: LockToken, required: true, location_name: "LockToken"))
866
+ PutManagedRuleSetVersionsRequest.add_member(:recommended_version, Shapes::ShapeRef.new(shape: VersionKeyString, location_name: "RecommendedVersion"))
867
+ PutManagedRuleSetVersionsRequest.add_member(:versions_to_publish, Shapes::ShapeRef.new(shape: VersionsToPublish, location_name: "VersionsToPublish"))
868
+ PutManagedRuleSetVersionsRequest.struct_class = Types::PutManagedRuleSetVersionsRequest
869
+
870
+ PutManagedRuleSetVersionsResponse.add_member(:next_lock_token, Shapes::ShapeRef.new(shape: LockToken, location_name: "NextLockToken"))
871
+ PutManagedRuleSetVersionsResponse.struct_class = Types::PutManagedRuleSetVersionsResponse
872
+
770
873
  PutPermissionPolicyRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceArn"))
771
874
  PutPermissionPolicyRequest.add_member(:policy, Shapes::ShapeRef.new(shape: PolicyString, required: true, location_name: "Policy"))
772
875
  PutPermissionPolicyRequest.struct_class = Types::PutPermissionPolicyRequest
@@ -954,6 +1057,19 @@ module Aws::WAFV2
954
1057
  UpdateIPSetResponse.add_member(:next_lock_token, Shapes::ShapeRef.new(shape: LockToken, location_name: "NextLockToken"))
955
1058
  UpdateIPSetResponse.struct_class = Types::UpdateIPSetResponse
956
1059
 
1060
+ UpdateManagedRuleSetVersionExpiryDateRequest.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "Name"))
1061
+ UpdateManagedRuleSetVersionExpiryDateRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
1062
+ UpdateManagedRuleSetVersionExpiryDateRequest.add_member(:id, Shapes::ShapeRef.new(shape: EntityId, required: true, location_name: "Id"))
1063
+ UpdateManagedRuleSetVersionExpiryDateRequest.add_member(:lock_token, Shapes::ShapeRef.new(shape: LockToken, required: true, location_name: "LockToken"))
1064
+ UpdateManagedRuleSetVersionExpiryDateRequest.add_member(:version_to_expire, Shapes::ShapeRef.new(shape: VersionKeyString, required: true, location_name: "VersionToExpire"))
1065
+ UpdateManagedRuleSetVersionExpiryDateRequest.add_member(:expiry_timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "ExpiryTimestamp"))
1066
+ UpdateManagedRuleSetVersionExpiryDateRequest.struct_class = Types::UpdateManagedRuleSetVersionExpiryDateRequest
1067
+
1068
+ UpdateManagedRuleSetVersionExpiryDateResponse.add_member(:expiring_version, Shapes::ShapeRef.new(shape: VersionKeyString, location_name: "ExpiringVersion"))
1069
+ UpdateManagedRuleSetVersionExpiryDateResponse.add_member(:expiry_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "ExpiryTimestamp"))
1070
+ UpdateManagedRuleSetVersionExpiryDateResponse.add_member(:next_lock_token, Shapes::ShapeRef.new(shape: LockToken, location_name: "NextLockToken"))
1071
+ UpdateManagedRuleSetVersionExpiryDateResponse.struct_class = Types::UpdateManagedRuleSetVersionExpiryDateResponse
1072
+
957
1073
  UpdateRegexPatternSetRequest.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "Name"))
958
1074
  UpdateRegexPatternSetRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
959
1075
  UpdateRegexPatternSetRequest.add_member(:id, Shapes::ShapeRef.new(shape: EntityId, required: true, location_name: "Id"))
@@ -994,6 +1110,13 @@ module Aws::WAFV2
994
1110
 
995
1111
  UriPath.struct_class = Types::UriPath
996
1112
 
1113
+ VersionToPublish.add_member(:associated_rule_group_arn, Shapes::ShapeRef.new(shape: ResourceArn, location_name: "AssociatedRuleGroupArn"))
1114
+ VersionToPublish.add_member(:forecasted_lifetime, Shapes::ShapeRef.new(shape: TimeWindowDay, location_name: "ForecastedLifetime"))
1115
+ VersionToPublish.struct_class = Types::VersionToPublish
1116
+
1117
+ VersionsToPublish.key = Shapes::ShapeRef.new(shape: VersionKeyString)
1118
+ VersionsToPublish.value = Shapes::ShapeRef.new(shape: VersionToPublish)
1119
+
997
1120
  VisibilityConfig.add_member(:sampled_requests_enabled, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "SampledRequestsEnabled"))
998
1121
  VisibilityConfig.add_member(:cloud_watch_metrics_enabled, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "CloudWatchMetricsEnabled"))
999
1122
  VisibilityConfig.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, required: true, location_name: "MetricName"))
@@ -1005,6 +1128,9 @@ module Aws::WAFV2
1005
1128
  WAFDuplicateItemException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1006
1129
  WAFDuplicateItemException.struct_class = Types::WAFDuplicateItemException
1007
1130
 
1131
+ WAFExpiredManagedRuleGroupVersionException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1132
+ WAFExpiredManagedRuleGroupVersionException.struct_class = Types::WAFExpiredManagedRuleGroupVersionException
1133
+
1008
1134
  WAFInternalErrorException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
1009
1135
  WAFInternalErrorException.struct_class = Types::WAFInternalErrorException
1010
1136
 
@@ -1120,6 +1246,7 @@ module Aws::WAFV2
1120
1246
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidResourceException)
1121
1247
  o.errors << Shapes::ShapeRef.new(shape: WAFUnavailableEntityException)
1122
1248
  o.errors << Shapes::ShapeRef.new(shape: WAFSubscriptionNotFoundException)
1249
+ o.errors << Shapes::ShapeRef.new(shape: WAFExpiredManagedRuleGroupVersionException)
1123
1250
  end)
1124
1251
 
1125
1252
  api.add_operation(:create_ip_set, Seahorse::Model::Operation.new.tap do |o|
@@ -1305,6 +1432,7 @@ module Aws::WAFV2
1305
1432
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidResourceException)
1306
1433
  o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
1307
1434
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1435
+ o.errors << Shapes::ShapeRef.new(shape: WAFExpiredManagedRuleGroupVersionException)
1308
1436
  end)
1309
1437
 
1310
1438
  api.add_operation(:disassociate_web_acl, Seahorse::Model::Operation.new.tap do |o|
@@ -1343,6 +1471,18 @@ module Aws::WAFV2
1343
1471
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1344
1472
  end)
1345
1473
 
1474
+ api.add_operation(:get_managed_rule_set, Seahorse::Model::Operation.new.tap do |o|
1475
+ o.name = "GetManagedRuleSet"
1476
+ o.http_method = "POST"
1477
+ o.http_request_uri = "/"
1478
+ o.input = Shapes::ShapeRef.new(shape: GetManagedRuleSetRequest)
1479
+ o.output = Shapes::ShapeRef.new(shape: GetManagedRuleSetResponse)
1480
+ o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
1481
+ o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
1482
+ o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
1483
+ o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1484
+ end)
1485
+
1346
1486
  api.add_operation(:get_permission_policy, Seahorse::Model::Operation.new.tap do |o|
1347
1487
  o.name = "GetPermissionPolicy"
1348
1488
  o.http_method = "POST"
@@ -1426,6 +1566,17 @@ module Aws::WAFV2
1426
1566
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1427
1567
  end)
1428
1568
 
1569
+ api.add_operation(:list_available_managed_rule_group_versions, Seahorse::Model::Operation.new.tap do |o|
1570
+ o.name = "ListAvailableManagedRuleGroupVersions"
1571
+ o.http_method = "POST"
1572
+ o.http_request_uri = "/"
1573
+ o.input = Shapes::ShapeRef.new(shape: ListAvailableManagedRuleGroupVersionsRequest)
1574
+ o.output = Shapes::ShapeRef.new(shape: ListAvailableManagedRuleGroupVersionsResponse)
1575
+ o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
1576
+ o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
1577
+ o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1578
+ end)
1579
+
1429
1580
  api.add_operation(:list_available_managed_rule_groups, Seahorse::Model::Operation.new.tap do |o|
1430
1581
  o.name = "ListAvailableManagedRuleGroups"
1431
1582
  o.http_method = "POST"
@@ -1459,6 +1610,17 @@ module Aws::WAFV2
1459
1610
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1460
1611
  end)
1461
1612
 
1613
+ api.add_operation(:list_managed_rule_sets, Seahorse::Model::Operation.new.tap do |o|
1614
+ o.name = "ListManagedRuleSets"
1615
+ o.http_method = "POST"
1616
+ o.http_request_uri = "/"
1617
+ o.input = Shapes::ShapeRef.new(shape: ListManagedRuleSetsRequest)
1618
+ o.output = Shapes::ShapeRef.new(shape: ListManagedRuleSetsResponse)
1619
+ o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
1620
+ o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
1621
+ o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1622
+ end)
1623
+
1462
1624
  api.add_operation(:list_regex_pattern_sets, Seahorse::Model::Operation.new.tap do |o|
1463
1625
  o.name = "ListRegexPatternSets"
1464
1626
  o.http_method = "POST"
@@ -1533,6 +1695,19 @@ module Aws::WAFV2
1533
1695
  o.errors << Shapes::ShapeRef.new(shape: WAFLimitsExceededException)
1534
1696
  end)
1535
1697
 
1698
+ api.add_operation(:put_managed_rule_set_versions, Seahorse::Model::Operation.new.tap do |o|
1699
+ o.name = "PutManagedRuleSetVersions"
1700
+ o.http_method = "POST"
1701
+ o.http_request_uri = "/"
1702
+ o.input = Shapes::ShapeRef.new(shape: PutManagedRuleSetVersionsRequest)
1703
+ o.output = Shapes::ShapeRef.new(shape: PutManagedRuleSetVersionsResponse)
1704
+ o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
1705
+ o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
1706
+ o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
1707
+ o.errors << Shapes::ShapeRef.new(shape: WAFOptimisticLockException)
1708
+ o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1709
+ end)
1710
+
1536
1711
  api.add_operation(:put_permission_policy, Seahorse::Model::Operation.new.tap do |o|
1537
1712
  o.name = "PutPermissionPolicy"
1538
1713
  o.http_method = "POST"
@@ -1589,6 +1764,19 @@ module Aws::WAFV2
1589
1764
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1590
1765
  end)
1591
1766
 
1767
+ api.add_operation(:update_managed_rule_set_version_expiry_date, Seahorse::Model::Operation.new.tap do |o|
1768
+ o.name = "UpdateManagedRuleSetVersionExpiryDate"
1769
+ o.http_method = "POST"
1770
+ o.http_request_uri = "/"
1771
+ o.input = Shapes::ShapeRef.new(shape: UpdateManagedRuleSetVersionExpiryDateRequest)
1772
+ o.output = Shapes::ShapeRef.new(shape: UpdateManagedRuleSetVersionExpiryDateResponse)
1773
+ o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
1774
+ o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
1775
+ o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
1776
+ o.errors << Shapes::ShapeRef.new(shape: WAFOptimisticLockException)
1777
+ o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1778
+ end)
1779
+
1592
1780
  api.add_operation(:update_regex_pattern_set, Seahorse::Model::Operation.new.tap do |o|
1593
1781
  o.name = "UpdateRegexPatternSet"
1594
1782
  o.http_method = "POST"
@@ -1637,6 +1825,7 @@ module Aws::WAFV2
1637
1825
  o.errors << Shapes::ShapeRef.new(shape: WAFUnavailableEntityException)
1638
1826
  o.errors << Shapes::ShapeRef.new(shape: WAFSubscriptionNotFoundException)
1639
1827
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1828
+ o.errors << Shapes::ShapeRef.new(shape: WAFExpiredManagedRuleGroupVersionException)
1640
1829
  end)
1641
1830
  end
1642
1831
 
@@ -29,6 +29,7 @@ module Aws::WAFV2
29
29
  # ## Error Classes
30
30
  # * {WAFAssociatedItemException}
31
31
  # * {WAFDuplicateItemException}
32
+ # * {WAFExpiredManagedRuleGroupVersionException}
32
33
  # * {WAFInternalErrorException}
33
34
  # * {WAFInvalidOperationException}
34
35
  # * {WAFInvalidParameterException}
@@ -79,6 +80,21 @@ module Aws::WAFV2
79
80
  end
80
81
  end
81
82
 
83
+ class WAFExpiredManagedRuleGroupVersionException < ServiceError
84
+
85
+ # @param [Seahorse::Client::RequestContext] context
86
+ # @param [String] message
87
+ # @param [Aws::WAFV2::Types::WAFExpiredManagedRuleGroupVersionException] data
88
+ def initialize(context, message, data = Aws::EmptyStructure.new)
89
+ super(context, message, data)
90
+ end
91
+
92
+ # @return [String]
93
+ def message
94
+ @message || @data[:message]
95
+ end
96
+ end
97
+
82
98
  class WAFInternalErrorException < ServiceError
83
99
 
84
100
  # @param [Seahorse::Client::RequestContext] context
@@ -39,6 +39,8 @@ module Aws::WAFV2
39
39
  # This is used only to indicate the web request component for WAF to
40
40
  # inspect, in the FieldToMatch specification.
41
41
  #
42
+ # JSON specification: `"All": \{\}`
43
+ #
42
44
  # @api private
43
45
  #
44
46
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/All AWS API Documentation
@@ -50,6 +52,8 @@ module Aws::WAFV2
50
52
  # This is used only to indicate the web request component for WAF to
51
53
  # inspect, in the FieldToMatch specification.
52
54
  #
55
+ # JSON specification: `"AllQueryArguments": \{\}`
56
+ #
53
57
  # @api private
54
58
  #
55
59
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/AllQueryArguments AWS API Documentation
@@ -339,6 +343,7 @@ module Aws::WAFV2
339
343
  # managed_rule_group_statement: {
340
344
  # vendor_name: "VendorName", # required
341
345
  # name: "EntityName", # required
346
+ # version: "VersionKeyString",
342
347
  # excluded_rules: [
343
348
  # {
344
349
  # name: "EntityName", # required
@@ -461,6 +466,8 @@ module Aws::WAFV2
461
466
  # This is used only to indicate the web request component for WAF to
462
467
  # inspect, in the FieldToMatch specification.
463
468
  #
469
+ # JSON specification: `"Body": \{\}`
470
+ #
464
471
  # @api private
465
472
  #
466
473
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/Body AWS API Documentation
@@ -863,6 +870,7 @@ module Aws::WAFV2
863
870
  # managed_rule_group_statement: {
864
871
  # vendor_name: "VendorName", # required
865
872
  # name: "EntityName", # required
873
+ # version: "VersionKeyString",
866
874
  # excluded_rules: [
867
875
  # {
868
876
  # name: "EntityName", # required
@@ -1094,7 +1102,7 @@ module Aws::WAFV2
1094
1102
  # @return [String]
1095
1103
  #
1096
1104
  # @!attribute [rw] ip_address_version
1097
- # Specify IPV4 or IPV6.
1105
+ # The version of the IP addresses, either `IPV4` or `IPV6`.
1098
1106
  # @return [String]
1099
1107
  #
1100
1108
  # @!attribute [rw] addresses
@@ -1492,6 +1500,7 @@ module Aws::WAFV2
1492
1500
  # managed_rule_group_statement: {
1493
1501
  # vendor_name: "VendorName", # required
1494
1502
  # name: "EntityName", # required
1503
+ # version: "VersionKeyString",
1495
1504
  # excluded_rules: [
1496
1505
  # {
1497
1506
  # name: "EntityName", # required
@@ -1967,6 +1976,7 @@ module Aws::WAFV2
1967
1976
  # managed_rule_group_statement: {
1968
1977
  # vendor_name: "VendorName", # required
1969
1978
  # name: "EntityName", # required
1979
+ # version: "VersionKeyString",
1970
1980
  # excluded_rules: [
1971
1981
  # {
1972
1982
  # name: "EntityName", # required
@@ -2415,15 +2425,15 @@ module Aws::WAFV2
2415
2425
  # @return [String]
2416
2426
  #
2417
2427
  # @!attribute [rw] web_acl_lock_token
2418
- # A token used for optimistic locking. WAF returns a token to your get
2419
- # and list requests, to mark the state of the entity at the time of
2420
- # the request. To make changes to the entity associated with the
2421
- # token, you provide the token to operations like update and delete.
2422
- # WAF uses the token to ensure that no changes have been made to the
2423
- # entity since you last retrieved it. If a change has been made, the
2424
- # update fails with a `WAFOptimisticLockException`. If this happens,
2425
- # perform another get, and use the new token returned by that
2426
- # operation.
2428
+ # A token used for optimistic locking. WAF returns a token to your
2429
+ # `get` and `list` requests, to mark the state of the entity at the
2430
+ # time of the request. To make changes to the entity associated with
2431
+ # the token, you provide the token to operations like `update` and
2432
+ # `delete`. WAF uses the token to ensure that no changes have been
2433
+ # made to the entity since you last retrieved it. If a change has been
2434
+ # made, the update fails with a `WAFOptimisticLockException`. If this
2435
+ # happens, perform another `get`, and use the new token returned by
2436
+ # that operation.
2427
2437
  # @return [String]
2428
2438
  #
2429
2439
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteFirewallManagerRuleGroupsRequest AWS API Documentation
@@ -2436,15 +2446,15 @@ module Aws::WAFV2
2436
2446
  end
2437
2447
 
2438
2448
  # @!attribute [rw] next_web_acl_lock_token
2439
- # A token used for optimistic locking. WAF returns a token to your get
2440
- # and list requests, to mark the state of the entity at the time of
2441
- # the request. To make changes to the entity associated with the
2442
- # token, you provide the token to operations like update and delete.
2443
- # WAF uses the token to ensure that no changes have been made to the
2444
- # entity since you last retrieved it. If a change has been made, the
2445
- # update fails with a `WAFOptimisticLockException`. If this happens,
2446
- # perform another get, and use the new token returned by that
2447
- # operation.
2449
+ # A token used for optimistic locking. WAF returns a token to your
2450
+ # `get` and `list` requests, to mark the state of the entity at the
2451
+ # time of the request. To make changes to the entity associated with
2452
+ # the token, you provide the token to operations like `update` and
2453
+ # `delete`. WAF uses the token to ensure that no changes have been
2454
+ # made to the entity since you last retrieved it. If a change has been
2455
+ # made, the update fails with a `WAFOptimisticLockException`. If this
2456
+ # happens, perform another `get`, and use the new token returned by
2457
+ # that operation.
2448
2458
  # @return [String]
2449
2459
  #
2450
2460
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteFirewallManagerRuleGroupsResponse AWS API Documentation
@@ -2492,15 +2502,15 @@ module Aws::WAFV2
2492
2502
  # @return [String]
2493
2503
  #
2494
2504
  # @!attribute [rw] lock_token
2495
- # A token used for optimistic locking. WAF returns a token to your get
2496
- # and list requests, to mark the state of the entity at the time of
2497
- # the request. To make changes to the entity associated with the
2498
- # token, you provide the token to operations like update and delete.
2499
- # WAF uses the token to ensure that no changes have been made to the
2500
- # entity since you last retrieved it. If a change has been made, the
2501
- # update fails with a `WAFOptimisticLockException`. If this happens,
2502
- # perform another get, and use the new token returned by that
2503
- # operation.
2505
+ # A token used for optimistic locking. WAF returns a token to your
2506
+ # `get` and `list` requests, to mark the state of the entity at the
2507
+ # time of the request. To make changes to the entity associated with
2508
+ # the token, you provide the token to operations like `update` and
2509
+ # `delete`. WAF uses the token to ensure that no changes have been
2510
+ # made to the entity since you last retrieved it. If a change has been
2511
+ # made, the update fails with a `WAFOptimisticLockException`. If this
2512
+ # happens, perform another `get`, and use the new token returned by
2513
+ # that operation.
2504
2514
  # @return [String]
2505
2515
  #
2506
2516
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteIPSetRequest AWS API Documentation
@@ -2605,15 +2615,15 @@ module Aws::WAFV2
2605
2615
  # @return [String]
2606
2616
  #
2607
2617
  # @!attribute [rw] lock_token
2608
- # A token used for optimistic locking. WAF returns a token to your get
2609
- # and list requests, to mark the state of the entity at the time of
2610
- # the request. To make changes to the entity associated with the
2611
- # token, you provide the token to operations like update and delete.
2612
- # WAF uses the token to ensure that no changes have been made to the
2613
- # entity since you last retrieved it. If a change has been made, the
2614
- # update fails with a `WAFOptimisticLockException`. If this happens,
2615
- # perform another get, and use the new token returned by that
2616
- # operation.
2618
+ # A token used for optimistic locking. WAF returns a token to your
2619
+ # `get` and `list` requests, to mark the state of the entity at the
2620
+ # time of the request. To make changes to the entity associated with
2621
+ # the token, you provide the token to operations like `update` and
2622
+ # `delete`. WAF uses the token to ensure that no changes have been
2623
+ # made to the entity since you last retrieved it. If a change has been
2624
+ # made, the update fails with a `WAFOptimisticLockException`. If this
2625
+ # happens, perform another `get`, and use the new token returned by
2626
+ # that operation.
2617
2627
  # @return [String]
2618
2628
  #
2619
2629
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRegexPatternSetRequest AWS API Documentation
@@ -2668,15 +2678,15 @@ module Aws::WAFV2
2668
2678
  # @return [String]
2669
2679
  #
2670
2680
  # @!attribute [rw] lock_token
2671
- # A token used for optimistic locking. WAF returns a token to your get
2672
- # and list requests, to mark the state of the entity at the time of
2673
- # the request. To make changes to the entity associated with the
2674
- # token, you provide the token to operations like update and delete.
2675
- # WAF uses the token to ensure that no changes have been made to the
2676
- # entity since you last retrieved it. If a change has been made, the
2677
- # update fails with a `WAFOptimisticLockException`. If this happens,
2678
- # perform another get, and use the new token returned by that
2679
- # operation.
2681
+ # A token used for optimistic locking. WAF returns a token to your
2682
+ # `get` and `list` requests, to mark the state of the entity at the
2683
+ # time of the request. To make changes to the entity associated with
2684
+ # the token, you provide the token to operations like `update` and
2685
+ # `delete`. WAF uses the token to ensure that no changes have been
2686
+ # made to the entity since you last retrieved it. If a change has been
2687
+ # made, the update fails with a `WAFOptimisticLockException`. If this
2688
+ # happens, perform another `get`, and use the new token returned by
2689
+ # that operation.
2680
2690
  # @return [String]
2681
2691
  #
2682
2692
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRuleGroupRequest AWS API Documentation
@@ -2731,15 +2741,15 @@ module Aws::WAFV2
2731
2741
  # @return [String]
2732
2742
  #
2733
2743
  # @!attribute [rw] lock_token
2734
- # A token used for optimistic locking. WAF returns a token to your get
2735
- # and list requests, to mark the state of the entity at the time of
2736
- # the request. To make changes to the entity associated with the
2737
- # token, you provide the token to operations like update and delete.
2738
- # WAF uses the token to ensure that no changes have been made to the
2739
- # entity since you last retrieved it. If a change has been made, the
2740
- # update fails with a `WAFOptimisticLockException`. If this happens,
2741
- # perform another get, and use the new token returned by that
2742
- # operation.
2744
+ # A token used for optimistic locking. WAF returns a token to your
2745
+ # `get` and `list` requests, to mark the state of the entity at the
2746
+ # time of the request. To make changes to the entity associated with
2747
+ # the token, you provide the token to operations like `update` and
2748
+ # `delete`. WAF uses the token to ensure that no changes have been
2749
+ # made to the entity since you last retrieved it. If a change has been
2750
+ # made, the update fails with a `WAFOptimisticLockException`. If this
2751
+ # happens, perform another `get`, and use the new token returned by
2752
+ # that operation.
2743
2753
  # @return [String]
2744
2754
  #
2745
2755
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteWebACLRequest AWS API Documentation
@@ -2764,6 +2774,7 @@ module Aws::WAFV2
2764
2774
  # vendor_name: "VendorName", # required
2765
2775
  # name: "EntityName", # required
2766
2776
  # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
2777
+ # version_name: "VersionKeyString",
2767
2778
  # }
2768
2779
  #
2769
2780
  # @!attribute [rw] vendor_name
@@ -2791,16 +2802,40 @@ module Aws::WAFV2
2791
2802
  # * API and SDKs - For all calls, use the Region endpoint us-east-1.
2792
2803
  # @return [String]
2793
2804
  #
2805
+ # @!attribute [rw] version_name
2806
+ # The version of the rule group. You can only use a version that is
2807
+ # not scheduled for expiration. If you don't provide this, WAF uses
2808
+ # the vendor's default version.
2809
+ # @return [String]
2810
+ #
2794
2811
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DescribeManagedRuleGroupRequest AWS API Documentation
2795
2812
  #
2796
2813
  class DescribeManagedRuleGroupRequest < Struct.new(
2797
2814
  :vendor_name,
2798
2815
  :name,
2799
- :scope)
2816
+ :scope,
2817
+ :version_name)
2800
2818
  SENSITIVE = []
2801
2819
  include Aws::Structure
2802
2820
  end
2803
2821
 
2822
+ # @!attribute [rw] version_name
2823
+ # The managed rule group's version.
2824
+ # @return [String]
2825
+ #
2826
+ # @!attribute [rw] sns_topic_arn
2827
+ # The Amazon resource name (ARN) of the Amazon Simple Notification
2828
+ # Service SNS topic that's used to record changes to the managed rule
2829
+ # group. You can subscribe to the SNS topic to receive notifications
2830
+ # when the managed rule group is modified, such as for new versions
2831
+ # and for version expiration. For more information, see the [Amazon
2832
+ # Simple Notification Service Developer Guide][1].
2833
+ #
2834
+ #
2835
+ #
2836
+ # [1]: https://docs.aws.amazon.com/sns/latest/dg/welcome.html
2837
+ # @return [String]
2838
+ #
2804
2839
  # @!attribute [rw] capacity
2805
2840
  # The web ACL capacity units (WCUs) required for this rule group. WAF
2806
2841
  # uses web ACL capacity units (WCU) to calculate and control the
@@ -2847,6 +2882,8 @@ module Aws::WAFV2
2847
2882
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DescribeManagedRuleGroupResponse AWS API Documentation
2848
2883
  #
2849
2884
  class DescribeManagedRuleGroupResponse < Struct.new(
2885
+ :version_name,
2886
+ :sns_topic_arn,
2850
2887
  :capacity,
2851
2888
  :rules,
2852
2889
  :label_namespace,
@@ -2923,6 +2960,14 @@ module Aws::WAFV2
2923
2960
  # requires it. To inspect more than one component of a web request,
2924
2961
  # create a separate rule statement for each component.
2925
2962
  #
2963
+ # JSON specification for a `QueryString` field to match:
2964
+ #
2965
+ # ` "FieldToMatch": \{ "QueryString": \{\} \}`
2966
+ #
2967
+ # Example JSON for a `Method` field to match specification:
2968
+ #
2969
+ # ` "FieldToMatch": \{ "Method": \{ "Name": "DELETE" \} \}`
2970
+ #
2926
2971
  # @note When making an API call, you may pass FieldToMatch
2927
2972
  # data as a hash:
2928
2973
  #
@@ -3164,8 +3209,8 @@ module Aws::WAFV2
3164
3209
  # provide the ARN of the rule group in this statement.
3165
3210
  #
3166
3211
  # You cannot nest a `RuleGroupReferenceStatement`, for example for use
3167
- # inside a `NotStatement` or `OrStatement`. It can only be referenced
3168
- # as a top-level statement within a rule.
3212
+ # inside a `NotStatement` or `OrStatement`. You can only use a rule
3213
+ # group reference statement at the top level inside a web ACL.
3169
3214
  # @return [Types::RuleGroupReferenceStatement]
3170
3215
  #
3171
3216
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/FirewallManagerStatement AWS API Documentation
@@ -3330,15 +3375,15 @@ module Aws::WAFV2
3330
3375
  # @return [Types::IPSet]
3331
3376
  #
3332
3377
  # @!attribute [rw] lock_token
3333
- # A token used for optimistic locking. WAF returns a token to your get
3334
- # and list requests, to mark the state of the entity at the time of
3335
- # the request. To make changes to the entity associated with the
3336
- # token, you provide the token to operations like update and delete.
3337
- # WAF uses the token to ensure that no changes have been made to the
3338
- # entity since you last retrieved it. If a change has been made, the
3339
- # update fails with a `WAFOptimisticLockException`. If this happens,
3340
- # perform another get, and use the new token returned by that
3341
- # operation.
3378
+ # A token used for optimistic locking. WAF returns a token to your
3379
+ # `get` and `list` requests, to mark the state of the entity at the
3380
+ # time of the request. To make changes to the entity associated with
3381
+ # the token, you provide the token to operations like `update` and
3382
+ # `delete`. WAF uses the token to ensure that no changes have been
3383
+ # made to the entity since you last retrieved it. If a change has been
3384
+ # made, the update fails with a `WAFOptimisticLockException`. If this
3385
+ # happens, perform another `get`, and use the new token returned by
3386
+ # that operation.
3342
3387
  # @return [String]
3343
3388
  #
3344
3389
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetIPSetResponse AWS API Documentation
@@ -3382,6 +3427,79 @@ module Aws::WAFV2
3382
3427
  include Aws::Structure
3383
3428
  end
3384
3429
 
3430
+ # @note When making an API call, you may pass GetManagedRuleSetRequest
3431
+ # data as a hash:
3432
+ #
3433
+ # {
3434
+ # name: "EntityName", # required
3435
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
3436
+ # id: "EntityId", # required
3437
+ # }
3438
+ #
3439
+ # @!attribute [rw] name
3440
+ # The name of the managed rule set. You use this, along with the rule
3441
+ # set ID, to identify the rule set.
3442
+ #
3443
+ # This name is assigned to the corresponding managed rule group, which
3444
+ # your customers can access and use.
3445
+ # @return [String]
3446
+ #
3447
+ # @!attribute [rw] scope
3448
+ # Specifies whether this is for an Amazon CloudFront distribution or
3449
+ # for a regional application. A regional application can be an
3450
+ # Application Load Balancer (ALB), an Amazon API Gateway REST API, or
3451
+ # an AppSync GraphQL API.
3452
+ #
3453
+ # To work with CloudFront, you must also specify the Region US East
3454
+ # (N. Virginia) as follows:
3455
+ #
3456
+ # * CLI - Specify the Region when you use the CloudFront scope:
3457
+ # `--scope=CLOUDFRONT --region=us-east-1`.
3458
+ #
3459
+ # * API and SDKs - For all calls, use the Region endpoint us-east-1.
3460
+ # @return [String]
3461
+ #
3462
+ # @!attribute [rw] id
3463
+ # A unique identifier for the managed rule set. The ID is returned in
3464
+ # the responses to commands like `list`. You provide it to operations
3465
+ # like `get` and `update`.
3466
+ # @return [String]
3467
+ #
3468
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetManagedRuleSetRequest AWS API Documentation
3469
+ #
3470
+ class GetManagedRuleSetRequest < Struct.new(
3471
+ :name,
3472
+ :scope,
3473
+ :id)
3474
+ SENSITIVE = []
3475
+ include Aws::Structure
3476
+ end
3477
+
3478
+ # @!attribute [rw] managed_rule_set
3479
+ # The managed rule set that you requested.
3480
+ # @return [Types::ManagedRuleSet]
3481
+ #
3482
+ # @!attribute [rw] lock_token
3483
+ # A token used for optimistic locking. WAF returns a token to your
3484
+ # `get` and `list` requests, to mark the state of the entity at the
3485
+ # time of the request. To make changes to the entity associated with
3486
+ # the token, you provide the token to operations like `update` and
3487
+ # `delete`. WAF uses the token to ensure that no changes have been
3488
+ # made to the entity since you last retrieved it. If a change has been
3489
+ # made, the update fails with a `WAFOptimisticLockException`. If this
3490
+ # happens, perform another `get`, and use the new token returned by
3491
+ # that operation.
3492
+ # @return [String]
3493
+ #
3494
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetManagedRuleSetResponse AWS API Documentation
3495
+ #
3496
+ class GetManagedRuleSetResponse < Struct.new(
3497
+ :managed_rule_set,
3498
+ :lock_token)
3499
+ SENSITIVE = []
3500
+ include Aws::Structure
3501
+ end
3502
+
3385
3503
  # @note When making an API call, you may pass GetPermissionPolicyRequest
3386
3504
  # data as a hash:
3387
3505
  #
@@ -3421,6 +3539,7 @@ module Aws::WAFV2
3421
3539
  # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
3422
3540
  # web_acl_name: "EntityName", # required
3423
3541
  # web_acl_id: "EntityId", # required
3542
+ # rule_group_rule_name: "EntityName",
3424
3543
  # rule_name: "EntityName", # required
3425
3544
  # }
3426
3545
  #
@@ -3450,8 +3569,17 @@ module Aws::WAFV2
3450
3569
  # like update and delete.
3451
3570
  # @return [String]
3452
3571
  #
3572
+ # @!attribute [rw] rule_group_rule_name
3573
+ # The name of the rule group reference statement in your web ACL. This
3574
+ # is required only when you have the rate-based rule nested inside a
3575
+ # rule group.
3576
+ # @return [String]
3577
+ #
3453
3578
  # @!attribute [rw] rule_name
3454
- # The name of the rate-based rule to get the keys for.
3579
+ # The name of the rate-based rule to get the keys for. If you have the
3580
+ # rule defined inside a rule group that you're using in your web ACL,
3581
+ # also provide the name of the rule group reference statement in the
3582
+ # request parameter `RuleGroupRuleName`.
3455
3583
  # @return [String]
3456
3584
  #
3457
3585
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRateBasedStatementManagedKeysRequest AWS API Documentation
@@ -3460,6 +3588,7 @@ module Aws::WAFV2
3460
3588
  :scope,
3461
3589
  :web_acl_name,
3462
3590
  :web_acl_id,
3591
+ :rule_group_rule_name,
3463
3592
  :rule_name)
3464
3593
  SENSITIVE = []
3465
3594
  include Aws::Structure
@@ -3531,15 +3660,15 @@ module Aws::WAFV2
3531
3660
  # @return [Types::RegexPatternSet]
3532
3661
  #
3533
3662
  # @!attribute [rw] lock_token
3534
- # A token used for optimistic locking. WAF returns a token to your get
3535
- # and list requests, to mark the state of the entity at the time of
3536
- # the request. To make changes to the entity associated with the
3537
- # token, you provide the token to operations like update and delete.
3538
- # WAF uses the token to ensure that no changes have been made to the
3539
- # entity since you last retrieved it. If a change has been made, the
3540
- # update fails with a `WAFOptimisticLockException`. If this happens,
3541
- # perform another get, and use the new token returned by that
3542
- # operation.
3663
+ # A token used for optimistic locking. WAF returns a token to your
3664
+ # `get` and `list` requests, to mark the state of the entity at the
3665
+ # time of the request. To make changes to the entity associated with
3666
+ # the token, you provide the token to operations like `update` and
3667
+ # `delete`. WAF uses the token to ensure that no changes have been
3668
+ # made to the entity since you last retrieved it. If a change has been
3669
+ # made, the update fails with a `WAFOptimisticLockException`. If this
3670
+ # happens, perform another `get`, and use the new token returned by
3671
+ # that operation.
3543
3672
  # @return [String]
3544
3673
  #
3545
3674
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRegexPatternSetResponse AWS API Documentation
@@ -3606,15 +3735,15 @@ module Aws::WAFV2
3606
3735
  # @return [Types::RuleGroup]
3607
3736
  #
3608
3737
  # @!attribute [rw] lock_token
3609
- # A token used for optimistic locking. WAF returns a token to your get
3610
- # and list requests, to mark the state of the entity at the time of
3611
- # the request. To make changes to the entity associated with the
3612
- # token, you provide the token to operations like update and delete.
3613
- # WAF uses the token to ensure that no changes have been made to the
3614
- # entity since you last retrieved it. If a change has been made, the
3615
- # update fails with a `WAFOptimisticLockException`. If this happens,
3616
- # perform another get, and use the new token returned by that
3617
- # operation.
3738
+ # A token used for optimistic locking. WAF returns a token to your
3739
+ # `get` and `list` requests, to mark the state of the entity at the
3740
+ # time of the request. To make changes to the entity associated with
3741
+ # the token, you provide the token to operations like `update` and
3742
+ # `delete`. WAF uses the token to ensure that no changes have been
3743
+ # made to the entity since you last retrieved it. If a change has been
3744
+ # made, the update fails with a `WAFOptimisticLockException`. If this
3745
+ # happens, perform another `get`, and use the new token returned by
3746
+ # that operation.
3618
3747
  # @return [String]
3619
3748
  #
3620
3749
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRuleGroupResponse AWS API Documentation
@@ -3809,15 +3938,15 @@ module Aws::WAFV2
3809
3938
  # @return [Types::WebACL]
3810
3939
  #
3811
3940
  # @!attribute [rw] lock_token
3812
- # A token used for optimistic locking. WAF returns a token to your get
3813
- # and list requests, to mark the state of the entity at the time of
3814
- # the request. To make changes to the entity associated with the
3815
- # token, you provide the token to operations like update and delete.
3816
- # WAF uses the token to ensure that no changes have been made to the
3817
- # entity since you last retrieved it. If a change has been made, the
3818
- # update fails with a `WAFOptimisticLockException`. If this happens,
3819
- # perform another get, and use the new token returned by that
3820
- # operation.
3941
+ # A token used for optimistic locking. WAF returns a token to your
3942
+ # `get` and `list` requests, to mark the state of the entity at the
3943
+ # time of the request. To make changes to the entity associated with
3944
+ # the token, you provide the token to operations like `update` and
3945
+ # `delete`. WAF uses the token to ensure that no changes have been
3946
+ # made to the entity since you last retrieved it. If a change has been
3947
+ # made, the update fails with a `WAFOptimisticLockException`. If this
3948
+ # happens, perform another `get`, and use the new token returned by
3949
+ # that operation.
3821
3950
  # @return [String]
3822
3951
  #
3823
3952
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACLResponse AWS API Documentation
@@ -3942,7 +4071,7 @@ module Aws::WAFV2
3942
4071
  # @return [String]
3943
4072
  #
3944
4073
  # @!attribute [rw] ip_address_version
3945
- # Specify IPV4 or IPV6.
4074
+ # The version of the IP addresses, either `IPV4` or `IPV6`.
3946
4075
  # @return [String]
3947
4076
  #
3948
4077
  # @!attribute [rw] addresses
@@ -4143,15 +4272,15 @@ module Aws::WAFV2
4143
4272
  # @return [String]
4144
4273
  #
4145
4274
  # @!attribute [rw] lock_token
4146
- # A token used for optimistic locking. WAF returns a token to your get
4147
- # and list requests, to mark the state of the entity at the time of
4148
- # the request. To make changes to the entity associated with the
4149
- # token, you provide the token to operations like update and delete.
4150
- # WAF uses the token to ensure that no changes have been made to the
4151
- # entity since you last retrieved it. If a change has been made, the
4152
- # update fails with a `WAFOptimisticLockException`. If this happens,
4153
- # perform another get, and use the new token returned by that
4154
- # operation.
4275
+ # A token used for optimistic locking. WAF returns a token to your
4276
+ # `get` and `list` requests, to mark the state of the entity at the
4277
+ # time of the request. To make changes to the entity associated with
4278
+ # the token, you provide the token to operations like `update` and
4279
+ # `delete`. WAF uses the token to ensure that no changes have been
4280
+ # made to the entity since you last retrieved it. If a change has been
4281
+ # made, the update fails with a `WAFOptimisticLockException`. If this
4282
+ # happens, perform another `get`, and use the new token returned by
4283
+ # that operation.
4155
4284
  # @return [String]
4156
4285
  #
4157
4286
  # @!attribute [rw] arn
@@ -4179,6 +4308,9 @@ module Aws::WAFV2
4179
4308
  # inspects only the parts of the JSON that result from the matches that
4180
4309
  # you indicate.
4181
4310
  #
4311
+ # Example JSON: `"JsonBody": \{ "MatchPattern": \{ "All": \{\} \},
4312
+ # "MatchScope": "ALL" \}`
4313
+ #
4182
4314
  # @note When making an API call, you may pass JsonBody
4183
4315
  # data as a hash:
4184
4316
  #
@@ -4220,9 +4352,9 @@ module Aws::WAFV2
4220
4352
  # content only up to the first parsing failure that it encounters.
4221
4353
  #
4222
4354
  # WAF does its best to parse the entire JSON body, but might be forced
4223
- # to stop for reasons such as characters that aren't valid, duplicate
4224
- # keys, truncation, and any content whose root node isn't an object
4225
- # or an array.
4355
+ # to stop for reasons such as invalid characters, duplicate keys,
4356
+ # truncation, and any content whose root node isn't an object or an
4357
+ # array.
4226
4358
  #
4227
4359
  # WAF parses the JSON in the following examples as two valid key,
4228
4360
  # value pairs:
@@ -4418,6 +4550,91 @@ module Aws::WAFV2
4418
4550
  include Aws::Structure
4419
4551
  end
4420
4552
 
4553
+ # @note When making an API call, you may pass ListAvailableManagedRuleGroupVersionsRequest
4554
+ # data as a hash:
4555
+ #
4556
+ # {
4557
+ # vendor_name: "VendorName", # required
4558
+ # name: "EntityName", # required
4559
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
4560
+ # next_marker: "NextMarker",
4561
+ # limit: 1,
4562
+ # }
4563
+ #
4564
+ # @!attribute [rw] vendor_name
4565
+ # The name of the managed rule group vendor. You use this, along with
4566
+ # the rule group name, to identify the rule group.
4567
+ # @return [String]
4568
+ #
4569
+ # @!attribute [rw] name
4570
+ # The name of the managed rule group. You use this, along with the
4571
+ # vendor name, to identify the rule group.
4572
+ # @return [String]
4573
+ #
4574
+ # @!attribute [rw] scope
4575
+ # Specifies whether this is for an Amazon CloudFront distribution or
4576
+ # for a regional application. A regional application can be an
4577
+ # Application Load Balancer (ALB), an Amazon API Gateway REST API, or
4578
+ # an AppSync GraphQL API.
4579
+ #
4580
+ # To work with CloudFront, you must also specify the Region US East
4581
+ # (N. Virginia) as follows:
4582
+ #
4583
+ # * CLI - Specify the Region when you use the CloudFront scope:
4584
+ # `--scope=CLOUDFRONT --region=us-east-1`.
4585
+ #
4586
+ # * API and SDKs - For all calls, use the Region endpoint us-east-1.
4587
+ # @return [String]
4588
+ #
4589
+ # @!attribute [rw] next_marker
4590
+ # When you request a list of objects with a `Limit` setting, if the
4591
+ # number of objects that are still available for retrieval exceeds the
4592
+ # limit, WAF returns a `NextMarker` value in the response. To retrieve
4593
+ # the next batch of objects, provide the marker from the prior call in
4594
+ # your next request.
4595
+ # @return [String]
4596
+ #
4597
+ # @!attribute [rw] limit
4598
+ # The maximum number of objects that you want WAF to return for this
4599
+ # request. If more objects are available, in the response, WAF
4600
+ # provides a `NextMarker` value that you can use in a subsequent call
4601
+ # to get the next batch of objects.
4602
+ # @return [Integer]
4603
+ #
4604
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroupVersionsRequest AWS API Documentation
4605
+ #
4606
+ class ListAvailableManagedRuleGroupVersionsRequest < Struct.new(
4607
+ :vendor_name,
4608
+ :name,
4609
+ :scope,
4610
+ :next_marker,
4611
+ :limit)
4612
+ SENSITIVE = []
4613
+ include Aws::Structure
4614
+ end
4615
+
4616
+ # @!attribute [rw] next_marker
4617
+ # When you request a list of objects with a `Limit` setting, if the
4618
+ # number of objects that are still available for retrieval exceeds the
4619
+ # limit, WAF returns a `NextMarker` value in the response. To retrieve
4620
+ # the next batch of objects, provide the marker from the prior call in
4621
+ # your next request.
4622
+ # @return [String]
4623
+ #
4624
+ # @!attribute [rw] versions
4625
+ # The versions that are currently available for the specified managed
4626
+ # rule group.
4627
+ # @return [Array<Types::ManagedRuleGroupVersion>]
4628
+ #
4629
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroupVersionsResponse AWS API Documentation
4630
+ #
4631
+ class ListAvailableManagedRuleGroupVersionsResponse < Struct.new(
4632
+ :next_marker,
4633
+ :versions)
4634
+ SENSITIVE = []
4635
+ include Aws::Structure
4636
+ end
4637
+
4421
4638
  # @note When making an API call, you may pass ListAvailableManagedRuleGroupsRequest
4422
4639
  # data as a hash:
4423
4640
  #
@@ -4627,6 +4844,76 @@ module Aws::WAFV2
4627
4844
  include Aws::Structure
4628
4845
  end
4629
4846
 
4847
+ # @note When making an API call, you may pass ListManagedRuleSetsRequest
4848
+ # data as a hash:
4849
+ #
4850
+ # {
4851
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
4852
+ # next_marker: "NextMarker",
4853
+ # limit: 1,
4854
+ # }
4855
+ #
4856
+ # @!attribute [rw] scope
4857
+ # Specifies whether this is for an Amazon CloudFront distribution or
4858
+ # for a regional application. A regional application can be an
4859
+ # Application Load Balancer (ALB), an Amazon API Gateway REST API, or
4860
+ # an AppSync GraphQL API.
4861
+ #
4862
+ # To work with CloudFront, you must also specify the Region US East
4863
+ # (N. Virginia) as follows:
4864
+ #
4865
+ # * CLI - Specify the Region when you use the CloudFront scope:
4866
+ # `--scope=CLOUDFRONT --region=us-east-1`.
4867
+ #
4868
+ # * API and SDKs - For all calls, use the Region endpoint us-east-1.
4869
+ # @return [String]
4870
+ #
4871
+ # @!attribute [rw] next_marker
4872
+ # When you request a list of objects with a `Limit` setting, if the
4873
+ # number of objects that are still available for retrieval exceeds the
4874
+ # limit, WAF returns a `NextMarker` value in the response. To retrieve
4875
+ # the next batch of objects, provide the marker from the prior call in
4876
+ # your next request.
4877
+ # @return [String]
4878
+ #
4879
+ # @!attribute [rw] limit
4880
+ # The maximum number of objects that you want WAF to return for this
4881
+ # request. If more objects are available, in the response, WAF
4882
+ # provides a `NextMarker` value that you can use in a subsequent call
4883
+ # to get the next batch of objects.
4884
+ # @return [Integer]
4885
+ #
4886
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListManagedRuleSetsRequest AWS API Documentation
4887
+ #
4888
+ class ListManagedRuleSetsRequest < Struct.new(
4889
+ :scope,
4890
+ :next_marker,
4891
+ :limit)
4892
+ SENSITIVE = []
4893
+ include Aws::Structure
4894
+ end
4895
+
4896
+ # @!attribute [rw] next_marker
4897
+ # When you request a list of objects with a `Limit` setting, if the
4898
+ # number of objects that are still available for retrieval exceeds the
4899
+ # limit, WAF returns a `NextMarker` value in the response. To retrieve
4900
+ # the next batch of objects, provide the marker from the prior call in
4901
+ # your next request.
4902
+ # @return [String]
4903
+ #
4904
+ # @!attribute [rw] managed_rule_sets
4905
+ # Your managed rule sets.
4906
+ # @return [Array<Types::ManagedRuleSetSummary>]
4907
+ #
4908
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListManagedRuleSetsResponse AWS API Documentation
4909
+ #
4910
+ class ListManagedRuleSetsResponse < Struct.new(
4911
+ :next_marker,
4912
+ :managed_rule_sets)
4913
+ SENSITIVE = []
4914
+ include Aws::Structure
4915
+ end
4916
+
4630
4917
  # @note When making an API call, you may pass ListRegexPatternSetsRequest
4631
4918
  # data as a hash:
4632
4919
  #
@@ -5008,11 +5295,11 @@ module Aws::WAFV2
5008
5295
  #
5009
5296
  # @!attribute [rw] redacted_fields
5010
5297
  # The parts of the request that you want to keep out of the logs. For
5011
- # example, if you redact the `HEADER` field, the `HEADER` field in the
5012
- # firehose will be `xxx`.
5298
+ # example, if you redact the `SingleHeader` field, the `HEADER` field
5299
+ # in the firehose will be `xxx`.
5013
5300
  #
5014
- # <note markdown="1"> You must use one of the following values: `URI`, `QUERY_STRING`,
5015
- # `HEADER`, or `METHOD`.
5301
+ # <note markdown="1"> You can specify only the following fields for redaction: `UriPath`,
5302
+ # `QueryString`, `SingleHeader`, `Method`, and `JsonBody`.
5016
5303
  #
5017
5304
  # </note>
5018
5305
  # @return [Array<Types::FieldToMatch>]
@@ -5104,6 +5391,7 @@ module Aws::WAFV2
5104
5391
  # {
5105
5392
  # vendor_name: "VendorName", # required
5106
5393
  # name: "EntityName", # required
5394
+ # version: "VersionKeyString",
5107
5395
  # excluded_rules: [
5108
5396
  # {
5109
5397
  # name: "EntityName", # required
@@ -5346,6 +5634,7 @@ module Aws::WAFV2
5346
5634
  # managed_rule_group_statement: {
5347
5635
  # vendor_name: "VendorName", # required
5348
5636
  # name: "EntityName", # required
5637
+ # version: "VersionKeyString",
5349
5638
  # excluded_rules: [
5350
5639
  # {
5351
5640
  # name: "EntityName", # required
@@ -5372,6 +5661,14 @@ module Aws::WAFV2
5372
5661
  # vendor name, to identify the rule group.
5373
5662
  # @return [String]
5374
5663
  #
5664
+ # @!attribute [rw] version
5665
+ # The version of the managed rule group to use. If you specify this,
5666
+ # the version setting is fixed until you change it. If you don't
5667
+ # specify this, WAF uses the vendor's default version, and then keeps
5668
+ # the version at the vendor's default when the vendor updates the
5669
+ # managed rule group settings.
5670
+ # @return [String]
5671
+ #
5375
5672
  # @!attribute [rw] excluded_rules
5376
5673
  # The rules whose actions are set to `COUNT` by the web ACL,
5377
5674
  # regardless of the action that is set on the rule. This effectively
@@ -5392,6 +5689,7 @@ module Aws::WAFV2
5392
5689
  class ManagedRuleGroupStatement < Struct.new(
5393
5690
  :vendor_name,
5394
5691
  :name,
5692
+ :version,
5395
5693
  :excluded_rules,
5396
5694
  :scope_down_statement)
5397
5695
  SENSITIVE = []
@@ -5403,8 +5701,9 @@ module Aws::WAFV2
5403
5701
  # name and vendor name, that you provide when you add a
5404
5702
  # ManagedRuleGroupStatement to a web ACL. Managed rule groups include
5405
5703
  # Amazon Web Services Managed Rules rule groups, which are free of
5406
- # charge to WAF customers, and Marketplace managed rule groups, which
5407
- # you can subscribe to through Marketplace.
5704
+ # charge to WAF customers, and Amazon Web Services Marketplace managed
5705
+ # rule groups, which you can subscribe to through Amazon Web Services
5706
+ # Marketplace.
5408
5707
  #
5409
5708
  # @!attribute [rw] vendor_name
5410
5709
  # The name of the managed rule group vendor. You use this, along with
@@ -5418,7 +5717,8 @@ module Aws::WAFV2
5418
5717
  #
5419
5718
  # @!attribute [rw] description
5420
5719
  # The description of the managed rule group, provided by Amazon Web
5421
- # Services Managed Rules or the Marketplace seller who manages it.
5720
+ # Services Managed Rules or the Amazon Web Services Marketplace seller
5721
+ # who manages it.
5422
5722
  # @return [String]
5423
5723
  #
5424
5724
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ManagedRuleGroupSummary AWS API Documentation
@@ -5431,12 +5731,263 @@ module Aws::WAFV2
5431
5731
  include Aws::Structure
5432
5732
  end
5433
5733
 
5734
+ # Describes a single version of a managed rule group.
5735
+ #
5736
+ # @!attribute [rw] name
5737
+ # The version name.
5738
+ # @return [String]
5739
+ #
5740
+ # @!attribute [rw] last_update_timestamp
5741
+ # The date and time that the managed rule group owner updated the rule
5742
+ # group version information.
5743
+ # @return [Time]
5744
+ #
5745
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ManagedRuleGroupVersion AWS API Documentation
5746
+ #
5747
+ class ManagedRuleGroupVersion < Struct.new(
5748
+ :name,
5749
+ :last_update_timestamp)
5750
+ SENSITIVE = []
5751
+ include Aws::Structure
5752
+ end
5753
+
5754
+ # A set of rules that is managed by Amazon Web Services and Amazon Web
5755
+ # Services Marketplace sellers to provide versioned managed rule groups
5756
+ # for customers of WAF.
5757
+ #
5758
+ # <note markdown="1"> This is intended for use only by vendors of managed rule sets. Vendors
5759
+ # are Amazon Web Services and Amazon Web Services Marketplace sellers.
5760
+ #
5761
+ # Vendors, you can use the managed rule set APIs to provide controlled
5762
+ # rollout of your versioned managed rule group offerings for your
5763
+ # customers. The APIs are `ListManagedRuleSets`, `GetManagedRuleSet`,
5764
+ # `PutManagedRuleSetVersions`, and
5765
+ # `UpdateManagedRuleSetVersionExpiryDate`.
5766
+ #
5767
+ # </note>
5768
+ #
5769
+ # @!attribute [rw] name
5770
+ # The name of the managed rule set. You use this, along with the rule
5771
+ # set ID, to identify the rule set.
5772
+ #
5773
+ # This name is assigned to the corresponding managed rule group, which
5774
+ # your customers can access and use.
5775
+ # @return [String]
5776
+ #
5777
+ # @!attribute [rw] id
5778
+ # A unique identifier for the managed rule set. The ID is returned in
5779
+ # the responses to commands like `list`. You provide it to operations
5780
+ # like `get` and `update`.
5781
+ # @return [String]
5782
+ #
5783
+ # @!attribute [rw] arn
5784
+ # The Amazon Resource Name (ARN) of the entity.
5785
+ # @return [String]
5786
+ #
5787
+ # @!attribute [rw] description
5788
+ # A description of the set that helps with identification.
5789
+ # @return [String]
5790
+ #
5791
+ # @!attribute [rw] published_versions
5792
+ # The versions of this managed rule set that are available for use by
5793
+ # customers.
5794
+ # @return [Hash<String,Types::ManagedRuleSetVersion>]
5795
+ #
5796
+ # @!attribute [rw] recommended_version
5797
+ # The version that you would like your customers to use.
5798
+ # @return [String]
5799
+ #
5800
+ # @!attribute [rw] label_namespace
5801
+ # The label namespace prefix for the managed rule groups that are
5802
+ # offered to customers from this managed rule set. All labels that are
5803
+ # added by rules in the managed rule group have this prefix.
5804
+ #
5805
+ # * The syntax for the label namespace prefix for a managed rule group
5806
+ # is the following:
5807
+ #
5808
+ # `awswaf:managed:<vendor>:<rule group name>`\:
5809
+ #
5810
+ # * When a rule with a label matches a web request, WAF adds the fully
5811
+ # qualified label to the request. A fully qualified label is made up
5812
+ # of the label namespace from the rule group or web ACL where the
5813
+ # rule is defined and the label from the rule, separated by a colon:
5814
+ #
5815
+ # `<label namespace>:<label from rule>`
5816
+ # @return [String]
5817
+ #
5818
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ManagedRuleSet AWS API Documentation
5819
+ #
5820
+ class ManagedRuleSet < Struct.new(
5821
+ :name,
5822
+ :id,
5823
+ :arn,
5824
+ :description,
5825
+ :published_versions,
5826
+ :recommended_version,
5827
+ :label_namespace)
5828
+ SENSITIVE = []
5829
+ include Aws::Structure
5830
+ end
5831
+
5832
+ # High-level information for a managed rule set.
5833
+ #
5834
+ # <note markdown="1"> This is intended for use only by vendors of managed rule sets. Vendors
5835
+ # are Amazon Web Services and Amazon Web Services Marketplace sellers.
5836
+ #
5837
+ # Vendors, you can use the managed rule set APIs to provide controlled
5838
+ # rollout of your versioned managed rule group offerings for your
5839
+ # customers. The APIs are `ListManagedRuleSets`, `GetManagedRuleSet`,
5840
+ # `PutManagedRuleSetVersions`, and
5841
+ # `UpdateManagedRuleSetVersionExpiryDate`.
5842
+ #
5843
+ # </note>
5844
+ #
5845
+ # @!attribute [rw] name
5846
+ # The name of the managed rule set. You use this, along with the rule
5847
+ # set ID, to identify the rule set.
5848
+ #
5849
+ # This name is assigned to the corresponding managed rule group, which
5850
+ # your customers can access and use.
5851
+ # @return [String]
5852
+ #
5853
+ # @!attribute [rw] id
5854
+ # A unique identifier for the managed rule set. The ID is returned in
5855
+ # the responses to commands like `list`. You provide it to operations
5856
+ # like `get` and `update`.
5857
+ # @return [String]
5858
+ #
5859
+ # @!attribute [rw] description
5860
+ # A description of the set that helps with identification.
5861
+ # @return [String]
5862
+ #
5863
+ # @!attribute [rw] lock_token
5864
+ # A token used for optimistic locking. WAF returns a token to your
5865
+ # `get` and `list` requests, to mark the state of the entity at the
5866
+ # time of the request. To make changes to the entity associated with
5867
+ # the token, you provide the token to operations like `update` and
5868
+ # `delete`. WAF uses the token to ensure that no changes have been
5869
+ # made to the entity since you last retrieved it. If a change has been
5870
+ # made, the update fails with a `WAFOptimisticLockException`. If this
5871
+ # happens, perform another `get`, and use the new token returned by
5872
+ # that operation.
5873
+ # @return [String]
5874
+ #
5875
+ # @!attribute [rw] arn
5876
+ # The Amazon Resource Name (ARN) of the entity.
5877
+ # @return [String]
5878
+ #
5879
+ # @!attribute [rw] label_namespace
5880
+ # The label namespace prefix for the managed rule groups that are
5881
+ # offered to customers from this managed rule set. All labels that are
5882
+ # added by rules in the managed rule group have this prefix.
5883
+ #
5884
+ # * The syntax for the label namespace prefix for a managed rule group
5885
+ # is the following:
5886
+ #
5887
+ # `awswaf:managed:<vendor>:<rule group name>`\:
5888
+ #
5889
+ # * When a rule with a label matches a web request, WAF adds the fully
5890
+ # qualified label to the request. A fully qualified label is made up
5891
+ # of the label namespace from the rule group or web ACL where the
5892
+ # rule is defined and the label from the rule, separated by a colon:
5893
+ #
5894
+ # `<label namespace>:<label from rule>`
5895
+ # @return [String]
5896
+ #
5897
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ManagedRuleSetSummary AWS API Documentation
5898
+ #
5899
+ class ManagedRuleSetSummary < Struct.new(
5900
+ :name,
5901
+ :id,
5902
+ :description,
5903
+ :lock_token,
5904
+ :arn,
5905
+ :label_namespace)
5906
+ SENSITIVE = []
5907
+ include Aws::Structure
5908
+ end
5909
+
5910
+ # Information for a single version of a managed rule set.
5911
+ #
5912
+ # <note markdown="1"> This is intended for use only by vendors of managed rule sets. Vendors
5913
+ # are Amazon Web Services and Amazon Web Services Marketplace sellers.
5914
+ #
5915
+ # Vendors, you can use the managed rule set APIs to provide controlled
5916
+ # rollout of your versioned managed rule group offerings for your
5917
+ # customers. The APIs are `ListManagedRuleSets`, `GetManagedRuleSet`,
5918
+ # `PutManagedRuleSetVersions`, and
5919
+ # `UpdateManagedRuleSetVersionExpiryDate`.
5920
+ #
5921
+ # </note>
5922
+ #
5923
+ # @!attribute [rw] associated_rule_group_arn
5924
+ # The Amazon Resource Name (ARN) of the vendor rule group that's used
5925
+ # to define the published version of your managed rule group.
5926
+ # @return [String]
5927
+ #
5928
+ # @!attribute [rw] capacity
5929
+ # The web ACL capacity units (WCUs) required for this rule group.
5930
+ #
5931
+ # WAF uses WCUs to calculate and control the operating resources that
5932
+ # are used to run your rules, rule groups, and web ACLs. WAF
5933
+ # calculates capacity differently for each rule type, to reflect the
5934
+ # relative cost of each rule. Simple rules that cost little to run use
5935
+ # fewer WCUs than more complex rules that use more processing power.
5936
+ # Rule group capacity is fixed at creation, which helps users plan
5937
+ # their web ACL WCU usage when they use a rule group. The WCU limit
5938
+ # for web ACLs is 1,500.
5939
+ # @return [Integer]
5940
+ #
5941
+ # @!attribute [rw] forecasted_lifetime
5942
+ # The amount of time you expect this version of your managed rule
5943
+ # group to last, in days.
5944
+ # @return [Integer]
5945
+ #
5946
+ # @!attribute [rw] publish_timestamp
5947
+ # The time that you first published this version.
5948
+ #
5949
+ # Times are in Coordinated Universal Time (UTC) format. UTC format
5950
+ # includes the special designator, Z. For example,
5951
+ # "2016-09-27T14:50Z".
5952
+ # @return [Time]
5953
+ #
5954
+ # @!attribute [rw] last_update_timestamp
5955
+ # The last time that you updated this version.
5956
+ #
5957
+ # Times are in Coordinated Universal Time (UTC) format. UTC format
5958
+ # includes the special designator, Z. For example,
5959
+ # "2016-09-27T14:50Z".
5960
+ # @return [Time]
5961
+ #
5962
+ # @!attribute [rw] expiry_timestamp
5963
+ # The time that this version is set to expire.
5964
+ #
5965
+ # Times are in Coordinated Universal Time (UTC) format. UTC format
5966
+ # includes the special designator, Z. For example,
5967
+ # "2016-09-27T14:50Z".
5968
+ # @return [Time]
5969
+ #
5970
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ManagedRuleSetVersion AWS API Documentation
5971
+ #
5972
+ class ManagedRuleSetVersion < Struct.new(
5973
+ :associated_rule_group_arn,
5974
+ :capacity,
5975
+ :forecasted_lifetime,
5976
+ :publish_timestamp,
5977
+ :last_update_timestamp,
5978
+ :expiry_timestamp)
5979
+ SENSITIVE = []
5980
+ include Aws::Structure
5981
+ end
5982
+
5434
5983
  # The HTTP method of a web request. The method indicates the type of
5435
5984
  # operation that the request is asking the origin to perform.
5436
5985
  #
5437
5986
  # This is used only to indicate the web request component for WAF to
5438
5987
  # inspect, in the FieldToMatch specification.
5439
5988
  #
5989
+ # JSON specification: `"Method": \{\}`
5990
+ #
5440
5991
  # @api private
5441
5992
  #
5442
5993
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/Method AWS API Documentation
@@ -5450,6 +6001,8 @@ module Aws::WAFV2
5450
6001
  # This is used in the context of other settings, for example to specify
5451
6002
  # values for RuleAction and web ACL DefaultAction.
5452
6003
  #
6004
+ # JSON specification: `"None": \{\}`
6005
+ #
5453
6006
  # @api private
5454
6007
  #
5455
6008
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/NoneAction AWS API Documentation
@@ -5700,6 +6253,7 @@ module Aws::WAFV2
5700
6253
  # managed_rule_group_statement: {
5701
6254
  # vendor_name: "VendorName", # required
5702
6255
  # name: "EntityName", # required
6256
+ # version: "VersionKeyString",
5703
6257
  # excluded_rules: [
5704
6258
  # {
5705
6259
  # name: "EntityName", # required
@@ -5970,6 +6524,7 @@ module Aws::WAFV2
5970
6524
  # managed_rule_group_statement: {
5971
6525
  # vendor_name: "VendorName", # required
5972
6526
  # name: "EntityName", # required
6527
+ # version: "VersionKeyString",
5973
6528
  # excluded_rules: [
5974
6529
  # {
5975
6530
  # name: "EntityName", # required
@@ -6133,6 +6688,107 @@ module Aws::WAFV2
6133
6688
  include Aws::Structure
6134
6689
  end
6135
6690
 
6691
+ # @note When making an API call, you may pass PutManagedRuleSetVersionsRequest
6692
+ # data as a hash:
6693
+ #
6694
+ # {
6695
+ # name: "EntityName", # required
6696
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
6697
+ # id: "EntityId", # required
6698
+ # lock_token: "LockToken", # required
6699
+ # recommended_version: "VersionKeyString",
6700
+ # versions_to_publish: {
6701
+ # "VersionKeyString" => {
6702
+ # associated_rule_group_arn: "ResourceArn",
6703
+ # forecasted_lifetime: 1,
6704
+ # },
6705
+ # },
6706
+ # }
6707
+ #
6708
+ # @!attribute [rw] name
6709
+ # The name of the managed rule set. You use this, along with the rule
6710
+ # set ID, to identify the rule set.
6711
+ #
6712
+ # This name is assigned to the corresponding managed rule group, which
6713
+ # your customers can access and use.
6714
+ # @return [String]
6715
+ #
6716
+ # @!attribute [rw] scope
6717
+ # Specifies whether this is for an Amazon CloudFront distribution or
6718
+ # for a regional application. A regional application can be an
6719
+ # Application Load Balancer (ALB), an Amazon API Gateway REST API, or
6720
+ # an AppSync GraphQL API.
6721
+ #
6722
+ # To work with CloudFront, you must also specify the Region US East
6723
+ # (N. Virginia) as follows:
6724
+ #
6725
+ # * CLI - Specify the Region when you use the CloudFront scope:
6726
+ # `--scope=CLOUDFRONT --region=us-east-1`.
6727
+ #
6728
+ # * API and SDKs - For all calls, use the Region endpoint us-east-1.
6729
+ # @return [String]
6730
+ #
6731
+ # @!attribute [rw] id
6732
+ # A unique identifier for the managed rule set. The ID is returned in
6733
+ # the responses to commands like `list`. You provide it to operations
6734
+ # like `get` and `update`.
6735
+ # @return [String]
6736
+ #
6737
+ # @!attribute [rw] lock_token
6738
+ # A token used for optimistic locking. WAF returns a token to your
6739
+ # `get` and `list` requests, to mark the state of the entity at the
6740
+ # time of the request. To make changes to the entity associated with
6741
+ # the token, you provide the token to operations like `update` and
6742
+ # `delete`. WAF uses the token to ensure that no changes have been
6743
+ # made to the entity since you last retrieved it. If a change has been
6744
+ # made, the update fails with a `WAFOptimisticLockException`. If this
6745
+ # happens, perform another `get`, and use the new token returned by
6746
+ # that operation.
6747
+ # @return [String]
6748
+ #
6749
+ # @!attribute [rw] recommended_version
6750
+ # The version of the named managed rule group that you'd like your
6751
+ # customers to choose, from among your version offerings.
6752
+ # @return [String]
6753
+ #
6754
+ # @!attribute [rw] versions_to_publish
6755
+ # The versions of the named managed rule group that you want to offer
6756
+ # to your customers.
6757
+ # @return [Hash<String,Types::VersionToPublish>]
6758
+ #
6759
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutManagedRuleSetVersionsRequest AWS API Documentation
6760
+ #
6761
+ class PutManagedRuleSetVersionsRequest < Struct.new(
6762
+ :name,
6763
+ :scope,
6764
+ :id,
6765
+ :lock_token,
6766
+ :recommended_version,
6767
+ :versions_to_publish)
6768
+ SENSITIVE = []
6769
+ include Aws::Structure
6770
+ end
6771
+
6772
+ # @!attribute [rw] next_lock_token
6773
+ # A token used for optimistic locking. WAF returns a token to your
6774
+ # `get` and `list` requests, to mark the state of the entity at the
6775
+ # time of the request. To make changes to the entity associated with
6776
+ # the token, you provide the token to operations like `update` and
6777
+ # `delete`. WAF uses the token to ensure that no changes have been
6778
+ # made to the entity since you last retrieved it. If a change has been
6779
+ # made, the update fails with a `WAFOptimisticLockException`. If this
6780
+ # happens, perform another `get`, and use the new token returned by
6781
+ # that operation.
6782
+ # @return [String]
6783
+ #
6784
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutManagedRuleSetVersionsResponse AWS API Documentation
6785
+ #
6786
+ class PutManagedRuleSetVersionsResponse < Struct.new(
6787
+ :next_lock_token)
6788
+ SENSITIVE = []
6789
+ include Aws::Structure
6790
+ end
6791
+
6136
6792
  # @note When making an API call, you may pass PutPermissionPolicyRequest
6137
6793
  # data as a hash:
6138
6794
  #
@@ -6191,6 +6847,8 @@ module Aws::WAFV2
6191
6847
  # This is used only to indicate the web request component for WAF to
6192
6848
  # inspect, in the FieldToMatch specification.
6193
6849
  #
6850
+ # JSON specification: `"QueryString": \{\}`
6851
+ #
6194
6852
  # @api private
6195
6853
  #
6196
6854
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/QueryString AWS API Documentation
@@ -6203,6 +6861,15 @@ module Aws::WAFV2
6203
6861
  # You can use this to put a temporary block on requests from an IP
6204
6862
  # address that is sending excessive requests.
6205
6863
  #
6864
+ # WAF tracks and manages web requests separately for each instance of a
6865
+ # rate-based rule that you use. For example, if you provide the same
6866
+ # rate-based rule settings in two web ACLs, each of the two rule
6867
+ # statements represents a separate instance of the rate-based rule and
6868
+ # gets its own tracking and management by WAF. If you define a
6869
+ # rate-based rule inside a rule group, and then use that rule group in
6870
+ # multiple places, each use creates a separate instance of the
6871
+ # rate-based rule that gets its own tracking and management by WAF.
6872
+ #
6206
6873
  # When the rule action triggers, WAF blocks additional requests from the
6207
6874
  # IP address until the request rate falls below the limit.
6208
6875
  #
@@ -6226,9 +6893,9 @@ module Aws::WAFV2
6226
6893
  # not meet both conditions are not counted towards the rate limit and
6227
6894
  # are not affected by this rule.
6228
6895
  #
6229
- # You cannot nest a `RateBasedStatement`, for example for use inside a
6230
- # `NotStatement` or `OrStatement`. It can only be referenced as a
6231
- # top-level statement within a rule.
6896
+ # You cannot nest a `RateBasedStatement` inside another statement, for
6897
+ # example inside a `NotStatement` or `OrStatement`. You can define a
6898
+ # `RateBasedStatement` inside a web ACL and inside a rule group.
6232
6899
  #
6233
6900
  # @note When making an API call, you may pass RateBasedStatement
6234
6901
  # data as a hash:
@@ -6473,6 +7140,7 @@ module Aws::WAFV2
6473
7140
  # managed_rule_group_statement: {
6474
7141
  # vendor_name: "VendorName", # required
6475
7142
  # name: "EntityName", # required
7143
+ # version: "VersionKeyString",
6476
7144
  # excluded_rules: [
6477
7145
  # {
6478
7146
  # name: "EntityName", # required
@@ -6545,10 +7213,11 @@ module Aws::WAFV2
6545
7213
  include Aws::Structure
6546
7214
  end
6547
7215
 
6548
- # The set of IP addresses that are currently blocked for a rate-based
6549
- # statement.
7216
+ # The set of IP addresses that are currently blocked for a
7217
+ # RateBasedStatement.
6550
7218
  #
6551
7219
  # @!attribute [rw] ip_address_version
7220
+ # The version of the IP addresses, either `IPV4` or `IPV6`.
6552
7221
  # @return [String]
6553
7222
  #
6554
7223
  # @!attribute [rw] addresses
@@ -6729,15 +7398,15 @@ module Aws::WAFV2
6729
7398
  # @return [String]
6730
7399
  #
6731
7400
  # @!attribute [rw] lock_token
6732
- # A token used for optimistic locking. WAF returns a token to your get
6733
- # and list requests, to mark the state of the entity at the time of
6734
- # the request. To make changes to the entity associated with the
6735
- # token, you provide the token to operations like update and delete.
6736
- # WAF uses the token to ensure that no changes have been made to the
6737
- # entity since you last retrieved it. If a change has been made, the
6738
- # update fails with a `WAFOptimisticLockException`. If this happens,
6739
- # perform another get, and use the new token returned by that
6740
- # operation.
7401
+ # A token used for optimistic locking. WAF returns a token to your
7402
+ # `get` and `list` requests, to mark the state of the entity at the
7403
+ # time of the request. To make changes to the entity associated with
7404
+ # the token, you provide the token to operations like `update` and
7405
+ # `delete`. WAF uses the token to ensure that no changes have been
7406
+ # made to the entity since you last retrieved it. If a change has been
7407
+ # made, the update fails with a `WAFOptimisticLockException`. If this
7408
+ # happens, perform another `get`, and use the new token returned by
7409
+ # that operation.
6741
7410
  # @return [String]
6742
7411
  #
6743
7412
  # @!attribute [rw] arn
@@ -7004,6 +7673,7 @@ module Aws::WAFV2
7004
7673
  # managed_rule_group_statement: {
7005
7674
  # vendor_name: "VendorName", # required
7006
7675
  # name: "EntityName", # required
7676
+ # version: "VersionKeyString",
7007
7677
  # excluded_rules: [
7008
7678
  # {
7009
7679
  # name: "EntityName", # required
@@ -7372,8 +8042,8 @@ module Aws::WAFV2
7372
8042
  # provide the ARN of the rule group in this statement.
7373
8043
  #
7374
8044
  # You cannot nest a `RuleGroupReferenceStatement`, for example for use
7375
- # inside a `NotStatement` or `OrStatement`. It can only be referenced as
7376
- # a top-level statement within a rule.
8045
+ # inside a `NotStatement` or `OrStatement`. You can only use a rule
8046
+ # group reference statement at the top level inside a web ACL.
7377
8047
  #
7378
8048
  # @note When making an API call, you may pass RuleGroupReferenceStatement
7379
8049
  # data as a hash:
@@ -7427,15 +8097,15 @@ module Aws::WAFV2
7427
8097
  # @return [String]
7428
8098
  #
7429
8099
  # @!attribute [rw] lock_token
7430
- # A token used for optimistic locking. WAF returns a token to your get
7431
- # and list requests, to mark the state of the entity at the time of
7432
- # the request. To make changes to the entity associated with the
7433
- # token, you provide the token to operations like update and delete.
7434
- # WAF uses the token to ensure that no changes have been made to the
7435
- # entity since you last retrieved it. If a change has been made, the
7436
- # update fails with a `WAFOptimisticLockException`. If this happens,
7437
- # perform another get, and use the new token returned by that
7438
- # operation.
8100
+ # A token used for optimistic locking. WAF returns a token to your
8101
+ # `get` and `list` requests, to mark the state of the entity at the
8102
+ # time of the request. To make changes to the entity associated with
8103
+ # the token, you provide the token to operations like `update` and
8104
+ # `delete`. WAF uses the token to ensure that no changes have been
8105
+ # made to the entity since you last retrieved it. If a change has been
8106
+ # made, the update fails with a `WAFOptimisticLockException`. If this
8107
+ # happens, perform another `get`, and use the new token returned by
8108
+ # that operation.
7439
8109
  # @return [String]
7440
8110
  #
7441
8111
  # @!attribute [rw] arn
@@ -7555,6 +8225,8 @@ module Aws::WAFV2
7555
8225
  # This is used only to indicate the web request component for WAF to
7556
8226
  # inspect, in the FieldToMatch specification.
7557
8227
  #
8228
+ # Example JSON: `"SingleHeader": \{ "Name": "haystack" \}`
8229
+ #
7558
8230
  # @note When making an API call, you may pass SingleHeader
7559
8231
  # data as a hash:
7560
8232
  #
@@ -7578,6 +8250,8 @@ module Aws::WAFV2
7578
8250
  # *UserName* or *SalesRegion*. The name can be up to 30 characters long
7579
8251
  # and isn't case sensitive.
7580
8252
  #
8253
+ # Example JSON: `"SingleQueryArgument": \{ "Name": "myArgument" \}`
8254
+ #
7581
8255
  # @note When making an API call, you may pass SingleQueryArgument
7582
8256
  # data as a hash:
7583
8257
  #
@@ -8199,6 +8873,7 @@ module Aws::WAFV2
8199
8873
  # managed_rule_group_statement: {
8200
8874
  # vendor_name: "VendorName", # required
8201
8875
  # name: "EntityName", # required
8876
+ # version: "VersionKeyString",
8202
8877
  # excluded_rules: [
8203
8878
  # {
8204
8879
  # name: "EntityName", # required
@@ -8451,6 +9126,7 @@ module Aws::WAFV2
8451
9126
  # managed_rule_group_statement: {
8452
9127
  # vendor_name: "VendorName", # required
8453
9128
  # name: "EntityName", # required
9129
+ # version: "VersionKeyString",
8454
9130
  # excluded_rules: [
8455
9131
  # {
8456
9132
  # name: "EntityName", # required
@@ -8700,6 +9376,7 @@ module Aws::WAFV2
8700
9376
  # managed_rule_group_statement: {
8701
9377
  # vendor_name: "VendorName", # required
8702
9378
  # name: "EntityName", # required
9379
+ # version: "VersionKeyString",
8703
9380
  # excluded_rules: [
8704
9381
  # {
8705
9382
  # name: "EntityName", # required
@@ -8952,6 +9629,7 @@ module Aws::WAFV2
8952
9629
  # managed_rule_group_statement: {
8953
9630
  # vendor_name: "VendorName", # required
8954
9631
  # name: "EntityName", # required
9632
+ # version: "VersionKeyString",
8955
9633
  # excluded_rules: [
8956
9634
  # {
8957
9635
  # name: "EntityName", # required
@@ -8970,6 +9648,7 @@ module Aws::WAFV2
8970
9648
  # managed_rule_group_statement: {
8971
9649
  # vendor_name: "VendorName", # required
8972
9650
  # name: "EntityName", # required
9651
+ # version: "VersionKeyString",
8973
9652
  # excluded_rules: [
8974
9653
  # {
8975
9654
  # name: "EntityName", # required
@@ -9284,8 +9963,8 @@ module Aws::WAFV2
9284
9963
  # provide the ARN of the rule group in this statement.
9285
9964
  #
9286
9965
  # You cannot nest a `RuleGroupReferenceStatement`, for example for use
9287
- # inside a `NotStatement` or `OrStatement`. It can only be referenced
9288
- # as a top-level statement within a rule.
9966
+ # inside a `NotStatement` or `OrStatement`. You can only use a rule
9967
+ # group reference statement at the top level inside a web ACL.
9289
9968
  # @return [Types::RuleGroupReferenceStatement]
9290
9969
  #
9291
9970
  # @!attribute [rw] ip_set_reference_statement
@@ -9323,6 +10002,15 @@ module Aws::WAFV2
9323
10002
  # time span. You can use this to put a temporary block on requests
9324
10003
  # from an IP address that is sending excessive requests.
9325
10004
  #
10005
+ # WAF tracks and manages web requests separately for each instance of
10006
+ # a rate-based rule that you use. For example, if you provide the same
10007
+ # rate-based rule settings in two web ACLs, each of the two rule
10008
+ # statements represents a separate instance of the rate-based rule and
10009
+ # gets its own tracking and management by WAF. If you define a
10010
+ # rate-based rule inside a rule group, and then use that rule group in
10011
+ # multiple places, each use creates a separate instance of the
10012
+ # rate-based rule that gets its own tracking and management by WAF.
10013
+ #
9326
10014
  # When the rule action triggers, WAF blocks additional requests from
9327
10015
  # the IP address until the request rate falls below the limit.
9328
10016
  #
@@ -9346,9 +10034,9 @@ module Aws::WAFV2
9346
10034
  # do not meet both conditions are not counted towards the rate limit
9347
10035
  # and are not affected by this rule.
9348
10036
  #
9349
- # You cannot nest a `RateBasedStatement`, for example for use inside a
9350
- # `NotStatement` or `OrStatement`. It can only be referenced as a
9351
- # top-level statement within a rule.
10037
+ # You cannot nest a `RateBasedStatement` inside another statement, for
10038
+ # example inside a `NotStatement` or `OrStatement`. You can define a
10039
+ # `RateBasedStatement` inside a web ACL and inside a rule group.
9352
10040
  # @return [Types::RateBasedStatement]
9353
10041
  #
9354
10042
  # @!attribute [rw] and_statement
@@ -9649,10 +10337,8 @@ module Aws::WAFV2
9649
10337
  # **REPLACE\_NULLS** - Replace NULL bytes in the input with space
9650
10338
  # characters (ASCII `0x20`).
9651
10339
  #
9652
- # **SQL\_HEX\_DECODE** - Decode the following ANSI C escape sequences:
9653
- # `\a`, `\b`, `\f`, `\n`, `\r`, `\t`, `\v`, `\`, `\?`, `'`, `"`,
9654
- # `\xHH` (hexadecimal), `\0OOO` (octal). Encodings that aren't valid
9655
- # remain in the output.
10340
+ # **SQL\_HEX\_DECODE** - Decode SQL hex data. Example (`0x414243`)
10341
+ # will be decoded to (`ABC`).
9656
10342
  #
9657
10343
  # **URL\_DECODE** - Decode a URL-encoded value.
9658
10344
  #
@@ -9836,15 +10522,15 @@ module Aws::WAFV2
9836
10522
  # @return [Array<String>]
9837
10523
  #
9838
10524
  # @!attribute [rw] lock_token
9839
- # A token used for optimistic locking. WAF returns a token to your get
9840
- # and list requests, to mark the state of the entity at the time of
9841
- # the request. To make changes to the entity associated with the
9842
- # token, you provide the token to operations like update and delete.
9843
- # WAF uses the token to ensure that no changes have been made to the
9844
- # entity since you last retrieved it. If a change has been made, the
9845
- # update fails with a `WAFOptimisticLockException`. If this happens,
9846
- # perform another get, and use the new token returned by that
9847
- # operation.
10525
+ # A token used for optimistic locking. WAF returns a token to your
10526
+ # `get` and `list` requests, to mark the state of the entity at the
10527
+ # time of the request. To make changes to the entity associated with
10528
+ # the token, you provide the token to operations like `update` and
10529
+ # `delete`. WAF uses the token to ensure that no changes have been
10530
+ # made to the entity since you last retrieved it. If a change has been
10531
+ # made, the update fails with a `WAFOptimisticLockException`. If this
10532
+ # happens, perform another `get`, and use the new token returned by
10533
+ # that operation.
9848
10534
  # @return [String]
9849
10535
  #
9850
10536
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateIPSetRequest AWS API Documentation
@@ -9862,7 +10548,7 @@ module Aws::WAFV2
9862
10548
 
9863
10549
  # @!attribute [rw] next_lock_token
9864
10550
  # A token used for optimistic locking. WAF returns this token to your
9865
- # update requests. You use `NextLockToken` in the same manner as you
10551
+ # `update` requests. You use `NextLockToken` in the same manner as you
9866
10552
  # use `LockToken`.
9867
10553
  # @return [String]
9868
10554
  #
@@ -9874,6 +10560,119 @@ module Aws::WAFV2
9874
10560
  include Aws::Structure
9875
10561
  end
9876
10562
 
10563
+ # @note When making an API call, you may pass UpdateManagedRuleSetVersionExpiryDateRequest
10564
+ # data as a hash:
10565
+ #
10566
+ # {
10567
+ # name: "EntityName", # required
10568
+ # scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
10569
+ # id: "EntityId", # required
10570
+ # lock_token: "LockToken", # required
10571
+ # version_to_expire: "VersionKeyString", # required
10572
+ # expiry_timestamp: Time.now, # required
10573
+ # }
10574
+ #
10575
+ # @!attribute [rw] name
10576
+ # The name of the managed rule set. You use this, along with the rule
10577
+ # set ID, to identify the rule set.
10578
+ #
10579
+ # This name is assigned to the corresponding managed rule group, which
10580
+ # your customers can access and use.
10581
+ # @return [String]
10582
+ #
10583
+ # @!attribute [rw] scope
10584
+ # Specifies whether this is for an Amazon CloudFront distribution or
10585
+ # for a regional application. A regional application can be an
10586
+ # Application Load Balancer (ALB), an Amazon API Gateway REST API, or
10587
+ # an AppSync GraphQL API.
10588
+ #
10589
+ # To work with CloudFront, you must also specify the Region US East
10590
+ # (N. Virginia) as follows:
10591
+ #
10592
+ # * CLI - Specify the Region when you use the CloudFront scope:
10593
+ # `--scope=CLOUDFRONT --region=us-east-1`.
10594
+ #
10595
+ # * API and SDKs - For all calls, use the Region endpoint us-east-1.
10596
+ # @return [String]
10597
+ #
10598
+ # @!attribute [rw] id
10599
+ # A unique identifier for the managed rule set. The ID is returned in
10600
+ # the responses to commands like `list`. You provide it to operations
10601
+ # like `get` and `update`.
10602
+ # @return [String]
10603
+ #
10604
+ # @!attribute [rw] lock_token
10605
+ # A token used for optimistic locking. WAF returns a token to your
10606
+ # `get` and `list` requests, to mark the state of the entity at the
10607
+ # time of the request. To make changes to the entity associated with
10608
+ # the token, you provide the token to operations like `update` and
10609
+ # `delete`. WAF uses the token to ensure that no changes have been
10610
+ # made to the entity since you last retrieved it. If a change has been
10611
+ # made, the update fails with a `WAFOptimisticLockException`. If this
10612
+ # happens, perform another `get`, and use the new token returned by
10613
+ # that operation.
10614
+ # @return [String]
10615
+ #
10616
+ # @!attribute [rw] version_to_expire
10617
+ # The version that you want to remove from your list of offerings for
10618
+ # the named managed rule group.
10619
+ # @return [String]
10620
+ #
10621
+ # @!attribute [rw] expiry_timestamp
10622
+ # The time that you want the version to expire.
10623
+ #
10624
+ # Times are in Coordinated Universal Time (UTC) format. UTC format
10625
+ # includes the special designator, Z. For example,
10626
+ # "2016-09-27T14:50Z".
10627
+ # @return [Time]
10628
+ #
10629
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateManagedRuleSetVersionExpiryDateRequest AWS API Documentation
10630
+ #
10631
+ class UpdateManagedRuleSetVersionExpiryDateRequest < Struct.new(
10632
+ :name,
10633
+ :scope,
10634
+ :id,
10635
+ :lock_token,
10636
+ :version_to_expire,
10637
+ :expiry_timestamp)
10638
+ SENSITIVE = []
10639
+ include Aws::Structure
10640
+ end
10641
+
10642
+ # @!attribute [rw] expiring_version
10643
+ # The version that is set to expire.
10644
+ # @return [String]
10645
+ #
10646
+ # @!attribute [rw] expiry_timestamp
10647
+ # The time that the version will expire.
10648
+ #
10649
+ # Times are in Coordinated Universal Time (UTC) format. UTC format
10650
+ # includes the special designator, Z. For example,
10651
+ # "2016-09-27T14:50Z".
10652
+ # @return [Time]
10653
+ #
10654
+ # @!attribute [rw] next_lock_token
10655
+ # A token used for optimistic locking. WAF returns a token to your
10656
+ # `get` and `list` requests, to mark the state of the entity at the
10657
+ # time of the request. To make changes to the entity associated with
10658
+ # the token, you provide the token to operations like `update` and
10659
+ # `delete`. WAF uses the token to ensure that no changes have been
10660
+ # made to the entity since you last retrieved it. If a change has been
10661
+ # made, the update fails with a `WAFOptimisticLockException`. If this
10662
+ # happens, perform another `get`, and use the new token returned by
10663
+ # that operation.
10664
+ # @return [String]
10665
+ #
10666
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateManagedRuleSetVersionExpiryDateResponse AWS API Documentation
10667
+ #
10668
+ class UpdateManagedRuleSetVersionExpiryDateResponse < Struct.new(
10669
+ :expiring_version,
10670
+ :expiry_timestamp,
10671
+ :next_lock_token)
10672
+ SENSITIVE = []
10673
+ include Aws::Structure
10674
+ end
10675
+
9877
10676
  # @note When making an API call, you may pass UpdateRegexPatternSetRequest
9878
10677
  # data as a hash:
9879
10678
  #
@@ -9924,15 +10723,15 @@ module Aws::WAFV2
9924
10723
  # @return [Array<Types::Regex>]
9925
10724
  #
9926
10725
  # @!attribute [rw] lock_token
9927
- # A token used for optimistic locking. WAF returns a token to your get
9928
- # and list requests, to mark the state of the entity at the time of
9929
- # the request. To make changes to the entity associated with the
9930
- # token, you provide the token to operations like update and delete.
9931
- # WAF uses the token to ensure that no changes have been made to the
9932
- # entity since you last retrieved it. If a change has been made, the
9933
- # update fails with a `WAFOptimisticLockException`. If this happens,
9934
- # perform another get, and use the new token returned by that
9935
- # operation.
10726
+ # A token used for optimistic locking. WAF returns a token to your
10727
+ # `get` and `list` requests, to mark the state of the entity at the
10728
+ # time of the request. To make changes to the entity associated with
10729
+ # the token, you provide the token to operations like `update` and
10730
+ # `delete`. WAF uses the token to ensure that no changes have been
10731
+ # made to the entity since you last retrieved it. If a change has been
10732
+ # made, the update fails with a `WAFOptimisticLockException`. If this
10733
+ # happens, perform another `get`, and use the new token returned by
10734
+ # that operation.
9936
10735
  # @return [String]
9937
10736
  #
9938
10737
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRegexPatternSetRequest AWS API Documentation
@@ -9950,7 +10749,7 @@ module Aws::WAFV2
9950
10749
 
9951
10750
  # @!attribute [rw] next_lock_token
9952
10751
  # A token used for optimistic locking. WAF returns this token to your
9953
- # update requests. You use `NextLockToken` in the same manner as you
10752
+ # `update` requests. You use `NextLockToken` in the same manner as you
9954
10753
  # use `LockToken`.
9955
10754
  # @return [String]
9956
10755
  #
@@ -10211,6 +11010,7 @@ module Aws::WAFV2
10211
11010
  # managed_rule_group_statement: {
10212
11011
  # vendor_name: "VendorName", # required
10213
11012
  # name: "EntityName", # required
11013
+ # version: "VersionKeyString",
10214
11014
  # excluded_rules: [
10215
11015
  # {
10216
11016
  # name: "EntityName", # required
@@ -10342,15 +11142,15 @@ module Aws::WAFV2
10342
11142
  # @return [Types::VisibilityConfig]
10343
11143
  #
10344
11144
  # @!attribute [rw] lock_token
10345
- # A token used for optimistic locking. WAF returns a token to your get
10346
- # and list requests, to mark the state of the entity at the time of
10347
- # the request. To make changes to the entity associated with the
10348
- # token, you provide the token to operations like update and delete.
10349
- # WAF uses the token to ensure that no changes have been made to the
10350
- # entity since you last retrieved it. If a change has been made, the
10351
- # update fails with a `WAFOptimisticLockException`. If this happens,
10352
- # perform another get, and use the new token returned by that
10353
- # operation.
11145
+ # A token used for optimistic locking. WAF returns a token to your
11146
+ # `get` and `list` requests, to mark the state of the entity at the
11147
+ # time of the request. To make changes to the entity associated with
11148
+ # the token, you provide the token to operations like `update` and
11149
+ # `delete`. WAF uses the token to ensure that no changes have been
11150
+ # made to the entity since you last retrieved it. If a change has been
11151
+ # made, the update fails with a `WAFOptimisticLockException`. If this
11152
+ # happens, perform another `get`, and use the new token returned by
11153
+ # that operation.
10354
11154
  # @return [String]
10355
11155
  #
10356
11156
  # @!attribute [rw] custom_response_bodies
@@ -10391,7 +11191,7 @@ module Aws::WAFV2
10391
11191
 
10392
11192
  # @!attribute [rw] next_lock_token
10393
11193
  # A token used for optimistic locking. WAF returns this token to your
10394
- # update requests. You use `NextLockToken` in the same manner as you
11194
+ # `update` requests. You use `NextLockToken` in the same manner as you
10395
11195
  # use `LockToken`.
10396
11196
  # @return [String]
10397
11197
  #
@@ -10676,6 +11476,7 @@ module Aws::WAFV2
10676
11476
  # managed_rule_group_statement: {
10677
11477
  # vendor_name: "VendorName", # required
10678
11478
  # name: "EntityName", # required
11479
+ # version: "VersionKeyString",
10679
11480
  # excluded_rules: [
10680
11481
  # {
10681
11482
  # name: "EntityName", # required
@@ -10812,15 +11613,15 @@ module Aws::WAFV2
10812
11613
  # @return [Types::VisibilityConfig]
10813
11614
  #
10814
11615
  # @!attribute [rw] lock_token
10815
- # A token used for optimistic locking. WAF returns a token to your get
10816
- # and list requests, to mark the state of the entity at the time of
10817
- # the request. To make changes to the entity associated with the
10818
- # token, you provide the token to operations like update and delete.
10819
- # WAF uses the token to ensure that no changes have been made to the
10820
- # entity since you last retrieved it. If a change has been made, the
10821
- # update fails with a `WAFOptimisticLockException`. If this happens,
10822
- # perform another get, and use the new token returned by that
10823
- # operation.
11616
+ # A token used for optimistic locking. WAF returns a token to your
11617
+ # `get` and `list` requests, to mark the state of the entity at the
11618
+ # time of the request. To make changes to the entity associated with
11619
+ # the token, you provide the token to operations like `update` and
11620
+ # `delete`. WAF uses the token to ensure that no changes have been
11621
+ # made to the entity since you last retrieved it. If a change has been
11622
+ # made, the update fails with a `WAFOptimisticLockException`. If this
11623
+ # happens, perform another `get`, and use the new token returned by
11624
+ # that operation.
10824
11625
  # @return [String]
10825
11626
  #
10826
11627
  # @!attribute [rw] custom_response_bodies
@@ -10862,7 +11663,7 @@ module Aws::WAFV2
10862
11663
 
10863
11664
  # @!attribute [rw] next_lock_token
10864
11665
  # A token used for optimistic locking. WAF returns this token to your
10865
- # update requests. You use `NextLockToken` in the same manner as you
11666
+ # `update` requests. You use `NextLockToken` in the same manner as you
10866
11667
  # use `LockToken`.
10867
11668
  # @return [String]
10868
11669
  #
@@ -10881,12 +11682,55 @@ module Aws::WAFV2
10881
11682
  # This is used only to indicate the web request component for WAF to
10882
11683
  # inspect, in the FieldToMatch specification.
10883
11684
  #
11685
+ # JSON specification: `"UriPath": \{\}`
11686
+ #
10884
11687
  # @api private
10885
11688
  #
10886
11689
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UriPath AWS API Documentation
10887
11690
  #
10888
11691
  class UriPath < Aws::EmptyStructure; end
10889
11692
 
11693
+ # A version of the named managed rule group, that the rule group's
11694
+ # vendor publishes for use by customers.
11695
+ #
11696
+ # <note markdown="1"> This is intended for use only by vendors of managed rule sets. Vendors
11697
+ # are Amazon Web Services and Amazon Web Services Marketplace sellers.
11698
+ #
11699
+ # Vendors, you can use the managed rule set APIs to provide controlled
11700
+ # rollout of your versioned managed rule group offerings for your
11701
+ # customers. The APIs are `ListManagedRuleSets`, `GetManagedRuleSet`,
11702
+ # `PutManagedRuleSetVersions`, and
11703
+ # `UpdateManagedRuleSetVersionExpiryDate`.
11704
+ #
11705
+ # </note>
11706
+ #
11707
+ # @note When making an API call, you may pass VersionToPublish
11708
+ # data as a hash:
11709
+ #
11710
+ # {
11711
+ # associated_rule_group_arn: "ResourceArn",
11712
+ # forecasted_lifetime: 1,
11713
+ # }
11714
+ #
11715
+ # @!attribute [rw] associated_rule_group_arn
11716
+ # The Amazon Resource Name (ARN) of the vendor's rule group that's
11717
+ # used in the published managed rule group version.
11718
+ # @return [String]
11719
+ #
11720
+ # @!attribute [rw] forecasted_lifetime
11721
+ # The amount of time the vendor expects this version of the managed
11722
+ # rule group to last, in days.
11723
+ # @return [Integer]
11724
+ #
11725
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/VersionToPublish AWS API Documentation
11726
+ #
11727
+ class VersionToPublish < Struct.new(
11728
+ :associated_rule_group_arn,
11729
+ :forecasted_lifetime)
11730
+ SENSITIVE = []
11731
+ include Aws::Structure
11732
+ end
11733
+
10890
11734
  # Defines and enables Amazon CloudWatch metrics and web request sample
10891
11735
  # collection.
10892
11736
  #
@@ -10961,6 +11805,22 @@ module Aws::WAFV2
10961
11805
  include Aws::Structure
10962
11806
  end
10963
11807
 
11808
+ # The operation failed because the specified version for the managed
11809
+ # rule group has expired. You can retrieve the available versions for
11810
+ # the managed rule group by calling
11811
+ # ListAvailableManagedRuleGroupVersions.
11812
+ #
11813
+ # @!attribute [rw] message
11814
+ # @return [String]
11815
+ #
11816
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/WAFExpiredManagedRuleGroupVersionException AWS API Documentation
11817
+ #
11818
+ class WAFExpiredManagedRuleGroupVersionException < Struct.new(
11819
+ :message)
11820
+ SENSITIVE = []
11821
+ include Aws::Structure
11822
+ end
11823
+
10964
11824
  # Your request is valid, but WAF couldn’t perform the operation because
10965
11825
  # of a system problem. Retry your request.
10966
11826
  #
@@ -11006,12 +11866,15 @@ module Aws::WAFV2
11006
11866
  # @return [String]
11007
11867
  #
11008
11868
  # @!attribute [rw] field
11869
+ # The settings where the invalid parameter was found.
11009
11870
  # @return [String]
11010
11871
  #
11011
11872
  # @!attribute [rw] parameter
11873
+ # The invalid parameter that resulted in the exception.
11012
11874
  # @return [String]
11013
11875
  #
11014
11876
  # @!attribute [rw] reason
11877
+ # Additional information about the exception.
11015
11878
  # @return [String]
11016
11879
  #
11017
11880
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/WAFInvalidParameterException AWS API Documentation
@@ -11077,8 +11940,8 @@ module Aws::WAFV2
11077
11940
 
11078
11941
  # WAF couldn’t perform the operation because you exceeded your resource
11079
11942
  # limit. For example, the maximum number of `WebACL` objects that you
11080
- # can create for an account. For more information, see [Limits][1] in
11081
- # the *WAF Developer Guide*.
11943
+ # can create for an Amazon Web Services account. For more information,
11944
+ # see [WAF quotas][1] in the *WAF Developer Guide*.
11082
11945
  #
11083
11946
  #
11084
11947
  #
@@ -11374,15 +12237,15 @@ module Aws::WAFV2
11374
12237
  # @return [String]
11375
12238
  #
11376
12239
  # @!attribute [rw] lock_token
11377
- # A token used for optimistic locking. WAF returns a token to your get
11378
- # and list requests, to mark the state of the entity at the time of
11379
- # the request. To make changes to the entity associated with the
11380
- # token, you provide the token to operations like update and delete.
11381
- # WAF uses the token to ensure that no changes have been made to the
11382
- # entity since you last retrieved it. If a change has been made, the
11383
- # update fails with a `WAFOptimisticLockException`. If this happens,
11384
- # perform another get, and use the new token returned by that
11385
- # operation.
12240
+ # A token used for optimistic locking. WAF returns a token to your
12241
+ # `get` and `list` requests, to mark the state of the entity at the
12242
+ # time of the request. To make changes to the entity associated with
12243
+ # the token, you provide the token to operations like `update` and
12244
+ # `delete`. WAF uses the token to ensure that no changes have been
12245
+ # made to the entity since you last retrieved it. If a change has been
12246
+ # made, the update fails with a `WAFOptimisticLockException`. If this
12247
+ # happens, perform another `get`, and use the new token returned by
12248
+ # that operation.
11386
12249
  # @return [String]
11387
12250
  #
11388
12251
  # @!attribute [rw] arn