aws-sdk-lightsail 1.140.0 → 1.141.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8e806df52786d1b3fe79389a8b2079dc68b3af1bea14cbbe1f193e41c0fd76ad
4
- data.tar.gz: 6040587f88b4ecc8f5f25daf61bb967999c94e98419d258848152300c1591fc4
3
+ metadata.gz: 728402fc8f95b0e4281a78bd5d3529c9208f0673de999a0a96621af74b845c7d
4
+ data.tar.gz: a980ddbd0d4f054432ccc151e787632e941071196880823fc2a692543ff3aff4
5
5
  SHA512:
6
- metadata.gz: 8514e9e1e28f47799de4f27a9ebc044ec88eb151bbcb232960b0e44ee927ecbc87d9a8176bc41de233bc1075e2fe55318837fea2f7ee43d88d9efd610a0c2085
7
- data.tar.gz: 2f79ad2efd2d96ffbda6bfd2f20f10e2b2ba29257b2ca65679915d1c86c20f7973af19c104fd54142dc36347d9e1e4222e092ee69256b0cea596ae694f7a1afb
6
+ metadata.gz: aed43f840cfec37cfe1bedfcf80658ce1a722cbbf1e239a8b56d854e326e5ac702fbe2316696d13b186282fde61ee9ee6763273ba604ab9cceb52fd4f901432c
7
+ data.tar.gz: 35c4b9a84e0f21918a4f10b0e56657ff83a4e1807027a96e60a5c7ac8c56416811303cb49aba2665f280ab1492838132b641ba4c2d55867909fc2f5e0f983203
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.141.0 (2026-10-26)
5
+ ------------------
6
+
7
+ * Feature - This release adds Web Application Firewall (WAF) support for Lightsail distribution.
8
+
4
9
  1.140.0 (2026-10-21)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.140.0
1
+ 1.141.0
@@ -2438,6 +2438,40 @@ module Aws::Lightsail
2438
2438
  # to return when the origin responds with a given HTTP error code. You
2439
2439
  # can also specify the HTTP status code to send to the viewer.
2440
2440
  #
2441
+ # @option params [Boolean] :enable_waf
2442
+ # Specifies whether to enable Web Application Firewall (WAF) for the
2443
+ # distribution. WAF inspects viewer requests and blocks requests that
2444
+ # match the WAF rule groups that you enable.
2445
+ #
2446
+ # When you enable WAF without specifying the `wafRules` parameter, the
2447
+ # distribution has no WAF rule groups enabled and doesn't block any
2448
+ # requests.
2449
+ #
2450
+ # <note markdown="1"> WAF is available only for distributions that use the `medium_1_0` or
2451
+ # `large_1_0` bundle.
2452
+ #
2453
+ # </note>
2454
+ #
2455
+ # @option params [Array<Types::WafRule>] :waf_rules
2456
+ # An array of objects that describe the WAF rule groups to enable for
2457
+ # the distribution.
2458
+ #
2459
+ # The WAF rule groups that you can specify depend on the bundle of the
2460
+ # distribution:
2461
+ #
2462
+ # * `medium_1_0` – Supports the `AWSManagedRulesCommonRuleSet`,
2463
+ # `AWSManagedRulesKnownBadInputsRuleSet`, and
2464
+ # `AWSManagedRulesAnonymousIpList` rule groups.
2465
+ #
2466
+ # * `large_1_0` – Supports the rule groups for `medium_1_0`, plus
2467
+ # `AWSManagedRulesAdminProtectionRuleSet`,
2468
+ # `AWSManagedRulesSQLiRuleSet`, `AWSManagedRulesLinuxRuleSet`,
2469
+ # `AWSManagedRulesUnixRuleSet`, `AWSManagedRulesWindowsRuleSet`,
2470
+ # `AWSManagedRulesPHPRuleSet`, `AWSManagedRulesWordPressRuleSet`,
2471
+ # `AWSManagedRulesAmazonIpReputationList`,
2472
+ # `AWSManagedRulesATPRuleSet`, `AWSManagedRulesACFPRuleSet`, and
2473
+ # `AWSManagedRulesBotControlRuleSet` rule groups.
2474
+ #
2441
2475
  # @return [Types::CreateDistributionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2442
2476
  #
2443
2477
  # * {Types::CreateDistributionResult#distribution #distribution} => Types::LightsailDistribution
@@ -2502,6 +2536,34 @@ module Aws::Lightsail
2502
2536
  # error_caching_min_ttl: 1,
2503
2537
  # },
2504
2538
  # ],
2539
+ # enable_waf: false,
2540
+ # waf_rules: [
2541
+ # {
2542
+ # name: "string", # required
2543
+ # atp_config: {
2544
+ # login_path: "string",
2545
+ # payload_type: "JSON", # accepts JSON, FORM_ENCODED
2546
+ # username_field: "string",
2547
+ # password_field: "string",
2548
+ # response_inspection: {
2549
+ # success_codes: [1],
2550
+ # failure_codes: [1],
2551
+ # },
2552
+ # },
2553
+ # acfp_config: {
2554
+ # payload_type: "JSON", # accepts JSON, FORM_ENCODED
2555
+ # creation_path: "string",
2556
+ # registration_page_path: "string",
2557
+ # response_inspection: {
2558
+ # success_codes: [1],
2559
+ # failure_codes: [1],
2560
+ # },
2561
+ # },
2562
+ # bot_control_config: {
2563
+ # inspection_level: "COMMON", # accepts COMMON, TARGETED
2564
+ # },
2565
+ # },
2566
+ # ],
2505
2567
  # })
2506
2568
  #
2507
2569
  # @example Response structure
@@ -2558,6 +2620,25 @@ module Aws::Lightsail
2558
2620
  # resp.distribution.custom_error_responses[0].response_code #=> String
2559
2621
  # resp.distribution.custom_error_responses[0].response_page_path #=> String
2560
2622
  # resp.distribution.custom_error_responses[0].error_caching_min_ttl #=> Integer
2623
+ # resp.distribution.waf.is_waf_enabled #=> Boolean
2624
+ # resp.distribution.waf.waf_rules #=> Array
2625
+ # resp.distribution.waf.waf_rules[0].name #=> String
2626
+ # resp.distribution.waf.waf_rules[0].atp_config.login_path #=> String
2627
+ # resp.distribution.waf.waf_rules[0].atp_config.payload_type #=> String, one of "JSON", "FORM_ENCODED"
2628
+ # resp.distribution.waf.waf_rules[0].atp_config.username_field #=> String
2629
+ # resp.distribution.waf.waf_rules[0].atp_config.password_field #=> String
2630
+ # resp.distribution.waf.waf_rules[0].atp_config.response_inspection.success_codes #=> Array
2631
+ # resp.distribution.waf.waf_rules[0].atp_config.response_inspection.success_codes[0] #=> Integer
2632
+ # resp.distribution.waf.waf_rules[0].atp_config.response_inspection.failure_codes #=> Array
2633
+ # resp.distribution.waf.waf_rules[0].atp_config.response_inspection.failure_codes[0] #=> Integer
2634
+ # resp.distribution.waf.waf_rules[0].acfp_config.payload_type #=> String, one of "JSON", "FORM_ENCODED"
2635
+ # resp.distribution.waf.waf_rules[0].acfp_config.creation_path #=> String
2636
+ # resp.distribution.waf.waf_rules[0].acfp_config.registration_page_path #=> String
2637
+ # resp.distribution.waf.waf_rules[0].acfp_config.response_inspection.success_codes #=> Array
2638
+ # resp.distribution.waf.waf_rules[0].acfp_config.response_inspection.success_codes[0] #=> Integer
2639
+ # resp.distribution.waf.waf_rules[0].acfp_config.response_inspection.failure_codes #=> Array
2640
+ # resp.distribution.waf.waf_rules[0].acfp_config.response_inspection.failure_codes[0] #=> Integer
2641
+ # resp.distribution.waf.waf_rules[0].bot_control_config.inspection_level #=> String, one of "COMMON", "TARGETED"
2561
2642
  # resp.operation.id #=> String
