aws-sdk-waf 1.0.0.rc7 → 1.0.0.rc8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/aws-sdk-waf.rb +1 -1
- data/lib/aws-sdk-waf/client.rb +415 -2
- data/lib/aws-sdk-waf/client_api.rb +155 -0
- data/lib/aws-sdk-waf/types.rb +394 -10
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 663905a7b3208929449c414eb0e1e983a772e1e4
         | 
| 4 | 
            +
              data.tar.gz: 8edaf15d950ba9089938d286c197277dbf614a8f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: cfdd0d1f5e06053b2a9711b223194fa266fb8cd735ce32b2a5652fdf6ddb53321c6055ceee08991afc0f428fa9cc9c39a1c3c62992f209ada54d9ff86ae2378b
         | 
| 7 | 
            +
              data.tar.gz: dab98399f11222f93162bdd7ccda2faa9ca6c34e337bcd4c8cc10cba2767f98276458002e05ccaaeb5f052b03e0a153e995f1e64a84f7dc283b0721568867ed7
         | 
    
        data/lib/aws-sdk-waf.rb
    CHANGED
    
    
    
        data/lib/aws-sdk-waf/client.rb
    CHANGED
    
    | @@ -288,6 +288,143 @@ module Aws::WAF | |
| 288 288 | 
             
                  req.send_request(options)
         | 
| 289 289 | 
             
                end
         | 
| 290 290 |  | 
| 291 | 
            +
                # Creates a RateBasedRule. The `RateBasedRule` contains a `RateLimit`,
         | 
| 292 | 
            +
                # which specifies the maximum number of requests that AWS WAF allows
         | 
| 293 | 
            +
                # from a specified IP address in a five-minute period. The
         | 
| 294 | 
            +
                # `RateBasedRule` also contains the `IPSet` objects, `ByteMatchSet`
         | 
| 295 | 
            +
                # objects, and other predicates that identify the requests that you want
         | 
| 296 | 
            +
                # to count or block if these requests exceed the `RateLimit`.
         | 
| 297 | 
            +
                #
         | 
| 298 | 
            +
                # If you add more than one predicate to a `RateBasedRule`, a request not
         | 
| 299 | 
            +
                # only must exceed the `RateLimit`, but it also must match all the
         | 
| 300 | 
            +
                # specifications to be counted or blocked. For example, suppose you add
         | 
| 301 | 
            +
                # the following to a `RateBasedRule`\:
         | 
| 302 | 
            +
                #
         | 
| 303 | 
            +
                # * An `IPSet` that matches the IP address `192.0.2.44/32`
         | 
| 304 | 
            +
                #
         | 
| 305 | 
            +
                # * A `ByteMatchSet` that matches `BadBot` in the `User-Agent` header
         | 
| 306 | 
            +
                #
         | 
| 307 | 
            +
                # Further, you specify a `RateLimit` of 15,000.
         | 
| 308 | 
            +
                #
         | 
| 309 | 
            +
                # You then add the `RateBasedRule` to a `WebACL` and specify that you
         | 
| 310 | 
            +
                # want to block requests that meet the conditions in the rule. For a
         | 
| 311 | 
            +
                # request to be blocked, it must come from the IP address 192.0.2.44
         | 
| 312 | 
            +
                # *and* the `User-Agent` header in the request must contain the value
         | 
| 313 | 
            +
                # `BadBot`. Further, requests that match these two conditions must be
         | 
| 314 | 
            +
                # received at a rate of more than 15,000 requests every five minutes. If
         | 
| 315 | 
            +
                # both conditions are met and the rate is exceeded, AWS WAF blocks the
         | 
| 316 | 
            +
                # requests. If the rate drops below 15,000 for a five-minute period, AWS
         | 
| 317 | 
            +
                # WAF no longer blocks the requests.
         | 
| 318 | 
            +
                #
         | 
| 319 | 
            +
                # As a second example, suppose you want to limit requests to a
         | 
| 320 | 
            +
                # particular page on your site. To do this, you could add the following
         | 
| 321 | 
            +
                # to a `RateBasedRule`\:
         | 
| 322 | 
            +
                #
         | 
| 323 | 
            +
                # * A `ByteMatchSet` with `FieldToMatch` of `URI`
         | 
| 324 | 
            +
                #
         | 
| 325 | 
            +
                # * A `PositionalConstraint` of `STARTS_WITH`
         | 
| 326 | 
            +
                #
         | 
| 327 | 
            +
                # * A `TargetString` of `login`
         | 
| 328 | 
            +
                #
         | 
| 329 | 
            +
                # Further, you specify a `RateLimit` of 15,000.
         | 
| 330 | 
            +
                #
         | 
| 331 | 
            +
                # By adding this `RateBasedRule` to a `WebACL`, you could limit requests
         | 
| 332 | 
            +
                # to your login page without affecting the rest of your site.
         | 
| 333 | 
            +
                #
         | 
| 334 | 
            +
                # To create and configure a `RateBasedRule`, perform the following
         | 
| 335 | 
            +
                # steps:
         | 
| 336 | 
            +
                #
         | 
| 337 | 
            +
                # 1.  Create and update the predicates that you want to include in the
         | 
| 338 | 
            +
                #     rule. For more information, see CreateByteMatchSet, CreateIPSet,
         | 
| 339 | 
            +
                #     and CreateSqlInjectionMatchSet.
         | 
| 340 | 
            +
                #
         | 
| 341 | 
            +
                # 2.  Use GetChangeToken to get the change token that you provide in the
         | 
| 342 | 
            +
                #     `ChangeToken` parameter of a `CreateRule` request.
         | 
| 343 | 
            +
                #
         | 
| 344 | 
            +
                # 3.  Submit a `CreateRateBasedRule` request.
         | 
| 345 | 
            +
                #
         | 
| 346 | 
            +
                # 4.  Use `GetChangeToken` to get the change token that you provide in
         | 
| 347 | 
            +
                #     the `ChangeToken` parameter of an UpdateRule request.
         | 
| 348 | 
            +
                #
         | 
| 349 | 
            +
                # 5.  Submit an `UpdateRateBasedRule` request to specify the predicates
         | 
| 350 | 
            +
                #     that you want to include in the rule.
         | 
| 351 | 
            +
                #
         | 
| 352 | 
            +
                # 6.  Create and update a `WebACL` that contains the `RateBasedRule`.
         | 
| 353 | 
            +
                #     For more information, see CreateWebACL.
         | 
| 354 | 
            +
                #
         | 
| 355 | 
            +
                # For more information about how to use the AWS WAF API to allow or
         | 
| 356 | 
            +
                # block HTTP requests, see the [AWS WAF Developer Guide][1].
         | 
| 357 | 
            +
                #
         | 
| 358 | 
            +
                #
         | 
| 359 | 
            +
                #
         | 
| 360 | 
            +
                # [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
         | 
| 361 | 
            +
                #
         | 
| 362 | 
            +
                # @option params [required, String] :name
         | 
| 363 | 
            +
                #   A friendly name or description of the RateBasedRule. You can't change
         | 
| 364 | 
            +
                #   the name of a `RateBasedRule` after you create it.
         | 
| 365 | 
            +
                #
         | 
| 366 | 
            +
                # @option params [required, String] :metric_name
         | 
| 367 | 
            +
                #   A friendly name or description for the metrics for this
         | 
| 368 | 
            +
                #   `RateBasedRule`. The name can contain only alphanumeric characters
         | 
| 369 | 
            +
                #   (A-Z, a-z, 0-9); the name can't contain whitespace. You can't change
         | 
| 370 | 
            +
                #   the name of the metric after you create the `RateBasedRule`.
         | 
| 371 | 
            +
                #
         | 
| 372 | 
            +
                # @option params [required, String] :rate_key
         | 
| 373 | 
            +
                #   The field that AWS WAF uses to determine if requests are likely
         | 
| 374 | 
            +
                #   arriving from a single source and thus subject to rate monitoring. The
         | 
| 375 | 
            +
                #   only valid value for `RateKey` is `IP`. `IP` indicates that requests
         | 
| 376 | 
            +
                #   that arrive from the same IP address are subject to the `RateLimit`
         | 
| 377 | 
            +
                #   that is specified in the `RateBasedRule`.
         | 
| 378 | 
            +
                #
         | 
| 379 | 
            +
                # @option params [required, Integer] :rate_limit
         | 
| 380 | 
            +
                #   The maximum number of requests, which have an identical value in the
         | 
| 381 | 
            +
                #   field that is specified by `RateKey`, allowed in a five-minute period.
         | 
| 382 | 
            +
                #   If the number of requests exceeds the `RateLimit` and the other
         | 
| 383 | 
            +
                #   predicates specified in the rule are also met, AWS WAF triggers the
         | 
| 384 | 
            +
                #   action that is specified for this rule.
         | 
| 385 | 
            +
                #
         | 
| 386 | 
            +
                # @option params [required, String] :change_token
         | 
| 387 | 
            +
                #   The `ChangeToken` that you used to submit the `CreateRateBasedRule`
         | 
| 388 | 
            +
                #   request. You can also use this value to query the status of the
         | 
| 389 | 
            +
                #   request. For more information, see GetChangeTokenStatus.
         | 
| 390 | 
            +
                #
         | 
| 391 | 
            +
                # @return [Types::CreateRateBasedRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
         | 
| 392 | 
            +
                #
         | 
| 393 | 
            +
                #   * {Types::CreateRateBasedRuleResponse#rule #rule} => Types::RateBasedRule
         | 
| 394 | 
            +
                #   * {Types::CreateRateBasedRuleResponse#change_token #change_token} => String
         | 
| 395 | 
            +
                #
         | 
| 396 | 
            +
                # @example Request syntax with placeholder values
         | 
| 397 | 
            +
                #
         | 
| 398 | 
            +
                #   resp = client.create_rate_based_rule({
         | 
| 399 | 
            +
                #     name: "ResourceName", # required
         | 
| 400 | 
            +
                #     metric_name: "MetricName", # required
         | 
| 401 | 
            +
                #     rate_key: "IP", # required, accepts IP
         | 
| 402 | 
            +
                #     rate_limit: 1, # required
         | 
| 403 | 
            +
                #     change_token: "ChangeToken", # required
         | 
| 404 | 
            +
                #   })
         | 
| 405 | 
            +
                #
         | 
| 406 | 
            +
                # @example Response structure
         | 
| 407 | 
            +
                #
         | 
| 408 | 
            +
                #   resp.rule.rule_id #=> String
         | 
| 409 | 
            +
                #   resp.rule.name #=> String
         | 
| 410 | 
            +
                #   resp.rule.metric_name #=> String
         | 
| 411 | 
            +
                #   resp.rule.match_predicates #=> Array
         | 
| 412 | 
            +
                #   resp.rule.match_predicates[0].negated #=> Boolean
         | 
| 413 | 
            +
                #   resp.rule.match_predicates[0].type #=> String, one of "IPMatch", "ByteMatch", "SqlInjectionMatch", "SizeConstraint", "XssMatch"
         | 
| 414 | 
            +
                #   resp.rule.match_predicates[0].data_id #=> String
         | 
| 415 | 
            +
                #   resp.rule.rate_key #=> String, one of "IP"
         | 
| 416 | 
            +
                #   resp.rule.rate_limit #=> Integer
         | 
| 417 | 
            +
                #   resp.change_token #=> String
         | 
| 418 | 
            +
                #
         | 
| 419 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRateBasedRule AWS API Documentation
         | 
| 420 | 
            +
                #
         | 
| 421 | 
            +
                # @overload create_rate_based_rule(params = {})
         | 
| 422 | 
            +
                # @param [Hash] params ({})
         | 
| 423 | 
            +
                def create_rate_based_rule(params = {}, options = {})
         | 
| 424 | 
            +
                  req = build_request(:create_rate_based_rule, params)
         | 
| 425 | 
            +
                  req.send_request(options)
         | 
| 426 | 
            +
                end
         | 
| 427 | 
            +
             | 
| 291 428 | 
             
                # Creates a `Rule`, which contains the `IPSet` objects, `ByteMatchSet`
         | 
| 292 429 | 
             
                # objects, and other predicates that identify the requests that you want
         | 
| 293 430 | 
             
                # to block. If you add more than one predicate to a `Rule`, a request
         | 
| @@ -596,6 +733,7 @@ module Aws::WAF | |
| 596 733 | 
             
                #   resp.web_acl.rules[0].priority #=> Integer
         | 
| 597 734 | 
             
                #   resp.web_acl.rules[0].rule_id #=> String
         | 
| 598 735 | 
             
                #   resp.web_acl.rules[0].action.type #=> String, one of "BLOCK", "ALLOW", "COUNT"
         | 
| 736 | 
            +
                #   resp.web_acl.rules[0].type #=> String, one of "REGULAR", "RATE_BASED"
         | 
| 599 737 | 
             
                #   resp.change_token #=> String
         | 
