aws-sdk-wafv2 1.8.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 61d0df9e080516330ba603b141d4b1e39ed89c6899502b9a28a3914ab49f626b
4
- data.tar.gz: 7b5207686c843b655b455d5a2f7b25226c913f0a861e52b5c58233a6b743197b
3
+ metadata.gz: 6e9d6a8e2557b51c9c3e5a4d606747891a819a20ed856947580d54188deae0d5
4
+ data.tar.gz: d601b83b2448f1f6ec020e74af995b46c1703c948a9d129444298932e2513c01
5
5
  SHA512:
6
- metadata.gz: 84ef701f5487386541c792ce0286b65de4eb8ab1084f30dcb391ecb5695aa3829d01d5f5949ed6502f14159c8eeddbe19e70c2e65e87a49fc1c182f1c3c3a483
7
- data.tar.gz: c9b89c433346bfd803051241750e173f37034a7988841354f32784b194479cff2be4a1650870bca0305ae4520c2fdfd810aa8b216a0b715567107183cc24f84f
6
+ metadata.gz: 40c7b3dfd758e3fef63bcabe75a26d430c21bade9e906a805548968f462da0202307a58e1c57d27caca3d11ae552734c6d7e0ecfa90e076422b957a9d6742003
7
+ data.tar.gz: 2baeeac2c2a2197fc4eeccd341d7c0cb36b3c129c5be33a0710b9418019d9db902c2b50f09b75209f79abeda3853c3cc3263e1a9f16f225ff3efd69cce77091f
@@ -47,6 +47,6 @@ require_relative 'aws-sdk-wafv2/customizations'
47
47
  # @service
48
48
  module Aws::WAFV2
49
49
 
50
- GEM_VERSION = '1.8.0'
50
+ GEM_VERSION = '1.9.0'
51
51
 
52
52
  end
@@ -543,6 +543,10 @@ module Aws::WAFV2
543
543
  # },
544
544
  # geo_match_statement: {
545
545
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
546
+ # forwarded_ip_config: {
547
+ # header_name: "ForwardedIPHeaderName", # required
548
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
549
+ # },
546
550
  # },
547
551
  # rule_group_reference_statement: {
548
552
  # arn: "ResourceArn", # required
@@ -554,6 +558,11 @@ module Aws::WAFV2
554
558
  # },
555
559
  # ip_set_reference_statement: {
556
560
  # arn: "ResourceArn", # required
561
+ # ip_set_forwarded_ip_config: {
562
+ # header_name: "ForwardedIPHeaderName", # required
563
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
564
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
565
+ # },
557
566
  # },
558
567
  # regex_pattern_set_reference_statement: {
559
568
  # arn: "ResourceArn", # required
@@ -584,10 +593,14 @@ module Aws::WAFV2
584
593
  # },
585
594
  # rate_based_statement: {
586
595
  # limit: 1, # required
587
- # aggregate_key_type: "IP", # required, accepts IP
596
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
588
597
  # scope_down_statement: {
589
598
  # # recursive Statement
590
599
  # },
600
+ # forwarded_ip_config: {
601
+ # header_name: "ForwardedIPHeaderName", # required
602
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
603
+ # },
591
604
  # },
592
605
  # and_statement: {
593
606
  # statements: [ # required
@@ -1045,6 +1058,10 @@ module Aws::WAFV2
1045
1058
  # },
1046
1059
  # geo_match_statement: {
1047
1060
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
1061
+ # forwarded_ip_config: {
1062
+ # header_name: "ForwardedIPHeaderName", # required
1063
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1064
+ # },
1048
1065
  # },
1049
1066
  # rule_group_reference_statement: {
1050
1067
  # arn: "ResourceArn", # required
@@ -1056,6 +1073,11 @@ module Aws::WAFV2
1056
1073
  # },
1057
1074
  # ip_set_reference_statement: {
1058
1075
  # arn: "ResourceArn", # required
1076
+ # ip_set_forwarded_ip_config: {
1077
+ # header_name: "ForwardedIPHeaderName", # required
1078
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1079
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
1080
+ # },
1059
1081
  # },
1060
1082
  # regex_pattern_set_reference_statement: {
1061
1083
  # arn: "ResourceArn", # required
@@ -1086,10 +1108,14 @@ module Aws::WAFV2
1086
1108
  # },
1087
1109
  # rate_based_statement: {
1088
1110
  # limit: 1, # required
1089
- # aggregate_key_type: "IP", # required, accepts IP
1111
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
1090
1112
  # scope_down_statement: {
1091
1113
  # # recursive Statement
1092
1114
  # },
1115
+ # forwarded_ip_config: {
1116
+ # header_name: "ForwardedIPHeaderName", # required
1117
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1118
+ # },
1093
1119
  # },
1094
1120
  # and_statement: {
1095
1121
  # statements: [ # required
@@ -1363,6 +1389,10 @@ module Aws::WAFV2
1363
1389
  # },
1364
1390
  # geo_match_statement: {
1365
1391
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
1392
+ # forwarded_ip_config: {
1393
+ # header_name: "ForwardedIPHeaderName", # required
1394
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1395
+ # },
1366
1396
  # },
1367
1397
  # rule_group_reference_statement: {
1368
1398
  # arn: "ResourceArn", # required
@@ -1374,6 +1404,11 @@ module Aws::WAFV2
1374
1404
  # },
1375
1405
  # ip_set_reference_statement: {
1376
1406
  # arn: "ResourceArn", # required
1407
+ # ip_set_forwarded_ip_config: {
1408
+ # header_name: "ForwardedIPHeaderName", # required
1409
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1410
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
1411
+ # },
1377
1412
  # },
1378
1413
  # regex_pattern_set_reference_statement: {
1379
1414
  # arn: "ResourceArn", # required
@@ -1404,10 +1439,14 @@ module Aws::WAFV2
1404
1439
  # },
1405
1440
  # rate_based_statement: {
1406
1441
  # limit: 1, # required
1407
- # aggregate_key_type: "IP", # required, accepts IP
1442
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
1408
1443
  # scope_down_statement: {
1409
1444
  # # recursive Statement
1410
1445
  # },
1446
+ # forwarded_ip_config: {
1447
+ # header_name: "ForwardedIPHeaderName", # required
1448
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1449
+ # },
1411
1450
  # },
1412
1451
  # and_statement: {
1413
1452
  # statements: [ # required
@@ -2338,10 +2377,15 @@ module Aws::WAFV2
2338
2377
  # resp.rule_group.rules[0].statement.size_constraint_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2339
2378
  # resp.rule_group.rules[0].statement.geo_match_statement.country_codes #=> Array
2340
2379
  # resp.rule_group.rules[0].statement.geo_match_statement.country_codes[0] #=> String, one of "AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CD", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KP", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MP", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "US", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW"
2380
+ # resp.rule_group.rules[0].statement.geo_match_statement.forwarded_ip_config.header_name #=> String
2381
+ # resp.rule_group.rules[0].statement.geo_match_statement.forwarded_ip_config.fallback_behavior #=> String, one of "MATCH", "NO_MATCH"
2341
2382
  # resp.rule_group.rules[0].statement.rule_group_reference_statement.arn #=> String
2342
2383
  # resp.rule_group.rules[0].statement.rule_group_reference_statement.excluded_rules #=> Array
2343
2384
  # resp.rule_group.rules[0].statement.rule_group_reference_statement.excluded_rules[0].name #=> String
2344
2385
  # resp.rule_group.rules[0].statement.ip_set_reference_statement.arn #=> String
2386
+ # resp.rule_group.rules[0].statement.ip_set_reference_statement.ip_set_forwarded_ip_config.header_name #=> String
2387
+ # resp.rule_group.rules[0].statement.ip_set_reference_statement.ip_set_forwarded_ip_config.fallback_behavior #=> String, one of "MATCH", "NO_MATCH"
2388
+ # resp.rule_group.rules[0].statement.ip_set_reference_statement.ip_set_forwarded_ip_config.position #=> String, one of "FIRST", "LAST", "ANY"
2345
2389
  # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.arn #=> String
2346
2390
  # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.single_header.name #=> String
2347
2391
  # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.single_query_argument.name #=> String
@@ -2349,8 +2393,10 @@ module Aws::WAFV2
2349
2393
  # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.text_transformations[0].priority #=> Integer
2350
2394
  # resp.rule_group.rules[0].statement.regex_pattern_set_reference_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2351
2395
  # resp.rule_group.rules[0].statement.rate_based_statement.limit #=> Integer
2352
- # resp.rule_group.rules[0].statement.rate_based_statement.aggregate_key_type #=> String, one of "IP"
2396
+ # resp.rule_group.rules[0].statement.rate_based_statement.aggregate_key_type #=> String, one of "IP", "FORWARDED_IP"
2353
2397
  # resp.rule_group.rules[0].statement.rate_based_statement.scope_down_statement #=> Types::Statement
