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
@@ -25,7 +25,7 @@
 in the /AWS Lambda Developer Guide/.
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-lambda)
-and the [AWS API Reference](http://docs.aws.amazon.com/lambda/latest/dg/API_Reference.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-lambda.cabal b/amazonka-lambda.cabal
--- a/amazonka-lambda.cabal
+++ b/amazonka-lambda.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-lambda
-version:               1.3.7
+version:               1.4.0
 synopsis:              Amazon Lambda 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
@@ -35,7 +35,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.Lambda" and the <http://docs.aws.amazon.com/lambda/latest/dg/API_Reference.html AWS API Reference>
+    See "Network.AWS.Lambda" or <https://aws.amazon.com/documentation/ the AWS Documentation>
     to get started.
 
 source-repository head
@@ -81,7 +81,7 @@
         , Network.AWS.Lambda.Types.Sum
 
     build-depends:
-          amazonka-core == 1.3.7.*
+          amazonka-core == 1.4.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-lambda-test
@@ -101,9 +101,9 @@
         , Test.AWS.Lambda.Internal
 
     build-depends:
-          amazonka-core == 1.3.7.*
-        , amazonka-test == 1.3.7.*
-        , amazonka-lambda == 1.3.7.*
+          amazonka-core == 1.4.0.*
+        , amazonka-test == 1.4.0.*
+        , amazonka-lambda == 1.4.0.*
         , base
         , bytestring
         , tasty
diff --git a/gen/Network/AWS/Lambda.hs b/gen/Network/AWS/Lambda.hs
--- a/gen/Network/AWS/Lambda.hs
+++ b/gen/Network/AWS/Lambda.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda
--- 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,8 +21,6 @@
 -- and for information about how the service works, go to
 -- <http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html AWS Lambda: How it Works>
 -- in the /AWS Lambda Developer Guide/.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_Reference.html AWS API Reference>
 module Network.AWS.Lambda
     (
     -- * Service Configuration
@@ -31,15 +29,27 @@
     -- * Errors
     -- $errors
 
+    -- ** EC2ThrottledException
+    , _EC2ThrottledException
+
     -- ** PolicyLengthExceededException
     , _PolicyLengthExceededException
 
+    -- ** EC2AccessDeniedException
+    , _EC2AccessDeniedException
+
+    -- ** InvalidSubnetIdException
+    , _InvalidSubnetIdException
+
     -- ** UnsupportedMediaTypeException
     , _UnsupportedMediaTypeException
 
     -- ** InvalidRequestContentException
     , _InvalidRequestContentException
 
+    -- ** ENILimitReachedException
+    , _ENILimitReachedException
+
     -- ** InvalidParameterValueException
     , _InvalidParameterValueException
 
@@ -49,6 +59,12 @@
     -- ** TooManyRequestsException
     , _TooManyRequestsException
 
+    -- ** InvalidSecurityGroupIdException
+    , _InvalidSecurityGroupIdException
+
+    -- ** SubnetIPAddressLimitReachedException
+    , _SubnetIPAddressLimitReachedException
+
     -- ** ServiceException
     , _ServiceException
 
@@ -58,6 +74,9 @@
     -- ** ResourceConflictException
     , _ResourceConflictException
 
+    -- ** EC2UnexpectedException
+    , _EC2UnexpectedException
+
     -- ** ResourceNotFoundException
     , _ResourceNotFoundException
 
@@ -191,6 +210,7 @@
     , fcRuntime
     , fcFunctionARN
     , fcRole
+    , fcVPCConfig
     , fcVersion
     , fcFunctionName
     , fcCodeSize
@@ -199,6 +219,19 @@
     , fcLastModified
     , fcCodeSha256
     , fcDescription
+
+    -- ** VPCConfig
+    , VPCConfig
+    , vpcConfig
+    , vpccSecurityGroupIds
+    , vpccSubnetIds
+
+    -- ** VPCConfigResponse
+    , VPCConfigResponse
+    , vpcConfigResponse
+    , vcSecurityGroupIds
+    , vcSubnetIds
+    , vcVPCId
     ) where
 
 import           Network.AWS.Lambda.AddPermission
diff --git a/gen/Network/AWS/Lambda/AddPermission.hs b/gen/Network/AWS/Lambda/AddPermission.hs
--- a/gen/Network/AWS/Lambda/AddPermission.hs
+++ b/gen/Network/AWS/Lambda/AddPermission.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.AddPermission
--- 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
@@ -20,7 +20,7 @@
 --
 -- Adds a permission to the resource policy associated with the specified
 -- AWS Lambda function. You use resource policies to grant permissions to
--- event sources that use \"push\" model. In \"push\" model, event sources
+-- event sources that use /push/ model. In a /push/ model, event sources
 -- (such as Amazon S3 and custom applications) invoke your Lambda function.
 -- Each permission you add to the resource policy allows an event source,
 -- permission to invoke the Lambda function.
@@ -28,17 +28,14 @@
 -- For information about the push model, see
 -- <http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html AWS Lambda: How it Works>.
 --
--- If you are using versioning feature (see
--- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases-v2.html AWS Lambda Function Versioning and Aliases>),
--- a Lambda function can have multiple ARNs that can be used to invoke the
--- function. Note that, each permission you add to resource policy using
--- this API is specific to an ARN, specified using the 'Qualifier'
--- parameter
+-- If you are using versioning, the permissions you add are specific to the
+-- Lambda function version or alias you specify in the 'AddPermission'
+-- request via the 'Qualifier' parameter. For more information about
+-- versioning, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
 --
 -- This operation requires permission for the 'lambda:AddPermission'
 -- action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html AWS API Reference> for AddPermission.
 module Network.AWS.Lambda.AddPermission
     (
     -- * Creating a Request
@@ -134,15 +131,15 @@
 apSourceARN :: Lens' AddPermission (Maybe Text)
 apSourceARN = lens _apSourceARN (\ s a -> s{_apSourceARN = a});
 
--- | You can specify this optional query parameter to specify function
--- version or alias name. The permission will then apply to the specific
--- qualified ARN. For example, if you specify function version 2 as the
--- qualifier, then permission applies only when request is made using
--- qualified function ARN:
+-- | You can use this optional query parameter to describe a qualified ARN
+-- using a function version or an alias name. The permission will then
+-- apply to the specific qualified ARN. For example, if you specify
+-- function version 2 as the qualifier, then permission applies only when
+-- request is made using qualified function ARN:
 --
 -- 'arn:aws:lambda:aws-region:acct-id:function:function-name:2'
 --
--- If you specify alias name, for example \"PROD\", then the permission is
+-- If you specify an alias name, for example 'PROD', then the permission is
 -- valid only for requests made using the alias ARN:
 --
 -- 'arn:aws:lambda:aws-region:acct-id:function:function-name:PROD'
@@ -157,13 +154,12 @@
 -- | Name of the Lambda function whose resource policy you are updating by
 -- adding a new permission.
 --
--- You can specify an unqualified function name (for example,
--- \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the
--- function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
+-- You can specify a function name (for example, 'Thumbnail') or you can
+-- specify Amazon Resource Name (ARN) of the function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). AWS Lambda
+-- also allows you to specify partial ARN (for example,
+-- 'account-id:Thumbnail'). Note that the length constraint applies only to
+-- the ARN. If you specify only the function name, it is limited to 64
 -- character in length.
 apFunctionName :: Lens' AddPermission Text
 apFunctionName = lens _apFunctionName (\ s a -> s{_apFunctionName = a});
@@ -173,17 +169,17 @@
 apStatementId = lens _apStatementId (\ s a -> s{_apStatementId = a});
 
 -- | The AWS Lambda action you want to allow in this statement. Each Lambda
--- action is a string starting with \"lambda:\" followed by the API name
--- (see Operations). For example, \"lambda:CreateFunction\". You can use
--- wildcard (\"lambda:*\") to grant permission for all AWS Lambda actions.
+-- action is a string starting with 'lambda:' followed by the API name (see
+-- < Operations>). For example, 'lambda:CreateFunction'. You can use
+-- wildcard ('lambda:*') to grant permission for all AWS Lambda actions.
 apAction :: Lens' AddPermission Text
 apAction = lens _apAction (\ s a -> s{_apAction = a});
 
 -- | The principal who is getting this permission. It can be Amazon S3
--- service Principal (\"s3.amazonaws.com\") if you want Amazon S3 to invoke
+-- service Principal ('s3.amazonaws.com') if you want Amazon S3 to invoke
 -- the function, an AWS account ID if you are granting cross-account
 -- permission, or any valid AWS service principal such as
--- \"sns.amazonaws.com\". For example, you might want to allow a custom
+-- 'sns.amazonaws.com'. For example, you might want to allow a custom
 -- application in another AWS account to push events to AWS Lambda by
 -- invoking your function.
 apPrincipal :: Lens' AddPermission Text
@@ -198,6 +194,8 @@
                  AddPermissionResponse' <$>
                    (x .?> "Statement") <*> (pure (fromEnum s)))
 
+instance Hashable AddPermission
+
 instance ToHeaders AddPermission where
         toHeaders = const mempty
 
@@ -244,8 +242,8 @@
     }
 
 -- | The permission statement you specified in the request. The response
--- returns the same as a string using \"\\\" as an escape character in the
--- JSON.
+-- returns the same as a string using a backslash (\"\\\") as an escape
+-- character in the JSON.
 aprsStatement :: Lens' AddPermissionResponse (Maybe Text)
 aprsStatement = lens _aprsStatement (\ s a -> s{_aprsStatement = a});
 
diff --git a/gen/Network/AWS/Lambda/CreateAlias.hs b/gen/Network/AWS/Lambda/CreateAlias.hs
--- a/gen/Network/AWS/Lambda/CreateAlias.hs
+++ b/gen/Network/AWS/Lambda/CreateAlias.hs
@@ -12,19 +12,19 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.CreateAlias
--- 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)
 --
--- Creates an alias to the specified Lambda function version. For more
--- information, see
--- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-v2-intro-aliases.html Introduction to AWS Lambda Aliases>
+-- Creates an alias that points to the specified Lambda function version.
+-- For more information, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/aliases-intro.html Introduction to AWS Lambda Aliases>.
 --
--- This requires permission for the lambda:CreateAlias action.
+-- Alias names are unique for a given function.
 --
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_CreateAlias.html AWS API Reference> for CreateAlias.
+-- This requires permission for the lambda:CreateAlias action.
 module Network.AWS.Lambda.CreateAlias
     (
     -- * Creating a Request
@@ -93,7 +93,7 @@
 caFunctionName :: Lens' CreateAlias Text
 caFunctionName = lens _caFunctionName (\ s a -> s{_caFunctionName = a});
 
--- | Name for the alias your creating.
+-- | Name for the alias you are creating.
 caName :: Lens' CreateAlias Text
 caName = lens _caName (\ s a -> s{_caName = a});
 
@@ -105,6 +105,8 @@
         type Rs CreateAlias = AliasConfiguration
         request = postJSON lambda
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable CreateAlias
 
 instance ToHeaders CreateAlias where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/CreateEventSourceMapping.hs b/gen/Network/AWS/Lambda/CreateEventSourceMapping.hs
--- a/gen/Network/AWS/Lambda/CreateEventSourceMapping.hs
+++ b/gen/Network/AWS/Lambda/CreateEventSourceMapping.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.CreateEventSourceMapping
--- 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,24 +22,28 @@
 -- either an Amazon Kinesis stream or an Amazon DynamoDB stream. AWS Lambda
 -- invokes the specified function when records are posted to the stream.
 --
--- This is the pull model, where AWS Lambda invokes the function. For more
--- information, go to
+-- This association between a stream source and a Lambda function is called
+-- the event source mapping.
+--
+-- This event source mapping is relevant only in the AWS Lambda pull model,
+-- where AWS Lambda invokes the function. For more information, go to
 -- <http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html AWS Lambda: How it Works>
 -- in the /AWS Lambda Developer Guide/.
 --
--- This association between an Amazon Kinesis stream and a Lambda function
--- is called the event source mapping. You provide the configuration
--- information (for example, which stream to read from and which Lambda
--- function to invoke) for the event source mapping in the request body.
+-- You provide mapping information (for example, which stream to read from
+-- and which Lambda function to invoke) in the request body.
 --
 -- Each event source, such as an Amazon Kinesis or a DynamoDB stream, can
 -- be associated with multiple AWS Lambda function. A given Lambda function
 -- can be associated with multiple AWS event sources.
 --
+-- If you are using versioning, you can specify a specific function version
+-- or an alias via the function name parameter. For more information about
+-- versioning, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
+--
 -- This operation requires permission for the
 -- 'lambda:CreateEventSourceMapping' action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_CreateEventSourceMapping.html AWS API Reference> for CreateEventSourceMapping.
 module Network.AWS.Lambda.CreateEventSourceMapping
     (
     -- * Creating a Request
@@ -132,14 +136,20 @@
 -- | The Lambda function to invoke when AWS Lambda detects an event on the
 -- stream.
 --
--- You can specify an unqualified function name (for example,
--- \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the
--- function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
--- character in length.
+-- You can specify the function name (for example, 'Thumbnail') or you can
+-- specify Amazon Resource Name (ARN) of the function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail').
+--
+-- If you are using versioning, you can also provide a qualified function
+-- ARN (ARN that is qualified with function version or alias name as
+-- suffix). For more information about versioning, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>
+--
+-- AWS Lambda also allows you to specify only the function name with the
+-- account ID qualifier (for example, 'account-id:Thumbnail').
+--
+-- Note that the length constraint applies only to the ARN. If you specify
+-- only the function name, it is limited to 64 character in length.
 cesmFunctionName :: Lens' CreateEventSourceMapping Text
 cesmFunctionName = lens _cesmFunctionName (\ s a -> s{_cesmFunctionName = a});
 
@@ -155,6 +165,8 @@
              EventSourceMappingConfiguration
         request = postJSON lambda
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable CreateEventSourceMapping
 
 instance ToHeaders CreateEventSourceMapping where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/CreateFunction.hs b/gen/Network/AWS/Lambda/CreateFunction.hs
--- a/gen/Network/AWS/Lambda/CreateFunction.hs
+++ b/gen/Network/AWS/Lambda/CreateFunction.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.CreateFunction
--- 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
@@ -23,10 +23,13 @@
 -- file in the request body. If the function name already exists, the
 -- operation will fail. Note that the function name is case-sensitive.
 --
+-- If you are using versioning, you can also publish a version of the
+-- Lambda function you are creating using the 'Publish' parameter. For more
+-- information about versioning, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
+--
 -- This operation requires permission for the 'lambda:CreateFunction'
 -- action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_CreateFunction.html AWS API Reference> for CreateFunction.
 module Network.AWS.Lambda.CreateFunction
     (
     -- * Creating a Request
@@ -34,6 +37,7 @@
     , CreateFunction
     -- * Request Lenses
     , cfMemorySize
+    , cfVPCConfig
     , cfTimeout
     , cfDescription
     , cfPublish
@@ -51,6 +55,7 @@
     , fcRuntime
     , fcFunctionARN
     , fcRole
+    , fcVPCConfig
     , fcVersion
     , fcFunctionName
     , fcCodeSize
@@ -71,6 +76,7 @@
 -- | /See:/ 'createFunction' smart constructor.
 data CreateFunction = CreateFunction'
     { _cfMemorySize   :: !(Maybe Nat)
+    , _cfVPCConfig    :: !(Maybe VPCConfig)
     , _cfTimeout      :: !(Maybe Nat)
     , _cfDescription  :: !(Maybe Text)
     , _cfPublish      :: !(Maybe Bool)
@@ -87,6 +93,8 @@
 --
 -- * 'cfMemorySize'
 --
+-- * 'cfVPCConfig'
+--
 -- * 'cfTimeout'
 --
 -- * 'cfDescription'
@@ -112,6 +120,7 @@
 createFunction pFunctionName_ pRuntime_ pRole_ pHandler_ pCode_ =
     CreateFunction'
     { _cfMemorySize = Nothing
+    , _cfVPCConfig = Nothing
     , _cfTimeout = Nothing
     , _cfDescription = Nothing
     , _cfPublish = Nothing
@@ -131,6 +140,13 @@
 cfMemorySize :: Lens' CreateFunction (Maybe Natural)
 cfMemorySize = lens _cfMemorySize (\ s a -> s{_cfMemorySize = a}) . mapping _Nat;
 
+-- | If your Lambda function accesses resources in a VPC, you provide this
+-- parameter identifying the list of security group IDs and subnet IDs.
+-- These must belong to the same VPC. You must provide at least one
+-- security group and one subnet ID.
+cfVPCConfig :: Lens' CreateFunction (Maybe VPCConfig)
+cfVPCConfig = lens _cfVPCConfig (\ s a -> s{_cfVPCConfig = a});
+
 -- | The function execution time at which Lambda should terminate the
 -- function. Because the execution time has cost implications, we recommend
 -- you set this value based on your expected execution time. The default is
@@ -148,28 +164,21 @@
 cfPublish :: Lens' CreateFunction (Maybe Bool)
 cfPublish = lens _cfPublish (\ s a -> s{_cfPublish = a});
 
--- | The name you want to assign to the function you are uploading. You can
--- specify an unqualified function name (for example, \"Thumbnail\") or you
--- can specify Amazon Resource Name (ARN) of the function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
--- character in length. The function names appear in the console and are
--- returned in the ListFunctions API. Function names are used to specify
--- functions to other AWS Lambda APIs, such as Invoke.
+-- | The name you want to assign to the function you are uploading. The
+-- function names appear in the console and are returned in the
+-- < ListFunctions> API. Function names are used to specify functions to
+-- other AWS Lambda APIs, such as < Invoke>.
 cfFunctionName :: Lens' CreateFunction Text
 cfFunctionName = lens _cfFunctionName (\ s a -> s{_cfFunctionName = a});
 
 -- | The runtime environment for the Lambda function you are uploading.
--- Currently, Lambda supports \"java\" and \"nodejs\" as the runtime.
 cfRuntime :: Lens' CreateFunction Runtime
 cfRuntime = lens _cfRuntime (\ s a -> s{_cfRuntime = a});
 
 -- | The Amazon Resource Name (ARN) of the IAM role that Lambda assumes when
 -- it executes your function to access any other Amazon Web Services (AWS)
 -- resources. For more information, see
--- <http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html AWS Lambda: How it Works>
+-- <http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html AWS Lambda: How it Works>.
 cfRole :: Lens' CreateFunction Text
 cfRole = lens _cfRole (\ s a -> s{_cfRole = a});
 
@@ -190,6 +199,8 @@
         request = postJSON lambda
         response = receiveJSON (\ s h x -> eitherParseJSON x)
 
+instance Hashable CreateFunction
+
 instance ToHeaders CreateFunction where
         toHeaders = const mempty
 
@@ -198,6 +209,7 @@
           = object
               (catMaybes
                  [("MemorySize" .=) <$> _cfMemorySize,
+                  ("VpcConfig" .=) <$> _cfVPCConfig,
                   ("Timeout" .=) <$> _cfTimeout,
                   ("Description" .=) <$> _cfDescription,
                   ("Publish" .=) <$> _cfPublish,
diff --git a/gen/Network/AWS/Lambda/DeleteAlias.hs b/gen/Network/AWS/Lambda/DeleteAlias.hs
--- a/gen/Network/AWS/Lambda/DeleteAlias.hs
+++ b/gen/Network/AWS/Lambda/DeleteAlias.hs
@@ -12,18 +12,16 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.DeleteAlias
--- 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)
 --
--- Deletes specified Lambda function alias. For more information, see
--- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-v2-intro-aliases.html Introduction to AWS Lambda Aliases>
+-- Deletes the specified Lambda function alias. For more information, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/aliases-intro.html Introduction to AWS Lambda Aliases>.
 --
 -- This requires permission for the lambda:DeleteAlias action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_DeleteAlias.html AWS API Reference> for DeleteAlias.
 module Network.AWS.Lambda.DeleteAlias
     (
     -- * Creating a Request
@@ -68,7 +66,8 @@
     , _daName = pName_
     }
 
--- | The Lambda function name for which the alias is created.
+-- | The Lambda function name for which the alias is created. Deleting an
+-- alias does not delete the function version to which it is pointing.
 daFunctionName :: Lens' DeleteAlias Text
 daFunctionName = lens _daFunctionName (\ s a -> s{_daFunctionName = a});
 
@@ -80,6 +79,8 @@
         type Rs DeleteAlias = DeleteAliasResponse
         request = delete lambda
         response = receiveNull DeleteAliasResponse'
+
+instance Hashable DeleteAlias
 
 instance ToHeaders DeleteAlias where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/DeleteEventSourceMapping.hs b/gen/Network/AWS/Lambda/DeleteEventSourceMapping.hs
--- a/gen/Network/AWS/Lambda/DeleteEventSourceMapping.hs
+++ b/gen/Network/AWS/Lambda/DeleteEventSourceMapping.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.DeleteEventSourceMapping
--- 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
@@ -23,8 +23,6 @@
 --
 -- This operation requires permission for the
 -- 'lambda:DeleteEventSourceMapping' action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_DeleteEventSourceMapping.html AWS API Reference> for DeleteEventSourceMapping.
 module Network.AWS.Lambda.DeleteEventSourceMapping
     (
     -- * Creating a Request
@@ -81,6 +79,8 @@
              EventSourceMappingConfiguration
         request = delete lambda
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable DeleteEventSourceMapping
 
 instance ToHeaders DeleteEventSourceMapping where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/DeleteFunction.hs b/gen/Network/AWS/Lambda/DeleteFunction.hs
--- a/gen/Network/AWS/Lambda/DeleteFunction.hs
+++ b/gen/Network/AWS/Lambda/DeleteFunction.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.DeleteFunction
--- 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
@@ -20,20 +20,19 @@
 --
 -- Deletes the specified Lambda function code and configuration.
 --
--- If you don\'t specify a function version, AWS Lambda will delete the
--- function, including all its versions, and any aliases pointing to the
--- function versions.
+-- If you are using the versioning feature and you don\'t specify a
+-- function version in your 'DeleteFunction' request, AWS Lambda will
+-- delete the function, including all its versions, and any aliases
+-- pointing to the function versions. To delete a specific function
+-- version, you must provide the function version via the 'Qualifier'
+-- parameter. For information about function versioning, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
 --
 -- When you delete a function the associated resource policy is also
 -- deleted. You will need to delete the event source mappings explicitly.
 --
--- For information about function versioning, see
--- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases-v2.html AWS Lambda Function Versioning and Aliases>.
---
 -- This operation requires permission for the 'lambda:DeleteFunction'
 -- action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_DeleteFunction.html AWS API Reference> for DeleteFunction.
 module Network.AWS.Lambda.DeleteFunction
     (
     -- * Creating a Request
@@ -78,32 +77,33 @@
     }
 
 -- | Using this optional parameter you can specify a function version (but
--- not the $LATEST version) to direct AWS Lambda to delete a specific
+-- not the '$LATEST' version) to direct AWS Lambda to delete a specific
 -- function version. If the function version has one or more aliases
 -- pointing to it, you will get an error because you cannot have aliases
--- pointing to it. You can delete any function version but not the $LATEST,
--- that is, you cannot specify $LATEST as the value of this parameter. The
--- $LATEST version can be deleted only when you want to delete all the
--- function versions and aliases.
+-- pointing to it. You can delete any function version but not the
+-- '$LATEST', that is, you cannot specify '$LATEST' as the value of this
+-- parameter. The '$LATEST' version can be deleted only when you want to
+-- delete all the function versions and aliases.
 --
--- You can only specify a function version and not alias name using this
+-- You can only specify a function version, not an alias name, using this
 -- parameter. You cannot delete a function version using its alias.
 --
 -- If you don\'t specify this parameter, AWS Lambda will delete the
--- function, including all its versions and aliases.
+-- function, including all of its versions and aliases.
 dfQualifier :: Lens' DeleteFunction (Maybe Text)
 dfQualifier = lens _dfQualifier (\ s a -> s{_dfQualifier = a});
 
 -- | The Lambda function to delete.
 --
--- You can specify an unqualified function name (for example,
--- \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the
--- function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
--- character in length.
+-- You can specify the function name (for example, 'Thumbnail') or you can
+-- specify Amazon Resource Name (ARN) of the function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). If you are
+-- using versioning, you can also provide a qualified function ARN (ARN
+-- that is qualified with function version or alias name as suffix). AWS
+-- Lambda also allows you to specify only the function name with the
+-- account ID qualifier (for example, 'account-id:Thumbnail'). Note that
+-- the length constraint applies only to the ARN. If you specify only the
+-- function name, it is limited to 64 character in length.
 dfFunctionName :: Lens' DeleteFunction Text
 dfFunctionName = lens _dfFunctionName (\ s a -> s{_dfFunctionName = a});
 
@@ -111,6 +111,8 @@
         type Rs DeleteFunction = DeleteFunctionResponse
         request = delete lambda
         response = receiveNull DeleteFunctionResponse'
+
+instance Hashable DeleteFunction
 
 instance ToHeaders DeleteFunction where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/GetAlias.hs b/gen/Network/AWS/Lambda/GetAlias.hs
--- a/gen/Network/AWS/Lambda/GetAlias.hs
+++ b/gen/Network/AWS/Lambda/GetAlias.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.GetAlias
--- 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,11 +21,9 @@
 -- Returns the specified alias information such as the alias ARN,
 -- description, and function version it is pointing to. For more
 -- information, see
--- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-v2-intro-aliases.html Introduction to AWS Lambda Aliases>
---
--- This requires permission for the lambda:GetAlias action.
+-- <http://docs.aws.amazon.com/lambda/latest/dg/aliases-intro.html Introduction to AWS Lambda Aliases>.
 --
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_GetAlias.html AWS API Reference> for GetAlias.
+-- This requires permission for the 'lambda:GetAlias' action.
 module Network.AWS.Lambda.GetAlias
     (
     -- * Creating a Request
@@ -76,7 +74,7 @@
     }
 
 -- | Function name for which the alias is created. An alias is a subresource
--- that exists only in the context of an existing Lambda function. So you
+-- that exists only in the context of an existing Lambda function so you
 -- must specify the function name.
 gaFunctionName :: Lens' GetAlias Text
 gaFunctionName = lens _gaFunctionName (\ s a -> s{_gaFunctionName = a});
@@ -89,6 +87,8 @@
         type Rs GetAlias = AliasConfiguration
         request = get lambda
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable GetAlias
 
 instance ToHeaders GetAlias where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/GetEventSourceMapping.hs b/gen/Network/AWS/Lambda/GetEventSourceMapping.hs
--- a/gen/Network/AWS/Lambda/GetEventSourceMapping.hs
+++ b/gen/Network/AWS/Lambda/GetEventSourceMapping.hs
@@ -12,19 +12,17 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.GetEventSourceMapping
--- 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)
 --
 -- Returns configuration information for the specified event source mapping
--- (see CreateEventSourceMapping).
+-- (see < CreateEventSourceMapping>).
 --
 -- This operation requires permission for the
 -- 'lambda:GetEventSourceMapping' action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_GetEventSourceMapping.html AWS API Reference> for GetEventSourceMapping.
 module Network.AWS.Lambda.GetEventSourceMapping
     (
     -- * Creating a Request
@@ -81,6 +79,8 @@
              EventSourceMappingConfiguration
         request = get lambda
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable GetEventSourceMapping
 
 instance ToHeaders GetEventSourceMapping where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/GetFunction.hs b/gen/Network/AWS/Lambda/GetFunction.hs
--- a/gen/Network/AWS/Lambda/GetFunction.hs
+++ b/gen/Network/AWS/Lambda/GetFunction.hs
@@ -12,28 +12,26 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.GetFunction
--- 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)
 --
 -- Returns the configuration information of the Lambda function and a
--- presigned URL link to the .zip file you uploaded with CreateFunction so
--- you can download the .zip file. Note that the URL is valid for up to 10
--- minutes. The configuration information is the same information you
+-- presigned URL link to the .zip file you uploaded with < CreateFunction>
+-- so you can download the .zip file. Note that the URL is valid for up to
+-- 10 minutes. The configuration information is the same information you
 -- provided as parameters when uploading the function.
 --
 -- Using the optional 'Qualifier' parameter, you can specify a specific
 -- function version for which you want this information. If you don\'t
 -- specify this parameter, the API uses unqualified function ARN which
--- return information about the $LATEST version of the Lambda function. For
--- more information, see
--- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases-v2.html AWS Lambda Function Versioning and Aliases>.
+-- return information about the '$LATEST' version of the Lambda function.
+-- For more information, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
 --
 -- This operation requires permission for the 'lambda:GetFunction' action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_GetFunction.html AWS API Reference> for GetFunction.
 module Network.AWS.Lambda.GetFunction
     (
     -- * Creating a Request
@@ -81,26 +79,25 @@
     , _gfFunctionName = pFunctionName_
     }
 
--- | Using this optional parameter to specify a function version or alias
+-- | Using this optional parameter to specify a function version or an alias
 -- name. If you specify function version, the API uses qualified function
 -- ARN for the request and returns information about the specific Lambda
--- function version. If you specify alias name, the API uses alias ARN and
--- returns information about the function version to which the alias
--- points. If you don\'t provide this parameter, the API uses unqualified
--- function ARN and returns information about the $LATEST version of the
--- Lambda function.
+-- function version. If you specify an alias name, the API uses the alias
+-- ARN and returns information about the function version to which the
+-- alias points. If you don\'t provide this parameter, the API uses
+-- unqualified function ARN and returns information about the '$LATEST'
+-- version of the Lambda function.
 gfQualifier :: Lens' GetFunction (Maybe Text)
 gfQualifier = lens _gfQualifier (\ s a -> s{_gfQualifier = a});
 
 -- | The Lambda function name.
 --
--- You can specify an unqualified function name (for example,
--- \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the
--- function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
+-- You can specify a function name (for example, 'Thumbnail') or you can
+-- specify Amazon Resource Name (ARN) of the function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). AWS Lambda
+-- also allows you to specify a partial ARN (for example,
+-- 'account-id:Thumbnail'). Note that the length constraint applies only to
+-- the ARN. If you specify only the function name, it is limited to 64
 -- character in length.
 gfFunctionName :: Lens' GetFunction Text
 gfFunctionName = lens _gfFunctionName (\ s a -> s{_gfFunctionName = a});
@@ -115,6 +112,8 @@
                    (x .?> "Code") <*> (x .?> "Configuration") <*>
                      (pure (fromEnum s)))
 
+instance Hashable GetFunction
+
 instance ToHeaders GetFunction where
         toHeaders = const mempty
 
@@ -128,7 +127,7 @@
           = mconcat ["Qualifier" =: _gfQualifier]
 
 -- | This response contains the object for the Lambda function location (see
--- API_FunctionCodeLocation
+-- < API_FunctionCodeLocation>.
 --
 -- /See:/ 'getFunctionResponse' smart constructor.
 data GetFunctionResponse = GetFunctionResponse'
diff --git a/gen/Network/AWS/Lambda/GetFunctionConfiguration.hs b/gen/Network/AWS/Lambda/GetFunctionConfiguration.hs
--- a/gen/Network/AWS/Lambda/GetFunctionConfiguration.hs
+++ b/gen/Network/AWS/Lambda/GetFunctionConfiguration.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.GetFunctionConfiguration
--- 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
@@ -20,18 +20,18 @@
 --
 -- Returns the configuration information of the Lambda function. This the
 -- same information you provided as parameters when uploading the function
--- by using CreateFunction.
+-- by using < CreateFunction>.
 --
--- You can use the optional 'Qualifier' parameter to retrieve configuration
--- information for a specific Lambda function version. If you don\'t
--- provide it, the API returns information about the $LATEST version of the
--- function. For more information about versioning, see
--- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases-v2.html AWS Lambda Function Versioning and Aliases>.
+-- If you are using the versioning feature, you can retrieve this
+-- information for a specific function version by using the optional
+-- 'Qualifier' parameter and specifying the function version or alias that
+-- points to it. If you don\'t provide it, the API returns information
+-- about the $LATEST version of the function. For more information about
+-- versioning, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
 --
 -- This operation requires permission for the
 -- 'lambda:GetFunctionConfiguration' operation.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_GetFunctionConfiguration.html AWS API Reference> for GetFunctionConfiguration.
 module Network.AWS.Lambda.GetFunctionConfiguration
     (
     -- * Creating a Request
@@ -49,6 +49,7 @@
     , fcRuntime
     , fcFunctionARN
     , fcRole
+    , fcVPCConfig
     , fcVersion
     , fcFunctionName
     , fcCodeSize
@@ -88,27 +89,27 @@
     , _gfcFunctionName = pFunctionName_
     }
 
--- | Using this optional parameter you can specify function version or alias
--- name. If you specify function version, the API uses qualified function
--- ARN and returns information about the specific function version. if you
--- specify alias name, the API uses alias ARN and returns information about
--- the function version to which the alias points.
+-- | Using this optional parameter you can specify a function version or an
+-- alias name. If you specify function version, the API uses qualified
+-- function ARN and returns information about the specific function
+-- version. If you specify an alias name, the API uses the alias ARN and
+-- returns information about the function version to which the alias
+-- points.
 --
 -- If you don\'t specify this parameter, the API uses unqualified function
--- ARN, and returns information about the $LATEST function version.
+-- ARN, and returns information about the '$LATEST' function version.
 gfcQualifier :: Lens' GetFunctionConfiguration (Maybe Text)
 gfcQualifier = lens _gfcQualifier (\ s a -> s{_gfcQualifier = a});
 
 -- | The name of the Lambda function for which you want to retrieve the
 -- configuration information.
 --
--- You can specify an unqualified function name (for example,
--- \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the
--- function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
+-- You can specify a function name (for example, 'Thumbnail') or you can
+-- specify Amazon Resource Name (ARN) of the function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). AWS Lambda
+-- also allows you to specify a partial ARN (for example,
+-- 'account-id:Thumbnail'). Note that the length constraint applies only to
+-- the ARN. If you specify only the function name, it is limited to 64
 -- character in length.
 gfcFunctionName :: Lens' GetFunctionConfiguration Text
 gfcFunctionName = lens _gfcFunctionName (\ s a -> s{_gfcFunctionName = a});
@@ -118,6 +119,8 @@
              FunctionConfiguration
         request = get lambda
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable GetFunctionConfiguration
 
 instance ToHeaders GetFunctionConfiguration where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/GetPolicy.hs b/gen/Network/AWS/Lambda/GetPolicy.hs
--- a/gen/Network/AWS/Lambda/GetPolicy.hs
+++ b/gen/Network/AWS/Lambda/GetPolicy.hs
@@ -12,20 +12,24 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.GetPolicy
--- 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)
 --
--- Returns the resource policy, containing a list of permissions that apply
--- to a specific to an ARN that you specify via the 'Qualifier' paramter.
+-- Returns the resource policy associated with the specified Lambda
+-- function.
 --
--- For informration about adding permissions, see AddPermission.
+-- If you are using the versioning feature, you can get the resource policy
+-- associated with the specific Lambda function version or alias by
+-- specifying the version or alias name using the 'Qualifier' parameter.
+-- For more information about versioning, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
 --
--- You need permission for the 'lambda:GetPolicy action.'
+-- For information about adding permissions, see < AddPermission>.
 --
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_GetPolicy.html AWS API Reference> for GetPolicy.
+-- You need permission for the 'lambda:GetPolicy action.'
 module Network.AWS.Lambda.GetPolicy
     (
     -- * Creating a Request
@@ -72,24 +76,25 @@
     , _gpFunctionName = pFunctionName_
     }
 
--- | You can specify this optional query parameter to specify function
--- version or alias name in which case this API will return all permissions
--- associated with the specific ARN. If you don\'t provide this parameter,
--- the API will return permissions that apply to the unqualified function
--- ARN.
+-- | You can specify this optional query parameter to specify a function
+-- version or an alias name in which case this API will return all
+-- permissions associated with the specific qualified ARN. If you don\'t
+-- provide this parameter, the API will return permissions that apply to
+-- the unqualified function ARN.
 gpQualifier :: Lens' GetPolicy (Maybe Text)
 gpQualifier = lens _gpQualifier (\ s a -> s{_gpQualifier = a});
 
 -- | Function name whose resource policy you want to retrieve.
 --
--- You can specify an unqualified function name (for example,
--- \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the
--- function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
--- character in length.
+-- You can specify the function name (for example, 'Thumbnail') or you can
+-- specify Amazon Resource Name (ARN) of the function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). If you are
+-- using versioning, you can also provide a qualified function ARN (ARN
+-- that is qualified with function version or alias name as suffix). AWS
+-- Lambda also allows you to specify only the function name with the
+-- account ID qualifier (for example, 'account-id:Thumbnail'). Note that
+-- the length constraint applies only to the ARN. If you specify only the
+-- function name, it is limited to 64 character in length.
 gpFunctionName :: Lens' GetPolicy Text
 gpFunctionName = lens _gpFunctionName (\ s a -> s{_gpFunctionName = a});
 
@@ -102,6 +107,8 @@
                  GetPolicyResponse' <$>
                    (x .?> "Policy") <*> (pure (fromEnum s)))
 
+instance Hashable GetPolicy
+
 instance ToHeaders GetPolicy where
         toHeaders = const mempty
 
@@ -112,7 +119,8 @@
                "/policy"]
 
 instance ToQuery GetPolicy where
-        toQuery = const mempty
+        toQuery GetPolicy'{..}
+          = mconcat ["Qualifier" =: _gpQualifier]
 
 -- | /See:/ 'getPolicyResponse' smart constructor.
 data GetPolicyResponse = GetPolicyResponse'
@@ -137,8 +145,8 @@
     }
 
 -- | The resource policy associated with the specified function. The response
--- returns the same as a string using \"\\\" as an escape character in the
--- JSON.
+-- returns the same as a string using a backslash (\"\\\") as an escape
+-- character in the JSON.
 gprsPolicy :: Lens' GetPolicyResponse (Maybe Text)
 gprsPolicy = lens _gprsPolicy (\ s a -> s{_gprsPolicy = a});
 
diff --git a/gen/Network/AWS/Lambda/Invoke.hs b/gen/Network/AWS/Lambda/Invoke.hs
--- a/gen/Network/AWS/Lambda/Invoke.hs
+++ b/gen/Network/AWS/Lambda/Invoke.hs
@@ -12,32 +12,24 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.Invoke
--- 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)
 --
--- Invokes a specific Lambda function version.
+-- Invokes a specific Lambda function.
 --
--- If you don\'t provide the 'Qualifier' parameter, it uses the unqualified
--- function ARN which results in invocation of the $LATEST version of the
--- Lambda function (when you create a Lambda function, the $LATEST is the
--- version). The AWS Lambda versioning and aliases feature allows you to
--- publish multiple versions of a Lambda function and also create aliases
--- for each function version. So each your Lambda function version can be
--- invoked using multiple ARNs. For more information, see
--- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases-v2.html AWS Lambda Function Versioning and Aliases>.
--- Using the 'Qualifier' parameter, you can specify a function version or
--- alias name to invoke specific function version. If you specify function
--- version, the API uses the qualified function ARN to invoke a specific
--- function version. If you specify alias name, the API uses the alias ARN
--- to invoke the function version to which the alias points.
+-- If you are using the versioning feature, you can invoke the specific
+-- function version by providing function version or alias name that is
+-- pointing to the function version using the 'Qualifier' parameter in the
+-- request. If you don\'t provide the 'Qualifier' parameter, the '$LATEST'
+-- version of the Lambda function is invoked. For information about the
+-- versioning feature, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
 --
 -- This operation requires permission for the 'lambda:InvokeFunction'
 -- action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html AWS API Reference> for Invoke.
 module Network.AWS.Lambda.Invoke
     (
     -- * Creating a Request
@@ -107,40 +99,39 @@
     , _iPayload = pPayload_
     }
 
--- | By default, the 'Invoke' API assumes \"RequestResponse\" invocation
--- type. You can optionally request asynchronous execution by specifying
--- \"Event\" as the 'InvocationType'. You can also use this parameter to
--- request AWS Lambda to not execute the function but do some verification,
--- such as if the caller is authorized to invoke the function and if the
--- inputs are valid. You request this by specifying \"DryRun\" as the
--- 'InvocationType'. This is useful in a cross-account scenario when you
--- want to verify access to a function without running it.
+-- | By default, the 'Invoke' API assumes 'RequestResponse' invocation type.
+-- You can optionally request asynchronous execution by specifying 'Event'
+-- as the 'InvocationType'. You can also use this parameter to request AWS
+-- Lambda to not execute the function but do some verification, such as if
+-- the caller is authorized to invoke the function and if the inputs are
+-- valid. You request this by specifying 'DryRun' as the 'InvocationType'.
+-- This is useful in a cross-account scenario when you want to verify
+-- access to a function without running it.
 iInvocationType :: Lens' Invoke (Maybe InvocationType)
 iInvocationType = lens _iInvocationType (\ s a -> s{_iInvocationType = a});
 
--- | You can set this optional parameter to \"Tail\" in the request only if
--- you specify the 'InvocationType' parameter with value
--- \"RequestResponse\". In this case, AWS Lambda returns the base64-encoded
--- last 4 KB of log data produced by your Lambda function in the
--- 'x-amz-log-results' header.
+-- | You can set this optional parameter to 'Tail' in the request only if you
+-- specify the 'InvocationType' parameter with value 'RequestResponse'. In
+-- this case, AWS Lambda returns the base64-encoded last 4 KB of log data
+-- produced by your Lambda function in the 'x-amz-log-results' header.
 iLogType :: Lens' Invoke (Maybe LogType)
 iLogType = lens _iLogType (\ s a -> s{_iLogType = a});
 
--- | You can use this optional paramter to specify a Lambda function version
--- or alias name. If you specify function version, the API uses qualified
--- function ARN to invoke a specific Lambda function. If you specify alias
--- name, the API uses the alias ARN to invoke the Lambda function version
--- to which the alias points.
+-- | You can use this optional parameter to specify a Lambda function version
+-- or alias name. If you specify a function version, the API uses the
+-- qualified function ARN to invoke a specific Lambda function. If you
+-- specify an alias name, the API uses the alias ARN to invoke the Lambda
+-- function version to which the alias points.
 --
 -- If you don\'t provide this parameter, then the API uses unqualified
--- function ARN which results in invocation of the $LATEST version.
+-- function ARN which results in invocation of the '$LATEST' version.
 iQualifier :: Lens' Invoke (Maybe Text)
 iQualifier = lens _iQualifier (\ s a -> s{_iQualifier = a});
 
 -- | Using the 'ClientContext' you can pass client-specific information to
 -- the Lambda function you are invoking. You can then process the client
 -- information in your Lambda function as you choose through the context
--- variable. For an example of a ClientContext JSON, go to
+-- variable. For an example of a 'ClientContext' JSON, see
 -- <http://docs.aws.amazon.com/mobileanalytics/latest/ug/PutEvents.html PutEvents>
 -- in the /Amazon Mobile Analytics API Reference and User Guide/.
 --
@@ -150,13 +141,12 @@
 
 -- | The Lambda function name.
 --
--- You can specify an unqualified function name (for example,
--- \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the
--- function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
+-- You can specify a function name (for example, 'Thumbnail') or you can
+-- specify Amazon Resource Name (ARN) of the function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). AWS Lambda
+-- also allows you to specify a partial ARN (for example,
+-- 'account-id:Thumbnail'). Note that the length constraint applies only to
+-- the ARN. If you specify only the function name, it is limited to 64
 -- character in length.
 iFunctionName :: Lens' Invoke Text
 iFunctionName = lens _iFunctionName (\ s a -> s{_iFunctionName = a});
@@ -177,6 +167,8 @@
                      <*> (pure (Just x))
                      <*> (pure (fromEnum s)))
 
+instance Hashable Invoke
+
 instance ToBody Invoke where
         toBody = toBody . _iPayload
 
@@ -240,14 +232,14 @@
 irsFunctionError = lens _irsFunctionError (\ s a -> s{_irsFunctionError = a});
 
 -- | It is the base64-encoded logs for the Lambda function invocation. This
--- is present only if the invocation type is \"RequestResponse\" and the
--- logs were requested.
+-- is present only if the invocation type is 'RequestResponse' and the logs
+-- were requested.
 irsLogResult :: Lens' InvokeResponse (Maybe Text)
 irsLogResult = lens _irsLogResult (\ s a -> s{_irsLogResult = a});
 
 -- | It is the JSON representation of the object returned by the Lambda
 -- function. In This is present only if the invocation type is
--- \"RequestResponse\".
+-- 'RequestResponse'.
 --
 -- In the event of a function error this field contains a message
 -- describing the error. For the 'Handled' errors the Lambda function will
@@ -257,8 +249,8 @@
 irsPayload = lens _irsPayload (\ s a -> s{_irsPayload = a});
 
 -- | The HTTP status code will be in the 200 range for successful request.
--- For the \"RequestResonse\" invocation type this status code will be 200.
--- For the \"Event\" invocation type this status code will be 202. For the
--- \"DryRun\" invocation type the status code will be 204.
+-- For the 'RequestResonse' invocation type this status code will be 200.
+-- For the 'Event' invocation type this status code will be 202. For the
+-- 'DryRun' invocation type the status code will be 204.
 irsStatusCode :: Lens' InvokeResponse Int
 irsStatusCode = lens _irsStatusCode (\ s a -> s{_irsStatusCode = a});
diff --git a/gen/Network/AWS/Lambda/ListAliases.hs b/gen/Network/AWS/Lambda/ListAliases.hs
--- a/gen/Network/AWS/Lambda/ListAliases.hs
+++ b/gen/Network/AWS/Lambda/ListAliases.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.ListAliases
--- 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,11 +22,9 @@
 -- the response includes information such as the alias ARN, description,
 -- alias name, and the function version to which it points. For more
 -- information, see
--- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-v2-intro-aliases.html Introduction to AWS Lambda Aliases>
+-- <http://docs.aws.amazon.com/lambda/latest/dg/aliases-intro.html Introduction to AWS Lambda Aliases>.
 --
 -- This requires permission for the lambda:ListAliases action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_ListAliases.html AWS API Reference> for ListAliases.
 module Network.AWS.Lambda.ListAliases
     (
     -- * Creating a Request
@@ -85,7 +83,7 @@
     }
 
 -- | Optional string. An opaque pagination token returned from a previous
--- ListAliases operation. If present, indicates where to continue the
+-- 'ListAliases' operation. If present, indicates where to continue the
 -- listing.
 laMarker :: Lens' ListAliases (Maybe Text)
 laMarker = lens _laMarker (\ s a -> s{_laMarker = a});
@@ -96,8 +94,8 @@
 laMaxItems = lens _laMaxItems (\ s a -> s{_laMaxItems = a}) . mapping _Nat;
 
 -- | If you specify this optional parameter, the API returns only the aliases
--- pointing to the specific Lambda function version, otherwise returns all
--- aliases created for the Lambda function.
+-- that are pointing to the specific Lambda function version, otherwise the
+-- API returns all of the aliases created for the Lambda function.
 laFunctionVersion :: Lens' ListAliases (Maybe Text)
 laFunctionVersion = lens _laFunctionVersion (\ s a -> s{_laFunctionVersion = a});
 
@@ -115,6 +113,8 @@
                    (x .?> "Aliases" .!@ mempty) <*> (x .?> "NextMarker")
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListAliases
+
 instance ToHeaders ListAliases where
         toHeaders = const mempty
 
@@ -156,7 +156,7 @@
     , _larsResponseStatus = pResponseStatus_
     }
 
--- | An list of alises.
+-- | A list of aliases.
 larsAliases :: Lens' ListAliasesResponse [AliasConfiguration]
 larsAliases = lens _larsAliases (\ s a -> s{_larsAliases = a}) . _Default . _Coerce;
 
diff --git a/gen/Network/AWS/Lambda/ListEventSourceMappings.hs b/gen/Network/AWS/Lambda/ListEventSourceMappings.hs
--- a/gen/Network/AWS/Lambda/ListEventSourceMappings.hs
+++ b/gen/Network/AWS/Lambda/ListEventSourceMappings.hs
@@ -12,25 +12,27 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.ListEventSourceMappings
--- 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)
 --
 -- Returns a list of event source mappings you created using the
--- 'CreateEventSourceMapping' (see CreateEventSourceMapping), where you
--- identify a stream as an event source. This list does not include Amazon
--- S3 event sources.
+-- 'CreateEventSourceMapping' (see < CreateEventSourceMapping>).
 --
 -- For each mapping, the API returns configuration information. You can
 -- optionally specify filters to retrieve specific event source mappings.
 --
+-- If you are using the versioning feature, you can get list of event
+-- source mappings for a specific Lambda function version or an alias as
+-- described in the 'FunctionName' parameter. For information about the
+-- versioning feature, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
+--
 -- This operation requires permission for the
 -- 'lambda:ListEventSourceMappings' action.
 --
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_ListEventSourceMappings.html AWS API Reference> for ListEventSourceMappings.
---
 -- This operation returns paginated results.
 module Network.AWS.Lambda.ListEventSourceMappings
     (
@@ -106,14 +108,15 @@
 
 -- | The name of the Lambda function.
 --
--- You can specify an unqualified function name (for example,
--- \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the
--- function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
--- character in length.
+-- You can specify the function name (for example, 'Thumbnail') or you can
+-- specify Amazon Resource Name (ARN) of the function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). If you are
+-- using versioning, you can also provide a qualified function ARN (ARN
+-- that is qualified with function version or alias name as suffix). AWS
+-- Lambda also allows you to specify only the function name with the
+-- account ID qualifier (for example, 'account-id:Thumbnail'). Note that
+-- the length constraint applies only to the ARN. If you specify only the
+-- function name, it is limited to 64 character in length.
 lesmFunctionName :: Lens' ListEventSourceMappings (Maybe Text)
 lesmFunctionName = lens _lesmFunctionName (\ s a -> s{_lesmFunctionName = a});
 
@@ -136,6 +139,8 @@
                      (x .?> "NextMarker")
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListEventSourceMappings
+
 instance ToHeaders ListEventSourceMappings where
         toHeaders = const mempty
 
@@ -150,7 +155,7 @@
                "FunctionName" =: _lesmFunctionName]
 
 -- | Contains a list of event sources (see
--- API_EventSourceMappingConfiguration)
+-- < API_EventSourceMappingConfiguration>)
 --
 -- /See:/ 'listEventSourceMappingsResponse' smart constructor.
 data ListEventSourceMappingsResponse = ListEventSourceMappingsResponse'
diff --git a/gen/Network/AWS/Lambda/ListFunctions.hs b/gen/Network/AWS/Lambda/ListFunctions.hs
--- a/gen/Network/AWS/Lambda/ListFunctions.hs
+++ b/gen/Network/AWS/Lambda/ListFunctions.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.ListFunctions
--- 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
@@ -20,12 +20,15 @@
 --
 -- Returns a list of your Lambda functions. For each function, the response
 -- includes the function configuration information. You must use
--- GetFunction to retrieve the code for your function.
+-- < GetFunction> to retrieve the code for your function.
 --
 -- This operation requires permission for the 'lambda:ListFunctions'
 -- action.
 --
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctions.html AWS API Reference> for ListFunctions.
+-- If you are using versioning feature, the response returns list of
+-- $LATEST versions of your functions. For information about the versioning
+-- feature, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
 --
 -- This operation returns paginated results.
 module Network.AWS.Lambda.ListFunctions
@@ -104,6 +107,8 @@
                      (x .?> "Functions" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
+instance Hashable ListFunctions
+
 instance ToHeaders ListFunctions where
         toHeaders = const mempty
 
@@ -116,7 +121,7 @@
               ["Marker" =: _lfMarker, "MaxItems" =: _lfMaxItems]
 
 -- | Contains a list of AWS Lambda function configurations (see
--- FunctionConfiguration.
+-- < FunctionConfiguration>.
 --
 -- /See:/ 'listFunctionsResponse' smart constructor.
 data ListFunctionsResponse = ListFunctionsResponse'
diff --git a/gen/Network/AWS/Lambda/ListVersionsByFunction.hs b/gen/Network/AWS/Lambda/ListVersionsByFunction.hs
--- a/gen/Network/AWS/Lambda/ListVersionsByFunction.hs
+++ b/gen/Network/AWS/Lambda/ListVersionsByFunction.hs
@@ -12,15 +12,15 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.ListVersionsByFunction
--- 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)
 --
--- List all versions of a function.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_ListVersionsByFunction.html AWS API Reference> for ListVersionsByFunction.
+-- List all versions of a function. For information about the versioning
+-- feature, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
 module Network.AWS.Lambda.ListVersionsByFunction
     (
     -- * Creating a Request
@@ -85,13 +85,13 @@
 lvbfMaxItems :: Lens' ListVersionsByFunction (Maybe Natural)
 lvbfMaxItems = lens _lvbfMaxItems (\ s a -> s{_lvbfMaxItems = a}) . mapping _Nat;
 
--- | Function name whose versions to list. You can specify an unqualified
--- function name (for example, \"Thumbnail\") or you can specify Amazon
--- Resource Name (ARN) of the function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
+-- | Function name whose versions to list. You can specify a function name
+-- (for example, 'Thumbnail') or you can specify Amazon Resource Name (ARN)
+-- of the function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). AWS Lambda
+-- also allows you to specify a partial ARN (for example,
+-- 'account-id:Thumbnail'). Note that the length constraint applies only to
+-- the ARN. If you specify only the function name, it is limited to 64
 -- character in length.
 lvbfFunctionName :: Lens' ListVersionsByFunction Text
 lvbfFunctionName = lens _lvbfFunctionName (\ s a -> s{_lvbfFunctionName = a});
@@ -107,6 +107,8 @@
                    (x .?> "Versions" .!@ mempty) <*>
                      (x .?> "NextMarker")
                      <*> (pure (fromEnum s)))
+
+instance Hashable ListVersionsByFunction
 
 instance ToHeaders ListVersionsByFunction where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/PublishVersion.hs b/gen/Network/AWS/Lambda/PublishVersion.hs
--- a/gen/Network/AWS/Lambda/PublishVersion.hs
+++ b/gen/Network/AWS/Lambda/PublishVersion.hs
@@ -12,20 +12,18 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.PublishVersion
--- 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)
 --
--- Publishes a version of your function from the current snapshot of HEAD.
--- That is, AWS Lambda takes a snapshot of the function code and
--- configuration information from HEAD and publishes a new version. The
--- code and 'handler' of this specific Lambda function version cannot be
--- modified after publication, but you can modify the configuration
--- information.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_PublishVersion.html AWS API Reference> for PublishVersion.
+-- Publishes a version of your function from the current snapshot of
+-- $LATEST. That is, AWS Lambda takes a snapshot of the function code and
+-- configuration information from $LATEST and publishes a new version. The
+-- code and configuration cannot be modified after publication. For
+-- information about the versioning feature, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
 module Network.AWS.Lambda.PublishVersion
     (
     -- * Creating a Request
@@ -44,6 +42,7 @@
     , fcRuntime
     , fcFunctionARN
     , fcRole
+    , fcVPCConfig
     , fcVersion
     , fcFunctionName
     , fcCodeSize
@@ -89,23 +88,23 @@
 
 -- | The SHA256 hash of the deployment package you want to publish. This
 -- provides validation on the code you are publishing. If you provide this
--- parameter value must match the SHA256 of the HEAD version for the
+-- parameter value must match the SHA256 of the $LATEST version for the
 -- publication to succeed.
 pvCodeSha256 :: Lens' PublishVersion (Maybe Text)
 pvCodeSha256 = lens _pvCodeSha256 (\ s a -> s{_pvCodeSha256 = a});
 
 -- | The description for the version you are publishing. If not provided, AWS
--- Lambda copies the description from the HEAD version.
+-- Lambda copies the description from the $LATEST version.
 pvDescription :: Lens' PublishVersion (Maybe Text)
 pvDescription = lens _pvDescription (\ s a -> s{_pvDescription = a});
 
--- | The Lambda function name. You can specify an unqualified function name
--- (for example, \"Thumbnail\") or you can specify Amazon Resource Name
--- (ARN) of the function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
+-- | The Lambda function name. You can specify a function name (for example,
+-- 'Thumbnail') or you can specify Amazon Resource Name (ARN) of the
+-- function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). AWS Lambda
+-- also allows you to specify a partial ARN (for example,
+-- 'account-id:Thumbnail'). Note that the length constraint applies only to
+-- the ARN. If you specify only the function name, it is limited to 64
 -- character in length.
 pvFunctionName :: Lens' PublishVersion Text
 pvFunctionName = lens _pvFunctionName (\ s a -> s{_pvFunctionName = a});
@@ -114,6 +113,8 @@
         type Rs PublishVersion = FunctionConfiguration
         request = postJSON lambda
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable PublishVersion
 
 instance ToHeaders PublishVersion where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/RemovePermission.hs b/gen/Network/AWS/Lambda/RemovePermission.hs
--- a/gen/Network/AWS/Lambda/RemovePermission.hs
+++ b/gen/Network/AWS/Lambda/RemovePermission.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.RemovePermission
--- 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
@@ -20,16 +20,18 @@
 --
 -- You can remove individual permissions from an resource policy associated
 -- with a Lambda function by providing a statement ID that you provided
--- when you addded the permission. The API removes corresponding permission
--- that is associated with the specific ARN identified by the 'Qualifier'
--- parameter.
+-- when you added the permission.
 --
+-- If you are using versioning, the permissions you remove are specific to
+-- the Lambda function version or alias you specify in the 'AddPermission'
+-- request via the 'Qualifier' parameter. For more information about
+-- versioning, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
+--
 -- Note that removal of a permission will cause an active event source to
 -- lose permission to the function.
 --
 -- You need permission for the 'lambda:RemovePermission' action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_RemovePermission.html AWS API Reference> for RemovePermission.
 module Network.AWS.Lambda.RemovePermission
     (
     -- * Creating a Request
@@ -80,9 +82,8 @@
     }
 
 -- | You can specify this optional parameter to remove permission associated
--- with a specific function version or function alias. The value of this
--- paramter is the function version or alias name. If you don\'t specify
--- this parameter, the API removes permission associated with the
+-- with a specific function version or function alias. If you don\'t
+-- specify this parameter, the API removes permission associated with the
 -- unqualified function ARN.
 rpQualifier :: Lens' RemovePermission (Maybe Text)
 rpQualifier = lens _rpQualifier (\ s a -> s{_rpQualifier = a});
@@ -90,13 +91,12 @@
 -- | Lambda function whose resource policy you want to remove a permission
 -- from.
 --
--- You can specify an unqualified function name (for example,
--- \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the
--- function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
+-- You can specify a function name (for example, 'Thumbnail') or you can
+-- specify Amazon Resource Name (ARN) of the function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). AWS Lambda
+-- also allows you to specify a partial ARN (for example,
+-- 'account-id:Thumbnail'). Note that the length constraint applies only to
+-- the ARN. If you specify only the function name, it is limited to 64
 -- character in length.
 rpFunctionName :: Lens' RemovePermission Text
 rpFunctionName = lens _rpFunctionName (\ s a -> s{_rpFunctionName = a});
@@ -109,6 +109,8 @@
         type Rs RemovePermission = RemovePermissionResponse
         request = delete lambda
         response = receiveNull RemovePermissionResponse'
+
+instance Hashable RemovePermission
 
 instance ToHeaders RemovePermission where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/Types.hs b/gen/Network/AWS/Lambda/Types.hs
--- a/gen/Network/AWS/Lambda/Types.hs
+++ b/gen/Network/AWS/Lambda/Types.hs
@@ -4,7 +4,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.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
@@ -16,15 +16,22 @@
       lambda
 
     -- * Errors
+    , _EC2ThrottledException
     , _PolicyLengthExceededException
+    , _EC2AccessDeniedException
+    , _InvalidSubnetIdException
     , _UnsupportedMediaTypeException
     , _InvalidRequestContentException
+    , _ENILimitReachedException
     , _InvalidParameterValueException
     , _RequestTooLargeException
     , _TooManyRequestsException
+    , _InvalidSecurityGroupIdException
+    , _SubnetIPAddressLimitReachedException
     , _ServiceException
     , _CodeStorageExceededException
     , _ResourceConflictException
+    , _EC2UnexpectedException
     , _ResourceNotFoundException
 
     -- * EventSourcePosition
@@ -80,6 +87,7 @@
     , fcRuntime
     , fcFunctionARN
     , fcRole
+    , fcVPCConfig
     , fcVersion
     , fcFunctionName
     , fcCodeSize
@@ -88,6 +96,19 @@
     , fcLastModified
     , fcCodeSha256
     , fcDescription
+
+    -- * VPCConfig
+    , VPCConfig
+    , vpcConfig
+    , vpccSecurityGroupIds
+    , vpccSubnetIds
+
+    -- * VPCConfigResponse
+    , VPCConfigResponse
+    , vpcConfigResponse
+    , vcSecurityGroupIds
+    , vcSubnetIds
+    , vcVPCId
     ) where
 
 import           Network.AWS.Lambda.Types.Product
@@ -119,6 +140,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"
@@ -127,11 +149,29 @@
       | has (hasStatus 509) e = Just "limit_exceeded"
       | otherwise = Nothing
 
+-- | AWS Lambda was throttled by Amazon EC2 during Lambda function
+-- initiatization using the execution role provided for the Lambda
+-- function.
+_EC2ThrottledException :: AsError a => Getting (First ServiceError) a ServiceError
+_EC2ThrottledException =
+    _ServiceError . hasStatus 502 . hasCode "EC2ThrottledException"
+
 -- | Lambda function access policy is limited to 20 KB.
 _PolicyLengthExceededException :: AsError a => Getting (First ServiceError) a ServiceError
 _PolicyLengthExceededException =
     _ServiceError . hasStatus 400 . hasCode "PolicyLengthExceededException"
 
+-- | Prism for EC2AccessDeniedException' errors.
+_EC2AccessDeniedException :: AsError a => Getting (First ServiceError) a ServiceError
+_EC2AccessDeniedException =
+    _ServiceError . hasStatus 502 . hasCode "EC2AccessDeniedException"
+
+-- | The Subnet ID provided in the Lambda function VPC configuration is
+-- invalid.
+_InvalidSubnetIdException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidSubnetIdException =
+    _ServiceError . hasStatus 502 . hasCode "InvalidSubnetIDException"
+
 -- | The content type of the 'Invoke' request body is not JSON.
 _UnsupportedMediaTypeException :: AsError a => Getting (First ServiceError) a ServiceError
 _UnsupportedMediaTypeException =
@@ -142,6 +182,13 @@
 _InvalidRequestContentException =
     _ServiceError . hasStatus 400 . hasCode "InvalidRequestContentException"
 
+-- | AWS Lambda was not able to create an Elastic Network Interface (ENI) in
+-- the VPC, specified as part of Lambda function configuration, because the
+-- limit for network interfaces has been reached.
+_ENILimitReachedException :: AsError a => Getting (First ServiceError) a ServiceError
+_ENILimitReachedException =
+    _ServiceError . hasStatus 502 . hasCode "ENILimitReachedException"
+
 -- | One of the parameters in the request is invalid. For example, if you
 -- provided an IAM role for AWS Lambda to assume in the 'CreateFunction' or
 -- the 'UpdateFunctionConfiguration' API, that AWS Lambda is unable to
@@ -152,7 +199,7 @@
 
 -- | The request payload exceeded the 'Invoke' request body JSON input limit.
 -- For more information, see
--- <http://docs.aws.amazon.com/lambda/latest/dg/limits.html Limits>
+-- <http://docs.aws.amazon.com/lambda/latest/dg/limits.html Limits>.
 _RequestTooLargeException :: AsError a => Getting (First ServiceError) a ServiceError
 _RequestTooLargeException =
     _ServiceError . hasStatus 413 . hasCode "RequestTooLargeException"
@@ -162,6 +209,19 @@
 _TooManyRequestsException =
     _ServiceError . hasStatus 429 . hasCode "TooManyRequestsException"
 
+-- | The Security Group ID provided in the Lambda function VPC configuration
+-- is invalid.
+_InvalidSecurityGroupIdException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidSecurityGroupIdException =
+    _ServiceError . hasStatus 502 . hasCode "InvalidSecurityGroupIDException"
+
+-- | AWS Lambda was not able to set up VPC access for the Lambda function
+-- because one or more configured subnets has no available IP addresses.
+_SubnetIPAddressLimitReachedException :: AsError a => Getting (First ServiceError) a ServiceError
+_SubnetIPAddressLimitReachedException =
+    _ServiceError .
+    hasStatus 502 . hasCode "SubnetIPAddressLimitReachedException"
+
 -- | The AWS Lambda service encountered an internal error.
 _ServiceException :: AsError a => Getting (First ServiceError) a ServiceError
 _ServiceException = _ServiceError . hasStatus 500 . hasCode "ServiceException"
@@ -176,6 +236,12 @@
 _ResourceConflictException :: AsError a => Getting (First ServiceError) a ServiceError
 _ResourceConflictException =
     _ServiceError . hasStatus 409 . hasCode "ResourceConflictException"
+
+-- | AWS Lambda received an unexpected EC2 client exception while setting up
+-- for the Lambda function.
+_EC2UnexpectedException :: AsError a => Getting (First ServiceError) a ServiceError
+_EC2UnexpectedException =
+    _ServiceError . hasStatus 502 . hasCode "EC2UnexpectedException"
 
 -- | The resource (for example, a Lambda function or access policy statement)
 -- specified in the request does not exist.
diff --git a/gen/Network/AWS/Lambda/Types/Product.hs b/gen/Network/AWS/Lambda/Types/Product.hs
--- a/gen/Network/AWS/Lambda/Types/Product.hs
+++ b/gen/Network/AWS/Lambda/Types/Product.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.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
@@ -61,9 +61,9 @@
 acFunctionVersion :: Lens' AliasConfiguration (Maybe Text)
 acFunctionVersion = lens _acFunctionVersion (\ s a -> s{_acFunctionVersion = a});
 
--- | Lambda function ARN that is qualified using alias name as the suffix.
--- For example, if you create an alias \"BETA\" pointing to a helloworld
--- function version, the ARN is
+-- | Lambda function ARN that is qualified using the alias name as the
+-- suffix. For example, if you create an alias called 'BETA' that points to
+-- a helloworld function version, the ARN is
 -- 'arn:aws:lambda:aws-regions:acct-id:function:helloworld:BETA'.
 acAliasARN :: Lens' AliasConfiguration (Maybe Text)
 acAliasARN = lens _acAliasARN (\ s a -> s{_acAliasARN = a});
@@ -81,6 +81,8 @@
                      (x .:? "AliasArn")
                      <*> (x .:? "Description"))
 