| 600 738 | 
             
                #
         | 
| 601 739 | 
             
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateWebACL AWS API Documentation
         | 
| @@ -767,6 +905,54 @@ module Aws::WAF | |
| 767 905 | 
             
                  req.send_request(options)
         | 
| 768 906 | 
             
                end
         | 
| 769 907 |  | 
| 908 | 
            +
                # Permanently deletes a RateBasedRule. You can't delete a rule if it's
         | 
| 909 | 
            +
                # still used in any `WebACL` objects or if it still includes any
         | 
| 910 | 
            +
                # predicates, such as `ByteMatchSet` objects.
         | 
| 911 | 
            +
                #
         | 
| 912 | 
            +
                # If you just want to remove a rule from a `WebACL`, use UpdateWebACL.
         | 
| 913 | 
            +
                #
         | 
| 914 | 
            +
                # To permanently delete a `RateBasedRule` from AWS WAF, perform the
         | 
| 915 | 
            +
                # following steps:
         | 
| 916 | 
            +
                #
         | 
| 917 | 
            +
                # 1.  Update the `RateBasedRule` to remove predicates, if any. For more
         | 
| 918 | 
            +
                #     information, see UpdateRateBasedRule.
         | 
| 919 | 
            +
                #
         | 
| 920 | 
            +
                # 2.  Use GetChangeToken to get the change token that you provide in the
         | 
| 921 | 
            +
                #     `ChangeToken` parameter of a `DeleteRateBasedRule` request.
         | 
| 922 | 
            +
                #
         | 
| 923 | 
            +
                # 3.  Submit a `DeleteRateBasedRule` request.
         | 
| 924 | 
            +
                #
         | 
| 925 | 
            +
                # @option params [required, String] :rule_id
         | 
| 926 | 
            +
                #   The `RuleId` of the RateBasedRule that you want to delete. `RuleId` is
         | 
| 927 | 
            +
                #   returned by CreateRateBasedRule and by ListRateBasedRules.
         | 
| 928 | 
            +
                #
         | 
| 929 | 
            +
                # @option params [required, String] :change_token
         | 
| 930 | 
            +
                #   The value returned by the most recent call to GetChangeToken.
         | 
| 931 | 
            +
                #
         | 
| 932 | 
            +
                # @return [Types::DeleteRateBasedRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
         | 
| 933 | 
            +
                #
         | 
| 934 | 
            +
                #   * {Types::DeleteRateBasedRuleResponse#change_token #change_token} => String
         | 
| 935 | 
            +
                #
         | 
| 936 | 
            +
                # @example Request syntax with placeholder values
         | 
| 937 | 
            +
                #
         | 
| 938 | 
            +
                #   resp = client.delete_rate_based_rule({
         | 
| 939 | 
            +
                #     rule_id: "ResourceId", # required
         | 
| 940 | 
            +
                #     change_token: "ChangeToken", # required
         | 
| 941 | 
            +
                #   })
         | 
| 942 | 
            +
                #
         | 
| 943 | 
            +
                # @example Response structure
         | 
| 944 | 
            +
                #
         | 
| 945 | 
            +
                #   resp.change_token #=> String
         | 
| 946 | 
            +
                #
         | 
| 947 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRateBasedRule AWS API Documentation
         | 
| 948 | 
            +
                #
         | 
| 949 | 
            +
                # @overload delete_rate_based_rule(params = {})
         | 
| 950 | 
            +
                # @param [Hash] params ({})
         | 
| 951 | 
            +
                def delete_rate_based_rule(params = {}, options = {})
         | 
| 952 | 
            +
                  req = build_request(:delete_rate_based_rule, params)
         | 
| 953 | 
            +
                  req.send_request(options)
         | 
| 954 | 
            +
                end
         | 
| 955 | 
            +
             | 
| 770 956 | 
             
                # Permanently deletes a Rule. You can't delete a `Rule` if it's still
         | 
| 771 957 | 
             
                # used in any `WebACL` objects or if it still includes any predicates,
         | 
| 772 958 | 
             
                # such as `ByteMatchSet` objects.
         | 
| @@ -1151,6 +1337,86 @@ module Aws::WAF | |
| 1151 1337 | 
             
                  req.send_request(options)
         | 
| 1152 1338 | 
             
                end
         | 
| 1153 1339 |  | 
| 1340 | 
            +
                # Returns the RateBasedRule that is specified by the `RuleId` that you
         | 
| 1341 | 
            +
                # included in the `GetRateBasedRule` request.
         | 
| 1342 | 
            +
                #
         | 
| 1343 | 
            +
                # @option params [required, String] :rule_id
         | 
| 1344 | 
            +
                #   The `RuleId` of the RateBasedRule that you want to get. `RuleId` is
         | 
| 1345 | 
            +
                #   returned by CreateRateBasedRule and by ListRateBasedRules.
         | 
| 1346 | 
            +
                #
         | 
| 1347 | 
            +
                # @return [Types::GetRateBasedRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
         | 
| 1348 | 
            +
                #
         | 
| 1349 | 
            +
                #   * {Types::GetRateBasedRuleResponse#rule #rule} => Types::RateBasedRule
         | 
| 1350 | 
            +
                #
         | 
| 1351 | 
            +
                # @example Request syntax with placeholder values
         | 
| 1352 | 
            +
                #
         | 
| 1353 | 
            +
                #   resp = client.get_rate_based_rule({
         | 
| 1354 | 
            +
                #     rule_id: "ResourceId", # required
         | 
| 1355 | 
            +
                #   })
         | 
| 1356 | 
            +
                #
         | 
| 1357 | 
            +
                # @example Response structure
         | 
| 1358 | 
            +
                #
         | 
| 1359 | 
            +
                #   resp.rule.rule_id #=> String
         | 
| 1360 | 
            +
                #   resp.rule.name #=> String
         | 
| 1361 | 
            +
                #   resp.rule.metric_name #=> String
         | 
| 1362 | 
            +
                #   resp.rule.match_predicates #=> Array
         | 
| 1363 | 
            +
                #   resp.rule.match_predicates[0].negated #=> Boolean
         | 
| 1364 | 
            +
                #   resp.rule.match_predicates[0].type #=> String, one of "IPMatch", "ByteMatch", "SqlInjectionMatch", "SizeConstraint", "XssMatch"
         | 
| 1365 | 
            +
                #   resp.rule.match_predicates[0].data_id #=> String
         | 
| 1366 | 
            +
                #   resp.rule.rate_key #=> String, one of "IP"
         | 
| 1367 | 
            +
                #   resp.rule.rate_limit #=> Integer
         | 
| 1368 | 
            +
                #
         | 
| 1369 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRule AWS API Documentation
         | 
| 1370 | 
            +
                #
         | 
| 1371 | 
            +
                # @overload get_rate_based_rule(params = {})
         | 
| 1372 | 
            +
                # @param [Hash] params ({})
         | 
| 1373 | 
            +
                def get_rate_based_rule(params = {}, options = {})
         | 
| 1374 | 
            +
                  req = build_request(:get_rate_based_rule, params)
         | 
| 1375 | 
            +
                  req.send_request(options)
         | 
| 1376 | 
            +
                end
         | 
| 1377 | 
            +
             | 
| 1378 | 
            +
                # Returns an array of IP addresses currently being blocked by the
         | 
| 1379 | 
            +
                # RateBasedRule that is specified by the `RuleId`. The maximum number of
         | 
| 1380 | 
            +
                # managed keys that will be blocked is 10,000. If more than 10,000
         | 
| 1381 | 
            +
                # addresses exceed the rate limit, the 10,000 addresses with the highest
         | 
| 1382 | 
            +
                # rates will be blocked.
         | 
| 1383 | 
            +
                #
         | 
| 1384 | 
            +
                # @option params [required, String] :rule_id
         | 
| 1385 | 
            +
                #   The `RuleId` of the RateBasedRule for which you want to get a list of
         | 
| 1386 | 
            +
                #   `ManagedKeys`. `RuleId` is returned by CreateRateBasedRule and by
         | 
| 1387 | 
            +
                #   ListRateBasedRules.
         | 
| 1388 | 
            +
                #
         | 
| 1389 | 
            +
                # @option params [String] :next_marker
         | 
| 1390 | 
            +
                #   A null value and not currently used. Do not include this in your
         | 
| 1391 | 
            +
                #   request.
         | 
| 1392 | 
            +
                #
         | 
| 1393 | 
            +
                # @return [Types::GetRateBasedRuleManagedKeysResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
         | 
| 1394 | 
            +
                #
         | 
| 1395 | 
            +
                #   * {Types::GetRateBasedRuleManagedKeysResponse#managed_keys #managed_keys} => Array<String>
         | 
| 1396 | 
            +
                #   * {Types::GetRateBasedRuleManagedKeysResponse#next_marker #next_marker} => String
         | 
| 1397 | 
            +
                #
         | 
| 1398 | 
            +
                # @example Request syntax with placeholder values
         | 
| 1399 | 
            +
                #
         | 
| 1400 | 
            +
                #   resp = client.get_rate_based_rule_managed_keys({
         | 
| 1401 | 
            +
                #     rule_id: "ResourceId", # required
         | 
| 1402 | 
            +
                #     next_marker: "NextMarker",
         | 
| 1403 | 
            +
                #   })
         | 
| 1404 | 
            +
                #
         | 
| 1405 | 
            +
                # @example Response structure
         | 
| 1406 | 
            +
                #
         | 
| 1407 | 
            +
                #   resp.managed_keys #=> Array
         | 
| 1408 | 
            +
                #   resp.managed_keys[0] #=> String
         | 
| 1409 | 
            +
                #   resp.next_marker #=> String
         | 
| 1410 | 
            +
                #
         | 
| 1411 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleManagedKeys AWS API Documentation
         | 
| 1412 | 
            +
                #
         | 
| 1413 | 
            +
                # @overload get_rate_based_rule_managed_keys(params = {})
         | 
| 1414 | 
            +
                # @param [Hash] params ({})
         | 
| 1415 | 
            +
                def get_rate_based_rule_managed_keys(params = {}, options = {})
         | 
| 1416 | 
            +
                  req = build_request(:get_rate_based_rule_managed_keys, params)
         | 
| 1417 | 
            +
                  req.send_request(options)
         | 
| 1418 | 
            +
                end
         | 
| 1419 | 
            +
             | 
| 1154 1420 | 
             
                # Returns the Rule that is specified by the `RuleId` that you included
         | 
| 1155 1421 | 
             
                # in the `GetRule` request.
         | 
| 1156 1422 | 
             
                #
         | 
| @@ -1372,6 +1638,7 @@ module Aws::WAF | |
| 1372 1638 | 
             
                #   resp.web_acl.rules[0].priority #=> Integer
         | 
| 1373 1639 | 
             
                #   resp.web_acl.rules[0].rule_id #=> String
         | 
| 1374 1640 | 
             
                #   resp.web_acl.rules[0].action.type #=> String, one of "BLOCK", "ALLOW", "COUNT"
         | 
| 1641 | 
            +
                #   resp.web_acl.rules[0].type #=> String, one of "REGULAR", "RATE_BASED"
         | 
| 1375 1642 | 
             
                #
         | 
| 1376 1643 | 
             
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetWebACL AWS API Documentation
         | 
| 1377 1644 | 
             
                #
         | 
| @@ -1506,6 +1773,50 @@ module Aws::WAF | |
| 1506 1773 | 
             
                  req.send_request(options)
         | 
| 1507 1774 | 
             
                end
         | 
| 1508 1775 |  | 
| 1776 | 
            +
                # Returns an array of RuleSummary objects.
         | 
| 1777 | 
            +
                #
         | 
| 1778 | 
            +
                # @option params [String] :next_marker
         | 
| 1779 | 
            +
                #   If you specify a value for `Limit` and you have more `Rules` than the
         | 
| 1780 | 
            +
                #   value of `Limit`, AWS WAF returns a `NextMarker` value in the response
         | 
| 1781 | 
            +
                #   that allows you to list another group of `Rules`. For the second and
         | 
| 1782 | 
            +
                #   subsequent `ListRateBasedRules` requests, specify the value of
         | 
| 1783 | 
            +
                #   `NextMarker` from the previous response to get information about
         | 
| 1784 | 
            +
                #   another batch of `Rules`.
         | 
| 1785 | 
            +
                #
         | 
| 1786 | 
            +
                # @option params [Integer] :limit
         | 
| 1787 | 
            +
                #   Specifies the number of `Rules` that you want AWS WAF to return for
         | 
| 1788 | 
            +
                #   this request. If you have more `Rules` than the number that you
         | 
| 1789 | 
            +
                #   specify for `Limit`, the response includes a `NextMarker` value that
         | 
| 1790 | 
            +
                #   you can use to get another batch of `Rules`.
         | 
| 1791 | 
            +
                #
         | 
| 1792 | 
            +
                # @return [Types::ListRateBasedRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
         | 
