aws-sdk-lightsail 1.139.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: 14669c86c25f68d8a1d8d5c21f506ef32177fd357c8bd1575ca00f41a487ec15
4
- data.tar.gz: 747cd3d05ffbf4bfcb139924e62987c5724653fca02478203e730e7dd230929e
3
+ metadata.gz: 728402fc8f95b0e4281a78bd5d3529c9208f0673de999a0a96621af74b845c7d
4
+ data.tar.gz: a980ddbd0d4f054432ccc151e787632e941071196880823fc2a692543ff3aff4
5
5
  SHA512:
6
- metadata.gz: c3f02e383179b45a66af616a51c358216e6ab7896bb48180c893e23a663ef106f25f8d8cee30e1811c9108fa116d76751cde3e6156a6e69e57b05e86c9b696e6
7
- data.tar.gz: f336fdfefe76c4cdc3a25fb2253bdd69e37227ba333cdd154e082ad59a51a251fa34debbd077a577f4c16748de73d94e10a57534551eaa48e1270e323e114b80
6
+ metadata.gz: aed43f840cfec37cfe1bedfcf80658ce1a722cbbf1e239a8b56d854e326e5ac702fbe2316696d13b186282fde61ee9ee6763273ba604ab9cceb52fd4f901432c
7
+ data.tar.gz: 35c4b9a84e0f21918a4f10b0e56657ff83a4e1807027a96e60a5c7ac8c56416811303cb49aba2665f280ab1492838132b641ba4c2d55867909fc2f5e0f983203
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
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
+
9
+ 1.140.0 (2026-10-21)
10
+ ------------------
11
+
12
+ * Feature - This release adds support for metrics related to system-disk performance.
13
+
4
14
  1.139.0 (2026-10-20)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.139.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"
@@ -5604,7 +5685,7 @@ module Aws::Lightsail
5604
5685
  # resp.alarms[0].datapoints_to_alarm #=> Integer
5605
5686
  # resp.alarms[0].treat_missing_data #=> String, one of "breaching", "notBreaching", "ignore", "missing"
5606
5687
  # resp.alarms[0].statistic #=> String, one of "Minimum", "Maximum", "Sum", "Average", "SampleCount"
5607
- # resp.alarms[0].metric_name #=> String, one of "CPUUtilization", "NetworkIn", "NetworkOut", "StatusCheckFailed", "StatusCheckFailed_Instance", "StatusCheckFailed_System", "ClientTLSNegotiationErrorCount", "HealthyHostCount", "UnhealthyHostCount", "HTTPCode_LB_4XX_Count", "HTTPCode_LB_5XX_Count", "HTTPCode_Instance_2XX_Count", "HTTPCode_Instance_3XX_Count", "HTTPCode_Instance_4XX_Count", "HTTPCode_Instance_5XX_Count", "InstanceResponseTime", "RejectedConnectionCount", "RequestCount", "DatabaseConnections", "DiskQueueDepth", "FreeStorageSpace", "NetworkReceiveThroughput", "NetworkTransmitThroughput", "FreeableMemory", "SwapUsage", "BurstCapacityTime", "BurstCapacityPercentage"
5688
+ # resp.alarms[0].metric_name #=> String, one of "CPUUtilization", "NetworkIn", "NetworkOut", "StatusCheckFailed", "StatusCheckFailed_Instance", "StatusCheckFailed_System", "ClientTLSNegotiationErrorCount", "HealthyHostCount", "UnhealthyHostCount", "HTTPCode_LB_4XX_Count", "HTTPCode_LB_5XX_Count", "HTTPCode_Instance_2XX_Count", "HTTPCode_Instance_3XX_Count", "HTTPCode_Instance_4XX_Count", "HTTPCode_Instance_5XX_Count", "InstanceResponseTime", "RejectedConnectionCount", "RequestCount", "DatabaseConnections", "DiskQueueDepth", "FreeStorageSpace", "NetworkReceiveThroughput", "NetworkTransmitThroughput", "FreeableMemory", "SwapUsage", "BurstCapacityTime", "BurstCapacityPercentage", "DiskReadOps", "DiskWriteOps", "DiskReadBytes", "DiskWriteBytes", "DiskTotalReadTime", "DiskTotalWriteTime", "DiskQueueLength"
5608
5689
  # resp.alarms[0].state #=> String, one of "OK", "ALARM", "INSUFFICIENT_DATA"