+instance Hashable AliasConfiguration
+
 -- | Describes mapping between an Amazon Kinesis stream and a Lambda
 -- function.
 --
@@ -134,9 +136,8 @@
 esmcEventSourceARN :: Lens' EventSourceMappingConfiguration (Maybe Text)
 esmcEventSourceARN = lens _esmcEventSourceARN (\ s a -> s{_esmcEventSourceARN = a});
 
--- | The state of the event source mapping. It can be \"Creating\",
--- \"Enabled\", \"Disabled\", \"Enabling\", \"Disabling\", \"Updating\", or
--- \"Deleting\".
+-- | The state of the event source mapping. It can be 'Creating', 'Enabled',
+-- 'Disabled', 'Enabling', 'Disabling', 'Updating', or 'Deleting'.
 esmcState :: Lens' EventSourceMappingConfiguration (Maybe Text)
 esmcState = lens _esmcState (\ s a -> s{_esmcState = a});
 
@@ -183,6 +184,8 @@
                      <*> (x .:? "StateTransitionReason")
                      <*> (x .:? "LastModified"))
 
+instance Hashable EventSourceMappingConfiguration
+
 -- | The code for the Lambda function.
 --
 -- /See:/ 'functionCode' smart constructor.
@@ -224,8 +227,10 @@
 fcS3Key :: Lens' FunctionCode (Maybe Text)
 fcS3Key = lens _fcS3Key (\ s a -> s{_fcS3Key = a});
 
