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-efs.cabal b/amazonka-efs.cabal
--- a/amazonka-efs.cabal
+++ b/amazonka-efs.cabal
@@ -1,13 +1,13 @@
 name:                  amazonka-efs
-version:               1.4.5
+version:               1.5.0
 synopsis:              Amazon Elastic File System 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-efs
 
 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.EFS
@@ -59,7 +64,7 @@
         , Network.AWS.EFS.Types.Sum
 
     build-depends:
-          amazonka-core == 1.4.5.*
+          amazonka-core == 1.5.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-efs-test
@@ -79,9 +84,9 @@
         , Test.AWS.EFS.Internal
 
     build-depends:
-          amazonka-core == 1.4.5.*
-        , amazonka-test == 1.4.5.*
-        , amazonka-efs == 1.4.5.*
+          amazonka-core == 1.5.0.*
+        , amazonka-test == 1.5.0.*
+        , amazonka-efs
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/EFS.hs b/gen/Network/AWS/EFS.hs
--- a/gen/Network/AWS/EFS.hs
+++ b/gen/Network/AWS/EFS.hs
@@ -5,9 +5,9 @@
 
 -- |
 -- Module      : Network.AWS.EFS
--- 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)
 --
@@ -83,13 +83,13 @@
     -- * Operations
     -- $operations
 
-    -- ** DescribeTags
+    -- ** DescribeTags (Paginated)
     , module Network.AWS.EFS.DescribeTags
 
-    -- ** DescribeMountTargets
+    -- ** DescribeMountTargets (Paginated)
     , module Network.AWS.EFS.DescribeMountTargets
 
-    -- ** DescribeFileSystems
+    -- ** DescribeFileSystems (Paginated)
     , module Network.AWS.EFS.DescribeFileSystems
 
     -- ** DeleteMountTarget
@@ -127,6 +127,8 @@
     -- ** FileSystemDescription
     , FileSystemDescription
     , fileSystemDescription
+    , fsdEncrypted
+    , fsdKMSKeyId
     , fsdName
     , fsdOwnerId
     , fsdCreationToken
@@ -161,19 +163,19 @@
     , tagValue
     ) where
 
-import           Network.AWS.EFS.CreateFileSystem
-import           Network.AWS.EFS.CreateMountTarget
-import           Network.AWS.EFS.CreateTags
-import           Network.AWS.EFS.DeleteFileSystem
-import           Network.AWS.EFS.DeleteMountTarget
-import           Network.AWS.EFS.DeleteTags
-import           Network.AWS.EFS.DescribeFileSystems
-import           Network.AWS.EFS.DescribeMountTargets
-import           Network.AWS.EFS.DescribeMountTargetSecurityGroups
-import           Network.AWS.EFS.DescribeTags
-import           Network.AWS.EFS.ModifyMountTargetSecurityGroups
-import           Network.AWS.EFS.Types
-import           Network.AWS.EFS.Waiters
+import Network.AWS.EFS.CreateFileSystem
+import Network.AWS.EFS.CreateMountTarget
+import Network.AWS.EFS.CreateTags
+import Network.AWS.EFS.DeleteFileSystem
+import Network.AWS.EFS.DeleteMountTarget
+import Network.AWS.EFS.DeleteTags
+import Network.AWS.EFS.DescribeFileSystems
+import Network.AWS.EFS.DescribeMountTargets
+import Network.AWS.EFS.DescribeMountTargetSecurityGroups
+import Network.AWS.EFS.DescribeTags
+import Network.AWS.EFS.ModifyMountTargetSecurityGroups
+import Network.AWS.EFS.Types
+import Network.AWS.EFS.Waiters
 
 {- $errors
 Error matchers are designed for use with the functions provided by
diff --git a/gen/Network/AWS/EFS/CreateFileSystem.hs b/gen/Network/AWS/EFS/CreateFileSystem.hs
--- a/gen/Network/AWS/EFS/CreateFileSystem.hs
+++ b/gen/Network/AWS/EFS/CreateFileSystem.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.EFS.CreateFileSystem
--- 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)
 --
@@ -44,12 +44,16 @@
     , CreateFileSystem
     -- * Request Lenses
     , cfsPerformanceMode
+    , cfsEncrypted
+    , cfsKMSKeyId
     , cfsCreationToken
 
     -- * Destructuring the Response
     , fileSystemDescription
     , FileSystemDescription
     -- * Response Lenses
+    , fsdEncrypted
+    , fsdKMSKeyId
     , fsdName
     , fsdOwnerId
     , fsdCreationToken
@@ -61,39 +65,57 @@
     , fsdPerformanceMode
     ) where
 
-import           Network.AWS.EFS.Types
-import           Network.AWS.EFS.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.EFS.Types
+import Network.AWS.EFS.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- | /See:/ 'createFileSystem' smart constructor.
 data CreateFileSystem = CreateFileSystem'
-    { _cfsPerformanceMode :: !(Maybe PerformanceMode)
-    , _cfsCreationToken   :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cfsPerformanceMode :: !(Maybe PerformanceMode)
+  , _cfsEncrypted       :: !(Maybe Bool)
+  , _cfsKMSKeyId        :: !(Maybe Text)
+  , _cfsCreationToken   :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateFileSystem' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
 -- * 'cfsPerformanceMode' - The @PerformanceMode@ of the file system. We recommend @generalPurpose@ performance mode for most file systems. File systems using the @maxIO@ performance mode can scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for most file operations. This can't be changed after the file system has been created.
 --
+-- * 'cfsEncrypted' - A boolean value that, if true, creates an encrypted file system. When creating an encrypted file system, you have the option of specifying a 'CreateFileSystemRequest$KmsKeyId' for an existing AWS Key Management Service (AWS KMS) customer master key (CMK). If you don't specify a CMK, then the default CMK for Amazon EFS, @/aws/elasticfilesystem@ , is used to protect the encrypted file system.
+--
+-- * 'cfsKMSKeyId' - The id of the AWS KMS CMK that will be used to protect the encrypted file system. This parameter is only required if you want to use a non-default CMK. If this parameter is not specified, the default CMK for Amazon EFS is used. This id can be in one of the following formats:     * Key ID - A unique identifier of the key. For example, @1234abcd-12ab-34cd-56ef-1234567890ab@ .     * ARN - An Amazon Resource Name for the key. For example, @arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab@ .     * Key alias - A previously created display name for a key. For example, @alias/projectKey1@ .     * Key alias ARN - An Amazon Resource Name for a key alias. For example, @arn:aws:kms:us-west-2:444455556666:alias/projectKey1@ . Note that if the KmsKeyId is specified, the 'CreateFileSystemRequest$Encrypted' parameter must be set to true.
+--
 -- * 'cfsCreationToken' - String of up to 64 ASCII characters. Amazon EFS uses this to ensure idempotent creation.
 createFileSystem
     :: Text -- ^ 'cfsCreationToken'
     -> CreateFileSystem
 createFileSystem pCreationToken_ =
-    CreateFileSystem'
-    { _cfsPerformanceMode = Nothing
-    , _cfsCreationToken = pCreationToken_
-    }
+  CreateFileSystem'
+  { _cfsPerformanceMode = Nothing
+  , _cfsEncrypted = Nothing
+  , _cfsKMSKeyId = Nothing
+  , _cfsCreationToken = pCreationToken_
+  }
 
+
 -- | The @PerformanceMode@ of the file system. We recommend @generalPurpose@ performance mode for most file systems. File systems using the @maxIO@ performance mode can scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for most file operations. This can't be changed after the file system has been created.
 cfsPerformanceMode :: Lens' CreateFileSystem (Maybe PerformanceMode)
 cfsPerformanceMode = lens _cfsPerformanceMode (\ s a -> s{_cfsPerformanceMode = a});
 
+-- | A boolean value that, if true, creates an encrypted file system. When creating an encrypted file system, you have the option of specifying a 'CreateFileSystemRequest$KmsKeyId' for an existing AWS Key Management Service (AWS KMS) customer master key (CMK). If you don't specify a CMK, then the default CMK for Amazon EFS, @/aws/elasticfilesystem@ , is used to protect the encrypted file system.
+cfsEncrypted :: Lens' CreateFileSystem (Maybe Bool)
+cfsEncrypted = lens _cfsEncrypted (\ s a -> s{_cfsEncrypted = a});
+
+-- | The id of the AWS KMS CMK that will be used to protect the encrypted file system. This parameter is only required if you want to use a non-default CMK. If this parameter is not specified, the default CMK for Amazon EFS is used. This id can be in one of the following formats:     * Key ID - A unique identifier of the key. For example, @1234abcd-12ab-34cd-56ef-1234567890ab@ .     * ARN - An Amazon Resource Name for the key. For example, @arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab@ .     * Key alias - A previously created display name for a key. For example, @alias/projectKey1@ .     * Key alias ARN - An Amazon Resource Name for a key alias. For example, @arn:aws:kms:us-west-2:444455556666:alias/projectKey1@ . Note that if the KmsKeyId is specified, the 'CreateFileSystemRequest$Encrypted' parameter must be set to true.
+cfsKMSKeyId :: Lens' CreateFileSystem (Maybe Text)
+cfsKMSKeyId = lens _cfsKMSKeyId (\ s a -> s{_cfsKMSKeyId = a});
+
 -- | String of up to 64 ASCII characters. Amazon EFS uses this to ensure idempotent creation.
 cfsCreationToken :: Lens' CreateFileSystem Text
 cfsCreationToken = lens _cfsCreationToken (\ s a -> s{_cfsCreationToken = a});
@@ -103,9 +125,9 @@
         request = postJSON efs
         response = receiveJSON (\ s h x -> eitherParseJSON x)
 
-instance Hashable CreateFileSystem
+instance Hashable CreateFileSystem where
 
-instance NFData CreateFileSystem
+instance NFData CreateFileSystem where
 
 instance ToHeaders CreateFileSystem where
         toHeaders = const mempty
@@ -115,6 +137,8 @@
           = object
               (catMaybes
                  [("PerformanceMode" .=) <$> _cfsPerformanceMode,
+                  ("Encrypted" .=) <$> _cfsEncrypted,
+                  ("KmsKeyId" .=) <$> _cfsKMSKeyId,
                   Just ("CreationToken" .= _cfsCreationToken)])
 
 instance ToPath CreateFileSystem where
diff --git a/gen/Network/AWS/EFS/CreateMountTarget.hs b/gen/Network/AWS/EFS/CreateMountTarget.hs
--- a/gen/Network/AWS/EFS/CreateMountTarget.hs
+++ b/gen/Network/AWS/EFS/CreateMountTarget.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.EFS.CreateMountTarget
--- 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)
 --