| 1793 | 
            +
                #
         | 
| 1794 | 
            +
                #   * {Types::ListRateBasedRulesResponse#next_marker #next_marker} => String
         | 
| 1795 | 
            +
                #   * {Types::ListRateBasedRulesResponse#rules #rules} => Array<Types::RuleSummary>
         | 
| 1796 | 
            +
                #
         | 
| 1797 | 
            +
                # @example Request syntax with placeholder values
         | 
| 1798 | 
            +
                #
         | 
| 1799 | 
            +
                #   resp = client.list_rate_based_rules({
         | 
| 1800 | 
            +
                #     next_marker: "NextMarker",
         | 
| 1801 | 
            +
                #     limit: 1,
         | 
| 1802 | 
            +
                #   })
         | 
| 1803 | 
            +
                #
         | 
| 1804 | 
            +
                # @example Response structure
         | 
| 1805 | 
            +
                #
         | 
| 1806 | 
            +
                #   resp.next_marker #=> String
         | 
| 1807 | 
            +
                #   resp.rules #=> Array
         | 
| 1808 | 
            +
                #   resp.rules[0].rule_id #=> String
         | 
| 1809 | 
            +
                #   resp.rules[0].name #=> String
         | 
| 1810 | 
            +
                #
         | 
| 1811 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRateBasedRules AWS API Documentation
         | 
| 1812 | 
            +
                #
         | 
| 1813 | 
            +
                # @overload list_rate_based_rules(params = {})
         | 
| 1814 | 
            +
                # @param [Hash] params ({})
         | 
| 1815 | 
            +
                def list_rate_based_rules(params = {}, options = {})
         | 
| 1816 | 
            +
                  req = build_request(:list_rate_based_rules, params)
         | 
| 1817 | 
            +
                  req.send_request(options)
         | 
| 1818 | 
            +
                end
         | 
| 1819 | 
            +
             | 
| 1509 1820 | 
             
                # Returns an array of RuleSummary objects.
         | 
| 1510 1821 | 
             
                #
         | 
| 1511 1822 | 
             
                # @option params [String] :next_marker
         | 
| @@ -1941,6 +2252,101 @@ module Aws::WAF | |
| 1941 2252 | 
             
                  req.send_request(options)
         | 
| 1942 2253 | 
             
                end
         | 
| 1943 2254 |  | 
| 2255 | 
            +
                # Inserts or deletes Predicate objects in a rule and updates the
         | 
| 2256 | 
            +
                # `RateLimit` in the rule.
         | 
| 2257 | 
            +
                #
         | 
| 2258 | 
            +
                # Each `Predicate` object identifies a predicate, such as a ByteMatchSet
         | 
| 2259 | 
            +
                # or an IPSet, that specifies the web requests that you want to block or
         | 
| 2260 | 
            +
                # count. The `RateLimit` specifies the number of requests every five
         | 
| 2261 | 
            +
                # minutes that triggers the rule.
         | 
| 2262 | 
            +
                #
         | 
| 2263 | 
            +
                # If you add more than one predicate to a `RateBasedRule`, a request
         | 
| 2264 | 
            +
                # must match all the predicates and exceed the `RateLimit` to be counted
         | 
| 2265 | 
            +
                # or blocked. For example, suppose you add the following to a
         | 
| 2266 | 
            +
                # `RateBasedRule`\:
         | 
| 2267 | 
            +
                #
         | 
| 2268 | 
            +
                # * An `IPSet` that matches the IP address `192.0.2.44/32`
         | 
| 2269 | 
            +
                #
         | 
| 2270 | 
            +
                # * A `ByteMatchSet` that matches `BadBot` in the `User-Agent` header
         | 
| 2271 | 
            +
                #
         | 
| 2272 | 
            +
                # Further, you specify a `RateLimit` of 15,000.
         | 
| 2273 | 
            +
                #
         | 
| 2274 | 
            +
                # You then add the `RateBasedRule` to a `WebACL` and specify that you
         | 
| 2275 | 
            +
                # want to block requests that satisfy the rule. For a request to be
         | 
| 2276 | 
            +
                # blocked, it must come from the IP address 192.0.2.44 *and* the
         | 
| 2277 | 
            +
                # `User-Agent` header in the request must contain the value `BadBot`.
         | 
| 2278 | 
            +
                # Further, requests that match these two conditions much be received at
         | 
| 2279 | 
            +
                # a rate of more than 15,000 every five minutes. If the rate drops below
         | 
| 2280 | 
            +
                # this limit, AWS WAF no longer blocks the requests.
         | 
| 2281 | 
            +
                #
         | 
| 2282 | 
            +
                # As a second example, suppose you want to limit requests to a
         | 
| 2283 | 
            +
                # particular page on your site. To do this, you could add the following
         | 
| 2284 | 
            +
                # to a `RateBasedRule`\:
         | 
| 2285 | 
            +
                #
         | 
| 2286 | 
            +
                # * A `ByteMatchSet` with `FieldToMatch` of `URI`
         | 
| 2287 | 
            +
                #
         | 
| 2288 | 
            +
                # * A `PositionalConstraint` of `STARTS_WITH`
         | 
| 2289 | 
            +
                #
         | 
| 2290 | 
            +
                # * A `TargetString` of `login`
         | 
| 2291 | 
            +
                #
         | 
| 2292 | 
            +
                # Further, you specify a `RateLimit` of 15,000.
         | 
| 2293 | 
            +
                #
         | 
| 2294 | 
            +
                # By adding this `RateBasedRule` to a `WebACL`, you could limit requests
         | 
| 2295 | 
            +
                # to your login page without affecting the rest of your site.
         | 
| 2296 | 
            +
                #
         | 
| 2297 | 
            +
                # @option params [required, String] :rule_id
         | 
| 2298 | 
            +
                #   The `RuleId` of the `RateBasedRule` that you want to update. `RuleId`
         | 
| 2299 | 
            +
                #   is returned by `CreateRateBasedRule` and by ListRateBasedRules.
         | 
| 2300 | 
            +
                #
         | 
| 2301 | 
            +
                # @option params [required, String] :change_token
         | 
| 2302 | 
            +
                #   The value returned by the most recent call to GetChangeToken.
         | 
| 2303 | 
            +
                #
         | 
| 2304 | 
            +
                # @option params [required, Array<Types::RuleUpdate>] :updates
         | 
| 2305 | 
            +
                #   An array of `RuleUpdate` objects that you want to insert into or
         | 
| 2306 | 
            +
                #   delete from a RateBasedRule.
         | 
| 2307 | 
            +
                #
         | 
| 2308 | 
            +
                # @option params [required, Integer] :rate_limit
         | 
| 2309 | 
            +
                #   The maximum number of requests, which have an identical value in the
         | 
| 2310 | 
            +
                #   field specified by the `RateKey`, allowed in a five-minute period. If
         | 
| 2311 | 
            +
                #   the number of requests exceeds the `RateLimit` and the other
         | 
| 2312 | 
            +
                #   predicates specified in the rule are also met, AWS WAF triggers the
         | 
| 2313 | 
            +
                #   action that is specified for this rule.
         | 
| 2314 | 
            +
                #
         | 
| 2315 | 
            +
                # @return [Types::UpdateRateBasedRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
         | 
| 2316 | 
            +
                #
         | 
| 2317 | 
            +
                #   * {Types::UpdateRateBasedRuleResponse#change_token #change_token} => String
         | 
| 2318 | 
            +
                #
         | 
| 2319 | 
            +
                # @example Request syntax with placeholder values
         | 
| 2320 | 
            +
                #
         | 
| 2321 | 
            +
                #   resp = client.update_rate_based_rule({
         | 
| 2322 | 
            +
                #     rule_id: "ResourceId", # required
         | 
| 2323 | 
            +
                #     change_token: "ChangeToken", # required
         | 
| 2324 | 
            +
                #     updates: [ # required
         | 
| 2325 | 
            +
                #       {
         | 
| 2326 | 
            +
                #         action: "INSERT", # required, accepts INSERT, DELETE
         | 
| 2327 | 
            +
                #         predicate: { # required
         | 
| 2328 | 
            +
                #           negated: false, # required
         | 
| 2329 | 
            +
                #           type: "IPMatch", # required, accepts IPMatch, ByteMatch, SqlInjectionMatch, SizeConstraint, XssMatch
         | 
| 2330 | 
            +
                #           data_id: "ResourceId", # required
         | 
| 2331 | 
            +
                #         },
         | 
| 2332 | 
            +
                #       },
         | 
| 2333 | 
            +
                #     ],
         | 
| 2334 | 
            +
                #     rate_limit: 1, # required
         | 
| 2335 | 
            +
                #   })
         | 
| 2336 | 
            +
                #
         | 
| 2337 | 
            +
                # @example Response structure
         | 
| 2338 | 
            +
                #
         | 
| 2339 | 
            +
                #   resp.change_token #=> String
         | 
| 2340 | 
            +
                #
         | 
| 2341 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRateBasedRule AWS API Documentation
         | 
| 2342 | 
            +
                #
         | 
| 2343 | 
            +
                # @overload update_rate_based_rule(params = {})
         | 
| 2344 | 
            +
                # @param [Hash] params ({})
         | 
| 2345 | 
            +
                def update_rate_based_rule(params = {}, options = {})
         | 
| 2346 | 
            +
                  req = build_request(:update_rate_based_rule, params)
         | 
| 2347 | 
            +
                  req.send_request(options)
         | 
| 2348 | 
            +
                end
         | 
| 2349 | 
            +
             | 
| 1944 2350 | 
             
                # Inserts or deletes Predicate objects in a `Rule`. Each `Predicate`
         | 
| 1945 2351 | 
             
                # object identifies a predicate, such as a ByteMatchSet or an IPSet,
         | 
| 1946 2352 | 
             
                # that specifies the web requests that you want to allow, block, or
         | 
| @@ -2288,6 +2694,12 @@ module Aws::WAF | |
| 2288 2694 | 
             
                #     want to include in the `WebACL`, to specify the default action,
         | 
| 2289 2695 | 
             
                #     and to associate the `WebACL` with a CloudFront distribution.
         | 
| 2290 2696 | 
             
                #
         | 
| 2697 | 
            +
                # Be aware that if you try to add a RATE\_BASED rule to a web ACL
         | 
| 2698 | 
            +
                # without setting the rule type when first creating the rule, the
         | 
| 2699 | 
            +
                # UpdateWebACL request will fail because the request tries to add a
         | 
| 2700 | 
            +
                # REGULAR rule (the default rule type) with the specified ID, which does
         | 
| 2701 | 
            +
                # not exist.
         | 
| 2702 | 
            +
                #
         | 
| 2291 2703 | 
             
                # For more information about how to use the AWS WAF API to allow or
         | 
| 2292 2704 | 
             
                # block HTTP requests, see the [AWS WAF Developer Guide][1].
         | 
| 2293 2705 | 
             
                #
         | 
| @@ -2311,7 +2723,7 @@ module Aws::WAF | |
| 2311 2723 | 
             
                #
         | 
| 2312 2724 | 
             
                #   * WebACLUpdate: Contains `Action` and `ActivatedRule`
         | 
| 2313 2725 | 
             
                #
         | 
| 2314 | 
            -
                #   * ActivatedRule: Contains `Action`, `Priority`, and ` | 
| 2726 | 
            +
                #   * ActivatedRule: Contains `Action`, `Priority`, `RuleId`, and `Type`
         | 
| 2315 2727 | 
             
                #
         | 
| 2316 2728 | 
             
                #   * WafAction: Contains `Type`
         | 
| 2317 2729 | 
             
                #
         | 
| @@ -2338,6 +2750,7 @@ module Aws::WAF | |
| 2338 2750 | 
             
                #           action: { # required
         | 
| 2339 2751 | 
             
                #             type: "BLOCK", # required, accepts BLOCK, ALLOW, COUNT
         | 
| 2340 2752 | 
             
                #           },
         | 
| 2753 | 
            +
                #           type: "REGULAR", # accepts REGULAR, RATE_BASED
         | 
| 2341 2754 | 
             
                #         },
         | 
| 2342 2755 | 
             
                #       },
         | 
| 2343 2756 | 
             
                #     ],
         | 
| @@ -2467,7 +2880,7 @@ module Aws::WAF | |
| 2467 2880 | 
             
                    params: params,
         | 
| 2468 2881 | 
             
                    config: config)
         | 
| 2469 2882 | 
             
                  context[:gem_name] = 'aws-sdk-waf'
         | 
| 2470 | 
            -
                  context[:gem_version] = '1.0.0. | 
| 2883 | 
            +
                  context[:gem_version] = '1.0.0.rc8'
         | 
| 2471 2884 | 
             
                  Seahorse::Client::Request.new(handlers, context)
         | 
| 2472 2885 | 
             
                end
         | 