5609
5690
  # resp.alarms[0].unit #=> String, one of "Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None"
5610
5691
  # resp.alarms[0].contact_protocols #=> Array
@@ -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
@@ -7958,9 +8074,76 @@ module Aws::Lightsail
7958
8074
  #
7959
8075
  # `Unit`: The published unit is `Count`.
7960
8076
  #
8077
+ # * <b> <code>DiskReadOps</code> </b> - The number of read operations
8078
+ # completed on the system disk of the instance during the period. This
8079
+ # metric doesn't include activity on additional disks that you attach
8080
+ # to the instance.
8081
+ #
8082
+ # `Statistics`: The most useful statistic is `Sum`.
8083
+ #
8084
+ # `Unit`: The published unit is `Count`.
8085
+ #
8086
+ # * <b> <code>DiskWriteOps</code> </b> - The number of write operations
8087
+ # completed on the system disk of the instance during the period. This
8088
+ # metric doesn't include activity on additional disks that you attach
8089
+ # to the instance.
8090
+ #
8091
+ # `Statistics`: The most useful statistic is `Sum`.
8092
+ #
8093
+ # `Unit`: The published unit is `Count`.
8094
+ #
8095
+ # * <b> <code>DiskReadBytes</code> </b> - The number of bytes read from
8096
+ # the system disk of the instance during the period. This metric
8097
+ # doesn't include activity on additional disks that you attach to the
8098
+ # instance.
8099
+ #
8100
+ # `Statistics`: The most useful statistic is `Sum`.
8101
+ #
8102
+ # `Unit`: The published unit is `Bytes`.
8103
+ #
8104
+ # * <b> <code>DiskWriteBytes</code> </b> - The number of bytes written
8105
+ # to the system disk of the instance during the period. This metric
8106
+ # doesn't include activity on additional disks that you attach to the
8107
+ # instance.
8108
+ #
8109
+ # `Statistics`: The most useful statistic is `Sum`.
8110
+ #
8111
+ # `Unit`: The published unit is `Bytes`.
8112
+ #
8113
+ # * <b> <code>DiskTotalReadTime</code> </b> - The total number of
8114
+ # seconds spent by all read operations that completed on the system
8115
+ # disk of the instance during the period. This metric doesn't include
8116
+ # activity on additional disks that you attach to the instance.
8117
+ #
8118
+ # `Statistics`: The most useful statistic is `Average`.
8119
+ #
8120
+ # `Unit`: The published unit is `Seconds`.
8121
+ #
8122
+ # * <b> <code>DiskTotalWriteTime</code> </b> - The total number of
8123
+ # seconds spent by all write operations that completed on the system
8124
+ # disk of the instance during the period. This metric doesn't include
8125
+ # activity on additional disks that you attach to the instance.
8126
+ #
8127
+ # `Statistics`: The most useful statistic is `Average`.
8128
+ #
8129
+ # `Unit`: The published unit is `Seconds`.
8130
+ #
8131
+ # * <b> <code>DiskQueueLength</code> </b> - The number of read and write
8132
+ # requests that are waiting to access the system disk of the instance.
8133
+ # This metric doesn't include activity on additional disks that you
8134
+ # attach to the instance.
8135
+ #
8136
+ # `Statistics`: The most useful statistic is `Average`.
8137
+ #
8138
+ # `Unit`: The published unit is `Count`.
8139
+ #
8140
+ # For more information about system disk performance metrics, see [View
8141
+ # system disk performance metrics for your Lightsail instance][2].
8142
+ #
7961
8143
  #
7962
8144
  #
7963
8145
  # [1]: https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-viewing-instance-burst-capacity
8146
+ # [2]: https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-viewing-instance-disk-performance-metrics
7964
8147
  #
7965
8148
  # @option params [required, Integer] :period
7966
8149
  # The granularity, in seconds, of the returned data points.
@@ -8017,7 +8200,7 @@ module Aws::Lightsail
8017
8200
  #