@@ -61,7 +61,7 @@
 --
 --
 --
--- Each Amazon EFS mount target has one corresponding requestor-managed EC2 network interface. After the network interface is created, Amazon EFS sets the @NetworkInterfaceId@ field in the mount target's description to the network interface ID, and the @IpAddress@ field to its address. If network interface creation fails, the entire @CreateMountTarget@ operation fails.
+-- Each Amazon EFS mount target has one corresponding requester-managed EC2 network interface. After the network interface is created, Amazon EFS sets the @NetworkInterfaceId@ field in the mount target's description to the network interface ID, and the @IpAddress@ field to its address. If network interface creation fails, the entire @CreateMountTarget@ operation fails.
 --
 --
 --
@@ -107,12 +107,12 @@
     , mtdLifeCycleState
     ) where
 
-import           Network.AWS.EFS.Types
-import           Network.AWS.EFS.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.EFS.Types
+import Network.AWS.EFS.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -120,12 +120,13 @@
 --
 -- /See:/ 'createMountTarget' smart constructor.
 data CreateMountTarget = CreateMountTarget'
-    { _cmtIPAddress      :: !(Maybe Text)
-    , _cmtSecurityGroups :: !(Maybe [Text])
-    , _cmtFileSystemId   :: !Text
-    , _cmtSubnetId       :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _cmtIPAddress      :: !(Maybe Text)
+  , _cmtSecurityGroups :: !(Maybe [Text])
+  , _cmtFileSystemId   :: !Text
+  , _cmtSubnetId       :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateMountTarget' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -142,13 +143,14 @@
     -> Text -- ^ 'cmtSubnetId'
     -> CreateMountTarget
 createMountTarget pFileSystemId_ pSubnetId_ =
-    CreateMountTarget'
-    { _cmtIPAddress = Nothing
-    , _cmtSecurityGroups = Nothing
-    , _cmtFileSystemId = pFileSystemId_
-    , _cmtSubnetId = pSubnetId_
-    }
+  CreateMountTarget'
+  { _cmtIPAddress = Nothing
+  , _cmtSecurityGroups = Nothing
+  , _cmtFileSystemId = pFileSystemId_
+  , _cmtSubnetId = pSubnetId_
+  }
 
+
 -- | Valid IPv4 address within the address range of the specified subnet.
 cmtIPAddress :: Lens' CreateMountTarget (Maybe Text)
 cmtIPAddress = lens _cmtIPAddress (\ s a -> s{_cmtIPAddress = a});
@@ -170,9 +172,9 @@
         request = postJSON efs
         response = receiveJSON (\ s h x -> eitherParseJSON x)
 
-instance Hashable CreateMountTarget
+instance Hashable CreateMountTarget where
 
-instance NFData CreateMountTarget
+instance NFData CreateMountTarget where
 
 instance ToHeaders CreateMountTarget where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/EFS/CreateTags.hs b/gen/Network/AWS/EFS/CreateTags.hs
--- a/gen/Network/AWS/EFS/CreateTags.hs
+++ b/gen/Network/AWS/EFS/CreateTags.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.EFS.CreateTags
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,12 +37,12 @@
     , CreateTagsResponse
     ) where
 
-import           Network.AWS.EFS.Types
-import           Network.AWS.EFS.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.EFS.Types
+import Network.AWS.EFS.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -50,10 +50,11 @@
 --
 -- /See:/ 'createTags' smart constructor.
 data CreateTags = CreateTags'
-    { _ctFileSystemId :: !Text
-    , _ctTags         :: ![Tag]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _ctFileSystemId :: !Text
+  , _ctTags         :: ![Tag]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateTags' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -65,11 +66,9 @@
     :: Text -- ^ 'ctFileSystemId'
     -> CreateTags
 createTags pFileSystemId_ =
-    CreateTags'
-    { _ctFileSystemId = pFileSystemId_
-    , _ctTags = mempty
-    }
+  CreateTags' {_ctFileSystemId = pFileSystemId_, _ctTags = mempty}
 
+
 -- | ID of the file system whose tags you want to modify (String). This operation modifies the tags only, not the file system.
 ctFileSystemId :: Lens' CreateTags Text
 ctFileSystemId = lens _ctFileSystemId (\ s a -> s{_ctFileSystemId = a});
@@ -83,9 +82,9 @@
         request = postJSON efs
         response = receiveNull CreateTagsResponse'
 
-instance Hashable CreateTags
+instance Hashable CreateTags where
 
-instance NFData CreateTags
+instance NFData CreateTags where
 
 instance ToHeaders CreateTags where
         toHeaders = const mempty
@@ -104,13 +103,15 @@
 
 -- | /See:/ 'createTagsResponse' smart constructor.
 data CreateTagsResponse =
-    CreateTagsResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  CreateTagsResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'CreateTagsResponse' with the minimum fields required to make a request.
 --
 createTagsResponse
     :: CreateTagsResponse
 createTagsResponse = CreateTagsResponse'
 
-instance NFData CreateTagsResponse
+
+instance NFData CreateTagsResponse where
diff --git a/gen/Network/AWS/EFS/DeleteFileSystem.hs b/gen/Network/AWS/EFS/DeleteFileSystem.hs
--- a/gen/Network/AWS/EFS/DeleteFileSystem.hs
+++ b/gen/Network/AWS/EFS/DeleteFileSystem.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DeleteFileSystem
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -38,12 +38,12 @@
     , DeleteFileSystemResponse
     ) where
 
-import           Network.AWS.EFS.Types
-import           Network.AWS.EFS.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.EFS.Types
+import Network.AWS.EFS.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -51,9 +51,10 @@
 --
 -- /See:/ 'deleteFileSystem' smart constructor.
 newtype DeleteFileSystem = DeleteFileSystem'