2562
2643
  # resp.operation.resource_name #=> String
2563
2644
  # resp.operation.resource_type #=> String, one of "ContainerService", "Instance", "StaticIp", "KeyPair", "InstanceSnapshot", "Domain", "PeeredVpc", "LoadBalancer", "LoadBalancerTlsCertificate", "Disk", "DiskSnapshot", "RelationalDatabase", "RelationalDatabaseSnapshot", "ExportSnapshotRecord", "CloudFormationStackRecord", "Alarm", "ContactMethod", "Distribution", "Certificate", "Bucket"
@@ -7286,6 +7367,22 @@ module Aws::Lightsail
7286
7367
  #
7287
7368
  # `Unit`: The published unit is `Percent`.
7288
7369
  #
7370
+ # * <b> <code>WafAllowedRequests</code> </b> - The number of viewer
7371
+ # requests that Web Application Firewall (WAF) allowed. This metric is
7372
+ # available only when WAF is enabled for the distribution.
7373
+ #
7374
+ # `Statistics`: The most useful statistic is `Sum`.
7375
+ #
7376
+ # `Unit`: The published unit is `None`.
7377
+ #
7378
+ # * <b> <code>WafBlockedRequests</code> </b> - The number of viewer
7379
+ # requests that WAF blocked. This metric is available only when WAF is
7380
+ # enabled for the distribution.
7381
+ #
7382
+ # `Statistics`: The most useful statistic is `Sum`.
7383
+ #
7384
+ # `Unit`: The published unit is `None`.
7385
+ #
7289
7386
  # @option params [required, Time,DateTime,Date,Integer,String] :start_time
7290
7387
  # The start of the time interval for which to get metric data.
7291
7388
  #
@@ -7370,7 +7467,7 @@ module Aws::Lightsail
7370
7467
  #
7371
7468
  # resp = client.get_distribution_metric_data({
7372
7469
  # distribution_name: "ResourceName", # required
7373
- # metric_name: "Requests", # required, accepts Requests, BytesDownloaded, BytesUploaded, TotalErrorRate, Http4xxErrorRate, Http5xxErrorRate
7470
+ # metric_name: "Requests", # required, accepts Requests, BytesDownloaded, BytesUploaded, TotalErrorRate, Http4xxErrorRate, Http5xxErrorRate, WafAllowedRequests, WafBlockedRequests
7374
7471
  # start_time: Time.now, # required
7375
7472
  # end_time: Time.now, # required
7376
7473
  # period: 1, # required
@@ -7380,7 +7477,7 @@ module Aws::Lightsail
7380
7477
  #
7381
7478
  # @example Response structure
7382
7479
  #
7383
- # resp.metric_name #=> String, one of "Requests", "BytesDownloaded", "BytesUploaded", "TotalErrorRate", "Http4xxErrorRate", "Http5xxErrorRate"
7480
+ # resp.metric_name #=> String, one of "Requests", "BytesDownloaded", "BytesUploaded", "TotalErrorRate", "Http4xxErrorRate", "Http5xxErrorRate", "WafAllowedRequests", "WafBlockedRequests"
7384
7481
  # resp.metric_data #=> Array
7385
7482
  # resp.metric_data[0].average #=> Float
7386
7483
  # resp.metric_data[0].maximum #=> Float
@@ -7482,6 +7579,25 @@ module Aws::Lightsail
7482
7579
  # resp.distributions[0].custom_error_responses[0].response_code #=> String
7483
7580
  # resp.distributions[0].custom_error_responses[0].response_page_path #=> String
7484
7581
  # resp.distributions[0].custom_error_responses[0].error_caching_min_ttl #=> Integer
7582
+ # resp.distributions[0].waf.is_waf_enabled #=> Boolean
7583
+ # resp.distributions[0].waf.waf_rules #=> Array
7584
+ # resp.distributions[0].waf.waf_rules[0].name #=> String
7585
+ # resp.distributions[0].waf.waf_rules[0].atp_config.login_path #=> String
7586
+ # resp.distributions[0].waf.waf_rules[0].atp_config.payload_type #=> String, one of "JSON", "FORM_ENCODED"
7587
+ # resp.distributions[0].waf.waf_rules[0].atp_config.username_field #=> String
7588
+ # resp.distributions[0].waf.waf_rules[0].atp_config.password_field #=> String
7589
+ # resp.distributions[0].waf.waf_rules[0].atp_config.response_inspection.success_codes #=> Array
7590
+ # resp.distributions[0].waf.waf_rules[0].atp_config.response_inspection.success_codes[0] #=> Integer
7591
+ # resp.distributions[0].waf.waf_rules[0].atp_config.response_inspection.failure_codes #=> Array
7592
+ # resp.distributions[0].waf.waf_rules[0].atp_config.response_inspection.failure_codes[0] #=> Integer
7593
+ # resp.distributions[0].waf.waf_rules[0].acfp_config.payload_type #=> String, one of "JSON", "FORM_ENCODED"
7594
+ # resp.distributions[0].waf.waf_rules[0].acfp_config.creation_path #=> String
7595
+ # resp.distributions[0].waf.waf_rules[0].acfp_config.registration_page_path #=> String
7596
+ # resp.distributions[0].waf.waf_rules[0].acfp_config.response_inspection.success_codes #=> Array
7597
+ # resp.distributions[0].waf.waf_rules[0].acfp_config.response_inspection.success_codes[0] #=> Integer
7598
+ # resp.distributions[0].waf.waf_rules[0].acfp_config.response_inspection.failure_codes #=> Array
7599
+ # resp.distributions[0].waf.waf_rules[0].acfp_config.response_inspection.failure_codes[0] #=> Integer
7600
+ # resp.distributions[0].waf.waf_rules[0].bot_control_config.inspection_level #=> String, one of "COMMON", "TARGETED"
7485
7601
  # resp.next_page_token #=> String
7486
7602
  #
7487
7603
  # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetDistributions AWS API Documentation
@@ -12141,6 +12257,51 @@ module Aws::Lightsail
12141
12257
  # to return when the origin responds with a given HTTP error code. You