| 2473 2886 |  | 
| @@ -31,6 +31,8 @@ module Aws::WAF | |
| 31 31 | 
             
                CreateByteMatchSetResponse = Shapes::StructureShape.new(name: 'CreateByteMatchSetResponse')
         | 
| 32 32 | 
             
                CreateIPSetRequest = Shapes::StructureShape.new(name: 'CreateIPSetRequest')
         | 
| 33 33 | 
             
                CreateIPSetResponse = Shapes::StructureShape.new(name: 'CreateIPSetResponse')
         | 
| 34 | 
            +
                CreateRateBasedRuleRequest = Shapes::StructureShape.new(name: 'CreateRateBasedRuleRequest')
         | 
| 35 | 
            +
                CreateRateBasedRuleResponse = Shapes::StructureShape.new(name: 'CreateRateBasedRuleResponse')
         | 
| 34 36 | 
             
                CreateRuleRequest = Shapes::StructureShape.new(name: 'CreateRuleRequest')
         | 
| 35 37 | 
             
                CreateRuleResponse = Shapes::StructureShape.new(name: 'CreateRuleResponse')
         | 
| 36 38 | 
             
                CreateSizeConstraintSetRequest = Shapes::StructureShape.new(name: 'CreateSizeConstraintSetRequest')
         | 
| @@ -45,6 +47,8 @@ module Aws::WAF | |
| 45 47 | 
             
                DeleteByteMatchSetResponse = Shapes::StructureShape.new(name: 'DeleteByteMatchSetResponse')
         | 
| 46 48 | 
             
                DeleteIPSetRequest = Shapes::StructureShape.new(name: 'DeleteIPSetRequest')
         | 
| 47 49 | 
             
                DeleteIPSetResponse = Shapes::StructureShape.new(name: 'DeleteIPSetResponse')
         | 
| 50 | 
            +
                DeleteRateBasedRuleRequest = Shapes::StructureShape.new(name: 'DeleteRateBasedRuleRequest')
         | 
| 51 | 
            +
                DeleteRateBasedRuleResponse = Shapes::StructureShape.new(name: 'DeleteRateBasedRuleResponse')
         | 
| 48 52 | 
             
                DeleteRuleRequest = Shapes::StructureShape.new(name: 'DeleteRuleRequest')
         | 
| 49 53 | 
             
                DeleteRuleResponse = Shapes::StructureShape.new(name: 'DeleteRuleResponse')
         | 
| 50 54 | 
             
                DeleteSizeConstraintSetRequest = Shapes::StructureShape.new(name: 'DeleteSizeConstraintSetRequest')
         | 
| @@ -64,6 +68,10 @@ module Aws::WAF | |
| 64 68 | 
             
                GetChangeTokenStatusResponse = Shapes::StructureShape.new(name: 'GetChangeTokenStatusResponse')
         | 
| 65 69 | 
             
                GetIPSetRequest = Shapes::StructureShape.new(name: 'GetIPSetRequest')
         | 
| 66 70 | 
             
                GetIPSetResponse = Shapes::StructureShape.new(name: 'GetIPSetResponse')
         | 
| 71 | 
            +
                GetRateBasedRuleManagedKeysRequest = Shapes::StructureShape.new(name: 'GetRateBasedRuleManagedKeysRequest')
         | 
| 72 | 
            +
                GetRateBasedRuleManagedKeysResponse = Shapes::StructureShape.new(name: 'GetRateBasedRuleManagedKeysResponse')
         | 
| 73 | 
            +
                GetRateBasedRuleRequest = Shapes::StructureShape.new(name: 'GetRateBasedRuleRequest')
         | 
| 74 | 
            +
                GetRateBasedRuleResponse = Shapes::StructureShape.new(name: 'GetRateBasedRuleResponse')
         | 
| 67 75 | 
             
                GetRuleRequest = Shapes::StructureShape.new(name: 'GetRuleRequest')
         | 
| 68 76 | 
             
                GetRuleResponse = Shapes::StructureShape.new(name: 'GetRuleResponse')
         | 
| 69 77 | 
             
                GetSampledRequestsMaxItems = Shapes::IntegerShape.new(name: 'GetSampledRequestsMaxItems')
         | 
| @@ -98,6 +106,8 @@ module Aws::WAF | |
| 98 106 | 
             
                ListByteMatchSetsResponse = Shapes::StructureShape.new(name: 'ListByteMatchSetsResponse')
         | 
| 99 107 | 
             
                ListIPSetsRequest = Shapes::StructureShape.new(name: 'ListIPSetsRequest')
         | 
| 100 108 | 
             
                ListIPSetsResponse = Shapes::StructureShape.new(name: 'ListIPSetsResponse')
         | 
| 109 | 
            +
                ListRateBasedRulesRequest = Shapes::StructureShape.new(name: 'ListRateBasedRulesRequest')
         | 
| 110 | 
            +
                ListRateBasedRulesResponse = Shapes::StructureShape.new(name: 'ListRateBasedRulesResponse')
         | 
| 101 111 | 
             
                ListRulesRequest = Shapes::StructureShape.new(name: 'ListRulesRequest')
         | 
| 102 112 | 
             
                ListRulesResponse = Shapes::StructureShape.new(name: 'ListRulesResponse')
         | 
| 103 113 | 
             
                ListSizeConstraintSetsRequest = Shapes::StructureShape.new(name: 'ListSizeConstraintSetsRequest')
         | 
| @@ -108,6 +118,8 @@ module Aws::WAF | |
| 108 118 | 
             
                ListWebACLsResponse = Shapes::StructureShape.new(name: 'ListWebACLsResponse')
         | 
| 109 119 | 
             
                ListXssMatchSetsRequest = Shapes::StructureShape.new(name: 'ListXssMatchSetsRequest')
         | 
| 110 120 | 
             
                ListXssMatchSetsResponse = Shapes::StructureShape.new(name: 'ListXssMatchSetsResponse')
         | 
| 121 | 
            +
                ManagedKey = Shapes::StringShape.new(name: 'ManagedKey')
         | 
| 122 | 
            +
                ManagedKeys = Shapes::ListShape.new(name: 'ManagedKeys')
         | 
| 111 123 | 
             
                MatchFieldData = Shapes::StringShape.new(name: 'MatchFieldData')
         | 
| 112 124 | 
             
                MatchFieldType = Shapes::StringShape.new(name: 'MatchFieldType')
         | 
| 113 125 | 
             
                MetricName = Shapes::StringShape.new(name: 'MetricName')
         | 
| @@ -122,6 +134,9 @@ module Aws::WAF | |
| 122 134 | 
             
                Predicate = Shapes::StructureShape.new(name: 'Predicate')
         | 
| 123 135 | 
             
                PredicateType = Shapes::StringShape.new(name: 'PredicateType')
         | 
| 124 136 | 
             
                Predicates = Shapes::ListShape.new(name: 'Predicates')
         | 
| 137 | 
            +
                RateBasedRule = Shapes::StructureShape.new(name: 'RateBasedRule')
         | 
| 138 | 
            +
                RateKey = Shapes::StringShape.new(name: 'RateKey')
         | 
| 139 | 
            +
                RateLimit = Shapes::IntegerShape.new(name: 'RateLimit')
         | 
| 125 140 | 
             
                ResourceId = Shapes::StringShape.new(name: 'ResourceId')
         | 
| 126 141 | 
             
                ResourceName = Shapes::StringShape.new(name: 'ResourceName')
         | 
| 127 142 | 
             
                Rule = Shapes::StructureShape.new(name: 'Rule')
         | 
| @@ -156,6 +171,8 @@ module Aws::WAF | |
| 156 171 | 
             
                UpdateByteMatchSetResponse = Shapes::StructureShape.new(name: 'UpdateByteMatchSetResponse')
         | 
| 157 172 | 
             
                UpdateIPSetRequest = Shapes::StructureShape.new(name: 'UpdateIPSetRequest')
         | 
| 158 173 | 
             
                UpdateIPSetResponse = Shapes::StructureShape.new(name: 'UpdateIPSetResponse')
         | 
| 174 | 
            +
                UpdateRateBasedRuleRequest = Shapes::StructureShape.new(name: 'UpdateRateBasedRuleRequest')
         | 
| 175 | 
            +
                UpdateRateBasedRuleResponse = Shapes::StructureShape.new(name: 'UpdateRateBasedRuleResponse')
         | 
| 159 176 | 
             
                UpdateRuleRequest = Shapes::StructureShape.new(name: 'UpdateRuleRequest')
         | 
| 160 177 | 
             
                UpdateRuleResponse = Shapes::StructureShape.new(name: 'UpdateRuleResponse')
         | 
| 161 178 | 
             
                UpdateSizeConstraintSetRequest = Shapes::StructureShape.new(name: 'UpdateSizeConstraintSetRequest')
         | 
| @@ -179,6 +196,7 @@ module Aws::WAF | |
| 179 196 | 
             
                WAFStaleDataException = Shapes::StructureShape.new(name: 'WAFStaleDataException')
         | 
| 180 197 | 
             
                WafAction = Shapes::StructureShape.new(name: 'WafAction')
         | 
| 181 198 | 
             
                WafActionType = Shapes::StringShape.new(name: 'WafActionType')
         | 
| 199 | 
            +
                WafRuleType = Shapes::StringShape.new(name: 'WafRuleType')
         | 
| 182 200 | 
             
                WebACL = Shapes::StructureShape.new(name: 'WebACL')
         | 
| 183 201 | 
             
                WebACLSummaries = Shapes::ListShape.new(name: 'WebACLSummaries')
         | 
| 184 202 | 
             
                WebACLSummary = Shapes::StructureShape.new(name: 'WebACLSummary')
         | 
| @@ -196,6 +214,7 @@ module Aws::WAF | |
| 196 214 | 
             
                ActivatedRule.add_member(:priority, Shapes::ShapeRef.new(shape: RulePriority, required: true, location_name: "Priority"))
         | 
| 197 215 | 
             
                ActivatedRule.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
         | 
| 198 216 | 
             
                ActivatedRule.add_member(:action, Shapes::ShapeRef.new(shape: WafAction, required: true, location_name: "Action"))
         | 
| 217 | 
            +
                ActivatedRule.add_member(:type, Shapes::ShapeRef.new(shape: WafRuleType, location_name: "Type"))
         | 
| 199 218 | 
             
                ActivatedRule.struct_class = Types::ActivatedRule
         | 
| 200 219 |  | 
| 201 220 | 
             
                ActivatedRules.member = Shapes::ShapeRef.new(shape: ActivatedRule)
         | 
| @@ -241,6 +260,17 @@ module Aws::WAF | |
| 241 260 | 
             
                CreateIPSetResponse.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, location_name: "ChangeToken"))
         | 
| 242 261 | 
             
                CreateIPSetResponse.struct_class = Types::CreateIPSetResponse
         | 
| 243 262 |  | 
| 263 | 
            +
                CreateRateBasedRuleRequest.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "Name"))
         | 
| 264 | 
            +
                CreateRateBasedRuleRequest.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, required: true, location_name: "MetricName"))
         | 
| 265 | 
            +
                CreateRateBasedRuleRequest.add_member(:rate_key, Shapes::ShapeRef.new(shape: RateKey, required: true, location_name: "RateKey"))
         | 
| 266 | 
            +
                CreateRateBasedRuleRequest.add_member(:rate_limit, Shapes::ShapeRef.new(shape: RateLimit, required: true, location_name: "RateLimit"))
         | 
| 267 | 
            +
                CreateRateBasedRuleRequest.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, required: true, location_name: "ChangeToken"))
         | 
| 268 | 
            +
                CreateRateBasedRuleRequest.struct_class = Types::CreateRateBasedRuleRequest
         | 
| 269 | 
            +
             | 
| 270 | 
            +
                CreateRateBasedRuleResponse.add_member(:rule, Shapes::ShapeRef.new(shape: RateBasedRule, location_name: "Rule"))
         | 
| 271 | 
            +
                CreateRateBasedRuleResponse.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, location_name: "ChangeToken"))
         | 
| 272 | 
            +
                CreateRateBasedRuleResponse.struct_class = Types::CreateRateBasedRuleResponse
         | 
| 273 | 
            +
             | 
| 244 274 | 
             
                CreateRuleRequest.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "Name"))
         | 
| 245 275 | 
             
                CreateRuleRequest.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, required: true, location_name: "MetricName"))
         | 
| 246 276 | 
             
                CreateRuleRequest.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, required: true, location_name: "ChangeToken"))
         | 
| @@ -298,6 +328,13 @@ module Aws::WAF | |
| 298 328 | 
             
                DeleteIPSetResponse.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, location_name: "ChangeToken"))
         | 
| 299 329 | 
             
                DeleteIPSetResponse.struct_class = Types::DeleteIPSetResponse
         | 
| 300 330 |  | 
| 331 | 
            +
                DeleteRateBasedRuleRequest.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
         | 
