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-snowball.cabal b/amazonka-snowball.cabal
--- a/amazonka-snowball.cabal
+++ b/amazonka-snowball.cabal
@@ -1,13 +1,13 @@
 name:                  amazonka-snowball
-version:               1.4.5
+version:               1.5.0
 synopsis:              Amazon Import/Export Snowball 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-snowball
 
 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.Snowball
@@ -65,7 +70,7 @@
         , Network.AWS.Snowball.Types.Sum
 
     build-depends:
-          amazonka-core == 1.4.5.*
+          amazonka-core == 1.5.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-snowball-test
@@ -85,9 +90,9 @@
         , Test.AWS.Snowball.Internal
 
     build-depends:
-          amazonka-core == 1.4.5.*
-        , amazonka-test == 1.4.5.*
-        , amazonka-snowball == 1.4.5.*
+          amazonka-core == 1.5.0.*
+        , amazonka-test == 1.5.0.*
+        , amazonka-snowball
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/Snowball.hs b/gen/Network/AWS/Snowball.hs
--- a/gen/Network/AWS/Snowball.hs
+++ b/gen/Network/AWS/Snowball.hs
@@ -5,9 +5,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball
--- 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,6 +37,9 @@
     -- ** InvalidInputCombinationException
     , _InvalidInputCombinationException
 
+    -- ** InvalidNextTokenException
+    , _InvalidNextTokenException
+
     -- ** InvalidAddressException
     , _InvalidAddressException
 
@@ -61,7 +64,7 @@
     -- ** GetSnowballUsage
     , module Network.AWS.Snowball.GetSnowballUsage
 
-    -- ** DescribeAddresses
+    -- ** DescribeAddresses (Paginated)
     , module Network.AWS.Snowball.DescribeAddresses
 
     -- ** UpdateCluster
@@ -76,7 +79,7 @@
     -- ** CreateCluster
     , module Network.AWS.Snowball.CreateCluster
 
-    -- ** ListJobs
+    -- ** ListJobs (Paginated)
     , module Network.AWS.Snowball.ListJobs
 
     -- ** UpdateJob
@@ -123,6 +126,7 @@
     -- ** Address
     , Address
     , address
+    , aIsRestricted
     , aStreet3
     , aLandmark
     , aPostalCode
@@ -152,6 +156,7 @@
     , cmKMSKeyARN
     , cmClusterState
     , cmNotification
+    , cmForwardingAddressId
     , cmAddressId
     , cmSnowballType
     , cmShippingOption
@@ -201,6 +206,7 @@
     , jmJobLogInfo
     , jmNotification
     , jmJobState
+    , jmForwardingAddressId
     , jmShippingDetails
     , jmAddressId
     , jmSnowballType
@@ -257,25 +263,25 @@
     , sdInboundShipment
     ) where
 