2398
+ # resp.rule_group.rules[0].statement.rate_based_statement.forwarded_ip_config.header_name #=> String
2399
+ # resp.rule_group.rules[0].statement.rate_based_statement.forwarded_ip_config.fallback_behavior #=> String, one of "MATCH", "NO_MATCH"
2354
2400
  # resp.rule_group.rules[0].statement.and_statement.statements #=> Array
2355
2401
  # resp.rule_group.rules[0].statement.and_statement.statements[0] #=> Types::Statement
2356
2402
  # resp.rule_group.rules[0].statement.or_statement.statements #=> Array
@@ -2425,7 +2471,8 @@ module Aws::WAFV2
2425
2471
  # @option params [required, Types::TimeWindow] :time_window
2426
2472
  # The start date and time and the end date and time of the range for
2427
2473
  # which you want `GetSampledRequests` to return a sample of requests.
2428
- # Specify the date and time in the following format:
2474
+ # You must specify the times in Coordinated Universal Time (UTC) format.
2475
+ # UTC format includes the special designator, `Z`. For example,
2429
2476
  # `"2016-09-27T14:50Z"`. You can specify any time range in the previous
2430
2477
  # three hours.
2431
2478
  #
@@ -2566,10 +2613,15 @@ module Aws::WAFV2
2566
2613
  # resp.web_acl.rules[0].statement.size_constraint_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2567
2614
  # resp.web_acl.rules[0].statement.geo_match_statement.country_codes #=> Array
2568
2615
  # resp.web_acl.rules[0].statement.geo_match_statement.country_codes[0] #=> String, one of "AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CD", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KP", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MP", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "US", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW"
2616
+ # resp.web_acl.rules[0].statement.geo_match_statement.forwarded_ip_config.header_name #=> String
2617
+ # resp.web_acl.rules[0].statement.geo_match_statement.forwarded_ip_config.fallback_behavior #=> String, one of "MATCH", "NO_MATCH"
2569
2618
  # resp.web_acl.rules[0].statement.rule_group_reference_statement.arn #=> String
2570
2619
  # resp.web_acl.rules[0].statement.rule_group_reference_statement.excluded_rules #=> Array
2571
2620
  # resp.web_acl.rules[0].statement.rule_group_reference_statement.excluded_rules[0].name #=> String
2572
2621
  # resp.web_acl.rules[0].statement.ip_set_reference_statement.arn #=> String
2622
+ # resp.web_acl.rules[0].statement.ip_set_reference_statement.ip_set_forwarded_ip_config.header_name #=> String
2623
+ # resp.web_acl.rules[0].statement.ip_set_reference_statement.ip_set_forwarded_ip_config.fallback_behavior #=> String, one of "MATCH", "NO_MATCH"
2624
+ # resp.web_acl.rules[0].statement.ip_set_reference_statement.ip_set_forwarded_ip_config.position #=> String, one of "FIRST", "LAST", "ANY"
2573
2625
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.arn #=> String
2574
2626
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.single_header.name #=> String
2575
2627
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.single_query_argument.name #=> String
@@ -2577,8 +2629,10 @@ module Aws::WAFV2
2577
2629
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.text_transformations[0].priority #=> Integer
2578
2630
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2579
2631
  # resp.web_acl.rules[0].statement.rate_based_statement.limit #=> Integer
2580
- # resp.web_acl.rules[0].statement.rate_based_statement.aggregate_key_type #=> String, one of "IP"
2632
+ # resp.web_acl.rules[0].statement.rate_based_statement.aggregate_key_type #=> String, one of "IP", "FORWARDED_IP"
2581
2633
  # resp.web_acl.rules[0].statement.rate_based_statement.scope_down_statement #=> Types::Statement
2634
+ # resp.web_acl.rules[0].statement.rate_based_statement.forwarded_ip_config.header_name #=> String
2635
+ # resp.web_acl.rules[0].statement.rate_based_statement.forwarded_ip_config.fallback_behavior #=> String, one of "MATCH", "NO_MATCH"
2582
2636
  # resp.web_acl.rules[0].statement.and_statement.statements #=> Array
2583
2637
  # resp.web_acl.rules[0].statement.and_statement.statements[0] #=> Types::Statement
2584
2638
  # resp.web_acl.rules[0].statement.or_statement.statements #=> Array
@@ -2694,10 +2748,15 @@ module Aws::WAFV2
2694
2748
  # resp.web_acl.rules[0].statement.size_constraint_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2695
2749
  # resp.web_acl.rules[0].statement.geo_match_statement.country_codes #=> Array
2696
2750
  # resp.web_acl.rules[0].statement.geo_match_statement.country_codes[0] #=> String, one of "AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CD", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KP", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MP", "NO", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "US", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW"
2751
+ # resp.web_acl.rules[0].statement.geo_match_statement.forwarded_ip_config.header_name #=> String
2752
+ # resp.web_acl.rules[0].statement.geo_match_statement.forwarded_ip_config.fallback_behavior #=> String, one of "MATCH", "NO_MATCH"
2697
2753
  # resp.web_acl.rules[0].statement.rule_group_reference_statement.arn #=> String
2698
2754
  # resp.web_acl.rules[0].statement.rule_group_reference_statement.excluded_rules #=> Array
2699
2755
  # resp.web_acl.rules[0].statement.rule_group_reference_statement.excluded_rules[0].name #=> String
2700
2756
  # resp.web_acl.rules[0].statement.ip_set_reference_statement.arn #=> String
2757
+ # resp.web_acl.rules[0].statement.ip_set_reference_statement.ip_set_forwarded_ip_config.header_name #=> String
2758
+ # resp.web_acl.rules[0].statement.ip_set_reference_statement.ip_set_forwarded_ip_config.fallback_behavior #=> String, one of "MATCH", "NO_MATCH"
2759
+ # resp.web_acl.rules[0].statement.ip_set_reference_statement.ip_set_forwarded_ip_config.position #=> String, one of "FIRST", "LAST", "ANY"
2701
2760
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.arn #=> String
2702
2761
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.single_header.name #=> String
2703
2762
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.field_to_match.single_query_argument.name #=> String
@@ -2705,8 +2764,10 @@ module Aws::WAFV2
2705
2764
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.text_transformations[0].priority #=> Integer
2706
2765
  # resp.web_acl.rules[0].statement.regex_pattern_set_reference_statement.text_transformations[0].type #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
2707
2766
  # resp.web_acl.rules[0].statement.rate_based_statement.limit #=> Integer
2708
- # resp.web_acl.rules[0].statement.rate_based_statement.aggregate_key_type #=> String, one of "IP"
2767
+ # resp.web_acl.rules[0].statement.rate_based_statement.aggregate_key_type #=> String, one of "IP", "FORWARDED_IP"
2709
2768
  # resp.web_acl.rules[0].statement.rate_based_statement.scope_down_statement #=> Types::Statement
2769
+ # resp.web_acl.rules[0].statement.rate_based_statement.forwarded_ip_config.header_name #=> String
2770
+ # resp.web_acl.rules[0].statement.rate_based_statement.forwarded_ip_config.fallback_behavior #=> String, one of "MATCH", "NO_MATCH"
2710
2771
  # resp.web_acl.rules[0].statement.and_statement.statements #=> Array
2711
2772
  # resp.web_acl.rules[0].statement.and_statement.statements[0] #=> Types::Statement
2712
2773
  # resp.web_acl.rules[0].statement.or_statement.statements #=> Array
@@ -3175,7 +3236,16 @@ module Aws::WAFV2
3175
3236
  #
3176
3237
  # </note>
3177
3238
  #
3178
- # Retrieves the TagInfoForResource for the specified resource.
3239
+ # Retrieves the TagInfoForResource for the specified resource. Tags are
3240
+ # key:value pairs that you can use to categorize and manage your
3241
+ # resources, for purposes like billing. For example, you might set the
3242
+ # tag key to "customer" and the value to the customer name or ID. You
3243
+ # can specify one or more tags to add to each AWS resource, up to 50
3244
+ # tags for a resource.
3245
+ #
3246
+ # You can tag the AWS resources that you manage through AWS WAF: web
3247
+ # ACLs, rule groups, IP sets, and regex pattern sets. You can't manage
3248
+ # or view tags through the AWS WAF console.
3179
3249
  #
3180
3250
  #
3181
3251
  #
@@ -3318,6 +3388,9 @@ module Aws::WAFV2
3318
3388
  # you are operating. If you are capturing logs for Amazon
3319
3389
  # CloudFront, always create the firehose in US East (N. Virginia).
3320
3390
  #
3391
+ # Give the data firehose a name that starts with the prefix
3392
+ # `aws-waf-logs-`. For example, `aws-waf-logs-us-east-2-analytics`.
3393
+ #
3321
3394
  # <note markdown="1"> Do not create the data firehose using a `Kinesis stream` as your
3322
3395
  # source.
3323
3396
  #
@@ -3460,10 +3533,15 @@ module Aws::WAFV2
3460
3533
  # </note>
3461
3534
  #
3462
3535
  # Associates tags with the specified AWS resource. Tags are key:value