| 332 | 
            +
                DeleteRateBasedRuleRequest.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, required: true, location_name: "ChangeToken"))
         | 
| 333 | 
            +
                DeleteRateBasedRuleRequest.struct_class = Types::DeleteRateBasedRuleRequest
         | 
| 334 | 
            +
             | 
| 335 | 
            +
                DeleteRateBasedRuleResponse.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, location_name: "ChangeToken"))
         | 
| 336 | 
            +
                DeleteRateBasedRuleResponse.struct_class = Types::DeleteRateBasedRuleResponse
         | 
| 337 | 
            +
             | 
| 301 338 | 
             
                DeleteRuleRequest.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
         | 
| 302 339 | 
             
                DeleteRuleRequest.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, required: true, location_name: "ChangeToken"))
         | 
| 303 340 | 
             
                DeleteRuleRequest.struct_class = Types::DeleteRuleRequest
         | 
| @@ -360,6 +397,20 @@ module Aws::WAF | |
| 360 397 | 
             
                GetIPSetResponse.add_member(:ip_set, Shapes::ShapeRef.new(shape: IPSet, location_name: "IPSet"))
         | 
| 361 398 | 
             
                GetIPSetResponse.struct_class = Types::GetIPSetResponse
         | 
| 362 399 |  | 
| 400 | 
            +
                GetRateBasedRuleManagedKeysRequest.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
         | 
| 401 | 
            +
                GetRateBasedRuleManagedKeysRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
         | 
| 402 | 
            +
                GetRateBasedRuleManagedKeysRequest.struct_class = Types::GetRateBasedRuleManagedKeysRequest
         | 
| 403 | 
            +
             | 
| 404 | 
            +
                GetRateBasedRuleManagedKeysResponse.add_member(:managed_keys, Shapes::ShapeRef.new(shape: ManagedKeys, location_name: "ManagedKeys"))
         | 
| 405 | 
            +
                GetRateBasedRuleManagedKeysResponse.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
         | 
| 406 | 
            +
                GetRateBasedRuleManagedKeysResponse.struct_class = Types::GetRateBasedRuleManagedKeysResponse
         | 
| 407 | 
            +
             | 
| 408 | 
            +
                GetRateBasedRuleRequest.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
         | 
| 409 | 
            +
                GetRateBasedRuleRequest.struct_class = Types::GetRateBasedRuleRequest
         | 
| 410 | 
            +
             | 
| 411 | 
            +
                GetRateBasedRuleResponse.add_member(:rule, Shapes::ShapeRef.new(shape: RateBasedRule, location_name: "Rule"))
         | 
| 412 | 
            +
                GetRateBasedRuleResponse.struct_class = Types::GetRateBasedRuleResponse
         | 
| 413 | 
            +
             | 
| 363 414 | 
             
                GetRuleRequest.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
         | 
| 364 415 | 
             
                GetRuleRequest.struct_class = Types::GetRuleRequest
         | 
| 365 416 |  | 
| @@ -454,6 +505,14 @@ module Aws::WAF | |
| 454 505 | 
             
                ListIPSetsResponse.add_member(:ip_sets, Shapes::ShapeRef.new(shape: IPSetSummaries, location_name: "IPSets"))
         | 
| 455 506 | 
             
                ListIPSetsResponse.struct_class = Types::ListIPSetsResponse
         | 
| 456 507 |  | 
| 508 | 
            +
                ListRateBasedRulesRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
         | 
| 509 | 
            +
                ListRateBasedRulesRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
         | 
| 510 | 
            +
                ListRateBasedRulesRequest.struct_class = Types::ListRateBasedRulesRequest
         | 
| 511 | 
            +
             | 
| 512 | 
            +
                ListRateBasedRulesResponse.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
         | 
| 513 | 
            +
                ListRateBasedRulesResponse.add_member(:rules, Shapes::ShapeRef.new(shape: RuleSummaries, location_name: "Rules"))
         | 
| 514 | 
            +
                ListRateBasedRulesResponse.struct_class = Types::ListRateBasedRulesResponse
         | 
| 515 | 
            +
             | 
| 457 516 | 
             
                ListRulesRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
         | 
| 458 517 | 
             
                ListRulesRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PaginationLimit, location_name: "Limit"))
         | 
| 459 518 | 
             
                ListRulesRequest.struct_class = Types::ListRulesRequest
         | 
| @@ -494,6 +553,8 @@ module Aws::WAF | |
| 494 553 | 
             
                ListXssMatchSetsResponse.add_member(:xss_match_sets, Shapes::ShapeRef.new(shape: XssMatchSetSummaries, location_name: "XssMatchSets"))
         | 
| 495 554 | 
             
                ListXssMatchSetsResponse.struct_class = Types::ListXssMatchSetsResponse
         | 
| 496 555 |  | 
| 556 | 
            +
                ManagedKeys.member = Shapes::ShapeRef.new(shape: ManagedKey)
         | 
| 557 | 
            +
             | 
| 497 558 | 
             
                Predicate.add_member(:negated, Shapes::ShapeRef.new(shape: Negated, required: true, location_name: "Negated"))
         | 
| 498 559 | 
             
                Predicate.add_member(:type, Shapes::ShapeRef.new(shape: PredicateType, required: true, location_name: "Type"))
         | 
| 499 560 | 
             
                Predicate.add_member(:data_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "DataId"))
         | 
| @@ -501,6 +562,14 @@ module Aws::WAF | |
| 501 562 |  | 
| 502 563 | 
             
                Predicates.member = Shapes::ShapeRef.new(shape: Predicate)
         | 
| 503 564 |  | 
| 565 | 
            +
                RateBasedRule.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
         | 
| 566 | 
            +
                RateBasedRule.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, location_name: "Name"))
         | 
| 567 | 
            +
                RateBasedRule.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, location_name: "MetricName"))
         | 
| 568 | 
            +
                RateBasedRule.add_member(:match_predicates, Shapes::ShapeRef.new(shape: Predicates, required: true, location_name: "MatchPredicates"))
         | 
| 569 | 
            +
                RateBasedRule.add_member(:rate_key, Shapes::ShapeRef.new(shape: RateKey, required: true, location_name: "RateKey"))
         | 
| 570 | 
            +
                RateBasedRule.add_member(:rate_limit, Shapes::ShapeRef.new(shape: RateLimit, required: true, location_name: "RateLimit"))
         | 
| 571 | 
            +
                RateBasedRule.struct_class = Types::RateBasedRule
         | 
| 572 | 
            +
             | 
| 504 573 | 
             
                Rule.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
         | 
| 505 574 | 
             
                Rule.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, location_name: "Name"))
         | 
| 506 575 | 
             
                Rule.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, location_name: "MetricName"))
         | 
| @@ -595,6 +664,15 @@ module Aws::WAF | |
| 595 664 | 
             
                UpdateIPSetResponse.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, location_name: "ChangeToken"))
         | 
| 596 665 | 
             
                UpdateIPSetResponse.struct_class = Types::UpdateIPSetResponse
         | 
| 597 666 |  | 
| 667 | 
            +
                UpdateRateBasedRuleRequest.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
         | 
| 668 | 
            +
                UpdateRateBasedRuleRequest.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, required: true, location_name: "ChangeToken"))
         | 
| 669 | 
            +
                UpdateRateBasedRuleRequest.add_member(:updates, Shapes::ShapeRef.new(shape: RuleUpdates, required: true, location_name: "Updates"))
         | 
| 670 | 
            +
                UpdateRateBasedRuleRequest.add_member(:rate_limit, Shapes::ShapeRef.new(shape: RateLimit, required: true, location_name: "RateLimit"))
         | 
| 671 | 
            +
                UpdateRateBasedRuleRequest.struct_class = Types::UpdateRateBasedRuleRequest
         | 
| 672 | 
            +
             | 
| 673 | 
            +
                UpdateRateBasedRuleResponse.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, location_name: "ChangeToken"))
         | 
| 674 | 
            +
                UpdateRateBasedRuleResponse.struct_class = Types::UpdateRateBasedRuleResponse
         | 
| 675 | 
            +
             | 
| 598 676 | 
             
                UpdateRuleRequest.add_member(:rule_id, Shapes::ShapeRef.new(shape: ResourceId, required: true, location_name: "RuleId"))
         | 
| 599 677 | 
             
                UpdateRuleRequest.add_member(:change_token, Shapes::ShapeRef.new(shape: ChangeToken, required: true, location_name: "ChangeToken"))
         | 
| 600 678 | 
             
                UpdateRuleRequest.add_member(:updates, Shapes::ShapeRef.new(shape: RuleUpdates, required: true, location_name: "Updates"))
         | 
| @@ -724,6 +802,19 @@ module Aws::WAF | |
| 724 802 | 
             
                    o.errors << Shapes::ShapeRef.new(shape: WAFLimitsExceededException)
         | 
| 725 803 | 
             
                  end)
         | 
| 726 804 |  | 
| 805 | 
            +
                  api.add_operation(:create_rate_based_rule, Seahorse::Model::Operation.new.tap do |o|
         | 
| 806 | 
            +
                    o.name = "CreateRateBasedRule"
         | 
| 807 | 
            +
                    o.http_method = "POST"
         | 
| 808 | 
            +
                    o.http_request_uri = "/"
         | 
| 809 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: CreateRateBasedRuleRequest)
         | 
| 810 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: CreateRateBasedRuleResponse)
         | 
| 811 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFStaleDataException)
         | 
| 812 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
         | 
| 813 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFDisallowedNameException)
         | 
| 814 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
         | 
| 815 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFLimitsExceededException)
         | 
| 816 | 
            +
                  end)
         | 
| 817 | 
            +
             | 
| 727 818 | 
             
                  api.add_operation(:create_rule, Seahorse::Model::Operation.new.tap do |o|
         | 
| 728 819 | 
             
                    o.name = "CreateRule"
         | 
| 729 820 | 
             
                    o.http_method = "POST"
         | 
| @@ -821,6 +912,20 @@ module Aws::WAF | |
| 821 912 | 
             
                    o.errors << Shapes::ShapeRef.new(shape: WAFNonEmptyEntityException)
         | 
| 822 913 | 
             
                  end)
         | 
| 823 914 |  | 
| 915 | 
            +
                  api.add_operation(:delete_rate_based_rule, Seahorse::Model::Operation.new.tap do |o|
         | 
| 916 | 
            +
                    o.name = "DeleteRateBasedRule"
         | 
| 917 | 
            +
                    o.http_method = "POST"
         | 
| 918 | 
            +
                    o.http_request_uri = "/"
         | 
| 919 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: DeleteRateBasedRuleRequest)
         | 
| 920 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: DeleteRateBasedRuleResponse)
         | 
| 921 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFStaleDataException)
         | 
| 922 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
         | 
| 923 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInvalidAccountException)
         | 
| 924 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
         | 
| 925 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFReferencedItemException)
         | 
| 926 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFNonEmptyEntityException)
         | 
| 927 | 
            +
                  end)
         | 
| 928 | 
            +
             | 
| 824 929 | 
             
                  api.add_operation(:delete_rule, Seahorse::Model::Operation.new.tap do |o|
         | 
| 825 930 | 
             
                    o.name = "DeleteRule"
         | 
| 826 931 | 
             
                    o.http_method = "POST"
         | 
| @@ -932,6 +1037,29 @@ module Aws::WAF | |
| 932 1037 | 
             
                    o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
         | 
| 933 1038 | 
             
                  end)
         | 
| 934 1039 |  | 
| 1040 | 
            +
                  api.add_operation(:get_rate_based_rule, Seahorse::Model::Operation.new.tap do |o|
         | 
| 1041 | 
            +
                    o.name = "GetRateBasedRule"
         | 
| 1042 | 
            +
                    o.http_method = "POST"
         | 
| 1043 | 
            +
                    o.http_request_uri = "/"
         | 
| 1044 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: GetRateBasedRuleRequest)
         | 
| 1045 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: GetRateBasedRuleResponse)
         | 
| 1046 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
         | 
| 1047 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInvalidAccountException)
         | 
| 1048 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
         | 
| 1049 | 
            +
                  end)
         | 
| 1050 | 
            +
             | 
| 1051 | 
            +
                  api.add_operation(:get_rate_based_rule_managed_keys, Seahorse::Model::Operation.new.tap do |o|
         | 
| 1052 | 
            +
                    o.name = "GetRateBasedRuleManagedKeys"
         | 
| 1053 | 
            +
                    o.http_method = "POST"
         | 
| 1054 | 
            +
                    o.http_request_uri = "/"
         | 
| 1055 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: GetRateBasedRuleManagedKeysRequest)
         | 
| 1056 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: GetRateBasedRuleManagedKeysResponse)
         | 
| 1057 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
         | 
| 1058 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInvalidAccountException)
         | 
| 1059 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
         | 
| 1060 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
         | 
| 1061 | 
            +
                  end)
         | 
| 1062 | 
            +
             | 