12142
12258
  # can also specify the HTTP status code to send to the viewer.
12143
12259
  #
12260
+ # @option params [Boolean] :enable_waf
12261
+ # Specifies whether to enable Web Application Firewall (WAF) for the
12262
+ # distribution. WAF inspects viewer requests and blocks requests that
12263
+ # match the WAF rule groups that you enable.
12264
+ #
12265
+ # When you enable WAF without specifying the `wafRules` parameter, the
12266
+ # distribution has no WAF rule groups enabled and doesn't block any
12267
+ # requests.
12268
+ #
12269
+ # <note markdown="1"> WAF is available only for distributions that use the `medium_1_0` or
12270
+ # `large_1_0` bundle.
12271
+ #
12272
+ # Setting this parameter to `false` disables WAF for the distribution
12273
+ # and removes its WAF rule groups. You must enable the WAF rule groups
12274
+ # again if you enable WAF again.
12275
+ #
12276
+ # </note>
12277
+ #
12278
+ # @option params [Array<Types::WafRule>] :waf_rules
12279
+ # An array of objects that describe the WAF rule groups to enable for
12280
+ # the distribution.
12281
+ #
12282
+ # The array that you specify replaces the existing WAF rule groups of
12283
+ # the distribution. To keep a WAF rule group enabled, include it in the
12284
+ # array. To disable all WAF rule groups, specify an empty array.
12285
+ #
12286
+ # You can specify this parameter only when WAF is enabled for the
12287
+ # distribution.
12288
+ #
12289
+ # The WAF rule groups that you can specify depend on the bundle of the
12290
+ # distribution:
12291
+ #
12292
+ # * `medium_1_0` – Supports the `AWSManagedRulesCommonRuleSet`,
12293
+ # `AWSManagedRulesKnownBadInputsRuleSet`, and
12294
+ # `AWSManagedRulesAnonymousIpList` rule groups.
12295
+ #
12296
+ # * `large_1_0` – Supports the rule groups for `medium_1_0`, plus
12297
+ # `AWSManagedRulesAdminProtectionRuleSet`,
12298
+ # `AWSManagedRulesSQLiRuleSet`, `AWSManagedRulesLinuxRuleSet`,
12299
+ # `AWSManagedRulesUnixRuleSet`, `AWSManagedRulesWindowsRuleSet`,
12300
+ # `AWSManagedRulesPHPRuleSet`, `AWSManagedRulesWordPressRuleSet`,
12301
+ # `AWSManagedRulesAmazonIpReputationList`,
12302
+ # `AWSManagedRulesATPRuleSet`, `AWSManagedRulesACFPRuleSet`, and
12303
+ # `AWSManagedRulesBotControlRuleSet` rule groups.
12304
+ #
12144
12305
  # @return [Types::UpdateDistributionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
12145
12306
  #
12146
12307
  # * {Types::UpdateDistributionResult#operation #operation} => Types::Operation
@@ -12198,6 +12359,34 @@ module Aws::Lightsail
12198
12359
  # error_caching_min_ttl: 1,
12199
12360
  # },
12200
12361
  # ],
12362
+ # enable_waf: false,
12363
+ # waf_rules: [
12364
+ # {
12365
+ # name: "string", # required
12366
+ # atp_config: {
12367
+ # login_path: "string",
12368
+ # payload_type: "JSON", # accepts JSON, FORM_ENCODED
12369
+ # username_field: "string",
12370
+ # password_field: "string",
12371
+ # response_inspection: {
12372
+ # success_codes: [1],
12373
+ # failure_codes: [1],
12374
+ # },
12375
+ # },
12376
+ # acfp_config: {
12377
+ # payload_type: "JSON", # accepts JSON, FORM_ENCODED
12378
+ # creation_path: "string",
12379
+ # registration_page_path: "string",
12380
+ # response_inspection: {
12381
+ # success_codes: [1],
12382
+ # failure_codes: [1],
12383
+ # },
12384
+ # },
12385
+ # bot_control_config: {
12386
+ # inspection_level: "COMMON", # accepts COMMON, TARGETED
12387
+ # },
12388
+ # },
12389
+ # ],
12201
12390
  # })
12202
12391
  #
12203
12392
  # @example Response structure
@@ -12797,7 +12986,7 @@ module Aws::Lightsail
12797
12986
  tracer: tracer
12798
12987
  )
12799
12988
  context[:gem_name] = 'aws-sdk-lightsail'
12800
- context[:gem_version] = '1.140.0'
12989
+ context[:gem_version] = '1.141.0'
12801
12990
  Seahorse::Client::Request.new(handlers, context)
12802
12991
  end
12803
12992
 
@@ -692,6 +692,16 @@ module Aws::Lightsail
692
692
  UpdateRelationalDatabaseRequest = Shapes::StructureShape.new(name: 'UpdateRelationalDatabaseRequest')
693
693
  UpdateRelationalDatabaseResult = Shapes::StructureShape.new(name: 'UpdateRelationalDatabaseResult')
694
694
  ViewerMinimumTlsProtocolVersionEnum = Shapes::StringShape.new(name: 'ViewerMinimumTlsProtocolVersionEnum')
695
+ WafAcfpConfig = Shapes::StructureShape.new(name: 'WafAcfpConfig')
696
+ WafAtpConfig = Shapes::StructureShape.new(name: 'WafAtpConfig')
697
+ WafBotControlConfig = Shapes::StructureShape.new(name: 'WafBotControlConfig')
698
+ WafConfig = Shapes::StructureShape.new(name: 'WafConfig')
699
+ WafInspectionLevelEnum = Shapes::StringShape.new(name: 'WafInspectionLevelEnum')
700
+ WafPayloadTypeEnum = Shapes::StringShape.new(name: 'WafPayloadTypeEnum')
701
+ WafResponseInspection = Shapes::StructureShape.new(name: 'WafResponseInspection')
702
+ WafRule = Shapes::StructureShape.new(name: 'WafRule')
703
+ WafRuleList = Shapes::ListShape.new(name: 'WafRuleList')
704
+ WafStatusCodeList = Shapes::ListShape.new(name: 'WafStatusCodeList')
695
705
  boolean = Shapes::BooleanShape.new(name: 'boolean')
696
706
  double = Shapes::FloatShape.new(name: 'double')
697
707
  float = Shapes::FloatShape.new(name: 'float')
@@ -1286,6 +1296,8 @@ module Aws::Lightsail
1286
1296
  CreateDistributionRequest.add_member(:enable_private_origin_access, Shapes::ShapeRef.new(shape: boolean, location_name: "enablePrivateOriginAccess"))
1287
1297
  CreateDistributionRequest.add_member(:default_root_object, Shapes::ShapeRef.new(shape: string, location_name: "defaultRootObject"))
1288
1298
  CreateDistributionRequest.add_member(:custom_error_responses, Shapes::ShapeRef.new(shape: DistributionCustomErrorResponseList, location_name: "customErrorResponses"))
