aws-sdk-lightsail 1.140.0 → 1.142.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: 3f818dad8b10e8b931c3dd8710354bc41fca15d4ec7392bac1d06edbc01b0ade
4
+ data.tar.gz: 4aca56e28cf4e7d5facd63357c7cc8c6d4ef0582f5dff89bc3aa3274c1202d78
5
5
  SHA512:
6
- metadata.gz: 8514e9e1e28f47799de4f27a9ebc044ec88eb151bbcb232960b0e44ee927ecbc87d9a8176bc41de233bc1075e2fe55318837fea2f7ee43d88d9efd610a0c2085
7
- data.tar.gz: 2f79ad2efd2d96ffbda6bfd2f20f10e2b2ba29257b2ca65679915d1c86c20f7973af19c104fd54142dc36347d9e1e4222e092ee69256b0cea596ae694f7a1afb
6
+ metadata.gz: 0f9fafbc758c47af5dd6cf1797262acfc0bb9a72503e73c929cd0e2efb803d979bda648a11c2194ba234d7fb1895956e4635f5ed453085044d7d53ba39b91337
7
+ data.tar.gz: 8427615b412f471f759dee29f9dea6164fe72ee625ff19b54bd41db31208d3faa9c8a9ef474f023e2c71cd63aa4ee3464314b52dab3d1bfab9aba6aee4f32556
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.142.0 (2026-10-27)
5
+ ------------------
6
+
7
+ * Feature - Added the attributeUpdates parameter to the Lightsail StartInstance API, which allows customers to update the attributes of a stopped instance when starting it.
8
+
9
+ 1.141.0 (2026-10-26)
10
+ ------------------
11
+
12
+ * Feature - This release adds Web Application Firewall (WAF) support for Lightsail distribution.
13
+
4
14
  1.140.0 (2026-10-21)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.140.0
1
+ 1.142.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
@@ -11179,6 +11295,10 @@ module Aws::Lightsail
11179
11295
  # @option params [required, String] :instance_name
11180
11296
  # The name of the instance (a virtual private server) to start.
11181
11297
  #
11298
+ # @option params [Types::InstanceAttributeUpdates] :attribute_updates
11299
+ # An object that describes the attributes to update on the instance
11300
+ # before it starts.
11301
+ #
11182
11302
  # @return [Types::StartInstanceResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
11183
11303
  #
11184
11304
  # * {Types::StartInstanceResult#operations #operations} => Array&lt;Types::Operation&gt;
@@ -11187,6 +11307,9 @@ module Aws::Lightsail
11187
11307
  #
11188
11308
  # resp = client.start_instance({
11189
11309
  # instance_name: "ResourceName", # required
11310
+ # attribute_updates: {
11311
+ # bundle_id: "NonEmptyString",
11312
+ # },
11190
11313
  # })
11191
11314
  #
11192
11315
  # @example Response structure
@@ -12141,6 +12264,51 @@ module Aws::Lightsail
12141
12264
  # to return when the origin responds with a given HTTP error code. You
12142
12265
  # can also specify the HTTP status code to send to the viewer.
12143
12266
  #
12267
+ # @option params [Boolean] :enable_waf
12268
+ # Specifies whether to enable Web Application Firewall (WAF) for the
12269
+ # distribution. WAF inspects viewer requests and blocks requests that
12270
+ # match the WAF rule groups that you enable.
12271
+ #
12272
+ # When you enable WAF without specifying the `wafRules` parameter, the
12273
+ # distribution has no WAF rule groups enabled and doesn't block any
12274
+ # requests.
12275
+ #
12276
+ # <note markdown="1"> WAF is available only for distributions that use the `medium_1_0` or
12277
+ # `large_1_0` bundle.
12278
+ #
12279
+ # Setting this parameter to `false` disables WAF for the distribution
12280
+ # and removes its WAF rule groups. You must enable the WAF rule groups
12281
+ # again if you enable WAF again.
12282
+ #
12283
+ # </note>
12284
+ #
12285
+ # @option params [Array<Types::WafRule>] :waf_rules
12286
+ # An array of objects that describe the WAF rule groups to enable for
12287
+ # the distribution.
12288
+ #
12289
+ # The array that you specify replaces the existing WAF rule groups of
12290
+ # the distribution. To keep a WAF rule group enabled, include it in the
12291
+ # array. To disable all WAF rule groups, specify an empty array.
12292
+ #
12293
+ # You can specify this parameter only when WAF is enabled for the
12294
+ # distribution.
12295
+ #
12296
+ # The WAF rule groups that you can specify depend on the bundle of the
12297
+ # distribution:
12298
+ #
12299
+ # * `medium_1_0` – Supports the `AWSManagedRulesCommonRuleSet`,
12300
+ # `AWSManagedRulesKnownBadInputsRuleSet`, and
12301
+ # `AWSManagedRulesAnonymousIpList` rule groups.
12302
+ #
12303
+ # * `large_1_0` – Supports the rule groups for `medium_1_0`, plus
12304
+ # `AWSManagedRulesAdminProtectionRuleSet`,
12305
+ # `AWSManagedRulesSQLiRuleSet`, `AWSManagedRulesLinuxRuleSet`,
12306
+ # `AWSManagedRulesUnixRuleSet`, `AWSManagedRulesWindowsRuleSet`,
12307
+ # `AWSManagedRulesPHPRuleSet`, `AWSManagedRulesWordPressRuleSet`,
12308
+ # `AWSManagedRulesAmazonIpReputationList`,
12309
+ # `AWSManagedRulesATPRuleSet`, `AWSManagedRulesACFPRuleSet`, and
12310
+ # `AWSManagedRulesBotControlRuleSet` rule groups.
12311
+ #
12144
12312
  # @return [Types::UpdateDistributionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