--- | A base64-encoded .zip file containing your deployment package. For more
--- information about creating a .zip file, go to
+-- | A zip file containing your deployment package. If you are using the API
+-- directly, the zip file must be base64-encoded (if you are using the AWS
+-- SDKs or the AWS CLI, the SDKs or CLI will do the encoding for you). For
+-- more information about creating a .zip file, go to
 -- <http://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role.html Execution Permissions>
 -- in the /AWS Lambda Developer Guide/.
 --
@@ -243,6 +248,8 @@
 fcS3Bucket :: Lens' FunctionCode (Maybe Text)
 fcS3Bucket = lens _fcS3Bucket (\ s a -> s{_fcS3Bucket = a});
 
+instance Hashable FunctionCode
+
 instance ToJSON FunctionCode where
         toJSON FunctionCode'{..}
           = object
@@ -291,6 +298,8 @@
                  FunctionCodeLocation' <$>
                    (x .:? "Location") <*> (x .:? "RepositoryType"))
 
+instance Hashable FunctionCodeLocation
+
 -- | A complex type that describes function metadata.
 --
 -- /See:/ 'functionConfiguration' smart constructor.
@@ -299,6 +308,7 @@
     , _fcRuntime      :: !(Maybe Runtime)
     , _fcFunctionARN  :: !(Maybe Text)
     , _fcRole         :: !(Maybe Text)