3463
- # pairs that you can associate with AWS resources. For example, the tag
3464
- # key might be "customer" and the tag value might be "companyA." You
3465
- # can specify one or more tags to add to each container. You can add up
3466
- # to 50 tags to each AWS resource.
3536
+ # pairs that you can use to categorize and manage your resources, for
3537
+ # purposes like billing. For example, you might set the tag key to
3538
+ # "customer" and the value to the customer name or ID. You can specify
3539
+ # one or more tags to add to each AWS resource, up to 50 tags for a
3540
+ # resource.
3541
+ #
3542
+ # You can tag the AWS resources that you manage through AWS WAF: web
3543
+ # ACLs, rule groups, IP sets, and regex pattern sets. You can't manage
3544
+ # or view tags through the AWS WAF console.
3467
3545
  #
3468
3546
  #
3469
3547
  #
@@ -3923,6 +4001,10 @@ module Aws::WAFV2
3923
4001
  # },
3924
4002
  # geo_match_statement: {
3925
4003
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
4004
+ # forwarded_ip_config: {
4005
+ # header_name: "ForwardedIPHeaderName", # required
4006
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
4007
+ # },
3926
4008
  # },
3927
4009
  # rule_group_reference_statement: {
3928
4010
  # arn: "ResourceArn", # required
@@ -3934,6 +4016,11 @@ module Aws::WAFV2
3934
4016
  # },
3935
4017
  # ip_set_reference_statement: {
3936
4018
  # arn: "ResourceArn", # required
4019
+ # ip_set_forwarded_ip_config: {
4020
+ # header_name: "ForwardedIPHeaderName", # required
4021
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
4022
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
4023
+ # },
3937
4024
  # },
3938
4025
  # regex_pattern_set_reference_statement: {
3939
4026
  # arn: "ResourceArn", # required
@@ -3964,10 +4051,14 @@ module Aws::WAFV2
3964
4051
  # },
3965
4052
  # rate_based_statement: {
3966
4053
  # limit: 1, # required
3967
- # aggregate_key_type: "IP", # required, accepts IP
4054
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
3968
4055
  # scope_down_statement: {
3969
4056
  # # recursive Statement
3970
4057
  # },
4058
+ # forwarded_ip_config: {
4059
+ # header_name: "ForwardedIPHeaderName", # required
4060
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
4061
+ # },
3971
4062
  # },
3972
4063
  # and_statement: {
3973
4064
  # statements: [ # required
@@ -4245,6 +4336,10 @@ module Aws::WAFV2
4245
4336
  # },
4246
4337
  # geo_match_statement: {
4247
4338
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
4339
+ # forwarded_ip_config: {
4340
+ # header_name: "ForwardedIPHeaderName", # required
4341
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
4342
+ # },
4248
4343
  # },
4249
4344
  # rule_group_reference_statement: {
4250
4345
  # arn: "ResourceArn", # required
@@ -4256,6 +4351,11 @@ module Aws::WAFV2
4256
4351
  # },
4257
4352
  # ip_set_reference_statement: {
4258
4353
  # arn: "ResourceArn", # required
4354
+ # ip_set_forwarded_ip_config: {
4355
+ # header_name: "ForwardedIPHeaderName", # required
4356
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
4357
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
4358
+ # },
4259
4359
  # },
4260
4360
  # regex_pattern_set_reference_statement: {
4261
4361
  # arn: "ResourceArn", # required
@@ -4286,10 +4386,14 @@ module Aws::WAFV2
4286
4386
  # },
4287
4387
  # rate_based_statement: {
4288
4388
  # limit: 1, # required
4289
- # aggregate_key_type: "IP", # required, accepts IP
4389
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
4290
4390
  # scope_down_statement: {
4291
4391
  # # recursive Statement
4292
4392
  # },
4393
+ # forwarded_ip_config: {
4394
+ # header_name: "ForwardedIPHeaderName", # required
4395
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
4396
+ # },
4293
4397
  # },
4294
4398
  # and_statement: {
4295
4399
  # statements: [ # required
@@ -4375,7 +4479,7 @@ module Aws::WAFV2
4375
4479
  params: params,
4376
4480
  config: config)
4377
4481
  context[:gem_name] = 'aws-sdk-wafv2'
4378
- context[:gem_version] = '1.8.0'
4482
+ context[:gem_version] = '1.9.0'
4379
4483
  Seahorse::Client::Request.new(handlers, context)
4380
4484
  end
4381
4485
 
@@ -66,11 +66,15 @@ module Aws::WAFV2
66
66
  ErrorReason = Shapes::StringShape.new(name: 'ErrorReason')
67
67
  ExcludedRule = Shapes::StructureShape.new(name: 'ExcludedRule')
68
68
  ExcludedRules = Shapes::ListShape.new(name: 'ExcludedRules')
69
+ FallbackBehavior = Shapes::StringShape.new(name: 'FallbackBehavior')
69
70
  FieldToMatch = Shapes::StructureShape.new(name: 'FieldToMatch')
70
71
  FieldToMatchData = Shapes::StringShape.new(name: 'FieldToMatchData')
71
72
  FirewallManagerRuleGroup = Shapes::StructureShape.new(name: 'FirewallManagerRuleGroup')
72
73
  FirewallManagerRuleGroups = Shapes::ListShape.new(name: 'FirewallManagerRuleGroups')
73
74
  FirewallManagerStatement = Shapes::StructureShape.new(name: 'FirewallManagerStatement')
75
+ ForwardedIPConfig = Shapes::StructureShape.new(name: 'ForwardedIPConfig')
76
+ ForwardedIPHeaderName = Shapes::StringShape.new(name: 'ForwardedIPHeaderName')
77
+ ForwardedIPPosition = Shapes::StringShape.new(name: 'ForwardedIPPosition')
74
78
  GeoMatchStatement = Shapes::StructureShape.new(name: 'GeoMatchStatement')
75
79
  GetIPSetRequest = Shapes::StructureShape.new(name: 'GetIPSetRequest')
76
80
  GetIPSetResponse = Shapes::StructureShape.new(name: 'GetIPSetResponse')
@@ -101,6 +105,7 @@ module Aws::WAFV2
101
105
  IPAddressVersion = Shapes::StringShape.new(name: 'IPAddressVersion')
102
106
  IPAddresses = Shapes::ListShape.new(name: 'IPAddresses')
103
107
  IPSet = Shapes::StructureShape.new(name: 'IPSet')
108
+ IPSetForwardedIPConfig = Shapes::StructureShape.new(name: 'IPSetForwardedIPConfig')
104
109
  IPSetReferenceStatement = Shapes::StructureShape.new(name: 'IPSetReferenceStatement')
105
110
  IPSetSummaries = Shapes::ListShape.new(name: 'IPSetSummaries')
106
111
  IPSetSummary = Shapes::StructureShape.new(name: 'IPSetSummary')
@@ -405,7 +410,12 @@ module Aws::WAFV2
405
410
  FirewallManagerStatement.add_member(:rule_group_reference_statement, Shapes::ShapeRef.new(shape: RuleGroupReferenceStatement, location_name: "RuleGroupReferenceStatement"))
406
411
  FirewallManagerStatement.struct_class = Types::FirewallManagerStatement
407
412
 
413
+ ForwardedIPConfig.add_member(:header_name, Shapes::ShapeRef.new(shape: ForwardedIPHeaderName, required: true, location_name: "HeaderName"))
414
+ ForwardedIPConfig.add_member(:fallback_behavior, Shapes::ShapeRef.new(shape: FallbackBehavior, required: true, location_name: "FallbackBehavior"))
415
+ ForwardedIPConfig.struct_class = Types::ForwardedIPConfig
416
+
408
417
  GeoMatchStatement.add_member(:country_codes, Shapes::ShapeRef.new(shape: CountryCodes, location_name: "CountryCodes"))
418
+ GeoMatchStatement.add_member(:forwarded_ip_config, Shapes::ShapeRef.new(shape: ForwardedIPConfig, location_name: "ForwardedIPConfig"))
409
419
  GeoMatchStatement.struct_class = Types::GeoMatchStatement
410
420
 
411
421
  GetIPSetRequest.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "Name"))
@@ -508,7 +518,13 @@ module Aws::WAFV2
508
518
  IPSet.add_member(:addresses, Shapes::ShapeRef.new(shape: IPAddresses, required: true, location_name: "Addresses"))
509
519
  IPSet.struct_class = Types::IPSet
510
520
 