12145
12313
  #
12146
12314
  # * {Types::UpdateDistributionResult#operation #operation} => Types::Operation
@@ -12198,6 +12366,34 @@ module Aws::Lightsail
12198
12366
  # error_caching_min_ttl: 1,
12199
12367
  # },
12200
12368
  # ],
12369
+ # enable_waf: false,
12370
+ # waf_rules: [
12371
+ # {
12372
+ # name: "string", # required
12373
+ # atp_config: {
12374
+ # login_path: "string",
12375
+ # payload_type: "JSON", # accepts JSON, FORM_ENCODED
12376
+ # username_field: "string",
12377
+ # password_field: "string",
12378
+ # response_inspection: {
12379
+ # success_codes: [1],
12380
+ # failure_codes: [1],
12381
+ # },
12382
+ # },
12383
+ # acfp_config: {
12384
+ # payload_type: "JSON", # accepts JSON, FORM_ENCODED
12385
+ # creation_path: "string",
12386
+ # registration_page_path: "string",
12387
+ # response_inspection: {
12388
+ # success_codes: [1],
12389
+ # failure_codes: [1],
12390
+ # },
12391
+ # },
12392
+ # bot_control_config: {
12393
+ # inspection_level: "COMMON", # accepts COMMON, TARGETED
12394
+ # },
12395
+ # },
12396
+ # ],
12201
12397
  # })
12202
12398
  #
12203
12399
  # @example Response structure
@@ -12797,7 +12993,7 @@ module Aws::Lightsail
12797
12993
  tracer: tracer
12798
12994
  )
12799
12995
  context[:gem_name] = 'aws-sdk-lightsail'
12800
- context[:gem_version] = '1.140.0'
12996
+ context[:gem_version] = '1.142.0'
12801
12997
  Seahorse::Client::Request.new(handlers, context)
12802
12998
  end
12803
12999
 
@@ -446,6 +446,7 @@ module Aws::Lightsail
446
446
  Instance = Shapes::StructureShape.new(name: 'Instance')
447
447
  InstanceAccessDetails = Shapes::StructureShape.new(name: 'InstanceAccessDetails')
448
448
  InstanceAccessProtocol = Shapes::StringShape.new(name: 'InstanceAccessProtocol')
449
+ InstanceAttributeUpdates = Shapes::StructureShape.new(name: 'InstanceAttributeUpdates')
449
450
  InstanceEntry = Shapes::StructureShape.new(name: 'InstanceEntry')
450
451
  InstanceEntryList = Shapes::ListShape.new(name: 'InstanceEntryList')
451
452
  InstanceHardware = Shapes::StructureShape.new(name: 'InstanceHardware')
@@ -692,6 +693,16 @@ module Aws::Lightsail
692
693
  UpdateRelationalDatabaseRequest = Shapes::StructureShape.new(name: 'UpdateRelationalDatabaseRequest')
693
694
  UpdateRelationalDatabaseResult = Shapes::StructureShape.new(name: 'UpdateRelationalDatabaseResult')
694
695
  ViewerMinimumTlsProtocolVersionEnum = Shapes::StringShape.new(name: 'ViewerMinimumTlsProtocolVersionEnum')
696
+ WafAcfpConfig = Shapes::StructureShape.new(name: 'WafAcfpConfig')
697
+ WafAtpConfig = Shapes::StructureShape.new(name: 'WafAtpConfig')
698
+ WafBotControlConfig = Shapes::StructureShape.new(name: 'WafBotControlConfig')
699
+ WafConfig = Shapes::StructureShape.new(name: 'WafConfig')
700
+ WafInspectionLevelEnum = Shapes::StringShape.new(name: 'WafInspectionLevelEnum')
701
+ WafPayloadTypeEnum = Shapes::StringShape.new(name: 'WafPayloadTypeEnum')
702
+ WafResponseInspection = Shapes::StructureShape.new(name: 'WafResponseInspection')
703
+ WafRule = Shapes::StructureShape.new(name: 'WafRule')
704
+ WafRuleList = Shapes::ListShape.new(name: 'WafRuleList')
705
+ WafStatusCodeList = Shapes::ListShape.new(name: 'WafStatusCodeList')
695
706
  boolean = Shapes::BooleanShape.new(name: 'boolean')
696
707
  double = Shapes::FloatShape.new(name: 'double')
697
708
  float = Shapes::FloatShape.new(name: 'float')
@@ -1286,6 +1297,8 @@ module Aws::Lightsail
1286
1297
  CreateDistributionRequest.add_member(:enable_private_origin_access, Shapes::ShapeRef.new(shape: boolean, location_name: "enablePrivateOriginAccess"))
1287
1298
  CreateDistributionRequest.add_member(:default_root_object, Shapes::ShapeRef.new(shape: string, location_name: "defaultRootObject"))