8018
8201
  # resp = client.get_instance_metric_data({
8019
8202
  # instance_name: "ResourceName", # required
8020
- # metric_name: "CPUUtilization", # required, accepts CPUUtilization, NetworkIn, NetworkOut, StatusCheckFailed, StatusCheckFailed_Instance, StatusCheckFailed_System, BurstCapacityTime, BurstCapacityPercentage, MetadataNoToken
8203
+ # metric_name: "CPUUtilization", # required, accepts CPUUtilization, NetworkIn, NetworkOut, StatusCheckFailed, StatusCheckFailed_Instance, StatusCheckFailed_System, BurstCapacityTime, BurstCapacityPercentage, MetadataNoToken, DiskReadOps, DiskWriteOps, DiskReadBytes, DiskWriteBytes, DiskTotalReadTime, DiskTotalWriteTime, DiskQueueLength
8021
8204
  # period: 1, # required
8022
8205
  # start_time: Time.now, # required
8023
8206
  # end_time: Time.now, # required
@@ -8027,7 +8210,7 @@ module Aws::Lightsail
8027
8210
  #
8028
8211
  # @example Response structure
8029
8212
  #
8030
- # resp.metric_name #=> String, one of "CPUUtilization", "NetworkIn", "NetworkOut", "StatusCheckFailed", "StatusCheckFailed_Instance", "StatusCheckFailed_System", "BurstCapacityTime", "BurstCapacityPercentage", "MetadataNoToken"
8213
+ # resp.metric_name #=> String, one of "CPUUtilization", "NetworkIn", "NetworkOut", "StatusCheckFailed", "StatusCheckFailed_Instance", "StatusCheckFailed_System", "BurstCapacityTime", "BurstCapacityPercentage", "MetadataNoToken", "DiskReadOps", "DiskWriteOps", "DiskReadBytes", "DiskWriteBytes", "DiskTotalReadTime", "DiskTotalWriteTime", "DiskQueueLength"
8031
8214
  # resp.metric_data #=> Array
8032
8215
  # resp.metric_data[0].average #=> Float
8033
8216
  # resp.metric_data[0].maximum #=> Float
@@ -10256,7 +10439,9 @@ module Aws::Lightsail
10256
10439
  #
10257
10440
  # * **Instances**: `BurstCapacityPercentage`, `BurstCapacityTime`,
10258
10441
  # `CPUUtilization`, `NetworkIn`, `NetworkOut`, `StatusCheckFailed`,
10259
- # `StatusCheckFailed_Instance`, and `StatusCheckFailed_System`.
10442
+ # `StatusCheckFailed_Instance`, `StatusCheckFailed_System`,
10443
+ # `DiskReadOps`, `DiskWriteOps`, `DiskReadBytes`, `DiskWriteBytes`,
10444
+ # `DiskTotalReadTime`, `DiskTotalWriteTime`, and `DiskQueueLength`.
10260
10445
  #
10261
10446
  # * **Load balancers**: `ClientTLSNegotiationErrorCount`,
10262
10447
  # `HealthyHostCount`, `UnhealthyHostCount`, `HTTPCode_LB_4XX_Count`,
@@ -10396,7 +10581,7 @@ module Aws::Lightsail
10396
10581
  #
10397
10582
  # resp = client.put_alarm({
10398
10583
  # alarm_name: "ResourceName", # required