521
+ IPSetForwardedIPConfig.add_member(:header_name, Shapes::ShapeRef.new(shape: ForwardedIPHeaderName, required: true, location_name: "HeaderName"))
522
+ IPSetForwardedIPConfig.add_member(:fallback_behavior, Shapes::ShapeRef.new(shape: FallbackBehavior, required: true, location_name: "FallbackBehavior"))
523
+ IPSetForwardedIPConfig.add_member(:position, Shapes::ShapeRef.new(shape: ForwardedIPPosition, required: true, location_name: "Position"))
524
+ IPSetForwardedIPConfig.struct_class = Types::IPSetForwardedIPConfig
525
+
511
526
  IPSetReferenceStatement.add_member(:arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ARN"))
527
+ IPSetReferenceStatement.add_member(:ip_set_forwarded_ip_config, Shapes::ShapeRef.new(shape: IPSetForwardedIPConfig, location_name: "IPSetForwardedIPConfig"))
512
528
  IPSetReferenceStatement.struct_class = Types::IPSetReferenceStatement
513
529
 
514
530
  IPSetSummaries.member = Shapes::ShapeRef.new(shape: IPSetSummary)
@@ -642,6 +658,7 @@ module Aws::WAFV2
642
658
  RateBasedStatement.add_member(:limit, Shapes::ShapeRef.new(shape: RateLimit, required: true, location_name: "Limit"))
643
659
  RateBasedStatement.add_member(:aggregate_key_type, Shapes::ShapeRef.new(shape: RateBasedStatementAggregateKeyType, required: true, location_name: "AggregateKeyType"))
644
660
  RateBasedStatement.add_member(:scope_down_statement, Shapes::ShapeRef.new(shape: Statement, location_name: "ScopeDownStatement"))
661
+ RateBasedStatement.add_member(:forwarded_ip_config, Shapes::ShapeRef.new(shape: ForwardedIPConfig, location_name: "ForwardedIPConfig"))
645
662
  RateBasedStatement.struct_class = Types::RateBasedStatement
646
663
 
647
664
  RateBasedStatementManagedKeysIPSet.add_member(:ip_address_version, Shapes::ShapeRef.new(shape: IPAddressVersion, location_name: "IPAddressVersion"))
@@ -1380,6 +1397,7 @@ module Aws::WAFV2
1380
1397
  o.errors << Shapes::ShapeRef.new(shape: WAFServiceLinkedRoleErrorException)
1381
1398
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
1382
1399
  o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
1400
+ o.errors << Shapes::ShapeRef.new(shape: WAFLimitsExceededException)
1383
1401
  end)
1384
1402
 
1385
1403
  api.add_operation(:put_permission_policy, Seahorse::Model::Operation.new.tap do |o|
@@ -185,6 +185,10 @@ module Aws::WAFV2
185
185
  # },
186
186
  # geo_match_statement: {
187
187
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
188
+ # forwarded_ip_config: {
189
+ # header_name: "ForwardedIPHeaderName", # required
190
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
191
+ # },
188
192
  # },
189
193
  # rule_group_reference_statement: {
190
194
  # arn: "ResourceArn", # required
@@ -196,6 +200,11 @@ module Aws::WAFV2
196
200
  # },
197
201
  # ip_set_reference_statement: {
198
202
  # arn: "ResourceArn", # required
203
+ # ip_set_forwarded_ip_config: {
204
+ # header_name: "ForwardedIPHeaderName", # required
205
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
206
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
207
+ # },
199
208
  # },
200
209
  # regex_pattern_set_reference_statement: {
201
210
  # arn: "ResourceArn", # required
@@ -226,10 +235,14 @@ module Aws::WAFV2
226
235
  # },
227
236
  # rate_based_statement: {
228
237
  # limit: 1, # required
229
- # aggregate_key_type: "IP", # required, accepts IP
238
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
230
239
  # scope_down_statement: {
231
240
  # # recursive Statement
232
241
  # },
242
+ # forwarded_ip_config: {
243
+ # header_name: "ForwardedIPHeaderName", # required
244
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
245
+ # },
233
246
  # },
234
247
  # and_statement: {
235
248
  # statements: { # required
@@ -629,6 +642,10 @@ module Aws::WAFV2
629
642
  # },
630
643
  # geo_match_statement: {
631
644
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
645
+ # forwarded_ip_config: {
646
+ # header_name: "ForwardedIPHeaderName", # required
647
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
648
+ # },
632
649
  # },
633
650
  # rule_group_reference_statement: {
634
651
  # arn: "ResourceArn", # required
@@ -640,6 +657,11 @@ module Aws::WAFV2
640
657
  # },
641
658
  # ip_set_reference_statement: {
642
659
  # arn: "ResourceArn", # required
660
+ # ip_set_forwarded_ip_config: {
661
+ # header_name: "ForwardedIPHeaderName", # required
662
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
663
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
664
+ # },
643
665
  # },
644
666
  # regex_pattern_set_reference_statement: {
645
667
  # arn: "ResourceArn", # required
@@ -670,10 +692,14 @@ module Aws::WAFV2
670
692
  # },
671
693
  # rate_based_statement: {
672
694
  # limit: 1, # required
673
- # aggregate_key_type: "IP", # required, accepts IP
695
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
674
696
  # scope_down_statement: {
675
697
  # # recursive Statement
676
698
  # },
699
+ # forwarded_ip_config: {
700
+ # header_name: "ForwardedIPHeaderName", # required
701
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
702
+ # },
677
703
  # },
678
704
  # and_statement: {
679
705
  # statements: [ # required
@@ -1104,6 +1130,10 @@ module Aws::WAFV2
1104
1130
  # },
1105
1131
  # geo_match_statement: {
1106
1132
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
1133
+ # forwarded_ip_config: {
1134
+ # header_name: "ForwardedIPHeaderName", # required
1135
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1136
+ # },
1107
1137
  # },
1108
1138
  # rule_group_reference_statement: {
1109
1139
  # arn: "ResourceArn", # required
@@ -1115,6 +1145,11 @@ module Aws::WAFV2
1115
1145
  # },
1116
1146
  # ip_set_reference_statement: {
1117
1147
  # arn: "ResourceArn", # required
1148
+ # ip_set_forwarded_ip_config: {
1149
+ # header_name: "ForwardedIPHeaderName", # required
1150
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1151
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
1152
+ # },
1118
1153
  # },
1119
1154
  # regex_pattern_set_reference_statement: {
1120
1155
  # arn: "ResourceArn", # required
@@ -1145,10 +1180,14 @@ module Aws::WAFV2
1145
1180
  # },
1146
1181
  # rate_based_statement: {
1147
1182
  # limit: 1, # required
1148
- # aggregate_key_type: "IP", # required, accepts IP
1183
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
1149
1184
  # scope_down_statement: {
1150
1185
  # # recursive Statement
1151
1186
  # },
1187
+ # forwarded_ip_config: {
1188
+ # header_name: "ForwardedIPHeaderName", # required
1189
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1190
+ # },
1152
1191
  # },
1153
1192
  # and_statement: {
1154
1193
  # statements: [ # required
@@ -1429,6 +1468,10 @@ module Aws::WAFV2
1429
1468
  # },
1430
1469
  # geo_match_statement: {
1431
1470
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
1471
+ # forwarded_ip_config: {
1472
+ # header_name: "ForwardedIPHeaderName", # required
1473
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1474
+ # },
1432
1475
  # },
1433
1476
  # rule_group_reference_statement: {
1434
1477
  # arn: "ResourceArn", # required
@@ -1440,6 +1483,11 @@ module Aws::WAFV2
1440
1483
  # },
1441
1484
  # ip_set_reference_statement: {
1442
1485
  # arn: "ResourceArn", # required
1486
+ # ip_set_forwarded_ip_config: {
1487
+ # header_name: "ForwardedIPHeaderName", # required
1488
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1489
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
1490
+ # },
1443
1491
  # },
1444
1492
  # regex_pattern_set_reference_statement: {
1445
1493
  # arn: "ResourceArn", # required
@@ -1470,10 +1518,14 @@ module Aws::WAFV2
1470
1518
  # },
1471
1519
  # rate_based_statement: {
1472
1520
  # limit: 1, # required
1473
- # aggregate_key_type: "IP", # required, accepts IP
1521
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
1474
1522
  # scope_down_statement: {
1475
1523
  # # recursive Statement
1476
1524
  # },
1525
+ # forwarded_ip_config: {
1526
+ # header_name: "ForwardedIPHeaderName", # required
1527
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
1528
+ # },
1477
1529
  # },
1478
1530
  # and_statement: {
1479
1531
  # statements: [ # required
@@ -2367,6 +2419,69 @@ module Aws::WAFV2
2367
2419
  include Aws::Structure
2368
2420
  end
2369
2421
 
2422
+ # The configuration for inspecting IP addresses in an HTTP header that
2423
+ # you specify, instead of using the IP address that's reported by the
2424
+ # web request origin. Commonly, this is the X-Forwarded-For (XFF)
2425
+ # header, but you can specify any header name.
2426
+ #
2427
+ # <note markdown="1"> If the specified header isn't present in the request, AWS WAF
2428
+ # doesn't apply the rule to the web request at all.
2429
+ #
2430
+ # </note>
2431
+ #
2432
+ # This configuration is used for GeoMatchStatement and
2433
+ # RateBasedStatement. For IPSetReferenceStatement, use
2434
+ # IPSetForwardedIPConfig instead.
2435
+ #
2436
+ # AWS WAF only evaluates the first IP address found in the specified
2437
+ # HTTP header.
2438
+ #
2439
+ # @note When making an API call, you may pass ForwardedIPConfig
2440
+ # data as a hash:
2441
+ #
2442
+ # {
2443
+ # header_name: "ForwardedIPHeaderName", # required
2444
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
2445
+ # }
2446
+ #
2447
+ # @!attribute [rw] header_name
2448
+ # The name of the HTTP header to use for the IP address. For example,
2449
+ # to use the X-Forwarded-For (XFF) header, set this to
2450
+ # `X-Forwarded-For`.
2451
+ #
2452
+ # <note markdown="1"> If the specified header isn't present in the request, AWS WAF
2453
+ # doesn't apply the rule to the web request at all.
2454
+ #
2455
+ # </note>
2456
+ # @return [String]
2457
+ #
2458
+ # @!attribute [rw] fallback_behavior
2459
+ # The match status to assign to the web request if the request
2460
+ # doesn't have a valid IP address in the specified position.
2461
+ #
2462
+ # <note markdown="1"> If the specified header isn't present in the request, AWS WAF
2463
+ # doesn't apply the rule to the web request at all.
2464
+ #
2465
+ # </note>
2466
+ #
2467
+ # You can specify the following fallback behaviors:
2468
+ #
2469
+ # * MATCH - Treat the web request as matching the rule statement. AWS
2470
+ # WAF applies the rule action to the request.
2471
+ #
2472
+ # * NO\_MATCH - Treat the web request as not matching the rule
2473
+ # statement.
2474
+ # @return [String]
2475
+ #
2476
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ForwardedIPConfig AWS API Documentation
2477
+ #
2478
+ class ForwardedIPConfig < Struct.new(
2479
+ :header_name,
2480
+ :fallback_behavior)
2481
+ SENSITIVE = []
2482
+ include Aws::Structure
2483
+ end
2484
+
2370
2485
  # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
2371
2486
  # in November, 2019. For information, including how to migrate your AWS
2372
2487
  # WAF resources from the prior release, see the [AWS WAF Developer
@@ -2386,6 +2501,10 @@ module Aws::WAFV2
2386
2501
  #
2387
2502
  # {
2388
2503
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
2504
+ # forwarded_ip_config: {
2505
+ # header_name: "ForwardedIPHeaderName", # required
2506
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
2507
+ # },
2389
2508
  # }
2390
2509
  #
2391
2510
  # @!attribute [rw] country_codes
@@ -2394,10 +2513,23 @@ module Aws::WAFV2
2394
2513
  # standard.
2395
2514
  # @return [Array<String>]
2396
2515
  #
2516
+ # @!attribute [rw] forwarded_ip_config
2517
+ # The configuration for inspecting IP addresses in an HTTP header that
2518
+ # you specify, instead of using the IP address that's reported by the
2519
+ # web request origin. Commonly, this is the X-Forwarded-For (XFF)
2520
+ # header, but you can specify any header name.
2521
+ #
2522
+ # <note markdown="1"> If the specified header isn't present in the request, AWS WAF
2523
+ # doesn't apply the rule to the web request at all.
2524
+ #
2525
+ # </note>
2526
+ # @return [Types::ForwardedIPConfig]
2527
+ #
2397
2528
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GeoMatchStatement AWS API Documentation
2398
2529
  #
2399
2530
  class GeoMatchStatement < Struct.new(
2400
- :country_codes)
2531
+ :country_codes,
2532
+ :forwarded_ip_config)
2401
2533
  SENSITIVE = []