1288
1299
  CreateDistributionRequest.add_member(:custom_error_responses, Shapes::ShapeRef.new(shape: DistributionCustomErrorResponseList, location_name: "customErrorResponses"))
1300
+ CreateDistributionRequest.add_member(:enable_waf, Shapes::ShapeRef.new(shape: boolean, location_name: "enableWaf"))
1301
+ CreateDistributionRequest.add_member(:waf_rules, Shapes::ShapeRef.new(shape: WafRuleList, location_name: "wafRules"))
1289
1302
  CreateDistributionRequest.struct_class = Types::CreateDistributionRequest
1290
1303
 
1291
1304
  CreateDistributionResult.add_member(:distribution, Shapes::ShapeRef.new(shape: LightsailDistribution, location_name: "distribution"))
@@ -2347,6 +2360,9 @@ module Aws::Lightsail
2347
2360
  InstanceAccessDetails.add_member(:host_keys, Shapes::ShapeRef.new(shape: HostKeysList, location_name: "hostKeys"))
2348
2361
  InstanceAccessDetails.struct_class = Types::InstanceAccessDetails
2349
2362
 
2363
+ InstanceAttributeUpdates.add_member(:bundle_id, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "bundleId"))
2364
+ InstanceAttributeUpdates.struct_class = Types::InstanceAttributeUpdates
2365
+
2350
2366
  InstanceEntry.add_member(:source_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "sourceName"))
2351
2367
  InstanceEntry.add_member(:instance_type, Shapes::ShapeRef.new(shape: NonEmptyString, required: true, location_name: "instanceType"))
2352
2368
  InstanceEntry.add_member(:port_info_source, Shapes::ShapeRef.new(shape: PortInfoSourceType, required: true, location_name: "portInfoSource"))
@@ -2485,6 +2501,7 @@ module Aws::Lightsail
2485
2501
  LightsailDistribution.add_member(:viewer_minimum_tls_protocol_version, Shapes::ShapeRef.new(shape: string, location_name: "viewerMinimumTlsProtocolVersion"))
2486
2502
  LightsailDistribution.add_member(:default_root_object, Shapes::ShapeRef.new(shape: string, location_name: "defaultRootObject"))
2487
2503
  LightsailDistribution.add_member(:custom_error_responses, Shapes::ShapeRef.new(shape: DistributionCustomErrorResponseList, location_name: "customErrorResponses"))
2504
+ LightsailDistribution.add_member(:waf, Shapes::ShapeRef.new(shape: WafConfig, location_name: "waf"))
2488
2505
  LightsailDistribution.struct_class = Types::LightsailDistribution
2489
2506
 
2490
2507
  LoadBalancer.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, location_name: "name"))
@@ -3008,6 +3025,7 @@ module Aws::Lightsail
3008
3025
  StartGUISessionResult.struct_class = Types::StartGUISessionResult
3009
3026
 
3010
3027
  StartInstanceRequest.add_member(:instance_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "instanceName"))
3028
+ StartInstanceRequest.add_member(:attribute_updates, Shapes::ShapeRef.new(shape: InstanceAttributeUpdates, location_name: "attributeUpdates"))
3011
3029
  StartInstanceRequest.struct_class = Types::StartInstanceRequest
3012
3030
 
3013
3031
  StartInstanceResult.add_member(:operations, Shapes::ShapeRef.new(shape: OperationList, location_name: "operations"))
@@ -3155,6 +3173,8 @@ module Aws::Lightsail
3155
3173
  UpdateDistributionRequest.add_member(:enable_private_origin_access, Shapes::ShapeRef.new(shape: boolean, location_name: "enablePrivateOriginAccess"))
3156
3174
  UpdateDistributionRequest.add_member(:default_root_object, Shapes::ShapeRef.new(shape: string, location_name: "defaultRootObject"))
3157
3175
  UpdateDistributionRequest.add_member(:custom_error_responses, Shapes::ShapeRef.new(shape: DistributionCustomErrorResponseList, location_name: "customErrorResponses"))
3176
+ UpdateDistributionRequest.add_member(:enable_waf, Shapes::ShapeRef.new(shape: boolean, location_name: "enableWaf"))
3177
+ UpdateDistributionRequest.add_member(:waf_rules, Shapes::ShapeRef.new(shape: WafRuleList, location_name: "wafRules"))
3158
3178
  UpdateDistributionRequest.struct_class = Types::UpdateDistributionRequest
3159
3179
 
3160
3180
  UpdateDistributionResult.add_member(:operation, Shapes::ShapeRef.new(shape: Operation, location_name: "operation"))
@@ -3208,6 +3228,40 @@ module Aws::Lightsail
3208
3228
  UpdateRelationalDatabaseResult.add_member(:operations, Shapes::ShapeRef.new(shape: OperationList, location_name: "operations"))
3209
3229
  UpdateRelationalDatabaseResult.struct_class = Types::UpdateRelationalDatabaseResult
3210
3230
 