+    , _fcVPCConfig    :: !(Maybe VPCConfigResponse)
     , _fcVersion      :: !(Maybe Text)
     , _fcFunctionName :: !(Maybe Text)
     , _fcCodeSize     :: !(Maybe Integer)
@@ -321,6 +331,8 @@
 --
 -- * 'fcRole'
 --
+-- * 'fcVPCConfig'
+--
 -- * 'fcVersion'
 --
 -- * 'fcFunctionName'
@@ -344,6 +356,7 @@
     , _fcRuntime = Nothing
     , _fcFunctionARN = Nothing
     , _fcRole = Nothing
+    , _fcVPCConfig = Nothing
     , _fcVersion = Nothing
     , _fcFunctionName = Nothing
     , _fcCodeSize = Nothing
@@ -373,6 +386,10 @@
 fcRole :: Lens' FunctionConfiguration (Maybe Text)
 fcRole = lens _fcRole (\ s a -> s{_fcRole = a});
 
+-- | VPC configuration associated with your Lambda function.
+fcVPCConfig :: Lens' FunctionConfiguration (Maybe VPCConfigResponse)
+fcVPCConfig = lens _fcVPCConfig (\ s a -> s{_fcVPCConfig = a});
+
 -- | The version of the Lambda function.
 fcVersion :: Lens' FunctionConfiguration (Maybe Text)
 fcVersion = lens _fcVersion (\ s a -> s{_fcVersion = a});