2402
2534
  include Aws::Structure
2403
2535
  end
@@ -2778,9 +2910,10 @@ module Aws::WAFV2
2778
2910
  # @!attribute [rw] time_window
2779
2911
  # The start date and time and the end date and time of the range for
2780
2912
  # which you want `GetSampledRequests` to return a sample of requests.
2781
- # Specify the date and time in the following format:
2782
- # `"2016-09-27T14:50Z"`. You can specify any time range in the
2783
- # previous three hours.
2913
+ # You must specify the times in Coordinated Universal Time (UTC)
2914
+ # format. UTC format includes the special designator, `Z`. For
2915
+ # example, `"2016-09-27T14:50Z"`. You can specify any time range in
2916
+ # the previous three hours.
2784
2917
  # @return [Types::TimeWindow]
2785
2918
  #
2786
2919
  # @!attribute [rw] max_items
@@ -2820,7 +2953,8 @@ module Aws::WAFV2
2820
2953
  # `GetSampledRequests` request. However, if your AWS resource received
2821
2954
  # more than 5,000 requests during the time range that you specified in
2822
2955
  # the request, `GetSampledRequests` returns the time range for the
2823
- # first 5,000 requests.
2956
+ # first 5,000 requests. Times are in Coordinated Universal Time (UTC)
2957
+ # format.
2824
2958
  # @return [Types::TimeWindow]
2825
2959
  #
2826
2960
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetSampledRequestsResponse AWS API Documentation
@@ -3130,6 +3264,88 @@ module Aws::WAFV2
3130
3264
  include Aws::Structure
3131
3265
  end
3132
3266
 
3267
+ # The configuration for inspecting IP addresses in an HTTP header that
3268
+ # you specify, instead of using the IP address that's reported by the
3269
+ # web request origin. Commonly, this is the X-Forwarded-For (XFF)
3270
+ # header, but you can specify any header name.
3271
+ #
3272
+ # <note markdown="1"> If the specified header isn't present in the request, AWS WAF
3273
+ # doesn't apply the rule to the web request at all.
3274
+ #
3275
+ # </note>
3276
+ #
3277
+ # This configuration is used only for IPSetReferenceStatement. For
3278
+ # GeoMatchStatement and RateBasedStatement, use ForwardedIPConfig
3279
+ # instead.
3280
+ #
3281
+ # @note When making an API call, you may pass IPSetForwardedIPConfig
3282
+ # data as a hash:
3283
+ #
3284
+ # {
3285
+ # header_name: "ForwardedIPHeaderName", # required
3286
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
3287
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
3288
+ # }
3289
+ #
3290
+ # @!attribute [rw] header_name
3291
+ # The name of the HTTP header to use for the IP address. For example,
3292
+ # to use the X-Forwarded-For (XFF) header, set this to
3293
+ # `X-Forwarded-For`.
3294
+ #
3295
+ # <note markdown="1"> If the specified header isn't present in the request, AWS WAF
3296
+ # doesn't apply the rule to the web request at all.
3297
+ #
3298
+ # </note>
3299
+ # @return [String]
3300
+ #
3301
+ # @!attribute [rw] fallback_behavior
3302
+ # The match status to assign to the web request if the request
3303
+ # doesn't have a valid IP address in the specified position.
3304
+ #
3305
+ # <note markdown="1"> If the specified header isn't present in the request, AWS WAF
3306
+ # doesn't apply the rule to the web request at all.
3307
+ #
3308
+ # </note>
3309
+ #
3310
+ # You can specify the following fallback behaviors:
3311
+ #
3312
+ # * MATCH - Treat the web request as matching the rule statement. AWS
3313
+ # WAF applies the rule action to the request.
3314
+ #
3315
+ # * NO\_MATCH - Treat the web request as not matching the rule
3316
+ # statement.
3317
+ # @return [String]
3318
+ #
3319
+ # @!attribute [rw] position
3320
+ # The position in the header to search for the IP address. The header
3321
+ # can contain IP addresses of the original client and also of proxies.
3322
+ # For example, the header value could be `10.1.1.1, 127.0.0.0,
3323
+ # 10.10.10.10` where the first IP address identifies the original
3324
+ # client and the rest identify proxies that the request went through.
3325
+ #
3326
+ # The options for this setting are the following:
3327
+ #
3328
+ # * FIRST - Inspect the first IP address in the list of IP addresses
3329
+ # in the header. This is usually the client's original IP.
3330
+ #
3331
+ # * LAST - Inspect the last IP address in the list of IP addresses in
3332
+ # the header.
3333
+ #
3334
+ # * ANY - Inspect all IP addresses in the header for a match. If the
3335
+ # header contains more than 10 IP addresses, AWS WAF inspects the
3336
+ # last 10.
3337
+ # @return [String]
3338
+ #
3339
+ # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/IPSetForwardedIPConfig AWS API Documentation
3340
+ #
3341
+ class IPSetForwardedIPConfig < Struct.new(
3342
+ :header_name,
3343
+ :fallback_behavior,
3344
+ :position)
3345
+ SENSITIVE = []
3346
+ include Aws::Structure
3347
+ end
3348
+
3133
3349
  # <note markdown="1"> This is the latest version of **AWS WAF**, named AWS WAFV2, released
3134
3350
  # in November, 2019. For information, including how to migrate your AWS
3135
3351
  # WAF resources from the prior release, see the [AWS WAF Developer
@@ -3156,6 +3372,11 @@ module Aws::WAFV2
3156
3372
  #
3157
3373
  # {
3158
3374
  # arn: "ResourceArn", # required
3375
+ # ip_set_forwarded_ip_config: {
3376
+ # header_name: "ForwardedIPHeaderName", # required
3377
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
3378
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
3379
+ # },
3159
3380
  # }