3231
+ WafAcfpConfig.add_member(:payload_type, Shapes::ShapeRef.new(shape: WafPayloadTypeEnum, location_name: "payloadType"))
3232
+ WafAcfpConfig.add_member(:creation_path, Shapes::ShapeRef.new(shape: string, location_name: "creationPath"))
3233
+ WafAcfpConfig.add_member(:registration_page_path, Shapes::ShapeRef.new(shape: string, location_name: "registrationPagePath"))
3234
+ WafAcfpConfig.add_member(:response_inspection, Shapes::ShapeRef.new(shape: WafResponseInspection, location_name: "responseInspection"))
3235
+ WafAcfpConfig.struct_class = Types::WafAcfpConfig
3236
+
3237
+ WafAtpConfig.add_member(:login_path, Shapes::ShapeRef.new(shape: string, location_name: "loginPath"))
3238
+ WafAtpConfig.add_member(:payload_type, Shapes::ShapeRef.new(shape: WafPayloadTypeEnum, location_name: "payloadType"))
3239
+ WafAtpConfig.add_member(:username_field, Shapes::ShapeRef.new(shape: string, location_name: "usernameField"))
3240
+ WafAtpConfig.add_member(:password_field, Shapes::ShapeRef.new(shape: string, location_name: "passwordField"))
3241
+ WafAtpConfig.add_member(:response_inspection, Shapes::ShapeRef.new(shape: WafResponseInspection, location_name: "responseInspection"))
3242
+ WafAtpConfig.struct_class = Types::WafAtpConfig
3243
+
3244
+ WafBotControlConfig.add_member(:inspection_level, Shapes::ShapeRef.new(shape: WafInspectionLevelEnum, location_name: "inspectionLevel"))
3245
+ WafBotControlConfig.struct_class = Types::WafBotControlConfig
3246
+
3247
+ WafConfig.add_member(:is_waf_enabled, Shapes::ShapeRef.new(shape: boolean, location_name: "isWafEnabled"))
3248
+ WafConfig.add_member(:waf_rules, Shapes::ShapeRef.new(shape: WafRuleList, location_name: "wafRules"))
3249
+ WafConfig.struct_class = Types::WafConfig
3250
+
3251
+ WafResponseInspection.add_member(:success_codes, Shapes::ShapeRef.new(shape: WafStatusCodeList, location_name: "successCodes"))
3252
+ WafResponseInspection.add_member(:failure_codes, Shapes::ShapeRef.new(shape: WafStatusCodeList, location_name: "failureCodes"))
3253
+ WafResponseInspection.struct_class = Types::WafResponseInspection
3254
+
3255
+ WafRule.add_member(:name, Shapes::ShapeRef.new(shape: string, required: true, location_name: "name"))
3256
+ WafRule.add_member(:atp_config, Shapes::ShapeRef.new(shape: WafAtpConfig, location_name: "atpConfig"))
3257
+ WafRule.add_member(:acfp_config, Shapes::ShapeRef.new(shape: WafAcfpConfig, location_name: "acfpConfig"))
3258
+ WafRule.add_member(:bot_control_config, Shapes::ShapeRef.new(shape: WafBotControlConfig, location_name: "botControlConfig"))
3259
+ WafRule.struct_class = Types::WafRule
3260
+
3261
+ WafRuleList.member = Shapes::ShapeRef.new(shape: WafRule)
3262
+
3263
+ WafStatusCodeList.member = Shapes::ShapeRef.new(shape: integer)
3264
+
3211
3265
  setupHistoryList.member = Shapes::ShapeRef.new(shape: SetupHistory)
3212
3266
 
3213
3267
 
@@ -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
@@ -10408,6 +10462,45 @@ module Aws::Lightsail
10408
10462
  include Aws::Structure
10409
10463
  end
10410
10464
 
10465
+ # Describes the attributes to update on a Lightsail instance when it
10466
+ # starts.
10467
+ #
10468
+ # @!attribute [rw] bundle_id
10469
+ # The ID of the bundle to update the instance to.
10470
+ #
10471
+ # Specify one of the following values for the bundle ID:
10472
+ #
10473
+ # * <b> <code>auto</code> </b> – Updates an instance that runs on a
10474
+ # previous-generation bundle to the newer-generation equivalent of
10475
+ # that bundle. For example, specify `auto` to update an instance
10476
+ # that runs on `small_2_0` to `small_3_0`.
10477
+ #
10478
+ # * **Newer-generation bundle ID** – Updates an instance that runs on
10479
+ # a previous-generation bundle to the specified bundle. For example,
10480
+ # specify `small_3_0` to update an instance that runs on `small_2_0`
10481
+ # to `small_3_0`.
10482
+ #
10483
+ # * **Original bundle ID** – Updates an instance to the
10484
+ # previous-generation bundle that it ran on before an earlier
10485
+ # update. For example, specify `small_2_0` to return an instance
10486
+ # that runs on `small_3_0` to `small_2_0`.
10487
+ #
10488
+ # <note markdown="1"> The instance must be in the `stopped` state to update its bundle.
10489
+ #
10490
+ # There is no additional cost to update an instance to a
10491
+ # newer-generation bundle.
10492
+ #
10493
+ # </note>
10494
+ # @return [String]
10495
+ #
10496
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/InstanceAttributeUpdates AWS API Documentation
10497
+ #
10498
+ class InstanceAttributeUpdates < Struct.new(
10499
+ :bundle_id)
10500
+ SENSITIVE = []
10501
+ include Aws::Structure
10502
+ end
10503
+
10411
10504
  # Describes the Amazon Elastic Compute Cloud instance and related
