diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,64 +8,31 @@
 
 ## Version
 
-`1.3.7`
+`1.4.0`
 
 
 ## Description
 
-This is the /Amazon CloudWatch API Reference/. This guide provides
-detailed information about Amazon CloudWatch actions, data types,
-parameters, and errors. For detailed information about Amazon CloudWatch
-features and their associated API calls, go to the
-<http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide Amazon CloudWatch Developer Guide>.
-
-Amazon CloudWatch is a web service that enables you to publish, monitor,
-and manage various metrics, as well as configure alarm actions based on
-data from metrics. For more information about this product go to
-<http://aws.amazon.com/cloudwatch>.
-
-For information about the namespace, metric names, and dimensions that
-other Amazon Web Services products use to send metrics to Cloudwatch, go
-to
-<http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html Amazon CloudWatch Metrics, Namespaces, and Dimensions Reference>
-in the /Amazon CloudWatch Developer Guide/.
-
-Use the following links to get started using the /Amazon CloudWatch API
-Reference/:
-
--   <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Operations.html Actions>:
-    An alphabetical list of all Amazon CloudWatch actions.
--   <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Types.html Data Types>:
-    An alphabetical list of all Amazon CloudWatch data types.
--   <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CommonParameters.html Common Parameters>:
-    Parameters that all Query actions can use.
--   <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CommonErrors.html Common Errors>:
-    Client and server errors that all actions can return.
--   <http://docs.aws.amazon.com/general/latest/gr/index.html?rande.html Regions and Endpoints>:
-    Itemized regions and endpoints for all AWS products.
--   <http://monitoring.amazonaws.com/doc/2010-08-01/CloudWatch.wsdl WSDL Location>:
-    http:\/\/monitoring.amazonaws.com\/doc\/2010-08-01\/CloudWatch.wsdl
-
-In addition to using the Amazon CloudWatch API, you can also use the
-following SDKs and third-party libraries to access Amazon CloudWatch
-programmatically.
-
--   <http://aws.amazon.com/documentation/sdkforjava/ AWS SDK for Java Documentation>
--   <http://aws.amazon.com/documentation/sdkfornet/ AWS SDK for .NET Documentation>
--   <http://aws.amazon.com/documentation/sdkforphp/ AWS SDK for PHP Documentation>
--   <http://aws.amazon.com/documentation/sdkforruby/ AWS SDK for Ruby Documentation>
+Amazon CloudWatch monitors your Amazon Web Services (AWS) resources and
+the applications you run on AWS in real-time. You can use CloudWatch to
+collect and track metrics, which are the variables you want to measure
+for your resources and applications.
 
-Developers in the AWS developer community also provide their own
-libraries, which you can find at the following AWS developer centers:
+CloudWatch alarms send notifications or automatically make changes to
+the resources you are monitoring based on rules that you define. For
+example, you can monitor the CPU usage and disk reads and writes of your
+Amazon Elastic Compute Cloud (Amazon EC2) instances and then use this
+data to determine whether you should launch additional instances to
+handle increased load. You can also use this data to stop under-used
+instances to save money.
 
--   <http://aws.amazon.com/java/ AWS Java Developer Center>
--   <http://aws.amazon.com/php/ AWS PHP Developer Center>
--   <http://aws.amazon.com/python/ AWS Python Developer Center>
--   <http://aws.amazon.com/ruby/ AWS Ruby Developer Center>
--   <http://aws.amazon.com/net/ AWS Windows and .NET Developer Center>
+In addition to monitoring the built-in metrics that come with AWS, you
+can monitor your own custom metrics. With CloudWatch, you gain
+system-wide visibility into resource utilization, application
+performance, and operational health.
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-cloudwatch)
-and the [AWS API Reference](http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/Welcome.html).
+and the [AWS API Reference](https://aws.amazon.com/documentation/).
 
 The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),
 which provides mechanisms for specifying AuthN/AuthZ information and sending requests.
diff --git a/amazonka-cloudwatch.cabal b/amazonka-cloudwatch.cabal
--- a/amazonka-cloudwatch.cabal
+++ b/amazonka-cloudwatch.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-cloudwatch
-version:               1.3.7
+version:               1.4.0
 synopsis:              Amazon CloudWatch SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -7,62 +7,29 @@
 license-file:          LICENSE
 author:                Brendan Hay
 maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2013-2015 Brendan Hay