10399
- # metric_name: "CPUUtilization", # required, accepts CPUUtilization, NetworkIn, NetworkOut, StatusCheckFailed, StatusCheckFailed_Instance, StatusCheckFailed_System, ClientTLSNegotiationErrorCount, HealthyHostCount, UnhealthyHostCount, HTTPCode_LB_4XX_Count, HTTPCode_LB_5XX_Count, HTTPCode_Instance_2XX_Count, HTTPCode_Instance_3XX_Count, HTTPCode_Instance_4XX_Count, HTTPCode_Instance_5XX_Count, InstanceResponseTime, RejectedConnectionCount, RequestCount, DatabaseConnections, DiskQueueDepth, FreeStorageSpace, NetworkReceiveThroughput, NetworkTransmitThroughput, FreeableMemory, SwapUsage, BurstCapacityTime, BurstCapacityPercentage
10584
+ # metric_name: "CPUUtilization", # required, accepts CPUUtilization, NetworkIn, NetworkOut, StatusCheckFailed, StatusCheckFailed_Instance, StatusCheckFailed_System, ClientTLSNegotiationErrorCount, HealthyHostCount, UnhealthyHostCount, HTTPCode_LB_4XX_Count, HTTPCode_LB_5XX_Count, HTTPCode_Instance_2XX_Count, HTTPCode_Instance_3XX_Count, HTTPCode_Instance_4XX_Count, HTTPCode_Instance_5XX_Count, InstanceResponseTime, RejectedConnectionCount, RequestCount, DatabaseConnections, DiskQueueDepth, FreeStorageSpace, NetworkReceiveThroughput, NetworkTransmitThroughput, FreeableMemory, SwapUsage, BurstCapacityTime, BurstCapacityPercentage, DiskReadOps, DiskWriteOps, DiskReadBytes, DiskWriteBytes, DiskTotalReadTime, DiskTotalWriteTime, DiskQueueLength
10400
10585
  # monitored_resource_name: "ResourceName", # required
10401
10586
  # comparison_operator: "GreaterThanOrEqualToThreshold", # required, accepts GreaterThanOrEqualToThreshold, GreaterThanThreshold, LessThanThreshold, LessThanOrEqualToThreshold
10402
10587
  # threshold: 1.0, # required
@@ -12072,6 +12257,51 @@ module Aws::Lightsail
12072
12257
  # to return when the origin responds with a given HTTP error code. You
12073
12258
  # can also specify the HTTP status code to send to the viewer.
12074
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
+ #
12075
12305
  # @return [Types::UpdateDistributionResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
12076
12306
  #
12077
12307
  # * {Types::UpdateDistributionResult#operation #operation} => Types::Operation
@@ -12129,6 +12359,34 @@ module Aws::Lightsail
12129
12359
  # error_caching_min_ttl: 1,
12130
12360
  # },
12131
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
+ # ],
12132
12390
  # })
12133
12391
  #
12134
12392
  # @example Response structure
@@ -12728,7 +12986,7 @@ module Aws::Lightsail
12728
12986
  tracer: tracer
12729
12987
  )
12730
12988
  context[:gem_name] = 'aws-sdk-lightsail'
12731
- context[:gem_version] = '1.139.0'
12989
+ context[:gem_version] = '1.141.0'
12732
12990
  Seahorse::Client::Request.new(handlers, context)
12733
12991
  end
12734
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
@@ -8283,9 +8337,79 @@ module Aws::Lightsail
8283
8337
  #
8284
8338
  # `Unit`: The published unit is `Count`.
8285
8339
  #