10412
10505
  # resources to be created using the `create cloud formation stack`
10413
10506
  # operation.
@@ -11422,6 +11515,11 @@ module Aws::Lightsail
11422
11515
  # configured for the distribution.
11423
11516
  # @return [Array<Types::DistributionCustomErrorResponse>]
11424
11517
  #
11518
+ # @!attribute [rw] waf
11519
+ # An object that describes the Web Application Firewall (WAF)
11520
+ # configuration of the distribution.
11521
+ # @return [Types::WafConfig]
11522
+ #
11425
11523
  # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/LightsailDistribution AWS API Documentation
11426
11524
  #
11427
11525
  class LightsailDistribution < Struct.new(
@@ -11447,7 +11545,8 @@ module Aws::Lightsail
11447
11545
  :tags,
11448
11546
  :viewer_minimum_tls_protocol_version,
11449
11547
  :default_root_object,
11450
- :custom_error_responses)
11548
+ :custom_error_responses,
11549
+ :waf)
11451
11550
  SENSITIVE = []
11452
11551
  include Aws::Structure
11453
11552
  end
@@ -14407,10 +14506,16 @@ module Aws::Lightsail
14407
14506
  # The name of the instance (a virtual private server) to start.
14408
14507
  # @return [String]
14409
14508
  #
14509
+ # @!attribute [rw] attribute_updates
14510
+ # An object that describes the attributes to update on the instance
14511
+ # before it starts.
14512
+ # @return [Types::InstanceAttributeUpdates]
14513
+ #
14410
14514
  # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/StartInstanceRequest AWS API Documentation
14411
14515
  #
14412
14516
  class StartInstanceRequest < Struct.new(
14413
- :instance_name)
14517
+ :instance_name,
14518
+ :attribute_updates)
14414
14519
  SENSITIVE = []
14415
14520
  include Aws::Structure
14416
14521
  end
@@ -15207,6 +15312,53 @@ module Aws::Lightsail
15207
15312
  # can also specify the HTTP status code to send to the viewer.
15208
15313
  # @return [Array<Types::DistributionCustomErrorResponse>]
15209
15314
  #
15315
+ # @!attribute [rw] enable_waf
15316
+ # Specifies whether to enable Web Application Firewall (WAF) for the
15317
+ # distribution. WAF inspects viewer requests and blocks requests that
15318
+ # match the WAF rule groups that you enable.
15319
+ #
15320
+ # When you enable WAF without specifying the `wafRules` parameter, the
15321
+ # distribution has no WAF rule groups enabled and doesn't block any
15322
+ # requests.
15323
+ #
15324
+ # <note markdown="1"> WAF is available only for distributions that use the `medium_1_0` or
15325
+ # `large_1_0` bundle.
15326
+ #
15327
+ # Setting this parameter to `false` disables WAF for the distribution
15328
+ # and removes its WAF rule groups. You must enable the WAF rule groups
15329
+ # again if you enable WAF again.
15330
+ #
15331
+ # </note>
15332
+ # @return [Boolean]
15333
+ #
15334
+ # @!attribute [rw] waf_rules
15335
+ # An array of objects that describe the WAF rule groups to enable for
15336
+ # the distribution.
15337
+ #
15338
+ # The array that you specify replaces the existing WAF rule groups of
15339
+ # the distribution. To keep a WAF rule group enabled, include it in
15340
+ # the array. To disable all WAF rule groups, specify an empty array.
15341
+ #
15342
+ # You can specify this parameter only when WAF is enabled for the
15343
+ # distribution.
15344
+ #
15345
+ # The WAF rule groups that you can specify depend on the bundle of the
15346
+ # distribution:
15347
+ #
15348
+ # * `medium_1_0` – Supports the `AWSManagedRulesCommonRuleSet`,
15349
+ # `AWSManagedRulesKnownBadInputsRuleSet`, and
15350
+ # `AWSManagedRulesAnonymousIpList` rule groups.
15351
+ #
15352
+ # * `large_1_0` – Supports the rule groups for `medium_1_0`, plus
15353
+ # `AWSManagedRulesAdminProtectionRuleSet`,
15354
+ # `AWSManagedRulesSQLiRuleSet`, `AWSManagedRulesLinuxRuleSet`,
15355
+ # `AWSManagedRulesUnixRuleSet`, `AWSManagedRulesWindowsRuleSet`,
15356
+ # `AWSManagedRulesPHPRuleSet`, `AWSManagedRulesWordPressRuleSet`,
15357
+ # `AWSManagedRulesAmazonIpReputationList`,
15358
+ # `AWSManagedRulesATPRuleSet`, `AWSManagedRulesACFPRuleSet`, and
15359
+ # `AWSManagedRulesBotControlRuleSet` rule groups.
15360
+ # @return [Array<Types::WafRule>]
15361
+ #
15210
15362
  # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/UpdateDistributionRequest AWS API Documentation
15211
15363
  #
15212
15364
  class UpdateDistributionRequest < Struct.new(
@@ -15221,7 +15373,9 @@ module Aws::Lightsail
15221
15373
  :use_default_certificate,
15222
15374
  :enable_private_origin_access,
15223
15375
  :default_root_object,
15224
- :custom_error_responses)
15376
+ :custom_error_responses,
15377
+ :enable_waf,
15378
+ :waf_rules)
15225
15379
  SENSITIVE = []