3160
3381
  #
3161
3382
  # @!attribute [rw] arn
@@ -3163,10 +3384,23 @@ module Aws::WAFV2
3163
3384
  # references.
3164
3385
  # @return [String]
3165
3386
  #
3387
+ # @!attribute [rw] ip_set_forwarded_ip_config
3388
+ # The configuration for inspecting IP addresses in an HTTP header that
3389
+ # you specify, instead of using the IP address that's reported by the
3390
+ # web request origin. Commonly, this is the X-Forwarded-For (XFF)
3391
+ # header, but you can specify any header name.
3392
+ #
3393
+ # <note markdown="1"> If the specified header isn't present in the request, AWS WAF
3394
+ # doesn't apply the rule to the web request at all.
3395
+ #
3396
+ # </note>
3397
+ # @return [Types::IPSetForwardedIPConfig]
3398
+ #
3166
3399
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/IPSetReferenceStatement AWS API Documentation
3167
3400
  #
3168
3401
  class IPSetReferenceStatement < Struct.new(
3169
- :arn)
3402
+ :arn,
3403
+ :ip_set_forwarded_ip_config)
3170
3404
  SENSITIVE = []
3171
3405
  include Aws::Structure
3172
3406
  end
@@ -4089,6 +4323,10 @@ module Aws::WAFV2
4089
4323
  # },
4090
4324
  # geo_match_statement: {
4091
4325
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
4326
+ # forwarded_ip_config: {
4327
+ # header_name: "ForwardedIPHeaderName", # required
4328
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
4329
+ # },
4092
4330
  # },
4093
4331
  # rule_group_reference_statement: {
4094
4332
  # arn: "ResourceArn", # required
@@ -4100,6 +4338,11 @@ module Aws::WAFV2
4100
4338
  # },
4101
4339
  # ip_set_reference_statement: {
4102
4340
  # arn: "ResourceArn", # required
4341
+ # ip_set_forwarded_ip_config: {
4342
+ # header_name: "ForwardedIPHeaderName", # required
4343
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
4344
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
4345
+ # },
4103
4346
  # },
4104
4347
  # regex_pattern_set_reference_statement: {
4105
4348
  # arn: "ResourceArn", # required
@@ -4130,10 +4373,14 @@ module Aws::WAFV2
4130
4373
  # },
4131
4374
  # rate_based_statement: {
4132
4375
  # limit: 1, # required
4133
- # aggregate_key_type: "IP", # required, accepts IP
4376
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
4134
4377
  # scope_down_statement: {
4135
4378
  # # recursive Statement
4136
4379
  # },
4380
+ # forwarded_ip_config: {
4381
+ # header_name: "ForwardedIPHeaderName", # required
4382
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
4383
+ # },
4137
4384
  # },
4138
4385
  # and_statement: {
4139
4386
  # statements: [ # required
@@ -4309,6 +4556,10 @@ module Aws::WAFV2
4309
4556
  # },
4310
4557
  # geo_match_statement: {
4311
4558
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
4559
+ # forwarded_ip_config: {
4560
+ # header_name: "ForwardedIPHeaderName", # required
4561
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
4562
+ # },
4312
4563
  # },
4313
4564
  # rule_group_reference_statement: {
4314
4565
  # arn: "ResourceArn", # required
@@ -4320,6 +4571,11 @@ module Aws::WAFV2
4320
4571
  # },
4321
4572
  # ip_set_reference_statement: {
4322
4573
  # arn: "ResourceArn", # required
4574
+ # ip_set_forwarded_ip_config: {
4575
+ # header_name: "ForwardedIPHeaderName", # required
4576
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
4577
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
4578
+ # },
4323
4579
  # },
4324
4580
  # regex_pattern_set_reference_statement: {
4325
4581
  # arn: "ResourceArn", # required
@@ -4350,10 +4606,14 @@ module Aws::WAFV2
4350
4606
  # },
4351
4607
  # rate_based_statement: {
4352
4608
  # limit: 1, # required
4353
- # aggregate_key_type: "IP", # required, accepts IP
4609
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
4354
4610
  # scope_down_statement: {
4355
4611
  # # recursive Statement
4356
4612
  # },
4613
+ # forwarded_ip_config: {
4614
+ # header_name: "ForwardedIPHeaderName", # required
4615
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
4616
+ # },
4357
4617
  # },
4358
4618
  # and_statement: {
4359
4619
  # statements: { # required
@@ -4616,7 +4876,7 @@ module Aws::WAFV2
4616
4876
  #
4617
4877
  # {
4618
4878
  # limit: 1, # required
4619
- # aggregate_key_type: "IP", # required, accepts IP
4879
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
4620
4880
  # scope_down_statement: {
4621
4881
  # byte_match_statement: {
4622
4882
  # search_string: "data", # required
@@ -4728,6 +4988,10 @@ module Aws::WAFV2
4728
4988
  # },
4729
4989
  # geo_match_statement: {
4730
4990
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
4991
+ # forwarded_ip_config: {
4992
+ # header_name: "ForwardedIPHeaderName", # required
4993
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
4994
+ # },
4731
4995
  # },
4732
4996
  # rule_group_reference_statement: {
4733
4997
  # arn: "ResourceArn", # required
@@ -4739,6 +5003,11 @@ module Aws::WAFV2
4739
5003
  # },
4740
5004
  # ip_set_reference_statement: {
4741
5005
  # arn: "ResourceArn", # required
5006
+ # ip_set_forwarded_ip_config: {
5007
+ # header_name: "ForwardedIPHeaderName", # required
5008
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
5009
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
5010
+ # },
4742
5011
  # },
4743
5012
  # regex_pattern_set_reference_statement: {
4744
5013
  # arn: "ResourceArn", # required
@@ -4769,10 +5038,14 @@ module Aws::WAFV2
4769
5038
  # },
4770
5039
  # rate_based_statement: {
4771
5040
  # limit: 1, # required
4772
- # aggregate_key_type: "IP", # required, accepts IP
5041
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
4773
5042
  # scope_down_statement: {
4774
5043
  # # recursive Statement
4775
5044
  # },
5045
+ # forwarded_ip_config: {
5046
+ # header_name: "ForwardedIPHeaderName", # required
5047
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
5048
+ # },
4776
5049
  # },
4777
5050
  # and_statement: {
4778
5051
  # statements: [ # required
@@ -4803,18 +5076,28 @@ module Aws::WAFV2
4803
5076
  # ],
4804
5077
  # },
4805
5078
  # },
5079
+ # forwarded_ip_config: {
5080
+ # header_name: "ForwardedIPHeaderName", # required
5081
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
5082
+ # },
4806
5083
  # }
4807
5084
  #
4808
5085
  # @!attribute [rw] limit
4809
5086
  # The limit on requests per 5-minute period for a single originating
4810
- # IP address. If the statement includes a `ScopDownStatement`, this
5087
+ # IP address. If the statement includes a `ScopeDownStatement`, this
4811
5088
  # limit is applied only to the requests that match the statement.
4812
5089
  # @return [Integer]
4813
5090
  #
4814
5091
  # @!attribute [rw] aggregate_key_type
4815
- # Setting that indicates how to aggregate the request counts.
4816
- # Currently, you must set this to `IP`. The request counts are
4817
- # aggregated on IP addresses.
5092
+ # Setting that indicates how to aggregate the request counts. The
5093
+ # options are the following:
5094
+ #
5095
+ # * IP - Aggregate the request counts on the IP address from the web
5096
+ # request origin.
5097
+ #
5098
+ # * FORWARDED\_IP - Aggregate the request counts on the first IP
5099
+ # address in an HTTP header. If you use this, configure the
5100
+ # `ForwardedIPConfig`, to specify the header to use.
4818
5101
  # @return [String]
4819
5102
  #
4820
5103
  # @!attribute [rw] scope_down_statement
@@ -4824,12 +5107,27 @@ module Aws::WAFV2
4824
5107
  # this scope-down statement.
4825
5108
  # @return [Types::Statement]
4826
5109
  #
5110
+ # @!attribute [rw] forwarded_ip_config
5111
+ # The configuration for inspecting IP addresses in an HTTP header that
5112
+ # you specify, instead of using the IP address that's reported by the
5113
+ # web request origin. Commonly, this is the X-Forwarded-For (XFF)
5114
+ # header, but you can specify any header name.
5115
+ #
5116
+ # <note markdown="1"> If the specified header isn't present in the request, AWS WAF
5117
+ # doesn't apply the rule to the web request at all.
5118
+ #
5119
+ # </note>
5120
+ #
5121
+ # This is required if `AggregateKeyType` is set to `FORWARDED_IP`.
5122
+ # @return [Types::ForwardedIPConfig]
5123
+ #
4827
5124
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/RateBasedStatement AWS API Documentation
4828
5125
  #
4829
5126
  class RateBasedStatement < Struct.new(
4830
5127
  :limit,
4831
5128
  :aggregate_key_type,
4832
- :scope_down_statement)
5129
+ :scope_down_statement,
5130
+ :forwarded_ip_config)
4833
5131
  SENSITIVE = []