8340
+ # * <b> <code>DiskReadOps</code> </b> - The number of read operations
8341
+ # completed on the system disk of the instance during the period.
8342
+ # This metric doesn't include activity on additional disks that you
8343
+ # attach to the instance.
8344
+ #
8345
+ # `Statistics`: The most useful statistic is `Sum`.
8346
+ #
8347
+ # `Unit`: The published unit is `Count`.
8348
+ #
8349
+ # * <b> <code>DiskWriteOps</code> </b> - The number of write
8350
+ # operations completed on the system disk of the instance during the
8351
+ # period. This metric doesn't include activity on additional disks
8352
+ # that you attach to the instance.
8353
+ #
8354
+ # `Statistics`: The most useful statistic is `Sum`.
8355
+ #
8356
+ # `Unit`: The published unit is `Count`.
8357
+ #
8358
+ # * <b> <code>DiskReadBytes</code> </b> - The number of bytes read
8359
+ # from the system disk of the instance during the period. This
8360
+ # metric doesn't include activity on additional disks that you
8361
+ # attach to the instance.
8362
+ #
8363
+ # `Statistics`: The most useful statistic is `Sum`.
8364
+ #
8365
+ # `Unit`: The published unit is `Bytes`.
8366
+ #
8367
+ # * <b> <code>DiskWriteBytes</code> </b> - The number of bytes written
8368
+ # to the system disk of the instance during the period. This metric
8369
+ # doesn't include activity on additional disks that you attach to
8370
+ # the instance.
8371
+ #
8372
+ # `Statistics`: The most useful statistic is `Sum`.
8373
+ #
8374
+ # `Unit`: The published unit is `Bytes`.
8375
+ #
8376
+ # * <b> <code>DiskTotalReadTime</code> </b> - The total number of
8377
+ # seconds spent by all read operations that completed on the system
8378
+ # disk of the instance during the period. This metric doesn't
8379
+ # include activity on additional disks that you attach to the
8380
+ # instance.
8381
+ #
8382
+ # `Statistics`: The most useful statistic is `Average`.
8383
+ #
8384
+ # `Unit`: The published unit is `Seconds`.
8385
+ #
8386
+ # * <b> <code>DiskTotalWriteTime</code> </b> - The total number of
8387
+ # seconds spent by all write operations that completed on the system
8388
+ # disk of the instance during the period. This metric doesn't
8389
+ # include activity on additional disks that you attach to the
8390
+ # instance.
8391
+ #
8392
+ # `Statistics`: The most useful statistic is `Average`.
8393
+ #
8394
+ # `Unit`: The published unit is `Seconds`.
8395
+ #
8396
+ # * <b> <code>DiskQueueLength</code> </b> - The number of read and
8397
+ # write requests that are waiting to access the system disk of the
8398
+ # instance. This metric doesn't include activity on additional
8399
+ # disks that you attach to the instance.
8400
+ #
8401
+ # `Statistics`: The most useful statistic is `Average`.
8402
+ #
8403
+ # `Unit`: The published unit is `Count`.
8404
+ #
8405
+ # For more information about system disk performance metrics, see
8406
+ # [View system disk performance metrics for your Lightsail
8407
+ # instance][2].
8408
+ #
8286
8409
  #
8287
8410
  #
8288
8411
  # [1]: https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-viewing-instance-burst-capacity
8412
+ # [2]: https://docs.aws.amazon.com/lightsail/latest/userguide/amazon-lightsail-viewing-instance-disk-performance-metrics
8289
8413
  # @return [String]
8290
8414
  #
8291
8415
  # @!attribute [rw] period
@@ -11352,6 +11476,11 @@ module Aws::Lightsail
11352
11476
  # configured for the distribution.
11353
11477
  # @return [Array<Types::DistributionCustomErrorResponse>]
11354
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
+ #
11355
11484
  # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/LightsailDistribution AWS API Documentation
11356
11485
  #
11357
11486
  class LightsailDistribution < Struct.new(
@@ -11377,7 +11506,8 @@ module Aws::Lightsail
11377
11506
  :tags,
11378
11507
  :viewer_minimum_tls_protocol_version,
11379
11508
  :default_root_object,
11380
- :custom_error_responses)
11509
+ :custom_error_responses,
11510
+ :waf)
11381
11511
  SENSITIVE = []
11382
11512
  include Aws::Structure
11383
11513
  end
@@ -12715,7 +12845,9 @@ module Aws::Lightsail
12715
12845
  #
12716
12846
  # * **Instances**: `BurstCapacityPercentage`, `BurstCapacityTime`,
12717
12847
  # `CPUUtilization`, `NetworkIn`, `NetworkOut`, `StatusCheckFailed`,
12718
- # `StatusCheckFailed_Instance`, and `StatusCheckFailed_System`.
12848
+ # `StatusCheckFailed_Instance`, `StatusCheckFailed_System`,
12849
+ # `DiskReadOps`, `DiskWriteOps`, `DiskReadBytes`, `DiskWriteBytes`,
12850
+ # `DiskTotalReadTime`, `DiskTotalWriteTime`, and `DiskQueueLength`.
12719
12851
  #
12720
12852
  # * **Load balancers**: `ClientTLSNegotiationErrorCount`,
12721
12853
  # `HealthyHostCount`, `UnhealthyHostCount`, `HTTPCode_LB_4XX_Count`,
@@ -15135,6 +15267,53 @@ module Aws::Lightsail
15135
15267
  # can also specify the HTTP status code to send to the viewer.
15136
15268
  # @return [Array<Types::DistributionCustomErrorResponse>]
