diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.4.5`
+`1.5.0`
 
 
 ## Description
diff --git a/amazonka-config.cabal b/amazonka-config.cabal
--- a/amazonka-config.cabal
+++ b/amazonka-config.cabal
@@ -1,13 +1,13 @@
 name:                  amazonka-config
-version:               1.4.5
+version:               1.5.0
 synopsis:              Amazon Config SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
-license:               OtherLicense
+license:               MPL-2.0
 license-file:          LICENSE
 author:                Brendan Hay
-maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2013-2016 Brendan Hay
+maintainer:            Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+copyright:             Copyright (c) 2013-2017 Brendan Hay
 category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 cabal-version:         >= 1.10
@@ -29,14 +29,19 @@
     to get started.
 
 source-repository head
-    type:     git
-    location: git://github.com/brendanhay/amazonka.git
+    type:              git
+    location:          git://github.com/brendanhay/amazonka.git
+    subdir:            amazonka-config
 
 library
     default-language:  Haskell2010
     hs-source-dirs:    src gen
 
-    ghc-options:       -Wall
+    ghc-options:
+        -Wall
+        -fwarn-incomplete-uni-patterns
+        -fwarn-incomplete-record-updates
+        -funbox-strict-fields
 
     exposed-modules:
           Network.AWS.Config
@@ -57,6 +62,7 @@
         , Network.AWS.Config.GetComplianceDetailsByResource
         , Network.AWS.Config.GetComplianceSummaryByConfigRule
         , Network.AWS.Config.GetComplianceSummaryByResourceType
+        , Network.AWS.Config.GetDiscoveredResourceCounts
         , Network.AWS.Config.GetResourceConfigHistory
         , Network.AWS.Config.ListDiscoveredResources
         , Network.AWS.Config.PutConfigRule
@@ -74,7 +80,7 @@
         , Network.AWS.Config.Types.Sum
 
     build-depends:
-          amazonka-core == 1.4.5.*
+          amazonka-core == 1.5.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-config-test
@@ -94,9 +100,9 @@
         , Test.AWS.Config.Internal
 
     build-depends:
-          amazonka-core == 1.4.5.*
-        , amazonka-test == 1.4.5.*
-        , amazonka-config == 1.4.5.*
+          amazonka-core == 1.5.0.*
+        , amazonka-test == 1.5.0.*
+        , amazonka-config
         , base
         , bytestring
         , tasty
diff --git a/fixture/GetDiscoveredResourceCounts.yaml b/fixture/GetDiscoveredResourceCounts.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetDiscoveredResourceCounts.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/config/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  config.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/GetDiscoveredResourceCountsResponse.proto b/fixture/GetDiscoveredResourceCountsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetDiscoveredResourceCountsResponse.proto
diff --git a/gen/Network/AWS/Config.hs b/gen/Network/AWS/Config.hs
--- a/gen/Network/AWS/Config.hs
+++ b/gen/Network/AWS/Config.hs
@@ -5,9 +5,9 @@
 
 -- |
 -- Module      : Network.AWS.Config
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -121,16 +121,16 @@
     -- * Operations
     -- $operations
 
-    -- ** GetResourceConfigHistory
+    -- ** GetResourceConfigHistory (Paginated)
     , module Network.AWS.Config.GetResourceConfigHistory
 
-    -- ** DescribeComplianceByConfigRule
+    -- ** DescribeComplianceByConfigRule (Paginated)
     , module Network.AWS.Config.DescribeComplianceByConfigRule
 
     -- ** StopConfigurationRecorder
     , module Network.AWS.Config.StopConfigurationRecorder
 
-    -- ** DescribeConfigRules
+    -- ** DescribeConfigRules (Paginated)
     , module Network.AWS.Config.DescribeConfigRules
 
     -- ** DeleteEvaluationResults
@@ -142,7 +142,7 @@
     -- ** DeleteConfigRule
     , module Network.AWS.Config.DeleteConfigRule
 
-    -- ** GetComplianceDetailsByResource
+    -- ** GetComplianceDetailsByResource (Paginated)
     , module Network.AWS.Config.GetComplianceDetailsByResource
 
     -- ** DeliverConfigSnapshot
@@ -151,10 +151,13 @@
     -- ** DescribeConfigRuleEvaluationStatus
     , module Network.AWS.Config.DescribeConfigRuleEvaluationStatus
 
+    -- ** GetDiscoveredResourceCounts
+    , module Network.AWS.Config.GetDiscoveredResourceCounts
+
     -- ** StartConfigRulesEvaluation
     , module Network.AWS.Config.StartConfigRulesEvaluation
 
-    -- ** DescribeComplianceByResource
+    -- ** DescribeComplianceByResource (Paginated)
     , module Network.AWS.Config.DescribeComplianceByResource
 
     -- ** PutEvaluations
@@ -187,13 +190,13 @@
     -- ** PutDeliveryChannel
     , module Network.AWS.Config.PutDeliveryChannel
 
-    -- ** GetComplianceDetailsByConfigRule
+    -- ** GetComplianceDetailsByConfigRule (Paginated)
     , module Network.AWS.Config.GetComplianceDetailsByConfigRule
 
     -- ** DeleteDeliveryChannel
     , module Network.AWS.Config.DeleteDeliveryChannel
 
-    -- ** ListDiscoveredResources
+    -- ** ListDiscoveredResources (Paginated)
     , module Network.AWS.Config.ListDiscoveredResources
 
     -- ** DescribeDeliveryChannels
@@ -428,6 +431,12 @@
     , rResourceName
     , rRelationshipName
 
+    -- ** ResourceCount
+    , ResourceCount
+    , resourceCount
+    , rcResourceType
+    , rcCount
+
     -- ** ResourceIdentifier
     , ResourceIdentifier
     , resourceIdentifier
@@ -447,9 +456,9 @@
     -- ** Source
     , Source
     , source
-    , sSourceIdentifier
-    , sOwner
     , sSourceDetails
+    , sOwner
+    , sSourceIdentifier
 
     -- ** SourceDetail
     , SourceDetail
@@ -459,34 +468,35 @@
     , sdEventSource
     ) where
 
-import           Network.AWS.Config.DeleteConfigRule
-import           Network.AWS.Config.DeleteConfigurationRecorder
-import           Network.AWS.Config.DeleteDeliveryChannel
-import           Network.AWS.Config.DeleteEvaluationResults
-import           Network.AWS.Config.DeliverConfigSnapshot
-import           Network.AWS.Config.DescribeComplianceByConfigRule
-import           Network.AWS.Config.DescribeComplianceByResource
-import           Network.AWS.Config.DescribeConfigRuleEvaluationStatus
-import           Network.AWS.Config.DescribeConfigRules
-import           Network.AWS.Config.DescribeConfigurationRecorders
-import           Network.AWS.Config.DescribeConfigurationRecorderStatus
-import           Network.AWS.Config.DescribeDeliveryChannels
-import           Network.AWS.Config.DescribeDeliveryChannelStatus
-import           Network.AWS.Config.GetComplianceDetailsByConfigRule
-import           Network.AWS.Config.GetComplianceDetailsByResource
-import           Network.AWS.Config.GetComplianceSummaryByConfigRule
-import           Network.AWS.Config.GetComplianceSummaryByResourceType
-import           Network.AWS.Config.GetResourceConfigHistory
-import           Network.AWS.Config.ListDiscoveredResources
-import           Network.AWS.Config.PutConfigRule
-import           Network.AWS.Config.PutConfigurationRecorder
-import           Network.AWS.Config.PutDeliveryChannel
-import           Network.AWS.Config.PutEvaluations
-import           Network.AWS.Config.StartConfigRulesEvaluation
-import           Network.AWS.Config.StartConfigurationRecorder
-import           Network.AWS.Config.StopConfigurationRecorder
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Waiters
+import Network.AWS.Config.DeleteConfigRule
+import Network.AWS.Config.DeleteConfigurationRecorder
+import Network.AWS.Config.DeleteDeliveryChannel
+import Network.AWS.Config.DeleteEvaluationResults
+import Network.AWS.Config.DeliverConfigSnapshot
+import Network.AWS.Config.DescribeComplianceByConfigRule
+import Network.AWS.Config.DescribeComplianceByResource
+import Network.AWS.Config.DescribeConfigRuleEvaluationStatus
+import Network.AWS.Config.DescribeConfigRules
+import Network.AWS.Config.DescribeConfigurationRecorders
+import Network.AWS.Config.DescribeConfigurationRecorderStatus
+import Network.AWS.Config.DescribeDeliveryChannels
+import Network.AWS.Config.DescribeDeliveryChannelStatus
+import Network.AWS.Config.GetComplianceDetailsByConfigRule
+import Network.AWS.Config.GetComplianceDetailsByResource
+import Network.AWS.Config.GetComplianceSummaryByConfigRule
+import Network.AWS.Config.GetComplianceSummaryByResourceType
+import Network.AWS.Config.GetDiscoveredResourceCounts
+import Network.AWS.Config.GetResourceConfigHistory
+import Network.AWS.Config.ListDiscoveredResources
+import Network.AWS.Config.PutConfigRule
+import Network.AWS.Config.PutConfigurationRecorder
+import Network.AWS.Config.PutDeliveryChannel
+import Network.AWS.Config.PutEvaluations
+import Network.AWS.Config.StartConfigRulesEvaluation
+import Network.AWS.Config.StartConfigurationRecorder
+import Network.AWS.Config.StopConfigurationRecorder
+import Network.AWS.Config.Types
+import Network.AWS.Config.Waiters
 
 {- $errors
 Error matchers are designed for use with the functions provided by
diff --git a/gen/Network/AWS/Config/DeleteConfigRule.hs b/gen/Network/AWS/Config/DeleteConfigRule.hs
--- a/gen/Network/AWS/Config/DeleteConfigRule.hs
+++ b/gen/Network/AWS/Config/DeleteConfigRule.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.DeleteConfigRule
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,12 +38,12 @@
     , DeleteConfigRuleResponse
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -51,9 +51,10 @@
 --
 -- /See:/ 'deleteConfigRule' smart constructor.
 newtype DeleteConfigRule = DeleteConfigRule'
-    { _dcrConfigRuleName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcrConfigRuleName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteConfigRule' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -63,10 +64,9 @@
     :: Text -- ^ 'dcrConfigRuleName'
     -> DeleteConfigRule
 deleteConfigRule pConfigRuleName_ =
-    DeleteConfigRule'
-    { _dcrConfigRuleName = pConfigRuleName_
-    }
+  DeleteConfigRule' {_dcrConfigRuleName = pConfigRuleName_}
 
+
 -- | The name of the AWS Config rule that you want to delete.
 dcrConfigRuleName :: Lens' DeleteConfigRule Text
 dcrConfigRuleName = lens _dcrConfigRuleName (\ s a -> s{_dcrConfigRuleName = a});
@@ -76,9 +76,9 @@
         request = postJSON config
         response = receiveNull DeleteConfigRuleResponse'
 
-instance Hashable DeleteConfigRule
+instance Hashable DeleteConfigRule where
 
-instance NFData DeleteConfigRule
+instance NFData DeleteConfigRule where
 
 instance ToHeaders DeleteConfigRule where
         toHeaders
@@ -104,13 +104,15 @@
 
 -- | /See:/ 'deleteConfigRuleResponse' smart constructor.
 data DeleteConfigRuleResponse =
-    DeleteConfigRuleResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  DeleteConfigRuleResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteConfigRuleResponse' with the minimum fields required to make a request.
 --
 deleteConfigRuleResponse
     :: DeleteConfigRuleResponse
 deleteConfigRuleResponse = DeleteConfigRuleResponse'
 
-instance NFData DeleteConfigRuleResponse
+
+instance NFData DeleteConfigRuleResponse where
diff --git a/gen/Network/AWS/Config/DeleteConfigurationRecorder.hs b/gen/Network/AWS/Config/DeleteConfigurationRecorder.hs
--- a/gen/Network/AWS/Config/DeleteConfigurationRecorder.hs
+++ b/gen/Network/AWS/Config/DeleteConfigurationRecorder.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.DeleteConfigurationRecorder
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,12 +38,12 @@
     , DeleteConfigurationRecorderResponse
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | The request object for the @DeleteConfigurationRecorder@ action.
 --
@@ -51,9 +51,10 @@
 --
 -- /See:/ 'deleteConfigurationRecorder' smart constructor.
 newtype DeleteConfigurationRecorder = DeleteConfigurationRecorder'
-    { _dcrConfigurationRecorderName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcrConfigurationRecorderName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteConfigurationRecorder' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -63,10 +64,10 @@
     :: Text -- ^ 'dcrConfigurationRecorderName'
     -> DeleteConfigurationRecorder
 deleteConfigurationRecorder pConfigurationRecorderName_ =
-    DeleteConfigurationRecorder'
-    { _dcrConfigurationRecorderName = pConfigurationRecorderName_
-    }
+  DeleteConfigurationRecorder'
+  {_dcrConfigurationRecorderName = pConfigurationRecorderName_}
 
+
 -- | The name of the configuration recorder to be deleted. You can retrieve the name of your configuration recorder by using the @DescribeConfigurationRecorders@ action.
 dcrConfigurationRecorderName :: Lens' DeleteConfigurationRecorder Text
 dcrConfigurationRecorderName = lens _dcrConfigurationRecorderName (\ s a -> s{_dcrConfigurationRecorderName = a});
@@ -78,9 +79,9 @@
         response
           = receiveNull DeleteConfigurationRecorderResponse'
 
-instance Hashable DeleteConfigurationRecorder
+instance Hashable DeleteConfigurationRecorder where
 
-instance NFData DeleteConfigurationRecorder
+instance NFData DeleteConfigurationRecorder where
 
 instance ToHeaders DeleteConfigurationRecorder where
         toHeaders
@@ -108,13 +109,16 @@
 
 -- | /See:/ 'deleteConfigurationRecorderResponse' smart constructor.
 data DeleteConfigurationRecorderResponse =
-    DeleteConfigurationRecorderResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  DeleteConfigurationRecorderResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteConfigurationRecorderResponse' with the minimum fields required to make a request.
 --
 deleteConfigurationRecorderResponse
     :: DeleteConfigurationRecorderResponse
 deleteConfigurationRecorderResponse = DeleteConfigurationRecorderResponse'
 
+
 instance NFData DeleteConfigurationRecorderResponse
+         where
diff --git a/gen/Network/AWS/Config/DeleteDeliveryChannel.hs b/gen/Network/AWS/Config/DeleteDeliveryChannel.hs
--- a/gen/Network/AWS/Config/DeleteDeliveryChannel.hs
+++ b/gen/Network/AWS/Config/DeleteDeliveryChannel.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.DeleteDeliveryChannel
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -36,12 +36,12 @@
     , DeleteDeliveryChannelResponse
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | The input for the 'DeleteDeliveryChannel' action. The action accepts the following data in JSON format.
 --
@@ -49,9 +49,10 @@
 --
 -- /See:/ 'deleteDeliveryChannel' smart constructor.
 newtype DeleteDeliveryChannel = DeleteDeliveryChannel'
-    { _ddcDeliveryChannelName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ddcDeliveryChannelName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteDeliveryChannel' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,10 +62,9 @@
     :: Text -- ^ 'ddcDeliveryChannelName'
     -> DeleteDeliveryChannel
 deleteDeliveryChannel pDeliveryChannelName_ =
-    DeleteDeliveryChannel'
-    { _ddcDeliveryChannelName = pDeliveryChannelName_
-    }
+  DeleteDeliveryChannel' {_ddcDeliveryChannelName = pDeliveryChannelName_}
 
+
 -- | The name of the delivery channel to delete.
 ddcDeliveryChannelName :: Lens' DeleteDeliveryChannel Text
 ddcDeliveryChannelName = lens _ddcDeliveryChannelName (\ s a -> s{_ddcDeliveryChannelName = a});
@@ -75,9 +75,9 @@
         request = postJSON config
         response = receiveNull DeleteDeliveryChannelResponse'
 
-instance Hashable DeleteDeliveryChannel
+instance Hashable DeleteDeliveryChannel where
 
-instance NFData DeleteDeliveryChannel
+instance NFData DeleteDeliveryChannel where
 
 instance ToHeaders DeleteDeliveryChannel where
         toHeaders
@@ -104,13 +104,15 @@
 
 -- | /See:/ 'deleteDeliveryChannelResponse' smart constructor.
 data DeleteDeliveryChannelResponse =
-    DeleteDeliveryChannelResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  DeleteDeliveryChannelResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteDeliveryChannelResponse' with the minimum fields required to make a request.
 --
 deleteDeliveryChannelResponse
     :: DeleteDeliveryChannelResponse
 deleteDeliveryChannelResponse = DeleteDeliveryChannelResponse'
 
-instance NFData DeleteDeliveryChannelResponse
+
+instance NFData DeleteDeliveryChannelResponse where
diff --git a/gen/Network/AWS/Config/DeleteEvaluationResults.hs b/gen/Network/AWS/Config/DeleteEvaluationResults.hs
--- a/gen/Network/AWS/Config/DeleteEvaluationResults.hs
+++ b/gen/Network/AWS/Config/DeleteEvaluationResults.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.DeleteEvaluationResults
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -36,12 +36,12 @@
     , derrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -49,9 +49,10 @@
 --
 -- /See:/ 'deleteEvaluationResults' smart constructor.
 newtype DeleteEvaluationResults = DeleteEvaluationResults'
-    { _derConfigRuleName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _derConfigRuleName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteEvaluationResults' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,10 +62,9 @@
     :: Text -- ^ 'derConfigRuleName'
     -> DeleteEvaluationResults
 deleteEvaluationResults pConfigRuleName_ =
-    DeleteEvaluationResults'
-    { _derConfigRuleName = pConfigRuleName_
-    }
+  DeleteEvaluationResults' {_derConfigRuleName = pConfigRuleName_}
 
+
 -- | The name of the Config rule for which you want to delete the evaluation results.
 derConfigRuleName :: Lens' DeleteEvaluationResults Text
 derConfigRuleName = lens _derConfigRuleName (\ s a -> s{_derConfigRuleName = a});
@@ -79,9 +79,9 @@
                  DeleteEvaluationResultsResponse' <$>
                    (pure (fromEnum s)))
 
-instance Hashable DeleteEvaluationResults
+instance Hashable DeleteEvaluationResults where
 
-instance NFData DeleteEvaluationResults
+instance NFData DeleteEvaluationResults where
 
 instance ToHeaders DeleteEvaluationResults where
         toHeaders
@@ -111,9 +111,10 @@
 --
 -- /See:/ 'deleteEvaluationResultsResponse' smart constructor.
 newtype DeleteEvaluationResultsResponse = DeleteEvaluationResultsResponse'
-    { _derrsResponseStatus :: Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _derrsResponseStatus :: Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteEvaluationResultsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -123,12 +124,11 @@
     :: Int -- ^ 'derrsResponseStatus'
     -> DeleteEvaluationResultsResponse
 deleteEvaluationResultsResponse pResponseStatus_ =
-    DeleteEvaluationResultsResponse'
-    { _derrsResponseStatus = pResponseStatus_
-    }
+  DeleteEvaluationResultsResponse' {_derrsResponseStatus = pResponseStatus_}
 
+
 -- | -- | The response status code.
 derrsResponseStatus :: Lens' DeleteEvaluationResultsResponse Int
 derrsResponseStatus = lens _derrsResponseStatus (\ s a -> s{_derrsResponseStatus = a});
 
-instance NFData DeleteEvaluationResultsResponse
+instance NFData DeleteEvaluationResultsResponse where
diff --git a/gen/Network/AWS/Config/DeliverConfigSnapshot.hs b/gen/Network/AWS/Config/DeliverConfigSnapshot.hs
--- a/gen/Network/AWS/Config/DeliverConfigSnapshot.hs
+++ b/gen/Network/AWS/Config/DeliverConfigSnapshot.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.DeliverConfigSnapshot
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -45,12 +45,12 @@
     , dcsrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | The input for the 'DeliverConfigSnapshot' action.
 --
@@ -58,9 +58,10 @@
 --
 -- /See:/ 'deliverConfigSnapshot' smart constructor.
 newtype DeliverConfigSnapshot = DeliverConfigSnapshot'
-    { _dcsDeliveryChannelName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcsDeliveryChannelName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeliverConfigSnapshot' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -70,10 +71,9 @@
     :: Text -- ^ 'dcsDeliveryChannelName'
     -> DeliverConfigSnapshot
 deliverConfigSnapshot pDeliveryChannelName_ =
-    DeliverConfigSnapshot'
-    { _dcsDeliveryChannelName = pDeliveryChannelName_
-    }
+  DeliverConfigSnapshot' {_dcsDeliveryChannelName = pDeliveryChannelName_}
 
+
 -- | The name of the delivery channel through which the snapshot is delivered.
 dcsDeliveryChannelName :: Lens' DeliverConfigSnapshot Text
 dcsDeliveryChannelName = lens _dcsDeliveryChannelName (\ s a -> s{_dcsDeliveryChannelName = a});
@@ -88,9 +88,9 @@
                  DeliverConfigSnapshotResponse' <$>
                    (x .?> "configSnapshotId") <*> (pure (fromEnum s)))
 
-instance Hashable DeliverConfigSnapshot
+instance Hashable DeliverConfigSnapshot where
 
-instance NFData DeliverConfigSnapshot
+instance NFData DeliverConfigSnapshot where
 
 instance ToHeaders DeliverConfigSnapshot where
         toHeaders
@@ -121,10 +121,11 @@
 --
 -- /See:/ 'deliverConfigSnapshotResponse' smart constructor.
 data DeliverConfigSnapshotResponse = DeliverConfigSnapshotResponse'
-    { _dcsrsConfigSnapshotId :: !(Maybe Text)
-    , _dcsrsResponseStatus   :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcsrsConfigSnapshotId :: !(Maybe Text)
+  , _dcsrsResponseStatus   :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeliverConfigSnapshotResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -136,11 +137,10 @@
     :: Int -- ^ 'dcsrsResponseStatus'
     -> DeliverConfigSnapshotResponse
 deliverConfigSnapshotResponse pResponseStatus_ =
-    DeliverConfigSnapshotResponse'
-    { _dcsrsConfigSnapshotId = Nothing
-    , _dcsrsResponseStatus = pResponseStatus_
-    }
+  DeliverConfigSnapshotResponse'
+  {_dcsrsConfigSnapshotId = Nothing, _dcsrsResponseStatus = pResponseStatus_}
 
+
 -- | The ID of the snapshot that is being created.
 dcsrsConfigSnapshotId :: Lens' DeliverConfigSnapshotResponse (Maybe Text)
 dcsrsConfigSnapshotId = lens _dcsrsConfigSnapshotId (\ s a -> s{_dcsrsConfigSnapshotId = a});
@@ -149,4 +149,4 @@
 dcsrsResponseStatus :: Lens' DeliverConfigSnapshotResponse Int
 dcsrsResponseStatus = lens _dcsrsResponseStatus (\ s a -> s{_dcsrsResponseStatus = a});
 
-instance NFData DeliverConfigSnapshotResponse
+instance NFData DeliverConfigSnapshotResponse where
diff --git a/gen/Network/AWS/Config/DescribeComplianceByConfigRule.hs b/gen/Network/AWS/Config/DescribeComplianceByConfigRule.hs
--- a/gen/Network/AWS/Config/DescribeComplianceByConfigRule.hs
+++ b/gen/Network/AWS/Config/DescribeComplianceByConfigRule.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.DescribeComplianceByConfigRule
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -33,6 +33,8 @@
 --
 --
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.Config.DescribeComplianceByConfigRule
     (
     -- * Creating a Request
@@ -52,12 +54,13 @@
     , dcbcrrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -65,11 +68,12 @@
 --
 -- /See:/ 'describeComplianceByConfigRule' smart constructor.
 data DescribeComplianceByConfigRule = DescribeComplianceByConfigRule'
-    { _dcbcrConfigRuleNames :: !(Maybe [Text])
-    , _dcbcrComplianceTypes :: !(Maybe [ComplianceType])
-    , _dcbcrNextToken       :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcbcrConfigRuleNames :: !(Maybe [Text])
+  , _dcbcrComplianceTypes :: !(Maybe [ComplianceType])
+  , _dcbcrNextToken       :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeComplianceByConfigRule' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -78,16 +82,17 @@
 --
 -- * 'dcbcrComplianceTypes' - Filters the results by compliance. The allowed values are @COMPLIANT@ , @NON_COMPLIANT@ , and @INSUFFICIENT_DATA@ .
 --
--- * 'dcbcrNextToken' - The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+-- * 'dcbcrNextToken' - The @NextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
 describeComplianceByConfigRule
     :: DescribeComplianceByConfigRule
 describeComplianceByConfigRule =
-    DescribeComplianceByConfigRule'
-    { _dcbcrConfigRuleNames = Nothing
-    , _dcbcrComplianceTypes = Nothing
-    , _dcbcrNextToken = Nothing
-    }
+  DescribeComplianceByConfigRule'
+  { _dcbcrConfigRuleNames = Nothing
+  , _dcbcrComplianceTypes = Nothing
+  , _dcbcrNextToken = Nothing
+  }
 
+
 -- | Specify one or more AWS Config rule names to filter the results by rule.
 dcbcrConfigRuleNames :: Lens' DescribeComplianceByConfigRule [Text]
 dcbcrConfigRuleNames = lens _dcbcrConfigRuleNames (\ s a -> s{_dcbcrConfigRuleNames = a}) . _Default . _Coerce;
@@ -96,10 +101,19 @@
 dcbcrComplianceTypes :: Lens' DescribeComplianceByConfigRule [ComplianceType]
 dcbcrComplianceTypes = lens _dcbcrComplianceTypes (\ s a -> s{_dcbcrComplianceTypes = a}) . _Default . _Coerce;
 
--- | The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+-- | The @NextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
 dcbcrNextToken :: Lens' DescribeComplianceByConfigRule (Maybe Text)
 dcbcrNextToken = lens _dcbcrNextToken (\ s a -> s{_dcbcrNextToken = a});
 
+instance AWSPager DescribeComplianceByConfigRule
+         where
+        page rq rs
+          | stop (rs ^. dcbcrrsNextToken) = Nothing
+          | stop (rs ^. dcbcrrsComplianceByConfigRules) =
+            Nothing
+          | otherwise =
+            Just $ rq & dcbcrNextToken .~ rs ^. dcbcrrsNextToken
+
 instance AWSRequest DescribeComplianceByConfigRule
          where
         type Rs DescribeComplianceByConfigRule =
@@ -114,8 +128,9 @@
                      <*> (pure (fromEnum s)))
 
 instance Hashable DescribeComplianceByConfigRule
+         where
 
-instance NFData DescribeComplianceByConfigRule
+instance NFData DescribeComplianceByConfigRule where
 
 instance ToHeaders DescribeComplianceByConfigRule
          where
@@ -148,11 +163,12 @@
 --
 -- /See:/ 'describeComplianceByConfigRuleResponse' smart constructor.
 data DescribeComplianceByConfigRuleResponse = DescribeComplianceByConfigRuleResponse'
-    { _dcbcrrsComplianceByConfigRules :: !(Maybe [ComplianceByConfigRule])
-    , _dcbcrrsNextToken               :: !(Maybe Text)
-    , _dcbcrrsResponseStatus          :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcbcrrsComplianceByConfigRules :: !(Maybe [ComplianceByConfigRule])
+  , _dcbcrrsNextToken               :: !(Maybe Text)
+  , _dcbcrrsResponseStatus          :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeComplianceByConfigRuleResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -166,12 +182,13 @@
     :: Int -- ^ 'dcbcrrsResponseStatus'
     -> DescribeComplianceByConfigRuleResponse
 describeComplianceByConfigRuleResponse pResponseStatus_ =
-    DescribeComplianceByConfigRuleResponse'
-    { _dcbcrrsComplianceByConfigRules = Nothing
-    , _dcbcrrsNextToken = Nothing
-    , _dcbcrrsResponseStatus = pResponseStatus_
-    }
+  DescribeComplianceByConfigRuleResponse'
+  { _dcbcrrsComplianceByConfigRules = Nothing
+  , _dcbcrrsNextToken = Nothing
+  , _dcbcrrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Indicates whether each of the specified AWS Config rules is compliant.
 dcbcrrsComplianceByConfigRules :: Lens' DescribeComplianceByConfigRuleResponse [ComplianceByConfigRule]
 dcbcrrsComplianceByConfigRules = lens _dcbcrrsComplianceByConfigRules (\ s a -> s{_dcbcrrsComplianceByConfigRules = a}) . _Default . _Coerce;
@@ -185,4 +202,5 @@
 dcbcrrsResponseStatus = lens _dcbcrrsResponseStatus (\ s a -> s{_dcbcrrsResponseStatus = a});
 
 instance NFData
-         DescribeComplianceByConfigRuleResponse
+           DescribeComplianceByConfigRuleResponse
+         where
diff --git a/gen/Network/AWS/Config/DescribeComplianceByResource.hs b/gen/Network/AWS/Config/DescribeComplianceByResource.hs
--- a/gen/Network/AWS/Config/DescribeComplianceByResource.hs
+++ b/gen/Network/AWS/Config/DescribeComplianceByResource.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.DescribeComplianceByResource
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -33,6 +33,8 @@
 --
 --
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.Config.DescribeComplianceByResource
     (
     -- * Creating a Request
@@ -54,12 +56,13 @@
     , dcbrrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -67,13 +70,14 @@
 --
 -- /See:/ 'describeComplianceByResource' smart constructor.
 data DescribeComplianceByResource = DescribeComplianceByResource'
-    { _dcbrResourceId      :: !(Maybe Text)
-    , _dcbrResourceType    :: !(Maybe Text)
-    , _dcbrComplianceTypes :: !(Maybe [ComplianceType])
-    , _dcbrNextToken       :: !(Maybe Text)
-    , _dcbrLimit           :: !(Maybe Nat)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcbrResourceId      :: !(Maybe Text)
+  , _dcbrResourceType    :: !(Maybe Text)
+  , _dcbrComplianceTypes :: !(Maybe [ComplianceType])
+  , _dcbrNextToken       :: !(Maybe Text)
+  , _dcbrLimit           :: !(Maybe Nat)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeComplianceByResource' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -84,20 +88,21 @@
 --
 -- * 'dcbrComplianceTypes' - Filters the results by compliance. The allowed values are @COMPLIANT@ , @NON_COMPLIANT@ , and @INSUFFICIENT_DATA@ .
 --
--- * 'dcbrNextToken' - The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+-- * 'dcbrNextToken' - The @NextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
 --
 -- * 'dcbrLimit' - The maximum number of evaluation results returned on each page. The default is 10. You cannot specify a limit greater than 100. If you specify 0, AWS Config uses the default.
 describeComplianceByResource
     :: DescribeComplianceByResource
 describeComplianceByResource =
-    DescribeComplianceByResource'
-    { _dcbrResourceId = Nothing
-    , _dcbrResourceType = Nothing
-    , _dcbrComplianceTypes = Nothing
-    , _dcbrNextToken = Nothing
-    , _dcbrLimit = Nothing
-    }
+  DescribeComplianceByResource'
+  { _dcbrResourceId = Nothing
+  , _dcbrResourceType = Nothing
+  , _dcbrComplianceTypes = Nothing
+  , _dcbrNextToken = Nothing
+  , _dcbrLimit = Nothing
+  }
 
+
 -- | The ID of the AWS resource for which you want compliance information. You can specify only one resource ID. If you specify a resource ID, you must also specify a type for @ResourceType@ .
 dcbrResourceId :: Lens' DescribeComplianceByResource (Maybe Text)
 dcbrResourceId = lens _dcbrResourceId (\ s a -> s{_dcbrResourceId = a});
@@ -110,7 +115,7 @@
 dcbrComplianceTypes :: Lens' DescribeComplianceByResource [ComplianceType]
 dcbrComplianceTypes = lens _dcbrComplianceTypes (\ s a -> s{_dcbrComplianceTypes = a}) . _Default . _Coerce;
 
--- | The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+-- | The @NextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
 dcbrNextToken :: Lens' DescribeComplianceByResource (Maybe Text)
 dcbrNextToken = lens _dcbrNextToken (\ s a -> s{_dcbrNextToken = a});
 
@@ -118,6 +123,13 @@
 dcbrLimit :: Lens' DescribeComplianceByResource (Maybe Natural)
 dcbrLimit = lens _dcbrLimit (\ s a -> s{_dcbrLimit = a}) . mapping _Nat;
 
+instance AWSPager DescribeComplianceByResource where
+        page rq rs
+          | stop (rs ^. dcbrrsNextToken) = Nothing
+          | stop (rs ^. dcbrrsComplianceByResources) = Nothing
+          | otherwise =
+            Just $ rq & dcbrNextToken .~ rs ^. dcbrrsNextToken
+
 instance AWSRequest DescribeComplianceByResource
          where
         type Rs DescribeComplianceByResource =
@@ -131,9 +143,9 @@
                      (x .?> "NextToken")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeComplianceByResource
+instance Hashable DescribeComplianceByResource where
 
-instance NFData DescribeComplianceByResource
+instance NFData DescribeComplianceByResource where
 
 instance ToHeaders DescribeComplianceByResource where
         toHeaders
@@ -167,11 +179,12 @@
 --
 -- /See:/ 'describeComplianceByResourceResponse' smart constructor.
 data DescribeComplianceByResourceResponse = DescribeComplianceByResourceResponse'
-    { _dcbrrsComplianceByResources :: !(Maybe [ComplianceByResource])
-    , _dcbrrsNextToken             :: !(Maybe Text)
-    , _dcbrrsResponseStatus        :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcbrrsComplianceByResources :: !(Maybe [ComplianceByResource])
+  , _dcbrrsNextToken             :: !(Maybe Text)
+  , _dcbrrsResponseStatus        :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeComplianceByResourceResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -185,12 +198,13 @@
     :: Int -- ^ 'dcbrrsResponseStatus'
     -> DescribeComplianceByResourceResponse
 describeComplianceByResourceResponse pResponseStatus_ =
-    DescribeComplianceByResourceResponse'
-    { _dcbrrsComplianceByResources = Nothing
-    , _dcbrrsNextToken = Nothing
-    , _dcbrrsResponseStatus = pResponseStatus_
-    }
+  DescribeComplianceByResourceResponse'
+  { _dcbrrsComplianceByResources = Nothing
+  , _dcbrrsNextToken = Nothing
+  , _dcbrrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Indicates whether the specified AWS resource complies with all of the AWS Config rules that evaluate it.
 dcbrrsComplianceByResources :: Lens' DescribeComplianceByResourceResponse [ComplianceByResource]
 dcbrrsComplianceByResources = lens _dcbrrsComplianceByResources (\ s a -> s{_dcbrrsComplianceByResources = a}) . _Default . _Coerce;
@@ -204,3 +218,4 @@
 dcbrrsResponseStatus = lens _dcbrrsResponseStatus (\ s a -> s{_dcbrrsResponseStatus = a});
 
 instance NFData DescribeComplianceByResourceResponse
+         where
diff --git a/gen/Network/AWS/Config/DescribeConfigRuleEvaluationStatus.hs b/gen/Network/AWS/Config/DescribeConfigRuleEvaluationStatus.hs
--- a/gen/Network/AWS/Config/DescribeConfigRuleEvaluationStatus.hs
+++ b/gen/Network/AWS/Config/DescribeConfigRuleEvaluationStatus.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.DescribeConfigRuleEvaluationStatus
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -28,49 +28,71 @@
     , DescribeConfigRuleEvaluationStatus
     -- * Request Lenses
     , dcresConfigRuleNames
+    , dcresNextToken
+    , dcresLimit
 
     -- * Destructuring the Response
     , describeConfigRuleEvaluationStatusResponse
     , DescribeConfigRuleEvaluationStatusResponse
     -- * Response Lenses
     , dcresrsConfigRulesEvaluationStatus
+    , dcresrsNextToken
     , dcresrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
 --
 --
 -- /See:/ 'describeConfigRuleEvaluationStatus' smart constructor.
-newtype DescribeConfigRuleEvaluationStatus = DescribeConfigRuleEvaluationStatus'
-    { _dcresConfigRuleNames :: Maybe [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+data DescribeConfigRuleEvaluationStatus = DescribeConfigRuleEvaluationStatus'
+  { _dcresConfigRuleNames :: !(Maybe [Text])
+  , _dcresNextToken       :: !(Maybe Text)
+  , _dcresLimit           :: !(Maybe Nat)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeConfigRuleEvaluationStatus' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'dcresConfigRuleNames' - The name of the AWS managed Config rules for which you want status information. If you do not specify any names, AWS Config returns status information for all AWS managed Config rules that you use.
+--
+-- * 'dcresNextToken' - The @NextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+--
+-- * 'dcresLimit' - The number of rule evaluation results that you want returned. This parameter is required if the rule limit for your account is more than the default of 50 rules. For more information about requesting a rule limit increase, see <http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config AWS Config Limits> in the /AWS General Reference Guide/ .
 describeConfigRuleEvaluationStatus
     :: DescribeConfigRuleEvaluationStatus
 describeConfigRuleEvaluationStatus =
-    DescribeConfigRuleEvaluationStatus'
-    { _dcresConfigRuleNames = Nothing
-    }
+  DescribeConfigRuleEvaluationStatus'
+  { _dcresConfigRuleNames = Nothing
+  , _dcresNextToken = Nothing
+  , _dcresLimit = Nothing
+  }
 
+
 -- | The name of the AWS managed Config rules for which you want status information. If you do not specify any names, AWS Config returns status information for all AWS managed Config rules that you use.
 dcresConfigRuleNames :: Lens' DescribeConfigRuleEvaluationStatus [Text]
 dcresConfigRuleNames = lens _dcresConfigRuleNames (\ s a -> s{_dcresConfigRuleNames = a}) . _Default . _Coerce;
 
+-- | The @NextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+dcresNextToken :: Lens' DescribeConfigRuleEvaluationStatus (Maybe Text)
+dcresNextToken = lens _dcresNextToken (\ s a -> s{_dcresNextToken = a});
+
+-- | The number of rule evaluation results that you want returned. This parameter is required if the rule limit for your account is more than the default of 50 rules. For more information about requesting a rule limit increase, see <http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config AWS Config Limits> in the /AWS General Reference Guide/ .
+dcresLimit :: Lens' DescribeConfigRuleEvaluationStatus (Maybe Natural)
+dcresLimit = lens _dcresLimit (\ s a -> s{_dcresLimit = a}) . mapping _Nat;
+
 instance AWSRequest
-         DescribeConfigRuleEvaluationStatus where
+           DescribeConfigRuleEvaluationStatus
+         where
         type Rs DescribeConfigRuleEvaluationStatus =
              DescribeConfigRuleEvaluationStatusResponse
         request = postJSON config
@@ -79,11 +101,14 @@
               (\ s h x ->
                  DescribeConfigRuleEvaluationStatusResponse' <$>
                    (x .?> "ConfigRulesEvaluationStatus" .!@ mempty) <*>
-                     (pure (fromEnum s)))
+                     (x .?> "NextToken")
+                     <*> (pure (fromEnum s)))
 
 instance Hashable DescribeConfigRuleEvaluationStatus
+         where
 
 instance NFData DescribeConfigRuleEvaluationStatus
+         where
 
 instance ToHeaders DescribeConfigRuleEvaluationStatus
          where
@@ -101,7 +126,9 @@
         toJSON DescribeConfigRuleEvaluationStatus'{..}
           = object
               (catMaybes
-                 [("ConfigRuleNames" .=) <$> _dcresConfigRuleNames])
+                 [("ConfigRuleNames" .=) <$> _dcresConfigRuleNames,
+                  ("NextToken" .=) <$> _dcresNextToken,
+                  ("Limit" .=) <$> _dcresLimit])
 
 instance ToPath DescribeConfigRuleEvaluationStatus
          where
@@ -117,33 +144,44 @@
 --
 -- /See:/ 'describeConfigRuleEvaluationStatusResponse' smart constructor.
 data DescribeConfigRuleEvaluationStatusResponse = DescribeConfigRuleEvaluationStatusResponse'
-    { _dcresrsConfigRulesEvaluationStatus :: !(Maybe [ConfigRuleEvaluationStatus])
-    , _dcresrsResponseStatus              :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcresrsConfigRulesEvaluationStatus :: !(Maybe [ConfigRuleEvaluationStatus])
+  , _dcresrsNextToken                   :: !(Maybe Text)
+  , _dcresrsResponseStatus              :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeConfigRuleEvaluationStatusResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'dcresrsConfigRulesEvaluationStatus' - Status information about your AWS managed Config rules.
 --
+-- * 'dcresrsNextToken' - The string that you use in a subsequent request to get the next page of results in a paginated response.
+--
 -- * 'dcresrsResponseStatus' - -- | The response status code.
 describeConfigRuleEvaluationStatusResponse
     :: Int -- ^ 'dcresrsResponseStatus'
     -> DescribeConfigRuleEvaluationStatusResponse
 describeConfigRuleEvaluationStatusResponse pResponseStatus_ =
-    DescribeConfigRuleEvaluationStatusResponse'
-    { _dcresrsConfigRulesEvaluationStatus = Nothing
-    , _dcresrsResponseStatus = pResponseStatus_
-    }
+  DescribeConfigRuleEvaluationStatusResponse'
+  { _dcresrsConfigRulesEvaluationStatus = Nothing
+  , _dcresrsNextToken = Nothing
+  , _dcresrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Status information about your AWS managed Config rules.
 dcresrsConfigRulesEvaluationStatus :: Lens' DescribeConfigRuleEvaluationStatusResponse [ConfigRuleEvaluationStatus]
 dcresrsConfigRulesEvaluationStatus = lens _dcresrsConfigRulesEvaluationStatus (\ s a -> s{_dcresrsConfigRulesEvaluationStatus = a}) . _Default . _Coerce;
 
+-- | The string that you use in a subsequent request to get the next page of results in a paginated response.
+dcresrsNextToken :: Lens' DescribeConfigRuleEvaluationStatusResponse (Maybe Text)
+dcresrsNextToken = lens _dcresrsNextToken (\ s a -> s{_dcresrsNextToken = a});
+
 -- | -- | The response status code.
 dcresrsResponseStatus :: Lens' DescribeConfigRuleEvaluationStatusResponse Int
 dcresrsResponseStatus = lens _dcresrsResponseStatus (\ s a -> s{_dcresrsResponseStatus = a});
 
 instance NFData
-         DescribeConfigRuleEvaluationStatusResponse
+           DescribeConfigRuleEvaluationStatusResponse
+         where
diff --git a/gen/Network/AWS/Config/DescribeConfigRules.hs b/gen/Network/AWS/Config/DescribeConfigRules.hs
--- a/gen/Network/AWS/Config/DescribeConfigRules.hs
+++ b/gen/Network/AWS/Config/DescribeConfigRules.hs
@@ -12,15 +12,17 @@
 
 -- |
 -- Module      : Network.AWS.Config.DescribeConfigRules
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Returns details about your AWS Config rules.
 --
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.Config.DescribeConfigRules
     (
     -- * Creating a Request
@@ -39,12 +41,13 @@
     , dcrrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -52,33 +55,39 @@
 --
 -- /See:/ 'describeConfigRules' smart constructor.
 data DescribeConfigRules = DescribeConfigRules'
-    { _dcrConfigRuleNames :: !(Maybe [Text])
-    , _dcrNextToken       :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcrConfigRuleNames :: !(Maybe [Text])
+  , _dcrNextToken       :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeConfigRules' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'dcrConfigRuleNames' - The names of the AWS Config rules for which you want details. If you do not specify any names, AWS Config returns details for all your rules.
 --
--- * 'dcrNextToken' - The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+-- * 'dcrNextToken' - The @NextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
 describeConfigRules
     :: DescribeConfigRules
 describeConfigRules =
-    DescribeConfigRules'
-    { _dcrConfigRuleNames = Nothing
-    , _dcrNextToken = Nothing
-    }
+  DescribeConfigRules' {_dcrConfigRuleNames = Nothing, _dcrNextToken = Nothing}
 
+
 -- | The names of the AWS Config rules for which you want details. If you do not specify any names, AWS Config returns details for all your rules.
 dcrConfigRuleNames :: Lens' DescribeConfigRules [Text]
 dcrConfigRuleNames = lens _dcrConfigRuleNames (\ s a -> s{_dcrConfigRuleNames = a}) . _Default . _Coerce;
 
--- | The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+-- | The @NextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
 dcrNextToken :: Lens' DescribeConfigRules (Maybe Text)
 dcrNextToken = lens _dcrNextToken (\ s a -> s{_dcrNextToken = a});
 
+instance AWSPager DescribeConfigRules where
+        page rq rs
+          | stop (rs ^. dcrrsNextToken) = Nothing
+          | stop (rs ^. dcrrsConfigRules) = Nothing
+          | otherwise =
+            Just $ rq & dcrNextToken .~ rs ^. dcrrsNextToken
+
 instance AWSRequest DescribeConfigRules where
         type Rs DescribeConfigRules =
              DescribeConfigRulesResponse
@@ -91,9 +100,9 @@
                      (x .?> "NextToken")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeConfigRules
+instance Hashable DescribeConfigRules where
 
-instance NFData DescribeConfigRules
+instance NFData DescribeConfigRules where
 
 instance ToHeaders DescribeConfigRules where
         toHeaders
@@ -124,11 +133,12 @@
 --
 -- /See:/ 'describeConfigRulesResponse' smart constructor.
 data DescribeConfigRulesResponse = DescribeConfigRulesResponse'
-    { _dcrrsConfigRules    :: !(Maybe [ConfigRule])
-    , _dcrrsNextToken      :: !(Maybe Text)
-    , _dcrrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcrrsConfigRules    :: !(Maybe [ConfigRule])
+  , _dcrrsNextToken      :: !(Maybe Text)
+  , _dcrrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeConfigRulesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -142,12 +152,13 @@
     :: Int -- ^ 'dcrrsResponseStatus'
     -> DescribeConfigRulesResponse
 describeConfigRulesResponse pResponseStatus_ =
-    DescribeConfigRulesResponse'
-    { _dcrrsConfigRules = Nothing
-    , _dcrrsNextToken = Nothing
-    , _dcrrsResponseStatus = pResponseStatus_
-    }
+  DescribeConfigRulesResponse'
+  { _dcrrsConfigRules = Nothing
+  , _dcrrsNextToken = Nothing
+  , _dcrrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The details about your AWS Config rules.
 dcrrsConfigRules :: Lens' DescribeConfigRulesResponse [ConfigRule]
 dcrrsConfigRules = lens _dcrrsConfigRules (\ s a -> s{_dcrrsConfigRules = a}) . _Default . _Coerce;
@@ -160,4 +171,4 @@
 dcrrsResponseStatus :: Lens' DescribeConfigRulesResponse Int
 dcrrsResponseStatus = lens _dcrrsResponseStatus (\ s a -> s{_dcrrsResponseStatus = a});
 
-instance NFData DescribeConfigRulesResponse
+instance NFData DescribeConfigRulesResponse where
diff --git a/gen/Network/AWS/Config/DescribeConfigurationRecorderStatus.hs b/gen/Network/AWS/Config/DescribeConfigurationRecorderStatus.hs
--- a/gen/Network/AWS/Config/DescribeConfigurationRecorderStatus.hs
+++ b/gen/Network/AWS/Config/DescribeConfigurationRecorderStatus.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.DescribeConfigurationRecorderStatus
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,12 +37,12 @@
     , dcrsrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | The input for the 'DescribeConfigurationRecorderStatus' action.
 --
@@ -50,9 +50,10 @@
 --
 -- /See:/ 'describeConfigurationRecorderStatus' smart constructor.
 newtype DescribeConfigurationRecorderStatus = DescribeConfigurationRecorderStatus'
-    { _dcrsConfigurationRecorderNames :: Maybe [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcrsConfigurationRecorderNames :: Maybe [Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeConfigurationRecorderStatus' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,16 +62,17 @@
 describeConfigurationRecorderStatus
     :: DescribeConfigurationRecorderStatus
 describeConfigurationRecorderStatus =
-    DescribeConfigurationRecorderStatus'
-    { _dcrsConfigurationRecorderNames = Nothing
-    }
+  DescribeConfigurationRecorderStatus'
+  {_dcrsConfigurationRecorderNames = Nothing}
 
+
 -- | The name(s) of the configuration recorder. If the name is not specified, the action returns the current status of all the configuration recorders associated with the account.
 dcrsConfigurationRecorderNames :: Lens' DescribeConfigurationRecorderStatus [Text]
 dcrsConfigurationRecorderNames = lens _dcrsConfigurationRecorderNames (\ s a -> s{_dcrsConfigurationRecorderNames = a}) . _Default . _Coerce;
 
 instance AWSRequest
-         DescribeConfigurationRecorderStatus where
+           DescribeConfigurationRecorderStatus
+         where
         type Rs DescribeConfigurationRecorderStatus =
              DescribeConfigurationRecorderStatusResponse
         request = postJSON config
@@ -82,11 +84,14 @@
                      (pure (fromEnum s)))
 
 instance Hashable DescribeConfigurationRecorderStatus
+         where
 
 instance NFData DescribeConfigurationRecorderStatus
+         where
 
 instance ToHeaders
-         DescribeConfigurationRecorderStatus where
+           DescribeConfigurationRecorderStatus
+         where
         toHeaders
           = const
               (mconcat
@@ -118,10 +123,11 @@
 --
 -- /See:/ 'describeConfigurationRecorderStatusResponse' smart constructor.
 data DescribeConfigurationRecorderStatusResponse = DescribeConfigurationRecorderStatusResponse'
-    { _dcrsrsConfigurationRecordersStatus :: !(Maybe [ConfigurationRecorderStatus])
-    , _dcrsrsResponseStatus               :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcrsrsConfigurationRecordersStatus :: !(Maybe [ConfigurationRecorderStatus])
+  , _dcrsrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeConfigurationRecorderStatusResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -133,11 +139,12 @@
     :: Int -- ^ 'dcrsrsResponseStatus'
     -> DescribeConfigurationRecorderStatusResponse
 describeConfigurationRecorderStatusResponse pResponseStatus_ =
-    DescribeConfigurationRecorderStatusResponse'
-    { _dcrsrsConfigurationRecordersStatus = Nothing
-    , _dcrsrsResponseStatus = pResponseStatus_
-    }
+  DescribeConfigurationRecorderStatusResponse'
+  { _dcrsrsConfigurationRecordersStatus = Nothing
+  , _dcrsrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | A list that contains status of the specified recorders.
 dcrsrsConfigurationRecordersStatus :: Lens' DescribeConfigurationRecorderStatusResponse [ConfigurationRecorderStatus]
 dcrsrsConfigurationRecordersStatus = lens _dcrsrsConfigurationRecordersStatus (\ s a -> s{_dcrsrsConfigurationRecordersStatus = a}) . _Default . _Coerce;
@@ -147,4 +154,5 @@
 dcrsrsResponseStatus = lens _dcrsrsResponseStatus (\ s a -> s{_dcrsrsResponseStatus = a});
 
 instance NFData
-         DescribeConfigurationRecorderStatusResponse
+           DescribeConfigurationRecorderStatusResponse
+         where
diff --git a/gen/Network/AWS/Config/DescribeConfigurationRecorders.hs b/gen/Network/AWS/Config/DescribeConfigurationRecorders.hs
--- a/gen/Network/AWS/Config/DescribeConfigurationRecorders.hs
+++ b/gen/Network/AWS/Config/DescribeConfigurationRecorders.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.DescribeConfigurationRecorders
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,12 +37,12 @@
     , drsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | The input for the 'DescribeConfigurationRecorders' action.
 --
@@ -50,9 +50,10 @@
 --
 -- /See:/ 'describeConfigurationRecorders' smart constructor.
 newtype DescribeConfigurationRecorders = DescribeConfigurationRecorders'
-    { _dcrConfigurationRecorderNames :: Maybe [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcrConfigurationRecorderNames :: Maybe [Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeConfigurationRecorders' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,10 +62,9 @@
 describeConfigurationRecorders
     :: DescribeConfigurationRecorders
 describeConfigurationRecorders =
-    DescribeConfigurationRecorders'
-    { _dcrConfigurationRecorderNames = Nothing
-    }
+  DescribeConfigurationRecorders' {_dcrConfigurationRecorderNames = Nothing}
 
+
 -- | A list of configuration recorder names.
 dcrConfigurationRecorderNames :: Lens' DescribeConfigurationRecorders [Text]
 dcrConfigurationRecorderNames = lens _dcrConfigurationRecorderNames (\ s a -> s{_dcrConfigurationRecorderNames = a}) . _Default . _Coerce;
@@ -82,8 +82,9 @@
                      (pure (fromEnum s)))
 
 instance Hashable DescribeConfigurationRecorders
+         where
 
-instance NFData DescribeConfigurationRecorders
+instance NFData DescribeConfigurationRecorders where
 
 instance ToHeaders DescribeConfigurationRecorders
          where
@@ -115,10 +116,11 @@
 --
 -- /See:/ 'describeConfigurationRecordersResponse' smart constructor.
 data DescribeConfigurationRecordersResponse = DescribeConfigurationRecordersResponse'
-    { _drsConfigurationRecorders :: !(Maybe [ConfigurationRecorder])
-    , _drsResponseStatus         :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _drsConfigurationRecorders :: !(Maybe [ConfigurationRecorder])
+  , _drsResponseStatus         :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeConfigurationRecordersResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -130,11 +132,10 @@
     :: Int -- ^ 'drsResponseStatus'
     -> DescribeConfigurationRecordersResponse
 describeConfigurationRecordersResponse pResponseStatus_ =
-    DescribeConfigurationRecordersResponse'
-    { _drsConfigurationRecorders = Nothing
-    , _drsResponseStatus = pResponseStatus_
-    }
+  DescribeConfigurationRecordersResponse'
+  {_drsConfigurationRecorders = Nothing, _drsResponseStatus = pResponseStatus_}
 
+
 -- | A list that contains the descriptions of the specified configuration recorders.
 drsConfigurationRecorders :: Lens' DescribeConfigurationRecordersResponse [ConfigurationRecorder]
 drsConfigurationRecorders = lens _drsConfigurationRecorders (\ s a -> s{_drsConfigurationRecorders = a}) . _Default . _Coerce;
@@ -144,4 +145,5 @@
 drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});
 
 instance NFData
-         DescribeConfigurationRecordersResponse
+           DescribeConfigurationRecordersResponse
+         where
diff --git a/gen/Network/AWS/Config/DescribeDeliveryChannelStatus.hs b/gen/Network/AWS/Config/DescribeDeliveryChannelStatus.hs
--- a/gen/Network/AWS/Config/DescribeDeliveryChannelStatus.hs
+++ b/gen/Network/AWS/Config/DescribeDeliveryChannelStatus.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.DescribeDeliveryChannelStatus
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,12 +37,12 @@
     , ddcsrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | The input for the 'DeliveryChannelStatus' action.
 --
@@ -50,9 +50,10 @@
 --
 -- /See:/ 'describeDeliveryChannelStatus' smart constructor.
 newtype DescribeDeliveryChannelStatus = DescribeDeliveryChannelStatus'
-    { _ddcsDeliveryChannelNames :: Maybe [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ddcsDeliveryChannelNames :: Maybe [Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeDeliveryChannelStatus' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,10 +62,9 @@
 describeDeliveryChannelStatus
     :: DescribeDeliveryChannelStatus
 describeDeliveryChannelStatus =
-    DescribeDeliveryChannelStatus'
-    { _ddcsDeliveryChannelNames = Nothing
-    }
+  DescribeDeliveryChannelStatus' {_ddcsDeliveryChannelNames = Nothing}
 
+
 -- | A list of delivery channel names.
 ddcsDeliveryChannelNames :: Lens' DescribeDeliveryChannelStatus [Text]
 ddcsDeliveryChannelNames = lens _ddcsDeliveryChannelNames (\ s a -> s{_ddcsDeliveryChannelNames = a}) . _Default . _Coerce;
@@ -81,9 +81,9 @@
                    (x .?> "DeliveryChannelsStatus" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable DescribeDeliveryChannelStatus
+instance Hashable DescribeDeliveryChannelStatus where
 
-instance NFData DescribeDeliveryChannelStatus
+instance NFData DescribeDeliveryChannelStatus where
 
 instance ToHeaders DescribeDeliveryChannelStatus
          where
@@ -115,10 +115,11 @@
 --
 -- /See:/ 'describeDeliveryChannelStatusResponse' smart constructor.
 data DescribeDeliveryChannelStatusResponse = DescribeDeliveryChannelStatusResponse'
-    { _ddcsrsDeliveryChannelsStatus :: !(Maybe [DeliveryChannelStatus])
-    , _ddcsrsResponseStatus         :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ddcsrsDeliveryChannelsStatus :: !(Maybe [DeliveryChannelStatus])
+  , _ddcsrsResponseStatus         :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeDeliveryChannelStatusResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -130,11 +131,12 @@
     :: Int -- ^ 'ddcsrsResponseStatus'
     -> DescribeDeliveryChannelStatusResponse
 describeDeliveryChannelStatusResponse pResponseStatus_ =
-    DescribeDeliveryChannelStatusResponse'
-    { _ddcsrsDeliveryChannelsStatus = Nothing
-    , _ddcsrsResponseStatus = pResponseStatus_
-    }
+  DescribeDeliveryChannelStatusResponse'
+  { _ddcsrsDeliveryChannelsStatus = Nothing
+  , _ddcsrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | A list that contains the status of a specified delivery channel.
 ddcsrsDeliveryChannelsStatus :: Lens' DescribeDeliveryChannelStatusResponse [DeliveryChannelStatus]
 ddcsrsDeliveryChannelsStatus = lens _ddcsrsDeliveryChannelsStatus (\ s a -> s{_ddcsrsDeliveryChannelsStatus = a}) . _Default . _Coerce;
@@ -144,3 +146,4 @@
 ddcsrsResponseStatus = lens _ddcsrsResponseStatus (\ s a -> s{_ddcsrsResponseStatus = a});
 
 instance NFData DescribeDeliveryChannelStatusResponse
+         where
diff --git a/gen/Network/AWS/Config/DescribeDeliveryChannels.hs b/gen/Network/AWS/Config/DescribeDeliveryChannels.hs
--- a/gen/Network/AWS/Config/DescribeDeliveryChannels.hs
+++ b/gen/Network/AWS/Config/DescribeDeliveryChannels.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.DescribeDeliveryChannels
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,12 +37,12 @@
     , ddcrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | The input for the 'DescribeDeliveryChannels' action.
 --
@@ -50,9 +50,10 @@
 --
 -- /See:/ 'describeDeliveryChannels' smart constructor.
 newtype DescribeDeliveryChannels = DescribeDeliveryChannels'
-    { _ddcDeliveryChannelNames :: Maybe [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ddcDeliveryChannelNames :: Maybe [Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeDeliveryChannels' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,10 +62,9 @@
 describeDeliveryChannels
     :: DescribeDeliveryChannels
 describeDeliveryChannels =
-    DescribeDeliveryChannels'
-    { _ddcDeliveryChannelNames = Nothing
-    }
+  DescribeDeliveryChannels' {_ddcDeliveryChannelNames = Nothing}
 
+
 -- | A list of delivery channel names.
 ddcDeliveryChannelNames :: Lens' DescribeDeliveryChannels [Text]
 ddcDeliveryChannelNames = lens _ddcDeliveryChannelNames (\ s a -> s{_ddcDeliveryChannelNames = a}) . _Default . _Coerce;
@@ -80,9 +80,9 @@
                    (x .?> "DeliveryChannels" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable DescribeDeliveryChannels
+instance Hashable DescribeDeliveryChannels where
 
-instance NFData DescribeDeliveryChannels
+instance NFData DescribeDeliveryChannels where
 
 instance ToHeaders DescribeDeliveryChannels where
         toHeaders
@@ -113,10 +113,11 @@
 --
 -- /See:/ 'describeDeliveryChannelsResponse' smart constructor.
 data DescribeDeliveryChannelsResponse = DescribeDeliveryChannelsResponse'
-    { _ddcrsDeliveryChannels :: !(Maybe [DeliveryChannel])
-    , _ddcrsResponseStatus   :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ddcrsDeliveryChannels :: !(Maybe [DeliveryChannel])
+  , _ddcrsResponseStatus   :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeDeliveryChannelsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -128,11 +129,10 @@
     :: Int -- ^ 'ddcrsResponseStatus'
     -> DescribeDeliveryChannelsResponse
 describeDeliveryChannelsResponse pResponseStatus_ =
-    DescribeDeliveryChannelsResponse'
-    { _ddcrsDeliveryChannels = Nothing
-    , _ddcrsResponseStatus = pResponseStatus_
-    }
+  DescribeDeliveryChannelsResponse'
+  {_ddcrsDeliveryChannels = Nothing, _ddcrsResponseStatus = pResponseStatus_}
 
+
 -- | A list that contains the descriptions of the specified delivery channel.
 ddcrsDeliveryChannels :: Lens' DescribeDeliveryChannelsResponse [DeliveryChannel]
 ddcrsDeliveryChannels = lens _ddcrsDeliveryChannels (\ s a -> s{_ddcrsDeliveryChannels = a}) . _Default . _Coerce;
@@ -142,3 +142,4 @@
 ddcrsResponseStatus = lens _ddcrsResponseStatus (\ s a -> s{_ddcrsResponseStatus = a});
 
 instance NFData DescribeDeliveryChannelsResponse
+         where
diff --git a/gen/Network/AWS/Config/GetComplianceDetailsByConfigRule.hs b/gen/Network/AWS/Config/GetComplianceDetailsByConfigRule.hs
--- a/gen/Network/AWS/Config/GetComplianceDetailsByConfigRule.hs
+++ b/gen/Network/AWS/Config/GetComplianceDetailsByConfigRule.hs
@@ -12,15 +12,17 @@
 
 -- |
 -- Module      : Network.AWS.Config.GetComplianceDetailsByConfigRule
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Returns the evaluation results for the specified AWS Config rule. The results indicate which AWS resources were evaluated by the rule, when each resource was last evaluated, and whether each resource complies with the rule.
 --
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.Config.GetComplianceDetailsByConfigRule
     (
     -- * Creating a Request
@@ -41,12 +43,13 @@
     , gcdbcrrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -54,19 +57,20 @@
 --
 -- /See:/ 'getComplianceDetailsByConfigRule' smart constructor.
 data GetComplianceDetailsByConfigRule = GetComplianceDetailsByConfigRule'
-    { _gcdbcrComplianceTypes :: !(Maybe [ComplianceType])
-    , _gcdbcrNextToken       :: !(Maybe Text)
-    , _gcdbcrLimit           :: !(Maybe Nat)
-    , _gcdbcrConfigRuleName  :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gcdbcrComplianceTypes :: !(Maybe [ComplianceType])
+  , _gcdbcrNextToken       :: !(Maybe Text)
+  , _gcdbcrLimit           :: !(Maybe Nat)
+  , _gcdbcrConfigRuleName  :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetComplianceDetailsByConfigRule' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'gcdbcrComplianceTypes' - Filters the results by compliance. The allowed values are @COMPLIANT@ , @NON_COMPLIANT@ , and @NOT_APPLICABLE@ .
 --
--- * 'gcdbcrNextToken' - The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+-- * 'gcdbcrNextToken' - The @NextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
 --
 -- * 'gcdbcrLimit' - The maximum number of evaluation results returned on each page. The default is 10. You cannot specify a limit greater than 100. If you specify 0, AWS Config uses the default.
 --
@@ -75,18 +79,19 @@
     :: Text -- ^ 'gcdbcrConfigRuleName'
     -> GetComplianceDetailsByConfigRule
 getComplianceDetailsByConfigRule pConfigRuleName_ =
-    GetComplianceDetailsByConfigRule'
-    { _gcdbcrComplianceTypes = Nothing
-    , _gcdbcrNextToken = Nothing
-    , _gcdbcrLimit = Nothing
-    , _gcdbcrConfigRuleName = pConfigRuleName_
-    }
+  GetComplianceDetailsByConfigRule'
+  { _gcdbcrComplianceTypes = Nothing
+  , _gcdbcrNextToken = Nothing
+  , _gcdbcrLimit = Nothing
+  , _gcdbcrConfigRuleName = pConfigRuleName_
+  }
 
+
 -- | Filters the results by compliance. The allowed values are @COMPLIANT@ , @NON_COMPLIANT@ , and @NOT_APPLICABLE@ .
 gcdbcrComplianceTypes :: Lens' GetComplianceDetailsByConfigRule [ComplianceType]
 gcdbcrComplianceTypes = lens _gcdbcrComplianceTypes (\ s a -> s{_gcdbcrComplianceTypes = a}) . _Default . _Coerce;
 
--- | The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+-- | The @NextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
 gcdbcrNextToken :: Lens' GetComplianceDetailsByConfigRule (Maybe Text)
 gcdbcrNextToken = lens _gcdbcrNextToken (\ s a -> s{_gcdbcrNextToken = a});
 
@@ -98,6 +103,15 @@
 gcdbcrConfigRuleName :: Lens' GetComplianceDetailsByConfigRule Text
 gcdbcrConfigRuleName = lens _gcdbcrConfigRuleName (\ s a -> s{_gcdbcrConfigRuleName = a});
 
+instance AWSPager GetComplianceDetailsByConfigRule
+         where
+        page rq rs
+          | stop (rs ^. gcdbcrrsNextToken) = Nothing
+          | stop (rs ^. gcdbcrrsEvaluationResults) = Nothing
+          | otherwise =
+            Just $ rq &
+              gcdbcrNextToken .~ rs ^. gcdbcrrsNextToken
+
 instance AWSRequest GetComplianceDetailsByConfigRule
          where
         type Rs GetComplianceDetailsByConfigRule =
@@ -112,8 +126,10 @@
                      <*> (pure (fromEnum s)))
 
 instance Hashable GetComplianceDetailsByConfigRule
+         where
 
 instance NFData GetComplianceDetailsByConfigRule
+         where
 
 instance ToHeaders GetComplianceDetailsByConfigRule
          where
@@ -150,11 +166,12 @@
 --
 -- /See:/ 'getComplianceDetailsByConfigRuleResponse' smart constructor.
 data GetComplianceDetailsByConfigRuleResponse = GetComplianceDetailsByConfigRuleResponse'
-    { _gcdbcrrsEvaluationResults :: !(Maybe [EvaluationResult])
-    , _gcdbcrrsNextToken         :: !(Maybe Text)
-    , _gcdbcrrsResponseStatus    :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gcdbcrrsEvaluationResults :: !(Maybe [EvaluationResult])
+  , _gcdbcrrsNextToken         :: !(Maybe Text)
+  , _gcdbcrrsResponseStatus    :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetComplianceDetailsByConfigRuleResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -168,12 +185,13 @@
     :: Int -- ^ 'gcdbcrrsResponseStatus'
     -> GetComplianceDetailsByConfigRuleResponse
 getComplianceDetailsByConfigRuleResponse pResponseStatus_ =
-    GetComplianceDetailsByConfigRuleResponse'
-    { _gcdbcrrsEvaluationResults = Nothing
-    , _gcdbcrrsNextToken = Nothing
-    , _gcdbcrrsResponseStatus = pResponseStatus_
-    }
+  GetComplianceDetailsByConfigRuleResponse'
+  { _gcdbcrrsEvaluationResults = Nothing
+  , _gcdbcrrsNextToken = Nothing
+  , _gcdbcrrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Indicates whether the AWS resource complies with the specified AWS Config rule.
 gcdbcrrsEvaluationResults :: Lens' GetComplianceDetailsByConfigRuleResponse [EvaluationResult]
 gcdbcrrsEvaluationResults = lens _gcdbcrrsEvaluationResults (\ s a -> s{_gcdbcrrsEvaluationResults = a}) . _Default . _Coerce;
@@ -187,4 +205,5 @@
 gcdbcrrsResponseStatus = lens _gcdbcrrsResponseStatus (\ s a -> s{_gcdbcrrsResponseStatus = a});
 
 instance NFData
-         GetComplianceDetailsByConfigRuleResponse
+           GetComplianceDetailsByConfigRuleResponse
+         where
diff --git a/gen/Network/AWS/Config/GetComplianceDetailsByResource.hs b/gen/Network/AWS/Config/GetComplianceDetailsByResource.hs
--- a/gen/Network/AWS/Config/GetComplianceDetailsByResource.hs
+++ b/gen/Network/AWS/Config/GetComplianceDetailsByResource.hs
@@ -12,15 +12,17 @@
 
 -- |
 -- Module      : Network.AWS.Config.GetComplianceDetailsByResource
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Returns the evaluation results for the specified AWS resource. The results indicate which AWS Config rules were used to evaluate the resource, when each rule was last used, and whether the resource complies with each rule.
 --
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.Config.GetComplianceDetailsByResource
     (
     -- * Creating a Request
@@ -41,12 +43,13 @@
     , gcdbrrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -54,19 +57,20 @@
 --
 -- /See:/ 'getComplianceDetailsByResource' smart constructor.
 data GetComplianceDetailsByResource = GetComplianceDetailsByResource'
-    { _gcdbrComplianceTypes :: !(Maybe [ComplianceType])
-    , _gcdbrNextToken       :: !(Maybe Text)
-    , _gcdbrResourceType    :: !Text
-    , _gcdbrResourceId      :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gcdbrComplianceTypes :: !(Maybe [ComplianceType])
+  , _gcdbrNextToken       :: !(Maybe Text)
+  , _gcdbrResourceType    :: !Text
+  , _gcdbrResourceId      :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetComplianceDetailsByResource' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'gcdbrComplianceTypes' - Filters the results by compliance. The allowed values are @COMPLIANT@ , @NON_COMPLIANT@ , and @NOT_APPLICABLE@ .
 --
--- * 'gcdbrNextToken' - The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+-- * 'gcdbrNextToken' - The @NextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
 --
 -- * 'gcdbrResourceType' - The type of the AWS resource for which you want compliance information.
 --
@@ -76,18 +80,19 @@
     -> Text -- ^ 'gcdbrResourceId'
     -> GetComplianceDetailsByResource
 getComplianceDetailsByResource pResourceType_ pResourceId_ =
-    GetComplianceDetailsByResource'
-    { _gcdbrComplianceTypes = Nothing
-    , _gcdbrNextToken = Nothing
-    , _gcdbrResourceType = pResourceType_
-    , _gcdbrResourceId = pResourceId_
-    }
+  GetComplianceDetailsByResource'
+  { _gcdbrComplianceTypes = Nothing
+  , _gcdbrNextToken = Nothing
+  , _gcdbrResourceType = pResourceType_
+  , _gcdbrResourceId = pResourceId_
+  }
 
+
 -- | Filters the results by compliance. The allowed values are @COMPLIANT@ , @NON_COMPLIANT@ , and @NOT_APPLICABLE@ .
 gcdbrComplianceTypes :: Lens' GetComplianceDetailsByResource [ComplianceType]
 gcdbrComplianceTypes = lens _gcdbrComplianceTypes (\ s a -> s{_gcdbrComplianceTypes = a}) . _Default . _Coerce;
 
--- | The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+-- | The @NextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
 gcdbrNextToken :: Lens' GetComplianceDetailsByResource (Maybe Text)
 gcdbrNextToken = lens _gcdbrNextToken (\ s a -> s{_gcdbrNextToken = a});
 
@@ -99,6 +104,14 @@
 gcdbrResourceId :: Lens' GetComplianceDetailsByResource Text
 gcdbrResourceId = lens _gcdbrResourceId (\ s a -> s{_gcdbrResourceId = a});
 
+instance AWSPager GetComplianceDetailsByResource
+         where
+        page rq rs
+          | stop (rs ^. gcdbrrsNextToken) = Nothing
+          | stop (rs ^. gcdbrrsEvaluationResults) = Nothing
+          | otherwise =
+            Just $ rq & gcdbrNextToken .~ rs ^. gcdbrrsNextToken
+
 instance AWSRequest GetComplianceDetailsByResource
          where
         type Rs GetComplianceDetailsByResource =
@@ -113,8 +126,9 @@
                      <*> (pure (fromEnum s)))
 
 instance Hashable GetComplianceDetailsByResource
+         where
 
-instance NFData GetComplianceDetailsByResource
+instance NFData GetComplianceDetailsByResource where
 
 instance ToHeaders GetComplianceDetailsByResource
          where
@@ -148,11 +162,12 @@
 --
 -- /See:/ 'getComplianceDetailsByResourceResponse' smart constructor.
 data GetComplianceDetailsByResourceResponse = GetComplianceDetailsByResourceResponse'
-    { _gcdbrrsEvaluationResults :: !(Maybe [EvaluationResult])
-    , _gcdbrrsNextToken         :: !(Maybe Text)
-    , _gcdbrrsResponseStatus    :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gcdbrrsEvaluationResults :: !(Maybe [EvaluationResult])
+  , _gcdbrrsNextToken         :: !(Maybe Text)
+  , _gcdbrrsResponseStatus    :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetComplianceDetailsByResourceResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -166,12 +181,13 @@
     :: Int -- ^ 'gcdbrrsResponseStatus'
     -> GetComplianceDetailsByResourceResponse
 getComplianceDetailsByResourceResponse pResponseStatus_ =
-    GetComplianceDetailsByResourceResponse'
-    { _gcdbrrsEvaluationResults = Nothing
-    , _gcdbrrsNextToken = Nothing
-    , _gcdbrrsResponseStatus = pResponseStatus_
-    }
+  GetComplianceDetailsByResourceResponse'
+  { _gcdbrrsEvaluationResults = Nothing
+  , _gcdbrrsNextToken = Nothing
+  , _gcdbrrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Indicates whether the specified AWS resource complies each AWS Config rule.
 gcdbrrsEvaluationResults :: Lens' GetComplianceDetailsByResourceResponse [EvaluationResult]
 gcdbrrsEvaluationResults = lens _gcdbrrsEvaluationResults (\ s a -> s{_gcdbrrsEvaluationResults = a}) . _Default . _Coerce;
@@ -185,4 +201,5 @@
 gcdbrrsResponseStatus = lens _gcdbrrsResponseStatus (\ s a -> s{_gcdbrrsResponseStatus = a});
 
 instance NFData
-         GetComplianceDetailsByResourceResponse
+           GetComplianceDetailsByResourceResponse
+         where
diff --git a/gen/Network/AWS/Config/GetComplianceSummaryByConfigRule.hs b/gen/Network/AWS/Config/GetComplianceSummaryByConfigRule.hs
--- a/gen/Network/AWS/Config/GetComplianceSummaryByConfigRule.hs
+++ b/gen/Network/AWS/Config/GetComplianceSummaryByConfigRule.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.GetComplianceSummaryByConfigRule
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -35,24 +35,26 @@
     , gcsbcrrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | /See:/ 'getComplianceSummaryByConfigRule' smart constructor.
 data GetComplianceSummaryByConfigRule =
-    GetComplianceSummaryByConfigRule'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  GetComplianceSummaryByConfigRule'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetComplianceSummaryByConfigRule' with the minimum fields required to make a request.
 --
 getComplianceSummaryByConfigRule
     :: GetComplianceSummaryByConfigRule
 getComplianceSummaryByConfigRule = GetComplianceSummaryByConfigRule'
 
+
 instance AWSRequest GetComplianceSummaryByConfigRule
          where
         type Rs GetComplianceSummaryByConfigRule =
@@ -65,8 +67,10 @@
                    (x .?> "ComplianceSummary") <*> (pure (fromEnum s)))
 
 instance Hashable GetComplianceSummaryByConfigRule
+         where
 
 instance NFData GetComplianceSummaryByConfigRule
+         where
 
 instance ToHeaders GetComplianceSummaryByConfigRule
          where
@@ -97,10 +101,11 @@
 --
 -- /See:/ 'getComplianceSummaryByConfigRuleResponse' smart constructor.
 data GetComplianceSummaryByConfigRuleResponse = GetComplianceSummaryByConfigRuleResponse'
-    { _gcsbcrrsComplianceSummary :: !(Maybe ComplianceSummary)
-    , _gcsbcrrsResponseStatus    :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gcsbcrrsComplianceSummary :: !(Maybe ComplianceSummary)
+  , _gcsbcrrsResponseStatus    :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetComplianceSummaryByConfigRuleResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -112,11 +117,12 @@
     :: Int -- ^ 'gcsbcrrsResponseStatus'
     -> GetComplianceSummaryByConfigRuleResponse
 getComplianceSummaryByConfigRuleResponse pResponseStatus_ =
-    GetComplianceSummaryByConfigRuleResponse'
-    { _gcsbcrrsComplianceSummary = Nothing
-    , _gcsbcrrsResponseStatus = pResponseStatus_
-    }
+  GetComplianceSummaryByConfigRuleResponse'
+  { _gcsbcrrsComplianceSummary = Nothing
+  , _gcsbcrrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The number of AWS Config rules that are compliant and the number that are noncompliant, up to a maximum of 25 for each.
 gcsbcrrsComplianceSummary :: Lens' GetComplianceSummaryByConfigRuleResponse (Maybe ComplianceSummary)
 gcsbcrrsComplianceSummary = lens _gcsbcrrsComplianceSummary (\ s a -> s{_gcsbcrrsComplianceSummary = a});
@@ -126,4 +132,5 @@
 gcsbcrrsResponseStatus = lens _gcsbcrrsResponseStatus (\ s a -> s{_gcsbcrrsResponseStatus = a});
 
 instance NFData
-         GetComplianceSummaryByConfigRuleResponse
+           GetComplianceSummaryByConfigRuleResponse
+         where
diff --git a/gen/Network/AWS/Config/GetComplianceSummaryByResourceType.hs b/gen/Network/AWS/Config/GetComplianceSummaryByResourceType.hs
--- a/gen/Network/AWS/Config/GetComplianceSummaryByResourceType.hs
+++ b/gen/Network/AWS/Config/GetComplianceSummaryByResourceType.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.GetComplianceSummaryByResourceType
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,12 +37,12 @@
     , gcsbrtrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -50,9 +50,10 @@
 --
 -- /See:/ 'getComplianceSummaryByResourceType' smart constructor.
 newtype GetComplianceSummaryByResourceType = GetComplianceSummaryByResourceType'
-    { _gcsbrtResourceTypes :: Maybe [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gcsbrtResourceTypes :: Maybe [Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetComplianceSummaryByResourceType' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,16 +62,16 @@
 getComplianceSummaryByResourceType
     :: GetComplianceSummaryByResourceType
 getComplianceSummaryByResourceType =
-    GetComplianceSummaryByResourceType'
-    { _gcsbrtResourceTypes = Nothing
-    }
+  GetComplianceSummaryByResourceType' {_gcsbrtResourceTypes = Nothing}
 
+
 -- | Specify one or more resource types to get the number of resources that are compliant and the number that are noncompliant for each resource type. For this request, you can specify an AWS resource type such as @AWS::EC2::Instance@ , and you can specify that the resource type is an AWS account by specifying @AWS::::Account@ .
 gcsbrtResourceTypes :: Lens' GetComplianceSummaryByResourceType [Text]
 gcsbrtResourceTypes = lens _gcsbrtResourceTypes (\ s a -> s{_gcsbrtResourceTypes = a}) . _Default . _Coerce;
 
 instance AWSRequest
-         GetComplianceSummaryByResourceType where
+           GetComplianceSummaryByResourceType
+         where
         type Rs GetComplianceSummaryByResourceType =
              GetComplianceSummaryByResourceTypeResponse
         request = postJSON config
@@ -83,8 +84,10 @@
                      <*> (pure (fromEnum s)))
 
 instance Hashable GetComplianceSummaryByResourceType
+         where
 
 instance NFData GetComplianceSummaryByResourceType
+         where
 
 instance ToHeaders GetComplianceSummaryByResourceType
          where
@@ -118,10 +121,11 @@
 --
 -- /See:/ 'getComplianceSummaryByResourceTypeResponse' smart constructor.
 data GetComplianceSummaryByResourceTypeResponse = GetComplianceSummaryByResourceTypeResponse'
-    { _gcsbrtrsComplianceSummariesByResourceType :: !(Maybe [ComplianceSummaryByResourceType])
-    , _gcsbrtrsResponseStatus                    :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gcsbrtrsComplianceSummariesByResourceType :: !(Maybe [ComplianceSummaryByResourceType])
+  , _gcsbrtrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetComplianceSummaryByResourceTypeResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -133,11 +137,12 @@
     :: Int -- ^ 'gcsbrtrsResponseStatus'
     -> GetComplianceSummaryByResourceTypeResponse
 getComplianceSummaryByResourceTypeResponse pResponseStatus_ =
-    GetComplianceSummaryByResourceTypeResponse'
-    { _gcsbrtrsComplianceSummariesByResourceType = Nothing
-    , _gcsbrtrsResponseStatus = pResponseStatus_
-    }
+  GetComplianceSummaryByResourceTypeResponse'
+  { _gcsbrtrsComplianceSummariesByResourceType = Nothing
+  , _gcsbrtrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The number of resources that are compliant and the number that are noncompliant. If one or more resource types were provided with the request, the numbers are returned for each resource type. The maximum number returned is 100.
 gcsbrtrsComplianceSummariesByResourceType :: Lens' GetComplianceSummaryByResourceTypeResponse [ComplianceSummaryByResourceType]
 gcsbrtrsComplianceSummariesByResourceType = lens _gcsbrtrsComplianceSummariesByResourceType (\ s a -> s{_gcsbrtrsComplianceSummariesByResourceType = a}) . _Default . _Coerce;
@@ -147,4 +152,5 @@
 gcsbrtrsResponseStatus = lens _gcsbrtrsResponseStatus (\ s a -> s{_gcsbrtrsResponseStatus = a});
 
 instance NFData
-         GetComplianceSummaryByResourceTypeResponse
+           GetComplianceSummaryByResourceTypeResponse
+         where
diff --git a/gen/Network/AWS/Config/GetDiscoveredResourceCounts.hs b/gen/Network/AWS/Config/GetDiscoveredResourceCounts.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Config/GetDiscoveredResourceCounts.hs
@@ -0,0 +1,197 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.Config.GetDiscoveredResourceCounts
+-- Copyright   : (c) 2013-2017 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the resource types, the number of each resource type, and the total number of resources that AWS Config is recording in this region for your AWS account.
+--
+--
+-- __Example__
+--
+--     * AWS Config is recording three resource types in the US East (Ohio) Region for your account: 25 EC2 instances, 20 IAM users, and 15 S3 buckets.
+--
+--     * You make a call to the @GetDiscoveredResourceCounts@ action and specify that you want all resource types.
+--
+--     * AWS Config returns the following:
+--
+--     * The resource types (EC2 instances, IAM users, and S3 buckets)
+--
+--     * The number of each resource type (25, 20, and 15)
+--
+--     * The total number of all resources (60)
+--
+--
+--
+--
+--
+-- The response is paginated. By default, AWS Config lists 100 'ResourceCount' objects on each page. You can customize this number with the @limit@ parameter. The response includes a @nextToken@ string. To get the next page of results, run the request again and specify the string for the @nextToken@ parameter.
+--
+module Network.AWS.Config.GetDiscoveredResourceCounts
+    (
+    -- * Creating a Request
+      getDiscoveredResourceCounts
+    , GetDiscoveredResourceCounts
+    -- * Request Lenses
+    , gdrcNextToken
+    , gdrcLimit
+    , gdrcResourceTypes
+
+    -- * Destructuring the Response
+    , getDiscoveredResourceCountsResponse
+    , GetDiscoveredResourceCountsResponse
+    -- * Response Lenses
+    , gdrcrsTotalDiscoveredResources
+    , gdrcrsNextToken
+    , gdrcrsResourceCounts
+    , gdrcrsResponseStatus
+    ) where
+
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'getDiscoveredResourceCounts' smart constructor.
+data GetDiscoveredResourceCounts = GetDiscoveredResourceCounts'
+  { _gdrcNextToken     :: !(Maybe Text)
+  , _gdrcLimit         :: !(Maybe Nat)
+  , _gdrcResourceTypes :: !(Maybe [Text])
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetDiscoveredResourceCounts' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gdrcNextToken' - The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+--
+-- * 'gdrcLimit' - The maximum number of 'ResourceCount' objects returned on each page. The default is 100. You cannot specify a limit greater than 100. If you specify 0, AWS Config uses the default.
+--
+-- * 'gdrcResourceTypes' - The comma-separated list that specifies the resource types that you want the AWS Config to return. For example, (@"AWS::EC2::Instance"@ , @"AWS::IAM::User"@ ). If a value for @resourceTypes@ is not specified, AWS Config returns all resource types that AWS Config is recording in the region for your account.
+getDiscoveredResourceCounts
+    :: GetDiscoveredResourceCounts
+getDiscoveredResourceCounts =
+  GetDiscoveredResourceCounts'
+  {_gdrcNextToken = Nothing, _gdrcLimit = Nothing, _gdrcResourceTypes = Nothing}
+
+
+-- | The @nextToken@ string returned on a previous page that you use to get the next page of results in a paginated response.
+gdrcNextToken :: Lens' GetDiscoveredResourceCounts (Maybe Text)
+gdrcNextToken = lens _gdrcNextToken (\ s a -> s{_gdrcNextToken = a});
+
+-- | The maximum number of 'ResourceCount' objects returned on each page. The default is 100. You cannot specify a limit greater than 100. If you specify 0, AWS Config uses the default.
+gdrcLimit :: Lens' GetDiscoveredResourceCounts (Maybe Natural)
+gdrcLimit = lens _gdrcLimit (\ s a -> s{_gdrcLimit = a}) . mapping _Nat;
+
+-- | The comma-separated list that specifies the resource types that you want the AWS Config to return. For example, (@"AWS::EC2::Instance"@ , @"AWS::IAM::User"@ ). If a value for @resourceTypes@ is not specified, AWS Config returns all resource types that AWS Config is recording in the region for your account.
+gdrcResourceTypes :: Lens' GetDiscoveredResourceCounts [Text]
+gdrcResourceTypes = lens _gdrcResourceTypes (\ s a -> s{_gdrcResourceTypes = a}) . _Default . _Coerce;
+
+instance AWSRequest GetDiscoveredResourceCounts where
+        type Rs GetDiscoveredResourceCounts =
+             GetDiscoveredResourceCountsResponse
+        request = postJSON config
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetDiscoveredResourceCountsResponse' <$>
+                   (x .?> "totalDiscoveredResources") <*>
+                     (x .?> "nextToken")
+                     <*> (x .?> "resourceCounts" .!@ mempty)
+                     <*> (pure (fromEnum s)))
+
+instance Hashable GetDiscoveredResourceCounts where
+
+instance NFData GetDiscoveredResourceCounts where
+
+instance ToHeaders GetDiscoveredResourceCounts where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("StarlingDoveService.GetDiscoveredResourceCounts" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON GetDiscoveredResourceCounts where
+        toJSON GetDiscoveredResourceCounts'{..}
+          = object
+              (catMaybes
+                 [("nextToken" .=) <$> _gdrcNextToken,
+                  ("limit" .=) <$> _gdrcLimit,
+                  ("resourceTypes" .=) <$> _gdrcResourceTypes])
+
+instance ToPath GetDiscoveredResourceCounts where
+        toPath = const "/"
+
+instance ToQuery GetDiscoveredResourceCounts where
+        toQuery = const mempty
+
+-- | /See:/ 'getDiscoveredResourceCountsResponse' smart constructor.
+data GetDiscoveredResourceCountsResponse = GetDiscoveredResourceCountsResponse'
+  { _gdrcrsTotalDiscoveredResources :: !(Maybe Integer)
+  , _gdrcrsNextToken                :: !(Maybe Text)
+  , _gdrcrsResourceCounts           :: !(Maybe [ResourceCount])
+  , _gdrcrsResponseStatus           :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'GetDiscoveredResourceCountsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gdrcrsTotalDiscoveredResources' - The total number of resources that AWS Config is recording in the region for your account. If you specify resource types in the request, AWS Config returns only the total number of resources for those resource types. __Example__      * AWS Config is recording three resource types in the US East (Ohio) Region for your account: 25 EC2 instances, 20 IAM users, and 15 S3 buckets, for a total of 60 resources.     * You make a call to the @GetDiscoveredResourceCounts@ action and specify the resource type, @"AWS::EC2::Instances"@ in the request.     * AWS Config returns 25 for @totalDiscoveredResources@ .
+--
+-- * 'gdrcrsNextToken' - The string that you use in a subsequent request to get the next page of results in a paginated response.
+--
+-- * 'gdrcrsResourceCounts' - The list of @ResourceCount@ objects. Each object is listed in descending order by the number of resources.
+--
+-- * 'gdrcrsResponseStatus' - -- | The response status code.
+getDiscoveredResourceCountsResponse
+    :: Int -- ^ 'gdrcrsResponseStatus'
+    -> GetDiscoveredResourceCountsResponse
+getDiscoveredResourceCountsResponse pResponseStatus_ =
+  GetDiscoveredResourceCountsResponse'
+  { _gdrcrsTotalDiscoveredResources = Nothing
+  , _gdrcrsNextToken = Nothing
+  , _gdrcrsResourceCounts = Nothing
+  , _gdrcrsResponseStatus = pResponseStatus_
+  }
+
+
+-- | The total number of resources that AWS Config is recording in the region for your account. If you specify resource types in the request, AWS Config returns only the total number of resources for those resource types. __Example__      * AWS Config is recording three resource types in the US East (Ohio) Region for your account: 25 EC2 instances, 20 IAM users, and 15 S3 buckets, for a total of 60 resources.     * You make a call to the @GetDiscoveredResourceCounts@ action and specify the resource type, @"AWS::EC2::Instances"@ in the request.     * AWS Config returns 25 for @totalDiscoveredResources@ .
+gdrcrsTotalDiscoveredResources :: Lens' GetDiscoveredResourceCountsResponse (Maybe Integer)
+gdrcrsTotalDiscoveredResources = lens _gdrcrsTotalDiscoveredResources (\ s a -> s{_gdrcrsTotalDiscoveredResources = a});
+
+-- | The string that you use in a subsequent request to get the next page of results in a paginated response.
+gdrcrsNextToken :: Lens' GetDiscoveredResourceCountsResponse (Maybe Text)
+gdrcrsNextToken = lens _gdrcrsNextToken (\ s a -> s{_gdrcrsNextToken = a});
+
+-- | The list of @ResourceCount@ objects. Each object is listed in descending order by the number of resources.
+gdrcrsResourceCounts :: Lens' GetDiscoveredResourceCountsResponse [ResourceCount]
+gdrcrsResourceCounts = lens _gdrcrsResourceCounts (\ s a -> s{_gdrcrsResourceCounts = a}) . _Default . _Coerce;
+
+-- | -- | The response status code.
+gdrcrsResponseStatus :: Lens' GetDiscoveredResourceCountsResponse Int
+gdrcrsResponseStatus = lens _gdrcrsResponseStatus (\ s a -> s{_gdrcrsResponseStatus = a});
+
+instance NFData GetDiscoveredResourceCountsResponse
+         where
diff --git a/gen/Network/AWS/Config/GetResourceConfigHistory.hs b/gen/Network/AWS/Config/GetResourceConfigHistory.hs
--- a/gen/Network/AWS/Config/GetResourceConfigHistory.hs
+++ b/gen/Network/AWS/Config/GetResourceConfigHistory.hs
@@ -12,17 +12,19 @@
 
 -- |
 -- Module      : Network.AWS.Config.GetResourceConfigHistory
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Returns a list of configuration items for the specified resource. The list contains details about each state of the resource during the specified time interval.
 --
 --
--- The response is paginated, and by default, AWS Config returns a limit of 10 configuration items per page. You can customize this number with the @limit@ parameter. The response includes a @nextToken@ string, and to get the next page of results, run the request again and enter this string for the @nextToken@ parameter.
+-- The response is paginated. By default, AWS Config returns a limit of 10 configuration items per page. You can customize this number with the @limit@ parameter. The response includes a @nextToken@ string. To get the next page of results, run the request again and specify the string for the @nextToken@ parameter.
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.Config.GetResourceConfigHistory
     (
     -- * Creating a Request
@@ -46,12 +48,13 @@
     , grchrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | The input for the 'GetResourceConfigHistory' action.
 --
@@ -59,15 +62,16 @@
 --
 -- /See:/ 'getResourceConfigHistory' smart constructor.
 data GetResourceConfigHistory = GetResourceConfigHistory'
-    { _grchChronologicalOrder :: !(Maybe ChronologicalOrder)
-    , _grchNextToken          :: !(Maybe Text)
-    , _grchLimit              :: !(Maybe Nat)
-    , _grchLaterTime          :: !(Maybe POSIX)
-    , _grchEarlierTime        :: !(Maybe POSIX)
-    , _grchResourceType       :: !ResourceType
-    , _grchResourceId         :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _grchChronologicalOrder :: !(Maybe ChronologicalOrder)
+  , _grchNextToken          :: !(Maybe Text)
+  , _grchLimit              :: !(Maybe Nat)
+  , _grchLaterTime          :: !(Maybe POSIX)
+  , _grchEarlierTime        :: !(Maybe POSIX)
+  , _grchResourceType       :: !ResourceType
+  , _grchResourceId         :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetResourceConfigHistory' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -90,16 +94,17 @@
     -> Text -- ^ 'grchResourceId'
     -> GetResourceConfigHistory
 getResourceConfigHistory pResourceType_ pResourceId_ =
-    GetResourceConfigHistory'
-    { _grchChronologicalOrder = Nothing
-    , _grchNextToken = Nothing
-    , _grchLimit = Nothing
-    , _grchLaterTime = Nothing
-    , _grchEarlierTime = Nothing
-    , _grchResourceType = pResourceType_
-    , _grchResourceId = pResourceId_
-    }
+  GetResourceConfigHistory'
+  { _grchChronologicalOrder = Nothing
+  , _grchNextToken = Nothing
+  , _grchLimit = Nothing
+  , _grchLaterTime = Nothing
+  , _grchEarlierTime = Nothing
+  , _grchResourceType = pResourceType_
+  , _grchResourceId = pResourceId_
+  }
 
+
 -- | The chronological order for configuration items listed. By default the results are listed in reverse chronological order.
 grchChronologicalOrder :: Lens' GetResourceConfigHistory (Maybe ChronologicalOrder)
 grchChronologicalOrder = lens _grchChronologicalOrder (\ s a -> s{_grchChronologicalOrder = a});
@@ -128,6 +133,13 @@
 grchResourceId :: Lens' GetResourceConfigHistory Text
 grchResourceId = lens _grchResourceId (\ s a -> s{_grchResourceId = a});
 
+instance AWSPager GetResourceConfigHistory where
+        page rq rs
+          | stop (rs ^. grchrsNextToken) = Nothing
+          | stop (rs ^. grchrsConfigurationItems) = Nothing
+          | otherwise =
+            Just $ rq & grchNextToken .~ rs ^. grchrsNextToken
+
 instance AWSRequest GetResourceConfigHistory where
         type Rs GetResourceConfigHistory =
              GetResourceConfigHistoryResponse
@@ -140,9 +152,9 @@
                      (x .?> "configurationItems" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable GetResourceConfigHistory
+instance Hashable GetResourceConfigHistory where
 
-instance NFData GetResourceConfigHistory
+instance NFData GetResourceConfigHistory where
 
 instance ToHeaders GetResourceConfigHistory where
         toHeaders
@@ -179,11 +191,12 @@
 --
 -- /See:/ 'getResourceConfigHistoryResponse' smart constructor.
 data GetResourceConfigHistoryResponse = GetResourceConfigHistoryResponse'
-    { _grchrsNextToken          :: !(Maybe Text)
-    , _grchrsConfigurationItems :: !(Maybe [ConfigurationItem])
-    , _grchrsResponseStatus     :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _grchrsNextToken          :: !(Maybe Text)
+  , _grchrsConfigurationItems :: !(Maybe [ConfigurationItem])
+  , _grchrsResponseStatus     :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetResourceConfigHistoryResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -197,12 +210,13 @@
     :: Int -- ^ 'grchrsResponseStatus'
     -> GetResourceConfigHistoryResponse
 getResourceConfigHistoryResponse pResponseStatus_ =
-    GetResourceConfigHistoryResponse'
-    { _grchrsNextToken = Nothing
-    , _grchrsConfigurationItems = Nothing
-    , _grchrsResponseStatus = pResponseStatus_
-    }
+  GetResourceConfigHistoryResponse'
+  { _grchrsNextToken = Nothing
+  , _grchrsConfigurationItems = Nothing
+  , _grchrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The string that you use in a subsequent request to get the next page of results in a paginated response.
 grchrsNextToken :: Lens' GetResourceConfigHistoryResponse (Maybe Text)
 grchrsNextToken = lens _grchrsNextToken (\ s a -> s{_grchrsNextToken = a});
@@ -216,3 +230,4 @@
 grchrsResponseStatus = lens _grchrsResponseStatus (\ s a -> s{_grchrsResponseStatus = a});
 
 instance NFData GetResourceConfigHistoryResponse
+         where
diff --git a/gen/Network/AWS/Config/ListDiscoveredResources.hs b/gen/Network/AWS/Config/ListDiscoveredResources.hs
--- a/gen/Network/AWS/Config/ListDiscoveredResources.hs
+++ b/gen/Network/AWS/Config/ListDiscoveredResources.hs
@@ -12,17 +12,19 @@
 
 -- |
 -- Module      : Network.AWS.Config.ListDiscoveredResources
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Accepts a resource type and returns a list of resource identifiers for the resources of that type. A resource identifier includes the resource type, ID, and (if available) the custom resource name. The results consist of resources that AWS Config has discovered, including those that AWS Config is not currently recording. You can narrow the results to include only resources that have specific resource IDs or a resource name.
 --
 --
--- The response is paginated, and by default AWS Config lists 100 resource identifiers on each page. You can customize this number with the @limit@ parameter. The response includes a @nextToken@ string, and to get the next page of results, run the request again and enter this string for the @nextToken@ parameter.
+-- The response is paginated. By default, AWS Config lists 100 resource identifiers on each page. You can customize this number with the @limit@ parameter. The response includes a @nextToken@ string. To get the next page of results, run the request again and specify the string for the @nextToken@ parameter.
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.Config.ListDiscoveredResources
     (
     -- * Creating a Request
@@ -45,12 +47,13 @@
     , ldrrsResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -58,14 +61,15 @@
 --
 -- /See:/ 'listDiscoveredResources' smart constructor.
 data ListDiscoveredResources = ListDiscoveredResources'
-    { _ldrResourceIds             :: !(Maybe [Text])
-    , _ldrResourceName            :: !(Maybe Text)
-    , _ldrIncludeDeletedResources :: !(Maybe Bool)
-    , _ldrNextToken               :: !(Maybe Text)
-    , _ldrLimit                   :: !(Maybe Nat)
-    , _ldrResourceType            :: !ResourceType
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ldrResourceIds             :: !(Maybe [Text])
+  , _ldrResourceName            :: !(Maybe Text)
+  , _ldrIncludeDeletedResources :: !(Maybe Bool)
+  , _ldrNextToken               :: !(Maybe Text)
+  , _ldrLimit                   :: !(Maybe Nat)
+  , _ldrResourceType            :: !ResourceType
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListDiscoveredResources' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -85,15 +89,16 @@
     :: ResourceType -- ^ 'ldrResourceType'
     -> ListDiscoveredResources
 listDiscoveredResources pResourceType_ =
-    ListDiscoveredResources'
-    { _ldrResourceIds = Nothing
-    , _ldrResourceName = Nothing
-    , _ldrIncludeDeletedResources = Nothing
-    , _ldrNextToken = Nothing
-    , _ldrLimit = Nothing
-    , _ldrResourceType = pResourceType_
-    }
+  ListDiscoveredResources'
+  { _ldrResourceIds = Nothing
+  , _ldrResourceName = Nothing
+  , _ldrIncludeDeletedResources = Nothing
+  , _ldrNextToken = Nothing
+  , _ldrLimit = Nothing
+  , _ldrResourceType = pResourceType_
+  }
 
+
 -- | The IDs of only those resources that you want AWS Config to list in the response. If you do not specify this parameter, AWS Config lists all resources of the specified type that it has discovered.
 ldrResourceIds :: Lens' ListDiscoveredResources [Text]
 ldrResourceIds = lens _ldrResourceIds (\ s a -> s{_ldrResourceIds = a}) . _Default . _Coerce;
@@ -118,6 +123,13 @@
 ldrResourceType :: Lens' ListDiscoveredResources ResourceType
 ldrResourceType = lens _ldrResourceType (\ s a -> s{_ldrResourceType = a});
 
+instance AWSPager ListDiscoveredResources where
+        page rq rs
+          | stop (rs ^. ldrrsNextToken) = Nothing
+          | stop (rs ^. ldrrsResourceIdentifiers) = Nothing
+          | otherwise =
+            Just $ rq & ldrNextToken .~ rs ^. ldrrsNextToken
+
 instance AWSRequest ListDiscoveredResources where
         type Rs ListDiscoveredResources =
              ListDiscoveredResourcesResponse
@@ -130,9 +142,9 @@
                      (x .?> "resourceIdentifiers" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListDiscoveredResources
+instance Hashable ListDiscoveredResources where
 
-instance NFData ListDiscoveredResources
+instance NFData ListDiscoveredResources where
 
 instance ToHeaders ListDiscoveredResources where
         toHeaders
@@ -168,11 +180,12 @@
 --
 -- /See:/ 'listDiscoveredResourcesResponse' smart constructor.
 data ListDiscoveredResourcesResponse = ListDiscoveredResourcesResponse'
-    { _ldrrsNextToken           :: !(Maybe Text)
-    , _ldrrsResourceIdentifiers :: !(Maybe [ResourceIdentifier])
-    , _ldrrsResponseStatus      :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ldrrsNextToken           :: !(Maybe Text)
+  , _ldrrsResourceIdentifiers :: !(Maybe [ResourceIdentifier])
+  , _ldrrsResponseStatus      :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListDiscoveredResourcesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -186,12 +199,13 @@
     :: Int -- ^ 'ldrrsResponseStatus'
     -> ListDiscoveredResourcesResponse
 listDiscoveredResourcesResponse pResponseStatus_ =
-    ListDiscoveredResourcesResponse'
-    { _ldrrsNextToken = Nothing
-    , _ldrrsResourceIdentifiers = Nothing
-    , _ldrrsResponseStatus = pResponseStatus_
-    }
+  ListDiscoveredResourcesResponse'
+  { _ldrrsNextToken = Nothing
+  , _ldrrsResourceIdentifiers = Nothing
+  , _ldrrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The string that you use in a subsequent request to get the next page of results in a paginated response.
 ldrrsNextToken :: Lens' ListDiscoveredResourcesResponse (Maybe Text)
 ldrrsNextToken = lens _ldrrsNextToken (\ s a -> s{_ldrrsNextToken = a});
@@ -204,4 +218,4 @@
 ldrrsResponseStatus :: Lens' ListDiscoveredResourcesResponse Int
 ldrrsResponseStatus = lens _ldrrsResponseStatus (\ s a -> s{_ldrrsResponseStatus = a});
 
-instance NFData ListDiscoveredResourcesResponse
+instance NFData ListDiscoveredResourcesResponse where
diff --git a/gen/Network/AWS/Config/PutConfigRule.hs b/gen/Network/AWS/Config/PutConfigRule.hs
--- a/gen/Network/AWS/Config/PutConfigRule.hs
+++ b/gen/Network/AWS/Config/PutConfigRule.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.PutConfigRule
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -25,14 +25,16 @@
 --
 -- If you are adding a new custom Config rule, you must first create the AWS Lambda function that the rule invokes to evaluate your resources. When you use the @PutConfigRule@ action to add the rule to AWS Config, you must specify the Amazon Resource Name (ARN) that AWS Lambda assigns to the function. Specify the ARN for the @SourceIdentifier@ key. This key is part of the @Source@ object, which is part of the @ConfigRule@ object.
 --
--- If you are adding a new AWS managed Config rule, specify the rule's identifier for the @SourceIdentifier@ key. To reference AWS managed Config rule identifiers, see <http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html Using AWS Managed Config Rules> .
+-- If you are adding an AWS managed Config rule, specify the rule's identifier for the @SourceIdentifier@ key. To reference AWS managed Config rule identifiers, see <http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html About AWS Managed Config Rules> .
 --
 -- For any new rule that you add, specify the @ConfigRuleName@ in the @ConfigRule@ object. Do not specify the @ConfigRuleArn@ or the @ConfigRuleId@ . These values are generated by AWS Config for new rules.
 --
 -- If you are updating a rule that you added previously, you can specify the rule by @ConfigRuleName@ , @ConfigRuleId@ , or @ConfigRuleArn@ in the @ConfigRule@ data type that you use in this request.
 --
--- The maximum number of rules that AWS Config supports is 25.
+-- The maximum number of rules that AWS Config supports is 50.
 --
+-- For more information about requesting a rule limit increase, see <http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config AWS Config Limits> in the /AWS General Reference Guide/ .
+--
 -- For more information about developing and using AWS Config rules, see <http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html Evaluating AWS Resource Configurations with AWS Config> in the /AWS Config Developer Guide/ .
 --
 module Network.AWS.Config.PutConfigRule
@@ -48,36 +50,31 @@
     , PutConfigRuleResponse
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
--- |
---
---
---
--- /See:/ 'putConfigRule' smart constructor.
+-- | /See:/ 'putConfigRule' smart constructor.
 newtype PutConfigRule = PutConfigRule'
-    { _pcrConfigRule :: ConfigRule
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _pcrConfigRule :: ConfigRule
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutConfigRule' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'pcrConfigRule' - Undocumented member.
+-- * 'pcrConfigRule' - The rule that you want to add to your account.
 putConfigRule
     :: ConfigRule -- ^ 'pcrConfigRule'
     -> PutConfigRule
-putConfigRule pConfigRule_ =
-    PutConfigRule'
-    { _pcrConfigRule = pConfigRule_
-    }
+putConfigRule pConfigRule_ = PutConfigRule' {_pcrConfigRule = pConfigRule_}
 
--- | Undocumented member.
+
+-- | The rule that you want to add to your account.
 pcrConfigRule :: Lens' PutConfigRule ConfigRule
 pcrConfigRule = lens _pcrConfigRule (\ s a -> s{_pcrConfigRule = a});
 
@@ -86,9 +83,9 @@
         request = postJSON config
         response = receiveNull PutConfigRuleResponse'
 
-instance Hashable PutConfigRule
+instance Hashable PutConfigRule where
 
-instance NFData PutConfigRule
+instance NFData PutConfigRule where
 
 instance ToHeaders PutConfigRule where
         toHeaders
@@ -112,13 +109,15 @@
 
 -- | /See:/ 'putConfigRuleResponse' smart constructor.
 data PutConfigRuleResponse =
-    PutConfigRuleResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  PutConfigRuleResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutConfigRuleResponse' with the minimum fields required to make a request.
 --
 putConfigRuleResponse
     :: PutConfigRuleResponse
 putConfigRuleResponse = PutConfigRuleResponse'
 
-instance NFData PutConfigRuleResponse
+
+instance NFData PutConfigRuleResponse where
diff --git a/gen/Network/AWS/Config/PutConfigurationRecorder.hs b/gen/Network/AWS/Config/PutConfigurationRecorder.hs
--- a/gen/Network/AWS/Config/PutConfigurationRecorder.hs
+++ b/gen/Network/AWS/Config/PutConfigurationRecorder.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.PutConfigurationRecorder
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -36,12 +36,12 @@
     , PutConfigurationRecorderResponse
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | The input for the 'PutConfigurationRecorder' action.
 --
@@ -49,9 +49,10 @@
 --
 -- /See:/ 'putConfigurationRecorder' smart constructor.
 newtype PutConfigurationRecorder = PutConfigurationRecorder'
-    { _pcrConfigurationRecorder :: ConfigurationRecorder
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _pcrConfigurationRecorder :: ConfigurationRecorder
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutConfigurationRecorder' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,10 +62,10 @@
     :: ConfigurationRecorder -- ^ 'pcrConfigurationRecorder'
     -> PutConfigurationRecorder
 putConfigurationRecorder pConfigurationRecorder_ =
-    PutConfigurationRecorder'
-    { _pcrConfigurationRecorder = pConfigurationRecorder_
-    }
+  PutConfigurationRecorder'
+  {_pcrConfigurationRecorder = pConfigurationRecorder_}
 
+
 -- | The configuration recorder object that records each configuration change made to the resources.
 pcrConfigurationRecorder :: Lens' PutConfigurationRecorder ConfigurationRecorder
 pcrConfigurationRecorder = lens _pcrConfigurationRecorder (\ s a -> s{_pcrConfigurationRecorder = a});
@@ -76,9 +77,9 @@
         response
           = receiveNull PutConfigurationRecorderResponse'
 
-instance Hashable PutConfigurationRecorder
+instance Hashable PutConfigurationRecorder where
 
-instance NFData PutConfigurationRecorder
+instance NFData PutConfigurationRecorder where
 
 instance ToHeaders PutConfigurationRecorder where
         toHeaders
@@ -106,13 +107,16 @@
 
 -- | /See:/ 'putConfigurationRecorderResponse' smart constructor.
 data PutConfigurationRecorderResponse =
-    PutConfigurationRecorderResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  PutConfigurationRecorderResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutConfigurationRecorderResponse' with the minimum fields required to make a request.
 --
 putConfigurationRecorderResponse
     :: PutConfigurationRecorderResponse
 putConfigurationRecorderResponse = PutConfigurationRecorderResponse'
 
+
 instance NFData PutConfigurationRecorderResponse
+         where
diff --git a/gen/Network/AWS/Config/PutDeliveryChannel.hs b/gen/Network/AWS/Config/PutDeliveryChannel.hs
--- a/gen/Network/AWS/Config/PutDeliveryChannel.hs
+++ b/gen/Network/AWS/Config/PutDeliveryChannel.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.PutDeliveryChannel
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,12 +38,12 @@
     , PutDeliveryChannelResponse
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | The input for the 'PutDeliveryChannel' action.
 --
@@ -51,9 +51,10 @@
 --
 -- /See:/ 'putDeliveryChannel' smart constructor.
 newtype PutDeliveryChannel = PutDeliveryChannel'
-    { _pdcDeliveryChannel :: DeliveryChannel
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _pdcDeliveryChannel :: DeliveryChannel
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutDeliveryChannel' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -63,10 +64,9 @@
     :: DeliveryChannel -- ^ 'pdcDeliveryChannel'
     -> PutDeliveryChannel
 putDeliveryChannel pDeliveryChannel_ =
-    PutDeliveryChannel'
-    { _pdcDeliveryChannel = pDeliveryChannel_
-    }
+  PutDeliveryChannel' {_pdcDeliveryChannel = pDeliveryChannel_}
 
+
 -- | The configuration delivery channel object that delivers the configuration information to an Amazon S3 bucket, and to an Amazon SNS topic.
 pdcDeliveryChannel :: Lens' PutDeliveryChannel DeliveryChannel
 pdcDeliveryChannel = lens _pdcDeliveryChannel (\ s a -> s{_pdcDeliveryChannel = a});
@@ -77,9 +77,9 @@
         request = postJSON config
         response = receiveNull PutDeliveryChannelResponse'
 
-instance Hashable PutDeliveryChannel
+instance Hashable PutDeliveryChannel where
 
-instance NFData PutDeliveryChannel
+instance NFData PutDeliveryChannel where
 
 instance ToHeaders PutDeliveryChannel where
         toHeaders
@@ -105,13 +105,15 @@
 
 -- | /See:/ 'putDeliveryChannelResponse' smart constructor.
 data PutDeliveryChannelResponse =
-    PutDeliveryChannelResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  PutDeliveryChannelResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutDeliveryChannelResponse' with the minimum fields required to make a request.
 --
 putDeliveryChannelResponse
     :: PutDeliveryChannelResponse
 putDeliveryChannelResponse = PutDeliveryChannelResponse'
 
-instance NFData PutDeliveryChannelResponse
+
+instance NFData PutDeliveryChannelResponse where
diff --git a/gen/Network/AWS/Config/PutEvaluations.hs b/gen/Network/AWS/Config/PutEvaluations.hs
--- a/gen/Network/AWS/Config/PutEvaluations.hs
+++ b/gen/Network/AWS/Config/PutEvaluations.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.PutEvaluations
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -28,6 +28,7 @@
     , PutEvaluations
     -- * Request Lenses
     , peEvaluations
+    , peTestMode
     , peResultToken
 
     -- * Destructuring the Response
@@ -38,12 +39,12 @@
     , persResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -51,30 +52,40 @@
 --
 -- /See:/ 'putEvaluations' smart constructor.
 data PutEvaluations = PutEvaluations'
-    { _peEvaluations :: !(Maybe [Evaluation])
-    , _peResultToken :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _peEvaluations :: !(Maybe [Evaluation])
+  , _peTestMode    :: !(Maybe Bool)
+  , _peResultToken :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutEvaluations' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'peEvaluations' - The assessments that the AWS Lambda function performs. Each evaluation identifies an AWS resource and indicates whether it complies with the AWS Config rule that invokes the AWS Lambda function.
 --
+-- * 'peTestMode' - Use this parameter to specify a test run for @PutEvaluations@ . You can verify whether your AWS Lambda function will deliver evaluation results to AWS Config. No updates occur to your existing evaluations, and evaluation results are not sent to AWS Config.
+--
 -- * 'peResultToken' - An encrypted token that associates an evaluation with an AWS Config rule. Identifies the rule and the event that triggered the evaluation
 putEvaluations
     :: Text -- ^ 'peResultToken'
     -> PutEvaluations
 putEvaluations pResultToken_ =
-    PutEvaluations'
-    { _peEvaluations = Nothing
-    , _peResultToken = pResultToken_
-    }
+  PutEvaluations'
+  { _peEvaluations = Nothing
+  , _peTestMode = Nothing
+  , _peResultToken = pResultToken_
+  }
 
+
 -- | The assessments that the AWS Lambda function performs. Each evaluation identifies an AWS resource and indicates whether it complies with the AWS Config rule that invokes the AWS Lambda function.
 peEvaluations :: Lens' PutEvaluations [Evaluation]
 peEvaluations = lens _peEvaluations (\ s a -> s{_peEvaluations = a}) . _Default . _Coerce;
 
+-- | Use this parameter to specify a test run for @PutEvaluations@ . You can verify whether your AWS Lambda function will deliver evaluation results to AWS Config. No updates occur to your existing evaluations, and evaluation results are not sent to AWS Config.
+peTestMode :: Lens' PutEvaluations (Maybe Bool)
+peTestMode = lens _peTestMode (\ s a -> s{_peTestMode = a});
+
 -- | An encrypted token that associates an evaluation with an AWS Config rule. Identifies the rule and the event that triggered the evaluation
 peResultToken :: Lens' PutEvaluations Text
 peResultToken = lens _peResultToken (\ s a -> s{_peResultToken = a});
@@ -89,9 +100,9 @@
                    (x .?> "FailedEvaluations" .!@ mempty) <*>
                      (pure (fromEnum s)))
 
-instance Hashable PutEvaluations
+instance Hashable PutEvaluations where
 
-instance NFData PutEvaluations
+instance NFData PutEvaluations where
 
 instance ToHeaders PutEvaluations where
         toHeaders
@@ -107,6 +118,7 @@
           = object
               (catMaybes
                  [("Evaluations" .=) <$> _peEvaluations,
+                  ("TestMode" .=) <$> _peTestMode,
                   Just ("ResultToken" .= _peResultToken)])
 
 instance ToPath PutEvaluations where
@@ -121,10 +133,11 @@
 --
 -- /See:/ 'putEvaluationsResponse' smart constructor.
 data PutEvaluationsResponse = PutEvaluationsResponse'
-    { _persFailedEvaluations :: !(Maybe [Evaluation])
-    , _persResponseStatus    :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _persFailedEvaluations :: !(Maybe [Evaluation])
+  , _persResponseStatus    :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'PutEvaluationsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -136,11 +149,10 @@
     :: Int -- ^ 'persResponseStatus'
     -> PutEvaluationsResponse
 putEvaluationsResponse pResponseStatus_ =
-    PutEvaluationsResponse'
-    { _persFailedEvaluations = Nothing
-    , _persResponseStatus = pResponseStatus_
-    }
+  PutEvaluationsResponse'
+  {_persFailedEvaluations = Nothing, _persResponseStatus = pResponseStatus_}
 
+
 -- | Requests that failed because of a client or server error.
 persFailedEvaluations :: Lens' PutEvaluationsResponse [Evaluation]
 persFailedEvaluations = lens _persFailedEvaluations (\ s a -> s{_persFailedEvaluations = a}) . _Default . _Coerce;
@@ -149,4 +161,4 @@
 persResponseStatus :: Lens' PutEvaluationsResponse Int
 persResponseStatus = lens _persResponseStatus (\ s a -> s{_persResponseStatus = a});
 
-instance NFData PutEvaluationsResponse
+instance NFData PutEvaluationsResponse where
diff --git a/gen/Network/AWS/Config/StartConfigRulesEvaluation.hs b/gen/Network/AWS/Config/StartConfigRulesEvaluation.hs
--- a/gen/Network/AWS/Config/StartConfigRulesEvaluation.hs
+++ b/gen/Network/AWS/Config/StartConfigRulesEvaluation.hs
@@ -12,17 +12,19 @@
 
 -- |
 -- Module      : Network.AWS.Config.StartConfigRulesEvaluation
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Evaluates your resources against the specified Config rules. You can specify up to 25 Config rules per request.
+-- Runs an on-demand evaluation for the specified Config rules against the last known configuration state of the resources. Use @StartConfigRulesEvaluation@ when you want to test a rule that you updated is working as expected. @StartConfigRulesEvaluation@ does not re-record the latest configuration state for your resources; it re-runs an evaluation against the last known state of your resources.
 --
 --
--- An existing 'StartConfigRulesEvaluation' call must complete for the specified rules before you can call the API again. If you chose to have AWS Config stream to an Amazon SNS topic, you will receive a @ConfigRuleEvaluationStarted@ notification when the evaluation starts.
+-- You can specify up to 25 Config rules per request.
 --
+-- An existing @StartConfigRulesEvaluation@ call must complete for the specified rules before you can call the API again. If you chose to have AWS Config stream to an Amazon SNS topic, you will receive a @ConfigRuleEvaluationStarted@ notification when the evaluation starts.
+--
 -- The @StartConfigRulesEvaluation@ API is useful if you want to run on-demand evaluations, such as the following example:
 --
 --     * You have a custom rule that evaluates your IAM resources every 24 hours.
@@ -52,12 +54,12 @@
     , scrersResponseStatus
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -65,9 +67,10 @@
 --
 -- /See:/ 'startConfigRulesEvaluation' smart constructor.
 newtype StartConfigRulesEvaluation = StartConfigRulesEvaluation'
-    { _screConfigRuleNames :: Maybe (List1 Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _screConfigRuleNames :: Maybe (List1 Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'StartConfigRulesEvaluation' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -76,10 +79,9 @@
 startConfigRulesEvaluation
     :: StartConfigRulesEvaluation
 startConfigRulesEvaluation =
-    StartConfigRulesEvaluation'
-    { _screConfigRuleNames = Nothing
-    }
+  StartConfigRulesEvaluation' {_screConfigRuleNames = Nothing}
 
+
 -- | The list of names of Config rules that you want to run evaluations for.
 screConfigRuleNames :: Lens' StartConfigRulesEvaluation (Maybe (NonEmpty Text))
 screConfigRuleNames = lens _screConfigRuleNames (\ s a -> s{_screConfigRuleNames = a}) . mapping _List1;
@@ -94,9 +96,9 @@
                  StartConfigRulesEvaluationResponse' <$>
                    (pure (fromEnum s)))
 
-instance Hashable StartConfigRulesEvaluation
+instance Hashable StartConfigRulesEvaluation where
 
-instance NFData StartConfigRulesEvaluation
+instance NFData StartConfigRulesEvaluation where
 
 instance ToHeaders StartConfigRulesEvaluation where
         toHeaders
@@ -126,9 +128,10 @@
 --
 -- /See:/ 'startConfigRulesEvaluationResponse' smart constructor.
 newtype StartConfigRulesEvaluationResponse = StartConfigRulesEvaluationResponse'
-    { _scrersResponseStatus :: Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _scrersResponseStatus :: Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'StartConfigRulesEvaluationResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -138,12 +141,12 @@
     :: Int -- ^ 'scrersResponseStatus'
     -> StartConfigRulesEvaluationResponse
 startConfigRulesEvaluationResponse pResponseStatus_ =
-    StartConfigRulesEvaluationResponse'
-    { _scrersResponseStatus = pResponseStatus_
-    }
+  StartConfigRulesEvaluationResponse' {_scrersResponseStatus = pResponseStatus_}
 
+
 -- | -- | The response status code.
 scrersResponseStatus :: Lens' StartConfigRulesEvaluationResponse Int
 scrersResponseStatus = lens _scrersResponseStatus (\ s a -> s{_scrersResponseStatus = a});
 
 instance NFData StartConfigRulesEvaluationResponse
+         where
diff --git a/gen/Network/AWS/Config/StartConfigurationRecorder.hs b/gen/Network/AWS/Config/StartConfigurationRecorder.hs
--- a/gen/Network/AWS/Config/StartConfigurationRecorder.hs
+++ b/gen/Network/AWS/Config/StartConfigurationRecorder.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.StartConfigurationRecorder
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -36,12 +36,12 @@
     , StartConfigurationRecorderResponse
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | The input for the 'StartConfigurationRecorder' action.
 --
@@ -49,9 +49,10 @@
 --
 -- /See:/ 'startConfigurationRecorder' smart constructor.
 newtype StartConfigurationRecorder = StartConfigurationRecorder'
-    { _sConfigurationRecorderName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sConfigurationRecorderName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'StartConfigurationRecorder' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,10 +62,10 @@
     :: Text -- ^ 'sConfigurationRecorderName'
     -> StartConfigurationRecorder
 startConfigurationRecorder pConfigurationRecorderName_ =
-    StartConfigurationRecorder'
-    { _sConfigurationRecorderName = pConfigurationRecorderName_
-    }
+  StartConfigurationRecorder'
+  {_sConfigurationRecorderName = pConfigurationRecorderName_}
 
+
 -- | The name of the recorder object that records each configuration change made to the resources.
 sConfigurationRecorderName :: Lens' StartConfigurationRecorder Text
 sConfigurationRecorderName = lens _sConfigurationRecorderName (\ s a -> s{_sConfigurationRecorderName = a});
@@ -76,9 +77,9 @@
         response
           = receiveNull StartConfigurationRecorderResponse'
 
-instance Hashable StartConfigurationRecorder
+instance Hashable StartConfigurationRecorder where
 
-instance NFData StartConfigurationRecorder
+instance NFData StartConfigurationRecorder where
 
 instance ToHeaders StartConfigurationRecorder where
         toHeaders
@@ -106,13 +107,16 @@
 
 -- | /See:/ 'startConfigurationRecorderResponse' smart constructor.
 data StartConfigurationRecorderResponse =
-    StartConfigurationRecorderResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  StartConfigurationRecorderResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'StartConfigurationRecorderResponse' with the minimum fields required to make a request.
 --
 startConfigurationRecorderResponse
     :: StartConfigurationRecorderResponse
 startConfigurationRecorderResponse = StartConfigurationRecorderResponse'
 
+
 instance NFData StartConfigurationRecorderResponse
+         where
diff --git a/gen/Network/AWS/Config/StopConfigurationRecorder.hs b/gen/Network/AWS/Config/StopConfigurationRecorder.hs
--- a/gen/Network/AWS/Config/StopConfigurationRecorder.hs
+++ b/gen/Network/AWS/Config/StopConfigurationRecorder.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.StopConfigurationRecorder
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -34,12 +34,12 @@
     , StopConfigurationRecorderResponse
     ) where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.Config.Types
+import Network.AWS.Config.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | The input for the 'StopConfigurationRecorder' action.
 --
@@ -47,9 +47,10 @@
 --
 -- /See:/ 'stopConfigurationRecorder' smart constructor.
 newtype StopConfigurationRecorder = StopConfigurationRecorder'
-    { _scrConfigurationRecorderName :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _scrConfigurationRecorderName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'StopConfigurationRecorder' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -59,10 +60,10 @@
     :: Text -- ^ 'scrConfigurationRecorderName'
     -> StopConfigurationRecorder
 stopConfigurationRecorder pConfigurationRecorderName_ =
-    StopConfigurationRecorder'
-    { _scrConfigurationRecorderName = pConfigurationRecorderName_
-    }
+  StopConfigurationRecorder'
+  {_scrConfigurationRecorderName = pConfigurationRecorderName_}
 
+
 -- | The name of the recorder object that records each configuration change made to the resources.
 scrConfigurationRecorderName :: Lens' StopConfigurationRecorder Text
 scrConfigurationRecorderName = lens _scrConfigurationRecorderName (\ s a -> s{_scrConfigurationRecorderName = a});
@@ -74,9 +75,9 @@
         response
           = receiveNull StopConfigurationRecorderResponse'
 
-instance Hashable StopConfigurationRecorder
+instance Hashable StopConfigurationRecorder where
 
-instance NFData StopConfigurationRecorder
+instance NFData StopConfigurationRecorder where
 
 instance ToHeaders StopConfigurationRecorder where
         toHeaders
@@ -104,13 +105,16 @@
 
 -- | /See:/ 'stopConfigurationRecorderResponse' smart constructor.
 data StopConfigurationRecorderResponse =
-    StopConfigurationRecorderResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  StopConfigurationRecorderResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'StopConfigurationRecorderResponse' with the minimum fields required to make a request.
 --
 stopConfigurationRecorderResponse
     :: StopConfigurationRecorderResponse
 stopConfigurationRecorderResponse = StopConfigurationRecorderResponse'
 
+
 instance NFData StopConfigurationRecorderResponse
+         where
diff --git a/gen/Network/AWS/Config/Types.hs b/gen/Network/AWS/Config/Types.hs
--- a/gen/Network/AWS/Config/Types.hs
+++ b/gen/Network/AWS/Config/Types.hs
@@ -4,9 +4,9 @@
 
 -- |
 -- Module      : Network.AWS.Config.Types
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -272,6 +272,12 @@
     , rResourceName
     , rRelationshipName
 
+    -- * ResourceCount
+    , ResourceCount
+    , resourceCount
+    , rcResourceType
+    , rcCount
+
     -- * ResourceIdentifier
     , ResourceIdentifier
     , resourceIdentifier
@@ -291,9 +297,9 @@
     -- * Source
     , Source
     , source
-    , sSourceIdentifier
-    , sOwner
     , sSourceDetails
+    , sOwner
+    , sSourceIdentifier
 
     -- * SourceDetail
     , SourceDetail
@@ -303,38 +309,40 @@
     , sdEventSource
     ) where
 
-import           Network.AWS.Config.Types.Product
-import           Network.AWS.Config.Types.Sum
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Sign.V4
+import Network.AWS.Config.Types.Product
+import Network.AWS.Config.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Sign.V4
 
 -- | API version @2014-11-12@ of the Amazon Config SDK configuration.
 config :: Service
 config =
-    Service
-    { _svcAbbrev = "Config"
-    , _svcSigner = v4
-    , _svcPrefix = "config"
-    , _svcVersion = "2014-11-12"
-    , _svcEndpoint = defaultEndpoint config
-    , _svcTimeout = Just 70
-    , _svcCheck = statusSuccess
-    , _svcError = parseJSONError "Config"
-    , _svcRetry = retry
-    }
+  Service
+  { _svcAbbrev = "Config"
+  , _svcSigner = v4
+  , _svcPrefix = "config"
+  , _svcVersion = "2014-11-12"
+  , _svcEndpoint = defaultEndpoint config
+  , _svcTimeout = Just 70
+  , _svcCheck = statusSuccess
+  , _svcError = parseJSONError "Config"
+  , _svcRetry = retry
+  }
   where
     retry =
-        Exponential
-        { _retryBase = 5.0e-2
-        , _retryGrowth = 2
-        , _retryAttempts = 5
-        , _retryCheck = check
-        }
+      Exponential
+      { _retryBase = 5.0e-2
+      , _retryGrowth = 2
+      , _retryAttempts = 5
+      , _retryCheck = check
+      }
     check e
+      | has (hasCode "ThrottledException" . hasStatus 400) e =
+        Just "throttled_exception"
       | has (hasStatus 429) e = Just "too_many_requests"
       | has (hasCode "ThrottlingException" . hasStatus 400) e =
-          Just "throttling_exception"
+        Just "throttling_exception"
       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
       | has (hasStatus 504) e = Just "gateway_timeout"
       | has (hasStatus 502) e = Just "bad_gateway"
@@ -343,87 +351,100 @@
       | has (hasStatus 509) e = Just "limit_exceeded"
       | otherwise = Nothing
 
+
 -- | The specified time range is not valid. The earlier time is not chronologically before the later time.
 --
 --
 _InvalidTimeRangeException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidTimeRangeException =
-    _ServiceError . hasCode "InvalidTimeRangeException"
+  _MatchServiceError config "InvalidTimeRangeException"
 
+
 -- | The specified Amazon SNS topic does not exist.
 --
 --
 _InvalidSNSTopicARNException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidSNSTopicARNException =
-    _ServiceError . hasCode "InvalidSNSTopicARNException"
+  _MatchServiceError config "InvalidSNSTopicARNException"
 
+
 -- | AWS Config throws an exception if the recording group does not contain a valid list of resource types. Invalid values could also be incorrectly formatted.
 --
 --
 _InvalidRecordingGroupException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidRecordingGroupException =
-    _ServiceError . hasCode "InvalidRecordingGroupException"
+  _MatchServiceError config "InvalidRecordingGroupException"
 
+
 -- | The requested action is not valid.
 --
 --
 _ValidationException :: AsError a => Getting (First ServiceError) a ServiceError
-_ValidationException = _ServiceError . hasCode "ValidationException"
+_ValidationException = _MatchServiceError config "ValidationException"
 
+
 -- | You have provided a null or empty role ARN.
 --
 --
 _InvalidRoleException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidRoleException = _ServiceError . hasCode "InvalidRoleException"
+_InvalidRoleException = _MatchServiceError config "InvalidRoleException"
 
+
 -- | You cannot delete the delivery channel you specified because the configuration recorder is running.
 --
 --
 _LastDeliveryChannelDeleteFailedException :: AsError a => Getting (First ServiceError) a ServiceError
 _LastDeliveryChannelDeleteFailedException =
-    _ServiceError . hasCode "LastDeliveryChannelDeleteFailedException"
+  _MatchServiceError config "LastDeliveryChannelDeleteFailedException"
 
+
 -- | The specified limit is outside the allowable range.
 --
 --
 _InvalidLimitException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidLimitException = _ServiceError . hasCode "InvalidLimitException"
+_InvalidLimitException = _MatchServiceError config "InvalidLimitException"
 
+
 -- | The specified delivery channel name is not valid.
 --
 --
 _InvalidDeliveryChannelNameException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidDeliveryChannelNameException =
-    _ServiceError . hasCode "InvalidDeliveryChannelNameException"
+  _MatchServiceError config "InvalidDeliveryChannelNameException"
 
+
 -- | One or more of the specified parameters are invalid. Verify that your parameters are valid and try again.
 --
 --
 _InvalidParameterValueException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidParameterValueException =
-    _ServiceError . hasCode "InvalidParameterValueException"
+  _MatchServiceError config "InvalidParameterValueException"
 
--- | The result token is invalid.
+
+-- | The specified @ResultToken@ is invalid.
 --
 --
 _InvalidResultTokenException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidResultTokenException =
-    _ServiceError . hasCode "InvalidResultTokenException"
+  _MatchServiceError config "InvalidResultTokenException"
 
+
 -- | You have specified a delivery channel that does not exist.
 --
 --
 _NoSuchDeliveryChannelException :: AsError a => Getting (First ServiceError) a ServiceError
 _NoSuchDeliveryChannelException =
-    _ServiceError . hasCode "NoSuchDeliveryChannelException"
+  _MatchServiceError config "NoSuchDeliveryChannelException"
 
+
 -- | One or more AWS Config rules in the request are invalid. Verify that the rule names are correct and try again.
 --
 --
 _NoSuchConfigRuleException :: AsError a => Getting (First ServiceError) a ServiceError
 _NoSuchConfigRuleException =
-    _ServiceError . hasCode "NoSuchConfigRuleException"
+  _MatchServiceError config "NoSuchConfigRuleException"
 
+
 -- | Indicates one of the following errors:
 --
 --
@@ -435,107 +456,122 @@
 --
 _InsufficientPermissionsException :: AsError a => Getting (First ServiceError) a ServiceError
 _InsufficientPermissionsException =
-    _ServiceError . hasCode "InsufficientPermissionsException"
+  _MatchServiceError config "InsufficientPermissionsException"
 
+
 -- | You have specified a resource that is either unknown or has not been discovered.
 --
 --
 _ResourceNotDiscoveredException :: AsError a => Getting (First ServiceError) a ServiceError
 _ResourceNotDiscoveredException =
-    _ServiceError . hasCode "ResourceNotDiscoveredException"
+  _MatchServiceError config "ResourceNotDiscoveredException"
 
--- | The specified next token is invalid. Specify the @nextToken@ string that was returned in the previous response to get the next page of results.
+
+-- | The specified next token is invalid. Specify the @NextToken@ string that was returned in the previous response to get the next page of results.
 --
 --
 _InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidNextTokenException =
-    _ServiceError . hasCode "InvalidNextTokenException"
+  _MatchServiceError config "InvalidNextTokenException"
 
--- | Failed to add the AWS Config rule because the account already contains the maximum number of 25 rules. Consider deleting any deactivated rules before adding new rules.
+
+-- | Failed to add the AWS Config rule because the account already contains the maximum number of 50 rules. Consider deleting any deactivated rules before adding new rules.
 --
 --
 _MaxNumberOfConfigRulesExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _MaxNumberOfConfigRulesExceededException =
-    _ServiceError . hasCode "MaxNumberOfConfigRulesExceededException"
+  _MatchServiceError config "MaxNumberOfConfigRulesExceededException"
 
+
 -- | There are no configuration recorders available to provide the role needed to describe your resources. Create a configuration recorder.
 --
 --
 _NoAvailableConfigurationRecorderException :: AsError a => Getting (First ServiceError) a ServiceError
 _NoAvailableConfigurationRecorderException =
-    _ServiceError . hasCode "NoAvailableConfigurationRecorderException"
+  _MatchServiceError config "NoAvailableConfigurationRecorderException"
 
+
 -- | The specified Amazon S3 bucket does not exist.
 --
 --
 _NoSuchBucketException :: AsError a => Getting (First ServiceError) a ServiceError
-_NoSuchBucketException = _ServiceError . hasCode "NoSuchBucketException"
+_NoSuchBucketException = _MatchServiceError config "NoSuchBucketException"
 
+
 -- | There is no delivery channel available to record configurations.
 --
 --
 _NoAvailableDeliveryChannelException :: AsError a => Getting (First ServiceError) a ServiceError
 _NoAvailableDeliveryChannelException =
-    _ServiceError . hasCode "NoAvailableDeliveryChannelException"
+  _MatchServiceError config "NoAvailableDeliveryChannelException"
 
+
 -- | You have provided a configuration recorder name that is not valid.
 --
 --
 _InvalidConfigurationRecorderNameException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidConfigurationRecorderNameException =
-    _ServiceError . hasCode "InvalidConfigurationRecorderNameException"
+  _MatchServiceError config "InvalidConfigurationRecorderNameException"
 
+
 -- | There is no configuration recorder running.
 --
 --
 _NoRunningConfigurationRecorderException :: AsError a => Getting (First ServiceError) a ServiceError
 _NoRunningConfigurationRecorderException =
-    _ServiceError . hasCode "NoRunningConfigurationRecorderException"
+  _MatchServiceError config "NoRunningConfigurationRecorderException"
 
+
 -- | You have reached the limit on the number of recorders you can create.
 --
 --
 _MaxNumberOfConfigurationRecordersExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _MaxNumberOfConfigurationRecordersExceededException =
-    _ServiceError .
-    hasCode "MaxNumberOfConfigurationRecordersExceededException"
+  _MatchServiceError config "MaxNumberOfConfigurationRecordersExceededException"
 
+
 -- | Your Amazon S3 bucket policy does not permit AWS Config to write to it.
 --
 --
 _InsufficientDeliveryPolicyException :: AsError a => Getting (First ServiceError) a ServiceError
 _InsufficientDeliveryPolicyException =
-    _ServiceError . hasCode "InsufficientDeliveryPolicyException"
+  _MatchServiceError config "InsufficientDeliveryPolicyException"
 
+
 -- | You have reached the limit on the number of delivery channels you can create.
 --
 --
 _MaxNumberOfDeliveryChannelsExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _MaxNumberOfDeliveryChannelsExceededException =
-    _ServiceError . hasCode "MaxNumberOfDeliveryChannelsExceededException"
+  _MatchServiceError config "MaxNumberOfDeliveryChannelsExceededException"
 
+
 -- | You have specified a configuration recorder that does not exist.
 --
 --
 _NoSuchConfigurationRecorderException :: AsError a => Getting (First ServiceError) a ServiceError
 _NoSuchConfigurationRecorderException =
-    _ServiceError . hasCode "NoSuchConfigurationRecorderException"
+  _MatchServiceError config "NoSuchConfigurationRecorderException"
 
+
 -- | The specified Amazon S3 key prefix is not valid.
 --
 --
 _InvalidS3KeyPrefixException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidS3KeyPrefixException =
-    _ServiceError . hasCode "InvalidS3KeyPrefixException"
+  _MatchServiceError config "InvalidS3KeyPrefixException"
 
+
 -- | This exception is thrown if an evaluation is in progress or if you call the 'StartConfigRulesEvaluation' API more than once per minute.
 --
 --
 _LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
-_LimitExceededException = _ServiceError . hasCode "LimitExceededException"
+_LimitExceededException = _MatchServiceError config "LimitExceededException"
 
+
 -- | The rule is currently being deleted or the rule is deleting your evaluation results. Try your request again later.
 --
 --
 _ResourceInUseException :: AsError a => Getting (First ServiceError) a ServiceError
-_ResourceInUseException = _ServiceError . hasCode "ResourceInUseException"
+_ResourceInUseException = _MatchServiceError config "ResourceInUseException"
+
diff --git a/gen/Network/AWS/Config/Types/Product.hs b/gen/Network/AWS/Config/Types/Product.hs
--- a/gen/Network/AWS/Config/Types/Product.hs
+++ b/gen/Network/AWS/Config/Types/Product.hs
@@ -9,17 +9,17 @@
 
 -- |
 -- Module      : Network.AWS.Config.Types.Product
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Network.AWS.Config.Types.Product where
 
-import           Network.AWS.Config.Types.Sum
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
+import Network.AWS.Config.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
 
 -- | Indicates whether an AWS resource or AWS Config rule is compliant and provides the number of contributors that affect the compliance.
 --
@@ -27,10 +27,11 @@
 --
 -- /See:/ 'compliance' smart constructor.
 data Compliance = Compliance'
-    { _cComplianceContributorCount :: !(Maybe ComplianceContributorCount)
-    , _cComplianceType             :: !(Maybe ComplianceType)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cComplianceContributorCount :: !(Maybe ComplianceContributorCount)
+  , _cComplianceType             :: !(Maybe ComplianceType)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Compliance' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -41,11 +42,10 @@
 compliance
     :: Compliance
 compliance =
-    Compliance'
-    { _cComplianceContributorCount = Nothing
-    , _cComplianceType = Nothing
-    }
+  Compliance'
+  {_cComplianceContributorCount = Nothing, _cComplianceType = Nothing}
 
+
 -- | The number of AWS resources or AWS Config rules that cause a result of @NON_COMPLIANT@ , up to a maximum number.
 cComplianceContributorCount :: Lens' Compliance (Maybe ComplianceContributorCount)
 cComplianceContributorCount = lens _cComplianceContributorCount (\ s a -> s{_cComplianceContributorCount = a});
@@ -62,9 +62,9 @@
                    (x .:? "ComplianceContributorCount") <*>
                      (x .:? "ComplianceType"))
 
-instance Hashable Compliance
+instance Hashable Compliance where
 
-instance NFData Compliance
+instance NFData Compliance where
 
 -- | Indicates whether an AWS Config rule is compliant. A rule is compliant if all of the resources that the rule evaluated comply with it, and it is noncompliant if any of these resources do not comply.
 --
@@ -72,10 +72,11 @@
 --
 -- /See:/ 'complianceByConfigRule' smart constructor.
 data ComplianceByConfigRule = ComplianceByConfigRule'
-    { _cbcrCompliance     :: !(Maybe Compliance)
-    , _cbcrConfigRuleName :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cbcrCompliance     :: !(Maybe Compliance)
+  , _cbcrConfigRuleName :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ComplianceByConfigRule' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -86,11 +87,10 @@
 complianceByConfigRule
     :: ComplianceByConfigRule
 complianceByConfigRule =
-    ComplianceByConfigRule'
-    { _cbcrCompliance = Nothing
-    , _cbcrConfigRuleName = Nothing
-    }
+  ComplianceByConfigRule'
+  {_cbcrCompliance = Nothing, _cbcrConfigRuleName = Nothing}
 
+
 -- | Indicates whether the AWS Config rule is compliant.
 cbcrCompliance :: Lens' ComplianceByConfigRule (Maybe Compliance)
 cbcrCompliance = lens _cbcrCompliance (\ s a -> s{_cbcrCompliance = a});
@@ -106,9 +106,9 @@
                  ComplianceByConfigRule' <$>
                    (x .:? "Compliance") <*> (x .:? "ConfigRuleName"))
 
-instance Hashable ComplianceByConfigRule
+instance Hashable ComplianceByConfigRule where
 
-instance NFData ComplianceByConfigRule
+instance NFData ComplianceByConfigRule where
 
 -- | Indicates whether an AWS resource that is evaluated according to one or more AWS Config rules is compliant. A resource is compliant if it complies with all of the rules that evaluate it, and it is noncompliant if it does not comply with one or more of these rules.
 --
@@ -116,11 +116,12 @@
 --
 -- /See:/ 'complianceByResource' smart constructor.
 data ComplianceByResource = ComplianceByResource'
-    { _cbrResourceId   :: !(Maybe Text)
-    , _cbrResourceType :: !(Maybe Text)
-    , _cbrCompliance   :: !(Maybe Compliance)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cbrResourceId   :: !(Maybe Text)
+  , _cbrResourceType :: !(Maybe Text)
+  , _cbrCompliance   :: !(Maybe Compliance)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ComplianceByResource' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -133,12 +134,13 @@
 complianceByResource
     :: ComplianceByResource
 complianceByResource =
-    ComplianceByResource'
-    { _cbrResourceId = Nothing
-    , _cbrResourceType = Nothing
-    , _cbrCompliance = Nothing
-    }
+  ComplianceByResource'
+  { _cbrResourceId = Nothing
+  , _cbrResourceType = Nothing
+  , _cbrCompliance = Nothing
+  }
 
+
 -- | The ID of the AWS resource that was evaluated.
 cbrResourceId :: Lens' ComplianceByResource (Maybe Text)
 cbrResourceId = lens _cbrResourceId (\ s a -> s{_cbrResourceId = a});
@@ -159,9 +161,9 @@
                    (x .:? "ResourceId") <*> (x .:? "ResourceType") <*>
                      (x .:? "Compliance"))
 
-instance Hashable ComplianceByResource
+instance Hashable ComplianceByResource where
 
-instance NFData ComplianceByResource
+instance NFData ComplianceByResource where
 
 -- | The number of AWS resources or AWS Config rules responsible for the current compliance of the item, up to a maximum number.
 --
@@ -169,10 +171,11 @@
 --
 -- /See:/ 'complianceContributorCount' smart constructor.
 data ComplianceContributorCount = ComplianceContributorCount'
-    { _cccCappedCount :: !(Maybe Int)
-    , _cccCapExceeded :: !(Maybe Bool)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cccCappedCount :: !(Maybe Int)
+  , _cccCapExceeded :: !(Maybe Bool)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ComplianceContributorCount' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -183,11 +186,10 @@
 complianceContributorCount
     :: ComplianceContributorCount
 complianceContributorCount =
-    ComplianceContributorCount'
-    { _cccCappedCount = Nothing
-    , _cccCapExceeded = Nothing
-    }
+  ComplianceContributorCount'
+  {_cccCappedCount = Nothing, _cccCapExceeded = Nothing}
 
+
 -- | The number of AWS resources or AWS Config rules responsible for the current compliance of the item.
 cccCappedCount :: Lens' ComplianceContributorCount (Maybe Int)
 cccCappedCount = lens _cccCappedCount (\ s a -> s{_cccCappedCount = a});
@@ -203,21 +205,22 @@
                  ComplianceContributorCount' <$>
                    (x .:? "CappedCount") <*> (x .:? "CapExceeded"))
 
-instance Hashable ComplianceContributorCount
+instance Hashable ComplianceContributorCount where
 
-instance NFData ComplianceContributorCount
+instance NFData ComplianceContributorCount where
 
--- | The number of AWS Config rules or AWS resources that are compliant and noncompliant, up to a maximum.
+-- | The number of AWS Config rules or AWS resources that are compliant and noncompliant.
 --
 --
 --
 -- /See:/ 'complianceSummary' smart constructor.
 data ComplianceSummary = ComplianceSummary'
-    { _csComplianceSummaryTimestamp :: !(Maybe POSIX)
-    , _csCompliantResourceCount     :: !(Maybe ComplianceContributorCount)
-    , _csNonCompliantResourceCount  :: !(Maybe ComplianceContributorCount)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _csComplianceSummaryTimestamp :: !(Maybe POSIX)
+  , _csCompliantResourceCount     :: !(Maybe ComplianceContributorCount)
+  , _csNonCompliantResourceCount  :: !(Maybe ComplianceContributorCount)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ComplianceSummary' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -230,12 +233,13 @@
 complianceSummary
     :: ComplianceSummary
 complianceSummary =
-    ComplianceSummary'
-    { _csComplianceSummaryTimestamp = Nothing
-    , _csCompliantResourceCount = Nothing
-    , _csNonCompliantResourceCount = Nothing
-    }
+  ComplianceSummary'
+  { _csComplianceSummaryTimestamp = Nothing
+  , _csCompliantResourceCount = Nothing
+  , _csNonCompliantResourceCount = Nothing
+  }
 
+
 -- | The time that AWS Config created the compliance summary.
 csComplianceSummaryTimestamp :: Lens' ComplianceSummary (Maybe UTCTime)
 csComplianceSummaryTimestamp = lens _csComplianceSummaryTimestamp (\ s a -> s{_csComplianceSummaryTimestamp = a}) . mapping _Time;
@@ -257,9 +261,9 @@
                      (x .:? "CompliantResourceCount")
                      <*> (x .:? "NonCompliantResourceCount"))
 
-instance Hashable ComplianceSummary
+instance Hashable ComplianceSummary where
 
-instance NFData ComplianceSummary
+instance NFData ComplianceSummary where
 
 -- | The number of AWS resources of a specific type that are compliant or noncompliant, up to a maximum of 100 for each compliance.
 --
@@ -267,10 +271,11 @@
 --
 -- /See:/ 'complianceSummaryByResourceType' smart constructor.
 data ComplianceSummaryByResourceType = ComplianceSummaryByResourceType'
-    { _csbrtResourceType      :: !(Maybe Text)
-    , _csbrtComplianceSummary :: !(Maybe ComplianceSummary)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _csbrtResourceType      :: !(Maybe Text)
+  , _csbrtComplianceSummary :: !(Maybe ComplianceSummary)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ComplianceSummaryByResourceType' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -281,11 +286,10 @@
 complianceSummaryByResourceType
     :: ComplianceSummaryByResourceType
 complianceSummaryByResourceType =
-    ComplianceSummaryByResourceType'
-    { _csbrtResourceType = Nothing
-    , _csbrtComplianceSummary = Nothing
-    }
+  ComplianceSummaryByResourceType'
+  {_csbrtResourceType = Nothing, _csbrtComplianceSummary = Nothing}
 
+
 -- | The type of AWS resource.
 csbrtResourceType :: Lens' ComplianceSummaryByResourceType (Maybe Text)
 csbrtResourceType = lens _csbrtResourceType (\ s a -> s{_csbrtResourceType = a});
@@ -304,23 +308,25 @@
                      (x .:? "ComplianceSummary"))
 
 instance Hashable ComplianceSummaryByResourceType
+         where
 
-instance NFData ComplianceSummaryByResourceType
+instance NFData ComplianceSummaryByResourceType where
 
--- | A list that contains the status of the delivery of either the snapshot or the configuration history to the specified Amazon S3 bucket.
+-- | Provides status of the delivery of the snapshot or the configuration history to the specified Amazon S3 bucket. Also provides the status of notifications about the Amazon S3 delivery to the specified Amazon SNS topic.
 --
 --
 --
 -- /See:/ 'configExportDeliveryInfo' smart constructor.
 data ConfigExportDeliveryInfo = ConfigExportDeliveryInfo'
-    { _cediLastErrorCode      :: !(Maybe Text)
-    , _cediLastAttemptTime    :: !(Maybe POSIX)
-    , _cediLastSuccessfulTime :: !(Maybe POSIX)
-    , _cediLastStatus         :: !(Maybe DeliveryStatus)
-    , _cediLastErrorMessage   :: !(Maybe Text)
-    , _cediNextDeliveryTime   :: !(Maybe POSIX)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cediLastErrorCode      :: !(Maybe Text)
+  , _cediLastAttemptTime    :: !(Maybe POSIX)
+  , _cediLastSuccessfulTime :: !(Maybe POSIX)
+  , _cediLastStatus         :: !(Maybe DeliveryStatus)
+  , _cediLastErrorMessage   :: !(Maybe Text)
+  , _cediNextDeliveryTime   :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ConfigExportDeliveryInfo' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -339,15 +345,16 @@
 configExportDeliveryInfo
     :: ConfigExportDeliveryInfo
 configExportDeliveryInfo =
-    ConfigExportDeliveryInfo'
-    { _cediLastErrorCode = Nothing
-    , _cediLastAttemptTime = Nothing
-    , _cediLastSuccessfulTime = Nothing
-    , _cediLastStatus = Nothing
-    , _cediLastErrorMessage = Nothing
-    , _cediNextDeliveryTime = Nothing
-    }
+  ConfigExportDeliveryInfo'
+  { _cediLastErrorCode = Nothing
+  , _cediLastAttemptTime = Nothing
+  , _cediLastSuccessfulTime = Nothing
+  , _cediLastStatus = Nothing
+  , _cediLastErrorMessage = Nothing
+  , _cediNextDeliveryTime = Nothing
+  }
 
+
 -- | The error code from the last attempted delivery.
 cediLastErrorCode :: Lens' ConfigExportDeliveryInfo (Maybe Text)
 cediLastErrorCode = lens _cediLastErrorCode (\ s a -> s{_cediLastErrorCode = a});
@@ -383,9 +390,9 @@
                      <*> (x .:? "lastErrorMessage")
                      <*> (x .:? "nextDeliveryTime"))
 
-instance Hashable ConfigExportDeliveryInfo
+instance Hashable ConfigExportDeliveryInfo where
 
-instance NFData ConfigExportDeliveryInfo
+instance NFData ConfigExportDeliveryInfo where
 
 -- | An AWS Config rule represents an AWS Lambda function that you create for a custom rule or a predefined function for an AWS managed rule. The function evaluates configuration items to assess whether your AWS resources comply with your desired configurations. This function can run when AWS Config detects a configuration change to an AWS resource and at a periodic frequency that you choose (for example, every 24 hours).
 --
@@ -395,17 +402,18 @@
 --
 -- /See:/ 'configRule' smart constructor.
 data ConfigRule = ConfigRule'
-    { _crInputParameters           :: !(Maybe Text)
-    , _crConfigRuleName            :: !(Maybe Text)
-    , _crMaximumExecutionFrequency :: !(Maybe MaximumExecutionFrequency)
-    , _crConfigRuleId              :: !(Maybe Text)
-    , _crScope                     :: !(Maybe Scope)
-    , _crConfigRuleState           :: !(Maybe ConfigRuleState)
-    , _crDescription               :: !(Maybe Text)
-    , _crConfigRuleARN             :: !(Maybe Text)
-    , _crSource                    :: !Source
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _crInputParameters           :: !(Maybe Text)
+  , _crConfigRuleName            :: !(Maybe Text)
+  , _crMaximumExecutionFrequency :: !(Maybe MaximumExecutionFrequency)
+  , _crConfigRuleId              :: !(Maybe Text)
+  , _crScope                     :: !(Maybe Scope)
+  , _crConfigRuleState           :: !(Maybe ConfigRuleState)
+  , _crDescription               :: !(Maybe Text)
+  , _crConfigRuleARN             :: !(Maybe Text)
+  , _crSource                    :: !Source
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ConfigRule' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -431,18 +439,19 @@
     :: Source -- ^ 'crSource'
     -> ConfigRule
 configRule pSource_ =
-    ConfigRule'
-    { _crInputParameters = Nothing
-    , _crConfigRuleName = Nothing
-    , _crMaximumExecutionFrequency = Nothing
-    , _crConfigRuleId = Nothing
-    , _crScope = Nothing
-    , _crConfigRuleState = Nothing
-    , _crDescription = Nothing
-    , _crConfigRuleARN = Nothing
-    , _crSource = pSource_
-    }
+  ConfigRule'
+  { _crInputParameters = Nothing
+  , _crConfigRuleName = Nothing
+  , _crMaximumExecutionFrequency = Nothing
+  , _crConfigRuleId = Nothing
+  , _crScope = Nothing
+  , _crConfigRuleState = Nothing
+  , _crDescription = Nothing
+  , _crConfigRuleARN = Nothing
+  , _crSource = pSource_
+  }
 
+
 -- | A string in JSON format that is passed to the AWS Config rule Lambda function.
 crInputParameters :: Lens' ConfigRule (Maybe Text)
 crInputParameters = lens _crInputParameters (\ s a -> s{_crInputParameters = a});
@@ -494,9 +503,9 @@
                      <*> (x .:? "ConfigRuleArn")
                      <*> (x .: "Source"))
 
-instance Hashable ConfigRule
+instance Hashable ConfigRule where
 
-instance NFData ConfigRule
+instance NFData ConfigRule where
 
 instance ToJSON ConfigRule where
         toJSON ConfigRule'{..}
@@ -521,19 +530,20 @@
 --
 -- /See:/ 'configRuleEvaluationStatus' smart constructor.
 data ConfigRuleEvaluationStatus = ConfigRuleEvaluationStatus'
-    { _cresLastErrorCode                :: !(Maybe Text)
-    , _cresLastFailedEvaluationTime     :: !(Maybe POSIX)
-    , _cresFirstActivatedTime           :: !(Maybe POSIX)
-    , _cresLastSuccessfulEvaluationTime :: !(Maybe POSIX)
-    , _cresConfigRuleName               :: !(Maybe Text)
-    , _cresLastErrorMessage             :: !(Maybe Text)
-    , _cresConfigRuleId                 :: !(Maybe Text)
-    , _cresLastFailedInvocationTime     :: !(Maybe POSIX)
-    , _cresFirstEvaluationStarted       :: !(Maybe Bool)
-    , _cresLastSuccessfulInvocationTime :: !(Maybe POSIX)
-    , _cresConfigRuleARN                :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cresLastErrorCode                :: !(Maybe Text)
+  , _cresLastFailedEvaluationTime     :: !(Maybe POSIX)
+  , _cresFirstActivatedTime           :: !(Maybe POSIX)
+  , _cresLastSuccessfulEvaluationTime :: !(Maybe POSIX)
+  , _cresConfigRuleName               :: !(Maybe Text)
+  , _cresLastErrorMessage             :: !(Maybe Text)
+  , _cresConfigRuleId                 :: !(Maybe Text)
+  , _cresLastFailedInvocationTime     :: !(Maybe POSIX)
+  , _cresFirstEvaluationStarted       :: !(Maybe Bool)
+  , _cresLastSuccessfulInvocationTime :: !(Maybe POSIX)
+  , _cresConfigRuleARN                :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ConfigRuleEvaluationStatus' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -562,20 +572,21 @@
 configRuleEvaluationStatus
     :: ConfigRuleEvaluationStatus
 configRuleEvaluationStatus =
-    ConfigRuleEvaluationStatus'
-    { _cresLastErrorCode = Nothing
-    , _cresLastFailedEvaluationTime = Nothing
-    , _cresFirstActivatedTime = Nothing
-    , _cresLastSuccessfulEvaluationTime = Nothing
-    , _cresConfigRuleName = Nothing
-    , _cresLastErrorMessage = Nothing
-    , _cresConfigRuleId = Nothing
-    , _cresLastFailedInvocationTime = Nothing
-    , _cresFirstEvaluationStarted = Nothing
-    , _cresLastSuccessfulInvocationTime = Nothing
-    , _cresConfigRuleARN = Nothing
-    }
+  ConfigRuleEvaluationStatus'
+  { _cresLastErrorCode = Nothing
+  , _cresLastFailedEvaluationTime = Nothing
+  , _cresFirstActivatedTime = Nothing
+  , _cresLastSuccessfulEvaluationTime = Nothing
+  , _cresConfigRuleName = Nothing
+  , _cresLastErrorMessage = Nothing
+  , _cresConfigRuleId = Nothing
+  , _cresLastFailedInvocationTime = Nothing
+  , _cresFirstEvaluationStarted = Nothing
+  , _cresLastSuccessfulInvocationTime = Nothing
+  , _cresConfigRuleARN = Nothing
+  }
 
+
 -- | The error code that AWS Config returned when the rule last failed.
 cresLastErrorCode :: Lens' ConfigRuleEvaluationStatus (Maybe Text)
 cresLastErrorCode = lens _cresLastErrorCode (\ s a -> s{_cresLastErrorCode = a});
@@ -637,9 +648,9 @@
                      <*> (x .:? "LastSuccessfulInvocationTime")
                      <*> (x .:? "ConfigRuleArn"))
 
-instance Hashable ConfigRuleEvaluationStatus
+instance Hashable ConfigRuleEvaluationStatus where
 
-instance NFData ConfigRuleEvaluationStatus
+instance NFData ConfigRuleEvaluationStatus where
 
 -- | Provides options for how often AWS Config delivers configuration snapshots to the Amazon S3 bucket in your delivery channel.
 --
@@ -671,9 +682,10 @@
 --
 -- /See:/ 'configSnapshotDeliveryProperties' smart constructor.
 newtype ConfigSnapshotDeliveryProperties = ConfigSnapshotDeliveryProperties'
-    { _csdpDeliveryFrequency :: Maybe MaximumExecutionFrequency
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _csdpDeliveryFrequency :: Maybe MaximumExecutionFrequency
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ConfigSnapshotDeliveryProperties' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -682,10 +694,9 @@
 configSnapshotDeliveryProperties
     :: ConfigSnapshotDeliveryProperties
 configSnapshotDeliveryProperties =
-    ConfigSnapshotDeliveryProperties'
-    { _csdpDeliveryFrequency = Nothing
-    }
+  ConfigSnapshotDeliveryProperties' {_csdpDeliveryFrequency = Nothing}
 
+
 -- | The frequency with which AWS Config delivers configuration snapshots.
 csdpDeliveryFrequency :: Lens' ConfigSnapshotDeliveryProperties (Maybe MaximumExecutionFrequency)
 csdpDeliveryFrequency = lens _csdpDeliveryFrequency (\ s a -> s{_csdpDeliveryFrequency = a});
@@ -699,8 +710,10 @@
                    (x .:? "deliveryFrequency"))
 
 instance Hashable ConfigSnapshotDeliveryProperties
+         where
 
 instance NFData ConfigSnapshotDeliveryProperties
+         where
 
 instance ToJSON ConfigSnapshotDeliveryProperties
          where
@@ -716,12 +729,13 @@
 --
 -- /See:/ 'configStreamDeliveryInfo' smart constructor.
 data ConfigStreamDeliveryInfo = ConfigStreamDeliveryInfo'
-    { _csdiLastErrorCode        :: !(Maybe Text)
-    , _csdiLastStatusChangeTime :: !(Maybe POSIX)
-    , _csdiLastStatus           :: !(Maybe DeliveryStatus)
-    , _csdiLastErrorMessage     :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _csdiLastErrorCode        :: !(Maybe Text)
+  , _csdiLastStatusChangeTime :: !(Maybe POSIX)
+  , _csdiLastStatus           :: !(Maybe DeliveryStatus)
+  , _csdiLastErrorMessage     :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ConfigStreamDeliveryInfo' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -736,13 +750,14 @@
 configStreamDeliveryInfo
     :: ConfigStreamDeliveryInfo
 configStreamDeliveryInfo =
-    ConfigStreamDeliveryInfo'
-    { _csdiLastErrorCode = Nothing
-    , _csdiLastStatusChangeTime = Nothing
-    , _csdiLastStatus = Nothing
-    , _csdiLastErrorMessage = Nothing
-    }
+  ConfigStreamDeliveryInfo'
+  { _csdiLastErrorCode = Nothing
+  , _csdiLastStatusChangeTime = Nothing
+  , _csdiLastStatus = Nothing
+  , _csdiLastErrorMessage = Nothing
+  }
 
+
 -- | The error code from the last attempted delivery.
 csdiLastErrorCode :: Lens' ConfigStreamDeliveryInfo (Maybe Text)
 csdiLastErrorCode = lens _csdiLastErrorCode (\ s a -> s{_csdiLastErrorCode = a});
@@ -769,9 +784,9 @@
                      <*> (x .:? "lastStatus")
                      <*> (x .:? "lastErrorMessage"))
 
-instance Hashable ConfigStreamDeliveryInfo
+instance Hashable ConfigStreamDeliveryInfo where
 
-instance NFData ConfigStreamDeliveryInfo
+instance NFData ConfigStreamDeliveryInfo where
 
 -- | A list that contains detailed configurations of a specified resource.
 --
@@ -779,26 +794,27 @@
 --
 -- /See:/ 'configurationItem' smart constructor.
 data ConfigurationItem = ConfigurationItem'
-    { _ciResourceId                   :: !(Maybe Text)
-    , _ciResourceType                 :: !(Maybe ResourceType)
-    , _ciConfigurationStateId         :: !(Maybe Text)
-    , _ciArn                          :: !(Maybe Text)
-    , _ciResourceName                 :: !(Maybe Text)
-    , _ciResourceCreationTime         :: !(Maybe POSIX)
-    , _ciConfigurationItemStatus      :: !(Maybe ConfigurationItemStatus)
-    , _ciConfigurationItemCaptureTime :: !(Maybe POSIX)
-    , _ciAccountId                    :: !(Maybe Text)
-    , _ciSupplementaryConfiguration   :: !(Maybe (Map Text Text))
-    , _ciAvailabilityZone             :: !(Maybe Text)
-    , _ciRelationships                :: !(Maybe [Relationship])
-    , _ciVersion                      :: !(Maybe Text)
-    , _ciAwsRegion                    :: !(Maybe Text)
-    , _ciRelatedEvents                :: !(Maybe [Text])
-    , _ciConfiguration                :: !(Maybe Text)
-    , _ciConfigurationItemMD5Hash     :: !(Maybe Text)
-    , _ciTags                         :: !(Maybe (Map Text Text))
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ciResourceId                   :: !(Maybe Text)
+  , _ciResourceType                 :: !(Maybe ResourceType)
+  , _ciConfigurationStateId         :: !(Maybe Text)
+  , _ciArn                          :: !(Maybe Text)
+  , _ciResourceName                 :: !(Maybe Text)
+  , _ciResourceCreationTime         :: !(Maybe POSIX)
+  , _ciConfigurationItemStatus      :: !(Maybe ConfigurationItemStatus)
+  , _ciConfigurationItemCaptureTime :: !(Maybe POSIX)
+  , _ciAccountId                    :: !(Maybe Text)
+  , _ciSupplementaryConfiguration   :: !(Maybe (Map Text Text))
+  , _ciAvailabilityZone             :: !(Maybe Text)
+  , _ciRelationships                :: !(Maybe [Relationship])
+  , _ciVersion                      :: !(Maybe Text)
+  , _ciAwsRegion                    :: !(Maybe Text)
+  , _ciRelatedEvents                :: !(Maybe [Text])
+  , _ciConfiguration                :: !(Maybe Text)
+  , _ciConfigurationItemMD5Hash     :: !(Maybe Text)
+  , _ciTags                         :: !(Maybe (Map Text Text))
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ConfigurationItem' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -841,27 +857,28 @@
 configurationItem
     :: ConfigurationItem
 configurationItem =
-    ConfigurationItem'
-    { _ciResourceId = Nothing
-    , _ciResourceType = Nothing
-    , _ciConfigurationStateId = Nothing
-    , _ciArn = Nothing
-    , _ciResourceName = Nothing
-    , _ciResourceCreationTime = Nothing
-    , _ciConfigurationItemStatus = Nothing
-    , _ciConfigurationItemCaptureTime = Nothing
-    , _ciAccountId = Nothing
-    , _ciSupplementaryConfiguration = Nothing
-    , _ciAvailabilityZone = Nothing
-    , _ciRelationships = Nothing
-    , _ciVersion = Nothing
-    , _ciAwsRegion = Nothing
-    , _ciRelatedEvents = Nothing
-    , _ciConfiguration = Nothing
-    , _ciConfigurationItemMD5Hash = Nothing
-    , _ciTags = Nothing
-    }
+  ConfigurationItem'
+  { _ciResourceId = Nothing
+  , _ciResourceType = Nothing
+  , _ciConfigurationStateId = Nothing
+  , _ciArn = Nothing
+  , _ciResourceName = Nothing
+  , _ciResourceCreationTime = Nothing
+  , _ciConfigurationItemStatus = Nothing
+  , _ciConfigurationItemCaptureTime = Nothing
+  , _ciAccountId = Nothing
+  , _ciSupplementaryConfiguration = Nothing
+  , _ciAvailabilityZone = Nothing
+  , _ciRelationships = Nothing
+  , _ciVersion = Nothing
+  , _ciAwsRegion = Nothing
+  , _ciRelatedEvents = Nothing
+  , _ciConfiguration = Nothing
+  , _ciConfigurationItemMD5Hash = Nothing
+  , _ciTags = Nothing
+  }
 
+
 -- | The ID of the resource (for example., @sg-xxxxxx@ ).
 ciResourceId :: Lens' ConfigurationItem (Maybe Text)
 ciResourceId = lens _ciResourceId (\ s a -> s{_ciResourceId = a});
@@ -957,9 +974,9 @@
                      <*> (x .:? "configurationItemMD5Hash")
                      <*> (x .:? "tags" .!= mempty))
 
-instance Hashable ConfigurationItem
+instance Hashable ConfigurationItem where
 
-instance NFData ConfigurationItem
+instance NFData ConfigurationItem where
 
 -- | An object that represents the recording of configuration changes of an AWS resource.
 --
@@ -967,11 +984,12 @@
 --
 -- /See:/ 'configurationRecorder' smart constructor.
 data ConfigurationRecorder = ConfigurationRecorder'
-    { _crName           :: !(Maybe Text)
-    , _crRecordingGroup :: !(Maybe RecordingGroup)
-    , _crRoleARN        :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _crName           :: !(Maybe Text)
+  , _crRecordingGroup :: !(Maybe RecordingGroup)
+  , _crRoleARN        :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ConfigurationRecorder' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -984,12 +1002,10 @@
 configurationRecorder
     :: ConfigurationRecorder
 configurationRecorder =
-    ConfigurationRecorder'
-    { _crName = Nothing
-    , _crRecordingGroup = Nothing
-    , _crRoleARN = Nothing
-    }
+  ConfigurationRecorder'
+  {_crName = Nothing, _crRecordingGroup = Nothing, _crRoleARN = Nothing}
 
+
 -- | The name of the recorder. By default, AWS Config automatically assigns the name "default" when creating the configuration recorder. You cannot change the assigned name.
 crName :: Lens' ConfigurationRecorder (Maybe Text)
 crName = lens _crName (\ s a -> s{_crName = a});
@@ -1010,9 +1026,9 @@
                    (x .:? "name") <*> (x .:? "recordingGroup") <*>
                      (x .:? "roleARN"))
 
-instance Hashable ConfigurationRecorder
+instance Hashable ConfigurationRecorder where
 
-instance NFData ConfigurationRecorder
+instance NFData ConfigurationRecorder where
 
 instance ToJSON ConfigurationRecorder where
         toJSON ConfigurationRecorder'{..}
@@ -1028,16 +1044,17 @@
 --
 -- /See:/ 'configurationRecorderStatus' smart constructor.
 data ConfigurationRecorderStatus = ConfigurationRecorderStatus'
-    { _crsLastErrorCode        :: !(Maybe Text)
-    , _crsLastStopTime         :: !(Maybe POSIX)
-    , _crsLastStatusChangeTime :: !(Maybe POSIX)
-    , _crsRecording            :: !(Maybe Bool)
-    , _crsLastStatus           :: !(Maybe RecorderStatus)
-    , _crsLastErrorMessage     :: !(Maybe Text)
-    , _crsName                 :: !(Maybe Text)
-    , _crsLastStartTime        :: !(Maybe POSIX)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _crsLastErrorCode        :: !(Maybe Text)
+  , _crsLastStopTime         :: !(Maybe POSIX)
+  , _crsLastStatusChangeTime :: !(Maybe POSIX)
+  , _crsRecording            :: !(Maybe Bool)
+  , _crsLastStatus           :: !(Maybe RecorderStatus)
+  , _crsLastErrorMessage     :: !(Maybe Text)
+  , _crsName                 :: !(Maybe Text)
+  , _crsLastStartTime        :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ConfigurationRecorderStatus' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1060,17 +1077,18 @@
 configurationRecorderStatus
     :: ConfigurationRecorderStatus
 configurationRecorderStatus =
-    ConfigurationRecorderStatus'
-    { _crsLastErrorCode = Nothing
-    , _crsLastStopTime = Nothing
-    , _crsLastStatusChangeTime = Nothing
-    , _crsRecording = Nothing
-    , _crsLastStatus = Nothing
-    , _crsLastErrorMessage = Nothing
-    , _crsName = Nothing
-    , _crsLastStartTime = Nothing
-    }
+  ConfigurationRecorderStatus'
+  { _crsLastErrorCode = Nothing
+  , _crsLastStopTime = Nothing
+  , _crsLastStatusChangeTime = Nothing
+  , _crsRecording = Nothing
+  , _crsLastStatus = Nothing
+  , _crsLastErrorMessage = Nothing
+  , _crsName = Nothing
+  , _crsLastStartTime = Nothing
+  }
 
+
 -- | The error code indicating that the recording failed.
 crsLastErrorCode :: Lens' ConfigurationRecorderStatus (Maybe Text)
 crsLastErrorCode = lens _crsLastErrorCode (\ s a -> s{_crsLastErrorCode = a});
@@ -1116,9 +1134,9 @@
                      <*> (x .:? "name")
                      <*> (x .:? "lastStartTime"))
 
-instance Hashable ConfigurationRecorderStatus
+instance Hashable ConfigurationRecorderStatus where
 
-instance NFData ConfigurationRecorderStatus
+instance NFData ConfigurationRecorderStatus where
 
 -- | The channel through which AWS Config delivers notifications and updated configuration states.
 --
@@ -1126,13 +1144,14 @@
 --
 -- /See:/ 'deliveryChannel' smart constructor.
 data DeliveryChannel = DeliveryChannel'
-    { _dcS3KeyPrefix                      :: !(Maybe Text)
-    , _dcSnsTopicARN                      :: !(Maybe Text)
-    , _dcName                             :: !(Maybe Text)
-    , _dcConfigSnapshotDeliveryProperties :: !(Maybe ConfigSnapshotDeliveryProperties)
-    , _dcS3BucketName                     :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcS3KeyPrefix :: !(Maybe Text)
+  , _dcSnsTopicARN :: !(Maybe Text)
+  , _dcName :: !(Maybe Text)
+  , _dcConfigSnapshotDeliveryProperties :: !(Maybe ConfigSnapshotDeliveryProperties)
+  , _dcS3BucketName :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeliveryChannel' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1143,20 +1162,21 @@
 --
 -- * 'dcName' - The name of the delivery channel. By default, AWS Config assigns the name "default" when creating the delivery channel. To change the delivery channel name, you must use the DeleteDeliveryChannel action to delete your current delivery channel, and then you must use the PutDeliveryChannel command to create a delivery channel that has the desired name.
 --
--- * 'dcConfigSnapshotDeliveryProperties' - Undocumented member.
+-- * 'dcConfigSnapshotDeliveryProperties' - The options for how often AWS Config delivers configuration snapshots to the Amazon S3 bucket.
 --
 -- * 'dcS3BucketName' - The name of the Amazon S3 bucket to which AWS Config delivers configuration snapshots and configuration history files. If you specify a bucket that belongs to another AWS account, that bucket must have policies that grant access permissions to AWS Config. For more information, see <http://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-policy.html Permissions for the Amazon S3 Bucket> in the AWS Config Developer Guide.
 deliveryChannel
     :: DeliveryChannel
 deliveryChannel =
-    DeliveryChannel'
-    { _dcS3KeyPrefix = Nothing
-    , _dcSnsTopicARN = Nothing
-    , _dcName = Nothing
-    , _dcConfigSnapshotDeliveryProperties = Nothing
-    , _dcS3BucketName = Nothing
-    }
+  DeliveryChannel'
+  { _dcS3KeyPrefix = Nothing
+  , _dcSnsTopicARN = Nothing
+  , _dcName = Nothing
+  , _dcConfigSnapshotDeliveryProperties = Nothing
+  , _dcS3BucketName = Nothing
+  }
 
+
 -- | The prefix for the specified Amazon S3 bucket.
 dcS3KeyPrefix :: Lens' DeliveryChannel (Maybe Text)
 dcS3KeyPrefix = lens _dcS3KeyPrefix (\ s a -> s{_dcS3KeyPrefix = a});
@@ -1169,7 +1189,7 @@
 dcName :: Lens' DeliveryChannel (Maybe Text)
 dcName = lens _dcName (\ s a -> s{_dcName = a});
 
--- | Undocumented member.
+-- | The options for how often AWS Config delivers configuration snapshots to the Amazon S3 bucket.
 dcConfigSnapshotDeliveryProperties :: Lens' DeliveryChannel (Maybe ConfigSnapshotDeliveryProperties)
 dcConfigSnapshotDeliveryProperties = lens _dcConfigSnapshotDeliveryProperties (\ s a -> s{_dcConfigSnapshotDeliveryProperties = a});
 
@@ -1187,9 +1207,9 @@
                      <*> (x .:? "configSnapshotDeliveryProperties")
                      <*> (x .:? "s3BucketName"))
 
-instance Hashable DeliveryChannel
+instance Hashable DeliveryChannel where
 
-instance NFData DeliveryChannel
+instance NFData DeliveryChannel where
 
 instance ToJSON DeliveryChannel where
         toJSON DeliveryChannel'{..}
@@ -1210,12 +1230,13 @@
 --
 -- /See:/ 'deliveryChannelStatus' smart constructor.
 data DeliveryChannelStatus = DeliveryChannelStatus'
-    { _dcsConfigSnapshotDeliveryInfo :: !(Maybe ConfigExportDeliveryInfo)
-    , _dcsConfigStreamDeliveryInfo   :: !(Maybe ConfigStreamDeliveryInfo)
-    , _dcsConfigHistoryDeliveryInfo  :: !(Maybe ConfigExportDeliveryInfo)
-    , _dcsName                       :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcsConfigSnapshotDeliveryInfo :: !(Maybe ConfigExportDeliveryInfo)
+  , _dcsConfigStreamDeliveryInfo   :: !(Maybe ConfigStreamDeliveryInfo)
+  , _dcsConfigHistoryDeliveryInfo  :: !(Maybe ConfigExportDeliveryInfo)
+  , _dcsName                       :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeliveryChannelStatus' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1230,13 +1251,14 @@
 deliveryChannelStatus
     :: DeliveryChannelStatus
 deliveryChannelStatus =
-    DeliveryChannelStatus'
-    { _dcsConfigSnapshotDeliveryInfo = Nothing
-    , _dcsConfigStreamDeliveryInfo = Nothing
-    , _dcsConfigHistoryDeliveryInfo = Nothing
-    , _dcsName = Nothing
-    }
+  DeliveryChannelStatus'
+  { _dcsConfigSnapshotDeliveryInfo = Nothing
+  , _dcsConfigStreamDeliveryInfo = Nothing
+  , _dcsConfigHistoryDeliveryInfo = Nothing
+  , _dcsName = Nothing
+  }
 
+
 -- | A list containing the status of the delivery of the snapshot to the specified Amazon S3 bucket.
 dcsConfigSnapshotDeliveryInfo :: Lens' DeliveryChannelStatus (Maybe ConfigExportDeliveryInfo)
 dcsConfigSnapshotDeliveryInfo = lens _dcsConfigSnapshotDeliveryInfo (\ s a -> s{_dcsConfigSnapshotDeliveryInfo = a});
@@ -1263,9 +1285,9 @@
                      <*> (x .:? "configHistoryDeliveryInfo")
                      <*> (x .:? "name"))
 
-instance Hashable DeliveryChannelStatus
+instance Hashable DeliveryChannelStatus where
 
-instance NFData DeliveryChannelStatus
+instance NFData DeliveryChannelStatus where
 
 -- | Identifies an AWS resource and indicates whether it complies with the AWS Config rule that it was evaluated against.
 --
@@ -1273,13 +1295,14 @@
 --
 -- /See:/ 'evaluation' smart constructor.
 data Evaluation = Evaluation'
-    { _eAnnotation             :: !(Maybe Text)
-    , _eComplianceResourceType :: !Text
-    , _eComplianceResourceId   :: !Text
-    , _eComplianceType         :: !ComplianceType
-    , _eOrderingTimestamp      :: !POSIX
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _eAnnotation             :: !(Maybe Text)
+  , _eComplianceResourceType :: !Text
+  , _eComplianceResourceId   :: !Text
+  , _eComplianceType         :: !ComplianceType
+  , _eOrderingTimestamp      :: !POSIX
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Evaluation' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1292,7 +1315,7 @@
 --
 -- * 'eComplianceType' - Indicates whether the AWS resource complies with the AWS Config rule that it was evaluated against. For the @Evaluation@ data type, AWS Config supports only the @COMPLIANT@ , @NON_COMPLIANT@ , and @NOT_APPLICABLE@ values. AWS Config does not support the @INSUFFICIENT_DATA@ value for this data type. Similarly, AWS Config does not accept @INSUFFICIENT_DATA@ as the value for @ComplianceType@ from a @PutEvaluations@ request. For example, an AWS Lambda function for a custom Config rule cannot pass an @INSUFFICIENT_DATA@ value to AWS Config.
 --
--- * 'eOrderingTimestamp' - The time of the event in AWS Config that triggered the evaluation. For event-based evaluations, the time indicates when AWS Config created the configuration item that triggered the evaluation. For periodic evaluations, the time indicates when AWS Config delivered the configuration snapshot that triggered the evaluation.
+-- * 'eOrderingTimestamp' - The time of the event in AWS Config that triggered the evaluation. For event-based evaluations, the time indicates when AWS Config created the configuration item that triggered the evaluation. For periodic evaluations, the time indicates when AWS Config triggered the evaluation at the frequency that you specified (for example, every 24 hours).
 evaluation
     :: Text -- ^ 'eComplianceResourceType'
     -> Text -- ^ 'eComplianceResourceId'
@@ -1300,14 +1323,15 @@
     -> UTCTime -- ^ 'eOrderingTimestamp'
     -> Evaluation
 evaluation pComplianceResourceType_ pComplianceResourceId_ pComplianceType_ pOrderingTimestamp_ =
-    Evaluation'
-    { _eAnnotation = Nothing
-    , _eComplianceResourceType = pComplianceResourceType_
-    , _eComplianceResourceId = pComplianceResourceId_
-    , _eComplianceType = pComplianceType_
-    , _eOrderingTimestamp = _Time # pOrderingTimestamp_
-    }
+  Evaluation'
+  { _eAnnotation = Nothing
+  , _eComplianceResourceType = pComplianceResourceType_
+  , _eComplianceResourceId = pComplianceResourceId_
+  , _eComplianceType = pComplianceType_
+  , _eOrderingTimestamp = _Time # pOrderingTimestamp_
+  }
 
+
 -- | Supplementary information about how the evaluation determined the compliance.
 eAnnotation :: Lens' Evaluation (Maybe Text)
 eAnnotation = lens _eAnnotation (\ s a -> s{_eAnnotation = a});
@@ -1324,7 +1348,7 @@
 eComplianceType :: Lens' Evaluation ComplianceType
 eComplianceType = lens _eComplianceType (\ s a -> s{_eComplianceType = a});
 
--- | The time of the event in AWS Config that triggered the evaluation. For event-based evaluations, the time indicates when AWS Config created the configuration item that triggered the evaluation. For periodic evaluations, the time indicates when AWS Config delivered the configuration snapshot that triggered the evaluation.
+-- | The time of the event in AWS Config that triggered the evaluation. For event-based evaluations, the time indicates when AWS Config created the configuration item that triggered the evaluation. For periodic evaluations, the time indicates when AWS Config triggered the evaluation at the frequency that you specified (for example, every 24 hours).
 eOrderingTimestamp :: Lens' Evaluation UTCTime
 eOrderingTimestamp = lens _eOrderingTimestamp (\ s a -> s{_eOrderingTimestamp = a}) . _Time;
 
@@ -1339,9 +1363,9 @@
                      <*> (x .: "ComplianceType")
                      <*> (x .: "OrderingTimestamp"))
 
-instance Hashable Evaluation
+instance Hashable Evaluation where
 
-instance NFData Evaluation
+instance NFData Evaluation where
 
 instance ToJSON Evaluation where
         toJSON Evaluation'{..}
@@ -1362,14 +1386,15 @@
 --
 -- /See:/ 'evaluationResult' smart constructor.
 data EvaluationResult = EvaluationResult'
-    { _erEvaluationResultIdentifier :: !(Maybe EvaluationResultIdentifier)
-    , _erAnnotation                 :: !(Maybe Text)
-    , _erConfigRuleInvokedTime      :: !(Maybe POSIX)
-    , _erResultRecordedTime         :: !(Maybe POSIX)
-    , _erResultToken                :: !(Maybe Text)
-    , _erComplianceType             :: !(Maybe ComplianceType)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _erEvaluationResultIdentifier :: !(Maybe EvaluationResultIdentifier)
+  , _erAnnotation                 :: !(Maybe Text)
+  , _erConfigRuleInvokedTime      :: !(Maybe POSIX)
+  , _erResultRecordedTime         :: !(Maybe POSIX)
+  , _erResultToken                :: !(Maybe Text)
+  , _erComplianceType             :: !(Maybe ComplianceType)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'EvaluationResult' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1388,15 +1413,16 @@
 evaluationResult
     :: EvaluationResult
 evaluationResult =
-    EvaluationResult'
-    { _erEvaluationResultIdentifier = Nothing
-    , _erAnnotation = Nothing
-    , _erConfigRuleInvokedTime = Nothing
-    , _erResultRecordedTime = Nothing
-    , _erResultToken = Nothing
-    , _erComplianceType = Nothing
-    }
+  EvaluationResult'
+  { _erEvaluationResultIdentifier = Nothing
+  , _erAnnotation = Nothing
+  , _erConfigRuleInvokedTime = Nothing
+  , _erResultRecordedTime = Nothing
+  , _erResultToken = Nothing
+  , _erComplianceType = Nothing
+  }
 
+
 -- | Uniquely identifies the evaluation result.
 erEvaluationResultIdentifier :: Lens' EvaluationResult (Maybe EvaluationResultIdentifier)
 erEvaluationResultIdentifier = lens _erEvaluationResultIdentifier (\ s a -> s{_erEvaluationResultIdentifier = a});
@@ -1433,9 +1459,9 @@
                      <*> (x .:? "ResultToken")
                      <*> (x .:? "ComplianceType"))
 
-instance Hashable EvaluationResult
+instance Hashable EvaluationResult where
 
-instance NFData EvaluationResult
+instance NFData EvaluationResult where
 
 -- | Uniquely identifies an evaluation result.
 --
@@ -1443,10 +1469,11 @@
 --
 -- /See:/ 'evaluationResultIdentifier' smart constructor.
 data EvaluationResultIdentifier = EvaluationResultIdentifier'
-    { _eriEvaluationResultQualifier :: !(Maybe EvaluationResultQualifier)
-    , _eriOrderingTimestamp         :: !(Maybe POSIX)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _eriEvaluationResultQualifier :: !(Maybe EvaluationResultQualifier)
+  , _eriOrderingTimestamp         :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'EvaluationResultIdentifier' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1457,11 +1484,10 @@
 evaluationResultIdentifier
     :: EvaluationResultIdentifier
 evaluationResultIdentifier =
-    EvaluationResultIdentifier'
-    { _eriEvaluationResultQualifier = Nothing
-    , _eriOrderingTimestamp = Nothing
-    }
+  EvaluationResultIdentifier'
+  {_eriEvaluationResultQualifier = Nothing, _eriOrderingTimestamp = Nothing}
 
+
 -- | Identifies an AWS Config rule used to evaluate an AWS resource, and provides the type and ID of the evaluated resource.
 eriEvaluationResultQualifier :: Lens' EvaluationResultIdentifier (Maybe EvaluationResultQualifier)
 eriEvaluationResultQualifier = lens _eriEvaluationResultQualifier (\ s a -> s{_eriEvaluationResultQualifier = a});
@@ -1478,9 +1504,9 @@
                    (x .:? "EvaluationResultQualifier") <*>
                      (x .:? "OrderingTimestamp"))
 
-instance Hashable EvaluationResultIdentifier
+instance Hashable EvaluationResultIdentifier where
 
-instance NFData EvaluationResultIdentifier
+instance NFData EvaluationResultIdentifier where
 
 -- | Identifies an AWS Config rule that evaluated an AWS resource, and provides the type and ID of the resource that the rule evaluated.
 --
@@ -1488,11 +1514,12 @@
 --
 -- /See:/ 'evaluationResultQualifier' smart constructor.
 data EvaluationResultQualifier = EvaluationResultQualifier'
-    { _erqResourceId     :: !(Maybe Text)
-    , _erqResourceType   :: !(Maybe Text)
-    , _erqConfigRuleName :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _erqResourceId     :: !(Maybe Text)
+  , _erqResourceType   :: !(Maybe Text)
+  , _erqConfigRuleName :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'EvaluationResultQualifier' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1505,12 +1532,13 @@
 evaluationResultQualifier
     :: EvaluationResultQualifier
 evaluationResultQualifier =
-    EvaluationResultQualifier'
-    { _erqResourceId = Nothing
-    , _erqResourceType = Nothing
-    , _erqConfigRuleName = Nothing
-    }
+  EvaluationResultQualifier'
+  { _erqResourceId = Nothing
+  , _erqResourceType = Nothing
+  , _erqConfigRuleName = Nothing
+  }
 
+
 -- | The ID of the evaluated AWS resource.
 erqResourceId :: Lens' EvaluationResultQualifier (Maybe Text)
 erqResourceId = lens _erqResourceId (\ s a -> s{_erqResourceId = a});
@@ -1531,9 +1559,9 @@
                    (x .:? "ResourceId") <*> (x .:? "ResourceType") <*>
                      (x .:? "ConfigRuleName"))
 
-instance Hashable EvaluationResultQualifier
+instance Hashable EvaluationResultQualifier where
 
-instance NFData EvaluationResultQualifier
+instance NFData EvaluationResultQualifier where
 
 -- | Specifies the types of AWS resource for which AWS Config records configuration changes.
 --
@@ -1555,11 +1583,12 @@
 --
 -- /See:/ 'recordingGroup' smart constructor.
 data RecordingGroup = RecordingGroup'
-    { _rgAllSupported               :: !(Maybe Bool)
-    , _rgIncludeGlobalResourceTypes :: !(Maybe Bool)
-    , _rgResourceTypes              :: !(Maybe [ResourceType])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rgAllSupported               :: !(Maybe Bool)
+  , _rgIncludeGlobalResourceTypes :: !(Maybe Bool)
+  , _rgResourceTypes              :: !(Maybe [ResourceType])
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'RecordingGroup' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1572,12 +1601,13 @@
 recordingGroup
     :: RecordingGroup
 recordingGroup =
-    RecordingGroup'
-    { _rgAllSupported = Nothing
-    , _rgIncludeGlobalResourceTypes = Nothing
-    , _rgResourceTypes = Nothing
-    }
+  RecordingGroup'
+  { _rgAllSupported = Nothing
+  , _rgIncludeGlobalResourceTypes = Nothing
+  , _rgResourceTypes = Nothing
+  }
 
+
 -- | Specifies whether AWS Config records configuration changes for every supported type of regional resource. If you set this option to @true@ , when AWS Config adds support for a new type of regional resource, it automatically starts recording resources of that type. If you set this option to @true@ , you cannot enumerate a list of @resourceTypes@ .
 rgAllSupported :: Lens' RecordingGroup (Maybe Bool)
 rgAllSupported = lens _rgAllSupported (\ s a -> s{_rgAllSupported = a});
@@ -1599,9 +1629,9 @@
                      (x .:? "includeGlobalResourceTypes")
                      <*> (x .:? "resourceTypes" .!= mempty))
 
-instance Hashable RecordingGroup
+instance Hashable RecordingGroup where
 
-instance NFData RecordingGroup
+instance NFData RecordingGroup where
 
 instance ToJSON RecordingGroup where
         toJSON RecordingGroup'{..}
@@ -1618,12 +1648,13 @@
 --
 -- /See:/ 'relationship' smart constructor.
 data Relationship = Relationship'
-    { _rResourceId       :: !(Maybe Text)
-    , _rResourceType     :: !(Maybe ResourceType)
-    , _rResourceName     :: !(Maybe Text)
-    , _rRelationshipName :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _rResourceId       :: !(Maybe Text)
+  , _rResourceType     :: !(Maybe ResourceType)
+  , _rResourceName     :: !(Maybe Text)
+  , _rRelationshipName :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Relationship' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1638,13 +1669,14 @@
 relationship
     :: Relationship
 relationship =
-    Relationship'
-    { _rResourceId = Nothing
-    , _rResourceType = Nothing
-    , _rResourceName = Nothing
-    , _rRelationshipName = Nothing
-    }
+  Relationship'
+  { _rResourceId = Nothing
+  , _rResourceType = Nothing
+  , _rResourceName = Nothing
+  , _rRelationshipName = Nothing
+  }
 
+
 -- | The ID of the related resource (for example, @sg-xxxxxx@ ).
 rResourceId :: Lens' Relationship (Maybe Text)
 rResourceId = lens _rResourceId (\ s a -> s{_rResourceId = a});
@@ -1670,22 +1702,65 @@
                      (x .:? "resourceName")
                      <*> (x .:? "relationshipName"))
 
-instance Hashable Relationship
+instance Hashable Relationship where
 
-instance NFData Relationship
+instance NFData Relationship where
 
+-- | An object that contains the resource type and the number of resources.
+--
+--
+--
+-- /See:/ 'resourceCount' smart constructor.
+data ResourceCount = ResourceCount'
+  { _rcResourceType :: !(Maybe ResourceType)
+  , _rcCount        :: !(Maybe Integer)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'ResourceCount' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rcResourceType' - The resource type, for example @"AWS::EC2::Instance"@ .
+--
+-- * 'rcCount' - The number of resources.
+resourceCount
+    :: ResourceCount
+resourceCount = ResourceCount' {_rcResourceType = Nothing, _rcCount = Nothing}
+
+
+-- | The resource type, for example @"AWS::EC2::Instance"@ .
+rcResourceType :: Lens' ResourceCount (Maybe ResourceType)
+rcResourceType = lens _rcResourceType (\ s a -> s{_rcResourceType = a});
+
+-- | The number of resources.
+rcCount :: Lens' ResourceCount (Maybe Integer)
+rcCount = lens _rcCount (\ s a -> s{_rcCount = a});
+
+instance FromJSON ResourceCount where
+        parseJSON
+          = withObject "ResourceCount"
+              (\ x ->
+                 ResourceCount' <$>
+                   (x .:? "resourceType") <*> (x .:? "count"))
+
+instance Hashable ResourceCount where
+
+instance NFData ResourceCount where
+
 -- | The details that identify a resource that is discovered by AWS Config, including the resource type, ID, and (if available) the custom resource name.
 --
 --
 --
 -- /See:/ 'resourceIdentifier' smart constructor.
 data ResourceIdentifier = ResourceIdentifier'
-    { _riResourceId           :: !(Maybe Text)
-    , _riResourceType         :: !(Maybe ResourceType)
-    , _riResourceName         :: !(Maybe Text)
-    , _riResourceDeletionTime :: !(Maybe POSIX)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _riResourceId           :: !(Maybe Text)
+  , _riResourceType         :: !(Maybe ResourceType)
+  , _riResourceName         :: !(Maybe Text)
+  , _riResourceDeletionTime :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ResourceIdentifier' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1700,13 +1775,14 @@
 resourceIdentifier
     :: ResourceIdentifier
 resourceIdentifier =
-    ResourceIdentifier'
-    { _riResourceId = Nothing
-    , _riResourceType = Nothing
-    , _riResourceName = Nothing
-    , _riResourceDeletionTime = Nothing
-    }
+  ResourceIdentifier'
+  { _riResourceId = Nothing
+  , _riResourceType = Nothing
+  , _riResourceName = Nothing
+  , _riResourceDeletionTime = Nothing
+  }
 
+
 -- | The ID of the resource (for example., @sg-xxxxxx@ ).
 riResourceId :: Lens' ResourceIdentifier (Maybe Text)
 riResourceId = lens _riResourceId (\ s a -> s{_riResourceId = a});
@@ -1732,9 +1808,9 @@
                      (x .:? "resourceName")
                      <*> (x .:? "resourceDeletionTime"))
 
-instance Hashable ResourceIdentifier
+instance Hashable ResourceIdentifier where
 
-instance NFData ResourceIdentifier
+instance NFData ResourceIdentifier where
 
 -- | Defines which resources trigger an evaluation for an AWS Config rule. The scope can include one or more resource types, a combination of a tag key and value, or a combination of one resource type and one resource ID. Specify a scope to constrain which resources trigger an evaluation for a rule. Otherwise, evaluations for the rule are triggered when any resource in your recording group changes in configuration.
 --
@@ -1742,12 +1818,13 @@
 --
 -- /See:/ 'scope' smart constructor.
 data Scope = Scope'
-    { _sComplianceResourceTypes :: !(Maybe [Text])
-    , _sComplianceResourceId    :: !(Maybe Text)
-    , _sTagValue                :: !(Maybe Text)
-    , _sTagKey                  :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sComplianceResourceTypes :: !(Maybe [Text])
+  , _sComplianceResourceId    :: !(Maybe Text)
+  , _sTagValue                :: !(Maybe Text)
+  , _sTagKey                  :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Scope' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1758,17 +1835,18 @@
 --
 -- * 'sTagValue' - The tag value applied to only those AWS resources that you want to trigger an evaluation for the rule. If you specify a value for @TagValue@ , you must also specify a value for @TagKey@ .
 --
--- * 'sTagKey' - The tag key that is applied to only those AWS resources that you want you want to trigger an evaluation for the rule.
+-- * 'sTagKey' - The tag key that is applied to only those AWS resources that you want to trigger an evaluation for the rule.
 scope
     :: Scope
 scope =
-    Scope'
-    { _sComplianceResourceTypes = Nothing
-    , _sComplianceResourceId = Nothing
-    , _sTagValue = Nothing
-    , _sTagKey = Nothing
-    }
+  Scope'
+  { _sComplianceResourceTypes = Nothing
+  , _sComplianceResourceId = Nothing
+  , _sTagValue = Nothing
+  , _sTagKey = Nothing
+  }
 
+
 -- | The resource types of only those AWS resources that you want to trigger an evaluation for the rule. You can only specify one type if you also specify a resource ID for @ComplianceResourceId@ .
 sComplianceResourceTypes :: Lens' Scope [Text]
 sComplianceResourceTypes = lens _sComplianceResourceTypes (\ s a -> s{_sComplianceResourceTypes = a}) . _Default . _Coerce;
@@ -1781,7 +1859,7 @@
 sTagValue :: Lens' Scope (Maybe Text)
 sTagValue = lens _sTagValue (\ s a -> s{_sTagValue = a});
 
--- | The tag key that is applied to only those AWS resources that you want you want to trigger an evaluation for the rule.
+-- | The tag key that is applied to only those AWS resources that you want to trigger an evaluation for the rule.
 sTagKey :: Lens' Scope (Maybe Text)
 sTagKey = lens _sTagKey (\ s a -> s{_sTagKey = a});
 
@@ -1795,9 +1873,9 @@
                      <*> (x .:? "TagValue")
                      <*> (x .:? "TagKey"))
 
-instance Hashable Scope
+instance Hashable Scope where
 
-instance NFData Scope
+instance NFData Scope where
 
 instance ToJSON Scope where
         toJSON Scope'{..}
@@ -1816,60 +1894,64 @@
 --
 -- /See:/ 'source' smart constructor.
 data Source = Source'
-    { _sSourceIdentifier :: !(Maybe Text)
-    , _sOwner            :: !(Maybe Owner)
-    , _sSourceDetails    :: !(Maybe [SourceDetail])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sSourceDetails    :: !(Maybe [SourceDetail])
+  , _sOwner            :: !Owner
+  , _sSourceIdentifier :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Source' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'sSourceIdentifier' - For AWS Config managed rules, a predefined identifier from a list. For example, @IAM_PASSWORD_POLICY@ is a managed rule. To reference a managed rule, see <http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html Using AWS Managed Config Rules> . For custom rules, the identifier is the Amazon Resource Name (ARN) of the rule's AWS Lambda function, such as @arn:aws:lambda:us-east-1:123456789012:function:custom_rule_name@ .
+-- * 'sSourceDetails' - Provides the source and type of the event that causes AWS Config to evaluate your AWS resources.
 --
 -- * 'sOwner' - Indicates whether AWS or the customer owns and manages the AWS Config rule.
 --
--- * 'sSourceDetails' - Provides the source and type of the event that causes AWS Config to evaluate your AWS resources.
+-- * 'sSourceIdentifier' - For AWS Config managed rules, a predefined identifier from a list. For example, @IAM_PASSWORD_POLICY@ is a managed rule. To reference a managed rule, see <http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html Using AWS Managed Config Rules> . For custom rules, the identifier is the Amazon Resource Name (ARN) of the rule's AWS Lambda function, such as @arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name@ .
 source
-    :: Source
-source =
-    Source'
-    { _sSourceIdentifier = Nothing
-    , _sOwner = Nothing
-    , _sSourceDetails = Nothing
-    }
+    :: Owner -- ^ 'sOwner'
+    -> Text -- ^ 'sSourceIdentifier'
+    -> Source
+source pOwner_ pSourceIdentifier_ =
+  Source'
+  { _sSourceDetails = Nothing
+  , _sOwner = pOwner_
+  , _sSourceIdentifier = pSourceIdentifier_
+  }
 
--- | For AWS Config managed rules, a predefined identifier from a list. For example, @IAM_PASSWORD_POLICY@ is a managed rule. To reference a managed rule, see <http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html Using AWS Managed Config Rules> . For custom rules, the identifier is the Amazon Resource Name (ARN) of the rule's AWS Lambda function, such as @arn:aws:lambda:us-east-1:123456789012:function:custom_rule_name@ .
-sSourceIdentifier :: Lens' Source (Maybe Text)
-sSourceIdentifier = lens _sSourceIdentifier (\ s a -> s{_sSourceIdentifier = a});
 
--- | Indicates whether AWS or the customer owns and manages the AWS Config rule.
-sOwner :: Lens' Source (Maybe Owner)
-sOwner = lens _sOwner (\ s a -> s{_sOwner = a});
-
 -- | Provides the source and type of the event that causes AWS Config to evaluate your AWS resources.
 sSourceDetails :: Lens' Source [SourceDetail]
 sSourceDetails = lens _sSourceDetails (\ s a -> s{_sSourceDetails = a}) . _Default . _Coerce;
 
+-- | Indicates whether AWS or the customer owns and manages the AWS Config rule.
+sOwner :: Lens' Source Owner
+sOwner = lens _sOwner (\ s a -> s{_sOwner = a});
+
+-- | For AWS Config managed rules, a predefined identifier from a list. For example, @IAM_PASSWORD_POLICY@ is a managed rule. To reference a managed rule, see <http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html Using AWS Managed Config Rules> . For custom rules, the identifier is the Amazon Resource Name (ARN) of the rule's AWS Lambda function, such as @arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name@ .
+sSourceIdentifier :: Lens' Source Text
+sSourceIdentifier = lens _sSourceIdentifier (\ s a -> s{_sSourceIdentifier = a});
+
 instance FromJSON Source where
         parseJSON
           = withObject "Source"
               (\ x ->
                  Source' <$>
-                   (x .:? "SourceIdentifier") <*> (x .:? "Owner") <*>
-                     (x .:? "SourceDetails" .!= mempty))
+                   (x .:? "SourceDetails" .!= mempty) <*> (x .: "Owner")
+                     <*> (x .: "SourceIdentifier"))
 
-instance Hashable Source
+instance Hashable Source where
 
-instance NFData Source
+instance NFData Source where
 
 instance ToJSON Source where
         toJSON Source'{..}
           = object
               (catMaybes
-                 [("SourceIdentifier" .=) <$> _sSourceIdentifier,
-                  ("Owner" .=) <$> _sOwner,
-                  ("SourceDetails" .=) <$> _sSourceDetails])
+                 [("SourceDetails" .=) <$> _sSourceDetails,
+                  Just ("Owner" .= _sOwner),
+                  Just ("SourceIdentifier" .= _sSourceIdentifier)])
 
 -- | Provides the source and the message types that trigger AWS Config to evaluate your AWS resources against a rule. It also provides the frequency with which you want AWS Config to run evaluations for the rule if the trigger type is periodic. You can specify the parameter values for @SourceDetail@ only for custom rules.
 --
@@ -1877,34 +1959,36 @@
 --
 -- /See:/ 'sourceDetail' smart constructor.
 data SourceDetail = SourceDetail'
-    { _sdMessageType               :: !(Maybe MessageType)
-    , _sdMaximumExecutionFrequency :: !(Maybe MaximumExecutionFrequency)
-    , _sdEventSource               :: !(Maybe EventSource)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sdMessageType               :: !(Maybe MessageType)
+  , _sdMaximumExecutionFrequency :: !(Maybe MaximumExecutionFrequency)
+  , _sdEventSource               :: !(Maybe EventSource)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'SourceDetail' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'sdMessageType' - The type of notification that triggers AWS Config to run an evaluation. You can specify the following notification types: @ConfigurationItemChangeNotification@ - Triggers an evaluation when AWS Config delivers a configuration item change notification. @ScheduledNotification@ - Triggers a periodic evaluation at the frequency specified for @MaximumExecutionFrequency@ . @ConfigurationSnapshotDeliveryCompleted@ - Triggers a periodic evaluation when AWS Config delivers a configuration snapshot.
+-- * 'sdMessageType' - The type of notification that triggers AWS Config to run an evaluation for a rule. You can specify the following notification types:     * @ConfigurationItemChangeNotification@ - Triggers an evaluation when AWS Config delivers a configuration item as a result of a resource change.     * @OversizedConfigurationItemChangeNotification@ - Triggers an evaluation when AWS Config delivers an oversized configuration item. AWS Config may generate this notification type when a resource changes and the notification exceeds the maximum size allowed by Amazon SNS.     * @ScheduledNotification@ - Triggers a periodic evaluation at the frequency specified for @MaximumExecutionFrequency@ .     * @ConfigurationSnapshotDeliveryCompleted@ - Triggers a periodic evaluation when AWS Config delivers a configuration snapshot. If you want your custom rule to be triggered by configuration changes, specify both @ConfigurationItemChangeNotification@ and @OversizedConfigurationItemChangeNotification@ .
 --
--- * 'sdMaximumExecutionFrequency' - The frequency that you want AWS Config to run evaluations for a rule that is triggered periodically. If you specify a value for @MaximumExecutionFrequency@ , then @MessageType@ must use the @ScheduledNotification@ value.
+-- * 'sdMaximumExecutionFrequency' - The frequency that you want AWS Config to run evaluations for a custom rule with a periodic trigger. If you specify a value for @MaximumExecutionFrequency@ , then @MessageType@ must use the @ScheduledNotification@ value.
 --
 -- * 'sdEventSource' - The source of the event, such as an AWS service, that triggers AWS Config to evaluate your AWS resources.
 sourceDetail
     :: SourceDetail
 sourceDetail =
-    SourceDetail'
-    { _sdMessageType = Nothing
-    , _sdMaximumExecutionFrequency = Nothing
-    , _sdEventSource = Nothing
-    }
+  SourceDetail'
+  { _sdMessageType = Nothing
+  , _sdMaximumExecutionFrequency = Nothing
+  , _sdEventSource = Nothing
+  }
 
--- | The type of notification that triggers AWS Config to run an evaluation. You can specify the following notification types: @ConfigurationItemChangeNotification@ - Triggers an evaluation when AWS Config delivers a configuration item change notification. @ScheduledNotification@ - Triggers a periodic evaluation at the frequency specified for @MaximumExecutionFrequency@ . @ConfigurationSnapshotDeliveryCompleted@ - Triggers a periodic evaluation when AWS Config delivers a configuration snapshot.
+
+-- | The type of notification that triggers AWS Config to run an evaluation for a rule. You can specify the following notification types:     * @ConfigurationItemChangeNotification@ - Triggers an evaluation when AWS Config delivers a configuration item as a result of a resource change.     * @OversizedConfigurationItemChangeNotification@ - Triggers an evaluation when AWS Config delivers an oversized configuration item. AWS Config may generate this notification type when a resource changes and the notification exceeds the maximum size allowed by Amazon SNS.     * @ScheduledNotification@ - Triggers a periodic evaluation at the frequency specified for @MaximumExecutionFrequency@ .     * @ConfigurationSnapshotDeliveryCompleted@ - Triggers a periodic evaluation when AWS Config delivers a configuration snapshot. If you want your custom rule to be triggered by configuration changes, specify both @ConfigurationItemChangeNotification@ and @OversizedConfigurationItemChangeNotification@ .
 sdMessageType :: Lens' SourceDetail (Maybe MessageType)
 sdMessageType = lens _sdMessageType (\ s a -> s{_sdMessageType = a});
 
--- | The frequency that you want AWS Config to run evaluations for a rule that is triggered periodically. If you specify a value for @MaximumExecutionFrequency@ , then @MessageType@ must use the @ScheduledNotification@ value.
+-- | The frequency that you want AWS Config to run evaluations for a custom rule with a periodic trigger. If you specify a value for @MaximumExecutionFrequency@ , then @MessageType@ must use the @ScheduledNotification@ value.
 sdMaximumExecutionFrequency :: Lens' SourceDetail (Maybe MaximumExecutionFrequency)
 sdMaximumExecutionFrequency = lens _sdMaximumExecutionFrequency (\ s a -> s{_sdMaximumExecutionFrequency = a});
 
@@ -1921,9 +2005,9 @@
                      (x .:? "MaximumExecutionFrequency")
                      <*> (x .:? "EventSource"))
 
-instance Hashable SourceDetail
+instance Hashable SourceDetail where
 
-instance NFData SourceDetail
+instance NFData SourceDetail where
 
 instance ToJSON SourceDetail where
         toJSON SourceDetail'{..}
diff --git a/gen/Network/AWS/Config/Types/Sum.hs b/gen/Network/AWS/Config/Types/Sum.hs
--- a/gen/Network/AWS/Config/Types/Sum.hs
+++ b/gen/Network/AWS/Config/Types/Sum.hs
@@ -9,21 +9,22 @@
 
 -- |
 -- Module      : Network.AWS.Config.Types.Sum
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Network.AWS.Config.Types.Sum where
 
-import           Network.AWS.Prelude
+import Network.AWS.Prelude
 
 data ChronologicalOrder
-    = Forward
-    | Reverse
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Forward
+  | Reverse
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText ChronologicalOrder where
     parser = takeLowerText >>= \case
         "forward" -> pure Forward
@@ -46,12 +47,13 @@
     toJSON = toJSONText
 
 data ComplianceType
-    = Compliant
-    | InsufficientData
-    | NonCompliant
-    | NotApplicable
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Compliant
+  | InsufficientData
+  | NonCompliant
+  | NotApplicable
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText ComplianceType where
     parser = takeLowerText >>= \case
         "compliant" -> pure Compliant
@@ -81,12 +83,13 @@
     parseJSON = parseJSONText "ComplianceType"
 
 data ConfigRuleState
-    = Active
-    | Deleting
-    | DeletingResults
-    | Evaluating
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Active
+  | Deleting
+  | DeletingResults
+  | Evaluating
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText ConfigRuleState where
     parser = takeLowerText >>= \case
         "active" -> pure Active
@@ -116,12 +119,13 @@
     parseJSON = parseJSONText "ConfigRuleState"
 
 data ConfigurationItemStatus
-    = Deleted
-    | Discovered
-    | Failed
-    | OK
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Deleted
+  | Discovered
+  | Failed
+  | OK
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText ConfigurationItemStatus where
     parser = takeLowerText >>= \case
         "deleted" -> pure Deleted
@@ -148,11 +152,12 @@
     parseJSON = parseJSONText "ConfigurationItemStatus"
 
 data DeliveryStatus
-    = DSFailure
-    | DSNotApplicable
-    | DSSuccess
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = DSFailure
+  | DSNotApplicable
+  | DSSuccess
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText DeliveryStatus where
     parser = takeLowerText >>= \case
         "failure" -> pure DSFailure
@@ -177,9 +182,10 @@
     parseJSON = parseJSONText "DeliveryStatus"
 
 data EventSource =
-    AWS_Config
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  AWS_Config
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText EventSource where
     parser = takeLowerText >>= \case
         "aws.config" -> pure AWS_Config
@@ -203,13 +209,14 @@
     parseJSON = parseJSONText "EventSource"
 
 data MaximumExecutionFrequency
-    = OneHour
-    | SixHours
-    | ThreeHours
-    | TwelveHours
-    | TwentyFourHours
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = OneHour
+  | SixHours
+  | ThreeHours
+  | TwelveHours
+  | TwentyFourHours
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText MaximumExecutionFrequency where
     parser = takeLowerText >>= \case
         "one_hour" -> pure OneHour
@@ -241,23 +248,27 @@
     parseJSON = parseJSONText "MaximumExecutionFrequency"
 
 data MessageType
-    = ConfigurationItemChangeNotification
-    | ConfigurationSnapshotDeliveryCompleted
-    | ScheduledNotification
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = ConfigurationItemChangeNotification
+  | ConfigurationSnapshotDeliveryCompleted
+  | OversizedConfigurationItemChangeNotification
+  | ScheduledNotification
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText MessageType where
     parser = takeLowerText >>= \case
         "configurationitemchangenotification" -> pure ConfigurationItemChangeNotification
         "configurationsnapshotdeliverycompleted" -> pure ConfigurationSnapshotDeliveryCompleted
+        "oversizedconfigurationitemchangenotification" -> pure OversizedConfigurationItemChangeNotification
         "schedulednotification" -> pure ScheduledNotification
         e -> fromTextError $ "Failure parsing MessageType from value: '" <> e
-           <> "'. Accepted values: configurationitemchangenotification, configurationsnapshotdeliverycompleted, schedulednotification"
+           <> "'. Accepted values: configurationitemchangenotification, configurationsnapshotdeliverycompleted, oversizedconfigurationitemchangenotification, schedulednotification"
 
 instance ToText MessageType where
     toText = \case
         ConfigurationItemChangeNotification -> "ConfigurationItemChangeNotification"
         ConfigurationSnapshotDeliveryCompleted -> "ConfigurationSnapshotDeliveryCompleted"
+        OversizedConfigurationItemChangeNotification -> "OversizedConfigurationItemChangeNotification"
         ScheduledNotification -> "ScheduledNotification"
 
 instance Hashable     MessageType
@@ -273,10 +284,11 @@
     parseJSON = parseJSONText "MessageType"
 
 data Owner
-    = AWS
-    | CustomLambda
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = AWS
+  | CustomLambda
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText Owner where
     parser = takeLowerText >>= \case
         "aws" -> pure AWS
@@ -302,11 +314,12 @@
     parseJSON = parseJSONText "Owner"
 
 data RecorderStatus
-    = Failure
-    | Pending
-    | Success
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Failure
+  | Pending
+  | Success
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText RecorderStatus where
     parser = takeLowerText >>= \case
         "failure" -> pure Failure
@@ -331,39 +344,63 @@
     parseJSON = parseJSONText "RecorderStatus"
 
 data ResourceType
-    = AWSAcmCertificate
-    | AWSCloudTrailTrail
-    | AWSEC2CustomerGateway
-    | AWSEC2EIP
-    | AWSEC2Host
-    | AWSEC2Instance
-    | AWSEC2InternetGateway
-    | AWSEC2NetworkACL
-    | AWSEC2NetworkInterface
-    | AWSEC2RouteTable
-    | AWSEC2SecurityGroup
-    | AWSEC2Subnet
-    | AWSEC2VPC
-    | AWSEC2VPNConnection
-    | AWSEC2VPNGateway
-    | AWSEC2Volume
-    | AWSELASTICLOADBALANCINGV2LoadBalancer
-    | AWSIAMGroup
-    | AWSIAMPolicy
-    | AWSIAMRole
-    | AWSIAMUser
-    | AWSRDSDBInstance
-    | AWSRDSDBSecurityGroup
-    | AWSRDSDBSnapshot
-    | AWSRDSDBSubnetGroup
-    | AWSRDSEventSubscription
-    | AWSS3Bucket
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = AWSAcmCertificate
+  | AWSAutoScalingAutoScalingGroup
+  | AWSAutoScalingLaunchConfiguration
+  | AWSAutoScalingScalingPolicy
+  | AWSAutoScalingScheduledAction
+  | AWSCloudFormationStack
+  | AWSCloudTrailTrail
+  | AWSCloudWatchAlarm
+  | AWSCodeBuildProject
+  | AWSDynamoDBTable
+  | AWSEC2CustomerGateway
+  | AWSEC2EIP
+  | AWSEC2Host
+  | AWSEC2Instance
+  | AWSEC2InternetGateway
+  | AWSEC2NetworkACL
+  | AWSEC2NetworkInterface
+  | AWSEC2RouteTable
+  | AWSEC2SecurityGroup
+  | AWSEC2Subnet
+  | AWSEC2VPC
+  | AWSEC2VPNConnection
+  | AWSEC2VPNGateway
+  | AWSEC2Volume
+  | AWSELASTICLOADBALANCINGV2LoadBalancer
+  | AWSIAMGroup
+  | AWSIAMPolicy
+  | AWSIAMRole
+  | AWSIAMUser
+  | AWSRDSDBInstance
+  | AWSRDSDBSecurityGroup
+  | AWSRDSDBSnapshot
+  | AWSRDSDBSubnetGroup
+  | AWSRDSEventSubscription
+  | AWSRedshiftCluster
+  | AWSRedshiftClusterParameterGroup
+  | AWSRedshiftClusterSecurityGroup
+  | AWSRedshiftClusterSnapshot
+  | AWSRedshiftClusterSubnetGroup
+  | AWSRedshiftEventSubscription
+  | AWSS3Bucket
+  | AWSSsmManagedInstanceInventory
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText ResourceType where
     parser = takeLowerText >>= \case
         "aws::acm::certificate" -> pure AWSAcmCertificate
+        "aws::autoscaling::autoscalinggroup" -> pure AWSAutoScalingAutoScalingGroup
+        "aws::autoscaling::launchconfiguration" -> pure AWSAutoScalingLaunchConfiguration
+        "aws::autoscaling::scalingpolicy" -> pure AWSAutoScalingScalingPolicy
+        "aws::autoscaling::scheduledaction" -> pure AWSAutoScalingScheduledAction
+        "aws::cloudformation::stack" -> pure AWSCloudFormationStack
         "aws::cloudtrail::trail" -> pure AWSCloudTrailTrail
+        "aws::cloudwatch::alarm" -> pure AWSCloudWatchAlarm
+        "aws::codebuild::project" -> pure AWSCodeBuildProject
+        "aws::dynamodb::table" -> pure AWSDynamoDBTable
         "aws::ec2::customergateway" -> pure AWSEC2CustomerGateway
         "aws::ec2::eip" -> pure AWSEC2EIP
         "aws::ec2::host" -> pure AWSEC2Host
@@ -388,14 +425,29 @@
         "aws::rds::dbsnapshot" -> pure AWSRDSDBSnapshot
         "aws::rds::dbsubnetgroup" -> pure AWSRDSDBSubnetGroup
         "aws::rds::eventsubscription" -> pure AWSRDSEventSubscription
+        "aws::redshift::cluster" -> pure AWSRedshiftCluster
+        "aws::redshift::clusterparametergroup" -> pure AWSRedshiftClusterParameterGroup
+        "aws::redshift::clustersecuritygroup" -> pure AWSRedshiftClusterSecurityGroup
+        "aws::redshift::clustersnapshot" -> pure AWSRedshiftClusterSnapshot
+        "aws::redshift::clustersubnetgroup" -> pure AWSRedshiftClusterSubnetGroup
+        "aws::redshift::eventsubscription" -> pure AWSRedshiftEventSubscription
         "aws::s3::bucket" -> pure AWSS3Bucket
+        "aws::ssm::managedinstanceinventory" -> pure AWSSsmManagedInstanceInventory
         e -> fromTextError $ "Failure parsing ResourceType from value: '" <> e
-           <> "'. Accepted values: aws::acm::certificate, aws::cloudtrail::trail, aws::ec2::customergateway, aws::ec2::eip, aws::ec2::host, aws::ec2::instance, aws::ec2::internetgateway, aws::ec2::networkacl, aws::ec2::networkinterface, aws::ec2::routetable, aws::ec2::securitygroup, aws::ec2::subnet, aws::ec2::vpc, aws::ec2::vpnconnection, aws::ec2::vpngateway, aws::ec2::volume, aws::elasticloadbalancingv2::loadbalancer, aws::iam::group, aws::iam::policy, aws::iam::role, aws::iam::user, aws::rds::dbinstance, aws::rds::dbsecuritygroup, aws::rds::dbsnapshot, aws::rds::dbsubnetgroup, aws::rds::eventsubscription, aws::s3::bucket"
+           <> "'. Accepted values: aws::acm::certificate, aws::autoscaling::autoscalinggroup, aws::autoscaling::launchconfiguration, aws::autoscaling::scalingpolicy, aws::autoscaling::scheduledaction, aws::cloudformation::stack, aws::cloudtrail::trail, aws::cloudwatch::alarm, aws::codebuild::project, aws::dynamodb::table, aws::ec2::customergateway, aws::ec2::eip, aws::ec2::host, aws::ec2::instance, aws::ec2::internetgateway, aws::ec2::networkacl, aws::ec2::networkinterface, aws::ec2::routetable, aws::ec2::securitygroup, aws::ec2::subnet, aws::ec2::vpc, aws::ec2::vpnconnection, aws::ec2::vpngateway, aws::ec2::volume, aws::elasticloadbalancingv2::loadbalancer, aws::iam::group, aws::iam::policy, aws::iam::role, aws::iam::user, aws::rds::dbinstance, aws::rds::dbsecuritygroup, aws::rds::dbsnapshot, aws::rds::dbsubnetgroup, aws::rds::eventsubscription, aws::redshift::cluster, aws::redshift::clusterparametergroup, aws::redshift::clustersecuritygroup, aws::redshift::clustersnapshot, aws::redshift::clustersubnetgroup, aws::redshift::eventsubscription, aws::s3::bucket, aws::ssm::managedinstanceinventory"
 
 instance ToText ResourceType where
     toText = \case
         AWSAcmCertificate -> "AWS::ACM::Certificate"
+        AWSAutoScalingAutoScalingGroup -> "AWS::AutoScaling::AutoScalingGroup"
+        AWSAutoScalingLaunchConfiguration -> "AWS::AutoScaling::LaunchConfiguration"
+        AWSAutoScalingScalingPolicy -> "AWS::AutoScaling::ScalingPolicy"
+        AWSAutoScalingScheduledAction -> "AWS::AutoScaling::ScheduledAction"
+        AWSCloudFormationStack -> "AWS::CloudFormation::Stack"
         AWSCloudTrailTrail -> "AWS::CloudTrail::Trail"
+        AWSCloudWatchAlarm -> "AWS::CloudWatch::Alarm"
+        AWSCodeBuildProject -> "AWS::CodeBuild::Project"
+        AWSDynamoDBTable -> "AWS::DynamoDB::Table"
         AWSEC2CustomerGateway -> "AWS::EC2::CustomerGateway"
         AWSEC2EIP -> "AWS::EC2::EIP"
         AWSEC2Host -> "AWS::EC2::Host"
@@ -420,7 +472,14 @@
         AWSRDSDBSnapshot -> "AWS::RDS::DBSnapshot"
         AWSRDSDBSubnetGroup -> "AWS::RDS::DBSubnetGroup"
         AWSRDSEventSubscription -> "AWS::RDS::EventSubscription"
+        AWSRedshiftCluster -> "AWS::Redshift::Cluster"
+        AWSRedshiftClusterParameterGroup -> "AWS::Redshift::ClusterParameterGroup"
+        AWSRedshiftClusterSecurityGroup -> "AWS::Redshift::ClusterSecurityGroup"
+        AWSRedshiftClusterSnapshot -> "AWS::Redshift::ClusterSnapshot"
+        AWSRedshiftClusterSubnetGroup -> "AWS::Redshift::ClusterSubnetGroup"
+        AWSRedshiftEventSubscription -> "AWS::Redshift::EventSubscription"
         AWSS3Bucket -> "AWS::S3::Bucket"
+        AWSSsmManagedInstanceInventory -> "AWS::SSM::ManagedInstanceInventory"
 
 instance Hashable     ResourceType
 instance NFData       ResourceType
diff --git a/gen/Network/AWS/Config/Waiters.hs b/gen/Network/AWS/Config/Waiters.hs
--- a/gen/Network/AWS/Config/Waiters.hs
+++ b/gen/Network/AWS/Config/Waiters.hs
@@ -7,15 +7,15 @@
 
 -- |
 -- Module      : Network.AWS.Config.Waiters
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Network.AWS.Config.Waiters where
 
-import           Network.AWS.Config.Types
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Waiter
+import Network.AWS.Config.Types
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Waiter
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -2,9 +2,9 @@
 
 -- |
 -- Module      : Main
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
diff --git a/test/Test/AWS/Gen/Config.hs b/test/Test/AWS/Gen/Config.hs
--- a/test/Test/AWS/Gen/Config.hs
+++ b/test/Test/AWS/Gen/Config.hs
@@ -5,20 +5,20 @@
 
 -- |
 -- Module      : Test.AWS.Gen.Config
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 module Test.AWS.Gen.Config where
 
 import Data.Proxy
+import Network.AWS.Config
+import Test.AWS.Config.Internal
 import Test.AWS.Fixture
 import Test.AWS.Prelude
 import Test.Tasty
-import Network.AWS.Config
-import Test.AWS.Config.Internal
 
 -- Auto-generated: the actual test selection needs to be manually placed into
 -- the top-level so that real test data can be incrementally added.
@@ -58,6 +58,9 @@
 --         , requestDescribeConfigRuleEvaluationStatus $
 --             describeConfigRuleEvaluationStatus
 --
+--         , requestGetDiscoveredResourceCounts $
+--             getDiscoveredResourceCounts
+--
 --         , requestStartConfigRulesEvaluation $
 --             startConfigRulesEvaluation
 --
@@ -139,6 +142,9 @@
 --         , responseDescribeConfigRuleEvaluationStatus $
 --             describeConfigRuleEvaluationStatusResponse
 --
+--         , responseGetDiscoveredResourceCounts $
+--             getDiscoveredResourceCountsResponse
+--
 --         , responseStartConfigRulesEvaluation $
 --             startConfigRulesEvaluationResponse
 --
@@ -242,6 +248,11 @@
     "DescribeConfigRuleEvaluationStatus"
     "fixture/DescribeConfigRuleEvaluationStatus.yaml"
 
+requestGetDiscoveredResourceCounts :: GetDiscoveredResourceCounts -> TestTree
+requestGetDiscoveredResourceCounts = req
+    "GetDiscoveredResourceCounts"
+    "fixture/GetDiscoveredResourceCounts.yaml"
+
 requestStartConfigRulesEvaluation :: StartConfigRulesEvaluation -> TestTree
 requestStartConfigRulesEvaluation = req
     "StartConfigRulesEvaluation"
@@ -393,6 +404,13 @@
     "fixture/DescribeConfigRuleEvaluationStatusResponse.proto"
     config
     (Proxy :: Proxy DescribeConfigRuleEvaluationStatus)
+
+responseGetDiscoveredResourceCounts :: GetDiscoveredResourceCountsResponse -> TestTree
+responseGetDiscoveredResourceCounts = res
+    "GetDiscoveredResourceCountsResponse"
+    "fixture/GetDiscoveredResourceCountsResponse.proto"
+    config
+    (Proxy :: Proxy GetDiscoveredResourceCounts)
 
 responseStartConfigRulesEvaluation :: StartConfigRulesEvaluationResponse -> TestTree
 responseStartConfigRulesEvaluation = res