-    { _delFileSystemId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _delFileSystemId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteFileSystem' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -63,10 +64,9 @@
     :: Text -- ^ 'delFileSystemId'
     -> DeleteFileSystem
 deleteFileSystem pFileSystemId_ =
-    DeleteFileSystem'
-    { _delFileSystemId = pFileSystemId_
-    }
+  DeleteFileSystem' {_delFileSystemId = pFileSystemId_}
 
+
 -- | ID of the file system you want to delete.
 delFileSystemId :: Lens' DeleteFileSystem Text
 delFileSystemId = lens _delFileSystemId (\ s a -> s{_delFileSystemId = a});
@@ -76,9 +76,9 @@
         request = delete efs
         response = receiveNull DeleteFileSystemResponse'
 
-instance Hashable DeleteFileSystem
+instance Hashable DeleteFileSystem where
 
-instance NFData DeleteFileSystem
+instance NFData DeleteFileSystem where
 
 instance ToHeaders DeleteFileSystem where
         toHeaders = const mempty
@@ -93,13 +93,15 @@
 
 -- | /See:/ 'deleteFileSystemResponse' smart constructor.
 data DeleteFileSystemResponse =
-    DeleteFileSystemResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  DeleteFileSystemResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteFileSystemResponse' with the minimum fields required to make a request.
 --
 deleteFileSystemResponse
     :: DeleteFileSystemResponse
 deleteFileSystemResponse = DeleteFileSystemResponse'
 
-instance NFData DeleteFileSystemResponse
+
+instance NFData DeleteFileSystemResponse where
diff --git a/gen/Network/AWS/EFS/DeleteMountTarget.hs b/gen/Network/AWS/EFS/DeleteMountTarget.hs
--- a/gen/Network/AWS/EFS/DeleteMountTarget.hs
+++ b/gen/Network/AWS/EFS/DeleteMountTarget.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DeleteMountTarget
--- 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)
 --
@@ -48,12 +48,12 @@
     , DeleteMountTargetResponse
     ) where
 
-import           Network.AWS.EFS.Types
-import           Network.AWS.EFS.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.EFS.Types
+import Network.AWS.EFS.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -61,9 +61,10 @@
 --
 -- /See:/ 'deleteMountTarget' smart constructor.
 newtype DeleteMountTarget = DeleteMountTarget'
-    { _dMountTargetId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dMountTargetId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteMountTarget' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -73,10 +74,9 @@
     :: Text -- ^ 'dMountTargetId'
     -> DeleteMountTarget
 deleteMountTarget pMountTargetId_ =
-    DeleteMountTarget'
-    { _dMountTargetId = pMountTargetId_
-    }
+  DeleteMountTarget' {_dMountTargetId = pMountTargetId_}
 
+
 -- | ID of the mount target to delete (String).
 dMountTargetId :: Lens' DeleteMountTarget Text
 dMountTargetId = lens _dMountTargetId (\ s a -> s{_dMountTargetId = a});
@@ -86,9 +86,9 @@
         request = delete efs
         response = receiveNull DeleteMountTargetResponse'
 
-instance Hashable DeleteMountTarget
+instance Hashable DeleteMountTarget where
 
-instance NFData DeleteMountTarget
+instance NFData DeleteMountTarget where
 
 instance ToHeaders DeleteMountTarget where
         toHeaders = const mempty
@@ -103,13 +103,15 @@
 
 -- | /See:/ 'deleteMountTargetResponse' smart constructor.
 data DeleteMountTargetResponse =
-    DeleteMountTargetResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  DeleteMountTargetResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteMountTargetResponse' with the minimum fields required to make a request.
 --
 deleteMountTargetResponse
     :: DeleteMountTargetResponse
 deleteMountTargetResponse = DeleteMountTargetResponse'
 
-instance NFData DeleteMountTargetResponse
+
+instance NFData DeleteMountTargetResponse where
diff --git a/gen/Network/AWS/EFS/DeleteTags.hs b/gen/Network/AWS/EFS/DeleteTags.hs
--- a/gen/Network/AWS/EFS/DeleteTags.hs
+++ b/gen/Network/AWS/EFS/DeleteTags.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DeleteTags
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -37,12 +37,12 @@
     , DeleteTagsResponse
     ) where
 
-import           Network.AWS.EFS.Types
-import           Network.AWS.EFS.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.EFS.Types
+import Network.AWS.EFS.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -50,10 +50,11 @@
 --
 -- /See:/ 'deleteTags' smart constructor.
 data DeleteTags = DeleteTags'