1299
+ CreateDistributionRequest.add_member(:enable_waf, Shapes::ShapeRef.new(shape: boolean, location_name: "enableWaf"))
1300
+ CreateDistributionRequest.add_member(:waf_rules, Shapes::ShapeRef.new(shape: WafRuleList, location_name: "wafRules"))
1289
1301
  CreateDistributionRequest.struct_class = Types::CreateDistributionRequest
1290
1302
 
1291
1303
  CreateDistributionResult.add_member(:distribution, Shapes::ShapeRef.new(shape: LightsailDistribution, location_name: "distribution"))
@@ -2485,6 +2497,7 @@ module Aws::Lightsail
2485
2497
  LightsailDistribution.add_member(:viewer_minimum_tls_protocol_version, Shapes::ShapeRef.new(shape: string, location_name: "viewerMinimumTlsProtocolVersion"))
2486
2498
  LightsailDistribution.add_member(:default_root_object, Shapes::ShapeRef.new(shape: string, location_name: "defaultRootObject"))
2487
2499
  LightsailDistribution.add_member(:custom_error_responses, Shapes::ShapeRef.new(shape: DistributionCustomErrorResponseList, location_name: "customErrorResponses"))
2500
+ LightsailDistribution.add_member(:waf, Shapes::ShapeRef.new(shape: WafConfig, location_name: "waf"))
2488
2501
  LightsailDistribution.struct_class = Types::LightsailDistribution
2489
2502
 
2490
2503
  LoadBalancer.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, location_name: "name"))
@@ -3155,6 +3168,8 @@ module Aws::Lightsail
3155
3168
  UpdateDistributionRequest.add_member(:enable_private_origin_access, Shapes::ShapeRef.new(shape: boolean, location_name: "enablePrivateOriginAccess"))
3156
3169
  UpdateDistributionRequest.add_member(:default_root_object, Shapes::ShapeRef.new(shape: string, location_name: "defaultRootObject"))
3157
3170
  UpdateDistributionRequest.add_member(:custom_error_responses, Shapes::ShapeRef.new(shape: DistributionCustomErrorResponseList, location_name: "customErrorResponses"))
3171
+ UpdateDistributionRequest.add_member(:enable_waf, Shapes::ShapeRef.new(shape: boolean, location_name: "enableWaf"))
3172
+ UpdateDistributionRequest.add_member(:waf_rules, Shapes::ShapeRef.new(shape: WafRuleList, location_name: "wafRules"))
3158
3173
  UpdateDistributionRequest.struct_class = Types::UpdateDistributionRequest
3159
3174
 
3160
3175
  UpdateDistributionResult.add_member(:operation, Shapes::ShapeRef.new(shape: Operation, location_name: "operation"))
@@ -3208,6 +3223,40 @@ module Aws::Lightsail
3208
3223
  UpdateRelationalDatabaseResult.add_member(:operations, Shapes::ShapeRef.new(shape: OperationList, location_name: "operations"))
3209
3224
  UpdateRelationalDatabaseResult.struct_class = Types::UpdateRelationalDatabaseResult
3210
3225
 
3226
+ WafAcfpConfig.add_member(:payload_type, Shapes::ShapeRef.new(shape: WafPayloadTypeEnum, location_name: "payloadType"))
3227
+ WafAcfpConfig.add_member(:creation_path, Shapes::ShapeRef.new(shape: string, location_name: "creationPath"))
3228
+ WafAcfpConfig.add_member(:registration_page_path, Shapes::ShapeRef.new(shape: string, location_name: "registrationPagePath"))
3229
+ WafAcfpConfig.add_member(:response_inspection, Shapes::ShapeRef.new(shape: WafResponseInspection, location_name: "responseInspection"))
3230
+ WafAcfpConfig.struct_class = Types::WafAcfpConfig
3231
+
3232
+ WafAtpConfig.add_member(:login_path, Shapes::ShapeRef.new(shape: string, location_name: "loginPath"))
3233
+ WafAtpConfig.add_member(:payload_type, Shapes::ShapeRef.new(shape: WafPayloadTypeEnum, location_name: "payloadType"))
3234
+ WafAtpConfig.add_member(:username_field, Shapes::ShapeRef.new(shape: string, location_name: "usernameField"))
3235
+ WafAtpConfig.add_member(:password_field, Shapes::ShapeRef.new(shape: string, location_name: "passwordField"))
3236
+ WafAtpConfig.add_member(:response_inspection, Shapes::ShapeRef.new(shape: WafResponseInspection, location_name: "responseInspection"))
3237
+ WafAtpConfig.struct_class = Types::WafAtpConfig
3238
+
3239
+ WafBotControlConfig.add_member(:inspection_level, Shapes::ShapeRef.new(shape: WafInspectionLevelEnum, location_name: "inspectionLevel"))
3240
+ WafBotControlConfig.struct_class = Types::WafBotControlConfig
3241
+
3242
+ WafConfig.add_member(:is_waf_enabled, Shapes::ShapeRef.new(shape: boolean, location_name: "isWafEnabled"))
3243
+ WafConfig.add_member(:waf_rules, Shapes::ShapeRef.new(shape: WafRuleList, location_name: "wafRules"))
3244
+ WafConfig.struct_class = Types::WafConfig
3245
+
3246
+ WafResponseInspection.add_member(:success_codes, Shapes::ShapeRef.new(shape: WafStatusCodeList, location_name: "successCodes"))
3247
+ WafResponseInspection.add_member(:failure_codes, Shapes::ShapeRef.new(shape: WafStatusCodeList, location_name: "failureCodes"))
3248
+ WafResponseInspection.struct_class = Types::WafResponseInspection
3249
+
3250
+ WafRule.add_member(:name, Shapes::ShapeRef.new(shape: string, required: true, location_name: "name"))
3251
+ WafRule.add_member(:atp_config, Shapes::ShapeRef.new(shape: WafAtpConfig, location_name: "atpConfig"))
3252
+ WafRule.add_member(:acfp_config, Shapes::ShapeRef.new(shape: WafAcfpConfig, location_name: "acfpConfig"))
3253
+ WafRule.add_member(:bot_control_config, Shapes::ShapeRef.new(shape: WafBotControlConfig, location_name: "botControlConfig"))
3254
+ WafRule.struct_class = Types::WafRule
3255
+
3256
+ WafRuleList.member = Shapes::ShapeRef.new(shape: WafRule)
3257
+
3258
+ WafStatusCodeList.member = Shapes::ShapeRef.new(shape: integer)
3259
+
3211
3260
  setupHistoryList.member = Shapes::ShapeRef.new(shape: SetupHistory)
3212
3261
 
3213
3262
 
@@ -3795,6 +3795,42 @@ module Aws::Lightsail
3795
3795
  # can also specify the HTTP status code to send to the viewer.
3796
3796
  # @return [Array<Types::DistributionCustomErrorResponse>]
3797
3797
  #