@@ -396,7 +413,7 @@
 fcTimeout :: Lens' FunctionConfiguration (Maybe Natural)
 fcTimeout = lens _fcTimeout (\ s a -> s{_fcTimeout = a}) . mapping _Nat;
 
--- | The timestamp of the last time you updated the function.
+-- | The time stamp of the last time you updated the function.
 fcLastModified :: Lens' FunctionConfiguration (Maybe Text)
 fcLastModified = lens _fcLastModified (\ s a -> s{_fcLastModified = a});
 
@@ -416,6 +433,7 @@
                    (x .:? "MemorySize") <*> (x .:? "Runtime") <*>
                      (x .:? "FunctionArn")
                      <*> (x .:? "Role")
+                     <*> (x .:? "VpcConfig")
                      <*> (x .:? "Version")
                      <*> (x .:? "FunctionName")
                      <*> (x .:? "CodeSize")
@@ -424,3 +442,98 @@
                      <*> (x .:? "LastModified")
                      <*> (x .:? "CodeSha256")
                      <*> (x .:? "Description"))
+
+instance Hashable FunctionConfiguration
+
+-- | If your Lambda function accesses resources in a VPC, you provide this
+-- parameter identifying the list of security group IDs and subnet IDs.
+-- These must belong to the same VPC. You must provide at least one
+-- security group and one subnet ID.
+--
+-- /See:/ 'vpcConfig' smart constructor.
+data VPCConfig = VPCConfig'
+    { _vpccSecurityGroupIds :: !(Maybe [Text])
+    , _vpccSubnetIds        :: !(Maybe [Text])
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'VPCConfig' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'vpccSecurityGroupIds'
+--
+-- * 'vpccSubnetIds'
+vpcConfig
+    :: VPCConfig
+vpcConfig =
+    VPCConfig'
+    { _vpccSecurityGroupIds = Nothing
+    , _vpccSubnetIds = Nothing
+    }
+
+-- | A list of one or more security groups IDs in your VPC.
+vpccSecurityGroupIds :: Lens' VPCConfig [Text]
+vpccSecurityGroupIds = lens _vpccSecurityGroupIds (\ s a -> s{_vpccSecurityGroupIds = a}) . _Default . _Coerce;
+
+-- | A list of one or more subnet IDs in your VPC.
+vpccSubnetIds :: Lens' VPCConfig [Text]
+vpccSubnetIds = lens _vpccSubnetIds (\ s a -> s{_vpccSubnetIds = a}) . _Default . _Coerce;
+
+instance Hashable VPCConfig
+
+instance ToJSON VPCConfig where
+        toJSON VPCConfig'{..}
+          = object
+              (catMaybes
+                 [("SecurityGroupIds" .=) <$> _vpccSecurityGroupIds,
+                  ("SubnetIds" .=) <$> _vpccSubnetIds])
+
+-- | VPC configuration associated with your Lambda function.
+--
+-- /See:/ 'vpcConfigResponse' smart constructor.
+data VPCConfigResponse = VPCConfigResponse'
+    { _vcSecurityGroupIds :: !(Maybe [Text])
+    , _vcSubnetIds        :: !(Maybe [Text])
+    , _vcVPCId            :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'VPCConfigResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'vcSecurityGroupIds'
+--
+-- * 'vcSubnetIds'
+--
+-- * 'vcVPCId'
+vpcConfigResponse
+    :: VPCConfigResponse
+vpcConfigResponse =
+    VPCConfigResponse'
+    { _vcSecurityGroupIds = Nothing
+    , _vcSubnetIds = Nothing
+    , _vcVPCId = Nothing
+    }
+
+-- | A list of security group IDs associated with the Lambda function.
+vcSecurityGroupIds :: Lens' VPCConfigResponse [Text]
+vcSecurityGroupIds = lens _vcSecurityGroupIds (\ s a -> s{_vcSecurityGroupIds = a}) . _Default . _Coerce;
+
+-- | A list of subnet IDs associated with the Lambda function.
+vcSubnetIds :: Lens' VPCConfigResponse [Text]
+vcSubnetIds = lens _vcSubnetIds (\ s a -> s{_vcSubnetIds = a}) . _Default . _Coerce;
+
+-- | The VPC ID associated with you Lambda function.
+vcVPCId :: Lens' VPCConfigResponse (Maybe Text)
+vcVPCId = lens _vcVPCId (\ s a -> s{_vcVPCId = a});
+
+instance FromJSON VPCConfigResponse where
+        parseJSON
+          = withObject "VPCConfigResponse"
+              (\ x ->
+                 VPCConfigResponse' <$>
+                   (x .:? "SecurityGroupIds" .!= mempty) <*>
+                     (x .:? "SubnetIds" .!= mempty)
+                     <*> (x .:? "VpcId"))
+
+instance Hashable VPCConfigResponse
diff --git a/gen/Network/AWS/Lambda/Types/Sum.hs b/gen/Network/AWS/Lambda/Types/Sum.hs
--- a/gen/Network/AWS/Lambda/Types/Sum.hs
+++ b/gen/Network/AWS/Lambda/Types/Sum.hs
@@ -9,7 +9,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.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/Lambda/UpdateAlias.hs b/gen/Network/AWS/Lambda/UpdateAlias.hs
--- a/gen/Network/AWS/Lambda/UpdateAlias.hs
+++ b/gen/Network/AWS/Lambda/UpdateAlias.hs
@@ -12,19 +12,17 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.UpdateAlias
--- 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)
 --
--- Using this API you can update function version to which the alias points
--- to and alias description. For more information, see
--- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-v2-intro-aliases.html Introduction to AWS Lambda Aliases>
+-- Using this API you can update the function version to which the alias
+-- points and the alias description. For more information, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/aliases-intro.html Introduction to AWS Lambda Aliases>.
 --
 -- This requires permission for the lambda:UpdateAlias action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_UpdateAlias.html AWS API Reference> for UpdateAlias.
 module Network.AWS.Lambda.UpdateAlias
     (
     -- * Creating a Request
@@ -84,13 +82,12 @@
     , _uaName = pName_
     }
 
--- | Using this parameter you can optionally change the Lambda function
--- version to which the alias to points to.
+-- | Using this parameter you can change the Lambda function version to which
+-- the alias points.
 uaFunctionVersion :: Lens' UpdateAlias (Maybe Text)
 uaFunctionVersion = lens _uaFunctionVersion (\ s a -> s{_uaFunctionVersion = a});
 
--- | You can optionally change the description of the alias using this
--- parameter.
+-- | You can change the description of the alias using this parameter.
 uaDescription :: Lens' UpdateAlias (Maybe Text)
 uaDescription = lens _uaDescription (\ s a -> s{_uaDescription = a});
 
@@ -106,6 +103,8 @@
         type Rs UpdateAlias = AliasConfiguration
         request = putJSON lambda
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable UpdateAlias
 
 instance ToHeaders UpdateAlias where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/UpdateEventSourceMapping.hs b/gen/Network/AWS/Lambda/UpdateEventSourceMapping.hs
--- a/gen/Network/AWS/Lambda/UpdateEventSourceMapping.hs
+++ b/gen/Network/AWS/Lambda/UpdateEventSourceMapping.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.UpdateEventSourceMapping
--- 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,10 +24,19 @@
 -- stream records, but to change the stream itself, you must create a new
 -- mapping.
 --
+-- If you are using the versioning feature, you can update the event source
+-- mapping to map to a specific Lambda function version or alias as
+-- described in the 'FunctionName' parameter. For information about the
+-- versioning feature, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
+--
+-- If you disable the event source mapping, AWS Lambda stops polling. If
+-- you enable again, it will resume polling from the time it had stopped
+-- polling, so you don\'t lose processing of any records. However, if you
+-- delete event source mapping and create it again, it will reset.
+--
 -- This operation requires permission for the
 -- 'lambda:UpdateEventSourceMapping' action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_UpdateEventSourceMapping.html AWS API Reference> for UpdateEventSourceMapping.
 module Network.AWS.Lambda.UpdateEventSourceMapping
     (
     -- * Creating a Request
@@ -102,14 +111,19 @@
 
 -- | The Lambda function to which you want the stream records sent.
 --
--- You can specify an unqualified function name (for example,
--- \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the
--- function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
--- character in length.
+-- You can specify a function name (for example, 'Thumbnail') or you can
+-- specify Amazon Resource Name (ARN) of the function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). AWS Lambda
+-- also allows you to specify a partial ARN (for example,
+-- 'account-id:Thumbnail').
+--
+-- If you are using versioning, you can also provide a qualified function
+-- ARN (ARN that is qualified with function version or alias name as
+-- suffix). For more information about versioning, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>
+--
+-- Note that the length constraint applies only to the ARN. If you specify
+-- only the function name, it is limited to 64 character in length.
 uesmFunctionName :: Lens' UpdateEventSourceMapping (Maybe Text)
 uesmFunctionName = lens _uesmFunctionName (\ s a -> s{_uesmFunctionName = a});
 
@@ -122,6 +136,8 @@
              EventSourceMappingConfiguration
         request = putJSON lambda
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable UpdateEventSourceMapping
 
 instance ToHeaders UpdateEventSourceMapping where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/UpdateFunctionCode.hs b/gen/Network/AWS/Lambda/UpdateFunctionCode.hs
--- a/gen/Network/AWS/Lambda/UpdateFunctionCode.hs
+++ b/gen/Network/AWS/Lambda/UpdateFunctionCode.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.UpdateFunctionCode
--- 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,10 +22,13 @@
 -- only be used on an existing Lambda function and cannot be used to update
 -- the function configuration.
 --
+-- If you are using the versioning feature, note this API will always
+-- update the $LATEST version of your Lambda function. For information
+-- about the versioning feature, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
+--
 -- This operation requires permission for the 'lambda:UpdateFunctionCode'
 -- action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_UpdateFunctionCode.html AWS API Reference> for UpdateFunctionCode.
 module Network.AWS.Lambda.UpdateFunctionCode
     (
     -- * Creating a Request
@@ -47,6 +50,7 @@
     , fcRuntime
     , fcFunctionARN
     , fcRole
+    , fcVPCConfig
     , fcVersion
     , fcFunctionName
     , fcCodeSize
@@ -135,13 +139,12 @@
 
 -- | The existing Lambda function name whose code you want to replace.
 --
--- You can specify an unqualified function name (for example,
--- \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the
--- function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
+-- You can specify a function name (for example, 'Thumbnail') or you can
+-- specify Amazon Resource Name (ARN) of the function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). AWS Lambda
+-- also allows you to specify a partial ARN (for example,
+-- 'account-id:Thumbnail'). Note that the length constraint applies only to
+-- the ARN. If you specify only the function name, it is limited to 64
 -- character in length.
 uFunctionName :: Lens' UpdateFunctionCode Text
 uFunctionName = lens _uFunctionName (\ s a -> s{_uFunctionName = a});
@@ -150,6 +153,8 @@
         type Rs UpdateFunctionCode = FunctionConfiguration
         request = putJSON lambda
         response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable UpdateFunctionCode
 
 instance ToHeaders UpdateFunctionCode where
         toHeaders = const mempty
diff --git a/gen/Network/AWS/Lambda/UpdateFunctionConfiguration.hs b/gen/Network/AWS/Lambda/UpdateFunctionConfiguration.hs
--- a/gen/Network/AWS/Lambda/UpdateFunctionConfiguration.hs
+++ b/gen/Network/AWS/Lambda/UpdateFunctionConfiguration.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.UpdateFunctionConfiguration
--- 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,10 +24,13 @@
 -- existing Lambda function and cannot be used to update the function\'s
 -- code.
 --
+-- If you are using the versioning feature, note this API will always
+-- update the $LATEST version of your Lambda function. For information
+-- about the versioning feature, see
+-- <http://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html AWS Lambda Function Versioning and Aliases>.
+--
 -- This operation requires permission for the
 -- 'lambda:UpdateFunctionConfiguration' action.
---
--- /See:/ <http://docs.aws.amazon.com/lambda/latest/dg/API_UpdateFunctionConfiguration.html AWS API Reference> for UpdateFunctionConfiguration.
 module Network.AWS.Lambda.UpdateFunctionConfiguration
     (
     -- * Creating a Request
@@ -36,6 +39,7 @@
     -- * Request Lenses
     , ufcMemorySize
     , ufcRole
+    , ufcVPCConfig
     , ufcHandler
     , ufcTimeout
     , ufcDescription
@@ -49,6 +53,7 @@
     , fcRuntime
     , fcFunctionARN
     , fcRole
+    , fcVPCConfig
     , fcVersion
     , fcFunctionName
     , fcCodeSize
@@ -70,6 +75,7 @@
 data UpdateFunctionConfiguration = UpdateFunctionConfiguration'
     { _ufcMemorySize   :: !(Maybe Nat)
     , _ufcRole         :: !(Maybe Text)
+    , _ufcVPCConfig    :: !(Maybe VPCConfig)
     , _ufcHandler      :: !(Maybe Text)
     , _ufcTimeout      :: !(Maybe Nat)
     , _ufcDescription  :: !(Maybe Text)
@@ -84,6 +90,8 @@
 --
 -- * 'ufcRole'
 --
+-- * 'ufcVPCConfig'
+--
 -- * 'ufcHandler'
 --
 -- * 'ufcTimeout'
@@ -98,6 +106,7 @@
     UpdateFunctionConfiguration'
     { _ufcMemorySize = Nothing
     , _ufcRole = Nothing
+    , _ufcVPCConfig = Nothing
     , _ufcHandler = Nothing
     , _ufcTimeout = Nothing
     , _ufcDescription = Nothing
@@ -118,8 +127,12 @@
 ufcRole :: Lens' UpdateFunctionConfiguration (Maybe Text)
 ufcRole = lens _ufcRole (\ s a -> s{_ufcRole = a});
 
+-- | Undocumented member.
+ufcVPCConfig :: Lens' UpdateFunctionConfiguration (Maybe VPCConfig)
+ufcVPCConfig = lens _ufcVPCConfig (\ s a -> s{_ufcVPCConfig = a});
+
 -- | The function that Lambda calls to begin executing your function. For
--- Node.js, it is the /module-name.export/ value in your function.
+-- Node.js, it is the 'module-name.export' value in your function.
 ufcHandler :: Lens' UpdateFunctionConfiguration (Maybe Text)
 ufcHandler = lens _ufcHandler (\ s a -> s{_ufcHandler = a});
 
@@ -137,13 +150,12 @@
 
 -- | The name of the Lambda function.
 --
--- You can specify an unqualified function name (for example,
--- \"Thumbnail\") or you can specify Amazon Resource Name (ARN) of the
--- function (for example,
--- \"arn:aws:lambda:us-west-2:account-id:function:ThumbNail\"). AWS Lambda
--- also allows you to specify only the account ID qualifier (for example,
--- \"account-id:Thumbnail\"). Note that the length constraint applies only
--- to the ARN. If you specify only the function name, it is limited to 64
+-- You can specify a function name (for example, 'Thumbnail') or you can
+-- specify Amazon Resource Name (ARN) of the function (for example,
+-- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). AWS Lambda
+-- also allows you to specify a partial ARN (for example,
+-- 'account-id:Thumbnail'). Note that the length constraint applies only to
+-- the ARN. If you specify only the function name, it is limited to 64
 -- character in length.
 ufcFunctionName :: Lens' UpdateFunctionConfiguration Text
 ufcFunctionName = lens _ufcFunctionName (\ s a -> s{_ufcFunctionName = a});
@@ -154,6 +166,8 @@
         request = putJSON lambda
         response = receiveJSON (\ s h x -> eitherParseJSON x)
 
+instance Hashable UpdateFunctionConfiguration
+
 instance ToHeaders UpdateFunctionConfiguration where
         toHeaders = const mempty
 
@@ -163,6 +177,7 @@
               (catMaybes
                  [("MemorySize" .=) <$> _ufcMemorySize,
                   ("Role" .=) <$> _ufcRole,
+                  ("VpcConfig" .=) <$> _ufcVPCConfig,
                   ("Handler" .=) <$> _ufcHandler,
                   ("Timeout" .=) <$> _ufcTimeout,
                   ("Description" .=) <$> _ufcDescription])
diff --git a/gen/Network/AWS/Lambda/Waiters.hs b/gen/Network/AWS/Lambda/Waiters.hs
--- a/gen/Network/AWS/Lambda/Waiters.hs
+++ b/gen/Network/AWS/Lambda/Waiters.hs
@@ -7,7 +7,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.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/Gen/Lambda.hs b/test/Test/AWS/Gen/Lambda.hs
--- a/test/Test/AWS/Gen/Lambda.hs
+++ b/test/Test/AWS/Gen/Lambda.hs
@@ -5,7 +5,7 @@
 
 -- |
 -- Module      : Test.AWS.Gen.Lambda
--- 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/Lambda.hs b/test/Test/AWS/Lambda.hs
--- a/test/Test/AWS/Lambda.hs
+++ b/test/Test/AWS/Lambda.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 
 -- Module      : Test.AWS.Lambda
--- 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/Lambda/Internal.hs b/test/Test/AWS/Lambda/Internal.hs
--- a/test/Test/AWS/Lambda/Internal.hs
+++ b/test/Test/AWS/Lambda/Internal.hs
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
 -- Module      : Test.AWS.Lambda.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