| 935 1063 | 
             
                  api.add_operation(:get_rule, Seahorse::Model::Operation.new.tap do |o|
         | 
| 936 1064 | 
             
                    o.name = "GetRule"
         | 
| 937 1065 | 
             
                    o.http_method = "POST"
         | 
| @@ -1017,6 +1145,16 @@ module Aws::WAF | |
| 1017 1145 | 
             
                    o.errors << Shapes::ShapeRef.new(shape: WAFInvalidAccountException)
         | 
| 1018 1146 | 
             
                  end)
         | 
| 1019 1147 |  | 
| 1148 | 
            +
                  api.add_operation(:list_rate_based_rules, Seahorse::Model::Operation.new.tap do |o|
         | 
| 1149 | 
            +
                    o.name = "ListRateBasedRules"
         | 
| 1150 | 
            +
                    o.http_method = "POST"
         | 
| 1151 | 
            +
                    o.http_request_uri = "/"
         | 
| 1152 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: ListRateBasedRulesRequest)
         | 
| 1153 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: ListRateBasedRulesResponse)
         | 
| 1154 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
         | 
| 1155 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInvalidAccountException)
         | 
| 1156 | 
            +
                  end)
         | 
| 1157 | 
            +
             | 
| 1020 1158 | 
             
                  api.add_operation(:list_rules, Seahorse::Model::Operation.new.tap do |o|
         | 
| 1021 1159 | 
             
                    o.name = "ListRules"
         | 
| 1022 1160 | 
             
                    o.http_method = "POST"
         | 
| @@ -1100,6 +1238,23 @@ module Aws::WAF | |
| 1100 1238 | 
             
                    o.errors << Shapes::ShapeRef.new(shape: WAFLimitsExceededException)
         | 
| 1101 1239 | 
             
                  end)
         | 
| 1102 1240 |  | 
| 1241 | 
            +
                  api.add_operation(:update_rate_based_rule, Seahorse::Model::Operation.new.tap do |o|
         | 
| 1242 | 
            +
                    o.name = "UpdateRateBasedRule"
         | 
| 1243 | 
            +
                    o.http_method = "POST"
         | 
| 1244 | 
            +
                    o.http_request_uri = "/"
         | 
| 1245 | 
            +
                    o.input = Shapes::ShapeRef.new(shape: UpdateRateBasedRuleRequest)
         | 
| 1246 | 
            +
                    o.output = Shapes::ShapeRef.new(shape: UpdateRateBasedRuleResponse)
         | 
| 1247 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFStaleDataException)
         | 
| 1248 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
         | 
| 1249 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInvalidAccountException)
         | 
| 1250 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
         | 
| 1251 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
         | 
| 1252 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentContainerException)
         | 
| 1253 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
         | 
| 1254 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFReferencedItemException)
         | 
| 1255 | 
            +
                    o.errors << Shapes::ShapeRef.new(shape: WAFLimitsExceededException)
         | 
| 1256 | 
            +
                  end)
         | 
| 1257 | 
            +
             | 