-    { _dFileSystemId :: !Text
-    , _dTagKeys      :: ![Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dFileSystemId :: !Text
+  , _dTagKeys      :: ![Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteTags' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -65,11 +66,9 @@
     :: Text -- ^ 'dFileSystemId'
     -> DeleteTags
 deleteTags pFileSystemId_ =
-    DeleteTags'
-    { _dFileSystemId = pFileSystemId_
-    , _dTagKeys = mempty
-    }
+  DeleteTags' {_dFileSystemId = pFileSystemId_, _dTagKeys = mempty}
 
+
 -- | ID of the file system whose tags you want to delete (String).
 dFileSystemId :: Lens' DeleteTags Text
 dFileSystemId = lens _dFileSystemId (\ s a -> s{_dFileSystemId = a});
@@ -83,9 +82,9 @@
         request = postJSON efs
         response = receiveNull DeleteTagsResponse'
 
-instance Hashable DeleteTags
+instance Hashable DeleteTags where
 
-instance NFData DeleteTags
+instance NFData DeleteTags where
 
 instance ToHeaders DeleteTags where
         toHeaders = const mempty
@@ -104,13 +103,15 @@
 
 -- | /See:/ 'deleteTagsResponse' smart constructor.
 data DeleteTagsResponse =
-    DeleteTagsResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  DeleteTagsResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DeleteTagsResponse' with the minimum fields required to make a request.
 --
 deleteTagsResponse
     :: DeleteTagsResponse
 deleteTagsResponse = DeleteTagsResponse'
 
-instance NFData DeleteTagsResponse
+
+instance NFData DeleteTagsResponse where
diff --git a/gen/Network/AWS/EFS/DescribeFileSystems.hs b/gen/Network/AWS/EFS/DescribeFileSystems.hs
--- a/gen/Network/AWS/EFS/DescribeFileSystems.hs
+++ b/gen/Network/AWS/EFS/DescribeFileSystems.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DescribeFileSystems
--- 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)
 --
@@ -31,6 +31,8 @@
 --
 -- This operation requires permissions for the @elasticfilesystem:DescribeFileSystems@ action.
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.EFS.DescribeFileSystems
     (
     -- * Creating a Request
@@ -52,12 +54,13 @@
     , dfsrsResponseStatus
     ) where
 
-import           Network.AWS.EFS.Types
-import           Network.AWS.EFS.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.EFS.Types
+import Network.AWS.EFS.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -65,12 +68,13 @@
 --
 -- /See:/ 'describeFileSystems' smart constructor.
 data DescribeFileSystems = DescribeFileSystems'
-    { _dfsFileSystemId  :: !(Maybe Text)
-    , _dfsCreationToken :: !(Maybe Text)
-    , _dfsMarker        :: !(Maybe Text)
-    , _dfsMaxItems      :: !(Maybe Nat)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dfsFileSystemId  :: !(Maybe Text)
+  , _dfsCreationToken :: !(Maybe Text)
+  , _dfsMarker        :: !(Maybe Text)
+  , _dfsMaxItems      :: !(Maybe Nat)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeFileSystems' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -85,13 +89,14 @@
 describeFileSystems
     :: DescribeFileSystems
 describeFileSystems =
-    DescribeFileSystems'
-    { _dfsFileSystemId = Nothing
-    , _dfsCreationToken = Nothing
-    , _dfsMarker = Nothing
-    , _dfsMaxItems = Nothing
-    }
+  DescribeFileSystems'
+  { _dfsFileSystemId = Nothing
+  , _dfsCreationToken = Nothing
+  , _dfsMarker = Nothing
+  , _dfsMaxItems = Nothing
+  }
 
+
 -- | (Optional) ID of the file system whose description you want to retrieve (String).
 dfsFileSystemId :: Lens' DescribeFileSystems (Maybe Text)
 dfsFileSystemId = lens _dfsFileSystemId (\ s a -> s{_dfsFileSystemId = a});
@@ -108,6 +113,13 @@
 dfsMaxItems :: Lens' DescribeFileSystems (Maybe Natural)
 dfsMaxItems = lens _dfsMaxItems (\ s a -> s{_dfsMaxItems = a}) . mapping _Nat;
 
+instance AWSPager DescribeFileSystems where
+        page rq rs
+          | stop (rs ^. dfsrsNextMarker) = Nothing
+          | stop (rs ^. dfsrsFileSystems) = Nothing
+          | otherwise =
+            Just $ rq & dfsMarker .~ rs ^. dfsrsNextMarker
+
 instance AWSRequest DescribeFileSystems where
         type Rs DescribeFileSystems =
              DescribeFileSystemsResponse
@@ -120,9 +132,9 @@
                      <*> (x .?> "NextMarker")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeFileSystems
+instance Hashable DescribeFileSystems where
 
-instance NFData DescribeFileSystems
+instance NFData DescribeFileSystems where
 
 instance ToHeaders DescribeFileSystems where
         toHeaders = const mempty
@@ -139,12 +151,13 @@
 
 -- | /See:/ 'describeFileSystemsResponse' smart constructor.
 data DescribeFileSystemsResponse = DescribeFileSystemsResponse'
-    { _dfsrsFileSystems    :: !(Maybe [FileSystemDescription])
-    , _dfsrsMarker         :: !(Maybe Text)
-    , _dfsrsNextMarker     :: !(Maybe Text)
-    , _dfsrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dfsrsFileSystems    :: !(Maybe [FileSystemDescription])
+  , _dfsrsMarker         :: !(Maybe Text)
+  , _dfsrsNextMarker     :: !(Maybe Text)
+  , _dfsrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeFileSystemsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -160,13 +173,14 @@
     :: Int -- ^ 'dfsrsResponseStatus'
     -> DescribeFileSystemsResponse
 describeFileSystemsResponse pResponseStatus_ =
-    DescribeFileSystemsResponse'
-    { _dfsrsFileSystems = Nothing
-    , _dfsrsMarker = Nothing
-    , _dfsrsNextMarker = Nothing
-    , _dfsrsResponseStatus = pResponseStatus_
-    }
+  DescribeFileSystemsResponse'
+  { _dfsrsFileSystems = Nothing
+  , _dfsrsMarker = Nothing
+  , _dfsrsNextMarker = Nothing
+  , _dfsrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Array of file system descriptions.
 dfsrsFileSystems :: Lens' DescribeFileSystemsResponse [FileSystemDescription]
 dfsrsFileSystems = lens _dfsrsFileSystems (\ s a -> s{_dfsrsFileSystems = a}) . _Default . _Coerce;
@@ -183,4 +197,4 @@
 dfsrsResponseStatus :: Lens' DescribeFileSystemsResponse Int
 dfsrsResponseStatus = lens _dfsrsResponseStatus (\ s a -> s{_dfsrsResponseStatus = a});
 
-instance NFData DescribeFileSystemsResponse
+instance NFData DescribeFileSystemsResponse where
diff --git a/gen/Network/AWS/EFS/DescribeMountTargetSecurityGroups.hs b/gen/Network/AWS/EFS/DescribeMountTargetSecurityGroups.hs
--- a/gen/Network/AWS/EFS/DescribeMountTargetSecurityGroups.hs
+++ b/gen/Network/AWS/EFS/DescribeMountTargetSecurityGroups.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DescribeMountTargetSecurityGroups
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -45,12 +45,12 @@
     , dmtsgrsSecurityGroups
     ) where
 
-import           Network.AWS.EFS.Types
-import           Network.AWS.EFS.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.EFS.Types
+import Network.AWS.EFS.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -58,9 +58,10 @@
 --
 -- /See:/ 'describeMountTargetSecurityGroups' smart constructor.
 newtype DescribeMountTargetSecurityGroups = DescribeMountTargetSecurityGroups'
-    { _dmtsgMountTargetId :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dmtsgMountTargetId :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeMountTargetSecurityGroups' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -70,10 +71,9 @@
     :: Text -- ^ 'dmtsgMountTargetId'
     -> DescribeMountTargetSecurityGroups
 describeMountTargetSecurityGroups pMountTargetId_ =
-    DescribeMountTargetSecurityGroups'
-    { _dmtsgMountTargetId = pMountTargetId_
-    }
+  DescribeMountTargetSecurityGroups' {_dmtsgMountTargetId = pMountTargetId_}
 
+
 -- | ID of the mount target whose security groups you want to retrieve.
 dmtsgMountTargetId :: Lens' DescribeMountTargetSecurityGroups Text
 dmtsgMountTargetId = lens _dmtsgMountTargetId (\ s a -> s{_dmtsgMountTargetId = a});
@@ -91,8 +91,10 @@
                      (x .?> "SecurityGroups" .!@ mempty))
 
 instance Hashable DescribeMountTargetSecurityGroups
+         where
 
 instance NFData DescribeMountTargetSecurityGroups
+         where
 
 instance ToHeaders DescribeMountTargetSecurityGroups
          where
@@ -111,10 +113,11 @@
 
 -- | /See:/ 'describeMountTargetSecurityGroupsResponse' smart constructor.
 data DescribeMountTargetSecurityGroupsResponse = DescribeMountTargetSecurityGroupsResponse'
-    { _dmtsgrsResponseStatus :: !Int
-    , _dmtsgrsSecurityGroups :: ![Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dmtsgrsResponseStatus :: !Int
+  , _dmtsgrsSecurityGroups :: ![Text]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeMountTargetSecurityGroupsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -126,11 +129,10 @@
     :: Int -- ^ 'dmtsgrsResponseStatus'
     -> DescribeMountTargetSecurityGroupsResponse
 describeMountTargetSecurityGroupsResponse pResponseStatus_ =
-    DescribeMountTargetSecurityGroupsResponse'
-    { _dmtsgrsResponseStatus = pResponseStatus_
-    , _dmtsgrsSecurityGroups = mempty
-    }
+  DescribeMountTargetSecurityGroupsResponse'
+  {_dmtsgrsResponseStatus = pResponseStatus_, _dmtsgrsSecurityGroups = mempty}
 
+
 -- | -- | The response status code.
 dmtsgrsResponseStatus :: Lens' DescribeMountTargetSecurityGroupsResponse Int
 dmtsgrsResponseStatus = lens _dmtsgrsResponseStatus (\ s a -> s{_dmtsgrsResponseStatus = a});
@@ -140,4 +142,5 @@
 dmtsgrsSecurityGroups = lens _dmtsgrsSecurityGroups (\ s a -> s{_dmtsgrsSecurityGroups = a}) . _Coerce;
 
 instance NFData
-         DescribeMountTargetSecurityGroupsResponse
+           DescribeMountTargetSecurityGroupsResponse
+         where
diff --git a/gen/Network/AWS/EFS/DescribeMountTargets.hs b/gen/Network/AWS/EFS/DescribeMountTargets.hs
--- a/gen/Network/AWS/EFS/DescribeMountTargets.hs
+++ b/gen/Network/AWS/EFS/DescribeMountTargets.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DescribeMountTargets
--- 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)
 --
@@ -23,6 +23,8 @@
 --
 -- This operation requires permissions for the @elasticfilesystem:DescribeMountTargets@ action, on either the file system ID that you specify in @FileSystemId@ , or on the file system of the mount target that you specify in @MountTargetId@ .
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.EFS.DescribeMountTargets
     (
     -- * Creating a Request
@@ -44,12 +46,13 @@
     , dmtrsResponseStatus
     ) where
 
-import           Network.AWS.EFS.Types
-import           Network.AWS.EFS.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.EFS.Types
+import Network.AWS.EFS.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -57,12 +60,13 @@
 --
 -- /See:/ 'describeMountTargets' smart constructor.
 data DescribeMountTargets = DescribeMountTargets'
-    { _dmtFileSystemId  :: !(Maybe Text)
-    , _dmtMarker        :: !(Maybe Text)
-    , _dmtMaxItems      :: !(Maybe Nat)
-    , _dmtMountTargetId :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dmtFileSystemId  :: !(Maybe Text)
+  , _dmtMarker        :: !(Maybe Text)
+  , _dmtMaxItems      :: !(Maybe Nat)
+  , _dmtMountTargetId :: !(Maybe Text)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeMountTargets' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -77,13 +81,14 @@
 describeMountTargets
     :: DescribeMountTargets
 describeMountTargets =
-    DescribeMountTargets'
-    { _dmtFileSystemId = Nothing
-    , _dmtMarker = Nothing
-    , _dmtMaxItems = Nothing
-    , _dmtMountTargetId = Nothing
-    }
+  DescribeMountTargets'
+  { _dmtFileSystemId = Nothing
+  , _dmtMarker = Nothing
+  , _dmtMaxItems = Nothing
+  , _dmtMountTargetId = Nothing
+  }
 
+
 -- | (Optional) ID of the file system whose mount targets you want to list (String). It must be included in your request if @MountTargetId@ is not included.
 dmtFileSystemId :: Lens' DescribeMountTargets (Maybe Text)
 dmtFileSystemId = lens _dmtFileSystemId (\ s a -> s{_dmtFileSystemId = a});
@@ -100,6 +105,13 @@
 dmtMountTargetId :: Lens' DescribeMountTargets (Maybe Text)
 dmtMountTargetId = lens _dmtMountTargetId (\ s a -> s{_dmtMountTargetId = a});
 
+instance AWSPager DescribeMountTargets where
+        page rq rs
+          | stop (rs ^. dmtrsNextMarker) = Nothing
+          | stop (rs ^. dmtrsMountTargets) = Nothing
+          | otherwise =
+            Just $ rq & dmtMarker .~ rs ^. dmtrsNextMarker
+
 instance AWSRequest DescribeMountTargets where
         type Rs DescribeMountTargets =
              DescribeMountTargetsResponse
@@ -113,9 +125,9 @@
                      <*> (x .?> "NextMarker")
                      <*> (pure (fromEnum s)))
 
-instance Hashable DescribeMountTargets
+instance Hashable DescribeMountTargets where
 
-instance NFData DescribeMountTargets
+instance NFData DescribeMountTargets where
 
 instance ToHeaders DescribeMountTargets where
         toHeaders = const mempty
@@ -136,12 +148,13 @@
 --
 -- /See:/ 'describeMountTargetsResponse' smart constructor.
 data DescribeMountTargetsResponse = DescribeMountTargetsResponse'
-    { _dmtrsMountTargets   :: !(Maybe [MountTargetDescription])
-    , _dmtrsMarker         :: !(Maybe Text)
-    , _dmtrsNextMarker     :: !(Maybe Text)
-    , _dmtrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dmtrsMountTargets   :: !(Maybe [MountTargetDescription])
+  , _dmtrsMarker         :: !(Maybe Text)
+  , _dmtrsNextMarker     :: !(Maybe Text)
+  , _dmtrsResponseStatus :: !Int
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeMountTargetsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -157,13 +170,14 @@
     :: Int -- ^ 'dmtrsResponseStatus'
     -> DescribeMountTargetsResponse
 describeMountTargetsResponse pResponseStatus_ =
-    DescribeMountTargetsResponse'
-    { _dmtrsMountTargets = Nothing
-    , _dmtrsMarker = Nothing
-    , _dmtrsNextMarker = Nothing
-    , _dmtrsResponseStatus = pResponseStatus_
-    }
+  DescribeMountTargetsResponse'
+  { _dmtrsMountTargets = Nothing
+  , _dmtrsMarker = Nothing
+  , _dmtrsNextMarker = Nothing
+  , _dmtrsResponseStatus = pResponseStatus_
+  }
 
+
 -- | Returns the file system's mount targets as an array of @MountTargetDescription@ objects.
 dmtrsMountTargets :: Lens' DescribeMountTargetsResponse [MountTargetDescription]
 dmtrsMountTargets = lens _dmtrsMountTargets (\ s a -> s{_dmtrsMountTargets = a}) . _Default . _Coerce;
@@ -180,4 +194,4 @@
 dmtrsResponseStatus :: Lens' DescribeMountTargetsResponse Int
 dmtrsResponseStatus = lens _dmtrsResponseStatus (\ s a -> s{_dmtrsResponseStatus = a});
 
-instance NFData DescribeMountTargetsResponse
+instance NFData DescribeMountTargetsResponse where
diff --git a/gen/Network/AWS/EFS/DescribeTags.hs b/gen/Network/AWS/EFS/DescribeTags.hs
--- a/gen/Network/AWS/EFS/DescribeTags.hs
+++ b/gen/Network/AWS/EFS/DescribeTags.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DescribeTags
--- 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)
 --
@@ -23,6 +23,8 @@
 --
 -- This operation requires permissions for the @elasticfilesystem:DescribeTags@ action.
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.EFS.DescribeTags
     (
     -- * Creating a Request
@@ -43,12 +45,13 @@
     , dtrsTags
     ) where
 
-import           Network.AWS.EFS.Types
-import           Network.AWS.EFS.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.EFS.Types
+import Network.AWS.EFS.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Pager
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -56,11 +59,12 @@
 --
 -- /See:/ 'describeTags' smart constructor.
 data DescribeTags = DescribeTags'
-    { _dtMarker       :: !(Maybe Text)
-    , _dtMaxItems     :: !(Maybe Nat)
-    , _dtFileSystemId :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dtMarker       :: !(Maybe Text)
+  , _dtMaxItems     :: !(Maybe Nat)
+  , _dtFileSystemId :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeTags' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -74,12 +78,10 @@
     :: Text -- ^ 'dtFileSystemId'
     -> DescribeTags
 describeTags pFileSystemId_ =
-    DescribeTags'
-    { _dtMarker = Nothing
-    , _dtMaxItems = Nothing
-    , _dtFileSystemId = pFileSystemId_
-    }
+  DescribeTags'
+  {_dtMarker = Nothing, _dtMaxItems = Nothing, _dtFileSystemId = pFileSystemId_}
 
+
 -- | (Optional) Opaque pagination token returned from a previous @DescribeTags@ operation (String). If present, it specifies to continue the list from where the previous call left off.
 dtMarker :: Lens' DescribeTags (Maybe Text)
 dtMarker = lens _dtMarker (\ s a -> s{_dtMarker = a});
@@ -92,6 +94,13 @@
 dtFileSystemId :: Lens' DescribeTags Text
 dtFileSystemId = lens _dtFileSystemId (\ s a -> s{_dtFileSystemId = a});
 
+instance AWSPager DescribeTags where
+        page rq rs
+          | stop (rs ^. dtrsNextMarker) = Nothing
+          | stop (rs ^. dtrsTags) = Nothing
+          | otherwise =
+            Just $ rq & dtMarker .~ rs ^. dtrsNextMarker
+
 instance AWSRequest DescribeTags where
         type Rs DescribeTags = DescribeTagsResponse
         request = get efs
@@ -103,9 +112,9 @@
                      (pure (fromEnum s))
                      <*> (x .?> "Tags" .!@ mempty))
 
-instance Hashable DescribeTags
+instance Hashable DescribeTags where
 
-instance NFData DescribeTags
+instance NFData DescribeTags where
 
 instance ToHeaders DescribeTags where
         toHeaders = const mempty
@@ -126,12 +135,13 @@
 --
 -- /See:/ 'describeTagsResponse' smart constructor.
 data DescribeTagsResponse = DescribeTagsResponse'
-    { _dtrsMarker         :: !(Maybe Text)
-    , _dtrsNextMarker     :: !(Maybe Text)
-    , _dtrsResponseStatus :: !Int
-    , _dtrsTags           :: ![Tag]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _dtrsMarker         :: !(Maybe Text)
+  , _dtrsNextMarker     :: !(Maybe Text)
+  , _dtrsResponseStatus :: !Int
+  , _dtrsTags           :: ![Tag]
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'DescribeTagsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -147,13 +157,14 @@
     :: Int -- ^ 'dtrsResponseStatus'
     -> DescribeTagsResponse
 describeTagsResponse pResponseStatus_ =
-    DescribeTagsResponse'
-    { _dtrsMarker = Nothing
-    , _dtrsNextMarker = Nothing
-    , _dtrsResponseStatus = pResponseStatus_
-    , _dtrsTags = mempty
-    }
+  DescribeTagsResponse'
+  { _dtrsMarker = Nothing
+  , _dtrsNextMarker = Nothing
+  , _dtrsResponseStatus = pResponseStatus_
+  , _dtrsTags = mempty
+  }
 
+
 -- | If the request included a @Marker@ , the response returns that value in this field.
 dtrsMarker :: Lens' DescribeTagsResponse (Maybe Text)
 dtrsMarker = lens _dtrsMarker (\ s a -> s{_dtrsMarker = a});
@@ -170,4 +181,4 @@
 dtrsTags :: Lens' DescribeTagsResponse [Tag]
 dtrsTags = lens _dtrsTags (\ s a -> s{_dtrsTags = a}) . _Coerce;
 
-instance NFData DescribeTagsResponse
+instance NFData DescribeTagsResponse where
diff --git a/gen/Network/AWS/EFS/ModifyMountTargetSecurityGroups.hs b/gen/Network/AWS/EFS/ModifyMountTargetSecurityGroups.hs
--- a/gen/Network/AWS/EFS/ModifyMountTargetSecurityGroups.hs
+++ b/gen/Network/AWS/EFS/ModifyMountTargetSecurityGroups.hs
@@ -12,9 +12,9 @@
 
 -- |
 -- Module      : Network.AWS.EFS.ModifyMountTargetSecurityGroups
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
@@ -45,12 +45,12 @@
     , ModifyMountTargetSecurityGroupsResponse
     ) where
 
-import           Network.AWS.EFS.Types
-import           Network.AWS.EFS.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
+import Network.AWS.EFS.Types
+import Network.AWS.EFS.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
 
 -- |
 --
@@ -58,10 +58,11 @@
 --
 -- /See:/ 'modifyMountTargetSecurityGroups' smart constructor.
 data ModifyMountTargetSecurityGroups = ModifyMountTargetSecurityGroups'
-    { _mmtsgSecurityGroups :: !(Maybe [Text])
-    , _mmtsgMountTargetId  :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _mmtsgSecurityGroups :: !(Maybe [Text])
+  , _mmtsgMountTargetId  :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ModifyMountTargetSecurityGroups' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -73,11 +74,10 @@
     :: Text -- ^ 'mmtsgMountTargetId'
     -> ModifyMountTargetSecurityGroups
 modifyMountTargetSecurityGroups pMountTargetId_ =
-    ModifyMountTargetSecurityGroups'
-    { _mmtsgSecurityGroups = Nothing
-    , _mmtsgMountTargetId = pMountTargetId_
-    }
+  ModifyMountTargetSecurityGroups'
+  {_mmtsgSecurityGroups = Nothing, _mmtsgMountTargetId = pMountTargetId_}
 
+
 -- | Array of up to five VPC security group IDs.
 mmtsgSecurityGroups :: Lens' ModifyMountTargetSecurityGroups [Text]
 mmtsgSecurityGroups = lens _mmtsgSecurityGroups (\ s a -> s{_mmtsgSecurityGroups = a}) . _Default . _Coerce;
@@ -96,8 +96,9 @@
               ModifyMountTargetSecurityGroupsResponse'
 
 instance Hashable ModifyMountTargetSecurityGroups
+         where
 
-instance NFData ModifyMountTargetSecurityGroups
+instance NFData ModifyMountTargetSecurityGroups where
 
 instance ToHeaders ModifyMountTargetSecurityGroups
          where
@@ -121,15 +122,18 @@
 
 -- | /See:/ 'modifyMountTargetSecurityGroupsResponse' smart constructor.
 data ModifyMountTargetSecurityGroupsResponse =
-    ModifyMountTargetSecurityGroupsResponse'
-    deriving (Eq,Read,Show,Data,Typeable,Generic)
+  ModifyMountTargetSecurityGroupsResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'ModifyMountTargetSecurityGroupsResponse' with the minimum fields required to make a request.
 --
 modifyMountTargetSecurityGroupsResponse
     :: ModifyMountTargetSecurityGroupsResponse
 modifyMountTargetSecurityGroupsResponse =
-    ModifyMountTargetSecurityGroupsResponse'
+  ModifyMountTargetSecurityGroupsResponse'
 
+
 instance NFData
-         ModifyMountTargetSecurityGroupsResponse
+           ModifyMountTargetSecurityGroupsResponse
+         where
diff --git a/gen/Network/AWS/EFS/Types.hs b/gen/Network/AWS/EFS/Types.hs
--- a/gen/Network/AWS/EFS/Types.hs
+++ b/gen/Network/AWS/EFS/Types.hs
@@ -4,9 +4,9 @@
 
 -- |
 -- Module      : Network.AWS.EFS.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)
 --
@@ -44,6 +44,8 @@
     -- * FileSystemDescription
     , FileSystemDescription
     , fileSystemDescription
+    , fsdEncrypted
+    , fsdKMSKeyId
     , fsdName
     , fsdOwnerId
     , fsdCreationToken
@@ -78,38 +80,40 @@
     , tagValue
     ) where
 
-import           Network.AWS.EFS.Types.Product
-import           Network.AWS.EFS.Types.Sum
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Sign.V4
+import Network.AWS.EFS.Types.Product
+import Network.AWS.EFS.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Sign.V4
 
 -- | API version @2015-02-01@ of the Amazon Elastic File System SDK configuration.
 efs :: Service
 efs =
-    Service
-    { _svcAbbrev = "EFS"
-    , _svcSigner = v4
-    , _svcPrefix = "elasticfilesystem"
-    , _svcVersion = "2015-02-01"
-    , _svcEndpoint = defaultEndpoint efs
-    , _svcTimeout = Just 70
-    , _svcCheck = statusSuccess
-    , _svcError = parseJSONError "EFS"
-    , _svcRetry = retry
-    }
+  Service
+  { _svcAbbrev = "EFS"
+  , _svcSigner = v4
+  , _svcPrefix = "elasticfilesystem"
+  , _svcVersion = "2015-02-01"
+  , _svcEndpoint = defaultEndpoint efs
+  , _svcTimeout = Just 70
+  , _svcCheck = statusSuccess
+  , _svcError = parseJSONError "EFS"
+  , _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"
@@ -118,122 +122,142 @@
       | has (hasStatus 509) e = Just "limit_exceeded"
       | otherwise = Nothing
 
+
 -- | Returned if there is no mount target with the specified ID found in the caller's account.
 --
 --
 _MountTargetNotFound :: AsError a => Getting (First ServiceError) a ServiceError
 _MountTargetNotFound =
-    _ServiceError . hasStatus 404 . hasCode "MountTargetNotFound"
+  _MatchServiceError efs "MountTargetNotFound" . hasStatus 404
 
+
 -- | Returned if the size of @SecurityGroups@ specified in the request is greater than five.
 --
 --
 _SecurityGroupLimitExceeded :: AsError a => Getting (First ServiceError) a ServiceError
 _SecurityGroupLimitExceeded =
-    _ServiceError . hasStatus 400 . hasCode "SecurityGroupLimitExceeded"
+  _MatchServiceError efs "SecurityGroupLimitExceeded" . hasStatus 400
 
+
 -- | Returned if one of the specified security groups does not exist in the subnet's VPC.
 --
 --
 _SecurityGroupNotFound :: AsError a => Getting (First ServiceError) a ServiceError
 _SecurityGroupNotFound =
-    _ServiceError . hasStatus 400 . hasCode "SecurityGroupNotFound"
+  _MatchServiceError efs "SecurityGroupNotFound" . hasStatus 400
 
+
 -- | Returned if the mount target would violate one of the specified restrictions based on the file system's existing mount targets.
 --
 --
 _MountTargetConflict :: AsError a => Getting (First ServiceError) a ServiceError
 _MountTargetConflict =
-    _ServiceError . hasStatus 409 . hasCode "MountTargetConflict"
+  _MatchServiceError efs "MountTargetConflict" . hasStatus 409
 
--- | Prism for UnsupportedAvailabilityZone' errors.
+
+-- |
+--
+--
 _UnsupportedAvailabilityZone :: AsError a => Getting (First ServiceError) a ServiceError
 _UnsupportedAvailabilityZone =
-    _ServiceError . hasStatus 400 . hasCode "UnsupportedAvailabilityZone"
+  _MatchServiceError efs "UnsupportedAvailabilityZone" . hasStatus 400
 
+
 -- | Returned if the AWS account has already created maximum number of file systems allowed per account.
 --
 --
 _FileSystemLimitExceeded :: AsError a => Getting (First ServiceError) a ServiceError
 _FileSystemLimitExceeded =
-    _ServiceError . hasStatus 403 . hasCode "FileSystemLimitExceeded"
+  _MatchServiceError efs "FileSystemLimitExceeded" . hasStatus 403
 
+
 -- | The calling account has reached the ENI limit for the specific AWS region. Client should try to delete some ENIs or get its account limit raised. For more information, see <http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_Limits.html Amazon VPC Limits> in the Amazon Virtual Private Cloud User Guide (see the Network interfaces per VPC entry in the table).
 --
 --
 _NetworkInterfaceLimitExceeded :: AsError a => Getting (First ServiceError) a ServiceError
 _NetworkInterfaceLimitExceeded =
-    _ServiceError . hasStatus 409 . hasCode "NetworkInterfaceLimitExceeded"
+  _MatchServiceError efs "NetworkInterfaceLimitExceeded" . hasStatus 409
 
+
 -- | Returned if the file system you are trying to create already exists, with the creation token you provided.
 --
 --
 _FileSystemAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError
 _FileSystemAlreadyExists =
-    _ServiceError . hasStatus 409 . hasCode "FileSystemAlreadyExists"
+  _MatchServiceError efs "FileSystemAlreadyExists" . hasStatus 409
 
+
 -- | Returned if there is no subnet with ID @SubnetId@ provided in the request.
 --
 --
 _SubnetNotFound :: AsError a => Getting (First ServiceError) a ServiceError
-_SubnetNotFound = _ServiceError . hasStatus 400 . hasCode "SubnetNotFound"
+_SubnetNotFound = _MatchServiceError efs "SubnetNotFound" . hasStatus 400
 
+
 -- | Returned if the specified @FileSystemId@ does not exist in the requester's AWS account.
 --
 --
 _FileSystemNotFound :: AsError a => Getting (First ServiceError) a ServiceError
 _FileSystemNotFound =
-    _ServiceError . hasStatus 404 . hasCode "FileSystemNotFound"
+  _MatchServiceError efs "FileSystemNotFound" . hasStatus 404
 
+
 -- | Returned if the file system's life cycle state is not "created".
 --
 --
 _IncorrectFileSystemLifeCycleState :: AsError a => Getting (First ServiceError) a ServiceError
 _IncorrectFileSystemLifeCycleState =
-    _ServiceError . hasStatus 409 . hasCode "IncorrectFileSystemLifeCycleState"
+  _MatchServiceError efs "IncorrectFileSystemLifeCycleState" . hasStatus 409
 
+
 -- | Returned if the request is malformed or contains an error such as an invalid parameter value or a missing required parameter.
 --
 --
 _BadRequest :: AsError a => Getting (First ServiceError) a ServiceError
-_BadRequest = _ServiceError . hasStatus 400 . hasCode "BadRequest"
+_BadRequest = _MatchServiceError efs "BadRequest" . hasStatus 400
 
+
 -- | Returned if @IpAddress@ was not specified in the request and there are no free IP addresses in the subnet.
 --
 --
 _NoFreeAddressesInSubnet :: AsError a => Getting (First ServiceError) a ServiceError
 _NoFreeAddressesInSubnet =
-    _ServiceError . hasStatus 409 . hasCode "NoFreeAddressesInSubnet"
+  _MatchServiceError efs "NoFreeAddressesInSubnet" . hasStatus 409
 
+
 -- | The service timed out trying to fulfill the request, and the client should try the call again.
 --
 --
 _DependencyTimeout :: AsError a => Getting (First ServiceError) a ServiceError
-_DependencyTimeout =
-    _ServiceError . hasStatus 504 . hasCode "DependencyTimeout"
+_DependencyTimeout = _MatchServiceError efs "DependencyTimeout" . hasStatus 504
 
+
 -- | Returned if a file system has mount targets.
 --
 --
 _FileSystemInUse :: AsError a => Getting (First ServiceError) a ServiceError
-_FileSystemInUse = _ServiceError . hasStatus 409 . hasCode "FileSystemInUse"
+_FileSystemInUse = _MatchServiceError efs "FileSystemInUse" . hasStatus 409
 
+
 -- | Returned if the mount target is not in the correct state for the operation.
 --
 --
 _IncorrectMountTargetState :: AsError a => Getting (First ServiceError) a ServiceError
 _IncorrectMountTargetState =
-    _ServiceError . hasStatus 409 . hasCode "IncorrectMountTargetState"
+  _MatchServiceError efs "IncorrectMountTargetState" . hasStatus 409
 
+
 -- | Returned if an error occurred on the server side.
 --
 --
 _InternalServerError :: AsError a => Getting (First ServiceError) a ServiceError
 _InternalServerError =
-    _ServiceError . hasStatus 500 . hasCode "InternalServerError"
+  _MatchServiceError efs "InternalServerError" . hasStatus 500
 
+
 -- | Returned if the request specified an @IpAddress@ that is already in use in the subnet.
 --
 --
 _IPAddressInUse :: AsError a => Getting (First ServiceError) a ServiceError
-_IPAddressInUse = _ServiceError . hasStatus 409 . hasCode "IpAddressInUse"
+_IPAddressInUse = _MatchServiceError efs "IpAddressInUse" . hasStatus 409
+
diff --git a/gen/Network/AWS/EFS/Types/Product.hs b/gen/Network/AWS/EFS/Types/Product.hs
--- a/gen/Network/AWS/EFS/Types/Product.hs
+++ b/gen/Network/AWS/EFS/Types/Product.hs
@@ -9,17 +9,17 @@
 
 -- |
 -- Module      : Network.AWS.EFS.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.EFS.Types.Product where
 
-import           Network.AWS.EFS.Types.Sum
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
+import Network.AWS.EFS.Types.Sum
+import Network.AWS.Lens
+import Network.AWS.Prelude
 
 -- | Description of the file system.
 --
@@ -27,21 +27,28 @@
 --
 -- /See:/ 'fileSystemDescription' smart constructor.
 data FileSystemDescription = FileSystemDescription'
-    { _fsdName                 :: !(Maybe Text)
-    , _fsdOwnerId              :: !Text
-    , _fsdCreationToken        :: !Text
-    , _fsdFileSystemId         :: !Text
-    , _fsdCreationTime         :: !POSIX
-    , _fsdLifeCycleState       :: !LifeCycleState
-    , _fsdNumberOfMountTargets :: !Nat
-    , _fsdSizeInBytes          :: !FileSystemSize
-    , _fsdPerformanceMode      :: !PerformanceMode
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _fsdEncrypted            :: !(Maybe Bool)
+  , _fsdKMSKeyId             :: !(Maybe Text)
+  , _fsdName                 :: !(Maybe Text)
+  , _fsdOwnerId              :: !Text
+  , _fsdCreationToken        :: !Text
+  , _fsdFileSystemId         :: !Text
+  , _fsdCreationTime         :: !POSIX
+  , _fsdLifeCycleState       :: !LifeCycleState
+  , _fsdNumberOfMountTargets :: !Nat
+  , _fsdSizeInBytes          :: !FileSystemSize
+  , _fsdPerformanceMode      :: !PerformanceMode
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'FileSystemDescription' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'fsdEncrypted' - A boolean value that, if true, indicates that the file system is encrypted.
+--
+-- * 'fsdKMSKeyId' - The id of an AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to protect the encrypted file system.
+--
 -- * 'fsdName' - You can add tags to a file system, including a @Name@ tag. For more information, see 'CreateTags' . If the file system has a @Name@ tag, Amazon EFS returns the value in this field.
 --
 -- * 'fsdOwnerId' - AWS account that created the file system. If the file system was created by an IAM user, the parent account to which the user belongs is the owner.
@@ -70,18 +77,29 @@
     -> PerformanceMode -- ^ 'fsdPerformanceMode'
     -> FileSystemDescription
 fileSystemDescription pOwnerId_ pCreationToken_ pFileSystemId_ pCreationTime_ pLifeCycleState_ pNumberOfMountTargets_ pSizeInBytes_ pPerformanceMode_ =
-    FileSystemDescription'
-    { _fsdName = Nothing
-    , _fsdOwnerId = pOwnerId_
-    , _fsdCreationToken = pCreationToken_
-    , _fsdFileSystemId = pFileSystemId_
-    , _fsdCreationTime = _Time # pCreationTime_
-    , _fsdLifeCycleState = pLifeCycleState_
-    , _fsdNumberOfMountTargets = _Nat # pNumberOfMountTargets_
-    , _fsdSizeInBytes = pSizeInBytes_
-    , _fsdPerformanceMode = pPerformanceMode_
-    }
+  FileSystemDescription'
+  { _fsdEncrypted = Nothing
+  , _fsdKMSKeyId = Nothing
+  , _fsdName = Nothing
+  , _fsdOwnerId = pOwnerId_
+  , _fsdCreationToken = pCreationToken_
+  , _fsdFileSystemId = pFileSystemId_
+  , _fsdCreationTime = _Time # pCreationTime_
+  , _fsdLifeCycleState = pLifeCycleState_
+  , _fsdNumberOfMountTargets = _Nat # pNumberOfMountTargets_
+  , _fsdSizeInBytes = pSizeInBytes_
+  , _fsdPerformanceMode = pPerformanceMode_
+  }
 
+
+-- | A boolean value that, if true, indicates that the file system is encrypted.
+fsdEncrypted :: Lens' FileSystemDescription (Maybe Bool)
+fsdEncrypted = lens _fsdEncrypted (\ s a -> s{_fsdEncrypted = a});
+
+-- | The id of an AWS Key Management Service (AWS KMS) customer master key (CMK) that was used to protect the encrypted file system.
+fsdKMSKeyId :: Lens' FileSystemDescription (Maybe Text)
+fsdKMSKeyId = lens _fsdKMSKeyId (\ s a -> s{_fsdKMSKeyId = a});
+
 -- | You can add tags to a file system, including a @Name@ tag. For more information, see 'CreateTags' . If the file system has a @Name@ tag, Amazon EFS returns the value in this field.
 fsdName :: Lens' FileSystemDescription (Maybe Text)
 fsdName = lens _fsdName (\ s a -> s{_fsdName = a});
@@ -123,8 +141,10 @@
           = withObject "FileSystemDescription"
               (\ x ->
                  FileSystemDescription' <$>
-                   (x .:? "Name") <*> (x .: "OwnerId") <*>
-                     (x .: "CreationToken")
+                   (x .:? "Encrypted") <*> (x .:? "KmsKeyId") <*>
+                     (x .:? "Name")
+                     <*> (x .: "OwnerId")
+                     <*> (x .: "CreationToken")
                      <*> (x .: "FileSystemId")
                      <*> (x .: "CreationTime")
                      <*> (x .: "LifeCycleState")
@@ -132,9 +152,9 @@
                      <*> (x .: "SizeInBytes")
                      <*> (x .: "PerformanceMode"))
 
-instance Hashable FileSystemDescription
+instance Hashable FileSystemDescription where
 
-instance NFData FileSystemDescription
+instance NFData FileSystemDescription where
 
 -- | Latest known metered size (in bytes) of data stored in the file system, in its @Value@ field, and the time at which that size was determined in its @Timestamp@ field. Note that the value does not represent the size of a consistent snapshot of the file system, but it is eventually consistent when there are no writes to the file system. That is, the value will represent the actual size only if the file system is not modified for a period longer than a couple of hours. Otherwise, the value is not necessarily the exact size the file system was at any instant in time.
 --
@@ -142,10 +162,11 @@
 --
 -- /See:/ 'fileSystemSize' smart constructor.
 data FileSystemSize = FileSystemSize'
-    { _fssTimestamp :: !(Maybe POSIX)
-    , _fssValue     :: !Nat
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _fssTimestamp :: !(Maybe POSIX)
+  , _fssValue     :: !Nat
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'FileSystemSize' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -157,11 +178,9 @@
     :: Natural -- ^ 'fssValue'
     -> FileSystemSize
 fileSystemSize pValue_ =
-    FileSystemSize'
-    { _fssTimestamp = Nothing
-    , _fssValue = _Nat # pValue_
-    }
+  FileSystemSize' {_fssTimestamp = Nothing, _fssValue = _Nat # pValue_}
 
+
 -- | Time at which the size of data, returned in the @Value@ field, was determined. The value is the integer number of seconds since 1970-01-01T00:00:00Z.
 fssTimestamp :: Lens' FileSystemSize (Maybe UTCTime)
 fssTimestamp = lens _fssTimestamp (\ s a -> s{_fssTimestamp = a}) . mapping _Time;
@@ -177,9 +196,9 @@
                  FileSystemSize' <$>
                    (x .:? "Timestamp") <*> (x .: "Value"))
 
-instance Hashable FileSystemSize
+instance Hashable FileSystemSize where
 
-instance NFData FileSystemSize
+instance NFData FileSystemSize where
 
 -- | Provides a description of a mount target.
 --
@@ -187,15 +206,16 @@
 --
 -- /See:/ 'mountTargetDescription' smart constructor.
 data MountTargetDescription = MountTargetDescription'
-    { _mtdIPAddress          :: !(Maybe Text)
-    , _mtdNetworkInterfaceId :: !(Maybe Text)
-    , _mtdOwnerId            :: !(Maybe Text)
-    , _mtdMountTargetId      :: !Text
-    , _mtdFileSystemId       :: !Text
-    , _mtdSubnetId           :: !Text
-    , _mtdLifeCycleState     :: !LifeCycleState
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _mtdIPAddress          :: !(Maybe Text)
+  , _mtdNetworkInterfaceId :: !(Maybe Text)
+  , _mtdOwnerId            :: !(Maybe Text)
+  , _mtdMountTargetId      :: !Text
+  , _mtdFileSystemId       :: !Text
+  , _mtdSubnetId           :: !Text
+  , _mtdLifeCycleState     :: !LifeCycleState
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'MountTargetDescription' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -220,16 +240,17 @@
     -> LifeCycleState -- ^ 'mtdLifeCycleState'
     -> MountTargetDescription
 mountTargetDescription pMountTargetId_ pFileSystemId_ pSubnetId_ pLifeCycleState_ =
-    MountTargetDescription'
-    { _mtdIPAddress = Nothing
-    , _mtdNetworkInterfaceId = Nothing
-    , _mtdOwnerId = Nothing
-    , _mtdMountTargetId = pMountTargetId_
-    , _mtdFileSystemId = pFileSystemId_
-    , _mtdSubnetId = pSubnetId_
-    , _mtdLifeCycleState = pLifeCycleState_
-    }
+  MountTargetDescription'
+  { _mtdIPAddress = Nothing
+  , _mtdNetworkInterfaceId = Nothing
+  , _mtdOwnerId = Nothing
+  , _mtdMountTargetId = pMountTargetId_
+  , _mtdFileSystemId = pFileSystemId_
+  , _mtdSubnetId = pSubnetId_
+  , _mtdLifeCycleState = pLifeCycleState_
+  }
 
+
 -- | Address at which the file system may be mounted via the mount target.
 mtdIPAddress :: Lens' MountTargetDescription (Maybe Text)
 mtdIPAddress = lens _mtdIPAddress (\ s a -> s{_mtdIPAddress = a});
@@ -270,9 +291,9 @@
                      <*> (x .: "SubnetId")
                      <*> (x .: "LifeCycleState"))
 
-instance Hashable MountTargetDescription
+instance Hashable MountTargetDescription where
 
-instance NFData MountTargetDescription
+instance NFData MountTargetDescription where
 
 -- | A tag is a key-value pair. Allowed characters: letters, whitespace, and numbers, representable in UTF-8, and the following characters:@+ - = . _ : /@
 --
@@ -280,10 +301,11 @@
 --
 -- /See:/ 'tag' smart constructor.
 data Tag = Tag'
-    { _tagKey   :: !Text
-    , _tagValue :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+  { _tagKey   :: !Text
+  , _tagValue :: !Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
+
 -- | Creates a value of 'Tag' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
@@ -295,12 +317,9 @@
     :: Text -- ^ 'tagKey'
     -> Text -- ^ 'tagValue'
     -> Tag
-tag pKey_ pValue_ =
-    Tag'
-    { _tagKey = pKey_
-    , _tagValue = pValue_
-    }
+tag pKey_ pValue_ = Tag' {_tagKey = pKey_, _tagValue = pValue_}
 
+
 -- | Tag key (String). The key can't start with @aws:@ .
 tagKey :: Lens' Tag Text
 tagKey = lens _tagKey (\ s a -> s{_tagKey = a});
@@ -314,9 +333,9 @@
           = withObject "Tag"
               (\ x -> Tag' <$> (x .: "Key") <*> (x .: "Value"))
 
-instance Hashable Tag
+instance Hashable Tag where
 
-instance NFData Tag
+instance NFData Tag where
 
 instance ToJSON Tag where
         toJSON Tag'{..}
diff --git a/gen/Network/AWS/EFS/Types/Sum.hs b/gen/Network/AWS/EFS/Types/Sum.hs
--- a/gen/Network/AWS/EFS/Types/Sum.hs
+++ b/gen/Network/AWS/EFS/Types/Sum.hs
@@ -9,23 +9,24 @@
 
 -- |
 -- Module      : Network.AWS.EFS.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.EFS.Types.Sum where
 
-import           Network.AWS.Prelude
+import Network.AWS.Prelude
 
 data LifeCycleState
-    = Available
-    | Creating
-    | Deleted
-    | Deleting
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = Available
+  | Creating
+  | Deleted
+  | Deleting
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
 
+
 instance FromText LifeCycleState where
     parser = takeLowerText >>= \case
         "available" -> pure Available
@@ -52,9 +53,10 @@
     parseJSON = parseJSONText "LifeCycleState"
 
 data PerformanceMode
-    = GeneralPurpose
-    | MaxIO
-    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+  = GeneralPurpose
+  | MaxIO
+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
+
 
 instance FromText PerformanceMode where
     parser = takeLowerText >>= \case
diff --git a/gen/Network/AWS/EFS/Waiters.hs b/gen/Network/AWS/EFS/Waiters.hs
--- a/gen/Network/AWS/EFS/Waiters.hs
+++ b/gen/Network/AWS/EFS/Waiters.hs
@@ -7,15 +7,15 @@
 
 -- |
 -- Module      : Network.AWS.EFS.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.EFS.Waiters where
 
-import           Network.AWS.EFS.Types
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Waiter
+import Network.AWS.EFS.Types
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Waiter
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -2,9 +2,9 @@
 
 -- |
 -- Module      : Main
--- Copyright   : (c) 2013-2016 Brendan Hay
+-- Copyright   : (c) 2013-2017 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
diff --git a/test/Test/AWS/Gen/EFS.hs b/test/Test/AWS/Gen/EFS.hs
--- a/test/Test/AWS/Gen/EFS.hs
+++ b/test/Test/AWS/Gen/EFS.hs
@@ -5,20 +5,20 @@
 
 -- |
 -- Module      : Test.AWS.Gen.EFS
--- 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.EFS where
 
 import Data.Proxy
+import Network.AWS.EFS
+import Test.AWS.EFS.Internal
 import Test.AWS.Fixture
 import Test.AWS.Prelude
 import Test.Tasty
-import Network.AWS.EFS
-import Test.AWS.EFS.Internal
 
 -- Auto-generated: the actual test selection needs to be manually placed into
 -- the top-level so that real test data can be incrementally added.
