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-shield.cabal b/amazonka-shield.cabal
--- a/amazonka-shield.cabal
+++ b/amazonka-shield.cabal
@@ -1,13 +1,13 @@
 name:                  amazonka-shield
-version:               1.4.5
+version:               1.5.0
 synopsis:              Amazon Shield 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-shield
 
 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.Shield
@@ -57,7 +62,7 @@
         , Network.AWS.Shield.Types.Sum
 
     build-depends:
-          amazonka-core == 1.4.5.*
+          amazonka-core == 1.5.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-shield-test
@@ -77,9 +82,9 @@
         , Test.AWS.Shield.Internal
 
     build-depends:
-          amazonka-core == 1.4.5.*
-        , amazonka-test == 1.4.5.*
-        , amazonka-shield == 1.4.5.*
+          amazonka-core == 1.5.0.*
+        , amazonka-test == 1.5.0.*
+        , amazonka-shield
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/Shield.hs b/gen/Network/AWS/Shield.hs
--- a/gen/Network/AWS/Shield.hs
+++ b/gen/Network/AWS/Shield.hs
@@ -5,9 +5,9 @@
 
 -- |
 -- Module      : Network.AWS.Shield
--- 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)
 --
@@ -162,17 +162,17 @@
     , trToExclusive
     ) where
 