| 1103 1258 | 
             
                  api.add_operation(:update_rule, Seahorse::Model::Operation.new.tap do |o|
         | 
| 1104 1259 | 
             
                    o.name = "UpdateRule"
         | 
| 1105 1260 | 
             
                    o.http_method = "POST"
         | 
    
        data/lib/aws-sdk-waf/types.rb
    CHANGED
    
    | @@ -25,6 +25,7 @@ module Aws::WAF | |
| 25 25 | 
             
                #         action: { # required
         | 
| 26 26 | 
             
                #           type: "BLOCK", # required, accepts BLOCK, ALLOW, COUNT
         | 
| 27 27 | 
             
                #         },
         | 
| 28 | 
            +
                #         type: "REGULAR", # accepts REGULAR, RATE_BASED
         | 
| 28 29 | 
             
                #       }
         | 
| 29 30 | 
             
                #
         | 
| 30 31 | 
             
                # @!attribute [rw] priority
         | 
| @@ -59,12 +60,22 @@ module Aws::WAF | |
| 59 60 | 
             
                #     request based on the remaining rules in the web ACL.
         | 
| 60 61 | 
             
                #   @return [Types::WafAction]
         | 
| 61 62 | 
             
                #
         | 
| 63 | 
            +
                # @!attribute [rw] type
         | 
| 64 | 
            +
                #   The rule type, either `REGULAR`, as defined by Rule, or
         | 
| 65 | 
            +
                #   `RATE_BASED`, as defined by RateBasedRule. The default is REGULAR.
         | 
| 66 | 
            +
                #   Although this field is optional, be aware that if you try to add a
         | 
| 67 | 
            +
                #   RATE\_BASED rule to a web ACL without setting the type, the
         | 
| 68 | 
            +
                #   UpdateWebACL request will fail because the request tries to add a
         | 
| 69 | 
            +
                #   REGULAR rule with the specified ID, which does not exist.
         | 
| 70 | 
            +
                #   @return [String]
         | 
| 71 | 
            +
                #
         | 
| 62 72 | 
             
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ActivatedRule AWS API Documentation
         | 
| 63 73 | 
             
                #
         | 
| 64 74 | 
             
                class ActivatedRule < Struct.new(
         | 
| 65 75 | 
             
                  :priority,
         | 
| 66 76 | 
             
                  :rule_id,
         | 
| 67 | 
            -
                  :action | 
| 77 | 
            +
                  :action,
         | 
| 78 | 
            +
                  :type)
         | 
| 68 79 | 
             
                  include Aws::Structure
         | 
| 69 80 | 
             
                end
         | 
| 70 81 |  | 
| @@ -476,6 +487,81 @@ module Aws::WAF | |
| 476 487 | 
             
                  include Aws::Structure
         | 
| 477 488 | 
             
                end
         | 
| 478 489 |  | 
| 490 | 
            +
                # @note When making an API call, you may pass CreateRateBasedRuleRequest
         | 
| 491 | 
            +
                #   data as a hash:
         | 
| 492 | 
            +
                #
         | 
| 493 | 
            +
                #       {
         | 
| 494 | 
            +
                #         name: "ResourceName", # required
         | 
| 495 | 
            +
                #         metric_name: "MetricName", # required
         | 
| 496 | 
            +
                #         rate_key: "IP", # required, accepts IP
         | 
| 497 | 
            +
                #         rate_limit: 1, # required
         | 
| 498 | 
            +
                #         change_token: "ChangeToken", # required
         | 
| 499 | 
            +
                #       }
         | 
| 500 | 
            +
                #
         | 
| 501 | 
            +
                # @!attribute [rw] name
         | 
| 502 | 
            +
                #   A friendly name or description of the RateBasedRule. You can't
         | 
| 503 | 
            +
                #   change the name of a `RateBasedRule` after you create it.
         | 
| 504 | 
            +
                #   @return [String]
         | 
| 505 | 
            +
                #
         | 
| 506 | 
            +
                # @!attribute [rw] metric_name
         | 
| 507 | 
            +
                #   A friendly name or description for the metrics for this
         | 
| 508 | 
            +
                #   `RateBasedRule`. The name can contain only alphanumeric characters
         | 
| 509 | 
            +
                #   (A-Z, a-z, 0-9); the name can't contain whitespace. You can't
         | 
| 510 | 
            +
                #   change the name of the metric after you create the `RateBasedRule`.
         | 
| 511 | 
            +
                #   @return [String]
         | 
| 512 | 
            +
                #
         | 
| 513 | 
            +
                # @!attribute [rw] rate_key
         | 
| 514 | 
            +
                #   The field that AWS WAF uses to determine if requests are likely
         | 
| 515 | 
            +
                #   arriving from a single source and thus subject to rate monitoring.
         | 
| 516 | 
            +
                #   The only valid value for `RateKey` is `IP`. `IP` indicates that
         | 
| 517 | 
            +
                #   requests that arrive from the same IP address are subject to the
         | 
| 518 | 
            +
                #   `RateLimit` that is specified in the `RateBasedRule`.
         | 
| 519 | 
            +
                #   @return [String]
         | 
| 520 | 
            +
                #
         | 
| 521 | 
            +
                # @!attribute [rw] rate_limit
         | 
| 522 | 
            +
                #   The maximum number of requests, which have an identical value in the
         | 
| 523 | 
            +
                #   field that is specified by `RateKey`, allowed in a five-minute
         | 
| 524 | 
            +
                #   period. If the number of requests exceeds the `RateLimit` and the
         | 
| 525 | 
            +
                #   other predicates specified in the rule are also met, AWS WAF
         | 
| 526 | 
            +
                #   triggers the action that is specified for this rule.
         | 
| 527 | 
            +
                #   @return [Integer]
         | 
| 528 | 
            +
                #
         | 
| 529 | 
            +
                # @!attribute [rw] change_token
         | 
| 530 | 
            +
                #   The `ChangeToken` that you used to submit the `CreateRateBasedRule`
         | 
| 531 | 
            +
                #   request. You can also use this value to query the status of the
         | 
| 532 | 
            +
                #   request. For more information, see GetChangeTokenStatus.
         | 
| 533 | 
            +
                #   @return [String]
         | 
| 534 | 
            +
                #
         | 
| 535 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRateBasedRuleRequest AWS API Documentation
         | 
| 536 | 
            +
                #
         | 
| 537 | 
            +
                class CreateRateBasedRuleRequest < Struct.new(
         | 
| 538 | 
            +
                  :name,
         | 
| 539 | 
            +
                  :metric_name,
         | 
| 540 | 
            +
                  :rate_key,
         | 
| 541 | 
            +
                  :rate_limit,
         | 
| 542 | 
            +
                  :change_token)
         | 
| 543 | 
            +
                  include Aws::Structure
         | 
| 544 | 
            +
                end
         | 
| 545 | 
            +
             | 
| 546 | 
            +
                # @!attribute [rw] rule
         | 
| 547 | 
            +
                #   The RateBasedRule that is returned in the `CreateRateBasedRule`
         | 
| 548 | 
            +
                #   response.
         | 
| 549 | 
            +
                #   @return [Types::RateBasedRule]
         | 
| 550 | 
            +
                #
         | 
| 551 | 
            +
                # @!attribute [rw] change_token
         | 
| 552 | 
            +
                #   The `ChangeToken` that you used to submit the `CreateRateBasedRule`
         | 
| 553 | 
            +
                #   request. You can also use this value to query the status of the
         | 
| 554 | 
            +
                #   request. For more information, see GetChangeTokenStatus.
         | 
| 555 | 
            +
                #   @return [String]
         | 
| 556 | 
            +
                #
         | 
| 557 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRateBasedRuleResponse AWS API Documentation
         | 
| 558 | 
            +
                #
         | 
| 559 | 
            +
                class CreateRateBasedRuleResponse < Struct.new(
         | 
| 560 | 
            +
                  :rule,
         | 
| 561 | 
            +
                  :change_token)
         | 
| 562 | 
            +
                  include Aws::Structure
         | 
| 563 | 
            +
                end
         | 
| 564 | 
            +
             | 
| 479 565 | 
             
                # @note When making an API call, you may pass CreateRuleRequest
         | 
| 480 566 | 
             
                #   data as a hash:
         | 
| 481 567 | 
             
                #
         | 
| @@ -808,6 +894,44 @@ module Aws::WAF | |
| 808 894 | 
             
                  include Aws::Structure
         | 
| 809 895 | 
             
                end
         | 
| 810 896 |  | 
| 897 | 
            +
                # @note When making an API call, you may pass DeleteRateBasedRuleRequest
         | 
| 898 | 
            +
                #   data as a hash:
         | 
| 899 | 
            +
                #
         | 
| 900 | 
            +
                #       {
         | 
| 901 | 
            +
                #         rule_id: "ResourceId", # required
         | 
| 902 | 
            +
                #         change_token: "ChangeToken", # required
         | 
| 903 | 
            +
                #       }
         | 
| 904 | 
            +
                #
         | 
| 905 | 
            +
                # @!attribute [rw] rule_id
         | 
| 906 | 
            +
                #   The `RuleId` of the RateBasedRule that you want to delete. `RuleId`
         | 
| 907 | 
            +
                #   is returned by CreateRateBasedRule and by ListRateBasedRules.
         | 
| 908 | 
            +
                #   @return [String]
         | 
| 909 | 
            +
                #
         | 
| 910 | 
            +
                # @!attribute [rw] change_token
         | 
| 911 | 
            +
                #   The value returned by the most recent call to GetChangeToken.
         | 
| 912 | 
            +
                #   @return [String]
         | 
| 913 | 
            +
                #
         | 
| 914 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRateBasedRuleRequest AWS API Documentation
         | 
| 915 | 
            +
                #
         | 
| 916 | 
            +
                class DeleteRateBasedRuleRequest < Struct.new(
         | 
| 917 | 
            +
                  :rule_id,
         | 
| 918 | 
            +
                  :change_token)
         | 
| 919 | 
            +
                  include Aws::Structure
         | 
| 920 | 
            +
                end
         | 
| 921 | 
            +
             | 
| 922 | 
            +
                # @!attribute [rw] change_token
         | 
| 923 | 
            +
                #   The `ChangeToken` that you used to submit the `DeleteRateBasedRule`
         | 
| 924 | 
            +
                #   request. You can also use this value to query the status of the
         | 
| 925 | 
            +
                #   request. For more information, see GetChangeTokenStatus.
         | 
| 926 | 
            +
                #   @return [String]
         | 
| 927 | 
            +
                #
         | 
| 928 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRateBasedRuleResponse AWS API Documentation
         | 
| 929 | 
            +
                #
         | 
| 930 | 
            +
                class DeleteRateBasedRuleResponse < Struct.new(
         | 
| 931 | 
            +
                  :change_token)
         | 
| 932 | 
            +
                  include Aws::Structure
         | 
| 933 | 
            +
                end
         | 
| 934 | 
            +
             | 
| 811 935 | 
             
                # @note When making an API call, you may pass DeleteRuleRequest
         | 
| 812 936 | 
             
                #   data as a hash:
         | 
| 813 937 | 
             
                #
         | 
| @@ -1195,6 +1319,81 @@ module Aws::WAF | |
| 1195 1319 | 
             
                  include Aws::Structure
         | 
| 1196 1320 | 
             
                end
         | 
| 1197 1321 |  | 
| 1322 | 
            +
                # @note When making an API call, you may pass GetRateBasedRuleManagedKeysRequest
         | 
| 1323 | 
            +
                #   data as a hash:
         | 
| 1324 | 
            +
                #
         | 
| 1325 | 
            +
                #       {
         | 
| 1326 | 
            +
                #         rule_id: "ResourceId", # required
         | 
| 1327 | 
            +
                #         next_marker: "NextMarker",
         | 
| 1328 | 
            +
                #       }
         | 
| 1329 | 
            +
                #
         | 
| 1330 | 
            +
                # @!attribute [rw] rule_id
         | 
| 1331 | 
            +
                #   The `RuleId` of the RateBasedRule for which you want to get a list
         | 
| 1332 | 
            +
                #   of `ManagedKeys`. `RuleId` is returned by CreateRateBasedRule and by
         | 
| 1333 | 
            +
                #   ListRateBasedRules.
         | 
| 1334 | 
            +
                #   @return [String]
         | 
| 1335 | 
            +
                #
         | 
| 1336 | 
            +
                # @!attribute [rw] next_marker
         | 
| 1337 | 
            +
                #   A null value and not currently used. Do not include this in your
         | 
| 1338 | 
            +
                #   request.
         | 
| 1339 | 
            +
                #   @return [String]
         | 
| 1340 | 
            +
                #
         | 
| 1341 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleManagedKeysRequest AWS API Documentation
         | 
| 1342 | 
            +
                #
         | 
| 1343 | 
            +
                class GetRateBasedRuleManagedKeysRequest < Struct.new(
         | 
| 1344 | 
            +
                  :rule_id,
         | 
| 1345 | 
            +
                  :next_marker)
         | 
| 1346 | 
            +
                  include Aws::Structure
         | 
| 1347 | 
            +
                end
         | 
| 1348 | 
            +
             | 
| 1349 | 
            +
                # @!attribute [rw] managed_keys
         | 
| 1350 | 
            +
                #   An array of IP addresses that currently are blocked by the specified
         | 
| 1351 | 
            +
                #   RateBasedRule.
         | 
| 1352 | 
            +
                #   @return [Array<String>]
         | 
| 1353 | 
            +
                #
         | 
| 1354 | 
            +
                # @!attribute [rw] next_marker
         | 
| 1355 | 
            +
                #   A null value and not currently used.
         | 
| 1356 | 
            +
                #   @return [String]
         | 
| 1357 | 
            +
                #
         | 
| 1358 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleManagedKeysResponse AWS API Documentation
         | 
| 1359 | 
            +
                #
         | 
| 1360 | 
            +
                class GetRateBasedRuleManagedKeysResponse < Struct.new(
         | 
| 1361 | 
            +
                  :managed_keys,
         | 
| 1362 | 
            +
                  :next_marker)
         | 
| 1363 | 
            +
                  include Aws::Structure
         | 
| 1364 | 
            +
                end
         | 
| 1365 | 
            +
             | 
| 1366 | 
            +
                # @note When making an API call, you may pass GetRateBasedRuleRequest
         | 
| 1367 | 
            +
                #   data as a hash:
         | 
| 1368 | 
            +
                #
         | 
| 1369 | 
            +
                #       {
         | 
| 1370 | 
            +
                #         rule_id: "ResourceId", # required
         | 
| 1371 | 
            +
                #       }
         | 
| 1372 | 
            +
                #
         | 
| 1373 | 
            +
                # @!attribute [rw] rule_id
         | 
| 1374 | 
            +
                #   The `RuleId` of the RateBasedRule that you want to get. `RuleId` is
         | 
| 1375 | 
            +
                #   returned by CreateRateBasedRule and by ListRateBasedRules.
         | 
| 1376 | 
            +
                #   @return [String]
         | 
| 1377 | 
            +
                #
         | 
| 1378 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleRequest AWS API Documentation
         | 
| 1379 | 
            +
                #
         | 
| 1380 | 
            +
                class GetRateBasedRuleRequest < Struct.new(
         | 
| 1381 | 
            +
                  :rule_id)
         | 
| 1382 | 
            +
                  include Aws::Structure
         | 
| 1383 | 
            +
                end
         | 
| 1384 | 
            +
             | 
| 1385 | 
            +
                # @!attribute [rw] rule
         | 
| 1386 | 
            +
                #   Information about the RateBasedRule that you specified in the
         | 
| 1387 | 
            +
                #   `GetRateBasedRule` request.
         | 
| 1388 | 
            +
                #   @return [Types::RateBasedRule]
         | 
| 1389 | 
            +
                #
         | 
| 1390 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleResponse AWS API Documentation
         | 
| 1391 | 
            +
                #
         | 
| 1392 | 
            +
                class GetRateBasedRuleResponse < Struct.new(
         | 
| 1393 | 
            +
                  :rule)
         | 
| 1394 | 
            +
                  include Aws::Structure
         | 
| 1395 | 
            +
                end
         | 
| 1396 | 
            +
             | 
| 1198 1397 | 
             
                # @note When making an API call, you may pass GetRuleRequest
         | 
| 1199 1398 | 
             
                #   data as a hash:
         | 
| 1200 1399 | 
             
                #
         | 
| @@ -1605,14 +1804,9 @@ module Aws::WAF | |
| 1605 1804 | 
             
                # @!attribute [rw] ip_set_descriptors
         | 
| 1606 1805 | 
             
                #   The IP address type (`IPV4` or `IPV6`) and the IP address range (in
         | 
| 1607 1806 | 
             
                #   CIDR notation) that web requests originate from. If the `WebACL` is
         | 
| 1608 | 
            -
                #   associated with a CloudFront distribution | 
| 1609 | 
            -
                #    | 
| 1610 | 
            -
                #
         | 
| 1611 | 
            -
                #   * `c-ip`, if the viewer did not use an HTTP proxy or a load balancer
         | 
| 1612 | 
            -
                #     to send the request
         | 
| 1613 | 
            -
                #
         | 
| 1614 | 
            -
                #   * `x-forwarded-for`, if the viewer did use an HTTP proxy or a load
         | 
| 1615 | 
            -
                #     balancer to send the request
         | 
| 1807 | 
            +
                #   associated with a CloudFront distribution and the viewer did not use
         | 
| 1808 | 
            +
                #   an HTTP proxy or a load balancer to send the request, this is the
         | 
| 1809 | 
            +
                #   value of the c-ip field in the CloudFront access logs.
         | 
| 1616 1810 | 
             
                #   @return [Array<Types::IPSetDescriptor>]
         | 
| 1617 1811 | 
             
                #
         | 
| 1618 1812 | 
             
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/IPSet AWS API Documentation
         | 
| @@ -1836,6 +2030,58 @@ module Aws::WAF | |
| 1836 2030 | 
             
                  include Aws::Structure
         | 
| 1837 2031 | 
             
                end
         | 
| 1838 2032 |  | 
| 2033 | 
            +
                # @note When making an API call, you may pass ListRateBasedRulesRequest
         | 
| 2034 | 
            +
                #   data as a hash:
         | 
| 2035 | 
            +
                #
         | 
| 2036 | 
            +
                #       {
         | 
| 2037 | 
            +
                #         next_marker: "NextMarker",
         | 
| 2038 | 
            +
                #         limit: 1,
         | 
| 2039 | 
            +
                #       }
         | 
| 2040 | 
            +
                #
         | 
| 2041 | 
            +
                # @!attribute [rw] next_marker
         | 
| 2042 | 
            +
                #   If you specify a value for `Limit` and you have more `Rules` than
         | 
| 2043 | 
            +
                #   the value of `Limit`, AWS WAF returns a `NextMarker` value in the
         | 
| 2044 | 
            +
                #   response that allows you to list another group of `Rules`. For the
         | 
| 2045 | 
            +
                #   second and subsequent `ListRateBasedRules` requests, specify the
         | 
| 2046 | 
            +
                #   value of `NextMarker` from the previous response to get information
         | 
| 2047 | 
            +
                #   about another batch of `Rules`.
         | 
| 2048 | 
            +
                #   @return [String]
         | 
| 2049 | 
            +
                #
         | 
| 2050 | 
            +
                # @!attribute [rw] limit
         | 
| 2051 | 
            +
                #   Specifies the number of `Rules` that you want AWS WAF to return for
         | 
| 2052 | 
            +
                #   this request. If you have more `Rules` than the number that you
         | 
| 2053 | 
            +
                #   specify for `Limit`, the response includes a `NextMarker` value that
         | 
| 2054 | 
            +
                #   you can use to get another batch of `Rules`.
         | 
| 2055 | 
            +
                #   @return [Integer]
         | 
| 2056 | 
            +
                #
         | 
| 2057 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRateBasedRulesRequest AWS API Documentation
         | 
| 2058 | 
            +
                #
         | 
| 2059 | 
            +
                class ListRateBasedRulesRequest < Struct.new(
         | 
| 2060 | 
            +
                  :next_marker,
         | 
| 2061 | 
            +
                  :limit)
         | 
| 2062 | 
            +
                  include Aws::Structure
         | 
| 2063 | 
            +
                end
         | 
| 2064 | 
            +
             | 
| 2065 | 
            +
                # @!attribute [rw] next_marker
         | 
| 2066 | 
            +
                #   If you have more `Rules` than the number that you specified for
         | 
| 2067 | 
            +
                #   `Limit` in the request, the response includes a `NextMarker` value.
         | 
| 2068 | 
            +
                #   To list more `Rules`, submit another `ListRateBasedRules` request,
         | 
| 2069 | 
            +
                #   and specify the `NextMarker` value from the response in the
         | 
| 2070 | 
            +
                #   `NextMarker` value in the next request.
         | 
| 2071 | 
            +
                #   @return [String]
         | 
| 2072 | 
            +
                #
         | 
| 2073 | 
            +
                # @!attribute [rw] rules
         | 
| 2074 | 
            +
                #   An array of RuleSummary objects.
         | 
| 2075 | 
            +
                #   @return [Array<Types::RuleSummary>]
         | 
| 2076 | 
            +
                #
         | 
| 2077 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRateBasedRulesResponse AWS API Documentation
         | 
| 2078 | 
            +
                #
         | 
| 2079 | 
            +
                class ListRateBasedRulesResponse < Struct.new(
         | 
| 2080 | 
            +
                  :next_marker,
         | 
| 2081 | 
            +
                  :rules)
         | 
| 2082 | 
            +
                  include Aws::Structure
         | 
| 2083 | 
            +
                end
         | 
| 2084 | 
            +
             | 
| 1839 2085 | 
             
                # @note When making an API call, you may pass ListRulesRequest
         | 
| 1840 2086 | 
             
                #   data as a hash:
         | 
| 1841 2087 | 
             
                #
         | 
| @@ -2165,6 +2411,77 @@ module Aws::WAF | |
| 2165 2411 | 
             
                  include Aws::Structure
         | 
| 2166 2412 | 
             
                end
         | 
| 2167 2413 |  | 
| 2414 | 
            +
                # A `RateBasedRule` is identical to a regular Rule, with one addition: a
         | 
| 2415 | 
            +
                # `RateBasedRule` counts the number of requests that arrive from a
         | 
| 2416 | 
            +
                # specified IP address every five minutes. For example, based on recent
         | 
| 2417 | 
            +
                # requests that you've seen from an attacker, you might create a
         | 
| 2418 | 
            +
                # `RateBasedRule` that includes the following conditions:
         | 
| 2419 | 
            +
                #
         | 
| 2420 | 
            +
                # * The requests come from 192.0.2.44.
         | 
| 2421 | 
            +
                #
         | 
| 2422 | 
            +
                # * They contain the value `BadBot` in the `User-Agent` header.
         | 
| 2423 | 
            +
                #
         | 
| 2424 | 
            +
                # In the rule, you also define the rate limit as 15,000.
         | 
| 2425 | 
            +
                #
         | 
| 2426 | 
            +
                # Requests that meet both of these conditions and exceed 15,000 requests
         | 
| 2427 | 
            +
                # every five minutes trigger the rule's action (block or count), which
         | 
| 2428 | 
            +
                # is defined in the web ACL.
         | 
| 2429 | 
            +
                #
         | 
| 2430 | 
            +
                # @!attribute [rw] rule_id
         | 
| 2431 | 
            +
                #   A unique identifier for a `RateBasedRule`. You use `RuleId` to get
         | 
| 2432 | 
            +
                #   more information about a `RateBasedRule` (see GetRateBasedRule),
         | 
| 2433 | 
            +
                #   update a `RateBasedRule` (see UpdateRateBasedRule), insert a
         | 
| 2434 | 
            +
                #   `RateBasedRule` into a `WebACL` or delete one from a `WebACL` (see
         | 
| 2435 | 
            +
                #   UpdateWebACL), or delete a `RateBasedRule` from AWS WAF (see
         | 
| 2436 | 
            +
                #   DeleteRateBasedRule).
         | 
| 2437 | 
            +
                #   @return [String]
         | 
| 2438 | 
            +
                #
         | 
| 2439 | 
            +
                # @!attribute [rw] name
         | 
| 2440 | 
            +
                #   A friendly name or description for a `RateBasedRule`. You can't
         | 
| 2441 | 
            +
                #   change the name of a `RateBasedRule` after you create it.
         | 
| 2442 | 
            +
                #   @return [String]
         | 
| 2443 | 
            +
                #
         | 
| 2444 | 
            +
                # @!attribute [rw] metric_name
         | 
| 2445 | 
            +
                #   A friendly name or description for the metrics for a
         | 
| 2446 | 
            +
                #   `RateBasedRule`. The name can contain only alphanumeric characters
         | 
| 2447 | 
            +
                #   (A-Z, a-z, 0-9); the name can't contain whitespace. You can't
         | 
| 2448 | 
            +
                #   change the name of the metric after you create the `RateBasedRule`.
         | 
| 2449 | 
            +
                #   @return [String]
         | 
| 2450 | 
            +
                #
         | 
| 2451 | 
            +
                # @!attribute [rw] match_predicates
         | 
| 2452 | 
            +
                #   The `Predicates` object contains one `Predicate` element for each
         | 
| 2453 | 
            +
                #   ByteMatchSet, IPSet, or SqlInjectionMatchSet object that you want to
         | 
| 2454 | 
            +
                #   include in a `RateBasedRule`.
         | 
| 2455 | 
            +
                #   @return [Array<Types::Predicate>]
         | 
| 2456 | 
            +
                #
         | 
| 2457 | 
            +
                # @!attribute [rw] rate_key
         | 
| 2458 | 
            +
                #   The field that AWS WAF uses to determine if requests are likely
         | 
| 2459 | 
            +
                #   arriving from single source and thus subject to rate monitoring. The
         | 
| 2460 | 
            +
                #   only valid value for `RateKey` is `IP`. `IP` indicates that requests
         | 
| 2461 | 
            +
                #   arriving from the same IP address are subject to the `RateLimit`
         | 
| 2462 | 
            +
                #   that is specified in the `RateBasedRule`.
         | 
| 2463 | 
            +
                #   @return [String]
         | 
| 2464 | 
            +
                #
         | 
| 2465 | 
            +
                # @!attribute [rw] rate_limit
         | 
| 2466 | 
            +
                #   The maximum number of requests, which have an identical value in the
         | 
| 2467 | 
            +
                #   field specified by the `RateKey`, allowed in a five-minute period.
         | 
| 2468 | 
            +
                #   If the number of requests exceeds the `RateLimit` and the other
         | 
| 2469 | 
            +
                #   predicates specified in the rule are also met, AWS WAF triggers the
         | 
| 2470 | 
            +
                #   action that is specified for this rule.
         | 
| 2471 | 
            +
                #   @return [Integer]
         | 
| 2472 | 
            +
                #
         | 
| 2473 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RateBasedRule AWS API Documentation
         | 
| 2474 | 
            +
                #
         | 
| 2475 | 
            +
                class RateBasedRule < Struct.new(
         | 
| 2476 | 
            +
                  :rule_id,
         | 
| 2477 | 
            +
                  :name,
         | 
| 2478 | 
            +
                  :metric_name,
         | 
| 2479 | 
            +
                  :match_predicates,
         | 
| 2480 | 
            +
                  :rate_key,
         | 
| 2481 | 
            +
                  :rate_limit)
         | 
| 2482 | 
            +
                  include Aws::Structure
         | 
| 2483 | 
            +
                end
         | 
| 2484 | 
            +
             | 
| 2168 2485 | 
             
                # A combination of ByteMatchSet, IPSet, and/or SqlInjectionMatchSet
         | 
| 2169 2486 | 
             
                # objects that identify the web requests that you want to allow, block,
         | 
| 2170 2487 | 
             
                # or count. For example, you might create a `Rule` that includes the
         | 
| @@ -2951,6 +3268,71 @@ module Aws::WAF | |
| 2951 3268 | 
             
                  include Aws::Structure
         | 
| 2952 3269 | 
             
                end
         | 
| 2953 3270 |  | 
| 3271 | 
            +
                # @note When making an API call, you may pass UpdateRateBasedRuleRequest
         | 
| 3272 | 
            +
                #   data as a hash:
         | 
| 3273 | 
            +
                #
         | 
| 3274 | 
            +
                #       {
         | 
| 3275 | 
            +
                #         rule_id: "ResourceId", # required
         | 
| 3276 | 
            +
                #         change_token: "ChangeToken", # required
         | 
| 3277 | 
            +
                #         updates: [ # required
         | 
| 3278 | 
            +
                #           {
         | 
| 3279 | 
            +
                #             action: "INSERT", # required, accepts INSERT, DELETE
         | 
| 3280 | 
            +
                #             predicate: { # required
         | 
| 3281 | 
            +
                #               negated: false, # required
         | 
| 3282 | 
            +
                #               type: "IPMatch", # required, accepts IPMatch, ByteMatch, SqlInjectionMatch, SizeConstraint, XssMatch
         | 
| 3283 | 
            +
                #               data_id: "ResourceId", # required
         | 
| 3284 | 
            +
                #             },
         | 
| 3285 | 
            +
                #           },
         | 
| 3286 | 
            +
                #         ],
         | 
| 3287 | 
            +
                #         rate_limit: 1, # required
         | 
| 3288 | 
            +
                #       }
         | 
| 3289 | 
            +
                #
         | 
| 3290 | 
            +
                # @!attribute [rw] rule_id
         | 
| 3291 | 
            +
                #   The `RuleId` of the `RateBasedRule` that you want to update.
         | 
| 3292 | 
            +
                #   `RuleId` is returned by `CreateRateBasedRule` and by
         | 
| 3293 | 
            +
                #   ListRateBasedRules.
         | 
| 3294 | 
            +
                #   @return [String]
         | 
| 3295 | 
            +
                #
         | 
| 3296 | 
            +
                # @!attribute [rw] change_token
         | 
| 3297 | 
            +
                #   The value returned by the most recent call to GetChangeToken.
         | 
| 3298 | 
            +
                #   @return [String]
         | 
| 3299 | 
            +
                #
         | 
| 3300 | 
            +
                # @!attribute [rw] updates
         | 
| 3301 | 
            +
                #   An array of `RuleUpdate` objects that you want to insert into or
         | 
| 3302 | 
            +
                #   delete from a RateBasedRule.
         | 
| 3303 | 
            +
                #   @return [Array<Types::RuleUpdate>]
         | 
| 3304 | 
            +
                #
         | 
| 3305 | 
            +
                # @!attribute [rw] rate_limit
         | 
| 3306 | 
            +
                #   The maximum number of requests, which have an identical value in the
         | 
| 3307 | 
            +
                #   field specified by the `RateKey`, allowed in a five-minute period.
         | 
| 3308 | 
            +
                #   If the number of requests exceeds the `RateLimit` and the other
         | 
| 3309 | 
            +
                #   predicates specified in the rule are also met, AWS WAF triggers the
         | 
| 3310 | 
            +
                #   action that is specified for this rule.
         | 
| 3311 | 
            +
                #   @return [Integer]
         | 
| 3312 | 
            +
                #
         | 
| 3313 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRateBasedRuleRequest AWS API Documentation
         | 
| 3314 | 
            +
                #
         | 
| 3315 | 
            +
                class UpdateRateBasedRuleRequest < Struct.new(
         | 
| 3316 | 
            +
                  :rule_id,
         | 
| 3317 | 
            +
                  :change_token,
         | 
| 3318 | 
            +
                  :updates,
         | 
| 3319 | 
            +
                  :rate_limit)
         | 
| 3320 | 
            +
                  include Aws::Structure
         | 
| 3321 | 
            +
                end
         | 
| 3322 | 
            +
             | 
| 3323 | 
            +
                # @!attribute [rw] change_token
         | 
| 3324 | 
            +
                #   The `ChangeToken` that you used to submit the `UpdateRateBasedRule`
         | 
| 3325 | 
            +
                #   request. You can also use this value to query the status of the
         | 
| 3326 | 
            +
                #   request. For more information, see GetChangeTokenStatus.
         | 
| 3327 | 
            +
                #   @return [String]
         | 
| 3328 | 
            +
                #
         | 
| 3329 | 
            +
                # @see http://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRateBasedRuleResponse AWS API Documentation
         | 
| 3330 | 
            +
                #
         | 
| 3331 | 
            +
                class UpdateRateBasedRuleResponse < Struct.new(
         | 
| 3332 | 
            +
                  :change_token)
         | 
| 3333 | 
            +
                  include Aws::Structure
         | 
| 3334 | 
            +
                end
         | 
| 3335 | 
            +
             | 
| 2954 3336 | 
             
                # @note When making an API call, you may pass UpdateRuleRequest
         | 
| 2955 3337 | 
             
                #   data as a hash:
         | 
| 2956 3338 | 
             
                #
         | 
| @@ -3166,6 +3548,7 @@ module Aws::WAF | |
| 3166 3548 | 
             
                #               action: { # required
         | 
| 3167 3549 | 
             
                #                 type: "BLOCK", # required, accepts BLOCK, ALLOW, COUNT
         | 
| 3168 3550 | 
             
                #               },
         | 
| 3551 | 
            +
                #               type: "REGULAR", # accepts REGULAR, RATE_BASED
         | 
| 3169 3552 | 
             
                #             },
         | 
| 3170 3553 | 
             
                #           },
         | 
| 3171 3554 | 
             
                #         ],
         | 
| @@ -3192,7 +3575,7 @@ module Aws::WAF | |
| 3192 3575 | 
             
                #
         | 
| 3193 3576 | 
             
                #   * WebACLUpdate: Contains `Action` and `ActivatedRule`
         | 
| 3194 3577 | 
             
                #
         | 
| 3195 | 
            -
                #   * ActivatedRule: Contains `Action`, `Priority`, and ` | 
| 3578 | 
            +
                #   * ActivatedRule: Contains `Action`, `Priority`, `RuleId`, and `Type`
         | 
| 3196 3579 | 
             
                #
         | 
| 3197 3580 | 
             
                #   * WafAction: Contains `Type`
         | 
| 3198 3581 | 
             
                #   @return [Array<Types::WebACLUpdate>]
         | 
| @@ -3421,6 +3804,7 @@ module Aws::WAF | |
| 3421 3804 | 
             
                #           action: { # required
         | 
| 3422 3805 | 
             
                #             type: "BLOCK", # required, accepts BLOCK, ALLOW, COUNT
         | 
| 3423 3806 | 
             
                #           },
         | 
| 3807 | 
            +
                #           type: "REGULAR", # accepts REGULAR, RATE_BASED
         | 
| 3424 3808 | 
             
                #         },
         | 
| 3425 3809 | 
             
                #       }
         | 
| 3426 3810 | 
             
                #
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: aws-sdk-waf
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0.0. | 
| 4 | 
            +
              version: 1.0.0.rc8
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Amazon Web Services
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017- | 
| 11 | 
            +
            date: 2017-06-26 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: aws-sdk-core
         | 
| @@ -16,14 +16,14 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: 3.0.0. | 
| 19 | 
            +
                    version: 3.0.0.rc13
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 24 | 
             
                - - "~>"
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: 3.0.0. | 
| 26 | 
            +
                    version: 3.0.0.rc13
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: aws-sigv4
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         |