4834
5132
  include Aws::Structure
4835
5133
  end
@@ -5228,6 +5526,10 @@ module Aws::WAFV2
5228
5526
  # },
5229
5527
  # geo_match_statement: {
5230
5528
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
5529
+ # forwarded_ip_config: {
5530
+ # header_name: "ForwardedIPHeaderName", # required
5531
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
5532
+ # },
5231
5533
  # },
5232
5534
  # rule_group_reference_statement: {
5233
5535
  # arn: "ResourceArn", # required
@@ -5239,6 +5541,11 @@ module Aws::WAFV2
5239
5541
  # },
5240
5542
  # ip_set_reference_statement: {
5241
5543
  # arn: "ResourceArn", # required
5544
+ # ip_set_forwarded_ip_config: {
5545
+ # header_name: "ForwardedIPHeaderName", # required
5546
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
5547
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
5548
+ # },
5242
5549
  # },
5243
5550
  # regex_pattern_set_reference_statement: {
5244
5551
  # arn: "ResourceArn", # required
@@ -5269,10 +5576,14 @@ module Aws::WAFV2
5269
5576
  # },
5270
5577
  # rate_based_statement: {
5271
5578
  # limit: 1, # required
5272
- # aggregate_key_type: "IP", # required, accepts IP
5579
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
5273
5580
  # scope_down_statement: {
5274
5581
  # # recursive Statement
5275
5582
  # },
5583
+ # forwarded_ip_config: {
5584
+ # header_name: "ForwardedIPHeaderName", # required
5585
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
5586
+ # },
5276
5587
  # },
5277
5588
  # and_statement: {
5278
5589
  # statements: [ # required
@@ -6106,6 +6417,10 @@ module Aws::WAFV2
6106
6417
  # },
6107
6418
  # geo_match_statement: {
6108
6419
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
6420
+ # forwarded_ip_config: {
6421
+ # header_name: "ForwardedIPHeaderName", # required
6422
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
6423
+ # },
6109
6424
  # },
6110
6425
  # rule_group_reference_statement: {
6111
6426
  # arn: "ResourceArn", # required
@@ -6117,6 +6432,11 @@ module Aws::WAFV2
6117
6432
  # },
6118
6433
  # ip_set_reference_statement: {
6119
6434
  # arn: "ResourceArn", # required
6435
+ # ip_set_forwarded_ip_config: {
6436
+ # header_name: "ForwardedIPHeaderName", # required
6437
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
6438
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
6439
+ # },
6120
6440
  # },
6121
6441
  # regex_pattern_set_reference_statement: {
6122
6442
  # arn: "ResourceArn", # required
@@ -6147,7 +6467,7 @@ module Aws::WAFV2
6147
6467
  # },
6148
6468
  # rate_based_statement: {
6149
6469
  # limit: 1, # required
6150
- # aggregate_key_type: "IP", # required, accepts IP
6470
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
6151
6471
  # scope_down_statement: {
6152
6472
  # byte_match_statement: {
6153
6473
  # search_string: "data", # required
@@ -6259,6 +6579,10 @@ module Aws::WAFV2
6259
6579
  # },
6260
6580
  # geo_match_statement: {
6261
6581
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
6582
+ # forwarded_ip_config: {
6583
+ # header_name: "ForwardedIPHeaderName", # required
6584
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
6585
+ # },
6262
6586
  # },
6263
6587
  # rule_group_reference_statement: {
6264
6588
  # arn: "ResourceArn", # required
@@ -6270,6 +6594,11 @@ module Aws::WAFV2
6270
6594
  # },
6271
6595
  # ip_set_reference_statement: {
6272
6596
  # arn: "ResourceArn", # required
6597
+ # ip_set_forwarded_ip_config: {
6598
+ # header_name: "ForwardedIPHeaderName", # required
6599
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
6600
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
6601
+ # },
6273
6602
  # },
6274
6603
  # regex_pattern_set_reference_statement: {
6275
6604
  # arn: "ResourceArn", # required
@@ -6330,6 +6659,10 @@ module Aws::WAFV2
6330
6659
  # ],
6331
6660
  # },
6332
6661
  # },
6662
+ # forwarded_ip_config: {
6663
+ # header_name: "ForwardedIPHeaderName", # required
6664
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
6665
+ # },
6333
6666
  # },
6334
6667
  # and_statement: {
6335
6668
  # statements: [ # required
@@ -6444,6 +6777,10 @@ module Aws::WAFV2
6444
6777
  # },
6445
6778
  # geo_match_statement: {
6446
6779
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
6780
+ # forwarded_ip_config: {
6781
+ # header_name: "ForwardedIPHeaderName", # required
6782
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
6783
+ # },
6447
6784
  # },
6448
6785
  # rule_group_reference_statement: {
6449
6786
  # arn: "ResourceArn", # required
@@ -6455,6 +6792,11 @@ module Aws::WAFV2
6455
6792
  # },
6456
6793
  # ip_set_reference_statement: {
6457
6794
  # arn: "ResourceArn", # required
6795
+ # ip_set_forwarded_ip_config: {
6796
+ # header_name: "ForwardedIPHeaderName", # required
6797
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
6798
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
6799
+ # },
6458
6800
  # },
6459
6801
  # regex_pattern_set_reference_statement: {
6460
6802
  # arn: "ResourceArn", # required
@@ -6485,10 +6827,14 @@ module Aws::WAFV2
6485
6827
  # },
6486
6828
  # rate_based_statement: {
6487
6829
  # limit: 1, # required
6488
- # aggregate_key_type: "IP", # required, accepts IP
6830
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
6489
6831
  # scope_down_statement: {
6490
6832
  # # recursive Statement
6491
6833
  # },
6834
+ # forwarded_ip_config: {
6835
+ # header_name: "ForwardedIPHeaderName", # required
6836
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
6837
+ # },
6492
6838
  # },
6493
6839
  # and_statement: {
6494
6840
  # # recursive AndStatement
@@ -6628,6 +6974,10 @@ module Aws::WAFV2
6628
6974
  # },
6629
6975
  # geo_match_statement: {
6630
6976
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
6977
+ # forwarded_ip_config: {
6978
+ # header_name: "ForwardedIPHeaderName", # required
6979
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
6980
+ # },
6631
6981
  # },
6632
6982
  # rule_group_reference_statement: {
6633
6983
  # arn: "ResourceArn", # required
@@ -6639,6 +6989,11 @@ module Aws::WAFV2
6639
6989
  # },
6640
6990
  # ip_set_reference_statement: {
6641
6991
  # arn: "ResourceArn", # required
6992
+ # ip_set_forwarded_ip_config: {
6993
+ # header_name: "ForwardedIPHeaderName", # required
6994
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
6995
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
6996
+ # },
6642
6997
  # },
6643
6998
  # regex_pattern_set_reference_statement: {
6644
6999
  # arn: "ResourceArn", # required
@@ -6669,10 +7024,14 @@ module Aws::WAFV2
6669
7024
  # },
6670
7025
  # rate_based_statement: {
6671
7026
  # limit: 1, # required
6672
- # aggregate_key_type: "IP", # required, accepts IP
7027
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
6673
7028
  # scope_down_statement: {
6674
7029
  # # recursive Statement
6675
7030
  # },
7031
+ # forwarded_ip_config: {
7032
+ # header_name: "ForwardedIPHeaderName", # required
7033
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
7034
+ # },
6676
7035
  # },
6677
7036
  # and_statement: {
6678
7037
  # statements: { # required
@@ -6811,6 +7170,10 @@ module Aws::WAFV2
6811
7170
  # },
6812
7171
  # geo_match_statement: {
6813
7172
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
7173
+ # forwarded_ip_config: {
7174
+ # header_name: "ForwardedIPHeaderName", # required
7175
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
7176
+ # },
6814
7177
  # },
6815
7178
  # rule_group_reference_statement: {
6816
7179
  # arn: "ResourceArn", # required
@@ -6822,6 +7185,11 @@ module Aws::WAFV2
6822
7185
  # },
6823
7186
  # ip_set_reference_statement: {
6824
7187
  # arn: "ResourceArn", # required
7188
+ # ip_set_forwarded_ip_config: {
7189
+ # header_name: "ForwardedIPHeaderName", # required
7190
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
7191
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
7192
+ # },
6825
7193
  # },
6826
7194
  # regex_pattern_set_reference_statement: {
6827
7195
  # arn: "ResourceArn", # required
@@ -6852,10 +7220,14 @@ module Aws::WAFV2
6852
7220
  # },
6853
7221
  # rate_based_statement: {
6854
7222
  # limit: 1, # required
6855
- # aggregate_key_type: "IP", # required, accepts IP
7223
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
6856
7224
  # scope_down_statement: {
6857
7225
  # # recursive Statement
6858
7226
  # },
7227
+ # forwarded_ip_config: {
7228
+ # header_name: "ForwardedIPHeaderName", # required
7229
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
7230
+ # },
6859
7231
  # },