15226
15380
  include Aws::Structure
15227
15381
  end
@@ -15595,6 +15749,276 @@ module Aws::Lightsail
15595
15749
  include Aws::Structure
15596
15750
  end
15597
15751
 
15752
+ # Describes the configuration of the account creation fraud prevention
15753
+ # Web Application Firewall (WAF) rule group. The rule group inspects
15754
+ # account creation requests to your application.
15755
+ #
15756
+ # @!attribute [rw] payload_type
15757
+ # The content type of the request body of account creation requests.
15758
+ #
15759
+ # The following content types are possible:
15760
+ #
15761
+ # * `JSON` – The request body is in JSON format.
15762
+ #
15763
+ # * `FORM_ENCODED` – The request body is form encoded.
15764
+ # @return [String]
15765
+ #
15766
+ # @!attribute [rw] creation_path
15767
+ # The path of the endpoint that accepts completed account creation
15768
+ # forms (for example, `/signup/submit`). This endpoint must accept
15769
+ # `POST` requests.
15770
+ #
15771
+ # Constraints:
15772
+ #
15773
+ # * Must start with a forward slash (`/`).
15774
+ #
15775
+ # * Must contain from 1 to 256 characters.
15776
+ # @return [String]
15777
+ #
15778
+ # @!attribute [rw] registration_page_path
15779
+ # The path of the page that displays the account creation form (for
15780
+ # example, `/signup`).
15781
+ #
15782
+ # Constraints:
15783
+ #
15784
+ # * Must start with a forward slash (`/`).
15785
+ #
15786
+ # * Must contain from 1 to 256 characters.
15787
+ # @return [String]
15788
+ #
15789
+ # @!attribute [rw] response_inspection
15790
+ # An object that describes the HTTP status codes that your application
15791
+ # returns for successful and failed account creation attempts.
15792
+ # @return [Types::WafResponseInspection]
15793
+ #
15794
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/WafAcfpConfig AWS API Documentation
15795
+ #
15796
+ class WafAcfpConfig < Struct.new(
15797
+ :payload_type,
15798
+ :creation_path,
15799
+ :registration_page_path,
15800
+ :response_inspection)
15801
+ SENSITIVE = []
15802
+ include Aws::Structure
15803
+ end
15804
+
15805
+ # Describes the configuration of the account takeover prevention Web
15806
+ # Application Firewall (WAF) rule group. The rule group inspects login
15807
+ # requests to the login path of your application.
15808
+ #
15809
+ # @!attribute [rw] login_path
15810
+ # The path of the login endpoint of your application (for example,
15811
+ # `/login`). Login paths that start with the path that you specify are
15812
+ # a match.
15813
+ #
15814
+ # Constraints:
15815
+ #
15816
+ # * Must start with a forward slash (`/`).
15817
+ #
15818
+ # * Must contain from 1 to 256 characters.
15819
+ # @return [String]
15820
+ #
15821
+ # @!attribute [rw] payload_type
15822
+ # The content type of the request body of login requests.
15823
+ #
15824
+ # The following content types are possible:
15825
+ #
15826
+ # * `JSON` – The request body is in JSON format.
15827
+ #
15828
+ # * `FORM_ENCODED` – The request body is form encoded.
15829
+ # @return [String]
15830
+ #
15831
+ # @!attribute [rw] username_field
15832
+ # The name of the field in the request body that contains the username
15833
+ # (for example, `/username` for `JSON` or `username` for
15834
+ # `FORM_ENCODED`).
15835
+ #
15836
+ # Constraints:
15837
+ #
15838
+ # * For a `JSON` payload, must be a JSON pointer that starts with a
15839
+ # forward slash (`/`).
15840
+ #
15841
+ # * Must contain from 1 to 512 characters.
15842
+ # @return [String]
15843
+ #
15844
+ # @!attribute [rw] password_field
15845
+ # The name of the field in the request body that contains the password
15846
+ # (for example, `/password` for `JSON` or `password` for
15847
+ # `FORM_ENCODED`).
15848
+ #
15849
+ # Constraints:
15850
+ #
15851
+ # * For a `JSON` payload, must be a JSON pointer that starts with a
15852
+ # forward slash (`/`).
15853
+ #
15854
+ # * Must contain from 1 to 512 characters.
15855
+ # @return [String]
15856
+ #
15857
+ # @!attribute [rw] response_inspection
15858
+ # An object that describes the HTTP status codes that your application
15859
+ # returns for successful and failed login attempts.
15860
+ # @return [Types::WafResponseInspection]
15861
+ #
15862
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/WafAtpConfig AWS API Documentation
15863
+ #
15864
+ class WafAtpConfig < Struct.new(
15865
+ :login_path,
15866
+ :payload_type,
15867
+ :username_field,
15868
+ :password_field,
15869
+ :response_inspection)
15870
+ SENSITIVE = []
15871
+ include Aws::Structure
15872
+ end
15873
+
15874
+ # Describes the configuration of the bot control Web Application
15875
+ # Firewall (WAF) rule group.
15876
+ #
15877
+ # @!attribute [rw] inspection_level
15878
+ # The inspection level of the bot control rule group.
15879
+ #
15880
+ # The following inspection levels are possible:
15881
+ #
15882
+ # * `COMMON` – Detects a variety of bots that identify themselves,
15883
+ # such as web scraping frameworks, search engines, and automated
15884
+ # browsers.
15885
+ #
15886
+ # * `TARGETED` – Includes the `COMMON` protections, and adds detection
15887
+ # for sophisticated bots that don't identify themselves. This level
15888
+ # uses rate limiting, CAPTCHA, and background browser challenges.
15889
+ # @return [String]
15890
+ #
15891
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/WafBotControlConfig AWS API Documentation
15892
+ #
15893
+ class WafBotControlConfig < Struct.new(
15894
+ :inspection_level)
15895
+ SENSITIVE = []
15896
+ include Aws::Structure
15897
+ end
15898
+
15899
+ # Describes the Web Application Firewall (WAF) configuration of a
15900
+ # Lightsail distribution.
15901
+ #
15902
+ # @!attribute [rw] is_waf_enabled
15903
+ # Specifies whether WAF is enabled for the distribution.
15904
+ # @return [Boolean]
15905
+ #
15906
+ # @!attribute [rw] waf_rules
15907
+ # An array of objects that describe the WAF rule groups enabled for
15908
+ # the distribution.
15909
+ # @return [Array<Types::WafRule>]
15910
+ #
15911
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/WafConfig AWS API Documentation
15912
+ #
15913
+ class WafConfig < Struct.new(
15914
+ :is_waf_enabled,
15915
+ :waf_rules)
15916
+ SENSITIVE = []
15917
+ include Aws::Structure
15918
+ end
15919
+
15920
+ # Describes the HTTP status codes that your application returns to
15921
+ # indicate successful and failed attempts. The Web Application Firewall
15922
+ # (WAF) rule group uses these status codes to track successful and
15923
+ # failed attempts.
15924
+ #
15925
+ # @!attribute [rw] success_codes
15926
+ # The HTTP status codes that indicate a successful attempt (for
15927
+ # example, `200`).
15928
+ #
15929
+ # Constraints:
15930
+ #
15931
+ # * Must contain from 1 to 10 status codes.
15932
+ #
15933
+ # * Each status code must be from `0` to `999`.
15934
+ #
15935
+ # * Can't contain a status code that is also in `failureCodes`.
15936
+ # @return [Array<Integer>]
15937
+ #
15938
+ # @!attribute [rw] failure_codes
15939
+ # The HTTP status codes that indicate a failed attempt (for example,
15940
+ # `401`).
15941
+ #
15942
+ # Constraints:
15943
+ #
15944
+ # * Must contain from 1 to 10 status codes.
15945
+ #
15946
+ # * Each status code must be from `0` to `999`.
15947
+ #
15948
+ # * Can't contain a status code that is also in `successCodes`.
15949
+ # @return [Array<Integer>]
15950
+ #
15951
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/WafResponseInspection AWS API Documentation
15952
+ #
15953
+ class WafResponseInspection < Struct.new(
15954
+ :success_codes,
15955
+ :failure_codes)
15956
+ SENSITIVE = []
15957
+ include Aws::Structure
15958
+ end
15959
+
15960
+ # Describes a Web Application Firewall (WAF) rule group for a Lightsail
15961
+ # distribution. A WAF rule group is a set of rules managed by AWS. The
15962
+ # rules inspect viewer requests and block requests that match them.
15963
+ #
15964
+ # @!attribute [rw] name
15965
+ # The name of the WAF rule group (for example,
15966
+ # `AWSManagedRulesCommonRuleSet`).
15967
+ #
15968
+ # For the WAF rule groups that you can specify for each bundle, see
15969
+ # the `wafRules` parameter of the `CreateDistribution` action.
15970
+ # @return [String]
15971
+ #
15972
+ # @!attribute [rw] atp_config
15973
+ # An object that describes the configuration of the account takeover
15974
+ # prevention rule group.
15975
+ #
15976
+ # Constraints:
15977
+ #
15978
+ # * Define this parameter only when the `name` is
15979
+ # `AWSManagedRulesATPRuleSet`.
15980
+ #
15981
+ # * This parameter is required when the `name` is
15982
+ # `AWSManagedRulesATPRuleSet`.
15983
+ # @return [Types::WafAtpConfig]
15984
+ #
15985
+ # @!attribute [rw] acfp_config
15986
+ # An object that describes the configuration of the account creation
15987
+ # fraud prevention rule group.
15988
+ #
15989
+ # Constraints:
15990
+ #
15991
+ # * Define this parameter only when the `name` is
15992
+ # `AWSManagedRulesACFPRuleSet`.
15993
+ #
15994
+ # * This parameter is required when the `name` is
15995
+ # `AWSManagedRulesACFPRuleSet`.
15996
+ # @return [Types::WafAcfpConfig]
15997
+ #
15998
+ # @!attribute [rw] bot_control_config
15999
+ # An object that describes the configuration of the bot control rule
16000
+ # group.
16001
+ #
16002
+ # Constraints:
16003
+ #
16004
+ # * Define this parameter only when the `name` is
16005
+ # `AWSManagedRulesBotControlRuleSet`.
16006
+ #
16007
+ # * This parameter is required when the `name` is
16008
+ # `AWSManagedRulesBotControlRuleSet`.
16009
+ # @return [Types::WafBotControlConfig]
16010
+ #
16011
+ # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/WafRule AWS API Documentation
16012
+ #
16013
+ class WafRule < Struct.new(
16014
+ :name,
16015
+ :atp_config,
16016
+ :acfp_config,
16017
+ :bot_control_config)
16018
+ SENSITIVE = []
16019
+ include Aws::Structure
16020
+ end
16021
+
15598
16022
  end