15137
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
+ #
15138
15317
  # @see http://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/UpdateDistributionRequest AWS API Documentation
15139
15318
  #
15140
15319
  class UpdateDistributionRequest < Struct.new(
@@ -15149,7 +15328,9 @@ module Aws::Lightsail
15149
15328
  :use_default_certificate,
15150
15329
  :enable_private_origin_access,
15151
15330
  :default_root_object,
15152
- :custom_error_responses)
15331
+ :custom_error_responses,
15332
+ :enable_waf,
15333
+ :waf_rules)
15153
15334
  SENSITIVE = []
15154
15335
  include Aws::Structure
15155
15336
  end
@@ -15523,6 +15704,276 @@ module Aws::Lightsail
15523
15704
  include Aws::Structure
15524
15705
  end
15525
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
+
15526
15977
  end
15527
15978
  end
15528
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.139.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,
@@ -1363,13 +1367,13 @@ module Aws
1363
1367
 
1364
1368
  interface _GetInstanceMetricDataResponseSuccess
1365
1369
  include ::Seahorse::Client::_ResponseSuccess[Types::GetInstanceMetricDataResult]
1366
- def metric_name: () -> ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "BurstCapacityTime" | "BurstCapacityPercentage" | "MetadataNoToken")
1370
+ def metric_name: () -> ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "BurstCapacityTime" | "BurstCapacityPercentage" | "MetadataNoToken" | "DiskReadOps" | "DiskWriteOps" | "DiskReadBytes" | "DiskWriteBytes" | "DiskTotalReadTime" | "DiskTotalWriteTime" | "DiskQueueLength")
1367
1371
  def metric_data: () -> ::Array[Types::MetricDatapoint]
1368
1372
  end
1369
1373
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Lightsail/Client.html#get_instance_metric_data-instance_method
1370
1374
  def get_instance_metric_data: (
1371
1375
  instance_name: ::String,
1372
- metric_name: ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "BurstCapacityTime" | "BurstCapacityPercentage" | "MetadataNoToken"),
1376
+ metric_name: ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "BurstCapacityTime" | "BurstCapacityPercentage" | "MetadataNoToken" | "DiskReadOps" | "DiskWriteOps" | "DiskReadBytes" | "DiskWriteBytes" | "DiskTotalReadTime" | "DiskTotalWriteTime" | "DiskQueueLength"),
1373
1377
  period: ::Integer,
1374
1378
  start_time: ::Time,
1375
1379
  end_time: ::Time,
@@ -1792,7 +1796,7 @@ module Aws
1792
1796
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Lightsail/Client.html#put_alarm-instance_method
1793
1797
  def put_alarm: (
1794
1798
  alarm_name: ::String,
1795
- metric_name: ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "ClientTLSNegotiationErrorCount" | "HealthyHostCount" | "UnhealthyHostCount" | "HTTPCode_LB_4XX_Count" | "HTTPCode_LB_5XX_Count" | "HTTPCode_Instance_2XX_Count" | "HTTPCode_Instance_3XX_Count" | "HTTPCode_Instance_4XX_Count" | "HTTPCode_Instance_5XX_Count" | "InstanceResponseTime" | "RejectedConnectionCount" | "RequestCount" | "DatabaseConnections" | "DiskQueueDepth" | "FreeStorageSpace" | "NetworkReceiveThroughput" | "NetworkTransmitThroughput" | "FreeableMemory" | "SwapUsage" | "BurstCapacityTime" | "BurstCapacityPercentage"),
1799
+ metric_name: ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "ClientTLSNegotiationErrorCount" | "HealthyHostCount" | "UnhealthyHostCount" | "HTTPCode_LB_4XX_Count" | "HTTPCode_LB_5XX_Count" | "HTTPCode_Instance_2XX_Count" | "HTTPCode_Instance_3XX_Count" | "HTTPCode_Instance_4XX_Count" | "HTTPCode_Instance_5XX_Count" | "InstanceResponseTime" | "RejectedConnectionCount" | "RequestCount" | "DatabaseConnections" | "DiskQueueDepth" | "FreeStorageSpace" | "NetworkReceiveThroughput" | "NetworkTransmitThroughput" | "FreeableMemory" | "SwapUsage" | "BurstCapacityTime" | "BurstCapacityPercentage" | "DiskReadOps" | "DiskWriteOps" | "DiskReadBytes" | "DiskWriteBytes" | "DiskTotalReadTime" | "DiskTotalWriteTime" | "DiskQueueLength"),
1796
1800
  monitored_resource_name: ::String,