3798
+ # @!attribute [rw] enable_waf
3799
+ # Specifies whether to enable Web Application Firewall (WAF) for the
3800
+ # distribution. WAF inspects viewer requests and blocks requests that
3801
+ # match the WAF rule groups that you enable.
3802
+ #
3803
+ # When you enable WAF without specifying the `wafRules` parameter, the
3804
+ # distribution has no WAF rule groups enabled and doesn't block any
3805
+ # requests.
3806
+ #
3807
+ # <note markdown="1"> WAF is available only for distributions that use the `medium_1_0` or
3808
+ # `large_1_0` bundle.
3809
+ #
3810
+ # </note>
3811
+ # @return [Boolean]
3812
+ #
3813
+ # @!attribute [rw] waf_rules
3814
+ # An array of objects that describe the WAF rule groups to enable for
3815
+ # the distribution.
3816
+ #
3817
+ # The WAF rule groups that you can specify depend on the bundle of the
3818
+ # distribution:
3819
+ #
3820
+ # * `medium_1_0` – Supports the `AWSManagedRulesCommonRuleSet`,
3821
+ # `AWSManagedRulesKnownBadInputsRuleSet`, and
3822
+ # `AWSManagedRulesAnonymousIpList` rule groups.
3823
+ #
3824
+ # * `large_1_0` – Supports the rule groups for `medium_1_0`, plus
3825
+ # `AWSManagedRulesAdminProtectionRuleSet`,
3826
+ # `AWSManagedRulesSQLiRuleSet`, `AWSManagedRulesLinuxRuleSet`,
3827
+ # `AWSManagedRulesUnixRuleSet`, `AWSManagedRulesWindowsRuleSet`,
3828
+ # `AWSManagedRulesPHPRuleSet`, `AWSManagedRulesWordPressRuleSet`,
3829
+ # `AWSManagedRulesAmazonIpReputationList`,
3830
+ # `AWSManagedRulesATPRuleSet`, `AWSManagedRulesACFPRuleSet`, and
3831
+ # `AWSManagedRulesBotControlRuleSet` rule groups.
3832
+ # @return [Array<Types::WafRule>]
3833
+ #
3798
3834
  # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateDistributionRequest AWS API Documentation
3799
3835
  #
3800
3836
  class CreateDistributionRequest < Struct.new(
@@ -3810,7 +3846,9 @@ module Aws::Lightsail
3810
3846
  :viewer_minimum_tls_protocol_version,
3811
3847
  :enable_private_origin_access,
3812
3848
  :default_root_object,
3813
- :custom_error_responses)
3849
+ :custom_error_responses,
3850
+ :enable_waf,
3851
+ :waf_rules)
3814
3852
  SENSITIVE = []
3815
3853
  include Aws::Structure
3816
3854
  end
@@ -7866,6 +7904,22 @@ module Aws::Lightsail
7866
7904
  # `Statistics`: The most useful statistic is `Average`.
7867
7905
  #
7868
7906
  # `Unit`: The published unit is `Percent`.
7907
+ #
7908
+ # * <b> <code>WafAllowedRequests</code> </b> - The number of viewer
7909
+ # requests that Web Application Firewall (WAF) allowed. This metric
7910
+ # is available only when WAF is enabled for the distribution.
7911
+ #
7912
+ # `Statistics`: The most useful statistic is `Sum`.
7913
+ #
7914
+ # `Unit`: The published unit is `None`.
7915
+ #
7916
+ # * <b> <code>WafBlockedRequests</code> </b> - The number of viewer
7917
+ # requests that WAF blocked. This metric is available only when WAF
7918
+ # is enabled for the distribution.
7919
+ #
7920
+ # `Statistics`: The most useful statistic is `Sum`.
7921
+ #
7922
+ # `Unit`: The published unit is `None`.
7869
7923
  # @return [String]
7870
7924
  #
7871
7925
  # @!attribute [rw] start_time
@@ -11422,6 +11476,11 @@ module Aws::Lightsail
11422
11476
  # configured for the distribution.
11423
11477
  # @return [Array<Types::DistributionCustomErrorResponse>]
11424
11478
  #
11479
+ # @!attribute [rw] waf
11480
+ # An object that describes the Web Application Firewall (WAF)
11481
+ # configuration of the distribution.
11482
+ # @return [Types::WafConfig]
11483
+ #
11425
11484
  # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/LightsailDistribution AWS API Documentation
11426
11485
  #
11427
11486
  class LightsailDistribution < Struct.new(
@@ -11447,7 +11506,8 @@ module Aws::Lightsail
11447
11506
  :tags,
11448
11507
  :viewer_minimum_tls_protocol_version,
11449
11508
  :default_root_object,
11450
- :custom_error_responses)
11509
+ :custom_error_responses,
11510
+ :waf)
11451
11511
  SENSITIVE = []
11452
11512
  include Aws::Structure
11453
11513
  end
@@ -15207,6 +15267,53 @@ module Aws::Lightsail
15207
15267
  # can also specify the HTTP status code to send to the viewer.
15208
15268
  # @return [Array<Types::DistributionCustomErrorResponse>]
15209
15269
  #
15270
+ # @!attribute [rw] enable_waf
15271
+ # Specifies whether to enable Web Application Firewall (WAF) for the
15272
+ # distribution. WAF inspects viewer requests and blocks requests that
15273
+ # match the WAF rule groups that you enable.
15274
+ #
15275
+ # When you enable WAF without specifying the `wafRules` parameter, the
15276
+ # distribution has no WAF rule groups enabled and doesn't block any
15277
+ # requests.
15278
+ #
15279
+ # <note markdown="1"> WAF is available only for distributions that use the `medium_1_0` or
15280
+ # `large_1_0` bundle.
15281
+ #
15282
+ # Setting this parameter to `false` disables WAF for the distribution
15283
+ # and removes its WAF rule groups. You must enable the WAF rule groups
15284
+ # again if you enable WAF again.
15285
+ #
15286
+ # </note>
15287
+ # @return [Boolean]
15288
+ #
15289
+ # @!attribute [rw] waf_rules
15290
+ # An array of objects that describe the WAF rule groups to enable for
15291
+ # the distribution.
15292
+ #
15293
+ # The array that you specify replaces the existing WAF rule groups of
15294
+ # the distribution. To keep a WAF rule group enabled, include it in
15295
+ # the array. To disable all WAF rule groups, specify an empty array.
15296
+ #
15297
+ # You can specify this parameter only when WAF is enabled for the
15298
+ # distribution.
15299
+ #
15300
+ # The WAF rule groups that you can specify depend on the bundle of the
15301
+ # distribution:
15302
+ #
15303
+ # * `medium_1_0` – Supports the `AWSManagedRulesCommonRuleSet`,
15304
+ # `AWSManagedRulesKnownBadInputsRuleSet`, and
15305
+ # `AWSManagedRulesAnonymousIpList` rule groups.
15306
+ #
15307
+ # * `large_1_0` – Supports the rule groups for `medium_1_0`, plus
15308
+ # `AWSManagedRulesAdminProtectionRuleSet`,
15309
+ # `AWSManagedRulesSQLiRuleSet`, `AWSManagedRulesLinuxRuleSet`,
15310
+ # `AWSManagedRulesUnixRuleSet`, `AWSManagedRulesWindowsRuleSet`,
15311
+ # `AWSManagedRulesPHPRuleSet`, `AWSManagedRulesWordPressRuleSet`,
15312
+ # `AWSManagedRulesAmazonIpReputationList`,
15313
+ # `AWSManagedRulesATPRuleSet`, `AWSManagedRulesACFPRuleSet`, and
15314
+ # `AWSManagedRulesBotControlRuleSet` rule groups.
15315
+ # @return [Array<Types::WafRule>]
15316
+ #
15210
15317
  # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/UpdateDistributionRequest AWS API Documentation
