diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.3.7`
+`1.4.0`
 
 
 ## Description
@@ -16,7 +16,7 @@
 Amazon Elastic File System
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-efs)
-and the [AWS API Reference](http://docs.aws.amazon.com/elasticfilesystem/latest/devguide/welcome.html).
+and the [AWS API Reference](https://aws.amazon.com/documentation/).
 
 The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),
 which provides mechanisms for specifying AuthN/AuthZ information and sending requests.
diff --git a/amazonka-efs.cabal b/amazonka-efs.cabal
--- a/amazonka-efs.cabal
+++ b/amazonka-efs.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-efs
-version:               1.3.7
+version:               1.4.0
 synopsis:              Amazon Elastic File System SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -7,7 +7,7 @@
 license-file:          LICENSE
 author:                Brendan Hay
 maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2013-2015 Brendan Hay
+copyright:             Copyright (c) 2013-2016 Brendan Hay
 category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 cabal-version:         >= 1.10
@@ -26,7 +26,7 @@
     such as <http://hackage.haskell.org/package/lens lens> or
     <http://hackage.haskell.org/package/lens-family-core lens-family-core>.
     .
-    See "Network.AWS.EFS" and the <http://docs.aws.amazon.com/elasticfilesystem/latest/devguide/welcome.html AWS API Reference>
+    See "Network.AWS.EFS" or <https://aws.amazon.com/documentation/ the AWS Documentation>
     to get started.
 
 source-repository head
@@ -60,7 +60,7 @@
         , Network.AWS.EFS.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.7.*
+          amazonka-core == 1.4.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-efs-test
@@ -80,9 +80,9 @@
         , Test.AWS.EFS.Internal
 
     build-depends:
-          amazonka-core == 1.3.7.*
-        , amazonka-test == 1.3.7.*
-        , amazonka-efs == 1.3.7.*
+          amazonka-core == 1.4.0.*
+        , amazonka-test == 1.4.0.*
+        , amazonka-efs == 1.4.0.*
         , 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,19 +5,17 @@
 
 -- |
 -- Module      : Network.AWS.EFS
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
 -- Amazon Elastic File System
---
--- /See:/ <http://docs.aws.amazon.com/elasticfilesystem/latest/devguide/welcome.html AWS API Reference>
 module Network.AWS.EFS
     (
     -- * Service Configuration
-      eFS
+      efs
 
     -- * Errors
     -- $errors
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.CreateFileSystem
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,20 +46,18 @@
 --
 -- The 'CreateFileSystem' call returns while the file system\'s lifecycle
 -- state is still \"creating\". You can check the file system creation
--- status by calling the DescribeFileSystems API, which among other things
--- returns the file system state.
+-- status by calling the < DescribeFileSystems> API, which among other
+-- things returns the file system state.
 --
 -- After the file system is fully created, Amazon EFS sets its lifecycle
 -- state to \"available\", at which point you can create one or more mount
--- targets for the file system (CreateMountTarget) in your VPC. You mount
--- your Amazon EFS file system on an EC2 instances in your VPC via the
--- mount target. For more information, see
+-- targets for the file system (< CreateMountTarget>) in your VPC. You
+-- mount your Amazon EFS file system on an EC2 instances in your VPC via
+-- the mount target. For more information, see
 -- <http://docs.aws.amazon.com/efs/latest/ug/how-it-works.html Amazon EFS: How it Works>
 --
 -- This operation requires permission for the
 -- 'elasticfilesystem:CreateFileSystem' action.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateFileSystem.html AWS API Reference> for CreateFileSystem.
 module Network.AWS.EFS.CreateFileSystem
     (
     -- * Creating a Request
@@ -114,8 +112,10 @@
 
 instance AWSRequest CreateFileSystem where
         type Rs CreateFileSystem = FileSystemDescription
-        request = postJSON eFS
+        request = postJSON efs
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable CreateFileSystem
 
 instance ToHeaders CreateFileSystem where
         toHeaders = const mempty
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.CreateMountTarget
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -31,7 +31,7 @@
 --
 -- In the request, you also specify a file system ID for which you are
 -- creating the mount target and the file system\'s lifecycle state must be
--- \"available\" (see DescribeFileSystems).
+-- \"available\" (see < DescribeFileSystems>).
 --
 -- In the request, you also provide a subnet ID, which serves several
 -- purposes:
@@ -94,7 +94,7 @@
 -- The 'CreateMountTarget' call returns only after creating the network
 -- interface, but while the mount target state is still \"creating\". You
 -- can check the mount target creation status by calling the
--- DescribeFileSystems API, which among other things returns the mount
+-- < DescribeFileSystems> API, which among other things returns the mount
 -- target state.
 --
 -- We recommend you create a mount target in each of the Availability
@@ -118,8 +118,6 @@
 -- -   'ec2:DescribeSubnets'
 -- -   'ec2:DescribeNetworkInterfaces'
 -- -   'ec2:CreateNetworkInterface'
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateMountTarget.html AWS API Reference> for CreateMountTarget.
 module Network.AWS.EFS.CreateMountTarget
     (
     -- * Creating a Request
@@ -201,8 +199,10 @@
 
 instance AWSRequest CreateMountTarget where
         type Rs CreateMountTarget = MountTargetDescription
-        request = postJSON eFS
+        request = postJSON efs
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable CreateMountTarget
 
 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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.CreateTags
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -22,13 +22,11 @@
 -- key-value pair. If a tag key specified in the request already exists on
 -- the file system, this operation overwrites its value with the value
 -- provided in the request. If you add the \"Name\" tag to your file
--- system, Amazon EFS returns it in the response to the DescribeFileSystems
--- API.
+-- system, Amazon EFS returns it in the response to the
+-- < DescribeFileSystems> API.
 --
 -- This operation requires permission for the
 -- 'elasticfilesystem:CreateTags' action.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_CreateTags.html AWS API Reference> for CreateTags.
 module Network.AWS.EFS.CreateTags
     (
     -- * Creating a Request
@@ -83,8 +81,10 @@
 
 instance AWSRequest CreateTags where
         type Rs CreateTags = CreateTagsResponse
-        request = postJSON eFS
+        request = postJSON efs
         response = receiveNull CreateTagsResponse'
+
+instance Hashable CreateTags
 
 instance ToHeaders CreateTags where
         toHeaders = const mempty
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DeleteFileSystem
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -24,19 +24,17 @@
 --
 -- You cannot delete a file system that is in use. That is, if the file
 -- system has any mount targets, you must first delete them. For more
--- information, see DescribeMountTargets and DeleteMountTarget.
+-- information, see < DescribeMountTargets> and < DeleteMountTarget>.
 --
 -- The 'DeleteFileSystem' call returns while the file system state is still
 -- \"deleting\". You can check the file system deletion status by calling
--- the DescribeFileSystems API, which returns a list of file systems in
+-- the < DescribeFileSystems> API, which returns a list of file systems in
 -- your account. If you pass file system ID or creation token for the
--- deleted file system, the DescribeFileSystems will return a 404
+-- deleted file system, the < DescribeFileSystems> will return a 404
 -- \"FileSystemNotFound\" error.
 --
 -- This operation requires permission for the
 -- 'elasticfilesystem:DeleteFileSystem' action.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeleteFileSystem.html AWS API Reference> for DeleteFileSystem.
 module Network.AWS.EFS.DeleteFileSystem
     (
     -- * Creating a Request
@@ -81,8 +79,10 @@
 
 instance AWSRequest DeleteFileSystem where
         type Rs DeleteFileSystem = DeleteFileSystemResponse
-        request = delete eFS
+        request = delete efs
         response = receiveNull DeleteFileSystemResponse'
+
+instance Hashable DeleteFileSystem
 
 instance ToHeaders DeleteFileSystem where
         toHeaders = const mempty
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DeleteMountTarget
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -37,15 +37,13 @@
 --
 -- The 'DeleteMountTarget' call returns while the mount target state is
 -- still \"deleting\". You can check the mount target deletion by calling
--- the DescribeMountTargets API, which returns a list of mount target
+-- the < DescribeMountTargets> API, which returns a list of mount target
 -- descriptions for the given file system.
 --
 -- The operation also requires permission for the following Amazon EC2
 -- action on the mount target\'s network interface:
 --
 -- -   'ec2:DeleteNetworkInterface'
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeleteMountTarget.html AWS API Reference> for DeleteMountTarget.
 module Network.AWS.EFS.DeleteMountTarget
     (
     -- * Creating a Request
@@ -90,8 +88,10 @@
 
 instance AWSRequest DeleteMountTarget where
         type Rs DeleteMountTarget = DeleteMountTargetResponse
-        request = delete eFS
+        request = delete efs
         response = receiveNull DeleteMountTargetResponse'
+
+instance Hashable DeleteMountTarget
 
 instance ToHeaders DeleteMountTarget where
         toHeaders = const mempty
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DeleteTags
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -27,8 +27,6 @@
 --
 -- This operation requires permission for the
 -- 'elasticfilesystem:DeleteTags' action.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DeleteTags.html AWS API Reference> for DeleteTags.
 module Network.AWS.EFS.DeleteTags
     (
     -- * Creating a Request
@@ -82,8 +80,10 @@
 
 instance AWSRequest DeleteTags where
         type Rs DeleteTags = DeleteTagsResponse
-        request = postJSON eFS
+        request = postJSON efs
         response = receiveNull DeleteTagsResponse'
+
+instance Hashable DeleteTags
 
 instance ToHeaders DeleteTags where
         toHeaders = const mempty
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DescribeFileSystems
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -46,8 +46,6 @@
 --
 -- This operation requires permission for the
 -- 'elasticfilesystem:DescribeFileSystems' action.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeFileSystems.html AWS API Reference> for DescribeFileSystems.
 module Network.AWS.EFS.DescribeFileSystems
     (
     -- * Creating a Request
@@ -132,7 +130,7 @@
 instance AWSRequest DescribeFileSystems where
         type Rs DescribeFileSystems =
              DescribeFileSystemsResponse
-        request = get eFS
+        request = get efs
         response
           = receiveJSON
               (\ s h x ->
@@ -140,6 +138,8 @@
                    (x .?> "FileSystems" .!@ mempty) <*> (x .?> "Marker")
                      <*> (x .?> "NextMarker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeFileSystems
 
 instance ToHeaders DescribeFileSystems where
         toHeaders = const mempty
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DescribeMountTargetSecurityGroups
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -29,8 +29,6 @@
 --     mount target\'s file system.
 -- -   'ec2:DescribeNetworkInterfaceAttribute' action on the mount
 --     target\'s network interface.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeMountTargetSecurityGroups.html AWS API Reference> for DescribeMountTargetSecurityGroups.
 module Network.AWS.EFS.DescribeMountTargetSecurityGroups
     (
     -- * Creating a Request
@@ -80,13 +78,15 @@
          where
         type Rs DescribeMountTargetSecurityGroups =
              DescribeMountTargetSecurityGroupsResponse
-        request = get eFS
+        request = get efs
         response
           = receiveJSON
               (\ s h x ->
                  DescribeMountTargetSecurityGroupsResponse' <$>
                    (pure (fromEnum s)) <*>
                      (x .?> "SecurityGroups" .!@ mempty))
+
+instance Hashable DescribeMountTargetSecurityGroups
 
 instance ToHeaders DescribeMountTargetSecurityGroups
          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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DescribeMountTargets
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -27,8 +27,6 @@
 -- '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'.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeMountTargets.html AWS API Reference> for DescribeMountTargets.
 module Network.AWS.EFS.DescribeMountTargets
     (
     -- * Creating a Request
@@ -112,7 +110,7 @@
 instance AWSRequest DescribeMountTargets where
         type Rs DescribeMountTargets =
              DescribeMountTargetsResponse
-        request = get eFS
+        request = get efs
         response
           = receiveJSON
               (\ s h x ->
@@ -121,6 +119,8 @@
                      (x .?> "Marker")
                      <*> (x .?> "NextMarker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable DescribeMountTargets
 
 instance ToHeaders DescribeMountTargets where
         toHeaders = const mempty
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.DescribeTags
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -25,8 +25,6 @@
 --
 -- This operation requires permission for the
 -- 'elasticfilesystem:DescribeTags' action.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_DescribeTags.html AWS API Reference> for DescribeTags.
 module Network.AWS.EFS.DescribeTags
     (
     -- * Creating a Request
@@ -97,7 +95,7 @@
 
 instance AWSRequest DescribeTags where
         type Rs DescribeTags = DescribeTagsResponse
-        request = get eFS
+        request = get efs
         response
           = receiveJSON
               (\ s h x ->
@@ -105,6 +103,8 @@
                    (x .?> "Marker") <*> (x .?> "NextMarker") <*>
                      (pure (fromEnum s))
                      <*> (x .?> "Tags" .!@ mempty))
+
+instance Hashable DescribeTags
 
 instance ToHeaders DescribeTags where
         toHeaders = const mempty
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.ModifyMountTargetSecurityGroups
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -21,9 +21,9 @@
 -- Modifies the set of security groups in effect for a mount target.
 --
 -- When you create a mount target, Amazon EFS also creates a new network
--- interface (see CreateMountTarget). This operation replaces the security
--- groups in effect for the network interface associated with a mount
--- target, with the 'SecurityGroups' provided in the request. This
+-- interface (see < CreateMountTarget>). This operation replaces the
+-- security groups in effect for the network interface associated with a
+-- mount target, with the 'SecurityGroups' provided in the request. This
 -- operation requires that the network interface of the mount target has
 -- been created and the life cycle state of the mount target is not
 -- \"deleted\".
@@ -34,8 +34,6 @@
 --     mount target\'s file system.
 -- -   'ec2:ModifyNetworkInterfaceAttribute' action on the mount target\'s
 --     network interface.
---
--- /See:/ <http://docs.aws.amazon.com/directoryservice/latest/devguide/API_ModifyMountTargetSecurityGroups.html AWS API Reference> for ModifyMountTargetSecurityGroups.
 module Network.AWS.EFS.ModifyMountTargetSecurityGroups
     (
     -- * Creating a Request
@@ -91,10 +89,12 @@
          where
         type Rs ModifyMountTargetSecurityGroups =
              ModifyMountTargetSecurityGroupsResponse
-        request = putJSON eFS
+        request = putJSON efs
         response
           = receiveNull
               ModifyMountTargetSecurityGroupsResponse'
+
+instance Hashable ModifyMountTargetSecurityGroups
 
 instance ToHeaders ModifyMountTargetSecurityGroups
          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,7 +4,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.Types
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -13,7 +13,7 @@
 module Network.AWS.EFS.Types
     (
     -- * Service Configuration
-      eFS
+      efs
 
     -- * Errors
     , _MountTargetNotFound
@@ -81,14 +81,14 @@
 import           Network.AWS.Sign.V4
 
 -- | API version '2015-02-01' of the Amazon Elastic File System SDK configuration.
-eFS :: Service
-eFS =
+efs :: Service
+efs =
     Service
     { _svcAbbrev = "EFS"
     , _svcSigner = v4
     , _svcPrefix = "elasticfilesystem"
     , _svcVersion = "2015-02-01"
-    , _svcEndpoint = defaultEndpoint eFS
+    , _svcEndpoint = defaultEndpoint efs
     , _svcTimeout = Just 70
     , _svcCheck = statusSuccess
     , _svcError = parseJSONError
@@ -103,6 +103,7 @@
         , _retryCheck = check
         }
     check e
+      | has (hasStatus 429) e = Just "too_many_requests"
       | has (hasCode "ThrottlingException" . hasStatus 400) e =
           Just "throttling_exception"
       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
diff --git a/gen/Network/AWS/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,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.Types.Product
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -75,9 +75,9 @@
     , _fsdSizeInBytes = pSizeInBytes_
     }
 
--- | You can add tags to a file system (see CreateTags) including a \"Name\"
--- tag. If the file system has a \"Name\" tag, Amazon EFS returns the value
--- in this field.
+-- | You can add tags to a file system (see < CreateTags>) including a
+-- \"Name\" tag. 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});
 
@@ -105,7 +105,7 @@
 fsdLifeCycleState :: Lens' FileSystemDescription LifeCycleState
 fsdLifeCycleState = lens _fsdLifeCycleState (\ s a -> s{_fsdLifeCycleState = a});
 
--- | The current number of mount targets (see CreateMountTarget) the file
+-- | The current number of mount targets (see < CreateMountTarget>) the file
 -- system has.
 fsdNumberOfMountTargets :: Lens' FileSystemDescription Natural
 fsdNumberOfMountTargets = lens _fsdNumberOfMountTargets (\ s a -> s{_fsdNumberOfMountTargets = a}) . _Nat;
@@ -136,6 +136,8 @@
                      <*> (x .: "NumberOfMountTargets")
                      <*> (x .: "SizeInBytes"))
 
+instance Hashable FileSystemDescription
+
 -- | This object provides the 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
@@ -186,6 +188,8 @@
                  FileSystemSize' <$>
                    (x .:? "Timestamp") <*> (x .: "Value"))
 
+instance Hashable FileSystemSize
+
 -- | This object provides description of a mount target.
 --
 -- /See:/ 'mountTargetDescription' smart constructor.
@@ -275,6 +279,8 @@
                      <*> (x .: "SubnetId")
                      <*> (x .: "LifeCycleState"))
 
+instance Hashable MountTargetDescription
+
 -- | A tag is a pair of key and value. The allowed characters in keys and
 -- values are letters, whitespace, and numbers, representable in UTF-8, and
 -- the characters \'+\', \'-\', \'=\', \'.\', \'_\', \':\', and \'\/\'.
@@ -314,6 +320,8 @@
         parseJSON
           = withObject "Tag"
               (\ x -> Tag' <$> (x .: "Key") <*> (x .: "Value"))
+
+instance Hashable Tag
 
 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,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.Types.Sum
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/gen/Network/AWS/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,7 +7,7 @@
 
 -- |
 -- Module      : Network.AWS.EFS.Waiters
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -2,7 +2,7 @@
 
 -- |
 -- Module      : Main
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
diff --git a/test/Test/AWS/EFS.hs b/test/Test/AWS/EFS.hs
--- a/test/Test/AWS/EFS.hs
+++ b/test/Test/AWS/EFS.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 
 -- Module      : Test.AWS.nEFS
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : This Source Code Form is subject to the terms of
 --               the Mozilla Public License, v. 2.0.
 --               A copy of the MPL can be found in the LICENSE file or
diff --git a/test/Test/AWS/EFS/Internal.hs b/test/Test/AWS/EFS/Internal.hs
--- a/test/Test/AWS/EFS/Internal.hs
+++ b/test/Test/AWS/EFS/Internal.hs
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
 -- Module      : Test.AWS.EFS.Internal
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : This Source Code Form is subject to the terms of
 --               the Mozilla Public License, v. 2.0.
 --               A copy of the MPL can be found in the LICENSE file or
diff --git a/test/Test/AWS/Gen/EFS.hs b/test/Test/AWS/Gen/EFS.hs
--- a/test/Test/AWS/Gen/EFS.hs
+++ b/test/Test/AWS/Gen/EFS.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Test.AWS.Gen.EFS
--- Copyright   : (c) 2013-2015 Brendan Hay
+-- Copyright   : (c) 2013-2016 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
 -- Stability   : auto-generated
@@ -163,75 +163,75 @@
 testDescribeTagsResponse = res
     "DescribeTagsResponse"
     "fixture/DescribeTagsResponse.proto"
-    eFS
+    efs
     (Proxy :: Proxy DescribeTags)
 
 testDescribeMountTargetsResponse :: DescribeMountTargetsResponse -> TestTree
 testDescribeMountTargetsResponse = res
     "DescribeMountTargetsResponse"
     "fixture/DescribeMountTargetsResponse.proto"
-    eFS
+    efs
     (Proxy :: Proxy DescribeMountTargets)
 
 testDescribeFileSystemsResponse :: DescribeFileSystemsResponse -> TestTree
 testDescribeFileSystemsResponse = res
     "DescribeFileSystemsResponse"
     "fixture/DescribeFileSystemsResponse.proto"
-    eFS
+    efs
     (Proxy :: Proxy DescribeFileSystems)
 
 testDeleteMountTargetResponse :: DeleteMountTargetResponse -> TestTree
 testDeleteMountTargetResponse = res
     "DeleteMountTargetResponse"
     "fixture/DeleteMountTargetResponse.proto"
-    eFS
+    efs
     (Proxy :: Proxy DeleteMountTarget)
 
 testCreateTagsResponse :: CreateTagsResponse -> TestTree
 testCreateTagsResponse = res
     "CreateTagsResponse"
     "fixture/CreateTagsResponse.proto"
-    eFS
+    efs
     (Proxy :: Proxy CreateTags)
 
 testDeleteTagsResponse :: DeleteTagsResponse -> TestTree
 testDeleteTagsResponse = res
     "DeleteTagsResponse"
     "fixture/DeleteTagsResponse.proto"
-    eFS
+    efs
     (Proxy :: Proxy DeleteTags)
 
 testDescribeMountTargetSecurityGroupsResponse :: DescribeMountTargetSecurityGroupsResponse -> TestTree
 testDescribeMountTargetSecurityGroupsResponse = res
     "DescribeMountTargetSecurityGroupsResponse"
     "fixture/DescribeMountTargetSecurityGroupsResponse.proto"
-    eFS
+    efs
     (Proxy :: Proxy DescribeMountTargetSecurityGroups)
 
 testModifyMountTargetSecurityGroupsResponse :: ModifyMountTargetSecurityGroupsResponse -> TestTree
 testModifyMountTargetSecurityGroupsResponse = res
     "ModifyMountTargetSecurityGroupsResponse"
     "fixture/ModifyMountTargetSecurityGroupsResponse.proto"
-    eFS
+    efs
     (Proxy :: Proxy ModifyMountTargetSecurityGroups)
 
 testCreateFileSystemResponse :: FileSystemDescription -> TestTree
 testCreateFileSystemResponse = res
     "CreateFileSystemResponse"
     "fixture/CreateFileSystemResponse.proto"
-    eFS
+    efs
     (Proxy :: Proxy CreateFileSystem)
 
 testDeleteFileSystemResponse :: DeleteFileSystemResponse -> TestTree
 testDeleteFileSystemResponse = res
     "DeleteFileSystemResponse"
     "fixture/DeleteFileSystemResponse.proto"
-    eFS
+    efs
     (Proxy :: Proxy DeleteFileSystem)
 
 testCreateMountTargetResponse :: MountTargetDescription -> TestTree
 testCreateMountTargetResponse = res
     "CreateMountTargetResponse"
     "fixture/CreateMountTargetResponse.proto"
-    eFS
+    efs
     (Proxy :: Proxy CreateMountTarget)