+copyright:             Copyright (c) 2013-2016 Brendan Hay
 category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 cabal-version:         >= 1.10
 extra-source-files:    README.md fixture/*.yaml fixture/*.proto
 description:
-    This is the /Amazon CloudWatch API Reference/. This guide provides
-    detailed information about Amazon CloudWatch actions, data types,
-    parameters, and errors. For detailed information about Amazon CloudWatch
-    features and their associated API calls, go to the
-    <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide Amazon CloudWatch Developer Guide>.
-
-    Amazon CloudWatch is a web service that enables you to publish, monitor,
-    and manage various metrics, as well as configure alarm actions based on
-    data from metrics. For more information about this product go to
-    <http://aws.amazon.com/cloudwatch>.
-
-    For information about the namespace, metric names, and dimensions that
-    other Amazon Web Services products use to send metrics to Cloudwatch, go
-    to
-    <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html Amazon CloudWatch Metrics, Namespaces, and Dimensions Reference>
-    in the /Amazon CloudWatch Developer Guide/.
-
-    Use the following links to get started using the /Amazon CloudWatch API
-    Reference/:
-
-    -   <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Operations.html Actions>:
-        An alphabetical list of all Amazon CloudWatch actions.
-    -   <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Types.html Data Types>:
-        An alphabetical list of all Amazon CloudWatch data types.
-    -   <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CommonParameters.html Common Parameters>:
-        Parameters that all Query actions can use.
-    -   <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CommonErrors.html Common Errors>:
-        Client and server errors that all actions can return.
-    -   <http://docs.aws.amazon.com/general/latest/gr/index.html?rande.html Regions and Endpoints>:
-        Itemized regions and endpoints for all AWS products.
-    -   <http://monitoring.amazonaws.com/doc/2010-08-01/CloudWatch.wsdl WSDL Location>:
-        http:\/\/monitoring.amazonaws.com\/doc\/2010-08-01\/CloudWatch.wsdl
-
-    In addition to using the Amazon CloudWatch API, you can also use the
-    following SDKs and third-party libraries to access Amazon CloudWatch
-    programmatically.
-
-    -   <http://aws.amazon.com/documentation/sdkforjava/ AWS SDK for Java Documentation>
-    -   <http://aws.amazon.com/documentation/sdkfornet/ AWS SDK for .NET Documentation>
-    -   <http://aws.amazon.com/documentation/sdkforphp/ AWS SDK for PHP Documentation>
-    -   <http://aws.amazon.com/documentation/sdkforruby/ AWS SDK for Ruby Documentation>
+    Amazon CloudWatch monitors your Amazon Web Services (AWS) resources and
+    the applications you run on AWS in real-time. You can use CloudWatch to
+    collect and track metrics, which are the variables you want to measure
+    for your resources and applications.
 
-    Developers in the AWS developer community also provide their own
-    libraries, which you can find at the following AWS developer centers:
+    CloudWatch alarms send notifications or automatically make changes to
+    the resources you are monitoring based on rules that you define. For
+    example, you can monitor the CPU usage and disk reads and writes of your
+    Amazon Elastic Compute Cloud (Amazon EC2) instances and then use this
+    data to determine whether you should launch additional instances to
+    handle increased load. You can also use this data to stop under-used
+    instances to save money.
 
-    -   <http://aws.amazon.com/java/ AWS Java Developer Center>
-    -   <http://aws.amazon.com/php/ AWS PHP Developer Center>
-    -   <http://aws.amazon.com/python/ AWS Python Developer Center>
-    -   <http://aws.amazon.com/ruby/ AWS Ruby Developer Center>
-    -   <http://aws.amazon.com/net/ AWS Windows and .NET Developer Center>
+    In addition to monitoring the built-in metrics that come with AWS, you
+    can monitor your own custom metrics. With CloudWatch, you gain
+    system-wide visibility into resource utilization, application
+    performance, and operational health.
     .
     The types from this library are intended to be used with
     <http://hackage.haskell.org/package/amazonka amazonka>, which provides
@@ -75,7 +42,7 @@
     such as <http://hackage.haskell.org/package/lens lens> or
     <http://hackage.haskell.org/package/lens-family-core lens-family-core>.
     .
-    See "Network.AWS.CloudWatch" and the <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/Welcome.html AWS API Reference>
+    See "Network.AWS.CloudWatch" or <https://aws.amazon.com/documentation/ the AWS Documentation>
     to get started.
 
 source-repository head
@@ -109,7 +76,7 @@
         , Network.AWS.CloudWatch.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.7.*
+          amazonka-core == 1.4.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-cloudwatch-test
@@ -129,9 +96,9 @@
         , Test.AWS.CloudWatch.Internal
 
     build-depends:
-          amazonka-core == 1.3.7.*
-        , amazonka-test == 1.3.7.*
-        , amazonka-cloudwatch == 1.3.7.*
+          amazonka-core == 1.4.0.*
+        , amazonka-test == 1.4.0.*
+        , amazonka-cloudwatch == 1.4.0.*
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/CloudWatch.hs b/gen/Network/AWS/CloudWatch.hs
--- a/gen/Network/AWS/CloudWatch.hs
+++ b/gen/Network/AWS/CloudWatch.hs
@@ -5,64 +5,29 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- This is the /Amazon CloudWatch API Reference/. This guide provides
--- detailed information about Amazon CloudWatch actions, data types,
--- parameters, and errors. For detailed information about Amazon CloudWatch
--- features and their associated API calls, go to the
--- <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide Amazon CloudWatch Developer Guide>.
---
--- Amazon CloudWatch is a web service that enables you to publish, monitor,
--- and manage various metrics, as well as configure alarm actions based on
--- data from metrics. For more information about this product go to
--- <http://aws.amazon.com/cloudwatch>.
---
--- For information about the namespace, metric names, and dimensions that
--- other Amazon Web Services products use to send metrics to Cloudwatch, go
--- to
--- <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html Amazon CloudWatch Metrics, Namespaces, and Dimensions Reference>
--- in the /Amazon CloudWatch Developer Guide/.
---
--- Use the following links to get started using the /Amazon CloudWatch API
--- Reference/:
---
--- -   <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Operations.html Actions>:
---     An alphabetical list of all Amazon CloudWatch actions.
--- -   <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Types.html Data Types>:
---     An alphabetical list of all Amazon CloudWatch data types.
--- -   <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CommonParameters.html Common Parameters>:
---     Parameters that all Query actions can use.
--- -   <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CommonErrors.html Common Errors>:
---     Client and server errors that all actions can return.
--- -   <http://docs.aws.amazon.com/general/latest/gr/index.html?rande.html Regions and Endpoints>:
---     Itemized regions and endpoints for all AWS products.
--- -   <http://monitoring.amazonaws.com/doc/2010-08-01/CloudWatch.wsdl WSDL Location>:
---     http:\/\/monitoring.amazonaws.com\/doc\/2010-08-01\/CloudWatch.wsdl
---
--- In addition to using the Amazon CloudWatch API, you can also use the
--- following SDKs and third-party libraries to access Amazon CloudWatch
--- programmatically.
---
--- -   <http://aws.amazon.com/documentation/sdkforjava/ AWS SDK for Java Documentation>
--- -   <http://aws.amazon.com/documentation/sdkfornet/ AWS SDK for .NET Documentation>
--- -   <http://aws.amazon.com/documentation/sdkforphp/ AWS SDK for PHP Documentation>
--- -   <http://aws.amazon.com/documentation/sdkforruby/ AWS SDK for Ruby Documentation>
---
--- Developers in the AWS developer community also provide their own
--- libraries, which you can find at the following AWS developer centers:
+-- Amazon CloudWatch monitors your Amazon Web Services (AWS) resources and
+-- the applications you run on AWS in real-time. You can use CloudWatch to
+-- collect and track metrics, which are the variables you want to measure
+-- for your resources and applications.
 --
--- -   <http://aws.amazon.com/java/ AWS Java Developer Center>
--- -   <http://aws.amazon.com/php/ AWS PHP Developer Center>
--- -   <http://aws.amazon.com/python/ AWS Python Developer Center>
--- -   <http://aws.amazon.com/ruby/ AWS Ruby Developer Center>
--- -   <http://aws.amazon.com/net/ AWS Windows and .NET Developer Center>
+-- CloudWatch alarms send notifications or automatically make changes to
+-- the resources you are monitoring based on rules that you define. For
+-- example, you can monitor the CPU usage and disk reads and writes of your
+-- Amazon Elastic Compute Cloud (Amazon EC2) instances and then use this
+-- data to determine whether you should launch additional instances to
+-- handle increased load. You can also use this data to stop under-used
+-- instances to save money.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/Welcome.html AWS API Reference>
+-- In addition to monitoring the built-in metrics that come with AWS, you
+-- can monitor your own custom metrics. With CloudWatch, you gain
+-- system-wide visibility into resource utilization, application
+-- performance, and operational health.
 module Network.AWS.CloudWatch
     (
     -- * Service Configuration
diff --git a/gen/Network/AWS/CloudWatch/DeleteAlarms.hs b/gen/Network/AWS/CloudWatch/DeleteAlarms.hs
--- a/gen/Network/AWS/CloudWatch/DeleteAlarms.hs
+++ b/gen/Network/AWS/CloudWatch/DeleteAlarms.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.DeleteAlarms
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -20,8 +20,6 @@
 --
 -- Deletes all specified alarms. In the event of an error, no alarms are
 -- deleted.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DeleteAlarms.html AWS API Reference> for DeleteAlarms.
 module Network.AWS.CloudWatch.DeleteAlarms
     (
     -- * Creating a Request
@@ -67,6 +65,8 @@
         type Rs DeleteAlarms = DeleteAlarmsResponse
         request = postQuery cloudWatch
         response = receiveNull DeleteAlarmsResponse'
+
+instance Hashable DeleteAlarms
 
 instance ToHeaders DeleteAlarms where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/CloudWatch/DescribeAlarmHistory.hs b/gen/Network/AWS/CloudWatch/DescribeAlarmHistory.hs
--- a/gen/Network/AWS/CloudWatch/DescribeAlarmHistory.hs
+++ b/gen/Network/AWS/CloudWatch/DescribeAlarmHistory.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.DescribeAlarmHistory
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,7 +22,8 @@
 -- or item type. If an alarm name is not specified, Amazon CloudWatch
 -- returns histories for all of the owner\'s alarms.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarmHistory.html AWS API Reference> for DescribeAlarmHistory.
+-- Amazon CloudWatch retains the history of an alarm for two weeks, whether
+-- or not you delete the alarm.
 --
 -- This operation returns paginated results.
 module Network.AWS.CloudWatch.DescribeAlarmHistory
@@ -137,6 +138,8 @@
                      <*> (x .@? "NextToken")
                      <*> (pure (fromEnum s)))
 
+instance Hashable DescribeAlarmHistory
+
 instance ToHeaders DescribeAlarmHistory where
         toHeaders = const mempty
 
@@ -155,7 +158,7 @@
                "NextToken" =: _dahNextToken,
                "MaxRecords" =: _dahMaxRecords]
 
--- | The output for the DescribeAlarmHistory action.
+-- | The output for the < DescribeAlarmHistory> action.
 --
 -- /See:/ 'describeAlarmHistoryResponse' smart constructor.
 data DescribeAlarmHistoryResponse = DescribeAlarmHistoryResponse'
diff --git a/gen/Network/AWS/CloudWatch/DescribeAlarms.hs b/gen/Network/AWS/CloudWatch/DescribeAlarms.hs
--- a/gen/Network/AWS/CloudWatch/DescribeAlarms.hs
+++ b/gen/Network/AWS/CloudWatch/DescribeAlarms.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.DescribeAlarms
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -23,8 +23,6 @@
 -- a prefix for the alarm name, the alarm state, or a prefix for any
 -- action.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html AWS API Reference> for DescribeAlarms.
---
 -- This operation returns paginated results.
 module Network.AWS.CloudWatch.DescribeAlarms
     (
@@ -138,6 +136,8 @@
                      <*> (x .@? "NextToken")
                      <*> (pure (fromEnum s)))
 
+instance Hashable DescribeAlarms
+
 instance ToHeaders DescribeAlarms where
         toHeaders = const mempty
 
@@ -157,7 +157,7 @@
                  toQuery (toQueryList "member" <$> _daAlarmNames),
                "MaxRecords" =: _daMaxRecords]
 
--- | The output for the DescribeAlarms action.
+-- | The output for the < DescribeAlarms> action.
 --
 -- /See:/ 'describeAlarmsResponse' smart constructor.
 data DescribeAlarmsResponse = DescribeAlarmsResponse'
diff --git a/gen/Network/AWS/CloudWatch/DescribeAlarmsForMetric.hs b/gen/Network/AWS/CloudWatch/DescribeAlarmsForMetric.hs
--- a/gen/Network/AWS/CloudWatch/DescribeAlarmsForMetric.hs
+++ b/gen/Network/AWS/CloudWatch/DescribeAlarmsForMetric.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.DescribeAlarmsForMetric
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -20,8 +20,6 @@
 --
 -- Retrieves all alarms for a single metric. Specify a statistic, period,
 -- or unit to filter the set of alarms further.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarmsForMetric.html AWS API Reference> for DescribeAlarmsForMetric.
 module Network.AWS.CloudWatch.DescribeAlarmsForMetric
     (
     -- * Creating a Request
@@ -93,7 +91,9 @@
 dafmPeriod :: Lens' DescribeAlarmsForMetric (Maybe Natural)
 dafmPeriod = lens _dafmPeriod (\ s a -> s{_dafmPeriod = a}) . mapping _Nat;
 
--- | The list of dimensions associated with the metric.
+-- | The list of dimensions associated with the metric. If the metric has any
+-- associated dimensions, you must specify them in order for the
+-- DescribeAlarmsForMetric to succeed.
 dafmDimensions :: Lens' DescribeAlarmsForMetric [Dimension]
 dafmDimensions = lens _dafmDimensions (\ s a -> s{_dafmDimensions = a}) . _Default . _Coerce;
 
@@ -125,6 +125,8 @@
                       may (parseXMLList "member"))
                      <*> (pure (fromEnum s)))
 
+instance Hashable DescribeAlarmsForMetric
+
 instance ToHeaders DescribeAlarmsForMetric where
         toHeaders = const mempty
 
@@ -144,7 +146,7 @@
                "MetricName" =: _dafmMetricName,
                "Namespace" =: _dafmNamespace]
 
--- | The output for the DescribeAlarmsForMetric action.
+-- | The output for the < DescribeAlarmsForMetric> action.
 --
 -- /See:/ 'describeAlarmsForMetricResponse' smart constructor.
 data DescribeAlarmsForMetricResponse = DescribeAlarmsForMetricResponse'
diff --git a/gen/Network/AWS/CloudWatch/DisableAlarmActions.hs b/gen/Network/AWS/CloudWatch/DisableAlarmActions.hs
--- a/gen/Network/AWS/CloudWatch/DisableAlarmActions.hs
+++ b/gen/Network/AWS/CloudWatch/DisableAlarmActions.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.DisableAlarmActions
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,8 +21,6 @@
 -- Disables actions for the specified alarms. When an alarm\'s actions are
 -- disabled the alarm\'s state may change, but none of the alarm\'s actions
 -- will execute.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DisableAlarmActions.html AWS API Reference> for DisableAlarmActions.
 module Network.AWS.CloudWatch.DisableAlarmActions
     (
     -- * Creating a Request
@@ -71,6 +69,8 @@
              DisableAlarmActionsResponse
         request = postQuery cloudWatch
         response = receiveNull DisableAlarmActionsResponse'
+
+instance Hashable DisableAlarmActions
 
 instance ToHeaders DisableAlarmActions where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/CloudWatch/EnableAlarmActions.hs b/gen/Network/AWS/CloudWatch/EnableAlarmActions.hs
--- a/gen/Network/AWS/CloudWatch/EnableAlarmActions.hs
+++ b/gen/Network/AWS/CloudWatch/EnableAlarmActions.hs
@@ -12,15 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.EnableAlarmActions
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Enables actions for the specified alarms.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_EnableAlarmActions.html AWS API Reference> for EnableAlarmActions.
 module Network.AWS.CloudWatch.EnableAlarmActions
     (
     -- * Creating a Request
@@ -67,6 +65,8 @@
              EnableAlarmActionsResponse
         request = postQuery cloudWatch
         response = receiveNull EnableAlarmActionsResponse'
+
+instance Hashable EnableAlarmActions
 
 instance ToHeaders EnableAlarmActions where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/CloudWatch/GetMetricStatistics.hs b/gen/Network/AWS/CloudWatch/GetMetricStatistics.hs
--- a/gen/Network/AWS/CloudWatch/GetMetricStatistics.hs
+++ b/gen/Network/AWS/CloudWatch/GetMetricStatistics.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.GetMetricStatistics
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -20,13 +20,14 @@
 --
 -- Gets statistics for the specified metric.
 --
--- The maximum number of data points returned from a single
--- 'GetMetricStatistics' request is 1,440, wereas the maximum number of
--- data points that can be queried is 50,850. If you make a request that
+-- The maximum number of data points that can be queried is 50,850, whereas
+-- the maximum number of data points returned from a single
+-- 'GetMetricStatistics' request is 1,440. If you make a request that
 -- generates more than 1,440 data points, Amazon CloudWatch returns an
 -- error. In such a case, you can alter the request by narrowing the
 -- specified time range or increasing the specified period. Alternatively,
 -- you can make multiple requests across adjacent time ranges.
+-- 'GetMetricStatistics' does not return the data in chronological order.
 --
 -- Amazon CloudWatch aggregates data points based on the length of the
 -- 'period' that you specify. For example, if you request statistics with a
@@ -43,12 +44,10 @@
 -- -   Statistics for up to 2 instances over a span of 2 weeks
 --
 -- For information about the namespace, metric names, and dimensions that
--- other Amazon Web Services products use to send metrics to Cloudwatch, go
+-- other Amazon Web Services products use to send metrics to CloudWatch, go
 -- to
 -- <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html Amazon CloudWatch Metrics, Namespaces, and Dimensions Reference>
 -- in the /Amazon CloudWatch Developer Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html AWS API Reference> for GetMetricStatistics.
 module Network.AWS.CloudWatch.GetMetricStatistics
     (
     -- * Creating a Request
@@ -149,13 +148,24 @@
 
 -- | The time stamp to use for determining the first datapoint to return. The
 -- value specified is inclusive; results include datapoints with the time
--- stamp specified.
+-- stamp specified. The time stamp must be in ISO 8601 UTC format (e.g.,
+-- 2014-09-03T23:00:00Z).
+--
+-- The specified start time is rounded down to the nearest value.
+-- Datapoints are returned for start times up to two weeks in the past.
+-- Specified start times that are more than two weeks in the past will not
+-- return datapoints for metrics that are older than two weeks.
+--
+-- Data that is timestamped 24 hours or more in the past may take in excess
+-- of 48 hours to become available from submission time using
+-- 'GetMetricStatistics'.
 gmsStartTime :: Lens' GetMetricStatistics UTCTime
 gmsStartTime = lens _gmsStartTime (\ s a -> s{_gmsStartTime = a}) . _Time;
 
 -- | The time stamp to use for determining the last datapoint to return. The
 -- value specified is exclusive; results will include datapoints up to the
--- time stamp specified.
+-- time stamp specified. The time stamp must be in ISO 8601 UTC format
+-- (e.g., 2014-09-03T23:00:00Z).
 gmsEndTime :: Lens' GetMetricStatistics UTCTime
 gmsEndTime = lens _gmsEndTime (\ s a -> s{_gmsEndTime = a}) . _Time;
 
@@ -166,11 +176,9 @@
 gmsPeriod = lens _gmsPeriod (\ s a -> s{_gmsPeriod = a}) . _Nat;
 
 -- | The metric statistics to return. For information about specific
--- statistics returned by GetMetricStatistics, go to
--- <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/index.html?CHAP_TerminologyandKeyConcepts.html#Statistic Statistics>
+-- statistics returned by GetMetricStatistics, see
+-- <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Statistic Statistics>
 -- in the /Amazon CloudWatch Developer Guide/.
---
--- Valid Values: 'Average | Sum | SampleCount | Maximum | Minimum'
 gmsStatistics :: Lens' GetMetricStatistics (NonEmpty Statistic)
 gmsStatistics = lens _gmsStatistics (\ s a -> s{_gmsStatistics = a}) . _List1;
 
@@ -187,6 +195,8 @@
                      <*> (x .@? "Label")
                      <*> (pure (fromEnum s)))
 
+instance Hashable GetMetricStatistics
+
 instance ToHeaders GetMetricStatistics where
         toHeaders = const mempty
 
@@ -206,7 +216,7 @@
                "EndTime" =: _gmsEndTime, "Period" =: _gmsPeriod,
                "Statistics" =: toQueryList "member" _gmsStatistics]
 
--- | The output for the GetMetricStatistics action.
+-- | The output for the < GetMetricStatistics> action.
 --
 -- /See:/ 'getMetricStatisticsResponse' smart constructor.
 data GetMetricStatisticsResponse = GetMetricStatisticsResponse'
diff --git a/gen/Network/AWS/CloudWatch/ListMetrics.hs b/gen/Network/AWS/CloudWatch/ListMetrics.hs
--- a/gen/Network/AWS/CloudWatch/ListMetrics.hs
+++ b/gen/Network/AWS/CloudWatch/ListMetrics.hs
@@ -12,18 +12,25 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.ListMetrics
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Returns a list of valid metrics stored for the AWS account owner.
--- Returned metrics can be used with GetMetricStatistics to obtain
+-- Returned metrics can be used with < GetMetricStatistics> to obtain
 -- statistical data for a given metric.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html AWS API Reference> for ListMetrics.
+-- Up to 500 results are returned for any one call. To retrieve further
+-- results, use returned 'NextToken' values with subsequent 'ListMetrics'
+-- operations.
 --
+-- If you create a metric with the < PutMetricData> action, allow up to
+-- fifteen minutes for the metric to appear in calls to the 'ListMetrics'
+-- action. Statistics about the metric, however, are available sooner using
+-- < GetMetricStatistics>.
+--
 -- This operation returns paginated results.
 module Network.AWS.CloudWatch.ListMetrics
     (
@@ -118,6 +125,8 @@
                      <*> (x .@? "NextToken")
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListMetrics
+
 instance ToHeaders ListMetrics where
         toHeaders = const mempty
 
@@ -135,7 +144,7 @@
                "Dimensions" =:
                  toQuery (toQueryList "member" <$> _lmDimensions)]
 
--- | The output for the ListMetrics action.
+-- | The output for the < ListMetrics> action.
 --
 -- /See:/ 'listMetricsResponse' smart constructor.
 data ListMetricsResponse = ListMetricsResponse'
diff --git a/gen/Network/AWS/CloudWatch/PutMetricAlarm.hs b/gen/Network/AWS/CloudWatch/PutMetricAlarm.hs
--- a/gen/Network/AWS/CloudWatch/PutMetricAlarm.hs
+++ b/gen/Network/AWS/CloudWatch/PutMetricAlarm.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.PutMetricAlarm
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -27,7 +27,36 @@
 -- set appropriately. Any actions associated with the 'StateValue' is then
 -- executed.
 --
--- /See:/ <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html AWS API Reference> for PutMetricAlarm.
+-- When updating an existing alarm, its 'StateValue' is left unchanged.
+--
+-- If you are using an AWS Identity and Access Management (IAM) account to
+-- create or modify an alarm, you must have the following Amazon EC2
+-- permissions:
+--
+-- -   'ec2:DescribeInstanceStatus' and 'ec2:DescribeInstances' for all
+--     alarms on Amazon EC2 instance status metrics.
+-- -   'ec2:StopInstances' for alarms with stop actions.
+-- -   'ec2:TerminateInstances' for alarms with terminate actions.
+-- -   'ec2:DescribeInstanceRecoveryAttribute', and 'ec2:RecoverInstances'
+--     for alarms with recover actions.
+--
+-- If you have read\/write permissions for Amazon CloudWatch but not for
+-- Amazon EC2, you can still create an alarm but the stop or terminate
+-- actions won\'t be performed on the Amazon EC2 instance. However, if you
+-- are later granted permission to use the associated Amazon EC2 APIs, the
+-- alarm actions you created earlier will be performed. For more
+-- information about IAM permissions, see
+-- <http://docs.aws.amazon.com//IAM/latest/UserGuide/PermissionsAndPolicies.html Permissions and Policies>
+-- in /Using IAM/.
+--
+-- If you are using an IAM role (e.g., an Amazon EC2 instance profile), you
+-- cannot stop or terminate the instance using alarm actions. However, you
+-- can still see the alarm state and perform any other actions such as
+-- Amazon SNS notifications or Auto Scaling policies.
+--
+-- If you are using temporary security credentials granted using the AWS
+-- Security Token Service (AWS STS), you cannot stop or terminate an Amazon
+-- EC2 instance using alarm actions.
 module Network.AWS.CloudWatch.PutMetricAlarm
     (
     -- * Creating a Request
@@ -149,8 +178,23 @@
 
 -- | The list of actions to execute when this alarm transitions into an 'OK'
 -- state from any other state. Each action is specified as an Amazon
--- Resource Number (ARN). Currently the only action supported is publishing
--- to an Amazon SNS topic or an Amazon Auto Scaling policy.
+-- Resource Name (ARN).
+--
+-- Valid Values: arn:aws:automate:/region (e.g., us-east-1)/:ec2:stop |
+-- arn:aws:automate:/region (e.g., us-east-1)/:ec2:terminate |
+-- arn:aws:automate:/region (e.g., us-east-1)/:ec2:recover
+--
+-- Valid Values (for use with IAM roles):
+-- arn:aws:swf:us-east-1:{/customer-account/}:action\/actions\/AWS_EC2.InstanceId.Stop\/1.0
+-- |
+-- arn:aws:swf:us-east-1:{/customer-account/}:action\/actions\/AWS_EC2.InstanceId.Terminate\/1.0
+-- |
+-- arn:aws:swf:us-east-1:{/customer-account/}:action\/actions\/AWS_EC2.InstanceId.Reboot\/1.0
+--
+-- __Note:__ You must create at least one stop, terminate, or reboot alarm
+-- using the Amazon EC2 or CloudWatch console to create the
+-- __EC2ActionsAccess__ IAM role for the first time. After this IAM role is
+-- created, you can create stop, terminate, or reboot alarms using the CLI.
 pmaOKActions :: Lens' PutMetricAlarm [Text]
 pmaOKActions = lens _pmaOKActions (\ s a -> s{_pmaOKActions = a}) . _Default . _Coerce;
 
@@ -161,8 +205,23 @@
 
 -- | The list of actions to execute when this alarm transitions into an
 -- 'INSUFFICIENT_DATA' state from any other state. Each action is specified
--- as an Amazon Resource Number (ARN). Currently the only action supported
--- is publishing to an Amazon SNS topic or an Amazon Auto Scaling policy.
+-- as an Amazon Resource Name (ARN).
+--
+-- Valid Values: arn:aws:automate:/region (e.g., us-east-1)/:ec2:stop |
+-- arn:aws:automate:/region (e.g., us-east-1)/:ec2:terminate |
+-- arn:aws:automate:/region (e.g., us-east-1)/:ec2:recover
+--
+-- Valid Values (for use with IAM roles):
+-- arn:aws:swf:us-east-1:{/customer-account/}:action\/actions\/AWS_EC2.InstanceId.Stop\/1.0
+-- |
+-- arn:aws:swf:us-east-1:{/customer-account/}:action\/actions\/AWS_EC2.InstanceId.Terminate\/1.0
+-- |
+-- arn:aws:swf:us-east-1:{/customer-account/}:action\/actions\/AWS_EC2.InstanceId.Reboot\/1.0
+--
+-- __Note:__ You must create at least one stop, terminate, or reboot alarm
+-- using the Amazon EC2 or CloudWatch console to create the
+-- __EC2ActionsAccess__ IAM role for the first time. After this IAM role is
+-- created, you can create stop, terminate, or reboot alarms using the CLI.
 pmaInsufficientDataActions :: Lens' PutMetricAlarm [Text]
 pmaInsufficientDataActions = lens _pmaInsufficientDataActions (\ s a -> s{_pmaInsufficientDataActions = a}) . _Default . _Coerce;
 
@@ -172,12 +231,36 @@
 
 -- | The list of actions to execute when this alarm transitions into an
 -- 'ALARM' state from any other state. Each action is specified as an
--- Amazon Resource Number (ARN). Currently the only action supported is
--- publishing to an Amazon SNS topic or an Amazon Auto Scaling policy.
+-- Amazon Resource Name (ARN).
+--
+-- Valid Values: arn:aws:automate:/region (e.g., us-east-1)/:ec2:stop |
+-- arn:aws:automate:/region (e.g., us-east-1)/:ec2:terminate |
+-- arn:aws:automate:/region (e.g., us-east-1)/:ec2:recover
+--
+-- Valid Values (for use with IAM roles):
+-- arn:aws:swf:us-east-1:{/customer-account/}:action\/actions\/AWS_EC2.InstanceId.Stop\/1.0
+-- |
+-- arn:aws:swf:us-east-1:{/customer-account/}:action\/actions\/AWS_EC2.InstanceId.Terminate\/1.0
+-- |
+-- arn:aws:swf:us-east-1:{/customer-account/}:action\/actions\/AWS_EC2.InstanceId.Reboot\/1.0
+--
+-- __Note:__ You must create at least one stop, terminate, or reboot alarm
+-- using the Amazon EC2 or CloudWatch console to create the
+-- __EC2ActionsAccess__ IAM role for the first time. After this IAM role is
+-- created, you can create stop, terminate, or reboot alarms using the CLI.
 pmaAlarmActions :: Lens' PutMetricAlarm [Text]
 pmaAlarmActions = lens _pmaAlarmActions (\ s a -> s{_pmaAlarmActions = a}) . _Default . _Coerce;
 
--- | The unit for the alarm\'s associated metric.
+-- | The statistic\'s unit of measure. For example, the units for the Amazon
+-- EC2 NetworkIn metric are Bytes because NetworkIn tracks the number of
+-- bytes that an instance receives on all network interfaces. You can also
+-- specify a unit when you create a custom metric. Units help provide
+-- conceptual meaning to your data. Metric data points that specify a unit
+-- of measure, such as Percent, are aggregated separately.
+--
+-- __Note:__ If you specify a unit, you must use a unit that is appropriate
+-- for the metric. Otherwise, this can cause an Amazon CloudWatch alarm to
+-- get stuck in the INSUFFICIENT DATA state.
 pmaUnit :: Lens' PutMetricAlarm (Maybe StandardUnit)
 pmaUnit = lens _pmaUnit (\ s a -> s{_pmaUnit = a});
 
@@ -221,6 +304,8 @@
         type Rs PutMetricAlarm = PutMetricAlarmResponse
         request = postQuery cloudWatch
         response = receiveNull PutMetricAlarmResponse'
+
+instance Hashable PutMetricAlarm
 
 instance ToHeaders PutMetricAlarm where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/CloudWatch/PutMetricData.hs b/gen/Network/AWS/CloudWatch/PutMetricData.hs
--- a/gen/Network/AWS/CloudWatch/PutMetricData.hs
+++ b/gen/Network/AWS/CloudWatch/PutMetricData.hs
@@ -12,32 +12,30 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.PutMetricData
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Publishes metric data points to Amazon CloudWatch. Amazon Cloudwatch
+-- Publishes metric data points to Amazon CloudWatch. Amazon CloudWatch
 -- associates the data points with the specified metric. If the specified
--- metric does not exist, Amazon CloudWatch creates the metric. It can take
--- up to fifteen minutes for a new metric to appear in calls to the
--- ListMetrics action.
+-- metric does not exist, Amazon CloudWatch creates the metric. When Amazon
+-- CloudWatch creates a metric, it can take up to fifteen minutes for the
+-- metric to appear in calls to the < ListMetrics> action.
 --
--- The size of a PutMetricData request is limited to 8 KB for HTTP GET
--- requests and 40 KB for HTTP POST requests.
+-- Each 'PutMetricData' request is limited to 8 KB in size for HTTP GET
+-- requests and is limited to 40 KB in size for HTTP POST requests.
 --
 -- Although the 'Value' parameter accepts numbers of type 'Double', Amazon
--- CloudWatch truncates values with very large exponents. Values with
--- base-10 exponents greater than 126 (1 x 10^126) are truncated. Likewise,
--- values with base-10 exponents less than -130 (1 x 10^-130) are also
--- truncated.
+-- CloudWatch rejects values that are either too small or too large. Values
+-- must be in the range of 8.515920e-109 to 1.174271e+108 (Base 10) or
+-- 2e-360 to 2e360 (Base 2). In addition, special values (e.g., NaN,
+-- +Infinity, -Infinity) are not supported.
 --
 -- Data that is timestamped 24 hours or more in the past may take in excess
 -- of 48 hours to become available from submission time using
 -- 'GetMetricStatistics'.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html AWS API Reference> for PutMetricData.
 module Network.AWS.CloudWatch.PutMetricData
     (
     -- * Creating a Request
@@ -82,6 +80,10 @@
     }
 
 -- | The namespace for the metric data.
+--
+-- You cannot specify a namespace that begins with \"AWS\/\". Namespaces
+-- that begin with \"AWS\/\" are reserved for other Amazon Web Services
+-- products that send metrics to Amazon CloudWatch.
 pmdNamespace :: Lens' PutMetricData Text
 pmdNamespace = lens _pmdNamespace (\ s a -> s{_pmdNamespace = a});
 
@@ -93,6 +95,8 @@
         type Rs PutMetricData = PutMetricDataResponse
         request = postQuery cloudWatch
         response = receiveNull PutMetricDataResponse'
+
+instance Hashable PutMetricData
 
 instance ToHeaders PutMetricData where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/CloudWatch/SetAlarmState.hs b/gen/Network/AWS/CloudWatch/SetAlarmState.hs
--- a/gen/Network/AWS/CloudWatch/SetAlarmState.hs
+++ b/gen/Network/AWS/CloudWatch/SetAlarmState.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.SetAlarmState
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -20,11 +20,14 @@
 --
 -- Temporarily sets the state of an alarm. When the updated 'StateValue'
 -- differs from the previous value, the action configured for the
--- appropriate state is invoked. This is not a permanent change. The next
--- periodic alarm check (in about a minute) will set the alarm to its
--- actual state.
---
--- /See:/ <http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_SetAlarmState.html AWS API Reference> for SetAlarmState.
+-- appropriate state is invoked. For example, if your alarm is configured
+-- to send an Amazon SNS message when an alarm is triggered, temporarily
+-- changing the alarm\'s state to __ALARM__ will send an Amazon SNS
+-- message. This is not a permanent change. The next periodic alarm check
+-- (in about a minute) will set the alarm to its actual state. Because the
+-- alarm state change happens very quickly, it is typically only visibile
+-- in the alarm\'s __History__ tab in the Amazon CloudWatch console or
+-- through 'DescribeAlarmHistory'.
 module Network.AWS.CloudWatch.SetAlarmState
     (
     -- * Creating a Request
@@ -103,6 +106,8 @@
         type Rs SetAlarmState = SetAlarmStateResponse
         request = postQuery cloudWatch
         response = receiveNull SetAlarmStateResponse'
+
+instance Hashable SetAlarmState
 
 instance ToHeaders SetAlarmState where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/CloudWatch/Types.hs b/gen/Network/AWS/CloudWatch/Types.hs
--- a/gen/Network/AWS/CloudWatch/Types.hs
+++ b/gen/Network/AWS/CloudWatch/Types.hs
@@ -4,7 +4,7 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.Types
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -152,6 +152,7 @@
         , _retryCheck = check
         }
     check e
+      | has (hasStatus 429) e = Just "too_many_requests"
       | has (hasCode "ThrottlingException" . hasStatus 400) e =
           Just "throttling_exception"
       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
diff --git a/gen/Network/AWS/CloudWatch/Types/Product.hs b/gen/Network/AWS/CloudWatch/Types/Product.hs
--- a/gen/Network/AWS/CloudWatch/Types/Product.hs
+++ b/gen/Network/AWS/CloudWatch/Types/Product.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.Types.Product
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,7 +22,7 @@
 import           Network.AWS.Prelude
 
 -- | The 'AlarmHistoryItem' data type contains descriptive information about
--- the history of a specific alarm. If you call DescribeAlarmHistory,
+-- the history of a specific alarm. If you call < DescribeAlarmHistory>,
 -- Amazon CloudWatch returns this data type as part of the
 -- DescribeAlarmHistoryResult data type.
 --
@@ -75,12 +75,7 @@
 ahiHistorySummary :: Lens' AlarmHistoryItem (Maybe Text)
 ahiHistorySummary = lens _ahiHistorySummary (\ s a -> s{_ahiHistorySummary = a});
 
--- | The time stamp for the alarm history item. Amazon CloudWatch uses
--- Coordinated Universal Time (UTC) when returning time stamps, which do
--- not accommodate seasonal adjustments such as daylight savings time. For
--- more information, see
--- <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp Time stamps>
--- in the /Amazon CloudWatch Developer Guide/.
+-- | The time stamp for the alarm history item.
 ahiTimestamp :: Lens' AlarmHistoryItem (Maybe UTCTime)
 ahiTimestamp = lens _ahiTimestamp (\ s a -> s{_ahiTimestamp = a}) . mapping _Time;
 
@@ -92,6 +87,8 @@
                 <*> (x .@? "HistorySummary")
                 <*> (x .@? "Timestamp")
 
+instance Hashable AlarmHistoryItem
+
 -- | The 'Datapoint' data type encapsulates the statistical data that Amazon
 -- CloudWatch computes from metric data.
 --
@@ -161,12 +158,7 @@
 dUnit :: Lens' Datapoint (Maybe StandardUnit)
 dUnit = lens _dUnit (\ s a -> s{_dUnit = a});
 
--- | The time stamp used for the datapoint. Amazon CloudWatch uses
--- Coordinated Universal Time (UTC) when returning time stamps, which do
--- not accommodate seasonal adjustments such as daylight savings time. For
--- more information, see
--- <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp Time stamps>
--- in the /Amazon CloudWatch Developer Guide/.
+-- | The time stamp used for the datapoint.
 dTimestamp :: Lens' Datapoint (Maybe UTCTime)
 dTimestamp = lens _dTimestamp (\ s a -> s{_dTimestamp = a}) . mapping _Time;
 
@@ -180,10 +172,12 @@
                 <*> (x .@? "Unit")
                 <*> (x .@? "Timestamp")
 
+instance Hashable Datapoint
+
 -- | The 'Dimension' data type further expands on the identity of a metric
 -- using a Name, Value pair.
 --
--- For examples that use one or more dimensions, see PutMetricData.
+-- For examples that use one or more dimensions, see < PutMetricData>.
 --
 -- /See:/ 'dimension' smart constructor.
 data Dimension = Dimension'
@@ -220,11 +214,14 @@
         parseXML x
           = Dimension' <$> (x .@ "Name") <*> (x .@ "Value")
 
+instance Hashable Dimension
+
 instance ToQuery Dimension where
         toQuery Dimension'{..}
           = mconcat ["Name" =: _dName, "Value" =: _dValue]
 
--- | The 'DimensionFilter' data type is used to filter ListMetrics results.
+-- | The 'DimensionFilter' data type is used to filter < ListMetrics>
+-- results.
 --
 -- /See:/ 'dimensionFilter' smart constructor.
 data DimensionFilter = DimensionFilter'
@@ -249,6 +246,9 @@
     }
 
 -- | The value of the dimension to be matched.
+--
+-- Specifying a 'Name' without specifying a 'Value' returns all values
+-- associated with that 'Name'.
 dfValue :: Lens' DimensionFilter (Maybe Text)
 dfValue = lens _dfValue (\ s a -> s{_dfValue = a});
 
@@ -256,13 +256,15 @@
 dfName :: Lens' DimensionFilter Text
 dfName = lens _dfName (\ s a -> s{_dfName = a});
 
+instance Hashable DimensionFilter
+
 instance ToQuery DimensionFilter where
         toQuery DimensionFilter'{..}
           = mconcat ["Value" =: _dfValue, "Name" =: _dfName]
 
 -- | The 'Metric' data type contains information about a specific metric. If
--- you call ListMetrics, Amazon CloudWatch returns information contained by
--- this data type.
+-- you call < ListMetrics>, Amazon CloudWatch returns information contained
+-- by this data type.
 --
 -- The example in the Examples section publishes two metrics named buffers
 -- and latency. Both metrics are in the examples namespace. Both metrics
@@ -312,8 +314,10 @@
                 (x .@? "Dimensions" .!@ mempty >>=
                    may (parseXMLList "member"))
 
--- | The MetricAlarm data type represents an alarm. You can use
--- PutMetricAlarm to create or update an alarm.
+instance Hashable Metric
+
+-- | The < MetricAlarm> data type represents an alarm. You can use
+-- < PutMetricAlarm> to create or update an alarm.
 --
 -- /See:/ 'metricAlarm' smart constructor.
 data MetricAlarm = MetricAlarm'
@@ -416,12 +420,7 @@
 maAlarmName :: Lens' MetricAlarm (Maybe Text)
 maAlarmName = lens _maAlarmName (\ s a -> s{_maAlarmName = a});
 
--- | The time stamp of the last update to the alarm\'s state. Amazon
--- CloudWatch uses Coordinated Universal Time (UTC) when returning time
--- stamps, which do not accommodate seasonal adjustments such as daylight
--- savings time. For more information, see
--- <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp Time stamps>
--- in the /Amazon CloudWatch Developer Guide/.
+-- | The time stamp of the last update to the alarm\'s state.
 maStateUpdatedTimestamp :: Lens' MetricAlarm (Maybe UTCTime)
 maStateUpdatedTimestamp = lens _maStateUpdatedTimestamp (\ s a -> s{_maStateUpdatedTimestamp = a}) . mapping _Time;
 
@@ -454,8 +453,7 @@
 
 -- | The list of actions to execute when this alarm transitions into an 'OK'
 -- state from any other state. Each action is specified as an Amazon
--- Resource Number (ARN). Currently the only actions supported are
--- publishing to an Amazon SNS topic and triggering an Auto Scaling policy.
+-- Resource Name (ARN).
 maOKActions :: Lens' MetricAlarm [Text]
 maOKActions = lens _maOKActions (\ s a -> s{_maOKActions = a}) . _Default . _Coerce;
 
@@ -467,12 +465,7 @@
 maThreshold :: Lens' MetricAlarm (Maybe Double)
 maThreshold = lens _maThreshold (\ s a -> s{_maThreshold = a});
 
--- | The time stamp of the last update to the alarm configuration. Amazon
--- CloudWatch uses Coordinated Universal Time (UTC) when returning time
--- stamps, which do not accommodate seasonal adjustments such as daylight
--- savings time. For more information, see
--- <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp Time stamps>
--- in the /Amazon CloudWatch Developer Guide/.
+-- | The time stamp of the last update to the alarm configuration.
 maAlarmConfigurationUpdatedTimestamp :: Lens' MetricAlarm (Maybe UTCTime)
 maAlarmConfigurationUpdatedTimestamp = lens _maAlarmConfigurationUpdatedTimestamp (\ s a -> s{_maAlarmConfigurationUpdatedTimestamp = a}) . mapping _Time;
 
@@ -483,9 +476,7 @@
 
 -- | The list of actions to execute when this alarm transitions into an
 -- 'INSUFFICIENT_DATA' state from any other state. Each action is specified
--- as an Amazon Resource Number (ARN). Currently the only actions supported
--- are publishing to an Amazon SNS topic or triggering an Auto Scaling
--- policy.
+-- as an Amazon Resource Name (ARN).
 --
 -- The current WSDL lists this attribute as 'UnknownActions'.
 maInsufficientDataActions :: Lens' MetricAlarm [Text]
@@ -509,8 +500,7 @@
 
 -- | The list of actions to execute when this alarm transitions into an
 -- 'ALARM' state from any other state. Each action is specified as an
--- Amazon Resource Number (ARN). Currently the only actions supported are
--- publishing to an Amazon SNS topic and triggering an Auto Scaling policy.
+-- Amazon Resource Name (ARN).
 maAlarmActions :: Lens' MetricAlarm [Text]
 maAlarmActions = lens _maAlarmActions (\ s a -> s{_maAlarmActions = a}) . _Default . _Coerce;
 
@@ -555,8 +545,10 @@
                 <*> (x .@? "Unit")
                 <*> (x .@? "Statistic")
 
+instance Hashable MetricAlarm
+
 -- | The 'MetricDatum' data type encapsulates the information sent with
--- PutMetricData to either create a new metric or add new values to be
+-- < PutMetricData> to either create a new metric or add new values to be
 -- aggregated into an existing metric.
 --
 -- /See:/ 'metricDatum' smart constructor.
@@ -600,10 +592,10 @@
 -- | The value for the metric.
 --
 -- Although the 'Value' parameter accepts numbers of type 'Double', Amazon
--- CloudWatch truncates values with very large exponents. Values with
--- base-10 exponents greater than 126 (1 x 10^126) are truncated. Likewise,
--- values with base-10 exponents less than -130 (1 x 10^-130) are also
--- truncated.
+-- CloudWatch rejects values that are either too small or too large. Values
+-- must be in the range of 8.515920e-109 to 1.174271e+108 (Base 10) or
+-- 2e-360 to 2e360 (Base 2). In addition, special values (e.g., NaN,
+-- +Infinity, -Infinity) are not supported.
 mdValue :: Lens' MetricDatum (Maybe Double)
 mdValue = lens _mdValue (\ s a -> s{_mdValue = a});
 
@@ -617,13 +609,9 @@
 mdUnit :: Lens' MetricDatum (Maybe StandardUnit)
 mdUnit = lens _mdUnit (\ s a -> s{_mdUnit = a});
 
--- | The time stamp used for the metric. If not specified, the default value
--- is set to the time the metric data was received. Amazon CloudWatch uses
--- Coordinated Universal Time (UTC) when returning time stamps, which do
--- not accommodate seasonal adjustments such as daylight savings time. For
--- more information, see
--- <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp Time stamps>
--- in the /Amazon CloudWatch Developer Guide/.
+-- | The time stamp used for the metric in ISO 8601 Universal Coordinated
+-- Time (UTC) format. If not specified, the default value is set to the
+-- time the metric data was received.
 mdTimestamp :: Lens' MetricDatum (Maybe UTCTime)
 mdTimestamp = lens _mdTimestamp (\ s a -> s{_mdTimestamp = a}) . mapping _Time;
 
@@ -635,6 +623,8 @@
 mdMetricName :: Lens' MetricDatum Text
 mdMetricName = lens _mdMetricName (\ s a -> s{_mdMetricName = a});
 
+instance Hashable MetricDatum
+
 instance ToQuery MetricDatum where
         toQuery MetricDatum'{..}
           = mconcat
@@ -646,7 +636,7 @@
                "MetricName" =: _mdMetricName]
 
 -- | The 'StatisticSet' data type describes the 'StatisticValues' component
--- of MetricDatum, and represents a set of statistics that describes a
+-- of < MetricDatum>, and represents a set of statistics that describes a
 -- specific metric.
 --
 -- /See:/ 'statisticSet' smart constructor.
@@ -697,6 +687,8 @@
 -- | The maximum value of the sample set.
 ssMaximum :: Lens' StatisticSet Double
 ssMaximum = lens _ssMaximum (\ s a -> s{_ssMaximum = a});
+
+instance Hashable StatisticSet
 
 instance ToQuery StatisticSet where
         toQuery StatisticSet'{..}
diff --git a/gen/Network/AWS/CloudWatch/Types/Sum.hs b/gen/Network/AWS/CloudWatch/Types/Sum.hs
--- a/gen/Network/AWS/CloudWatch/Types/Sum.hs
+++ b/gen/Network/AWS/CloudWatch/Types/Sum.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.Types.Sum
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/gen/Network/AWS/CloudWatch/Waiters.hs b/gen/Network/AWS/CloudWatch/Waiters.hs
--- a/gen/Network/AWS/CloudWatch/Waiters.hs
+++ b/gen/Network/AWS/CloudWatch/Waiters.hs
@@ -7,7 +7,7 @@
 
 -- |
 -- Module      : Network.AWS.CloudWatch.Waiters
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -2,7 +2,7 @@
 
 -- |
 -- Module      : Main
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/test/Test/AWS/CloudWatch.hs b/test/Test/AWS/CloudWatch.hs
--- a/test/Test/AWS/CloudWatch.hs
+++ b/test/Test/AWS/CloudWatch.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 
 -- Module      : Test.AWS.CloudWatch
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : This Source Code Form is subject to the terms of
 --               the Mozilla Public License, v. 2.0.
 --               A copy of the MPL can be found in the LICENSE file or
diff --git a/test/Test/AWS/CloudWatch/Internal.hs b/test/Test/AWS/CloudWatch/Internal.hs
--- a/test/Test/AWS/CloudWatch/Internal.hs
+++ b/test/Test/AWS/CloudWatch/Internal.hs
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
 -- Module      : Test.AWS.CloudWatch.Internal
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : This Source Code Form is subject to the terms of
 --               the Mozilla Public License, v. 2.0.
 --               A copy of the MPL can be found in the LICENSE file or
diff --git a/test/Test/AWS/Gen/CloudWatch.hs b/test/Test/AWS/Gen/CloudWatch.hs
--- a/test/Test/AWS/Gen/CloudWatch.hs
+++ b/test/Test/AWS/Gen/CloudWatch.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Test.AWS.Gen.CloudWatch
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