15211
15318
  #
15212
15319
  class UpdateDistributionRequest < Struct.new(
@@ -15221,7 +15328,9 @@ module Aws::Lightsail
15221
15328
  :use_default_certificate,
15222
15329
  :enable_private_origin_access,
15223
15330
  :default_root_object,
15224
- :custom_error_responses)
15331
+ :custom_error_responses,
15332
+ :enable_waf,
15333
+ :waf_rules)
15225
15334
  SENSITIVE = []
15226
15335
  include Aws::Structure
15227
15336
  end
@@ -15595,6 +15704,276 @@ module Aws::Lightsail
15595
15704
  include Aws::Structure
15596
15705
  end
15597
15706
 
15707
+ # Describes the configuration of the account creation fraud prevention
15708
+ # Web Application Firewall (WAF) rule group. The rule group inspects
15709
+ # account creation requests to your application.
15710
+ #
15711
+ # @!attribute [rw] payload_type
15712
+ # The content type of the request body of account creation requests.
15713
+ #
15714
+ # The following content types are possible:
15715
+ #
15716
+ # * `JSON` – The request body is in JSON format.
15717
+ #
15718
+ # * `FORM_ENCODED` – The request body is form encoded.
15719
+ # @return [String]
15720
+ #
15721
+ # @!attribute [rw] creation_path
15722
+ # The path of the endpoint that accepts completed account creation
15723
+ # forms (for example, `/signup/submit`). This endpoint must accept
15724
+ # `POST` requests.
15725
+ #
15726
+ # Constraints:
15727
+ #
15728
+ # * Must start with a forward slash (`/`).
15729
+ #
15730
+ # * Must contain from 1 to 256 characters.
15731
+ # @return [String]
15732
+ #
15733
+ # @!attribute [rw] registration_page_path
15734
+ # The path of the page that displays the account creation form (for
15735
+ # example, `/signup`).
15736
+ #
15737
+ # Constraints:
15738
+ #
15739
+ # * Must start with a forward slash (`/`).
15740
+ #
15741
+ # * Must contain from 1 to 256 characters.
15742
+ # @return [String]
15743
+ #
15744
+ # @!attribute [rw] response_inspection
15745
+ # An object that describes the HTTP status codes that your application
15746
+ # returns for successful and failed account creation attempts.
15747
+ # @return [Types::WafResponseInspection]
15748
+ #
15749
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/WafAcfpConfig AWS API Documentation
15750
+ #
15751
+ class WafAcfpConfig < Struct.new(
15752
+ :payload_type,
15753
+ :creation_path,
15754
+ :registration_page_path,
15755
+ :response_inspection)
15756
+ SENSITIVE = []
15757
+ include Aws::Structure
15758
+ end
15759
+
15760
+ # Describes the configuration of the account takeover prevention Web
15761
+ # Application Firewall (WAF) rule group. The rule group inspects login
15762
+ # requests to the login path of your application.
15763
+ #
15764
+ # @!attribute [rw] login_path
15765
+ # The path of the login endpoint of your application (for example,
15766
+ # `/login`). Login paths that start with the path that you specify are
15767
+ # a match.
15768
+ #
15769
+ # Constraints:
15770
+ #
15771
+ # * Must start with a forward slash (`/`).
15772
+ #
15773
+ # * Must contain from 1 to 256 characters.
15774
+ # @return [String]
15775
+ #
15776
+ # @!attribute [rw] payload_type
15777
+ # The content type of the request body of login requests.
15778
+ #
15779
+ # The following content types are possible:
15780
+ #
15781
+ # * `JSON` – The request body is in JSON format.
15782
+ #
15783
+ # * `FORM_ENCODED` – The request body is form encoded.
15784
+ # @return [String]
15785
+ #
15786
+ # @!attribute [rw] username_field
15787
+ # The name of the field in the request body that contains the username
15788
+ # (for example, `/username` for `JSON` or `username` for
15789
+ # `FORM_ENCODED`).
15790
+ #
15791
+ # Constraints:
15792
+ #
15793
+ # * For a `JSON` payload, must be a JSON pointer that starts with a
15794
+ # forward slash (`/`).
15795
+ #
15796
+ # * Must contain from 1 to 512 characters.
15797
+ # @return [String]
15798
+ #
15799
+ # @!attribute [rw] password_field
15800
+ # The name of the field in the request body that contains the password
15801
+ # (for example, `/password` for `JSON` or `password` for
15802
+ # `FORM_ENCODED`).
15803
+ #
15804
+ # Constraints:
15805
+ #
15806
+ # * For a `JSON` payload, must be a JSON pointer that starts with a
15807
+ # forward slash (`/`).
15808
+ #
15809
+ # * Must contain from 1 to 512 characters.
15810
+ # @return [String]
15811
+ #
15812
+ # @!attribute [rw] response_inspection
15813
+ # An object that describes the HTTP status codes that your application
15814
+ # returns for successful and failed login attempts.
15815
+ # @return [Types::WafResponseInspection]
15816
+ #
15817
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/WafAtpConfig AWS API Documentation
15818
+ #
15819
+ class WafAtpConfig < Struct.new(
15820
+ :login_path,
15821
+ :payload_type,
15822
+ :username_field,
15823
+ :password_field,
15824
+ :response_inspection)
15825
+ SENSITIVE = []
15826
+ include Aws::Structure
15827
+ end
15828
+
15829
+ # Describes the configuration of the bot control Web Application
15830
+ # Firewall (WAF) rule group.
15831
+ #
15832
+ # @!attribute [rw] inspection_level
15833
+ # The inspection level of the bot control rule group.
15834
+ #
15835
+ # The following inspection levels are possible:
15836
+ #
15837
+ # * `COMMON` – Detects a variety of bots that identify themselves,
15838
+ # such as web scraping frameworks, search engines, and automated
15839
+ # browsers.
15840
+ #
15841
+ # * `TARGETED` – Includes the `COMMON` protections, and adds detection
15842
+ # for sophisticated bots that don't identify themselves. This level
15843
+ # uses rate limiting, CAPTCHA, and background browser challenges.
15844
+ # @return [String]
15845
+ #
15846
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/WafBotControlConfig AWS API Documentation
15847
+ #
15848
+ class WafBotControlConfig < Struct.new(
15849
+ :inspection_level)
15850
+ SENSITIVE = []
15851
+ include Aws::Structure
15852
+ end
15853
+
15854
+ # Describes the Web Application Firewall (WAF) configuration of a
15855
+ # Lightsail distribution.
15856
+ #
15857
+ # @!attribute [rw] is_waf_enabled
15858
+ # Specifies whether WAF is enabled for the distribution.
15859
+ # @return [Boolean]
15860
+ #
15861
+ # @!attribute [rw] waf_rules
15862
+ # An array of objects that describe the WAF rule groups enabled for
15863
+ # the distribution.
15864
+ # @return [Array<Types::WafRule>]
15865
+ #
15866
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/WafConfig AWS API Documentation
15867
+ #
15868
+ class WafConfig < Struct.new(
15869
+ :is_waf_enabled,
15870
+ :waf_rules)
15871
+ SENSITIVE = []
15872
+ include Aws::Structure
15873
+ end
15874
+
15875
+ # Describes the HTTP status codes that your application returns to
15876
+ # indicate successful and failed attempts. The Web Application Firewall
15877
+ # (WAF) rule group uses these status codes to track successful and
15878
+ # failed attempts.
15879
+ #
15880
+ # @!attribute [rw] success_codes
15881
+ # The HTTP status codes that indicate a successful attempt (for
15882
+ # example, `200`).
15883
+ #
15884
+ # Constraints:
15885
+ #
15886
+ # * Must contain from 1 to 10 status codes.
15887
+ #
15888
+ # * Each status code must be from `0` to `999`.
15889
+ #
15890
+ # * Can't contain a status code that is also in `failureCodes`.
15891
+ # @return [Array<Integer>]
15892
+ #
15893
+ # @!attribute [rw] failure_codes
15894
+ # The HTTP status codes that indicate a failed attempt (for example,
15895
+ # `401`).
15896
+ #
15897
+ # Constraints:
15898
+ #
15899
+ # * Must contain from 1 to 10 status codes.
15900
+ #
15901
+ # * Each status code must be from `0` to `999`.
15902
+ #
15903
+ # * Can't contain a status code that is also in `successCodes`.
15904
+ # @return [Array<Integer>]
15905
+ #
15906
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/WafResponseInspection AWS API Documentation
15907
+ #
15908
+ class WafResponseInspection < Struct.new(
15909
+ :success_codes,
15910
+ :failure_codes)
15911
+ SENSITIVE = []
15912
+ include Aws::Structure
15913
+ end
15914
+
15915
+ # Describes a Web Application Firewall (WAF) rule group for a Lightsail
15916
+ # distribution. A WAF rule group is a set of rules managed by AWS. The
15917
+ # rules inspect viewer requests and block requests that match them.
15918
+ #
15919
+ # @!attribute [rw] name
15920
+ # The name of the WAF rule group (for example,
15921
+ # `AWSManagedRulesCommonRuleSet`).
15922
+ #
15923
+ # For the WAF rule groups that you can specify for each bundle, see
15924
+ # the `wafRules` parameter of the `CreateDistribution` action.
15925
+ # @return [String]
15926
+ #
15927
+ # @!attribute [rw] atp_config
15928
+ # An object that describes the configuration of the account takeover
15929
+ # prevention rule group.
15930
+ #
15931
+ # Constraints:
15932
+ #
15933
+ # * Define this parameter only when the `name` is
15934
+ # `AWSManagedRulesATPRuleSet`.
15935
+ #
15936
+ # * This parameter is required when the `name` is
15937
+ # `AWSManagedRulesATPRuleSet`.
15938
+ # @return [Types::WafAtpConfig]
15939
+ #
15940
+ # @!attribute [rw] acfp_config
15941
+ # An object that describes the configuration of the account creation
15942
+ # fraud prevention rule group.
15943
+ #
15944
+ # Constraints:
15945
+ #
15946
+ # * Define this parameter only when the `name` is
15947
+ # `AWSManagedRulesACFPRuleSet`.
15948
+ #
15949
+ # * This parameter is required when the `name` is
15950
+ # `AWSManagedRulesACFPRuleSet`.
15951
+ # @return [Types::WafAcfpConfig]
15952
+ #
15953
+ # @!attribute [rw] bot_control_config
15954
+ # An object that describes the configuration of the bot control rule
15955
+ # group.
15956
+ #
15957
+ # Constraints:
15958
+ #
15959
+ # * Define this parameter only when the `name` is
15960
+ # `AWSManagedRulesBotControlRuleSet`.
15961
+ #
15962
+ # * This parameter is required when the `name` is
15963
+ # `AWSManagedRulesBotControlRuleSet`.
15964
+ # @return [Types::WafBotControlConfig]
15965
+ #
15966
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/WafRule AWS API Documentation
15967
+ #
15968
+ class WafRule < Struct.new(
15969
+ :name,
15970
+ :atp_config,
15971
+ :acfp_config,
15972
+ :bot_control_config)
15973
+ SENSITIVE = []
15974
+ include Aws::Structure
15975
+ end
15976
+
15598
15977
  end