1797
1801
  comparison_operator: ("GreaterThanOrEqualToThreshold" | "GreaterThanThreshold" | "LessThanThreshold" | "LessThanOrEqualToThreshold"),
1798
1802
  threshold: ::Float,
@@ -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
@@ -86,7 +86,7 @@ module Aws::Lightsail
86
86
  attr_accessor datapoints_to_alarm: ::Integer
87
87
  attr_accessor treat_missing_data: ("breaching" | "notBreaching" | "ignore" | "missing")
88
88
  attr_accessor statistic: ("Minimum" | "Maximum" | "Sum" | "Average" | "SampleCount")
89
- attr_accessor metric_name: ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "ClientTLSNegotiationErrorCount" | "HealthyHostCount" | "UnhealthyHostCount" | "HTTPCode_LB_4XX_Count" | "HTTPCode_LB_5XX_Count" | "HTTPCode_Instance_2XX_Count" | "HTTPCode_Instance_3XX_Count" | "HTTPCode_Instance_4XX_Count" | "HTTPCode_Instance_5XX_Count" | "InstanceResponseTime" | "RejectedConnectionCount" | "RequestCount" | "DatabaseConnections" | "DiskQueueDepth" | "FreeStorageSpace" | "NetworkReceiveThroughput" | "NetworkTransmitThroughput" | "FreeableMemory" | "SwapUsage" | "BurstCapacityTime" | "BurstCapacityPercentage")
89
+ attr_accessor metric_name: ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "ClientTLSNegotiationErrorCount" | "HealthyHostCount" | "UnhealthyHostCount" | "HTTPCode_LB_4XX_Count" | "HTTPCode_LB_5XX_Count" | "HTTPCode_Instance_2XX_Count" | "HTTPCode_Instance_3XX_Count" | "HTTPCode_Instance_4XX_Count" | "HTTPCode_Instance_5XX_Count" | "InstanceResponseTime" | "RejectedConnectionCount" | "RequestCount" | "DatabaseConnections" | "DiskQueueDepth" | "FreeStorageSpace" | "NetworkReceiveThroughput" | "NetworkTransmitThroughput" | "FreeableMemory" | "SwapUsage" | "BurstCapacityTime" | "BurstCapacityPercentage" | "DiskReadOps" | "DiskWriteOps" | "DiskReadBytes" | "DiskWriteBytes" | "DiskTotalReadTime" | "DiskTotalWriteTime" | "DiskQueueLength")
90
90
  attr_accessor state: ("OK" | "ALARM" | "INSUFFICIENT_DATA")
91
91
  attr_accessor unit: ("Seconds" | "Microseconds" | "Milliseconds" | "Bytes" | "Kilobytes" | "Megabytes" | "Gigabytes" | "Terabytes" | "Bits" | "Kilobits" | "Megabits" | "Gigabits" | "Terabits" | "Percent" | "Count" | "Bytes/Second" | "Kilobytes/Second" | "Megabytes/Second" | "Gigabytes/Second" | "Terabytes/Second" | "Bits/Second" | "Kilobits/Second" | "Megabits/Second" | "Gigabits/Second" | "Terabits/Second" | "Count/Second" | "None")
92
92
  attr_accessor contact_protocols: ::Array[("Email" | "SMS")]
@@ -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
@@ -1705,7 +1707,7 @@ module Aws::Lightsail
1705
1707
 
1706
1708
  class GetInstanceMetricDataRequest
1707
1709
  attr_accessor instance_name: ::String
1708
- attr_accessor metric_name: ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "BurstCapacityTime" | "BurstCapacityPercentage" | "MetadataNoToken")
1710
+ attr_accessor metric_name: ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "BurstCapacityTime" | "BurstCapacityPercentage" | "MetadataNoToken" | "DiskReadOps" | "DiskWriteOps" | "DiskReadBytes" | "DiskWriteBytes" | "DiskTotalReadTime" | "DiskTotalWriteTime" | "DiskQueueLength")
1709
1711
  attr_accessor period: ::Integer