15599
16023
  end
15600
16024
 
@@ -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.142.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,
@@ -1942,7 +1946,10 @@ module Aws
1942
1946
  end
1943
1947
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Lightsail/Client.html#start_instance-instance_method
1944
1948
  def start_instance: (
1945
- instance_name: ::String
1949
+ instance_name: ::String,
1950
+ ?attribute_updates: {
1951
+ bundle_id: ::String?
1952
+ }
1946
1953
  ) -> _StartInstanceResponseSuccess
1947
1954
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _StartInstanceResponseSuccess
1948
1955
 
@@ -2138,6 +2145,10 @@ module Aws
2138
2145
  response_page_path: ::String?,
2139
2146
  error_caching_min_ttl: ::Integer?
2140
2147
  }
2148
+ ],
2149
+ ?enable_waf: bool,
2150
+ ?waf_rules: Array[
2151
+ Params::waf_rule
2141
2152
  ]
2142
2153
  ) -> _UpdateDistributionResponseSuccess
2143
2154
  | (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
@@ -2174,6 +2176,11 @@ module Aws::Lightsail
2174
2176
  SENSITIVE: []
2175
2177
  end
2176
2178
 
2179
+ class InstanceAttributeUpdates
2180
+ attr_accessor bundle_id: ::String
2181
+ SENSITIVE: []
2182
+ end
2183
+
2177
2184
  class InstanceEntry
2178
2185
  attr_accessor source_name: ::String
2179
2186
  attr_accessor instance_type: ::String
@@ -2322,6 +2329,7 @@ module Aws::Lightsail
2322
2329
  attr_accessor viewer_minimum_tls_protocol_version: ::String
2323
2330
  attr_accessor default_root_object: ::String
2324
2331
  attr_accessor custom_error_responses: ::Array[Types::DistributionCustomErrorResponse]
2332
+ attr_accessor waf: Types::WafConfig
2325
2333
  SENSITIVE: []
2326
2334
  end
2327
2335
 
@@ -2938,6 +2946,7 @@ module Aws::Lightsail
2938
2946
 
2939
2947
  class StartInstanceRequest
2940
2948
  attr_accessor instance_name: ::String
2949
+ attr_accessor attribute_updates: Types::InstanceAttributeUpdates
2941
2950
  SENSITIVE: []
2942
2951
  end
2943
2952
 
@@ -3136,6 +3145,8 @@ module Aws::Lightsail
3136
3145
  attr_accessor enable_private_origin_access: bool
3137
3146
  attr_accessor default_root_object: ::String
3138
3147
  attr_accessor custom_error_responses: ::Array[Types::DistributionCustomErrorResponse]
3148
+ attr_accessor enable_waf: bool
3149
+ attr_accessor waf_rules: ::Array[Types::WafRule]
3139
3150
  SENSITIVE: []
3140
3151
  end
3141
3152
 
@@ -3211,5 +3222,47 @@ module Aws::Lightsail
3211
3222
  attr_accessor operations: ::Array[Types::Operation]
3212
3223
  SENSITIVE: []
3213
3224
  end
3225
+
3226
+ class WafAcfpConfig
3227
+ attr_accessor payload_type: ("JSON" | "FORM_ENCODED")
3228
+ attr_accessor creation_path: ::String
3229
+ attr_accessor registration_page_path: ::String
3230
+ attr_accessor response_inspection: Types::WafResponseInspection
3231
+ SENSITIVE: []
3232
+ end
3233
+
3234
+ class WafAtpConfig
3235
+ attr_accessor login_path: ::String
3236
+ attr_accessor payload_type: ("JSON" | "FORM_ENCODED")
3237
+ attr_accessor username_field: ::String
3238
+ attr_accessor password_field: ::String
3239
+ attr_accessor response_inspection: Types::WafResponseInspection
3240
+ SENSITIVE: []
3241
+ end
3242
+
3243
+ class WafBotControlConfig
3244
+ attr_accessor inspection_level: ("COMMON" | "TARGETED")
3245
+ SENSITIVE: []
3246
+ end
3247
+
3248
+ class WafConfig
3249
+ attr_accessor is_waf_enabled: bool
3250
+ attr_accessor waf_rules: ::Array[Types::WafRule]
3251
+ SENSITIVE: []
3252
+ end
3253
+
3254
+ class WafResponseInspection
3255
+ attr_accessor success_codes: ::Array[::Integer]
3256
+ attr_accessor failure_codes: ::Array[::Integer]
3257
+ SENSITIVE: []
3258
+ end
3259
+
3260
+ class WafRule
3261
+ attr_accessor name: ::String
3262
+ attr_accessor atp_config: Types::WafAtpConfig
3263
+ attr_accessor acfp_config: Types::WafAcfpConfig
3264
+ attr_accessor bot_control_config: Types::WafBotControlConfig
3265
+ SENSITIVE: []
3266
+ end
3214
3267
  end
3215
3268
  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.142.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services