15599
15978
  end
15600
15979
 
@@ -54,7 +54,7 @@ module Aws::Lightsail
54
54
  autoload :EndpointProvider, 'aws-sdk-lightsail/endpoint_provider'
55
55
  autoload :Endpoints, 'aws-sdk-lightsail/endpoints'
56
56
 
57
- GEM_VERSION = '1.140.0'
57
+ GEM_VERSION = '1.141.0'
58
58
 
59
59
  end
60
60
 
data/sig/client.rbs CHANGED
@@ -424,6 +424,10 @@ module Aws
424
424
  response_page_path: ::String?,
425
425
  error_caching_min_ttl: ::Integer?
426
426
  }
427
+ ],
428
+ ?enable_waf: bool,
429
+ ?waf_rules: Array[
430
+ Params::waf_rule
427
431
  ]
428
432
  ) -> _CreateDistributionResponseSuccess
429
433
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _CreateDistributionResponseSuccess
@@ -1281,13 +1285,13 @@ module Aws
1281
1285
 
1282
1286
  interface _GetDistributionMetricDataResponseSuccess
1283
1287
  include ::Seahorse::Client::_ResponseSuccess[Types::GetDistributionMetricDataResult]
1284
- def metric_name: () -> ("Requests" | "BytesDownloaded" | "BytesUploaded" | "TotalErrorRate" | "Http4xxErrorRate" | "Http5xxErrorRate")
1288
+ def metric_name: () -> ("Requests" | "BytesDownloaded" | "BytesUploaded" | "TotalErrorRate" | "Http4xxErrorRate" | "Http5xxErrorRate" | "WafAllowedRequests" | "WafBlockedRequests")
1285
1289
  def metric_data: () -> ::Array[Types::MetricDatapoint]
1286
1290
  end
1287
1291
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Lightsail/Client.html#get_distribution_metric_data-instance_method
1288
1292
  def get_distribution_metric_data: (
1289
1293
  distribution_name: ::String,
1290
- metric_name: ("Requests" | "BytesDownloaded" | "BytesUploaded" | "TotalErrorRate" | "Http4xxErrorRate" | "Http5xxErrorRate"),
1294
+ metric_name: ("Requests" | "BytesDownloaded" | "BytesUploaded" | "TotalErrorRate" | "Http4xxErrorRate" | "Http5xxErrorRate" | "WafAllowedRequests" | "WafBlockedRequests"),
1291
1295
  start_time: ::Time,
1292
1296
  end_time: ::Time,
1293
1297
  period: ::Integer,
@@ -2138,6 +2142,10 @@ module Aws
2138
2142
  response_page_path: ::String?,
2139
2143
  error_caching_min_ttl: ::Integer?
2140
2144
  }