1710
1712
  attr_accessor start_time: ::Time
1711
1713
  attr_accessor end_time: ::Time
@@ -1715,7 +1717,7 @@ module Aws::Lightsail
1715
1717
  end
1716
1718
 
1717
1719
  class GetInstanceMetricDataResult
1718
- attr_accessor metric_name: ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "BurstCapacityTime" | "BurstCapacityPercentage" | "MetadataNoToken")
1720
+ attr_accessor metric_name: ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "BurstCapacityTime" | "BurstCapacityPercentage" | "MetadataNoToken" | "DiskReadOps" | "DiskWriteOps" | "DiskReadBytes" | "DiskWriteBytes" | "DiskTotalReadTime" | "DiskTotalWriteTime" | "DiskQueueLength")
1719
1721
  attr_accessor metric_data: ::Array[Types::MetricDatapoint]
1720
1722
  SENSITIVE: []
1721
1723
  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
 
@@ -2566,7 +2569,7 @@ module Aws::Lightsail
2566
2569
 
2567
2570
  class PutAlarmRequest
2568
2571
  attr_accessor alarm_name: ::String
2569
- attr_accessor metric_name: ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "ClientTLSNegotiationErrorCount" | "HealthyHostCount" | "UnhealthyHostCount" | "HTTPCode_LB_4XX_Count" | "HTTPCode_LB_5XX_Count" | "HTTPCode_Instance_2XX_Count" | "HTTPCode_Instance_3XX_Count" | "HTTPCode_Instance_4XX_Count" | "HTTPCode_Instance_5XX_Count" | "InstanceResponseTime" | "RejectedConnectionCount" | "RequestCount" | "DatabaseConnections" | "DiskQueueDepth" | "FreeStorageSpace" | "NetworkReceiveThroughput" | "NetworkTransmitThroughput" | "FreeableMemory" | "SwapUsage" | "BurstCapacityTime" | "BurstCapacityPercentage")
2572
+ attr_accessor metric_name: ("CPUUtilization" | "NetworkIn" | "NetworkOut" | "StatusCheckFailed" | "StatusCheckFailed_Instance" | "StatusCheckFailed_System" | "ClientTLSNegotiationErrorCount" | "HealthyHostCount" | "UnhealthyHostCount" | "HTTPCode_LB_4XX_Count" | "HTTPCode_LB_5XX_Count" | "HTTPCode_Instance_2XX_Count" | "HTTPCode_Instance_3XX_Count" | "HTTPCode_Instance_4XX_Count" | "HTTPCode_Instance_5XX_Count" | "InstanceResponseTime" | "RejectedConnectionCount" | "RequestCount" | "DatabaseConnections" | "DiskQueueDepth" | "FreeStorageSpace" | "NetworkReceiveThroughput" | "NetworkTransmitThroughput" | "FreeableMemory" | "SwapUsage" | "BurstCapacityTime" | "BurstCapacityPercentage" | "DiskReadOps" | "DiskWriteOps" | "DiskReadBytes" | "DiskWriteBytes" | "DiskTotalReadTime" | "DiskTotalWriteTime" | "DiskQueueLength")
2570
2573
  attr_accessor monitored_resource_name: ::String
2571
2574
  attr_accessor comparison_operator: ("GreaterThanOrEqualToThreshold" | "GreaterThanThreshold" | "LessThanThreshold" | "LessThanOrEqualToThreshold")
2572
2575
  attr_accessor threshold: ::Float
@@ -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.139.0
4
+ version: 1.141.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
@@ -18,7 +18,7 @@ dependencies:
18
18
  version: '3'
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 3.258.0
21
+ version: 3.260.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -28,7 +28,7 @@ dependencies:
28
28
  version: '3'
29
29
  - - ">="
30
30
  - !ruby/object:Gem::Version
31
- version: 3.258.0
31
+ version: 3.260.0
32
32
  - !ruby/object:Gem::Dependency
33
33
  name: aws-sigv4
34
34
  requirement: !ruby/object:Gem::Requirement