-import           Network.AWS.Snowball.CancelCluster
-import           Network.AWS.Snowball.CancelJob
-import           Network.AWS.Snowball.CreateAddress
-import           Network.AWS.Snowball.CreateCluster
-import           Network.AWS.Snowball.CreateJob
-import           Network.AWS.Snowball.DescribeAddress
-import           Network.AWS.Snowball.DescribeAddresses
-import           Network.AWS.Snowball.DescribeCluster
-import           Network.AWS.Snowball.DescribeJob
-import           Network.AWS.Snowball.GetJobManifest
-import           Network.AWS.Snowball.GetJobUnlockCode
-import           Network.AWS.Snowball.GetSnowballUsage
-import           Network.AWS.Snowball.ListClusterJobs
-import           Network.AWS.Snowball.ListClusters
-import           Network.AWS.Snowball.ListJobs
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.UpdateCluster
-import           Network.AWS.Snowball.UpdateJob
-import           Network.AWS.Snowball.Waiters
+import Network.AWS.Snowball.CancelCluster
+import Network.AWS.Snowball.CancelJob
+import Network.AWS.Snowball.CreateAddress
+import Network.AWS.Snowball.CreateCluster
+import Network.AWS.Snowball.CreateJob
+import Network.AWS.Snowball.DescribeAddress
+import Network.AWS.Snowball.DescribeAddresses
+import Network.AWS.Snowball.DescribeCluster
+import Network.AWS.Snowball.DescribeJob
+import Network.AWS.Snowball.GetJobManifest
+import Network.AWS.Snowball.GetJobUnlockCode
+import Network.AWS.Snowball.GetSnowballUsage
+import Network.AWS.Snowball.ListClusterJobs
+import Network.AWS.Snowball.ListClusters
+import Network.AWS.Snowball.ListJobs
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.UpdateCluster
+import Network.AWS.Snowball.UpdateJob
+import Network.AWS.Snowball.Waiters
 
 {- $errors
 Error matchers are designed for use with the functions provided by
diff --git a/gen/Network/AWS/Snowball/CancelCluster.hs b/gen/Network/AWS/Snowball/CancelCluster.hs
--- a/gen/Network/AWS/Snowball/CancelCluster.hs
+++ b/gen/Network/AWS/Snowball/CancelCluster.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.CancelCluster
--- 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 @@
     , ccrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'cancelCluster' smart constructor.
 newtype CancelCluster = CancelCluster'
-    { _ccClusterId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ccClusterId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CancelCluster' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -56,11 +57,9 @@
 cancelCluster
     :: Text -- ^ 'ccClusterId'
     -> CancelCluster
-cancelCluster pClusterId_ =
-    CancelCluster'
-    { _ccClusterId = pClusterId_
-    }
+cancelCluster pClusterId_ = CancelCluster' {_ccClusterId = pClusterId_}
 
+
 -- | The 39-character ID for the cluster that you want to cancel, for example @CID123e4567-e89b-12d3-a456-426655440000@ .
 ccClusterId :: Lens' CancelCluster Text
 ccClusterId = lens _ccClusterId (\ s a -> s{_ccClusterId = a});
@@ -73,9 +72,9 @@
               (\ s h x ->
                  CancelClusterResponse' <$> (pure (fromEnum s)))
 
-instance Hashable CancelCluster
+instance Hashable CancelCluster where
 
-instance NFData CancelCluster
+instance NFData CancelCluster where
 
 instance ToHeaders CancelCluster where
         toHeaders
@@ -100,9 +99,10 @@
 
 -- | /See:/ 'cancelClusterResponse' smart constructor.
 newtype CancelClusterResponse = CancelClusterResponse'
-    { _ccrsResponseStatus :: Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ccrsResponseStatus :: Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CancelClusterResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -112,12 +112,11 @@
     :: Int -- ^ 'ccrsResponseStatus'
     -> CancelClusterResponse
 cancelClusterResponse pResponseStatus_ =
-    CancelClusterResponse'
-    { _ccrsResponseStatus = pResponseStatus_
-    }
+  CancelClusterResponse' {_ccrsResponseStatus = pResponseStatus_}
 
+
 -- | -- | The response status code.
 ccrsResponseStatus :: Lens' CancelClusterResponse Int
 ccrsResponseStatus = lens _ccrsResponseStatus (\ s a -> s{_ccrsResponseStatus = a});
 
-instance NFData CancelClusterResponse
+instance NFData CancelClusterResponse where
diff --git a/gen/Network/AWS/Snowball/CancelJob.hs b/gen/Network/AWS/Snowball/CancelJob.hs
--- a/gen/Network/AWS/Snowball/CancelJob.hs
+++ b/gen/Network/AWS/Snowball/CancelJob.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.CancelJob
--- 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 @@
     , crsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'cancelJob' smart constructor.
 newtype CancelJob = CancelJob'
-    { _cjJobId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cjJobId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CancelJob' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -56,11 +57,9 @@
 cancelJob
     :: Text -- ^ 'cjJobId'
     -> CancelJob
-cancelJob pJobId_ =
-    CancelJob'
-    { _cjJobId = pJobId_
-    }
+cancelJob pJobId_ = CancelJob' {_cjJobId = pJobId_}
 
+
 -- | The 39-character job ID for the job that you want to cancel, for example @JID123e4567-e89b-12d3-a456-426655440000@ .
 cjJobId :: Lens' CancelJob Text
 cjJobId = lens _cjJobId (\ s a -> s{_cjJobId = a});
@@ -73,9 +72,9 @@
               (\ s h x ->
                  CancelJobResponse' <$> (pure (fromEnum s)))
 
-instance Hashable CancelJob
+instance Hashable CancelJob where
 
-instance NFData CancelJob
+instance NFData CancelJob where
 
 instance ToHeaders CancelJob where
         toHeaders
@@ -99,9 +98,10 @@
 
 -- | /See:/ 'cancelJobResponse' smart constructor.
 newtype CancelJobResponse = CancelJobResponse'
-    { _crsResponseStatus :: Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _crsResponseStatus :: Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CancelJobResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -111,12 +111,11 @@
     :: Int -- ^ 'crsResponseStatus'
     -> CancelJobResponse
 cancelJobResponse pResponseStatus_ =
-    CancelJobResponse'
-    { _crsResponseStatus = pResponseStatus_
-    }
+  CancelJobResponse' {_crsResponseStatus = pResponseStatus_}
 
+
 -- | -- | The response status code.
 crsResponseStatus :: Lens' CancelJobResponse Int
 crsResponseStatus = lens _crsResponseStatus (\ s a -> s{_crsResponseStatus = a});
 
-instance NFData CancelJobResponse
+instance NFData CancelJobResponse where
diff --git a/gen/Network/AWS/Snowball/CreateAddress.hs b/gen/Network/AWS/Snowball/CreateAddress.hs
--- a/gen/Network/AWS/Snowball/CreateAddress.hs
+++ b/gen/Network/AWS/Snowball/CreateAddress.hs
@@ -12,17 +12,15 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.CreateAddress
--- 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)
 --
--- Creates an address for a Snowball to be shipped to.
+-- Creates an address for a Snowball to be shipped to. In most regions, addresses are validated at the time of creation. The address you provide must be located within the serviceable area of your region. If the address is invalid or unsupported, then an exception is thrown.
 --
 --
--- Addresses are validated at the time of creation. The address you provide must be located within the serviceable area of your region. If the address is invalid or unsupported, then an exception is thrown.
---
 module Network.AWS.Snowball.CreateAddress
     (
     -- * Creating a Request
@@ -39,18 +37,19 @@
     , carsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'createAddress' smart constructor.
 newtype CreateAddress = CreateAddress'
-    { _caAddress :: Address
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _caAddress :: Address
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateAddress' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -59,11 +58,9 @@
 createAddress
     :: Address -- ^ 'caAddress'
     -> CreateAddress
-createAddress pAddress_ =
-    CreateAddress'
-    { _caAddress = pAddress_
-    }
+createAddress pAddress_ = CreateAddress' {_caAddress = pAddress_}
 
+
 -- | The address that you want the Snowball shipped to.
 caAddress :: Lens' CreateAddress Address
 caAddress = lens _caAddress (\ s a -> s{_caAddress = a});
@@ -77,9 +74,9 @@
                  CreateAddressResponse' <$>
                    (x .?> "AddressId") <*> (pure (fromEnum s)))
 
-instance Hashable CreateAddress
+instance Hashable CreateAddress where
 
-instance NFData CreateAddress
+instance NFData CreateAddress where
 
 instance ToHeaders CreateAddress where
         toHeaders
@@ -103,10 +100,11 @@
 
 -- | /See:/ 'createAddressResponse' smart constructor.
 data CreateAddressResponse = CreateAddressResponse'
-    { _carsAddressId      :: !(Maybe Text)
-    , _carsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _carsAddressId      :: !(Maybe Text)
+  , _carsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateAddressResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -118,11 +116,10 @@
     :: Int -- ^ 'carsResponseStatus'
     -> CreateAddressResponse
 createAddressResponse pResponseStatus_ =
-    CreateAddressResponse'
-    { _carsAddressId = Nothing
-    , _carsResponseStatus = pResponseStatus_
-    }
+  CreateAddressResponse'
+  {_carsAddressId = Nothing, _carsResponseStatus = pResponseStatus_}
 
+
 -- | The automatically generated ID for a specific address. You'll use this ID when you create a job to specify which address you want the Snowball for that job shipped to.
 carsAddressId :: Lens' CreateAddressResponse (Maybe Text)
 carsAddressId = lens _carsAddressId (\ s a -> s{_carsAddressId = a});
@@ -131,4 +128,4 @@
 carsResponseStatus :: Lens' CreateAddressResponse Int
 carsResponseStatus = lens _carsResponseStatus (\ s a -> s{_carsResponseStatus = a});
 
-instance NFData CreateAddressResponse
+instance NFData CreateAddressResponse where
diff --git a/gen/Network/AWS/Snowball/CreateCluster.hs b/gen/Network/AWS/Snowball/CreateCluster.hs
--- a/gen/Network/AWS/Snowball/CreateCluster.hs
+++ b/gen/Network/AWS/Snowball/CreateCluster.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.CreateCluster
--- 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)
 --
@@ -29,6 +29,7 @@
     -- * Request Lenses
     , ccKMSKeyARN
     , ccNotification
+    , ccForwardingAddressId
     , ccSnowballType
     , ccDescription
     , ccJobType
@@ -45,26 +46,28 @@
     , crersResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'createCluster' smart constructor.
 data CreateCluster = CreateCluster'
-    { _ccKMSKeyARN      :: !(Maybe Text)
-    , _ccNotification   :: !(Maybe Notification)
-    , _ccSnowballType   :: !(Maybe SnowballType)
-    , _ccDescription    :: !(Maybe Text)
-    , _ccJobType        :: !JobType
-    , _ccResources      :: !JobResource
-    , _ccAddressId      :: !Text
-    , _ccRoleARN        :: !Text
-    , _ccShippingOption :: !ShippingOption
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ccKMSKeyARN           :: !(Maybe Text)
+  , _ccNotification        :: !(Maybe Notification)
+  , _ccForwardingAddressId :: !(Maybe Text)
+  , _ccSnowballType        :: !(Maybe SnowballType)
+  , _ccDescription         :: !(Maybe Text)
+  , _ccJobType             :: !JobType
+  , _ccResources           :: !JobResource
+  , _ccAddressId           :: !Text
+  , _ccRoleARN             :: !Text
+  , _ccShippingOption      :: !ShippingOption
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateCluster' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -73,6 +76,8 @@
 --
 -- * 'ccNotification' - The Amazon Simple Notification Service (Amazon SNS) notification settings for this cluster.
 --
+-- * 'ccForwardingAddressId' - The forwarding address ID for a cluster. This field is not supported in most regions.
+--
 -- * 'ccSnowballType' - The type of AWS Snowball appliance to use for this cluster. Currently, the only supported appliance type for cluster jobs is @EDGE@ .
 --
 -- * 'ccDescription' - An optional description of this specific cluster, for example @Environmental Data Cluster-01@ .
@@ -94,18 +99,20 @@
     -> ShippingOption -- ^ 'ccShippingOption'
     -> CreateCluster
 createCluster pJobType_ pResources_ pAddressId_ pRoleARN_ pShippingOption_ =
-    CreateCluster'
-    { _ccKMSKeyARN = Nothing
-    , _ccNotification = Nothing
-    , _ccSnowballType = Nothing
-    , _ccDescription = Nothing
-    , _ccJobType = pJobType_
-    , _ccResources = pResources_
-    , _ccAddressId = pAddressId_
-    , _ccRoleARN = pRoleARN_
-    , _ccShippingOption = pShippingOption_
-    }
+  CreateCluster'
+  { _ccKMSKeyARN = Nothing
+  , _ccNotification = Nothing
+  , _ccForwardingAddressId = Nothing
+  , _ccSnowballType = Nothing
+  , _ccDescription = Nothing
+  , _ccJobType = pJobType_
+  , _ccResources = pResources_
+  , _ccAddressId = pAddressId_
+  , _ccRoleARN = pRoleARN_
+  , _ccShippingOption = pShippingOption_
+  }
 
+
 -- | The @KmsKeyARN@ value that you want to associate with this cluster. @KmsKeyARN@ values are created by using the <http://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html CreateKey> API action in AWS Key Management Service (AWS KMS).
 ccKMSKeyARN :: Lens' CreateCluster (Maybe Text)
 ccKMSKeyARN = lens _ccKMSKeyARN (\ s a -> s{_ccKMSKeyARN = a});
@@ -114,6 +121,10 @@
 ccNotification :: Lens' CreateCluster (Maybe Notification)
 ccNotification = lens _ccNotification (\ s a -> s{_ccNotification = a});
 
+-- | The forwarding address ID for a cluster. This field is not supported in most regions.
+ccForwardingAddressId :: Lens' CreateCluster (Maybe Text)
+ccForwardingAddressId = lens _ccForwardingAddressId (\ s a -> s{_ccForwardingAddressId = a});
+
 -- | The type of AWS Snowball appliance to use for this cluster. Currently, the only supported appliance type for cluster jobs is @EDGE@ .
 ccSnowballType :: Lens' CreateCluster (Maybe SnowballType)
 ccSnowballType = lens _ccSnowballType (\ s a -> s{_ccSnowballType = a});
@@ -151,9 +162,9 @@
                  CreateClusterResponse' <$>
                    (x .?> "ClusterId") <*> (pure (fromEnum s)))
 
-instance Hashable CreateCluster
+instance Hashable CreateCluster where
 
-instance NFData CreateCluster
+instance NFData CreateCluster where
 
 instance ToHeaders CreateCluster where
         toHeaders
@@ -171,6 +182,8 @@
               (catMaybes
                  [("KmsKeyARN" .=) <$> _ccKMSKeyARN,
                   ("Notification" .=) <$> _ccNotification,
+                  ("ForwardingAddressId" .=) <$>
+                    _ccForwardingAddressId,
                   ("SnowballType" .=) <$> _ccSnowballType,
                   ("Description" .=) <$> _ccDescription,
                   Just ("JobType" .= _ccJobType),
@@ -187,10 +200,11 @@
 
 -- | /See:/ 'createClusterResponse' smart constructor.
 data CreateClusterResponse = CreateClusterResponse'
-    { _crersClusterId      :: !(Maybe Text)
-    , _crersResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _crersClusterId      :: !(Maybe Text)
+  , _crersResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateClusterResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -202,11 +216,10 @@
     :: Int -- ^ 'crersResponseStatus'
     -> CreateClusterResponse
 createClusterResponse pResponseStatus_ =
-    CreateClusterResponse'
-    { _crersClusterId = Nothing
-    , _crersResponseStatus = pResponseStatus_
-    }
+  CreateClusterResponse'
+  {_crersClusterId = Nothing, _crersResponseStatus = pResponseStatus_}
 
+
 -- | The automatically generated ID for a cluster.
 crersClusterId :: Lens' CreateClusterResponse (Maybe Text)
 crersClusterId = lens _crersClusterId (\ s a -> s{_crersClusterId = a});
@@ -215,4 +228,4 @@
 crersResponseStatus :: Lens' CreateClusterResponse Int
 crersResponseStatus = lens _crersResponseStatus (\ s a -> s{_crersResponseStatus = a});
 
-instance NFData CreateClusterResponse
+instance NFData CreateClusterResponse where
diff --git a/gen/Network/AWS/Snowball/CreateJob.hs b/gen/Network/AWS/Snowball/CreateJob.hs
--- a/gen/Network/AWS/Snowball/CreateJob.hs
+++ b/gen/Network/AWS/Snowball/CreateJob.hs
@@ -12,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.CreateJob
--- 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)
 --
--- Creates a job to import or export data between Amazon S3 and your on-premises data center. Your AWS account must have the right trust policies and permissions in place to create a job for Snowball. If you're creating a job for a node in a cluster, you only need to provide the @clusterId@ value; the other job attributes are inherited from the cluster. .
+-- Creates a job to import or export data between Amazon S3 and your on-premises data center. Your AWS account must have the right trust policies and permissions in place to create a job for Snowball. If you're creating a job for a node in a cluster, you only need to provide the @clusterId@ value; the other job attributes are inherited from the cluster.
 --
 --
 module Network.AWS.Snowball.CreateJob
@@ -30,6 +30,7 @@
     , cjJobType
     , cjKMSKeyARN
     , cjNotification
+    , cjForwardingAddressId
     , cjAddressId
     , cjSnowballType
     , cjShippingOption
@@ -47,28 +48,30 @@
     , cjrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'createJob' smart constructor.
 data CreateJob = CreateJob'
-    { _cjJobType                    :: !(Maybe JobType)
-    , _cjKMSKeyARN                  :: !(Maybe Text)
-    , _cjNotification               :: !(Maybe Notification)
-    , _cjAddressId                  :: !(Maybe Text)
-    , _cjSnowballType               :: !(Maybe SnowballType)
-    , _cjShippingOption             :: !(Maybe ShippingOption)
-    , _cjResources                  :: !(Maybe JobResource)
-    , _cjClusterId                  :: !(Maybe Text)
-    , _cjDescription                :: !(Maybe Text)
-    , _cjRoleARN                    :: !(Maybe Text)
-    , _cjSnowballCapacityPreference :: !(Maybe SnowballCapacity)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cjJobType                    :: !(Maybe JobType)
+  , _cjKMSKeyARN                  :: !(Maybe Text)
+  , _cjNotification               :: !(Maybe Notification)
+  , _cjForwardingAddressId        :: !(Maybe Text)
+  , _cjAddressId                  :: !(Maybe Text)
+  , _cjSnowballType               :: !(Maybe SnowballType)
+  , _cjShippingOption             :: !(Maybe ShippingOption)
+  , _cjResources                  :: !(Maybe JobResource)
+  , _cjClusterId                  :: !(Maybe Text)
+  , _cjDescription                :: !(Maybe Text)
+  , _cjRoleARN                    :: !(Maybe Text)
+  , _cjSnowballCapacityPreference :: !(Maybe SnowballCapacity)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateJob' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -79,6 +82,8 @@
 --
 -- * 'cjNotification' - Defines the Amazon Simple Notification Service (Amazon SNS) notification settings for this job.
 --
+-- * 'cjForwardingAddressId' - The forwarding address ID for a job. This field is not supported in most regions.
+--
 -- * 'cjAddressId' - The ID for the address that you want the Snowball shipped to.
 --
 -- * 'cjSnowballType' - The type of AWS Snowball appliance to use for this job. Currently, the only supported appliance type for cluster jobs is @EDGE@ .
@@ -97,20 +102,22 @@
 createJob
     :: CreateJob
 createJob =
-    CreateJob'
-    { _cjJobType = Nothing
-    , _cjKMSKeyARN = Nothing
-    , _cjNotification = Nothing
-    , _cjAddressId = Nothing
-    , _cjSnowballType = Nothing
-    , _cjShippingOption = Nothing
-    , _cjResources = Nothing
-    , _cjClusterId = Nothing
-    , _cjDescription = Nothing
-    , _cjRoleARN = Nothing
-    , _cjSnowballCapacityPreference = Nothing
-    }
+  CreateJob'
+  { _cjJobType = Nothing
+  , _cjKMSKeyARN = Nothing
+  , _cjNotification = Nothing
+  , _cjForwardingAddressId = Nothing
+  , _cjAddressId = Nothing
+  , _cjSnowballType = Nothing
+  , _cjShippingOption = Nothing
+  , _cjResources = Nothing
+  , _cjClusterId = Nothing
+  , _cjDescription = Nothing
+  , _cjRoleARN = Nothing
+  , _cjSnowballCapacityPreference = Nothing
+  }
 
+
 -- | Defines the type of job that you're creating.
 cjJobType :: Lens' CreateJob (Maybe JobType)
 cjJobType = lens _cjJobType (\ s a -> s{_cjJobType = a});
@@ -123,6 +130,10 @@
 cjNotification :: Lens' CreateJob (Maybe Notification)
 cjNotification = lens _cjNotification (\ s a -> s{_cjNotification = a});
 
+-- | The forwarding address ID for a job. This field is not supported in most regions.
+cjForwardingAddressId :: Lens' CreateJob (Maybe Text)
+cjForwardingAddressId = lens _cjForwardingAddressId (\ s a -> s{_cjForwardingAddressId = a});
+
 -- | The ID for the address that you want the Snowball shipped to.
 cjAddressId :: Lens' CreateJob (Maybe Text)
 cjAddressId = lens _cjAddressId (\ s a -> s{_cjAddressId = a});
@@ -164,9 +175,9 @@
                  CreateJobResponse' <$>
                    (x .?> "JobId") <*> (pure (fromEnum s)))
 
-instance Hashable CreateJob
+instance Hashable CreateJob where
 
-instance NFData CreateJob
+instance NFData CreateJob where
 
 instance ToHeaders CreateJob where
         toHeaders
@@ -185,6 +196,8 @@
                  [("JobType" .=) <$> _cjJobType,
                   ("KmsKeyARN" .=) <$> _cjKMSKeyARN,
                   ("Notification" .=) <$> _cjNotification,
+                  ("ForwardingAddressId" .=) <$>
+                    _cjForwardingAddressId,
                   ("AddressId" .=) <$> _cjAddressId,
                   ("SnowballType" .=) <$> _cjSnowballType,
                   ("ShippingOption" .=) <$> _cjShippingOption,
@@ -203,10 +216,11 @@
 
 -- | /See:/ 'createJobResponse' smart constructor.
 data CreateJobResponse = CreateJobResponse'
-    { _cjrsJobId          :: !(Maybe Text)
-    , _cjrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cjrsJobId          :: !(Maybe Text)
+  , _cjrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateJobResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -218,11 +232,10 @@
     :: Int -- ^ 'cjrsResponseStatus'
     -> CreateJobResponse
 createJobResponse pResponseStatus_ =
-    CreateJobResponse'
-    { _cjrsJobId = Nothing
-    , _cjrsResponseStatus = pResponseStatus_
-    }
+  CreateJobResponse'
+  {_cjrsJobId = Nothing, _cjrsResponseStatus = pResponseStatus_}
 
+
 -- | The automatically generated ID for a job, for example @JID123e4567-e89b-12d3-a456-426655440000@ .
 cjrsJobId :: Lens' CreateJobResponse (Maybe Text)
 cjrsJobId = lens _cjrsJobId (\ s a -> s{_cjrsJobId = a});
@@ -231,4 +244,4 @@
 cjrsResponseStatus :: Lens' CreateJobResponse Int
 cjrsResponseStatus = lens _cjrsResponseStatus (\ s a -> s{_cjrsResponseStatus = a});
 
-instance NFData CreateJobResponse
+instance NFData CreateJobResponse where
diff --git a/gen/Network/AWS/Snowball/DescribeAddress.hs b/gen/Network/AWS/Snowball/DescribeAddress.hs
--- a/gen/Network/AWS/Snowball/DescribeAddress.hs
+++ b/gen/Network/AWS/Snowball/DescribeAddress.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.DescribeAddress
--- 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.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'describeAddress' smart constructor.
 newtype DescribeAddress = DescribeAddress'
-    { _daAddressId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _daAddressId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeAddress' 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 @@
 describeAddress
     :: Text -- ^ 'daAddressId'
     -> DescribeAddress
-describeAddress pAddressId_ =
-    DescribeAddress'
-    { _daAddressId = pAddressId_
-    }
+describeAddress pAddressId_ = DescribeAddress' {_daAddressId = pAddressId_}
 
+
 -- | The automatically generated ID for a specific address.
 daAddressId :: Lens' DescribeAddress Text
 daAddressId = lens _daAddressId (\ s a -> s{_daAddressId = a});
@@ -75,9 +74,9 @@
                  DescribeAddressResponse' <$>
                    (x .?> "Address") <*> (pure (fromEnum s)))
 
-instance Hashable DescribeAddress
+instance Hashable DescribeAddress where
 
-instance NFData DescribeAddress
+instance NFData DescribeAddress where
 
 instance ToHeaders DescribeAddress where
         toHeaders
@@ -102,10 +101,11 @@
 
 -- | /See:/ 'describeAddressResponse' smart constructor.
 data DescribeAddressResponse = DescribeAddressResponse'
-    { _darsAddress        :: !(Maybe Address)
-    , _darsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _darsAddress        :: !(Maybe Address)
+  , _darsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeAddressResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -117,11 +117,10 @@
     :: Int -- ^ 'darsResponseStatus'
     -> DescribeAddressResponse
 describeAddressResponse pResponseStatus_ =
-    DescribeAddressResponse'
-    { _darsAddress = Nothing
-    , _darsResponseStatus = pResponseStatus_
-    }
+  DescribeAddressResponse'
+  {_darsAddress = Nothing, _darsResponseStatus = pResponseStatus_}
 
+
 -- | The address that you want the Snowball or Snowballs associated with a specific job to be shipped to.
 darsAddress :: Lens' DescribeAddressResponse (Maybe Address)
 darsAddress = lens _darsAddress (\ s a -> s{_darsAddress = a});
@@ -130,4 +129,4 @@
 darsResponseStatus :: Lens' DescribeAddressResponse Int
 darsResponseStatus = lens _darsResponseStatus (\ s a -> s{_darsResponseStatus = a});
 
-instance NFData DescribeAddressResponse
+instance NFData DescribeAddressResponse where
diff --git a/gen/Network/AWS/Snowball/DescribeAddresses.hs b/gen/Network/AWS/Snowball/DescribeAddresses.hs
--- a/gen/Network/AWS/Snowball/DescribeAddresses.hs
+++ b/gen/Network/AWS/Snowball/DescribeAddresses.hs
@@ -12,15 +12,17 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.DescribeAddresses
--- 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 specified number of @ADDRESS@ objects. Calling this API in one of the US regions will return addresses from the list of all addresses associated with this account in all US regions.
 --
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.Snowball.DescribeAddresses
     (
     -- * Creating a Request
@@ -39,19 +41,21 @@
     , drsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'describeAddresses' smart constructor.
 data DescribeAddresses = DescribeAddresses'
-    { _daNextToken  :: !(Maybe Text)
-    , _daMaxResults :: !(Maybe Nat)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _daNextToken  :: !(Maybe Text)
+  , _daMaxResults :: !(Maybe Nat)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeAddresses' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -62,11 +66,9 @@
 describeAddresses
     :: DescribeAddresses
 describeAddresses =
-    DescribeAddresses'
-    { _daNextToken = Nothing
-    , _daMaxResults = Nothing
-    }
+  DescribeAddresses' {_daNextToken = Nothing, _daMaxResults = Nothing}
 
+
 -- | HTTP requests are stateless. To identify what object comes "next" in the list of @ADDRESS@ objects, you have the option of specifying a value for @NextToken@ as the starting point for your list of returned addresses.
 daNextToken :: Lens' DescribeAddresses (Maybe Text)
 daNextToken = lens _daNextToken (\ s a -> s{_daNextToken = a});
@@ -75,6 +77,13 @@
 daMaxResults :: Lens' DescribeAddresses (Maybe Natural)
 daMaxResults = lens _daMaxResults (\ s a -> s{_daMaxResults = a}) . mapping _Nat;
 
+instance AWSPager DescribeAddresses where
+        page rq rs
+          | stop (rs ^. drsNextToken) = Nothing
+          | stop (rs ^. drsAddresses) = Nothing
+          | otherwise =
+            Just $ rq & daNextToken .~ rs ^. drsNextToken
+
 instance AWSRequest DescribeAddresses where
         type Rs DescribeAddresses = DescribeAddressesResponse
         request = postJSON snowball
@@ -86,9 +95,9 @@
                      (x .?> "NextToken")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeAddresses
+instance Hashable DescribeAddresses where
 
-instance NFData DescribeAddresses
+instance NFData DescribeAddresses where
 
 instance ToHeaders DescribeAddresses where
         toHeaders
@@ -115,11 +124,12 @@
 
 -- | /See:/ 'describeAddressesResponse' smart constructor.
 data DescribeAddressesResponse = DescribeAddressesResponse'
-    { _drsAddresses      :: !(Maybe [Address])
-    , _drsNextToken      :: !(Maybe Text)
-    , _drsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _drsAddresses      :: !(Maybe [Address])
+  , _drsNextToken      :: !(Maybe Text)
+  , _drsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeAddressesResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -133,12 +143,13 @@
     :: Int -- ^ 'drsResponseStatus'
     -> DescribeAddressesResponse
 describeAddressesResponse pResponseStatus_ =
-    DescribeAddressesResponse'
-    { _drsAddresses = Nothing
-    , _drsNextToken = Nothing
-    , _drsResponseStatus = pResponseStatus_
-    }
+  DescribeAddressesResponse'
+  { _drsAddresses = Nothing
+  , _drsNextToken = Nothing
+  , _drsResponseStatus = pResponseStatus_
+  }
 
+
 -- | The Snowball shipping addresses that were created for this account.
 drsAddresses :: Lens' DescribeAddressesResponse [Address]
 drsAddresses = lens _drsAddresses (\ s a -> s{_drsAddresses = a}) . _Default . _Coerce;
@@ -151,4 +162,4 @@
 drsResponseStatus :: Lens' DescribeAddressesResponse Int
 drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});
 
-instance NFData DescribeAddressesResponse
+instance NFData DescribeAddressesResponse where
diff --git a/gen/Network/AWS/Snowball/DescribeCluster.hs b/gen/Network/AWS/Snowball/DescribeCluster.hs
--- a/gen/Network/AWS/Snowball/DescribeCluster.hs
+++ b/gen/Network/AWS/Snowball/DescribeCluster.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.DescribeCluster
--- 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 @@
     , dcrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'describeCluster' smart constructor.
 newtype DescribeCluster = DescribeCluster'
-    { _dcClusterId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcClusterId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeCluster' 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 @@
 describeCluster
     :: Text -- ^ 'dcClusterId'
     -> DescribeCluster
-describeCluster pClusterId_ =
-    DescribeCluster'
-    { _dcClusterId = pClusterId_
-    }
+describeCluster pClusterId_ = DescribeCluster' {_dcClusterId = pClusterId_}
 
+
 -- | The automatically generated ID for a cluster.
 dcClusterId :: Lens' DescribeCluster Text
 dcClusterId = lens _dcClusterId (\ s a -> s{_dcClusterId = a});
@@ -75,9 +74,9 @@
                  DescribeClusterResponse' <$>
                    (x .?> "ClusterMetadata") <*> (pure (fromEnum s)))
 
-instance Hashable DescribeCluster
+instance Hashable DescribeCluster where
 
-instance NFData DescribeCluster
+instance NFData DescribeCluster where
 
 instance ToHeaders DescribeCluster where
         toHeaders
@@ -102,10 +101,11 @@
 
 -- | /See:/ 'describeClusterResponse' smart constructor.
 data DescribeClusterResponse = DescribeClusterResponse'
-    { _dcrsClusterMetadata :: !(Maybe ClusterMetadata)
-    , _dcrsResponseStatus  :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dcrsClusterMetadata :: !(Maybe ClusterMetadata)
+  , _dcrsResponseStatus  :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeClusterResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -117,11 +117,10 @@
     :: Int -- ^ 'dcrsResponseStatus'
     -> DescribeClusterResponse
 describeClusterResponse pResponseStatus_ =
-    DescribeClusterResponse'
-    { _dcrsClusterMetadata = Nothing
-    , _dcrsResponseStatus = pResponseStatus_
-    }
+  DescribeClusterResponse'
+  {_dcrsClusterMetadata = Nothing, _dcrsResponseStatus = pResponseStatus_}
 
+
 -- | Information about a specific cluster, including shipping information, cluster status, and other important metadata.
 dcrsClusterMetadata :: Lens' DescribeClusterResponse (Maybe ClusterMetadata)
 dcrsClusterMetadata = lens _dcrsClusterMetadata (\ s a -> s{_dcrsClusterMetadata = a});
@@ -130,4 +129,4 @@
 dcrsResponseStatus :: Lens' DescribeClusterResponse Int
 dcrsResponseStatus = lens _dcrsResponseStatus (\ s a -> s{_dcrsResponseStatus = a});
 
-instance NFData DescribeClusterResponse
+instance NFData DescribeClusterResponse where
diff --git a/gen/Network/AWS/Snowball/DescribeJob.hs b/gen/Network/AWS/Snowball/DescribeJob.hs
--- a/gen/Network/AWS/Snowball/DescribeJob.hs
+++ b/gen/Network/AWS/Snowball/DescribeJob.hs
@@ -12,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.DescribeJob
--- 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 information about a specific job including shipping information, job status, and other important metadata. .
+-- Returns information about a specific job including shipping information, job status, and other important metadata.
 --
 --
 module Network.AWS.Snowball.DescribeJob
@@ -38,18 +38,19 @@
     , djrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'describeJob' smart constructor.
 newtype DescribeJob = DescribeJob'
-    { _djJobId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _djJobId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeJob' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -58,11 +59,9 @@
 describeJob
     :: Text -- ^ 'djJobId'
     -> DescribeJob
-describeJob pJobId_ =
-    DescribeJob'
-    { _djJobId = pJobId_
-    }
+describeJob pJobId_ = DescribeJob' {_djJobId = pJobId_}
 
+
 -- | The automatically generated ID for a job, for example @JID123e4567-e89b-12d3-a456-426655440000@ .
 djJobId :: Lens' DescribeJob Text
 djJobId = lens _djJobId (\ s a -> s{_djJobId = a});
@@ -78,9 +77,9 @@
                      (x .?> "SubJobMetadata" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeJob
+instance Hashable DescribeJob where
 
-instance NFData DescribeJob
+instance NFData DescribeJob where
 
 instance ToHeaders DescribeJob where
         toHeaders
@@ -104,11 +103,12 @@
 
 -- | /See:/ 'describeJobResponse' smart constructor.
 data DescribeJobResponse = DescribeJobResponse'
-    { _djrsJobMetadata    :: !(Maybe JobMetadata)
-    , _djrsSubJobMetadata :: !(Maybe [JobMetadata])
-    , _djrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _djrsJobMetadata    :: !(Maybe JobMetadata)
+  , _djrsSubJobMetadata :: !(Maybe [JobMetadata])
+  , _djrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeJobResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -122,12 +122,13 @@
     :: Int -- ^ 'djrsResponseStatus'
     -> DescribeJobResponse
 describeJobResponse pResponseStatus_ =
-    DescribeJobResponse'
-    { _djrsJobMetadata = Nothing
-    , _djrsSubJobMetadata = Nothing
-    , _djrsResponseStatus = pResponseStatus_
-    }
+  DescribeJobResponse'
+  { _djrsJobMetadata = Nothing
+  , _djrsSubJobMetadata = Nothing
+  , _djrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Information about a specific job, including shipping information, job status, and other important metadata.
 djrsJobMetadata :: Lens' DescribeJobResponse (Maybe JobMetadata)
 djrsJobMetadata = lens _djrsJobMetadata (\ s a -> s{_djrsJobMetadata = a});
@@ -140,4 +141,4 @@
 djrsResponseStatus :: Lens' DescribeJobResponse Int
 djrsResponseStatus = lens _djrsResponseStatus (\ s a -> s{_djrsResponseStatus = a});
 
-instance NFData DescribeJobResponse
+instance NFData DescribeJobResponse where
diff --git a/gen/Network/AWS/Snowball/GetJobManifest.hs b/gen/Network/AWS/Snowball/GetJobManifest.hs
--- a/gen/Network/AWS/Snowball/GetJobManifest.hs
+++ b/gen/Network/AWS/Snowball/GetJobManifest.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.GetJobManifest
--- 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)
 --
@@ -43,18 +43,19 @@
     , gjmrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'getJobManifest' smart constructor.
 newtype GetJobManifest = GetJobManifest'
-    { _gjmJobId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gjmJobId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetJobManifest' 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 @@
 getJobManifest
     :: Text -- ^ 'gjmJobId'
     -> GetJobManifest
-getJobManifest pJobId_ =
-    GetJobManifest'
-    { _gjmJobId = pJobId_
-    }
+getJobManifest pJobId_ = GetJobManifest' {_gjmJobId = pJobId_}
 
+
 -- | The ID for a job that you want to get the manifest file for, for example @JID123e4567-e89b-12d3-a456-426655440000@ .
 gjmJobId :: Lens' GetJobManifest Text
 gjmJobId = lens _gjmJobId (\ s a -> s{_gjmJobId = a});
@@ -81,9 +80,9 @@
                  GetJobManifestResponse' <$>
                    (x .?> "ManifestURI") <*> (pure (fromEnum s)))
 
-instance Hashable GetJobManifest
+instance Hashable GetJobManifest where
 
-instance NFData GetJobManifest
+instance NFData GetJobManifest where
 
 instance ToHeaders GetJobManifest where
         toHeaders
@@ -107,10 +106,11 @@
 
 -- | /See:/ 'getJobManifestResponse' smart constructor.
 data GetJobManifestResponse = GetJobManifestResponse'
-    { _gjmrsManifestURI    :: !(Maybe Text)
-    , _gjmrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gjmrsManifestURI    :: !(Maybe Text)
+  , _gjmrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetJobManifestResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -122,11 +122,10 @@
     :: Int -- ^ 'gjmrsResponseStatus'
     -> GetJobManifestResponse
 getJobManifestResponse pResponseStatus_ =
-    GetJobManifestResponse'
-    { _gjmrsManifestURI = Nothing
-    , _gjmrsResponseStatus = pResponseStatus_
-    }
+  GetJobManifestResponse'
+  {_gjmrsManifestURI = Nothing, _gjmrsResponseStatus = pResponseStatus_}
 
+
 -- | The Amazon S3 presigned URL for the manifest file associated with the specified @JobId@ value.
 gjmrsManifestURI :: Lens' GetJobManifestResponse (Maybe Text)
 gjmrsManifestURI = lens _gjmrsManifestURI (\ s a -> s{_gjmrsManifestURI = a});
@@ -135,4 +134,4 @@
 gjmrsResponseStatus :: Lens' GetJobManifestResponse Int
 gjmrsResponseStatus = lens _gjmrsResponseStatus (\ s a -> s{_gjmrsResponseStatus = a});
 
-instance NFData GetJobManifestResponse
+instance NFData GetJobManifestResponse where
diff --git a/gen/Network/AWS/Snowball/GetJobUnlockCode.hs b/gen/Network/AWS/Snowball/GetJobUnlockCode.hs
--- a/gen/Network/AWS/Snowball/GetJobUnlockCode.hs
+++ b/gen/Network/AWS/Snowball/GetJobUnlockCode.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.GetJobUnlockCode
--- 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)
 --
@@ -41,18 +41,19 @@
     , gjucrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'getJobUnlockCode' smart constructor.
 newtype GetJobUnlockCode = GetJobUnlockCode'
-    { _gjucJobId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gjucJobId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetJobUnlockCode' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,11 +62,9 @@
 getJobUnlockCode
     :: Text -- ^ 'gjucJobId'
     -> GetJobUnlockCode
-getJobUnlockCode pJobId_ =
-    GetJobUnlockCode'
-    { _gjucJobId = pJobId_
-    }
+getJobUnlockCode pJobId_ = GetJobUnlockCode' {_gjucJobId = pJobId_}
 
+
 -- | The ID for the job that you want to get the @UnlockCode@ value for, for example @JID123e4567-e89b-12d3-a456-426655440000@ .
 gjucJobId :: Lens' GetJobUnlockCode Text
 gjucJobId = lens _gjucJobId (\ s a -> s{_gjucJobId = a});
@@ -79,9 +78,9 @@
                  GetJobUnlockCodeResponse' <$>
                    (x .?> "UnlockCode") <*> (pure (fromEnum s)))
 
-instance Hashable GetJobUnlockCode
+instance Hashable GetJobUnlockCode where
 
-instance NFData GetJobUnlockCode
+instance NFData GetJobUnlockCode where
 
 instance ToHeaders GetJobUnlockCode where
         toHeaders
@@ -105,10 +104,11 @@
 
 -- | /See:/ 'getJobUnlockCodeResponse' smart constructor.
 data GetJobUnlockCodeResponse = GetJobUnlockCodeResponse'
-    { _gjucrsUnlockCode     :: !(Maybe Text)
-    , _gjucrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gjucrsUnlockCode     :: !(Maybe Text)
+  , _gjucrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetJobUnlockCodeResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -120,11 +120,10 @@
     :: Int -- ^ 'gjucrsResponseStatus'
     -> GetJobUnlockCodeResponse
 getJobUnlockCodeResponse pResponseStatus_ =
-    GetJobUnlockCodeResponse'
-    { _gjucrsUnlockCode = Nothing
-    , _gjucrsResponseStatus = pResponseStatus_
-    }
+  GetJobUnlockCodeResponse'
+  {_gjucrsUnlockCode = Nothing, _gjucrsResponseStatus = pResponseStatus_}
 
+
 -- | The @UnlockCode@ value for the specified job. The @UnlockCode@ value can be accessed for up to 90 days after the job has been created.
 gjucrsUnlockCode :: Lens' GetJobUnlockCodeResponse (Maybe Text)
 gjucrsUnlockCode = lens _gjucrsUnlockCode (\ s a -> s{_gjucrsUnlockCode = a});
@@ -133,4 +132,4 @@
 gjucrsResponseStatus :: Lens' GetJobUnlockCodeResponse Int
 gjucrsResponseStatus = lens _gjucrsResponseStatus (\ s a -> s{_gjucrsResponseStatus = a});
 
-instance NFData GetJobUnlockCodeResponse
+instance NFData GetJobUnlockCodeResponse where
diff --git a/gen/Network/AWS/Snowball/GetSnowballUsage.hs b/gen/Network/AWS/Snowball/GetSnowballUsage.hs
--- a/gen/Network/AWS/Snowball/GetSnowballUsage.hs
+++ b/gen/Network/AWS/Snowball/GetSnowballUsage.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.GetSnowballUsage
--- 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,24 +38,26 @@
     , gsursResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'getSnowballUsage' smart constructor.
 data GetSnowballUsage =
-    GetSnowballUsage'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  GetSnowballUsage'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetSnowballUsage' with the minimum fields required to make a request.
 --
 getSnowballUsage
     :: GetSnowballUsage
 getSnowballUsage = GetSnowballUsage'
 
+
 instance AWSRequest GetSnowballUsage where
         type Rs GetSnowballUsage = GetSnowballUsageResponse
         request = postJSON snowball
@@ -66,9 +68,9 @@
                    (x .?> "SnowballsInUse") <*> (x .?> "SnowballLimit")
                      <*> (pure (fromEnum s)))
 
-instance Hashable GetSnowballUsage
+instance Hashable GetSnowballUsage where
 
-instance NFData GetSnowballUsage
+instance NFData GetSnowballUsage where
 
 instance ToHeaders GetSnowballUsage where
         toHeaders
@@ -91,11 +93,12 @@
 
 -- | /See:/ 'getSnowballUsageResponse' smart constructor.
 data GetSnowballUsageResponse = GetSnowballUsageResponse'
-    { _gsursSnowballsInUse :: !(Maybe Int)
-    , _gsursSnowballLimit  :: !(Maybe Int)
-    , _gsursResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _gsursSnowballsInUse :: !(Maybe Int)
+  , _gsursSnowballLimit  :: !(Maybe Int)
+  , _gsursResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'GetSnowballUsageResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -109,12 +112,13 @@
     :: Int -- ^ 'gsursResponseStatus'
     -> GetSnowballUsageResponse
 getSnowballUsageResponse pResponseStatus_ =
-    GetSnowballUsageResponse'
-    { _gsursSnowballsInUse = Nothing
-    , _gsursSnowballLimit = Nothing
-    , _gsursResponseStatus = pResponseStatus_
-    }
+  GetSnowballUsageResponse'
+  { _gsursSnowballsInUse = Nothing
+  , _gsursSnowballLimit = Nothing
+  , _gsursResponseStatus = pResponseStatus_
+  }
 
+
 -- | The number of Snowballs that this account is currently using.
 gsursSnowballsInUse :: Lens' GetSnowballUsageResponse (Maybe Int)
 gsursSnowballsInUse = lens _gsursSnowballsInUse (\ s a -> s{_gsursSnowballsInUse = a});
@@ -127,4 +131,4 @@
 gsursResponseStatus :: Lens' GetSnowballUsageResponse Int
 gsursResponseStatus = lens _gsursResponseStatus (\ s a -> s{_gsursResponseStatus = a});
 
-instance NFData GetSnowballUsageResponse
+instance NFData GetSnowballUsageResponse where
diff --git a/gen/Network/AWS/Snowball/ListClusterJobs.hs b/gen/Network/AWS/Snowball/ListClusterJobs.hs
--- a/gen/Network/AWS/Snowball/ListClusterJobs.hs
+++ b/gen/Network/AWS/Snowball/ListClusterJobs.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.ListClusterJobs
--- 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)
 --
@@ -40,20 +40,21 @@
     , lcjrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'listClusterJobs' smart constructor.
 data ListClusterJobs = ListClusterJobs'
-    { _lcjNextToken  :: !(Maybe Text)
-    , _lcjMaxResults :: !(Maybe Nat)
-    , _lcjClusterId  :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lcjNextToken  :: !(Maybe Text)
+  , _lcjMaxResults :: !(Maybe Nat)
+  , _lcjClusterId  :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListClusterJobs' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -67,12 +68,13 @@
     :: Text -- ^ 'lcjClusterId'
     -> ListClusterJobs
 listClusterJobs pClusterId_ =
-    ListClusterJobs'
-    { _lcjNextToken = Nothing
-    , _lcjMaxResults = Nothing
-    , _lcjClusterId = pClusterId_
-    }
+  ListClusterJobs'
+  { _lcjNextToken = Nothing
+  , _lcjMaxResults = Nothing
+  , _lcjClusterId = pClusterId_
+  }
 
+
 -- | HTTP requests are stateless. To identify what object comes "next" in the list of @JobListEntry@ objects, you have the option of specifying @NextToken@ as the starting point for your returned list.
 lcjNextToken :: Lens' ListClusterJobs (Maybe Text)
 lcjNextToken = lens _lcjNextToken (\ s a -> s{_lcjNextToken = a});
@@ -96,9 +98,9 @@
                      (x .?> "NextToken")
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListClusterJobs
+instance Hashable ListClusterJobs where
 
-instance NFData ListClusterJobs
+instance NFData ListClusterJobs where
 
 instance ToHeaders ListClusterJobs where
         toHeaders
@@ -126,11 +128,12 @@
 
 -- | /See:/ 'listClusterJobsResponse' smart constructor.
 data ListClusterJobsResponse = ListClusterJobsResponse'
-    { _lcjrsJobListEntries :: !(Maybe [JobListEntry])
-    , _lcjrsNextToken      :: !(Maybe Text)
-    , _lcjrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lcjrsJobListEntries :: !(Maybe [JobListEntry])
+  , _lcjrsNextToken      :: !(Maybe Text)
+  , _lcjrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListClusterJobsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -144,12 +147,13 @@
     :: Int -- ^ 'lcjrsResponseStatus'
     -> ListClusterJobsResponse
 listClusterJobsResponse pResponseStatus_ =
-    ListClusterJobsResponse'
-    { _lcjrsJobListEntries = Nothing
-    , _lcjrsNextToken = Nothing
-    , _lcjrsResponseStatus = pResponseStatus_
-    }
+  ListClusterJobsResponse'
+  { _lcjrsJobListEntries = Nothing
+  , _lcjrsNextToken = Nothing
+  , _lcjrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Each @JobListEntry@ object contains a job's state, a job's ID, and a value that indicates whether the job is a job part, in the case of export jobs.
 lcjrsJobListEntries :: Lens' ListClusterJobsResponse [JobListEntry]
 lcjrsJobListEntries = lens _lcjrsJobListEntries (\ s a -> s{_lcjrsJobListEntries = a}) . _Default . _Coerce;
@@ -162,4 +166,4 @@
 lcjrsResponseStatus :: Lens' ListClusterJobsResponse Int
 lcjrsResponseStatus = lens _lcjrsResponseStatus (\ s a -> s{_lcjrsResponseStatus = a});
 
-instance NFData ListClusterJobsResponse
+instance NFData ListClusterJobsResponse where
diff --git a/gen/Network/AWS/Snowball/ListClusters.hs b/gen/Network/AWS/Snowball/ListClusters.hs
--- a/gen/Network/AWS/Snowball/ListClusters.hs
+++ b/gen/Network/AWS/Snowball/ListClusters.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.ListClusters
--- 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 @@
     , lcrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'listClusters' smart constructor.
 data ListClusters = ListClusters'
-    { _lcNextToken  :: !(Maybe Text)
-    , _lcMaxResults :: !(Maybe Nat)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lcNextToken  :: !(Maybe Text)
+  , _lcMaxResults :: !(Maybe Nat)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListClusters' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,12 +62,9 @@
 -- * 'lcMaxResults' - The number of @ClusterListEntry@ objects to return.
 listClusters
     :: ListClusters
-listClusters =
-    ListClusters'
-    { _lcNextToken = Nothing
-    , _lcMaxResults = Nothing
-    }
+listClusters = ListClusters' {_lcNextToken = Nothing, _lcMaxResults = Nothing}
 
+
 -- | HTTP requests are stateless. To identify what object comes "next" in the list of @ClusterListEntry@ objects, you have the option of specifying @NextToken@ as the starting point for your returned list.
 lcNextToken :: Lens' ListClusters (Maybe Text)
 lcNextToken = lens _lcNextToken (\ s a -> s{_lcNextToken = a});
@@ -86,9 +84,9 @@
                      (x .?> "NextToken")
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListClusters
+instance Hashable ListClusters where
 
-instance NFData ListClusters
+instance NFData ListClusters where
 
 instance ToHeaders ListClusters where
         toHeaders
@@ -115,11 +113,12 @@
 
 -- | /See:/ 'listClustersResponse' smart constructor.
 data ListClustersResponse = ListClustersResponse'
-    { _lcrsClusterListEntries :: !(Maybe [ClusterListEntry])
-    , _lcrsNextToken          :: !(Maybe Text)
-    , _lcrsResponseStatus     :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lcrsClusterListEntries :: !(Maybe [ClusterListEntry])
+  , _lcrsNextToken          :: !(Maybe Text)
+  , _lcrsResponseStatus     :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListClustersResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -133,12 +132,13 @@
     :: Int -- ^ 'lcrsResponseStatus'
     -> ListClustersResponse
 listClustersResponse pResponseStatus_ =
-    ListClustersResponse'
-    { _lcrsClusterListEntries = Nothing
-    , _lcrsNextToken = Nothing
-    , _lcrsResponseStatus = pResponseStatus_
-    }
+  ListClustersResponse'
+  { _lcrsClusterListEntries = Nothing
+  , _lcrsNextToken = Nothing
+  , _lcrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Each @ClusterListEntry@ object contains a cluster's state, a cluster's ID, and other important status information.
 lcrsClusterListEntries :: Lens' ListClustersResponse [ClusterListEntry]
 lcrsClusterListEntries = lens _lcrsClusterListEntries (\ s a -> s{_lcrsClusterListEntries = a}) . _Default . _Coerce;
@@ -151,4 +151,4 @@
 lcrsResponseStatus :: Lens' ListClustersResponse Int
 lcrsResponseStatus = lens _lcrsResponseStatus (\ s a -> s{_lcrsResponseStatus = a});
 
-instance NFData ListClustersResponse
+instance NFData ListClustersResponse where
diff --git a/gen/Network/AWS/Snowball/ListJobs.hs b/gen/Network/AWS/Snowball/ListJobs.hs
--- a/gen/Network/AWS/Snowball/ListJobs.hs
+++ b/gen/Network/AWS/Snowball/ListJobs.hs
@@ -12,15 +12,17 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.ListJobs
--- 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 an array of @JobListEntry@ objects of the specified length. Each @JobListEntry@ object contains a job's state, a job's ID, and a value that indicates whether the job is a job part, in the case of export jobs. Calling this API action in one of the US regions will return jobs from the list of all jobs associated with this account in all US regions.
 --
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.Snowball.ListJobs
     (
     -- * Creating a Request
@@ -39,19 +41,21 @@
     , ljrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'listJobs' smart constructor.
 data ListJobs = ListJobs'
-    { _ljNextToken  :: !(Maybe Text)
-    , _ljMaxResults :: !(Maybe Nat)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ljNextToken  :: !(Maybe Text)
+  , _ljMaxResults :: !(Maybe Nat)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListJobs' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -61,12 +65,9 @@
 -- * 'ljMaxResults' - The number of @JobListEntry@ objects to return.
 listJobs
     :: ListJobs
-listJobs =
-    ListJobs'
-    { _ljNextToken = Nothing
-    , _ljMaxResults = Nothing
-    }
+listJobs = ListJobs' {_ljNextToken = Nothing, _ljMaxResults = Nothing}
 
+
 -- | HTTP requests are stateless. To identify what object comes "next" in the list of @JobListEntry@ objects, you have the option of specifying @NextToken@ as the starting point for your returned list.
 ljNextToken :: Lens' ListJobs (Maybe Text)
 ljNextToken = lens _ljNextToken (\ s a -> s{_ljNextToken = a});
@@ -75,6 +76,13 @@
 ljMaxResults :: Lens' ListJobs (Maybe Natural)
 ljMaxResults = lens _ljMaxResults (\ s a -> s{_ljMaxResults = a}) . mapping _Nat;
 
+instance AWSPager ListJobs where
+        page rq rs
+          | stop (rs ^. ljrsNextToken) = Nothing
+          | stop (rs ^. ljrsJobListEntries) = Nothing
+          | otherwise =
+            Just $ rq & ljNextToken .~ rs ^. ljrsNextToken
+
 instance AWSRequest ListJobs where
         type Rs ListJobs = ListJobsResponse
         request = postJSON snowball
@@ -86,9 +94,9 @@
                      (x .?> "NextToken")
                      <*> (pure (fromEnum s)))
 
-instance Hashable ListJobs
+instance Hashable ListJobs where
 
-instance NFData ListJobs
+instance NFData ListJobs where
 
 instance ToHeaders ListJobs where
         toHeaders
@@ -115,11 +123,12 @@
 
 -- | /See:/ 'listJobsResponse' smart constructor.
 data ListJobsResponse = ListJobsResponse'
-    { _ljrsJobListEntries :: !(Maybe [JobListEntry])
-    , _ljrsNextToken      :: !(Maybe Text)
-    , _ljrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ljrsJobListEntries :: !(Maybe [JobListEntry])
+  , _ljrsNextToken      :: !(Maybe Text)
+  , _ljrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ListJobsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -133,12 +142,13 @@
     :: Int -- ^ 'ljrsResponseStatus'
     -> ListJobsResponse
 listJobsResponse pResponseStatus_ =
-    ListJobsResponse'
-    { _ljrsJobListEntries = Nothing
-    , _ljrsNextToken = Nothing
-    , _ljrsResponseStatus = pResponseStatus_
-    }
+  ListJobsResponse'
+  { _ljrsJobListEntries = Nothing
+  , _ljrsNextToken = Nothing
+  , _ljrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Each @JobListEntry@ object contains a job's state, a job's ID, and a value that indicates whether the job is a job part, in the case of export jobs.
 ljrsJobListEntries :: Lens' ListJobsResponse [JobListEntry]
 ljrsJobListEntries = lens _ljrsJobListEntries (\ s a -> s{_ljrsJobListEntries = a}) . _Default . _Coerce;
@@ -151,4 +161,4 @@
 ljrsResponseStatus :: Lens' ListJobsResponse Int
 ljrsResponseStatus = lens _ljrsResponseStatus (\ s a -> s{_ljrsResponseStatus = a});
 
-instance NFData ListJobsResponse
+instance NFData ListJobsResponse where
diff --git a/gen/Network/AWS/Snowball/Types.hs b/gen/Network/AWS/Snowball/Types.hs
--- a/gen/Network/AWS/Snowball/Types.hs
+++ b/gen/Network/AWS/Snowball/Types.hs
@@ -4,9 +4,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.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)
 --
@@ -21,6 +21,7 @@
     , _KMSRequestFailedException
     , _InvalidJobStateException
     , _InvalidInputCombinationException
+    , _InvalidNextTokenException
     , _InvalidAddressException
     , _ClusterLimitExceededException
 
@@ -45,6 +46,7 @@
     -- * Address
     , Address
     , address
+    , aIsRestricted
     , aStreet3
     , aLandmark
     , aPostalCode
@@ -74,6 +76,7 @@
     , cmKMSKeyARN
     , cmClusterState
     , cmNotification
+    , cmForwardingAddressId
     , cmAddressId
     , cmSnowballType
     , cmShippingOption
@@ -123,6 +126,7 @@
     , jmJobLogInfo
     , jmNotification
     , jmJobState
+    , jmForwardingAddressId
     , jmShippingDetails
     , jmAddressId
     , jmSnowballType
@@ -179,38 +183,40 @@
     , sdInboundShipment
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Sign.V4
-import           Network.AWS.Snowball.Types.Product
-import           Network.AWS.Snowball.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Sign.V4
+import Network.AWS.Snowball.Types.Product
+import Network.AWS.Snowball.Types.Sum
 
 -- | API version @2016-06-30@ of the Amazon Import/Export Snowball SDK configuration.
 snowball :: Service
 snowball =
-    Service
-    { _svcAbbrev = "Snowball"
-    , _svcSigner = v4
-    , _svcPrefix = "snowball"
-    , _svcVersion = "2016-06-30"
-    , _svcEndpoint = defaultEndpoint snowball
-    , _svcTimeout = Just 70
-    , _svcCheck = statusSuccess
-    , _svcError = parseJSONError "Snowball"
-    , _svcRetry = retry
-    }
+  Service
+  { _svcAbbrev = "Snowball"
+  , _svcSigner = v4
+  , _svcPrefix = "snowball"
+  , _svcVersion = "2016-06-30"
+  , _svcEndpoint = defaultEndpoint snowball
+  , _svcTimeout = Just 70
+  , _svcCheck = statusSuccess
+  , _svcError = parseJSONError "Snowball"
+  , _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"
@@ -219,48 +225,66 @@
       | has (hasStatus 509) e = Just "limit_exceeded"
       | otherwise = Nothing
 
+
 -- | The specified resource can't be found. Check the information you provided in your last request, and try again.
 --
 --
 _InvalidResourceException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidResourceException = _ServiceError . hasCode "InvalidResourceException"
+_InvalidResourceException =
+  _MatchServiceError snowball "InvalidResourceException"
 
+
 -- | The address is either outside the serviceable area for your region, or an error occurred. Check the address with your region's carrier and try again. If the issue persists, contact AWS Support.
 --
 --
 _UnsupportedAddressException :: AsError a => Getting (First ServiceError) a ServiceError
 _UnsupportedAddressException =
-    _ServiceError . hasCode "UnsupportedAddressException"
+  _MatchServiceError snowball "UnsupportedAddressException"
 
+
 -- | The provided AWS Key Management Service key lacks the permissions to perform the specified 'CreateJob' or 'UpdateJob' action.
 --
 --
 _KMSRequestFailedException :: AsError a => Getting (First ServiceError) a ServiceError
 _KMSRequestFailedException =
-    _ServiceError . hasCode "KMSRequestFailedException"
+  _MatchServiceError snowball "KMSRequestFailedException"
 
+
 -- | The action can't be performed because the job's current state doesn't allow that action to be performed.
 --
 --
 _InvalidJobStateException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidJobStateException = _ServiceError . hasCode "InvalidJobStateException"
+_InvalidJobStateException =
+  _MatchServiceError snowball "InvalidJobStateException"
 
+
 -- | Job or cluster creation failed. One ore more inputs were invalid. Confirm that the 'CreateClusterRequest$SnowballType' value supports your 'CreateJobRequest$JobType' , and try again.
 --
 --
 _InvalidInputCombinationException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidInputCombinationException =
-    _ServiceError . hasCode "InvalidInputCombinationException"
+  _MatchServiceError snowball "InvalidInputCombinationException"
 
+
+-- | The @NextToken@ string was altered unexpectedly, and the operation has stopped. Run the operation without changing the @NextToken@ string, and try again.
+--
+--
+_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidNextTokenException =
+  _MatchServiceError snowball "InvalidNextTokenException"
+
+
 -- | The address provided was invalid. Check the address with your region's carrier, and try again.
 --
 --
 _InvalidAddressException :: AsError a => Getting (First ServiceError) a ServiceError
-_InvalidAddressException = _ServiceError . hasCode "InvalidAddressException"
+_InvalidAddressException = _MatchServiceError snowball "InvalidAddressException"
 
+
 -- | Job creation failed. Currently, clusters support five nodes. If you have less than five nodes for your cluster and you have more nodes to create for this cluster, try again and create jobs until your cluster has exactly five notes.
 --
 --
 _ClusterLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _ClusterLimitExceededException =
-    _ServiceError . hasCode "ClusterLimitExceededException"
+  _MatchServiceError snowball "ClusterLimitExceededException"
+
diff --git a/gen/Network/AWS/Snowball/Types/Product.hs b/gen/Network/AWS/Snowball/Types/Product.hs
--- a/gen/Network/AWS/Snowball/Types/Product.hs
+++ b/gen/Network/AWS/Snowball/Types/Product.hs
@@ -9,17 +9,17 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.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.Snowball.Types.Product where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Snowball.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Snowball.Types.Sum
 
 -- | The address that you want the Snowball or Snowballs associated with a specific job to be shipped to. Addresses are validated at the time of creation. The address you provide must be located within the serviceable area of your region. Although no individual elements of the @Address@ are required, if the address is invalid or unsupported, then an exception is thrown.
 --
@@ -27,28 +27,32 @@
 --
 -- /See:/ 'address' smart constructor.
 data Address = Address'
-    { _aStreet3              :: !(Maybe Text)
-    , _aLandmark             :: !(Maybe Text)
-    , _aPostalCode           :: !(Maybe Text)
-    , _aCountry              :: !(Maybe Text)
-    , _aStateOrProvince      :: !(Maybe Text)
-    , _aStreet2              :: !(Maybe Text)
-    , _aAddressId            :: !(Maybe Text)
-    , _aCity                 :: !(Maybe Text)
-    , _aPhoneNumber          :: !(Maybe Text)
-    , _aCompany              :: !(Maybe Text)
-    , _aName                 :: !(Maybe Text)
-    , _aPrefectureOrDistrict :: !(Maybe Text)
-    , _aStreet1              :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _aIsRestricted         :: !(Maybe Bool)
+  , _aStreet3              :: !(Maybe Text)
+  , _aLandmark             :: !(Maybe Text)
+  , _aPostalCode           :: !(Maybe Text)
+  , _aCountry              :: !(Maybe Text)
+  , _aStateOrProvince      :: !(Maybe Text)
+  , _aStreet2              :: !(Maybe Text)
+  , _aAddressId            :: !(Maybe Text)
+  , _aCity                 :: !(Maybe Text)
+  , _aPhoneNumber          :: !(Maybe Text)
+  , _aCompany              :: !(Maybe Text)
+  , _aName                 :: !(Maybe Text)
+  , _aPrefectureOrDistrict :: !(Maybe Text)
+  , _aStreet1              :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Address' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'aIsRestricted' - If the address you are creating is a primary address, then set this option to true. This field is not supported in most regions.
+--
 -- * 'aStreet3' - The third line in a street address that a Snowball is to be delivered to.
 --
--- * 'aLandmark' - The landmark identifying the address that the appliance will be shipped to.
+-- * 'aLandmark' - This field is no longer used and the value is ignored.
 --
 -- * 'aPostalCode' - The postal code in an address that a Snowball is to be delivered to.
 --
@@ -68,33 +72,39 @@
 --
 -- * 'aName' - The name of a person to receive a Snowball at an address.
 --
--- * 'aPrefectureOrDistrict' - The prefecture or district that the appliance will be shipped to.
+-- * 'aPrefectureOrDistrict' - This field is no longer used and the value is ignored.
 --
 -- * 'aStreet1' - The first line in a street address that a Snowball is to be delivered to.
 address
     :: Address
 address =
-    Address'
-    { _aStreet3 = Nothing
-    , _aLandmark = Nothing
-    , _aPostalCode = Nothing
-    , _aCountry = Nothing
-    , _aStateOrProvince = Nothing
-    , _aStreet2 = Nothing
-    , _aAddressId = Nothing
-    , _aCity = Nothing
-    , _aPhoneNumber = Nothing
-    , _aCompany = Nothing
-    , _aName = Nothing
-    , _aPrefectureOrDistrict = Nothing
-    , _aStreet1 = Nothing
-    }
+  Address'
+  { _aIsRestricted = Nothing
+  , _aStreet3 = Nothing
+  , _aLandmark = Nothing
+  , _aPostalCode = Nothing
+  , _aCountry = Nothing
+  , _aStateOrProvince = Nothing
+  , _aStreet2 = Nothing
+  , _aAddressId = Nothing
+  , _aCity = Nothing
+  , _aPhoneNumber = Nothing
+  , _aCompany = Nothing
+  , _aName = Nothing
+  , _aPrefectureOrDistrict = Nothing
+  , _aStreet1 = Nothing
+  }
 
+
+-- | If the address you are creating is a primary address, then set this option to true. This field is not supported in most regions.
+aIsRestricted :: Lens' Address (Maybe Bool)
+aIsRestricted = lens _aIsRestricted (\ s a -> s{_aIsRestricted = a});
+
 -- | The third line in a street address that a Snowball is to be delivered to.
 aStreet3 :: Lens' Address (Maybe Text)
 aStreet3 = lens _aStreet3 (\ s a -> s{_aStreet3 = a});
 
--- | The landmark identifying the address that the appliance will be shipped to.
+-- | This field is no longer used and the value is ignored.
 aLandmark :: Lens' Address (Maybe Text)
 aLandmark = lens _aLandmark (\ s a -> s{_aLandmark = a});
 
@@ -134,7 +144,7 @@
 aName :: Lens' Address (Maybe Text)
 aName = lens _aName (\ s a -> s{_aName = a});
 
--- | The prefecture or district that the appliance will be shipped to.
+-- | This field is no longer used and the value is ignored.
 aPrefectureOrDistrict :: Lens' Address (Maybe Text)
 aPrefectureOrDistrict = lens _aPrefectureOrDistrict (\ s a -> s{_aPrefectureOrDistrict = a});
 
@@ -147,8 +157,9 @@
           = withObject "Address"
               (\ x ->
                  Address' <$>
-                   (x .:? "Street3") <*> (x .:? "Landmark") <*>
-                     (x .:? "PostalCode")
+                   (x .:? "IsRestricted") <*> (x .:? "Street3") <*>
+                     (x .:? "Landmark")
+                     <*> (x .:? "PostalCode")
                      <*> (x .:? "Country")
                      <*> (x .:? "StateOrProvince")
                      <*> (x .:? "Street2")
@@ -160,15 +171,16 @@
                      <*> (x .:? "PrefectureOrDistrict")
                      <*> (x .:? "Street1"))
 
-instance Hashable Address
+instance Hashable Address where
 
-instance NFData Address
+instance NFData Address where
 
 instance ToJSON Address where
         toJSON Address'{..}
           = object
               (catMaybes
-                 [("Street3" .=) <$> _aStreet3,
+                 [("IsRestricted" .=) <$> _aIsRestricted,
+                  ("Street3" .=) <$> _aStreet3,
                   ("Landmark" .=) <$> _aLandmark,
                   ("PostalCode" .=) <$> _aPostalCode,
                   ("Country" .=) <$> _aCountry,
@@ -188,12 +200,13 @@
 --
 -- /See:/ 'clusterListEntry' smart constructor.
 data ClusterListEntry = ClusterListEntry'
-    { _cleClusterState :: !(Maybe ClusterState)
-    , _cleClusterId    :: !(Maybe Text)
-    , _cleCreationDate :: !(Maybe POSIX)
-    , _cleDescription  :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cleClusterState :: !(Maybe ClusterState)
+  , _cleClusterId    :: !(Maybe Text)
+  , _cleCreationDate :: !(Maybe POSIX)
+  , _cleDescription  :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ClusterListEntry' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -208,13 +221,14 @@
 clusterListEntry
     :: ClusterListEntry
 clusterListEntry =
-    ClusterListEntry'
-    { _cleClusterState = Nothing
-    , _cleClusterId = Nothing
-    , _cleCreationDate = Nothing
-    , _cleDescription = Nothing
-    }
+  ClusterListEntry'
+  { _cleClusterState = Nothing
+  , _cleClusterId = Nothing
+  , _cleCreationDate = Nothing
+  , _cleDescription = Nothing
+  }
 
+
 -- | The current state of this cluster. For information about the state of a specific node, see 'JobListEntry$JobState' .
 cleClusterState :: Lens' ClusterListEntry (Maybe ClusterState)
 cleClusterState = lens _cleClusterState (\ s a -> s{_cleClusterState = a});
@@ -240,9 +254,9 @@
                      (x .:? "CreationDate")
                      <*> (x .:? "Description"))
 
-instance Hashable ClusterListEntry
+instance Hashable ClusterListEntry where
 
-instance NFData ClusterListEntry
+instance NFData ClusterListEntry where
 
 -- | Contains metadata about a specific cluster.
 --
@@ -250,20 +264,22 @@
 --
 -- /See:/ 'clusterMetadata' smart constructor.
 data ClusterMetadata = ClusterMetadata'
-    { _cmJobType        :: !(Maybe JobType)
-    , _cmKMSKeyARN      :: !(Maybe Text)
-    , _cmClusterState   :: !(Maybe ClusterState)
-    , _cmNotification   :: !(Maybe Notification)
-    , _cmAddressId      :: !(Maybe Text)
-    , _cmSnowballType   :: !(Maybe SnowballType)
-    , _cmShippingOption :: !(Maybe ShippingOption)
-    , _cmResources      :: !(Maybe JobResource)
-    , _cmClusterId      :: !(Maybe Text)
-    , _cmCreationDate   :: !(Maybe POSIX)
-    , _cmDescription    :: !(Maybe Text)
-    , _cmRoleARN        :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cmJobType             :: !(Maybe JobType)
+  , _cmKMSKeyARN           :: !(Maybe Text)
+  , _cmClusterState        :: !(Maybe ClusterState)
+  , _cmNotification        :: !(Maybe Notification)
+  , _cmForwardingAddressId :: !(Maybe Text)
+  , _cmAddressId           :: !(Maybe Text)
+  , _cmSnowballType        :: !(Maybe SnowballType)
+  , _cmShippingOption      :: !(Maybe ShippingOption)
+  , _cmResources           :: !(Maybe JobResource)
+  , _cmClusterId           :: !(Maybe Text)
+  , _cmCreationDate        :: !(Maybe POSIX)
+  , _cmDescription         :: !(Maybe Text)
+  , _cmRoleARN             :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ClusterMetadata' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -276,6 +292,8 @@
 --
 -- * 'cmNotification' - The Amazon Simple Notification Service (Amazon SNS) notification settings for this cluster.
 --
+-- * 'cmForwardingAddressId' - The ID of the address that you want a cluster shipped to, after it will be shipped to its primary address. This field is not supported in most regions.
+--
 -- * 'cmAddressId' - The automatically generated ID for a specific address.
 --
 -- * 'cmSnowballType' - The type of AWS Snowball appliance to use for this cluster. Currently, the only supported appliance type for cluster jobs is @EDGE@ .
@@ -294,21 +312,23 @@
 clusterMetadata
     :: ClusterMetadata
 clusterMetadata =
-    ClusterMetadata'
-    { _cmJobType = Nothing
-    , _cmKMSKeyARN = Nothing
-    , _cmClusterState = Nothing
-    , _cmNotification = Nothing
-    , _cmAddressId = Nothing
-    , _cmSnowballType = Nothing
-    , _cmShippingOption = Nothing
-    , _cmResources = Nothing
-    , _cmClusterId = Nothing
-    , _cmCreationDate = Nothing
-    , _cmDescription = Nothing
-    , _cmRoleARN = Nothing
-    }
+  ClusterMetadata'
+  { _cmJobType = Nothing
+  , _cmKMSKeyARN = Nothing
+  , _cmClusterState = Nothing
+  , _cmNotification = Nothing
+  , _cmForwardingAddressId = Nothing
+  , _cmAddressId = Nothing
+  , _cmSnowballType = Nothing
+  , _cmShippingOption = Nothing
+  , _cmResources = Nothing
+  , _cmClusterId = Nothing
+  , _cmCreationDate = Nothing
+  , _cmDescription = Nothing
+  , _cmRoleARN = Nothing
+  }
 
+
 -- | The type of job for this cluster. Currently, the only job type supported for clusters is @LOCAL_USE@ .
 cmJobType :: Lens' ClusterMetadata (Maybe JobType)
 cmJobType = lens _cmJobType (\ s a -> s{_cmJobType = a});
@@ -325,6 +345,10 @@
 cmNotification :: Lens' ClusterMetadata (Maybe Notification)
 cmNotification = lens _cmNotification (\ s a -> s{_cmNotification = a});
 
+-- | The ID of the address that you want a cluster shipped to, after it will be shipped to its primary address. This field is not supported in most regions.
+cmForwardingAddressId :: Lens' ClusterMetadata (Maybe Text)
+cmForwardingAddressId = lens _cmForwardingAddressId (\ s a -> s{_cmForwardingAddressId = a});
+
 -- | The automatically generated ID for a specific address.
 cmAddressId :: Lens' ClusterMetadata (Maybe Text)
 cmAddressId = lens _cmAddressId (\ s a -> s{_cmAddressId = a});
@@ -365,6 +389,7 @@
                    (x .:? "JobType") <*> (x .:? "KmsKeyARN") <*>
                      (x .:? "ClusterState")
                      <*> (x .:? "Notification")
+                     <*> (x .:? "ForwardingAddressId")
                      <*> (x .:? "AddressId")
                      <*> (x .:? "SnowballType")
                      <*> (x .:? "ShippingOption")
@@ -374,9 +399,9 @@
                      <*> (x .:? "Description")
                      <*> (x .:? "RoleARN"))
 
-instance Hashable ClusterMetadata
+instance Hashable ClusterMetadata where
 
-instance NFData ClusterMetadata
+instance NFData ClusterMetadata where
 
 -- | Defines the real-time status of a Snowball's data transfer while the appliance is at AWS. This data is only available while a job has a @JobState@ value of @InProgress@ , for both import and export jobs.
 --
@@ -384,12 +409,13 @@
 --
 -- /See:/ 'dataTransfer' smart constructor.
 data DataTransfer = DataTransfer'
-    { _dtTotalObjects       :: !(Maybe Integer)
-    , _dtTotalBytes         :: !(Maybe Integer)
-    , _dtObjectsTransferred :: !(Maybe Integer)
-    , _dtBytesTransferred   :: !(Maybe Integer)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dtTotalObjects       :: !(Maybe Integer)
+  , _dtTotalBytes         :: !(Maybe Integer)
+  , _dtObjectsTransferred :: !(Maybe Integer)
+  , _dtBytesTransferred   :: !(Maybe Integer)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DataTransfer' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -404,13 +430,14 @@
 dataTransfer
     :: DataTransfer
 dataTransfer =
-    DataTransfer'
-    { _dtTotalObjects = Nothing
-    , _dtTotalBytes = Nothing
-    , _dtObjectsTransferred = Nothing
-    , _dtBytesTransferred = Nothing
-    }
+  DataTransfer'
+  { _dtTotalObjects = Nothing
+  , _dtTotalBytes = Nothing
+  , _dtObjectsTransferred = Nothing
+  , _dtBytesTransferred = Nothing
+  }
 
+
 -- | The total number of objects for a transfer between a Snowball and Amazon S3. This value is set to 0 (zero) until all the keys that will be transferred have been listed.
 dtTotalObjects :: Lens' DataTransfer (Maybe Integer)
 dtTotalObjects = lens _dtTotalObjects (\ s a -> s{_dtTotalObjects = a});
@@ -436,9 +463,9 @@
                      (x .:? "ObjectsTransferred")
                      <*> (x .:? "BytesTransferred"))
 
-instance Hashable DataTransfer
+instance Hashable DataTransfer where
 
-instance NFData DataTransfer
+instance NFData DataTransfer where
 
 -- | The container for the 'EventTriggerDefinition$EventResourceARN' .
 --
@@ -446,9 +473,10 @@
 --
 -- /See:/ 'eventTriggerDefinition' smart constructor.
 newtype EventTriggerDefinition = EventTriggerDefinition'
-    { _etdEventResourceARN :: Maybe Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _etdEventResourceARN :: Maybe Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'EventTriggerDefinition' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -457,10 +485,9 @@
 eventTriggerDefinition
     :: EventTriggerDefinition
 eventTriggerDefinition =
-    EventTriggerDefinition'
-    { _etdEventResourceARN = Nothing
-    }
+  EventTriggerDefinition' {_etdEventResourceARN = Nothing}
 
+
 -- | The Amazon Resource Name (ARN) for any local Amazon S3 resource that is an AWS Lambda function's event trigger associated with this job.
 etdEventResourceARN :: Lens' EventTriggerDefinition (Maybe Text)
 etdEventResourceARN = lens _etdEventResourceARN (\ s a -> s{_etdEventResourceARN = a});
@@ -472,9 +499,9 @@
                  EventTriggerDefinition' <$>
                    (x .:? "EventResourceARN"))
 
-instance Hashable EventTriggerDefinition
+instance Hashable EventTriggerDefinition where
 
-instance NFData EventTriggerDefinition
+instance NFData EventTriggerDefinition where
 
 instance ToJSON EventTriggerDefinition where
         toJSON EventTriggerDefinition'{..}
@@ -488,15 +515,16 @@
 --
 -- /See:/ 'jobListEntry' smart constructor.
 data JobListEntry = JobListEntry'
-    { _jleJobType      :: !(Maybe JobType)
-    , _jleJobId        :: !(Maybe Text)
-    , _jleJobState     :: !(Maybe JobState)
-    , _jleSnowballType :: !(Maybe SnowballType)
-    , _jleCreationDate :: !(Maybe POSIX)
-    , _jleDescription  :: !(Maybe Text)
-    , _jleIsMaster     :: !(Maybe Bool)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _jleJobType      :: !(Maybe JobType)
+  , _jleJobId        :: !(Maybe Text)
+  , _jleJobState     :: !(Maybe JobState)
+  , _jleSnowballType :: !(Maybe SnowballType)
+  , _jleCreationDate :: !(Maybe POSIX)
+  , _jleDescription  :: !(Maybe Text)
+  , _jleIsMaster     :: !(Maybe Bool)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'JobListEntry' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -517,16 +545,17 @@
 jobListEntry
     :: JobListEntry
 jobListEntry =
-    JobListEntry'
-    { _jleJobType = Nothing
-    , _jleJobId = Nothing
-    , _jleJobState = Nothing
-    , _jleSnowballType = Nothing
-    , _jleCreationDate = Nothing
-    , _jleDescription = Nothing
-    , _jleIsMaster = Nothing
-    }
+  JobListEntry'
+  { _jleJobType = Nothing
+  , _jleJobId = Nothing
+  , _jleJobState = Nothing
+  , _jleSnowballType = Nothing
+  , _jleCreationDate = Nothing
+  , _jleDescription = Nothing
+  , _jleIsMaster = Nothing
+  }
 
+
 -- | The type of job.
 jleJobType :: Lens' JobListEntry (Maybe JobType)
 jleJobType = lens _jleJobType (\ s a -> s{_jleJobType = a});
@@ -567,9 +596,9 @@
                      <*> (x .:? "Description")
                      <*> (x .:? "IsMaster"))
 
-instance Hashable JobListEntry
+instance Hashable JobListEntry where
 
-instance NFData JobListEntry
+instance NFData JobListEntry where
 
 -- | Contains job logs. Whenever Snowball is used to import data into or export data out of Amazon S3, you'll have the option of downloading a PDF job report. Job logs are returned as a part of the response syntax of the @DescribeJob@ action in the @JobMetadata@ data type. The job logs can be accessed for up to 60 minutes after this request has been made. To access any of the job logs after 60 minutes have passed, you'll have to make another call to the @DescribeJob@ action.
 --
@@ -583,11 +612,12 @@
 --
 -- /See:/ 'jobLogs' smart constructor.
 data JobLogs = JobLogs'
-    { _jlJobFailureLogURI       :: !(Maybe Text)
-    , _jlJobCompletionReportURI :: !(Maybe Text)
-    , _jlJobSuccessLogURI       :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _jlJobFailureLogURI       :: !(Maybe Text)
+  , _jlJobCompletionReportURI :: !(Maybe Text)
+  , _jlJobSuccessLogURI       :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'JobLogs' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -600,12 +630,13 @@
 jobLogs
     :: JobLogs
 jobLogs =
-    JobLogs'
-    { _jlJobFailureLogURI = Nothing
-    , _jlJobCompletionReportURI = Nothing
-    , _jlJobSuccessLogURI = Nothing
-    }
+  JobLogs'
+  { _jlJobFailureLogURI = Nothing
+  , _jlJobCompletionReportURI = Nothing
+  , _jlJobSuccessLogURI = Nothing
+  }
 
+
 -- | A link to an Amazon S3 presigned URL where the job failure log is located.
 jlJobFailureLogURI :: Lens' JobLogs (Maybe Text)
 jlJobFailureLogURI = lens _jlJobFailureLogURI (\ s a -> s{_jlJobFailureLogURI = a});
@@ -627,9 +658,9 @@
                      (x .:? "JobCompletionReportURI")
                      <*> (x .:? "JobSuccessLogURI"))
 
-instance Hashable JobLogs
+instance Hashable JobLogs where
 
-instance NFData JobLogs
+instance NFData JobLogs where
 
 -- | Contains information about a specific job including shipping information, job status, and other important metadata. This information is returned as a part of the response syntax of the @DescribeJob@ action.
 --
@@ -637,31 +668,33 @@
 --
 -- /See:/ 'jobMetadata' smart constructor.
 data JobMetadata = JobMetadata'
-    { _jmJobType                    :: !(Maybe JobType)
-    , _jmKMSKeyARN                  :: !(Maybe Text)
-    , _jmJobId                      :: !(Maybe Text)
-    , _jmJobLogInfo                 :: !(Maybe JobLogs)
-    , _jmNotification               :: !(Maybe Notification)
-    , _jmJobState                   :: !(Maybe JobState)
-    , _jmShippingDetails            :: !(Maybe ShippingDetails)
-    , _jmAddressId                  :: !(Maybe Text)
-    , _jmSnowballType               :: !(Maybe SnowballType)
-    , _jmDataTransferProgress       :: !(Maybe DataTransfer)
-    , _jmResources                  :: !(Maybe JobResource)
-    , _jmClusterId                  :: !(Maybe Text)
-    , _jmCreationDate               :: !(Maybe POSIX)
-    , _jmDescription                :: !(Maybe Text)
-    , _jmRoleARN                    :: !(Maybe Text)
-    , _jmSnowballCapacityPreference :: !(Maybe SnowballCapacity)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _jmJobType                    :: !(Maybe JobType)
+  , _jmKMSKeyARN                  :: !(Maybe Text)
+  , _jmJobId                      :: !(Maybe Text)
+  , _jmJobLogInfo                 :: !(Maybe JobLogs)
+  , _jmNotification               :: !(Maybe Notification)
+  , _jmJobState                   :: !(Maybe JobState)
+  , _jmForwardingAddressId        :: !(Maybe Text)
+  , _jmShippingDetails            :: !(Maybe ShippingDetails)
+  , _jmAddressId                  :: !(Maybe Text)
+  , _jmSnowballType               :: !(Maybe SnowballType)
+  , _jmDataTransferProgress       :: !(Maybe DataTransfer)
+  , _jmResources                  :: !(Maybe JobResource)
+  , _jmClusterId                  :: !(Maybe Text)
+  , _jmCreationDate               :: !(Maybe POSIX)
+  , _jmDescription                :: !(Maybe Text)
+  , _jmRoleARN                    :: !(Maybe Text)
+  , _jmSnowballCapacityPreference :: !(Maybe SnowballCapacity)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'JobMetadata' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'jmJobType' - The type of job.
 --
--- * 'jmKMSKeyARN' - The Amazon Resource Name (ARN) for the AWS Key Management Service (AWS KMS) key associated with this job. This ARN was created using the @CreateKey@ API action in AWS KMS.
+-- * 'jmKMSKeyARN' - The Amazon Resource Name (ARN) for the AWS Key Management Service (AWS KMS) key associated with this job. This ARN was created using the <http://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html CreateKey> API action in AWS KMS.
 --
 -- * 'jmJobId' - The automatically generated ID for a job, for example @JID123e4567-e89b-12d3-a456-426655440000@ .
 --
@@ -671,6 +704,8 @@
 --
 -- * 'jmJobState' - The current status of the jobs.
 --
+-- * 'jmForwardingAddressId' - The ID of the address that you want a job shipped to, after it will be shipped to its primary address. This field is not supported in most regions.
+--
 -- * 'jmShippingDetails' - A job's shipping information, including inbound and outbound tracking numbers and shipping speed options.
 --
 -- * 'jmAddressId' - The ID for the address that you want the Snowball shipped to.
@@ -687,36 +722,38 @@
 --
 -- * 'jmDescription' - The description of the job, provided at job creation.
 --
--- * 'jmRoleARN' - The role ARN associated with this job. This ARN was created using the @CreateRole@ API action in AWS Identity and Access Management (IAM).
+-- * 'jmRoleARN' - The role ARN associated with this job. This ARN was created using the <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html CreateRole> API action in AWS Identity and Access Management (IAM).
 --
 -- * 'jmSnowballCapacityPreference' - The Snowball capacity preference for this job, specified at job creation. In US regions, you can choose between 50 TB and 80 TB Snowballs. All other regions use 80 TB capacity Snowballs.
 jobMetadata
     :: JobMetadata
 jobMetadata =
-    JobMetadata'
-    { _jmJobType = Nothing
-    , _jmKMSKeyARN = Nothing
-    , _jmJobId = Nothing
-    , _jmJobLogInfo = Nothing
-    , _jmNotification = Nothing
-    , _jmJobState = Nothing
-    , _jmShippingDetails = Nothing
-    , _jmAddressId = Nothing
-    , _jmSnowballType = Nothing
-    , _jmDataTransferProgress = Nothing
-    , _jmResources = Nothing
-    , _jmClusterId = Nothing
-    , _jmCreationDate = Nothing
-    , _jmDescription = Nothing
-    , _jmRoleARN = Nothing
-    , _jmSnowballCapacityPreference = Nothing
-    }
+  JobMetadata'
+  { _jmJobType = Nothing
+  , _jmKMSKeyARN = Nothing
+  , _jmJobId = Nothing
+  , _jmJobLogInfo = Nothing
+  , _jmNotification = Nothing
+  , _jmJobState = Nothing
+  , _jmForwardingAddressId = Nothing
+  , _jmShippingDetails = Nothing
+  , _jmAddressId = Nothing
+  , _jmSnowballType = Nothing
+  , _jmDataTransferProgress = Nothing
+  , _jmResources = Nothing
+  , _jmClusterId = Nothing
+  , _jmCreationDate = Nothing
+  , _jmDescription = Nothing
+  , _jmRoleARN = Nothing
+  , _jmSnowballCapacityPreference = Nothing
+  }
 
+
 -- | The type of job.
 jmJobType :: Lens' JobMetadata (Maybe JobType)
 jmJobType = lens _jmJobType (\ s a -> s{_jmJobType = a});
 
--- | The Amazon Resource Name (ARN) for the AWS Key Management Service (AWS KMS) key associated with this job. This ARN was created using the @CreateKey@ API action in AWS KMS.
+-- | The Amazon Resource Name (ARN) for the AWS Key Management Service (AWS KMS) key associated with this job. This ARN was created using the <http://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html CreateKey> API action in AWS KMS.
 jmKMSKeyARN :: Lens' JobMetadata (Maybe Text)
 jmKMSKeyARN = lens _jmKMSKeyARN (\ s a -> s{_jmKMSKeyARN = a});
 
@@ -736,6 +773,10 @@
 jmJobState :: Lens' JobMetadata (Maybe JobState)
 jmJobState = lens _jmJobState (\ s a -> s{_jmJobState = a});
 
+-- | The ID of the address that you want a job shipped to, after it will be shipped to its primary address. This field is not supported in most regions.
+jmForwardingAddressId :: Lens' JobMetadata (Maybe Text)
+jmForwardingAddressId = lens _jmForwardingAddressId (\ s a -> s{_jmForwardingAddressId = a});
+
 -- | A job's shipping information, including inbound and outbound tracking numbers and shipping speed options.
 jmShippingDetails :: Lens' JobMetadata (Maybe ShippingDetails)
 jmShippingDetails = lens _jmShippingDetails (\ s a -> s{_jmShippingDetails = a});
@@ -768,7 +809,7 @@
 jmDescription :: Lens' JobMetadata (Maybe Text)
 jmDescription = lens _jmDescription (\ s a -> s{_jmDescription = a});
 
--- | The role ARN associated with this job. This ARN was created using the @CreateRole@ API action in AWS Identity and Access Management (IAM).
+-- | The role ARN associated with this job. This ARN was created using the <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html CreateRole> API action in AWS Identity and Access Management (IAM).
 jmRoleARN :: Lens' JobMetadata (Maybe Text)
 jmRoleARN = lens _jmRoleARN (\ s a -> s{_jmRoleARN = a});
 
@@ -786,6 +827,7 @@
                      <*> (x .:? "JobLogInfo")
                      <*> (x .:? "Notification")
                      <*> (x .:? "JobState")
+                     <*> (x .:? "ForwardingAddressId")
                      <*> (x .:? "ShippingDetails")
                      <*> (x .:? "AddressId")
                      <*> (x .:? "SnowballType")
@@ -797,9 +839,9 @@
                      <*> (x .:? "RoleARN")
                      <*> (x .:? "SnowballCapacityPreference"))
 
-instance Hashable JobMetadata
+instance Hashable JobMetadata where
 
-instance NFData JobMetadata
+instance NFData JobMetadata where
 
 -- | Contains an array of @S3Resource@ objects. Each @S3Resource@ object represents an Amazon S3 bucket that your transferred data will be exported from or imported into.
 --
@@ -807,10 +849,11 @@
 --
 -- /See:/ 'jobResource' smart constructor.
 data JobResource = JobResource'
-    { _jrLambdaResources :: !(Maybe [LambdaResource])
-    , _jrS3Resources     :: !(Maybe [S3Resource])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _jrLambdaResources :: !(Maybe [LambdaResource])
+  , _jrS3Resources     :: !(Maybe [S3Resource])
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'JobResource' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -821,11 +864,9 @@
 jobResource
     :: JobResource
 jobResource =
-    JobResource'
-    { _jrLambdaResources = Nothing
-    , _jrS3Resources = Nothing
-    }
+  JobResource' {_jrLambdaResources = Nothing, _jrS3Resources = Nothing}
 
+
 -- | The Python-language Lambda functions for this job.
 jrLambdaResources :: Lens' JobResource [LambdaResource]
 jrLambdaResources = lens _jrLambdaResources (\ s a -> s{_jrLambdaResources = a}) . _Default . _Coerce;
@@ -842,9 +883,9 @@
                    (x .:? "LambdaResources" .!= mempty) <*>
                      (x .:? "S3Resources" .!= mempty))
 
-instance Hashable JobResource
+instance Hashable JobResource where
 
-instance NFData JobResource
+instance NFData JobResource where
 
 instance ToJSON JobResource where
         toJSON JobResource'{..}
@@ -859,10 +900,11 @@
 --
 -- /See:/ 'keyRange' smart constructor.
 data KeyRange = KeyRange'
-    { _krEndMarker   :: !(Maybe Text)
-    , _krBeginMarker :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _krEndMarker   :: !(Maybe Text)
+  , _krBeginMarker :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'KeyRange' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -872,12 +914,9 @@
 -- * 'krBeginMarker' - The key that starts an optional key range for an export job. Ranges are inclusive and UTF-8 binary sorted.
 keyRange
     :: KeyRange
-keyRange =
-    KeyRange'
-    { _krEndMarker = Nothing
-    , _krBeginMarker = Nothing
-    }
+keyRange = KeyRange' {_krEndMarker = Nothing, _krBeginMarker = Nothing}
 
+
 -- | The key that ends an optional key range for an export job. Ranges are inclusive and UTF-8 binary sorted.
 krEndMarker :: Lens' KeyRange (Maybe Text)
 krEndMarker = lens _krEndMarker (\ s a -> s{_krEndMarker = a});
@@ -893,9 +932,9 @@
                  KeyRange' <$>
                    (x .:? "EndMarker") <*> (x .:? "BeginMarker"))
 
-instance Hashable KeyRange
+instance Hashable KeyRange where
 
-instance NFData KeyRange
+instance NFData KeyRange where
 
 instance ToJSON KeyRange where
         toJSON KeyRange'{..}
@@ -910,10 +949,11 @@
 --
 -- /See:/ 'lambdaResource' smart constructor.
 data LambdaResource = LambdaResource'
-    { _lrEventTriggers :: !(Maybe [EventTriggerDefinition])
-    , _lrLambdaARN     :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _lrEventTriggers :: !(Maybe [EventTriggerDefinition])
+  , _lrLambdaARN     :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'LambdaResource' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -924,11 +964,9 @@
 lambdaResource
     :: LambdaResource
 lambdaResource =
-    LambdaResource'
-    { _lrEventTriggers = Nothing
-    , _lrLambdaARN = Nothing
-    }
+  LambdaResource' {_lrEventTriggers = Nothing, _lrLambdaARN = Nothing}
 
+
 -- | The array of ARNs for 'S3Resource' objects to trigger the 'LambdaResource' objects associated with this job.
 lrEventTriggers :: Lens' LambdaResource [EventTriggerDefinition]
 lrEventTriggers = lens _lrEventTriggers (\ s a -> s{_lrEventTriggers = a}) . _Default . _Coerce;
@@ -945,9 +983,9 @@
                    (x .:? "EventTriggers" .!= mempty) <*>
                      (x .:? "LambdaArn"))
 
-instance Hashable LambdaResource
+instance Hashable LambdaResource where
 
-instance NFData LambdaResource
+instance NFData LambdaResource where
 
 instance ToJSON LambdaResource where
         toJSON LambdaResource'{..}
@@ -964,11 +1002,12 @@
 --
 -- /See:/ 'notification' smart constructor.
 data Notification = Notification'
-    { _nNotifyAll         :: !(Maybe Bool)
-    , _nSNSTopicARN       :: !(Maybe Text)
-    , _nJobStatesToNotify :: !(Maybe [JobState])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _nNotifyAll         :: !(Maybe Bool)
+  , _nSNSTopicARN       :: !(Maybe Text)
+  , _nJobStatesToNotify :: !(Maybe [JobState])
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Notification' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -981,12 +1020,13 @@
 notification
     :: Notification
 notification =
-    Notification'
-    { _nNotifyAll = Nothing
-    , _nSNSTopicARN = Nothing
-    , _nJobStatesToNotify = Nothing
-    }
+  Notification'
+  { _nNotifyAll = Nothing
+  , _nSNSTopicARN = Nothing
+  , _nJobStatesToNotify = Nothing
+  }
 
+
 -- | Any change in job state will trigger a notification for this job.
 nNotifyAll :: Lens' Notification (Maybe Bool)
 nNotifyAll = lens _nNotifyAll (\ s a -> s{_nNotifyAll = a});
@@ -1007,9 +1047,9 @@
                    (x .:? "NotifyAll") <*> (x .:? "SnsTopicARN") <*>
                      (x .:? "JobStatesToNotify" .!= mempty))
 
-instance Hashable Notification
+instance Hashable Notification where
 
-instance NFData Notification
+instance NFData Notification where
 
 instance ToJSON Notification where
         toJSON Notification'{..}
@@ -1025,10 +1065,11 @@
 --
 -- /See:/ 's3Resource' smart constructor.
 data S3Resource = S3Resource'
-    { _srKeyRange  :: !(Maybe KeyRange)
-    , _srBucketARN :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _srKeyRange  :: !(Maybe KeyRange)
+  , _srBucketARN :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'S3Resource' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1038,12 +1079,9 @@
 -- * 'srBucketARN' - The Amazon Resource Name (ARN) of an Amazon S3 bucket.
 s3Resource
     :: S3Resource
-s3Resource =
-    S3Resource'
-    { _srKeyRange = Nothing
-    , _srBucketARN = Nothing
-    }
+s3Resource = S3Resource' {_srKeyRange = Nothing, _srBucketARN = Nothing}
 
+
 -- | For export jobs, you can provide an optional @KeyRange@ within a specific Amazon S3 bucket. The length of the range is defined at job creation, and has either an inclusive @BeginMarker@ , an inclusive @EndMarker@ , or both. Ranges are UTF-8 binary sorted.
 srKeyRange :: Lens' S3Resource (Maybe KeyRange)
 srKeyRange = lens _srKeyRange (\ s a -> s{_srKeyRange = a});
@@ -1059,9 +1097,9 @@
                  S3Resource' <$>
                    (x .:? "KeyRange") <*> (x .:? "BucketArn"))
 
-instance Hashable S3Resource
+instance Hashable S3Resource where
 
-instance NFData S3Resource
+instance NFData S3Resource where
 
 instance ToJSON S3Resource where
         toJSON S3Resource'{..}
@@ -1076,26 +1114,24 @@
 --
 -- /See:/ 'shipment' smart constructor.
 data Shipment = Shipment'
-    { _sStatus         :: !(Maybe Text)
-    , _sTrackingNumber :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sStatus         :: !(Maybe Text)
+  , _sTrackingNumber :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Shipment' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'sStatus' - Status information for a shipment. Valid statuses include @NEW@ , @IN_TRANSIT@ , and @DELIVERED@ .
+-- * 'sStatus' - Status information for a shipment.
 --
 -- * 'sTrackingNumber' - The tracking number for this job. Using this tracking number with your region's carrier's website, you can track a Snowball as the carrier transports it. For India, the carrier is Amazon Logistics. For all other regions, UPS is the carrier.
 shipment
     :: Shipment
-shipment =
-    Shipment'
-    { _sStatus = Nothing
-    , _sTrackingNumber = Nothing
-    }
+shipment = Shipment' {_sStatus = Nothing, _sTrackingNumber = Nothing}
 
--- | Status information for a shipment. Valid statuses include @NEW@ , @IN_TRANSIT@ , and @DELIVERED@ .
+
+-- | Status information for a shipment.
 sStatus :: Lens' Shipment (Maybe Text)
 sStatus = lens _sStatus (\ s a -> s{_sStatus = a});
 
@@ -1110,9 +1146,9 @@
                  Shipment' <$>
                    (x .:? "Status") <*> (x .:? "TrackingNumber"))
 
-instance Hashable Shipment
+instance Hashable Shipment where
 
-instance NFData Shipment
+instance NFData Shipment where
 
 -- | A job's shipping information, including inbound and outbound tracking numbers and shipping speed options.
 --
@@ -1120,11 +1156,12 @@
 --
 -- /See:/ 'shippingDetails' smart constructor.
 data ShippingDetails = ShippingDetails'
-    { _sdShippingOption   :: !(Maybe ShippingOption)
-    , _sdOutboundShipment :: !(Maybe Shipment)
-    , _sdInboundShipment  :: !(Maybe Shipment)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _sdShippingOption   :: !(Maybe ShippingOption)
+  , _sdOutboundShipment :: !(Maybe Shipment)
+  , _sdInboundShipment  :: !(Maybe Shipment)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ShippingDetails' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -1137,12 +1174,13 @@
 shippingDetails
     :: ShippingDetails
 shippingDetails =
-    ShippingDetails'
-    { _sdShippingOption = Nothing
-    , _sdOutboundShipment = Nothing
-    , _sdInboundShipment = Nothing
-    }
+  ShippingDetails'
+  { _sdShippingOption = Nothing
+  , _sdOutboundShipment = Nothing
+  , _sdInboundShipment = Nothing
+  }
 
+
 -- | The shipping speed for a particular job. This speed doesn't dictate how soon you'll get the Snowball from the job's creation date. This speed represents how quickly it moves to its destination while in transit. Regional shipping speeds are as follows:     * In Australia, you have access to express shipping. Typically, Snowballs shipped express are delivered in about a day.     * In the European Union (EU), you have access to express shipping. Typically, Snowballs shipped express are delivered in about a day. In addition, most countries in the EU have access to standard shipping, which typically takes less than a week, one way.     * In India, Snowballs are delivered in one to seven days.     * In the United States of America (US), you have access to one-day shipping and two-day shipping.
 sdShippingOption :: Lens' ShippingDetails (Maybe ShippingOption)
 sdShippingOption = lens _sdShippingOption (\ s a -> s{_sdShippingOption = a});
@@ -1164,6 +1202,6 @@
                      (x .:? "OutboundShipment")
                      <*> (x .:? "InboundShipment"))
 
-instance Hashable ShippingDetails
+instance Hashable ShippingDetails where
 
-instance NFData ShippingDetails
+instance NFData ShippingDetails where
diff --git a/gen/Network/AWS/Snowball/Types/Sum.hs b/gen/Network/AWS/Snowball/Types/Sum.hs
--- a/gen/Network/AWS/Snowball/Types/Sum.hs
+++ b/gen/Network/AWS/Snowball/Types/Sum.hs
@@ -9,24 +9,25 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.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.Snowball.Types.Sum where
 
-import           Network.AWS.Prelude
+import Network.AWS.Prelude
 
 data ClusterState
-    = AwaitingQuorum
-    | Cancelled
-    | Complete
-    | InUse
-    | Pending
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = AwaitingQuorum
+  | Cancelled
+  | Complete
+  | InUse
+  | Pending
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText ClusterState where
     parser = takeLowerText >>= \case
         "awaitingquorum" -> pure AwaitingQuorum
@@ -55,20 +56,21 @@
     parseJSON = parseJSONText "ClusterState"
 
 data JobState
-    = JSCancelled
-    | JSComplete
-    | JSInProgress
-    | JSInTransitToAWS
-    | JSInTransitToCustomer
-    | JSListing
-    | JSNew
-    | JSPending
-    | JSPreparingAppliance
-    | JSPreparingShipment
-    | JSWithAWS
-    | JSWithCustomer
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = JSCancelled
+  | JSComplete
+  | JSInProgress
+  | JSInTransitToAWS
+  | JSInTransitToCustomer
+  | JSListing
+  | JSNew
+  | JSPending
+  | JSPreparingAppliance
+  | JSPreparingShipment
+  | JSWithAWS
+  | JSWithCustomer
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText JobState where
     parser = takeLowerText >>= \case
         "cancelled" -> pure JSCancelled
@@ -114,11 +116,12 @@
     parseJSON = parseJSONText "JobState"
 
 data JobType
-    = Export
-    | Import
-    | LocalUse
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Export
+  | Import
+  | LocalUse
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText JobType where
     parser = takeLowerText >>= \case
         "export" -> pure Export
@@ -146,12 +149,13 @@
     parseJSON = parseJSONText "JobType"
 
 data ShippingOption
-    = SOExpress
-    | SONextDay
-    | SOSecondDay
-    | SOStandard
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = SOExpress
+  | SONextDay
+  | SOSecondDay
+  | SOStandard
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText ShippingOption where
     parser = takeLowerText >>= \case
         "express" -> pure SOExpress
@@ -181,12 +185,13 @@
     parseJSON = parseJSONText "ShippingOption"
 
 data SnowballCapacity
-    = NoPreference
-    | T100
-    | T50
-    | T80
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = NoPreference
+  | T100
+  | T50
+  | T80
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText SnowballCapacity where
     parser = takeLowerText >>= \case
         "nopreference" -> pure NoPreference
@@ -216,9 +221,10 @@
     parseJSON = parseJSONText "SnowballCapacity"
 
 data SnowballType
-    = Edge
-    | Standard
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Edge
+  | Standard
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
 
 instance FromText SnowballType where
     parser = takeLowerText >>= \case
diff --git a/gen/Network/AWS/Snowball/UpdateCluster.hs b/gen/Network/AWS/Snowball/UpdateCluster.hs
--- a/gen/Network/AWS/Snowball/UpdateCluster.hs
+++ b/gen/Network/AWS/Snowball/UpdateCluster.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.UpdateCluster
--- 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 @@
     , UpdateCluster
     -- * Request Lenses
     , ucNotification
+    , ucForwardingAddressId
     , ucAddressId
     , ucShippingOption
     , ucResources
@@ -42,30 +43,34 @@
     , ucrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'updateCluster' smart constructor.
 data UpdateCluster = UpdateCluster'
-    { _ucNotification   :: !(Maybe Notification)
-    , _ucAddressId      :: !(Maybe Text)
-    , _ucShippingOption :: !(Maybe ShippingOption)
-    , _ucResources      :: !(Maybe JobResource)
-    , _ucDescription    :: !(Maybe Text)
-    , _ucRoleARN        :: !(Maybe Text)
-    , _ucClusterId      :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ucNotification        :: !(Maybe Notification)
+  , _ucForwardingAddressId :: !(Maybe Text)
+  , _ucAddressId           :: !(Maybe Text)
+  , _ucShippingOption      :: !(Maybe ShippingOption)
+  , _ucResources           :: !(Maybe JobResource)
+  , _ucDescription         :: !(Maybe Text)
+  , _ucRoleARN             :: !(Maybe Text)
+  , _ucClusterId           :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateCluster' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'ucNotification' - The new or updated 'Notification' object.
 --
+-- * 'ucForwardingAddressId' - The updated ID for the forwarding address for a cluster. This field is not supported in most regions.
+--
 -- * 'ucAddressId' - The ID of the updated 'Address' object.
 --
 -- * 'ucShippingOption' - The updated shipping option value of this cluster's 'ShippingDetails' object.
@@ -81,20 +86,26 @@
     :: Text -- ^ 'ucClusterId'
     -> UpdateCluster
 updateCluster pClusterId_ =
-    UpdateCluster'
-    { _ucNotification = Nothing
-    , _ucAddressId = Nothing
-    , _ucShippingOption = Nothing
-    , _ucResources = Nothing
-    , _ucDescription = Nothing
-    , _ucRoleARN = Nothing
-    , _ucClusterId = pClusterId_
-    }
+  UpdateCluster'
+  { _ucNotification = Nothing
+  , _ucForwardingAddressId = Nothing
+  , _ucAddressId = Nothing
+  , _ucShippingOption = Nothing
+  , _ucResources = Nothing
+  , _ucDescription = Nothing
+  , _ucRoleARN = Nothing
+  , _ucClusterId = pClusterId_
+  }
 
+
 -- | The new or updated 'Notification' object.
 ucNotification :: Lens' UpdateCluster (Maybe Notification)
 ucNotification = lens _ucNotification (\ s a -> s{_ucNotification = a});
 
+-- | The updated ID for the forwarding address for a cluster. This field is not supported in most regions.
+ucForwardingAddressId :: Lens' UpdateCluster (Maybe Text)
+ucForwardingAddressId = lens _ucForwardingAddressId (\ s a -> s{_ucForwardingAddressId = a});
+
 -- | The ID of the updated 'Address' object.
 ucAddressId :: Lens' UpdateCluster (Maybe Text)
 ucAddressId = lens _ucAddressId (\ s a -> s{_ucAddressId = a});
@@ -127,9 +138,9 @@
               (\ s h x ->
                  UpdateClusterResponse' <$> (pure (fromEnum s)))
 
-instance Hashable UpdateCluster
+instance Hashable UpdateCluster where
 
-instance NFData UpdateCluster
+instance NFData UpdateCluster where
 
 instance ToHeaders UpdateCluster where
         toHeaders
@@ -146,6 +157,8 @@
           = object
               (catMaybes
                  [("Notification" .=) <$> _ucNotification,
+                  ("ForwardingAddressId" .=) <$>
+                    _ucForwardingAddressId,
                   ("AddressId" .=) <$> _ucAddressId,
                   ("ShippingOption" .=) <$> _ucShippingOption,
                   ("Resources" .=) <$> _ucResources,
@@ -161,9 +174,10 @@
 
 -- | /See:/ 'updateClusterResponse' smart constructor.
 newtype UpdateClusterResponse = UpdateClusterResponse'
-    { _ucrsResponseStatus :: Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ucrsResponseStatus :: Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateClusterResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -173,12 +187,11 @@
     :: Int -- ^ 'ucrsResponseStatus'
     -> UpdateClusterResponse
 updateClusterResponse pResponseStatus_ =
-    UpdateClusterResponse'
-    { _ucrsResponseStatus = pResponseStatus_
-    }
+  UpdateClusterResponse' {_ucrsResponseStatus = pResponseStatus_}
 
+
 -- | -- | The response status code.
 ucrsResponseStatus :: Lens' UpdateClusterResponse Int
 ucrsResponseStatus = lens _ucrsResponseStatus (\ s a -> s{_ucrsResponseStatus = a});
 
-instance NFData UpdateClusterResponse
+instance NFData UpdateClusterResponse where
diff --git a/gen/Network/AWS/Snowball/UpdateJob.hs b/gen/Network/AWS/Snowball/UpdateJob.hs
--- a/gen/Network/AWS/Snowball/UpdateJob.hs
+++ b/gen/Network/AWS/Snowball/UpdateJob.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.UpdateJob
--- 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 @@
     , UpdateJob
     -- * Request Lenses
     , ujNotification
+    , ujForwardingAddressId
     , ujAddressId
     , ujShippingOption
     , ujResources
@@ -43,31 +44,35 @@
     , ujrsResponseStatus
     ) where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Snowball.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+import Network.AWS.Snowball.Types
+import Network.AWS.Snowball.Types.Product
 
 -- | /See:/ 'updateJob' smart constructor.
 data UpdateJob = UpdateJob'
-    { _ujNotification               :: !(Maybe Notification)
-    , _ujAddressId                  :: !(Maybe Text)
-    , _ujShippingOption             :: !(Maybe ShippingOption)
-    , _ujResources                  :: !(Maybe JobResource)
-    , _ujDescription                :: !(Maybe Text)
-    , _ujRoleARN                    :: !(Maybe Text)
-    , _ujSnowballCapacityPreference :: !(Maybe SnowballCapacity)
-    , _ujJobId                      :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ujNotification               :: !(Maybe Notification)
+  , _ujForwardingAddressId        :: !(Maybe Text)
+  , _ujAddressId                  :: !(Maybe Text)
+  , _ujShippingOption             :: !(Maybe ShippingOption)
+  , _ujResources                  :: !(Maybe JobResource)
+  , _ujDescription                :: !(Maybe Text)
+  , _ujRoleARN                    :: !(Maybe Text)
+  , _ujSnowballCapacityPreference :: !(Maybe SnowballCapacity)
+  , _ujJobId                      :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateJob' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'ujNotification' - The new or updated 'Notification' object.
 --
+-- * 'ujForwardingAddressId' - The updated ID for the forwarding address for a job. This field is not supported in most regions.
+--
 -- * 'ujAddressId' - The ID of the updated 'Address' object.
 --
 -- * 'ujShippingOption' - The updated shipping option value of this job's 'ShippingDetails' object.
@@ -85,21 +90,27 @@
     :: Text -- ^ 'ujJobId'
     -> UpdateJob
 updateJob pJobId_ =
-    UpdateJob'
-    { _ujNotification = Nothing
-    , _ujAddressId = Nothing
-    , _ujShippingOption = Nothing
-    , _ujResources = Nothing
-    , _ujDescription = Nothing
-    , _ujRoleARN = Nothing
-    , _ujSnowballCapacityPreference = Nothing
-    , _ujJobId = pJobId_
-    }
+  UpdateJob'
+  { _ujNotification = Nothing
+  , _ujForwardingAddressId = Nothing
+  , _ujAddressId = Nothing
+  , _ujShippingOption = Nothing
+  , _ujResources = Nothing
+  , _ujDescription = Nothing
+  , _ujRoleARN = Nothing
+  , _ujSnowballCapacityPreference = Nothing
+  , _ujJobId = pJobId_
+  }
 
+
 -- | The new or updated 'Notification' object.
 ujNotification :: Lens' UpdateJob (Maybe Notification)
 ujNotification = lens _ujNotification (\ s a -> s{_ujNotification = a});
 
+-- | The updated ID for the forwarding address for a job. This field is not supported in most regions.
+ujForwardingAddressId :: Lens' UpdateJob (Maybe Text)
+ujForwardingAddressId = lens _ujForwardingAddressId (\ s a -> s{_ujForwardingAddressId = a});
+
 -- | The ID of the updated 'Address' object.
 ujAddressId :: Lens' UpdateJob (Maybe Text)
 ujAddressId = lens _ujAddressId (\ s a -> s{_ujAddressId = a});
@@ -136,9 +147,9 @@
               (\ s h x ->
                  UpdateJobResponse' <$> (pure (fromEnum s)))
 
-instance Hashable UpdateJob
+instance Hashable UpdateJob where
 
-instance NFData UpdateJob
+instance NFData UpdateJob where
 
 instance ToHeaders UpdateJob where
         toHeaders
@@ -155,6 +166,8 @@
           = object
               (catMaybes
                  [("Notification" .=) <$> _ujNotification,
+                  ("ForwardingAddressId" .=) <$>
+                    _ujForwardingAddressId,
                   ("AddressId" .=) <$> _ujAddressId,
                   ("ShippingOption" .=) <$> _ujShippingOption,
                   ("Resources" .=) <$> _ujResources,
@@ -172,9 +185,10 @@
 
 -- | /See:/ 'updateJobResponse' smart constructor.
 newtype UpdateJobResponse = UpdateJobResponse'
-    { _ujrsResponseStatus :: Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ujrsResponseStatus :: Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'UpdateJobResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -184,12 +198,11 @@
     :: Int -- ^ 'ujrsResponseStatus'
     -> UpdateJobResponse
 updateJobResponse pResponseStatus_ =
-    UpdateJobResponse'
-    { _ujrsResponseStatus = pResponseStatus_
-    }
+  UpdateJobResponse' {_ujrsResponseStatus = pResponseStatus_}
 
+
 -- | -- | The response status code.
 ujrsResponseStatus :: Lens' UpdateJobResponse Int
 ujrsResponseStatus = lens _ujrsResponseStatus (\ s a -> s{_ujrsResponseStatus = a});
 
-instance NFData UpdateJobResponse
+instance NFData UpdateJobResponse where
diff --git a/gen/Network/AWS/Snowball/Waiters.hs b/gen/Network/AWS/Snowball/Waiters.hs
--- a/gen/Network/AWS/Snowball/Waiters.hs
+++ b/gen/Network/AWS/Snowball/Waiters.hs
@@ -7,15 +7,15 @@
 
 -- |
 -- Module      : Network.AWS.Snowball.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.Snowball.Waiters where
 
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Snowball.Types
-import           Network.AWS.Waiter
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Snowball.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/Snowball.hs b/test/Test/AWS/Gen/Snowball.hs
--- a/test/Test/AWS/Gen/Snowball.hs
+++ b/test/Test/AWS/Gen/Snowball.hs
@@ -5,20 +5,20 @@
 
 -- |
 -- Module      : Test.AWS.Gen.Snowball
--- 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.Snowball where
 
 import Data.Proxy
+import Network.AWS.Snowball
 import Test.AWS.Fixture
 import Test.AWS.Prelude
-import Test.Tasty
-import Network.AWS.Snowball
 import Test.AWS.Snowball.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.