6860
7232
  # and_statement: {
6861
7233
  # statements: [ # required
@@ -7079,12 +7451,19 @@ module Aws::WAFV2
7079
7451
  #
7080
7452
  # </note>
7081
7453
  #
7082
- # A collection of key:value pairs associated with an AWS resource. The
7083
- # key:value pair can be anything you define. Typically, the tag key
7084
- # represents a category (such as "environment") and the tag value
7085
- # represents a specific value within that category (such as "test,"
7086
- # "development," or "production"). You can add up to 50 tags to each
7087
- # AWS resource.
7454
+ # A tag associated with an AWS resource. Tags are key:value pairs that
7455
+ # you can use to categorize and manage your resources, for purposes like
7456
+ # billing or other management. Typically, the tag key represents a
7457
+ # category, such as "environment", and the tag value represents a
7458
+ # specific value within that category, such as "test,"
7459
+ # "development," or "production". Or you might set the tag key to
7460
+ # "customer" and the value to the customer name or ID. You can specify
7461
+ # one or more tags to add to each AWS resource, up to 50 tags for a
7462
+ # resource.
7463
+ #
7464
+ # You can tag the AWS resources that you manage through AWS WAF: web
7465
+ # ACLs, rule groups, IP sets, and regex pattern sets. You can't manage
7466
+ # or view tags through the AWS WAF console.
7088
7467
  #
7089
7468
  #
7090
7469
  #
@@ -7126,7 +7505,19 @@ module Aws::WAFV2
7126
7505
  #
7127
7506
  # </note>
7128
7507
  #
7129
- # The collection of tagging definitions for an AWS resource.
7508
+ # The collection of tagging definitions for an AWS resource. Tags are
7509
+ # key:value pairs that you can use to categorize and manage your
7510
+ # resources, for purposes like billing or other management. Typically,
7511
+ # the tag key represents a category, such as "environment", and the
7512
+ # tag value represents a specific value within that category, such as
7513
+ # "test," "development," or "production". Or you might set the tag
7514
+ # key to "customer" and the value to the customer name or ID. You can
7515
+ # specify one or more tags to add to each AWS resource, up to 50 tags
7516
+ # for a resource.
7517
+ #
7518
+ # You can tag the AWS resources that you manage through AWS WAF: web
7519
+ # ACLs, rule groups, IP sets, and regex pattern sets. You can't manage
7520
+ # or view tags through the AWS WAF console.
7130
7521
  #
7131
7522
  #
7132
7523
  #
@@ -7305,6 +7696,11 @@ module Aws::WAFV2
7305
7696
  # specify the time range for which you want AWS WAF to return a sample
7306
7697
  # of web requests.
7307
7698
  #
7699
+ # You must specify the times in Coordinated Universal Time (UTC) format.
7700
+ # UTC format includes the special designator, `Z`. For example,
7701
+ # `"2016-09-27T14:50Z"`. You can specify any time range in the previous
7702
+ # three hours.
7703
+ #
7308
7704
  # In a GetSampledRequests response, the `StartTime` and `EndTime`
7309
7705
  # objects specify the time range for which AWS WAF actually returned a
7310
7706
  # sample of web requests. AWS WAF gets the specified number of requests
@@ -7329,17 +7725,19 @@ module Aws::WAFV2
7329
7725
  # @!attribute [rw] start_time
7330
7726
  # The beginning of the time range from which you want
7331
7727
  # `GetSampledRequests` to return a sample of the requests that your
7332
- # AWS resource received. Specify the date and time in the following
7333
- # format: `"2016-09-27T14:50Z"`. You can specify any time range in the
7334
- # previous three hours.
7728
+ # AWS resource received. You must specify the times in Coordinated
7729
+ # Universal Time (UTC) format. UTC format includes the special
7730
+ # designator, `Z`. For example, `"2016-09-27T14:50Z"`. You can specify
7731
+ # any time range in the previous three hours.
7335
7732
  # @return [Time]
7336
7733
  #
7337
7734
  # @!attribute [rw] end_time
7338
7735
  # The end of the time range from which you want `GetSampledRequests`
7339
7736
  # to return a sample of the requests that your AWS resource received.
7340
- # Specify the date and time in the following format:
7341
- # `"2016-09-27T14:50Z"`. You can specify any time range in the
7342
- # previous three hours.
7737
+ # You must specify the times in Coordinated Universal Time (UTC)
7738
+ # format. UTC format includes the special designator, `Z`. For
7739
+ # example, `"2016-09-27T14:50Z"`. You can specify any time range in
7740
+ # the previous three hours.
7343
7741
  # @return [Time]
7344
7742
  #
7345
7743
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/TimeWindow AWS API Documentation
@@ -7708,6 +8106,10 @@ module Aws::WAFV2
7708
8106
  # },
7709
8107
  # geo_match_statement: {
7710
8108
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
8109
+ # forwarded_ip_config: {
8110
+ # header_name: "ForwardedIPHeaderName", # required
8111
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
8112
+ # },
7711
8113
  # },
7712
8114
  # rule_group_reference_statement: {
7713
8115
  # arn: "ResourceArn", # required
@@ -7719,6 +8121,11 @@ module Aws::WAFV2
7719
8121
  # },
7720
8122
  # ip_set_reference_statement: {
7721
8123
  # arn: "ResourceArn", # required
8124
+ # ip_set_forwarded_ip_config: {
8125
+ # header_name: "ForwardedIPHeaderName", # required
8126
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
8127
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
8128
+ # },
7722
8129
  # },
7723
8130
  # regex_pattern_set_reference_statement: {
7724
8131
  # arn: "ResourceArn", # required
@@ -7749,10 +8156,14 @@ module Aws::WAFV2
7749
8156
  # },
7750
8157
  # rate_based_statement: {
7751
8158
  # limit: 1, # required
7752
- # aggregate_key_type: "IP", # required, accepts IP
8159
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
7753
8160
  # scope_down_statement: {
7754
8161
  # # recursive Statement
7755
8162
  # },
8163
+ # forwarded_ip_config: {
8164
+ # header_name: "ForwardedIPHeaderName", # required
8165
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
8166
+ # },
7756
8167
  # },
7757
8168
  # and_statement: {
7758
8169
  # statements: [ # required
@@ -8023,6 +8434,10 @@ module Aws::WAFV2
8023
8434
  # },
8024
8435
  # geo_match_statement: {
8025
8436
  # country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
8437
+ # forwarded_ip_config: {
8438
+ # header_name: "ForwardedIPHeaderName", # required
8439
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
8440
+ # },
8026
8441
  # },
8027
8442
  # rule_group_reference_statement: {
8028
8443
  # arn: "ResourceArn", # required
@@ -8034,6 +8449,11 @@ module Aws::WAFV2
8034
8449
  # },
8035
8450
  # ip_set_reference_statement: {
8036
8451
  # arn: "ResourceArn", # required
8452
+ # ip_set_forwarded_ip_config: {
8453
+ # header_name: "ForwardedIPHeaderName", # required
8454
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
8455
+ # position: "FIRST", # required, accepts FIRST, LAST, ANY
8456
+ # },
8037
8457
  # },
8038
8458
  # regex_pattern_set_reference_statement: {
8039
8459
  # arn: "ResourceArn", # required
@@ -8064,10 +8484,14 @@ module Aws::WAFV2
8064
8484
  # },
8065
8485
  # rate_based_statement: {
8066
8486
  # limit: 1, # required
8067
- # aggregate_key_type: "IP", # required, accepts IP
8487
+ # aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
8068
8488
  # scope_down_statement: {
8069
8489
  # # recursive Statement
8070
8490
  # },
8491
+ # forwarded_ip_config: {
8492
+ # header_name: "ForwardedIPHeaderName", # required
8493
+ # fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
8494
+ # },
8071
8495
  # },
8072
8496
  # and_statement: {
8073
8497
  # statements: [ # required
@@ -8279,11 +8703,12 @@ module Aws::WAFV2
8279
8703
  # @return [Boolean]
8280
8704
  #
8281
8705
  # @!attribute [rw] metric_name
8282
- # A name of the CloudWatch metric. The name can contain only
8283
- # alphanumeric characters (A-Z, a-z, 0-9), with length from one to 128
8284
- # characters. It can't contain whitespace or metric names reserved
8285
- # for AWS WAF, for example "All" and "Default\_Action." You can't
8286
- # change a `MetricName` after you create a `VisibilityConfig`.
8706
+ # A name of the CloudWatch metric. The name can contain only the
8707
+ # characters: A-Z, a-z, 0-9, - (hyphen), and \_ (underscore). The name
8708
+ # can be from one to 128 characters long. It can't contain whitespace
8709
+ # or metric names reserved for AWS WAF, for example "All" and
8710
+ # "Default\_Action." You can't change a `MetricName` after you
8711
+ # create a `VisibilityConfig`.
8287
8712
  # @return [String]
8288
8713
  #
8289
8714
  # @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/VisibilityConfig AWS API Documentation