-import           Network.AWS.Shield.CreateProtection
-import           Network.AWS.Shield.CreateSubscription
-import           Network.AWS.Shield.DeleteProtection
-import           Network.AWS.Shield.DeleteSubscription
-import           Network.AWS.Shield.DescribeAttack
-import           Network.AWS.Shield.DescribeProtection
-import           Network.AWS.Shield.DescribeSubscription
-import           Network.AWS.Shield.ListAttacks
-import           Network.AWS.Shield.ListProtections
-import           Network.AWS.Shield.Types
-import           Network.AWS.Shield.Waiters
+import Network.AWS.Shield.CreateProtection
+import Network.AWS.Shield.CreateSubscription
+import Network.AWS.Shield.DeleteProtection
+import Network.AWS.Shield.DeleteSubscription
+import Network.AWS.Shield.DescribeAttack
+import Network.AWS.Shield.DescribeProtection
+import Network.AWS.Shield.DescribeSubscription
+import Network.AWS.Shield.ListAttacks
+import Network.AWS.Shield.ListProtections
+import Network.AWS.Shield.Types
+import Network.AWS.Shield.Waiters
 
 {- $errors
 Error matchers are designed for use with the functions provided by
diff --git a/gen/Network/AWS/Shield/CreateProtection.hs b/gen/Network/AWS/Shield/CreateProtection.hs
--- a/gen/Network/AWS/Shield/CreateProtection.hs
+++ b/gen/Network/AWS/Shield/CreateProtection.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Shield.CreateProtection
--- 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,19 +38,20 @@
     , cprsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Shield.Types
-import           Network.AWS.Shield.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Shield.Types
+import Network.AWS.Shield.Types.Product
 
 -- | /See:/ 'createProtection' smart constructor.
 data CreateProtection = CreateProtection'
-    { _cpName        :: !Text
-    , _cpResourceARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cpName        :: !Text
+  , _cpResourceARN :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateProtection' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -63,11 +64,9 @@
     -> Text -- ^ 'cpResourceARN'
     -> CreateProtection
 createProtection pName_ pResourceARN_ =
-    CreateProtection'
-    { _cpName = pName_
-    , _cpResourceARN = pResourceARN_
-    }
+  CreateProtection' {_cpName = pName_, _cpResourceARN = pResourceARN_}
 
+
 -- | Friendly name for the @Protection@ you are creating.
 cpName :: Lens' CreateProtection Text
 cpName = lens _cpName (\ s a -> s{_cpName = a});
@@ -85,9 +84,9 @@
                  CreateProtectionResponse' <$>
                    (x .?> "ProtectionId") <*> (pure (fromEnum s)))
 
-instance Hashable CreateProtection
+instance Hashable CreateProtection where
 
-instance NFData CreateProtection
+instance NFData CreateProtection where
 
 instance ToHeaders CreateProtection where
         toHeaders
@@ -114,10 +113,11 @@
 
 -- | /See:/ 'createProtectionResponse' smart constructor.
 data CreateProtectionResponse = CreateProtectionResponse'
-    { _cprsProtectionId   :: !(Maybe Text)
-    , _cprsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cprsProtectionId   :: !(Maybe Text)
+  , _cprsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateProtectionResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -129,11 +129,10 @@
     :: Int -- ^ 'cprsResponseStatus'
     -> CreateProtectionResponse
 createProtectionResponse pResponseStatus_ =
-    CreateProtectionResponse'
-    { _cprsProtectionId = Nothing
-    , _cprsResponseStatus = pResponseStatus_
-    }
+  CreateProtectionResponse'
+  {_cprsProtectionId = Nothing, _cprsResponseStatus = pResponseStatus_}
 
+
 -- | The unique identifier (ID) for the 'Protection' object that is created.
 cprsProtectionId :: Lens' CreateProtectionResponse (Maybe Text)
 cprsProtectionId = lens _cprsProtectionId (\ s a -> s{_cprsProtectionId = a});
@@ -142,4 +141,4 @@
 cprsResponseStatus :: Lens' CreateProtectionResponse Int
 cprsResponseStatus = lens _cprsResponseStatus (\ s a -> s{_cprsResponseStatus = a});
 
-instance NFData CreateProtectionResponse
+instance NFData CreateProtectionResponse where
diff --git a/gen/Network/AWS/Shield/CreateSubscription.hs b/gen/Network/AWS/Shield/CreateSubscription.hs
--- a/gen/Network/AWS/Shield/CreateSubscription.hs
+++ b/gen/Network/AWS/Shield/CreateSubscription.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Shield.CreateSubscription
--- 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,24 +34,26 @@
     , csrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Shield.Types
-import           Network.AWS.Shield.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Shield.Types
+import Network.AWS.Shield.Types.Product
 
 -- | /See:/ 'createSubscription' smart constructor.
 data CreateSubscription =
-    CreateSubscription'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  CreateSubscription'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateSubscription' with the minimum fields required to make a request.
 --
 createSubscription
     :: CreateSubscription
 createSubscription = CreateSubscription'
 
+
 instance AWSRequest CreateSubscription where
         type Rs CreateSubscription =
              CreateSubscriptionResponse
@@ -61,9 +63,9 @@
               (\ s h x ->
                  CreateSubscriptionResponse' <$> (pure (fromEnum s)))
 
-instance Hashable CreateSubscription
+instance Hashable CreateSubscription where
 
-instance NFData CreateSubscription
+instance NFData CreateSubscription where
 
 instance ToHeaders CreateSubscription where
         toHeaders
@@ -86,9 +88,10 @@
 
 -- | /See:/ 'createSubscriptionResponse' smart constructor.
 newtype CreateSubscriptionResponse = CreateSubscriptionResponse'
-    { _csrsResponseStatus :: Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _csrsResponseStatus :: Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateSubscriptionResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -98,12 +101,11 @@
     :: Int -- ^ 'csrsResponseStatus'
     -> CreateSubscriptionResponse
 createSubscriptionResponse pResponseStatus_ =
-    CreateSubscriptionResponse'
-    { _csrsResponseStatus = pResponseStatus_
-    }
+  CreateSubscriptionResponse' {_csrsResponseStatus = pResponseStatus_}
 
+
 -- | -- | The response status code.
 csrsResponseStatus :: Lens' CreateSubscriptionResponse Int
 csrsResponseStatus = lens _csrsResponseStatus (\ s a -> s{_csrsResponseStatus = a});
 
-instance NFData CreateSubscriptionResponse
+instance NFData CreateSubscriptionResponse where
diff --git a/gen/Network/AWS/Shield/DeleteProtection.hs b/gen/Network/AWS/Shield/DeleteProtection.hs
--- a/gen/Network/AWS/Shield/DeleteProtection.hs
+++ b/gen/Network/AWS/Shield/DeleteProtection.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Shield.DeleteProtection
--- 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,18 +36,19 @@
     , delrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Shield.Types
-import           Network.AWS.Shield.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Shield.Types
+import Network.AWS.Shield.Types.Product
 
 -- | /See:/ 'deleteProtection' smart constructor.
 newtype DeleteProtection = DeleteProtection'
-    { _dProtectionId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dProtectionId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteProtection' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -57,10 +58,9 @@
     :: Text -- ^ 'dProtectionId'
     -> DeleteProtection
 deleteProtection pProtectionId_ =
-    DeleteProtection'
-    { _dProtectionId = pProtectionId_
-    }
+  DeleteProtection' {_dProtectionId = pProtectionId_}
 
+
 -- | The unique identifier (ID) for the 'Protection' object to be deleted.
 dProtectionId :: Lens' DeleteProtection Text
 dProtectionId = lens _dProtectionId (\ s a -> s{_dProtectionId = a});
@@ -73,9 +73,9 @@
               (\ s h x ->
                  DeleteProtectionResponse' <$> (pure (fromEnum s)))
 
-instance Hashable DeleteProtection
+instance Hashable DeleteProtection where
 
-instance NFData DeleteProtection
+instance NFData DeleteProtection where
 
 instance ToHeaders DeleteProtection where
         toHeaders
@@ -100,9 +100,10 @@
 
 -- | /See:/ 'deleteProtectionResponse' smart constructor.
 newtype DeleteProtectionResponse = DeleteProtectionResponse'
-    { _delrsResponseStatus :: Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _delrsResponseStatus :: Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteProtectionResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -112,12 +113,11 @@
     :: Int -- ^ 'delrsResponseStatus'
     -> DeleteProtectionResponse
 deleteProtectionResponse pResponseStatus_ =
-    DeleteProtectionResponse'
-    { _delrsResponseStatus = pResponseStatus_
-    }
+  DeleteProtectionResponse' {_delrsResponseStatus = pResponseStatus_}
 
+
 -- | -- | The response status code.
 delrsResponseStatus :: Lens' DeleteProtectionResponse Int
 delrsResponseStatus = lens _delrsResponseStatus (\ s a -> s{_delrsResponseStatus = a});
 
-instance NFData DeleteProtectionResponse
+instance NFData DeleteProtectionResponse where
diff --git a/gen/Network/AWS/Shield/DeleteSubscription.hs b/gen/Network/AWS/Shield/DeleteSubscription.hs
--- a/gen/Network/AWS/Shield/DeleteSubscription.hs
+++ b/gen/Network/AWS/Shield/DeleteSubscription.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Shield.DeleteSubscription
--- 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,24 +34,26 @@
     , drsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Shield.Types
-import           Network.AWS.Shield.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Shield.Types
+import Network.AWS.Shield.Types.Product
 
 -- | /See:/ 'deleteSubscription' smart constructor.
 data DeleteSubscription =
-    DeleteSubscription'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  DeleteSubscription'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteSubscription' with the minimum fields required to make a request.
 --
 deleteSubscription
     :: DeleteSubscription
 deleteSubscription = DeleteSubscription'
 
+
 instance AWSRequest DeleteSubscription where
         type Rs DeleteSubscription =
              DeleteSubscriptionResponse
@@ -61,9 +63,9 @@
               (\ s h x ->
                  DeleteSubscriptionResponse' <$> (pure (fromEnum s)))
 
-instance Hashable DeleteSubscription
+instance Hashable DeleteSubscription where
 
-instance NFData DeleteSubscription
+instance NFData DeleteSubscription where
 
 instance ToHeaders DeleteSubscription where
         toHeaders
@@ -86,9 +88,10 @@
 
 -- | /See:/ 'deleteSubscriptionResponse' smart constructor.
 newtype DeleteSubscriptionResponse = DeleteSubscriptionResponse'
-    { _drsResponseStatus :: Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _drsResponseStatus :: Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteSubscriptionResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -98,12 +101,11 @@
     :: Int -- ^ 'drsResponseStatus'
     -> DeleteSubscriptionResponse
 deleteSubscriptionResponse pResponseStatus_ =
-    DeleteSubscriptionResponse'
-    { _drsResponseStatus = pResponseStatus_
-    }
+  DeleteSubscriptionResponse' {_drsResponseStatus = pResponseStatus_}
 
+
 -- | -- | The response status code.
 drsResponseStatus :: Lens' DeleteSubscriptionResponse Int
 drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});
 
-instance NFData DeleteSubscriptionResponse
+instance NFData DeleteSubscriptionResponse where
diff --git a/gen/Network/AWS/Shield/DescribeAttack.hs b/gen/Network/AWS/Shield/DescribeAttack.hs
--- a/gen/Network/AWS/Shield/DescribeAttack.hs
+++ b/gen/Network/AWS/Shield/DescribeAttack.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Shield.DescribeAttack
--- 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,18 +37,19 @@
     , darsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Shield.Types
-import           Network.AWS.Shield.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Shield.Types
+import Network.AWS.Shield.Types.Product
 
 -- | /See:/ 'describeAttack' smart constructor.
 newtype DescribeAttack = DescribeAttack'
-    { _daAttackId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _daAttackId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeAttack' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -57,11 +58,9 @@
 describeAttack
     :: Text -- ^ 'daAttackId'
     -> DescribeAttack
-describeAttack pAttackId_ =
-    DescribeAttack'
-    { _daAttackId = pAttackId_
-    }
+describeAttack pAttackId_ = DescribeAttack' {_daAttackId = pAttackId_}
 
+
 -- | The unique identifier (ID) for the attack that to be described.
 daAttackId :: Lens' DescribeAttack Text
 daAttackId = lens _daAttackId (\ s a -> s{_daAttackId = a});
@@ -75,9 +74,9 @@
                  DescribeAttackResponse' <$>
                    (x .?> "Attack") <*> (pure (fromEnum s)))
 
-instance Hashable DescribeAttack
+instance Hashable DescribeAttack where
 
-instance NFData DescribeAttack
+instance NFData DescribeAttack where
 
 instance ToHeaders DescribeAttack where
         toHeaders
@@ -101,10 +100,11 @@
 
 -- | /See:/ 'describeAttackResponse' smart constructor.
 data DescribeAttackResponse = DescribeAttackResponse'
-    { _darsAttack         :: !(Maybe AttackDetail)
-    , _darsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _darsAttack         :: !(Maybe AttackDetail)
+  , _darsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeAttackResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -116,11 +116,10 @@
     :: Int -- ^ 'darsResponseStatus'
     -> DescribeAttackResponse
 describeAttackResponse pResponseStatus_ =
-    DescribeAttackResponse'
-    { _darsAttack = Nothing
-    , _darsResponseStatus = pResponseStatus_
-    }
+  DescribeAttackResponse'
+  {_darsAttack = Nothing, _darsResponseStatus = pResponseStatus_}
 
+
 -- | The attack that is described.
 darsAttack :: Lens' DescribeAttackResponse (Maybe AttackDetail)
 darsAttack = lens _darsAttack (\ s a -> s{_darsAttack = a});
@@ -129,4 +128,4 @@
 darsResponseStatus :: Lens' DescribeAttackResponse Int
 darsResponseStatus = lens _darsResponseStatus (\ s a -> s{_darsResponseStatus = a});
 
-instance NFData DescribeAttackResponse
+instance NFData DescribeAttackResponse where
diff --git a/gen/Network/AWS/Shield/DescribeProtection.hs b/gen/Network/AWS/Shield/DescribeProtection.hs
--- a/gen/Network/AWS/Shield/DescribeProtection.hs
+++ b/gen/Network/AWS/Shield/DescribeProtection.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Shield.DescribeProtection
--- 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,18 +37,19 @@
     , dprsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Shield.Types
-import           Network.AWS.Shield.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Shield.Types
+import Network.AWS.Shield.Types.Product
 
 -- | /See:/ 'describeProtection' smart constructor.
 newtype DescribeProtection = DescribeProtection'
-    { _dpProtectionId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dpProtectionId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeProtection' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -58,10 +59,9 @@
     :: Text -- ^ 'dpProtectionId'
     -> DescribeProtection
 describeProtection pProtectionId_ =
-    DescribeProtection'
-    { _dpProtectionId = pProtectionId_
-    }
+  DescribeProtection' {_dpProtectionId = pProtectionId_}
 
+
 -- | The unique identifier (ID) for the 'Protection' object that is described.
 dpProtectionId :: Lens' DescribeProtection Text
 dpProtectionId = lens _dpProtectionId (\ s a -> s{_dpProtectionId = a});
@@ -76,9 +76,9 @@
                  DescribeProtectionResponse' <$>
                    (x .?> "Protection") <*> (pure (fromEnum s)))
 
-instance Hashable DescribeProtection
+instance Hashable DescribeProtection where
 
-instance NFData DescribeProtection
+instance NFData DescribeProtection where
 
 instance ToHeaders DescribeProtection where
         toHeaders
@@ -104,10 +104,11 @@
 
 -- | /See:/ 'describeProtectionResponse' smart constructor.
 data DescribeProtectionResponse = DescribeProtectionResponse'
-    { _dprsProtection     :: !(Maybe Protection)
-    , _dprsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dprsProtection     :: !(Maybe Protection)
+  , _dprsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeProtectionResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -119,11 +120,10 @@
     :: Int -- ^ 'dprsResponseStatus'
     -> DescribeProtectionResponse
 describeProtectionResponse pResponseStatus_ =
-    DescribeProtectionResponse'
-    { _dprsProtection = Nothing
-    , _dprsResponseStatus = pResponseStatus_
-    }
+  DescribeProtectionResponse'
+  {_dprsProtection = Nothing, _dprsResponseStatus = pResponseStatus_}
 
+
 -- | The 'Protection' object that is described.
 dprsProtection :: Lens' DescribeProtectionResponse (Maybe Protection)
 dprsProtection = lens _dprsProtection (\ s a -> s{_dprsProtection = a});
@@ -132,4 +132,4 @@
 dprsResponseStatus :: Lens' DescribeProtectionResponse Int
 dprsResponseStatus = lens _dprsResponseStatus (\ s a -> s{_dprsResponseStatus = a});
 
-instance NFData DescribeProtectionResponse
+instance NFData DescribeProtectionResponse where
diff --git a/gen/Network/AWS/Shield/DescribeSubscription.hs b/gen/Network/AWS/Shield/DescribeSubscription.hs
--- a/gen/Network/AWS/Shield/DescribeSubscription.hs
+++ b/gen/Network/AWS/Shield/DescribeSubscription.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Shield.DescribeSubscription
--- 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 @@
     , dsrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Shield.Types
-import           Network.AWS.Shield.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Shield.Types
+import Network.AWS.Shield.Types.Product
 
 -- | /See:/ 'describeSubscription' smart constructor.
 data DescribeSubscription =
-    DescribeSubscription'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  DescribeSubscription'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeSubscription' with the minimum fields required to make a request.
 --
 describeSubscription
     :: DescribeSubscription
 describeSubscription = DescribeSubscription'
 
+
 instance AWSRequest DescribeSubscription where
         type Rs DescribeSubscription =
              DescribeSubscriptionResponse
@@ -63,9 +65,9 @@
                  DescribeSubscriptionResponse' <$>
                    (x .?> "Subscription") <*> (pure (fromEnum s)))
 
-instance Hashable DescribeSubscription
+instance Hashable DescribeSubscription where
 
-instance NFData DescribeSubscription
+instance NFData DescribeSubscription where
 
 instance ToHeaders DescribeSubscription where
         toHeaders
@@ -88,10 +90,11 @@
 
 -- | /See:/ 'describeSubscriptionResponse' smart constructor.
 data DescribeSubscriptionResponse = DescribeSubscriptionResponse'
-    { _dsrsSubscription   :: !(Maybe Subscription)
-    , _dsrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dsrsSubscription   :: !(Maybe Subscription)
+  , _dsrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeSubscriptionResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -103,11 +106,10 @@
     :: Int -- ^ 'dsrsResponseStatus'
     -> DescribeSubscriptionResponse
 describeSubscriptionResponse pResponseStatus_ =
-    DescribeSubscriptionResponse'
-    { _dsrsSubscription = Nothing
-    , _dsrsResponseStatus = pResponseStatus_
-    }
+  DescribeSubscriptionResponse'
+  {_dsrsSubscription = Nothing, _dsrsResponseStatus = pResponseStatus_}
 
+
 -- | The AWS Shield Advanced subscription details for an account.
 dsrsSubscription :: Lens' DescribeSubscriptionResponse (Maybe Subscription)
 dsrsSubscription = lens _dsrsSubscription (\ s a -> s{_dsrsSubscription = a});
@@ -116,4 +118,4 @@
 dsrsResponseStatus :: Lens' DescribeSubscriptionResponse Int
 dsrsResponseStatus = lens _dsrsResponseStatus (\ s a -> s{_dsrsResponseStatus = a});
 
-instance NFData DescribeSubscriptionResponse
+instance NFData DescribeSubscriptionResponse where
diff --git a/gen/Network/AWS/Shield/ListAttacks.hs b/gen/Network/AWS/Shield/ListAttacks.hs
--- a/gen/Network/AWS/Shield/ListAttacks.hs
+++ b/gen/Network/AWS/Shield/ListAttacks.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Shield.ListAttacks
--- 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)
 --
@@ -42,22 +42,23 @@
     , larsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Shield.Types
-import           Network.AWS.Shield.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Shield.Types
+import Network.AWS.Shield.Types.Product
 
 -- | /See:/ 'listAttacks' smart constructor.
 data ListAttacks = ListAttacks'
-    { _laStartTime    :: !(Maybe TimeRange)
-    , _laResourceARNs :: !(Maybe [Text])
-    , _laNextToken    :: !(Maybe Text)
-    , _laEndTime      :: !(Maybe TimeRange)
-    , _laMaxResults   :: !(Maybe Nat)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _laStartTime    :: !(Maybe TimeRange)
+  , _laResourceARNs :: !(Maybe [Text])
+  , _laNextToken    :: !(Maybe Text)
+  , _laEndTime      :: !(Maybe TimeRange)
+  , _laMaxResults   :: !(Maybe Nat)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListAttacks' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -74,14 +75,15 @@
 listAttacks
     :: ListAttacks
 listAttacks =
-    ListAttacks'
-    { _laStartTime = Nothing
-    , _laResourceARNs = Nothing
-    , _laNextToken = Nothing
-    , _laEndTime = Nothing
-    , _laMaxResults = Nothing
-    }
+  ListAttacks'
+  { _laStartTime = Nothing
+  , _laResourceARNs = Nothing
+  , _laNextToken = Nothing
+  , _laEndTime = Nothing
+  , _laMaxResults = Nothing
+  }
 
+
 -- | The time period for the attacks.
 laStartTime :: Lens' ListAttacks (Maybe TimeRange)
 laStartTime = lens _laStartTime (\ s a -> s{_laStartTime = a});
@@ -113,9 +115,9 @@
                      (x .?> "NextToken")
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListAttacks
+instance Hashable ListAttacks where
 
-instance NFData ListAttacks
+instance NFData ListAttacks where
 
 instance ToHeaders ListAttacks where
         toHeaders
@@ -144,11 +146,12 @@
 
 -- | /See:/ 'listAttacksResponse' smart constructor.
 data ListAttacksResponse = ListAttacksResponse'
-    { _larsAttackSummaries :: !(Maybe [AttackSummary])
-    , _larsNextToken       :: !(Maybe Text)
-    , _larsResponseStatus  :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _larsAttackSummaries :: !(Maybe [AttackSummary])
+  , _larsNextToken       :: !(Maybe Text)
+  , _larsResponseStatus  :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListAttacksResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -162,12 +165,13 @@
     :: Int -- ^ 'larsResponseStatus'
     -> ListAttacksResponse
 listAttacksResponse pResponseStatus_ =
-    ListAttacksResponse'
-    { _larsAttackSummaries = Nothing
-    , _larsNextToken = Nothing
-    , _larsResponseStatus = pResponseStatus_
-    }
+  ListAttacksResponse'
+  { _larsAttackSummaries = Nothing
+  , _larsNextToken = Nothing
+  , _larsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The attack information for the specified time range.
 larsAttackSummaries :: Lens' ListAttacksResponse [AttackSummary]
 larsAttackSummaries = lens _larsAttackSummaries (\ s a -> s{_larsAttackSummaries = a}) . _Default . _Coerce;
@@ -180,4 +184,4 @@
 larsResponseStatus :: Lens' ListAttacksResponse Int
 larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a});
 
-instance NFData ListAttacksResponse
+instance NFData ListAttacksResponse where
diff --git a/gen/Network/AWS/Shield/ListProtections.hs b/gen/Network/AWS/Shield/ListProtections.hs
--- a/gen/Network/AWS/Shield/ListProtections.hs
+++ b/gen/Network/AWS/Shield/ListProtections.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Shield.ListProtections
--- 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)
 --
@@ -39,19 +39,20 @@
     , lprsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Shield.Types
-import           Network.AWS.Shield.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Shield.Types
+import Network.AWS.Shield.Types.Product
 
 -- | /See:/ 'listProtections' smart constructor.
 data ListProtections = ListProtections'
-    { _lpNextToken  :: !(Maybe Text)
-    , _lpMaxResults :: !(Maybe Nat)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lpNextToken  :: !(Maybe Text)
+  , _lpMaxResults :: !(Maybe Nat)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListProtections' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -62,11 +63,9 @@
 listProtections
     :: ListProtections
 listProtections =
-    ListProtections'
-    { _lpNextToken = Nothing
-    , _lpMaxResults = Nothing
-    }
+  ListProtections' {_lpNextToken = Nothing, _lpMaxResults = Nothing}
 
+
 -- | The @ListProtectionsRequest.NextToken@ value from a previous call to @ListProtections@ . Pass null if this is the first call.
 lpNextToken :: Lens' ListProtections (Maybe Text)
 lpNextToken = lens _lpNextToken (\ s a -> s{_lpNextToken = a});
@@ -86,9 +85,9 @@
                      (x .?> "NextToken")
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListProtections
+instance Hashable ListProtections where
 
-instance NFData ListProtections
+instance NFData ListProtections where
 
 instance ToHeaders ListProtections where
         toHeaders
@@ -114,11 +113,12 @@
 
 -- | /See:/ 'listProtectionsResponse' smart constructor.
 data ListProtectionsResponse = ListProtectionsResponse'
-    { _lprsProtections    :: !(Maybe [Protection])
-    , _lprsNextToken      :: !(Maybe Text)
-    , _lprsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lprsProtections    :: !(Maybe [Protection])
+  , _lprsNextToken      :: !(Maybe Text)
+  , _lprsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListProtectionsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -132,12 +132,13 @@
     :: Int -- ^ 'lprsResponseStatus'
     -> ListProtectionsResponse
 listProtectionsResponse pResponseStatus_ =
-    ListProtectionsResponse'
-    { _lprsProtections = Nothing
-    , _lprsNextToken = Nothing
-    , _lprsResponseStatus = pResponseStatus_
-    }
+  ListProtectionsResponse'
+  { _lprsProtections = Nothing
+  , _lprsNextToken = Nothing
+  , _lprsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The array of enabled 'Protection' objects.
 lprsProtections :: Lens' ListProtectionsResponse [Protection]
 lprsProtections = lens _lprsProtections (\ s a -> s{_lprsProtections = a}) . _Default . _Coerce;
@@ -150,4 +151,4 @@
 lprsResponseStatus :: Lens' ListProtectionsResponse Int
 lprsResponseStatus = lens _lprsResponseStatus (\ s a -> s{_lprsResponseStatus = a});
 
-instance NFData ListProtectionsResponse
+instance NFData ListProtectionsResponse where
diff --git a/gen/Network/AWS/Shield/Types.hs b/gen/Network/AWS/Shield/Types.hs
--- a/gen/Network/AWS/Shield/Types.hs
+++ b/gen/Network/AWS/Shield/Types.hs
@@ -4,9 +4,9 @@
 
 -- |
 -- Module      : Network.AWS.Shield.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)
 --
@@ -103,38 +103,40 @@
     , trToExclusive
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Shield.Types.Product
-import           Network.AWS.Shield.Types.Sum
-import           Network.AWS.Sign.V4
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Shield.Types.Product
+import Network.AWS.Shield.Types.Sum
+import Network.AWS.Sign.V4
 
 -- | API version @2016-06-02@ of the Amazon Shield SDK configuration.
 shield :: Service
 shield =
-    Service
-    { _svcAbbrev = "Shield"
-    , _svcSigner = v4
-    , _svcPrefix = "shield"
-    , _svcVersion = "2016-06-02"
-    , _svcEndpoint = defaultEndpoint shield
-    , _svcTimeout = Just 70
-    , _svcCheck = statusSuccess
-    , _svcError = parseJSONError "Shield"
-    , _svcRetry = retry
-    }
+  Service
+  { _svcAbbrev = "Shield"
+  , _svcSigner = v4
+  , _svcPrefix = "shield"
+  , _svcVersion = "2016-06-02"
+  , _svcEndpoint = defaultEndpoint shield
+  , _svcTimeout = Just 70
+  , _svcCheck = statusSuccess
+  , _svcError = parseJSONError "Shield"
+  , _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"
@@ -143,61 +145,71 @@
       | has (hasStatus 509) e = Just "limit_exceeded"
       | otherwise = Nothing
 
+
 -- | Exception that indicates that the resource is invalid. You might not have access to the resource, or the resource might not exist.
 --
 --
 _InvalidResourceException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidResourceException = _ServiceError . hasCode "InvalidResourceException"
+_InvalidResourceException = _MatchServiceError shield "InvalidResourceException"
 
+
 -- | Exception that indicates that the parameters passed to the API are invalid.
 --
 --
 _InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidParameterException =
-    _ServiceError . hasCode "InvalidParameterException"
+  _MatchServiceError shield "InvalidParameterException"
 
+
 -- | Exception that indicates that the operation would exceed a limit.
 --
 --
 _LimitsExceededException :: AsError a => Getting (First ServiceError) a ServiceError
-_LimitsExceededException = _ServiceError . hasCode "LimitsExceededException"
+_LimitsExceededException = _MatchServiceError shield "LimitsExceededException"
 
+
 -- | Exception that indicates that a problem occurred with the service infrastructure. You can retry the request.
 --
 --
 _InternalErrorException :: AsError a => Getting (First ServiceError) a ServiceError
-_InternalErrorException = _ServiceError . hasCode "InternalErrorException"
+_InternalErrorException = _MatchServiceError shield "InternalErrorException"
 
+
 -- | Exception indicating the specified resource already exists.
 --
 --
 _ResourceAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError
 _ResourceAlreadyExistsException =
-    _ServiceError . hasCode "ResourceAlreadyExistsException"
+  _MatchServiceError shield "ResourceAlreadyExistsException"
 
+
 -- | Exception that indicates that the protection state has been modified by another client. You can retry the request.
 --
 --
 _OptimisticLockException :: AsError a => Getting (First ServiceError) a ServiceError
-_OptimisticLockException = _ServiceError . hasCode "OptimisticLockException"
+_OptimisticLockException = _MatchServiceError shield "OptimisticLockException"
 
+
 -- | Exception that indicates that the operation would not cause any change to occur.
 --
 --
 _InvalidOperationException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidOperationException =
-    _ServiceError . hasCode "InvalidOperationException"
+  _MatchServiceError shield "InvalidOperationException"
 
+
 -- | Exception that indicates that the subscription has been modified by another client. You can retry the request.
 --
 --
 _LockedSubscriptionException :: AsError a => Getting (First ServiceError) a ServiceError
 _LockedSubscriptionException =
-    _ServiceError . hasCode "LockedSubscriptionException"
+  _MatchServiceError shield "LockedSubscriptionException"
 
+
 -- | Exception indicating the specified resource does not exist.
 --
 --
 _ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
 _ResourceNotFoundException =
-    _ServiceError . hasCode "ResourceNotFoundException"
+  _MatchServiceError shield "ResourceNotFoundException"
+
diff --git a/gen/Network/AWS/Shield/Types/Product.hs b/gen/Network/AWS/Shield/Types/Product.hs
--- a/gen/Network/AWS/Shield/Types/Product.hs
+++ b/gen/Network/AWS/Shield/Types/Product.hs
@@ -9,17 +9,17 @@
 
 -- |
 -- Module      : Network.AWS.Shield.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.Shield.Types.Product where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Shield.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Shield.Types.Sum
 
 -- | The details of a DDoS attack.
 --
@@ -27,15 +27,16 @@
 --
 -- /See:/ 'attackDetail' smart constructor.
 data AttackDetail = AttackDetail'
-    { _adAttackId       :: !(Maybe Text)
-    , _adStartTime      :: !(Maybe POSIX)
-    , _adSubResources   :: !(Maybe [SubResourceSummary])
-    , _adMitigations    :: !(Maybe [Mitigation])
-    , _adAttackCounters :: !(Maybe [SummarizedCounter])
-    , _adResourceARN    :: !(Maybe Text)
-    , _adEndTime        :: !(Maybe POSIX)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _adAttackId       :: !(Maybe Text)
+  , _adStartTime      :: !(Maybe POSIX)
+  , _adSubResources   :: !(Maybe [SubResourceSummary])
+  , _adMitigations    :: !(Maybe [Mitigation])
+  , _adAttackCounters :: !(Maybe [SummarizedCounter])
+  , _adResourceARN    :: !(Maybe Text)
+  , _adEndTime        :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AttackDetail' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -56,16 +57,17 @@
 attackDetail
     :: AttackDetail
 attackDetail =
-    AttackDetail'
-    { _adAttackId = Nothing
-    , _adStartTime = Nothing
-    , _adSubResources = Nothing
-    , _adMitigations = Nothing
-    , _adAttackCounters = Nothing
-    , _adResourceARN = Nothing
-    , _adEndTime = Nothing
-    }
+  AttackDetail'
+  { _adAttackId = Nothing
+  , _adStartTime = Nothing
+  , _adSubResources = Nothing
+  , _adMitigations = Nothing
+  , _adAttackCounters = Nothing
+  , _adResourceARN = Nothing
+  , _adEndTime = Nothing
+  }
 
+
 -- | The unique identifier (ID) of the attack.
 adAttackId :: Lens' AttackDetail (Maybe Text)
 adAttackId = lens _adAttackId (\ s a -> s{_adAttackId = a});
@@ -106,9 +108,9 @@
                      <*> (x .:? "ResourceArn")
                      <*> (x .:? "EndTime"))
 
-instance Hashable AttackDetail
+instance Hashable AttackDetail where
 
-instance NFData AttackDetail
+instance NFData AttackDetail where
 
 -- | Summarizes all DDoS attacks for a specified time period.
 --
@@ -116,13 +118,14 @@
 --
 -- /See:/ 'attackSummary' smart constructor.
 data AttackSummary = AttackSummary'
-    { _asAttackVectors :: !(Maybe [AttackVectorDescription])
-    , _asAttackId      :: !(Maybe Text)
-    , _asStartTime     :: !(Maybe POSIX)
-    , _asResourceARN   :: !(Maybe Text)
-    , _asEndTime       :: !(Maybe POSIX)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _asAttackVectors :: !(Maybe [AttackVectorDescription])
+  , _asAttackId      :: !(Maybe Text)
+  , _asStartTime     :: !(Maybe POSIX)
+  , _asResourceARN   :: !(Maybe Text)
+  , _asEndTime       :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AttackSummary' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -139,14 +142,15 @@
 attackSummary
     :: AttackSummary
 attackSummary =
-    AttackSummary'
-    { _asAttackVectors = Nothing
-    , _asAttackId = Nothing
-    , _asStartTime = Nothing
-    , _asResourceARN = Nothing
-    , _asEndTime = Nothing
-    }
+  AttackSummary'
+  { _asAttackVectors = Nothing
+  , _asAttackId = Nothing
+  , _asStartTime = Nothing
+  , _asResourceARN = Nothing
+  , _asEndTime = Nothing
+  }
 
+
 -- | The list of attacks for a specified time period.
 asAttackVectors :: Lens' AttackSummary [AttackVectorDescription]
 asAttackVectors = lens _asAttackVectors (\ s a -> s{_asAttackVectors = a}) . _Default . _Coerce;
@@ -178,9 +182,9 @@
                      <*> (x .:? "ResourceArn")
                      <*> (x .:? "EndTime"))
 
-instance Hashable AttackSummary
+instance Hashable AttackSummary where
 
-instance NFData AttackSummary
+instance NFData AttackSummary where
 
 -- | Describes the attack.
 --
@@ -188,9 +192,10 @@
 --
 -- /See:/ 'attackVectorDescription' smart constructor.
 newtype AttackVectorDescription = AttackVectorDescription'
-    { _avdVectorType :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _avdVectorType :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'AttackVectorDescription' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -200,10 +205,9 @@
     :: Text -- ^ 'avdVectorType'
     -> AttackVectorDescription
 attackVectorDescription pVectorType_ =
-    AttackVectorDescription'
-    { _avdVectorType = pVectorType_
-    }
+  AttackVectorDescription' {_avdVectorType = pVectorType_}
 
+
 -- | The attack type, for example, SNMP reflection or SYN flood.
 avdVectorType :: Lens' AttackVectorDescription Text
 avdVectorType = lens _avdVectorType (\ s a -> s{_avdVectorType = a});
@@ -214,9 +218,9 @@
               (\ x ->
                  AttackVectorDescription' <$> (x .: "VectorType"))
 
-instance Hashable AttackVectorDescription
+instance Hashable AttackVectorDescription where
 
-instance NFData AttackVectorDescription
+instance NFData AttackVectorDescription where
 
 -- | The mitigation applied to a DDoS attack.
 --
@@ -224,9 +228,10 @@
 --
 -- /See:/ 'mitigation' smart constructor.
 newtype Mitigation = Mitigation'
-    { _mMitigationName :: Maybe Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _mMitigationName :: Maybe Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Mitigation' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -234,11 +239,9 @@
 -- * 'mMitigationName' - The name of the mitigation taken for this attack.
 mitigation
     :: Mitigation
-mitigation =
-    Mitigation'
-    { _mMitigationName = Nothing
-    }
+mitigation = Mitigation' {_mMitigationName = Nothing}
 
+
 -- | The name of the mitigation taken for this attack.
 mMitigationName :: Lens' Mitigation (Maybe Text)
 mMitigationName = lens _mMitigationName (\ s a -> s{_mMitigationName = a});
@@ -248,9 +251,9 @@
           = withObject "Mitigation"
               (\ x -> Mitigation' <$> (x .:? "MitigationName"))
 
-instance Hashable Mitigation
+instance Hashable Mitigation where
 
-instance NFData Mitigation
+instance NFData Mitigation where
 
 -- | An object that represents a resource that is under DDoS protection.
 --
@@ -258,11 +261,12 @@
 --
 -- /See:/ 'protection' smart constructor.
 data Protection = Protection'
-    { _pResourceARN :: !(Maybe Text)
-    , _pName        :: !(Maybe Text)
-    , _pId          :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _pResourceARN :: !(Maybe Text)
+  , _pName        :: !(Maybe Text)
+  , _pId          :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Protection' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -275,12 +279,9 @@
 protection
     :: Protection
 protection =
-    Protection'
-    { _pResourceARN = Nothing
-    , _pName = Nothing
-    , _pId = Nothing
-    }
+  Protection' {_pResourceARN = Nothing, _pName = Nothing, _pId = Nothing}
 
+
 -- | The ARN (Amazon Resource Name) of the AWS resource that is protected.
 pResourceARN :: Lens' Protection (Maybe Text)
 pResourceARN = lens _pResourceARN (\ s a -> s{_pResourceARN = a});
@@ -301,9 +302,9 @@
                    (x .:? "ResourceArn") <*> (x .:? "Name") <*>
                      (x .:? "Id"))
 
-instance Hashable Protection
+instance Hashable Protection where
 
-instance NFData Protection
+instance NFData Protection where
 
 -- | The attack information for the specified SubResource.
 --
@@ -311,12 +312,13 @@
 --
 -- /See:/ 'subResourceSummary' smart constructor.
 data SubResourceSummary = SubResourceSummary'
-    { _srsCounters      :: !(Maybe [SummarizedCounter])
-    , _srsAttackVectors :: !(Maybe [SummarizedAttackVector])
-    , _srsId            :: !(Maybe Text)
-    , _srsType          :: !(Maybe SubResourceType)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _srsCounters      :: !(Maybe [SummarizedCounter])
+  , _srsAttackVectors :: !(Maybe [SummarizedAttackVector])
+  , _srsId            :: !(Maybe Text)
+  , _srsType          :: !(Maybe SubResourceType)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'SubResourceSummary' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -331,13 +333,14 @@
 subResourceSummary
     :: SubResourceSummary
 subResourceSummary =
-    SubResourceSummary'
-    { _srsCounters = Nothing
-    , _srsAttackVectors = Nothing
-    , _srsId = Nothing
-    , _srsType = Nothing
-    }
+  SubResourceSummary'
+  { _srsCounters = Nothing
+  , _srsAttackVectors = Nothing
+  , _srsId = Nothing
+  , _srsType = Nothing
+  }
 
+
 -- | The counters that describe the details of the attack.
 srsCounters :: Lens' SubResourceSummary [SummarizedCounter]
 srsCounters = lens _srsCounters (\ s a -> s{_srsCounters = a}) . _Default . _Coerce;
@@ -364,9 +367,9 @@
                      <*> (x .:? "Id")
                      <*> (x .:? "Type"))
 
-instance Hashable SubResourceSummary
+instance Hashable SubResourceSummary where
 
-instance NFData SubResourceSummary
+instance NFData SubResourceSummary where
 
 -- | Information about the AWS Shield Advanced subscription for an account.
 --
@@ -374,10 +377,11 @@
 --
 -- /See:/ 'subscription' smart constructor.
 data Subscription = Subscription'
-    { _sTimeCommitmentInSeconds :: !(Maybe Nat)
-    , _sStartTime               :: !(Maybe POSIX)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sTimeCommitmentInSeconds :: !(Maybe Nat)
+  , _sStartTime               :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Subscription' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -388,11 +392,9 @@
 subscription
     :: Subscription
 subscription =
-    Subscription'
-    { _sTimeCommitmentInSeconds = Nothing
-    , _sStartTime = Nothing
-    }
+  Subscription' {_sTimeCommitmentInSeconds = Nothing, _sStartTime = Nothing}
 
+
 -- | The length, in seconds, of the AWS Shield Advanced subscription for the account.
 sTimeCommitmentInSeconds :: Lens' Subscription (Maybe Natural)
 sTimeCommitmentInSeconds = lens _sTimeCommitmentInSeconds (\ s a -> s{_sTimeCommitmentInSeconds = a}) . mapping _Nat;
@@ -409,9 +411,9 @@
                    (x .:? "TimeCommitmentInSeconds") <*>
                      (x .:? "StartTime"))
 
-instance Hashable Subscription
+instance Hashable Subscription where
 
-instance NFData Subscription
+instance NFData Subscription where
 
 -- | A summary of information about the attack.
 --
@@ -419,10 +421,11 @@
 --
 -- /See:/ 'summarizedAttackVector' smart constructor.
 data SummarizedAttackVector = SummarizedAttackVector'
-    { _savVectorCounters :: !(Maybe [SummarizedCounter])
-    , _savVectorType     :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _savVectorCounters :: !(Maybe [SummarizedCounter])
+  , _savVectorType     :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'SummarizedAttackVector' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -434,11 +437,10 @@
     :: Text -- ^ 'savVectorType'
     -> SummarizedAttackVector
 summarizedAttackVector pVectorType_ =
-    SummarizedAttackVector'
-    { _savVectorCounters = Nothing
-    , _savVectorType = pVectorType_
-    }
+  SummarizedAttackVector'
+  {_savVectorCounters = Nothing, _savVectorType = pVectorType_}
 
+
 -- | The list of counters that describe the details of the attack.
 savVectorCounters :: Lens' SummarizedAttackVector [SummarizedCounter]
 savVectorCounters = lens _savVectorCounters (\ s a -> s{_savVectorCounters = a}) . _Default . _Coerce;
@@ -455,9 +457,9 @@
                    (x .:? "VectorCounters" .!= mempty) <*>
                      (x .: "VectorType"))
 
-instance Hashable SummarizedAttackVector
+instance Hashable SummarizedAttackVector where
 
-instance NFData SummarizedAttackVector
+instance NFData SummarizedAttackVector where
 
 -- | The counter that describes a DDoS attack.
 --
@@ -465,14 +467,15 @@
 --
 -- /See:/ 'summarizedCounter' smart constructor.
 data SummarizedCounter = SummarizedCounter'
-    { _scMax     :: !(Maybe Double)
-    , _scAverage :: !(Maybe Double)
-    , _scN       :: !(Maybe Int)
-    , _scName    :: !(Maybe Text)
-    , _scSum     :: !(Maybe Double)
-    , _scUnit    :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _scMax     :: !(Maybe Double)
+  , _scAverage :: !(Maybe Double)
+  , _scN       :: !(Maybe Int)
+  , _scName    :: !(Maybe Text)
+  , _scSum     :: !(Maybe Double)
+  , _scUnit    :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'SummarizedCounter' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -491,15 +494,16 @@
 summarizedCounter
     :: SummarizedCounter
 summarizedCounter =
-    SummarizedCounter'
-    { _scMax = Nothing
-    , _scAverage = Nothing
-    , _scN = Nothing
-    , _scName = Nothing
-    , _scSum = Nothing
-    , _scUnit = Nothing
-    }
+  SummarizedCounter'
+  { _scMax = Nothing
+  , _scAverage = Nothing
+  , _scN = Nothing
+  , _scName = Nothing
+  , _scSum = Nothing
+  , _scUnit = Nothing
+  }
 
+
 -- | The maximum value of the counter for a specified time period.
 scMax :: Lens' SummarizedCounter (Maybe Double)
 scMax = lens _scMax (\ s a -> s{_scMax = a});
@@ -534,9 +538,9 @@
                      <*> (x .:? "Sum")
                      <*> (x .:? "Unit"))
 
-instance Hashable SummarizedCounter
+instance Hashable SummarizedCounter where
 
-instance NFData SummarizedCounter
+instance NFData SummarizedCounter where
 
 -- | The time range.
 --
@@ -544,10 +548,11 @@
 --
 -- /See:/ 'timeRange' smart constructor.
 data TimeRange = TimeRange'
-    { _trFromInclusive :: !(Maybe POSIX)
-    , _trToExclusive   :: !(Maybe POSIX)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _trFromInclusive :: !(Maybe POSIX)
+  , _trToExclusive   :: !(Maybe POSIX)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'TimeRange' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -557,12 +562,9 @@
 -- * 'trToExclusive' - The end time, in the format 2016-12-16T15:50Z.
 timeRange
     :: TimeRange
-timeRange =
-    TimeRange'
-    { _trFromInclusive = Nothing
-    , _trToExclusive = Nothing
-    }
+timeRange = TimeRange' {_trFromInclusive = Nothing, _trToExclusive = Nothing}
 
+
 -- | The start time, in the format 2016-12-16T13:50Z.
 trFromInclusive :: Lens' TimeRange (Maybe UTCTime)
 trFromInclusive = lens _trFromInclusive (\ s a -> s{_trFromInclusive = a}) . mapping _Time;
@@ -571,9 +573,9 @@
 trToExclusive :: Lens' TimeRange (Maybe UTCTime)
 trToExclusive = lens _trToExclusive (\ s a -> s{_trToExclusive = a}) . mapping _Time;
 
-instance Hashable TimeRange
+instance Hashable TimeRange where
 
-instance NFData TimeRange
+instance NFData TimeRange where
 
 instance ToJSON TimeRange where
         toJSON TimeRange'{..}
diff --git a/gen/Network/AWS/Shield/Types/Sum.hs b/gen/Network/AWS/Shield/Types/Sum.hs
--- a/gen/Network/AWS/Shield/Types/Sum.hs
+++ b/gen/Network/AWS/Shield/Types/Sum.hs
@@ -9,20 +9,21 @@
 
 -- |
 -- Module      : Network.AWS.Shield.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.Shield.Types.Sum where
 
-import           Network.AWS.Prelude
+import Network.AWS.Prelude
 
 data SubResourceType
-    = IP
-    | URL
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = IP
+  | URL
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
 
 instance FromText SubResourceType where
     parser = takeLowerText >>= \case
diff --git a/gen/Network/AWS/Shield/Waiters.hs b/gen/Network/AWS/Shield/Waiters.hs
--- a/gen/Network/AWS/Shield/Waiters.hs
+++ b/gen/Network/AWS/Shield/Waiters.hs
@@ -7,15 +7,15 @@
 
 -- |
 -- Module      : Network.AWS.Shield.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.Shield.Waiters where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Shield.Types
-import           Network.AWS.Waiter
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Shield.Types
+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/Shield.hs b/test/Test/AWS/Gen/Shield.hs
--- a/test/Test/AWS/Gen/Shield.hs
+++ b/test/Test/AWS/Gen/Shield.hs
@@ -5,20 +5,20 @@
 
 -- |
 -- Module      : Test.AWS.Gen.Shield
--- 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.Shield where
 
 import Data.Proxy
+import Network.AWS.Shield
 import Test.AWS.Fixture
 import Test.AWS.Prelude
-import Test.Tasty
-import Network.AWS.Shield
 import Test.AWS.Shield.Internal
+import Test.Tasty
 
 -- Auto-generated: the actual test selection needs to be manually placed into
 -- the top-level so that real test data can be incrementally added.