2145
+ ],
2146
+ ?enable_waf: bool,
2147
+ ?waf_rules: Array[
2148
+ Params::waf_rule
2141
2149
  ]
2142
2150
  ) -> _UpdateDistributionResponseSuccess
2143
2151
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _UpdateDistributionResponseSuccess
data/sig/params.rbs CHANGED
@@ -63,6 +63,36 @@ module Aws
63
63
  }?
64
64
  }
65
65
 
66
+ type waf_atp_config = {
67
+ login_path: ::String?,
68
+ payload_type: ("JSON" | "FORM_ENCODED")?,
69
+ username_field: ::String?,
70
+ password_field: ::String?,
71
+ response_inspection: {
72
+ success_codes: Array[::Integer]?,
73
+ failure_codes: Array[::Integer]?
74
+ }?
75
+ }
76
+
77
+ type waf_acfp_config = {
78
+ payload_type: ("JSON" | "FORM_ENCODED")?,
79
+ creation_path: ::String?,
80
+ registration_page_path: ::String?,
81
+ response_inspection: {
82
+ success_codes: Array[::Integer]?,
83
+ failure_codes: Array[::Integer]?
84
+ }?
85
+ }
86
+
87
+ type waf_rule = {
88
+ name: ::String,
89
+ atp_config: Params::waf_atp_config?,
90
+ acfp_config: Params::waf_acfp_config?,
91
+ bot_control_config: {
92
+ inspection_level: ("COMMON" | "TARGETED")?
93
+ }?
94
+ }
95
+
66
96
  type domain_entry = {
67
97
  id: ::String?,
68
98
  name: ::String?,
data/sig/types.rbs CHANGED
@@ -681,6 +681,8 @@ module Aws::Lightsail
681
681
  attr_accessor enable_private_origin_access: bool
682
682
  attr_accessor default_root_object: ::String
683
683
  attr_accessor custom_error_responses: ::Array[Types::DistributionCustomErrorResponse]
684
+ attr_accessor enable_waf: bool
685
+ attr_accessor waf_rules: ::Array[Types::WafRule]
684
686
  SENSITIVE: []
685
687
  end
686
688
 
@@ -1633,7 +1635,7 @@ module Aws::Lightsail
1633
1635
 
1634
1636
  class GetDistributionMetricDataRequest
1635
1637
  attr_accessor distribution_name: ::String
1636
- attr_accessor metric_name: ("Requests" | "BytesDownloaded" | "BytesUploaded" | "TotalErrorRate" | "Http4xxErrorRate" | "Http5xxErrorRate")
1638
+ attr_accessor metric_name: ("Requests" | "BytesDownloaded" | "BytesUploaded" | "TotalErrorRate" | "Http4xxErrorRate" | "Http5xxErrorRate" | "WafAllowedRequests" | "WafBlockedRequests")
1637
1639
  attr_accessor start_time: ::Time
1638
1640
  attr_accessor end_time: ::Time
1639
1641
  attr_accessor period: ::Integer
@@ -1643,7 +1645,7 @@ module Aws::Lightsail
1643
1645
  end
1644
1646
 
1645
1647
  class GetDistributionMetricDataResult
1646
- attr_accessor metric_name: ("Requests" | "BytesDownloaded" | "BytesUploaded" | "TotalErrorRate" | "Http4xxErrorRate" | "Http5xxErrorRate")
1648
+ attr_accessor metric_name: ("Requests" | "BytesDownloaded" | "BytesUploaded" | "TotalErrorRate" | "Http4xxErrorRate" | "Http5xxErrorRate" | "WafAllowedRequests" | "WafBlockedRequests")
1647
1649
  attr_accessor metric_data: ::Array[Types::MetricDatapoint]
1648
1650
  SENSITIVE: []
1649
1651
  end
@@ -2322,6 +2324,7 @@ module Aws::Lightsail
2322
2324
  attr_accessor viewer_minimum_tls_protocol_version: ::String
2323
2325
  attr_accessor default_root_object: ::String
2324
2326
  attr_accessor custom_error_responses: ::Array[Types::DistributionCustomErrorResponse]
2327
+ attr_accessor waf: Types::WafConfig
2325
2328
  SENSITIVE: []
2326
2329
  end
2327
2330
 
@@ -3136,6 +3139,8 @@ module Aws::Lightsail
3136
3139
  attr_accessor enable_private_origin_access: bool
3137
3140
  attr_accessor default_root_object: ::String
3138
3141
  attr_accessor custom_error_responses: ::Array[Types::DistributionCustomErrorResponse]
3142
+ attr_accessor enable_waf: bool
3143
+ attr_accessor waf_rules: ::Array[Types::WafRule]
3139
3144
  SENSITIVE: []
3140
3145
  end
3141
3146
 
@@ -3211,5 +3216,47 @@ module Aws::Lightsail
3211
3216
  attr_accessor operations: ::Array[Types::Operation]
3212
3217
  SENSITIVE: []
3213
3218
  end
3219
+
3220
+ class WafAcfpConfig
3221
+ attr_accessor payload_type: ("JSON" | "FORM_ENCODED")
3222
+ attr_accessor creation_path: ::String
3223
+ attr_accessor registration_page_path: ::String
3224
+ attr_accessor response_inspection: Types::WafResponseInspection
3225
+ SENSITIVE: []
3226
+ end
3227
+
3228
+ class WafAtpConfig
3229
+ attr_accessor login_path: ::String
3230
+ attr_accessor payload_type: ("JSON" | "FORM_ENCODED")
3231
+ attr_accessor username_field: ::String
3232
+ attr_accessor password_field: ::String
3233
+ attr_accessor response_inspection: Types::WafResponseInspection
3234
+ SENSITIVE: []
3235
+ end
3236
+
3237
+ class WafBotControlConfig
3238
+ attr_accessor inspection_level: ("COMMON" | "TARGETED")
3239
+ SENSITIVE: []
3240
+ end
3241
+
3242
+ class WafConfig
3243
+ attr_accessor is_waf_enabled: bool
3244
+ attr_accessor waf_rules: ::Array[Types::WafRule]
3245
+ SENSITIVE: []
3246
+ end
3247
+
3248
+ class WafResponseInspection
3249
+ attr_accessor success_codes: ::Array[::Integer]
3250
+ attr_accessor failure_codes: ::Array[::Integer]
3251
+ SENSITIVE: []
3252
+ end
3253
+
3254
+ class WafRule
3255
+ attr_accessor name: ::String
3256
+ attr_accessor atp_config: Types::WafAtpConfig
3257
+ attr_accessor acfp_config: Types::WafAcfpConfig
3258
+ attr_accessor bot_control_config: Types::WafBotControlConfig
3259
+ SENSITIVE: []
3260
+ end
3214
3261
  end
3215
3262
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-lightsail
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.140.0
4
+ version: 1.141.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services