diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.5.0`
+`1.6.0`
 
 
 ## Description
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.5.0
+version:               1.6.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+amazonka@gmail.com>
-copyright:             Copyright (c) 2013-2017 Brendan Hay
+copyright:             Copyright (c) 2013-2018 Brendan Hay
 category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 cabal-version:         >= 1.10
@@ -52,6 +52,7 @@
         , Network.AWS.Lambda.DeleteAlias
         , Network.AWS.Lambda.DeleteEventSourceMapping
         , Network.AWS.Lambda.DeleteFunction
+        , Network.AWS.Lambda.DeleteFunctionConcurrency
         , Network.AWS.Lambda.GetAccountSettings
         , Network.AWS.Lambda.GetAlias
         , Network.AWS.Lambda.GetEventSourceMapping
@@ -65,6 +66,7 @@
         , Network.AWS.Lambda.ListTags
         , Network.AWS.Lambda.ListVersionsByFunction
         , Network.AWS.Lambda.PublishVersion
+        , Network.AWS.Lambda.PutFunctionConcurrency
         , Network.AWS.Lambda.RemovePermission
         , Network.AWS.Lambda.TagResource
         , Network.AWS.Lambda.Types
@@ -80,7 +82,7 @@
         , Network.AWS.Lambda.Types.Sum
 
     build-depends:
-          amazonka-core == 1.5.0.*
+          amazonka-core == 1.6.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-lambda-test
@@ -100,8 +102,8 @@
         , Test.AWS.Lambda.Internal
 
     build-depends:
-          amazonka-core == 1.5.0.*
-        , amazonka-test == 1.5.0.*
+          amazonka-core == 1.6.0.*
+        , amazonka-test == 1.6.0.*
         , amazonka-lambda
         , base
         , bytestring
diff --git a/fixture/DeleteFunctionConcurrency.yaml b/fixture/DeleteFunctionConcurrency.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteFunctionConcurrency.yaml
@@ -0,0 +1,10 @@
+---
+method: DELETE
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lambda/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  lambda.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/DeleteFunctionConcurrencyResponse.proto b/fixture/DeleteFunctionConcurrencyResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteFunctionConcurrencyResponse.proto
diff --git a/fixture/PutFunctionConcurrency.yaml b/fixture/PutFunctionConcurrency.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/PutFunctionConcurrency.yaml
@@ -0,0 +1,10 @@
+---
+method: PUT
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/lambda/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  lambda.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/PutFunctionConcurrencyResponse.proto b/fixture/PutFunctionConcurrencyResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/PutFunctionConcurrencyResponse.proto
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -15,7 +15,7 @@
 --
 -- __Overview__
 --
--- This is the /AWS Lambda API Reference/ . The AWS Lambda Developer Guide provides additional information. For the service overview, see <http://docs.aws.amazon.com/lambda/latest/dg/welcome.html What is AWS Lambda> , and for information about how the service works, see <http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html AWS Lambda: How it Works> in the /AWS Lambda Developer Guide/ .
+-- This is the /AWS Lambda API Reference/ . The AWS Lambda Developer Guide provides additional information. For the service overview, see <http://docs.aws.amazon.com/lambda/latest/dg/welcome.html What is AWS Lambda> , and for information about how the service works, see <http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html AWS Lambda: How it Works> in the __AWS Lambda Developer Guide__ .
 --
 module Network.AWS.Lambda
     (
@@ -37,6 +37,9 @@
     -- ** PolicyLengthExceededException
     , _PolicyLengthExceededException
 
+    -- ** PreconditionFailedException
+    , _PreconditionFailedException
+
     -- ** EC2AccessDeniedException
     , _EC2AccessDeniedException
 
@@ -115,7 +118,7 @@
     -- ** ListVersionsByFunction
     , module Network.AWS.Lambda.ListVersionsByFunction
 
-    -- ** ListAliases
+    -- ** ListAliases (Paginated)
     , module Network.AWS.Lambda.ListAliases
 
     -- ** RemovePermission
@@ -130,9 +133,15 @@
     -- ** GetEventSourceMapping
     , module Network.AWS.Lambda.GetEventSourceMapping
 
+    -- ** PutFunctionConcurrency
+    , module Network.AWS.Lambda.PutFunctionConcurrency
+
     -- ** CreateFunction
     , module Network.AWS.Lambda.CreateFunction
 
+    -- ** DeleteFunctionConcurrency
+    , module Network.AWS.Lambda.DeleteFunctionConcurrency
+
     -- ** CreateEventSourceMapping
     , module Network.AWS.Lambda.CreateEventSourceMapping
 
@@ -206,6 +215,7 @@
     , accountLimit
     , alConcurrentExecutions
     , alTotalCodeSize
+    , alUnreservedConcurrentExecutions
     , alCodeSizeUnzipped
     , alCodeSizeZipped
 
@@ -218,11 +228,23 @@
     -- ** AliasConfiguration
     , AliasConfiguration
     , aliasConfiguration
+    , acRoutingConfig
     , acName
     , acFunctionVersion
     , acAliasARN
     , acDescription
+    , acRevisionId
 
+    -- ** AliasRoutingConfiguration
+    , AliasRoutingConfiguration
+    , aliasRoutingConfiguration
+    , arcAdditionalVersionWeights
+
+    -- ** Concurrency
+    , Concurrency
+    , concurrency
+    , cReservedConcurrentExecutions
+
     -- ** DeadLetterConfig
     , DeadLetterConfig
     , deadLetterConfig
@@ -291,6 +313,7 @@
     , fcCodeSha256
     , fcTracingConfig
     , fcDescription
+    , fcRevisionId
     , fcMasterARN
 
     -- ** TracingConfig
@@ -324,6 +347,7 @@
 import Network.AWS.Lambda.DeleteAlias
 import Network.AWS.Lambda.DeleteEventSourceMapping
 import Network.AWS.Lambda.DeleteFunction
+import Network.AWS.Lambda.DeleteFunctionConcurrency
 import Network.AWS.Lambda.GetAccountSettings
 import Network.AWS.Lambda.GetAlias
 import Network.AWS.Lambda.GetEventSourceMapping
@@ -337,6 +361,7 @@
 import Network.AWS.Lambda.ListTags
 import Network.AWS.Lambda.ListVersionsByFunction
 import Network.AWS.Lambda.PublishVersion
+import Network.AWS.Lambda.PutFunctionConcurrency
 import Network.AWS.Lambda.RemovePermission
 import Network.AWS.Lambda.TagResource
 import Network.AWS.Lambda.Types
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -21,7 +21,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 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.
 --
 --
--- For information about the push model, see <http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html AWS Lambda: How it Works> .
+-- For information about the push model, see <http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html Lambda Functions> .
 --
 -- 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> .
 --
@@ -37,6 +37,7 @@
     , apEventSourceToken
     , apSourceARN
     , apQualifier
+    , apRevisionId
     , apFunctionName
     , apStatementId
     , apAction
@@ -67,6 +68,7 @@
   , _apEventSourceToken :: !(Maybe Text)
   , _apSourceARN        :: !(Maybe Text)
   , _apQualifier        :: !(Maybe Text)
+  , _apRevisionId       :: !(Maybe Text)
   , _apFunctionName     :: !Text
   , _apStatementId      :: !Text
   , _apAction           :: !Text
@@ -86,6 +88,8 @@
 --
 -- * 'apQualifier' - 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 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@  If the qualifier is not specified, the permission is valid only when requests is made using unqualified function ARN. @arn:aws:lambda:aws-region:acct-id:function:function-name@
 --
+-- * 'apRevisionId' - An optional value you can use to ensure you are updating the latest update of the function version or alias. If the @RevisionID@ you pass doesn't match the latest @RevisionId@ of the function or alias, it will fail with an error message, advising you to retrieve the latest function version or alias @RevisionID@ using either or .
+--
 -- * 'apFunctionName' - Name of the Lambda function whose resource policy you are updating by adding a new permission. 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 characters in length.
 --
 -- * 'apStatementId' - A unique statement identifier.
@@ -101,48 +105,53 @@
     -> AddPermission
 addPermission pFunctionName_ pStatementId_ pAction_ pPrincipal_ =
   AddPermission'
-  { _apSourceAccount = Nothing
-  , _apEventSourceToken = Nothing
-  , _apSourceARN = Nothing
-  , _apQualifier = Nothing
-  , _apFunctionName = pFunctionName_
-  , _apStatementId = pStatementId_
-  , _apAction = pAction_
-  , _apPrincipal = pPrincipal_
-  }
+    { _apSourceAccount = Nothing
+    , _apEventSourceToken = Nothing
+    , _apSourceARN = Nothing
+    , _apQualifier = Nothing
+    , _apRevisionId = Nothing
+    , _apFunctionName = pFunctionName_
+    , _apStatementId = pStatementId_
+    , _apAction = pAction_
+    , _apPrincipal = pPrincipal_
+    }
 
 
 -- | This parameter is used for S3 and SES. The AWS account ID (without a hyphen) of the source owner. For example, if the @SourceArn@ identifies a bucket, then this is the bucket owner's account ID. You can use this additional condition to ensure the bucket you specify is owned by a specific account (it is possible the bucket owner deleted the bucket and some other AWS account created the bucket). You can also use this condition to specify all sources (that is, you don't specify the @SourceArn@ ) owned by a specific account.
 apSourceAccount :: Lens' AddPermission (Maybe Text)
-apSourceAccount = lens _apSourceAccount (\ s a -> s{_apSourceAccount = a});
+apSourceAccount = lens _apSourceAccount (\ s a -> s{_apSourceAccount = a})
 
 -- | A unique token that must be supplied by the principal invoking the function. This is currently only used for Alexa Smart Home functions.
 apEventSourceToken :: Lens' AddPermission (Maybe Text)
-apEventSourceToken = lens _apEventSourceToken (\ s a -> s{_apEventSourceToken = a});
+apEventSourceToken = lens _apEventSourceToken (\ s a -> s{_apEventSourceToken = a})
 
 -- | This is optional; however, when granting permission to invoke your function, you should specify this field with the Amazon Resource Name (ARN) as its value. This ensures that only events generated from the specified source can invoke the function. /Important:/ If you add a permission without providing the source ARN, any AWS account that creates a mapping to your function ARN can send events to invoke your Lambda function.
 apSourceARN :: Lens' AddPermission (Maybe Text)
-apSourceARN = lens _apSourceARN (\ s a -> s{_apSourceARN = a});
+apSourceARN = lens _apSourceARN (\ s a -> s{_apSourceARN = a})
 
 -- | 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 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@  If the qualifier is not specified, the permission is valid only when requests is made using unqualified function ARN. @arn:aws:lambda:aws-region:acct-id:function:function-name@
 apQualifier :: Lens' AddPermission (Maybe Text)
-apQualifier = lens _apQualifier (\ s a -> s{_apQualifier = a});
+apQualifier = lens _apQualifier (\ s a -> s{_apQualifier = a})
 
+-- | An optional value you can use to ensure you are updating the latest update of the function version or alias. If the @RevisionID@ you pass doesn't match the latest @RevisionId@ of the function or alias, it will fail with an error message, advising you to retrieve the latest function version or alias @RevisionID@ using either or .
+apRevisionId :: Lens' AddPermission (Maybe Text)
+apRevisionId = lens _apRevisionId (\ s a -> s{_apRevisionId = a})
+
 -- | Name of the Lambda function whose resource policy you are updating by adding a new permission. 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 characters in length.
 apFunctionName :: Lens' AddPermission Text
-apFunctionName = lens _apFunctionName (\ s a -> s{_apFunctionName = a});
+apFunctionName = lens _apFunctionName (\ s a -> s{_apFunctionName = a})
 
 -- | A unique statement identifier.
 apStatementId :: Lens' AddPermission Text
-apStatementId = lens _apStatementId (\ s a -> s{_apStatementId = a});
+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 . 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});
+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 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 application in another AWS account to push events to AWS Lambda by invoking your function.
 apPrincipal :: Lens' AddPermission Text
-apPrincipal = lens _apPrincipal (\ s a -> s{_apPrincipal = a});
+apPrincipal = lens _apPrincipal (\ s a -> s{_apPrincipal = a})
 
 instance AWSRequest AddPermission where
         type Rs AddPermission = AddPermissionResponse
@@ -167,6 +176,7 @@
                  [("SourceAccount" .=) <$> _apSourceAccount,
                   ("EventSourceToken" .=) <$> _apEventSourceToken,
                   ("SourceArn" .=) <$> _apSourceARN,
+                  ("RevisionId" .=) <$> _apRevisionId,
                   Just ("StatementId" .= _apStatementId),
                   Just ("Action" .= _apAction),
                   Just ("Principal" .= _apPrincipal)])
@@ -204,15 +214,15 @@
     -> AddPermissionResponse
 addPermissionResponse pResponseStatus_ =
   AddPermissionResponse'
-  {_aprsStatement = Nothing, _aprsResponseStatus = pResponseStatus_}
+    {_aprsStatement = Nothing, _aprsResponseStatus = pResponseStatus_}
 
 
 -- | The permission statement you specified in the request. The response 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});
+aprsStatement = lens _aprsStatement (\ s a -> s{_aprsStatement = a})
 
 -- | -- | The response status code.
 aprsResponseStatus :: Lens' AddPermissionResponse Int
-aprsResponseStatus = lens _aprsResponseStatus (\ s a -> s{_aprsResponseStatus = a});
+aprsResponseStatus = lens _aprsResponseStatus (\ s a -> s{_aprsResponseStatus = a})
 
 instance NFData AddPermissionResponse where
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.CreateAlias
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -29,6 +29,7 @@
       createAlias
     , CreateAlias
     -- * Request Lenses
+    , caRoutingConfig
     , caDescription
     , caFunctionName
     , caName
@@ -38,10 +39,12 @@
     , aliasConfiguration
     , AliasConfiguration
     -- * Response Lenses
+    , acRoutingConfig
     , acName
     , acFunctionVersion
     , acAliasARN
     , acDescription
+    , acRevisionId
     ) where
 
 import Network.AWS.Lambda.Types
@@ -53,7 +56,8 @@
 
 -- | /See:/ 'createAlias' smart constructor.
 data CreateAlias = CreateAlias'
-  { _caDescription     :: !(Maybe Text)
+  { _caRoutingConfig   :: !(Maybe AliasRoutingConfiguration)
+  , _caDescription     :: !(Maybe Text)
   , _caFunctionName    :: !Text
   , _caName            :: !Text
   , _caFunctionVersion :: !Text
@@ -64,6 +68,8 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'caRoutingConfig' - Specifies an additional version your alias can point to, allowing you to dictate what percentage of traffic will invoke each version. For more information, see 'lambda-traffic-shifting-using-aliases' .
+--
 -- * 'caDescription' - Description of the alias.
 --
 -- * 'caFunctionName' - Name of the Lambda function for which you want to create an alias. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.
@@ -78,28 +84,33 @@
     -> CreateAlias
 createAlias pFunctionName_ pName_ pFunctionVersion_ =
   CreateAlias'
-  { _caDescription = Nothing
-  , _caFunctionName = pFunctionName_
-  , _caName = pName_
-  , _caFunctionVersion = pFunctionVersion_
-  }
+    { _caRoutingConfig = Nothing
+    , _caDescription = Nothing
+    , _caFunctionName = pFunctionName_
+    , _caName = pName_
+    , _caFunctionVersion = pFunctionVersion_
+    }
 
 
+-- | Specifies an additional version your alias can point to, allowing you to dictate what percentage of traffic will invoke each version. For more information, see 'lambda-traffic-shifting-using-aliases' .
+caRoutingConfig :: Lens' CreateAlias (Maybe AliasRoutingConfiguration)
+caRoutingConfig = lens _caRoutingConfig (\ s a -> s{_caRoutingConfig = a})
+
 -- | Description of the alias.
 caDescription :: Lens' CreateAlias (Maybe Text)
-caDescription = lens _caDescription (\ s a -> s{_caDescription = a});
+caDescription = lens _caDescription (\ s a -> s{_caDescription = a})
 
 -- | Name of the Lambda function for which you want to create an alias. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.
 caFunctionName :: Lens' CreateAlias Text
-caFunctionName = lens _caFunctionName (\ s a -> s{_caFunctionName = a});
+caFunctionName = lens _caFunctionName (\ s a -> s{_caFunctionName = a})
 
 -- | Name for the alias you are creating.
 caName :: Lens' CreateAlias Text
-caName = lens _caName (\ s a -> s{_caName = a});
+caName = lens _caName (\ s a -> s{_caName = a})
 
 -- | Lambda function version for which you are creating the alias.
 caFunctionVersion :: Lens' CreateAlias Text
-caFunctionVersion = lens _caFunctionVersion (\ s a -> s{_caFunctionVersion = a});
+caFunctionVersion = lens _caFunctionVersion (\ s a -> s{_caFunctionVersion = a})
 
 instance AWSRequest CreateAlias where
         type Rs CreateAlias = AliasConfiguration
@@ -117,7 +128,8 @@
         toJSON CreateAlias'{..}
           = object
               (catMaybes
-                 [("Description" .=) <$> _caDescription,
+                 [("RoutingConfig" .=) <$> _caRoutingConfig,
+                  ("Description" .=) <$> _caDescription,
                   Just ("Name" .= _caName),
                   Just ("FunctionVersion" .= _caFunctionVersion)])
 
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -23,11 +23,9 @@
 --
 -- This association between a stream source and a Lambda function is called the event source mapping.
 --
--- /Important:/ This event source mapping is relevant only in the AWS Lambda pull model, where AWS Lambda invokes the function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html AWS Lambda: How it Works> in the /AWS Lambda Developer Guide/ .
---
 -- 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.
+-- Each event source, such as an Amazon Kinesis or a DynamoDB stream, can be associated with multiple AWS Lambda functions. 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> .
 --
@@ -86,7 +84,7 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cesmStartingPositionTimestamp' - The timestamp of the data record from which to start reading. Used with <http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#Kinesis-GetShardIterator-request-ShardIteratorType shard iterator type> AT_TIMESTAMP. If a record with this exact timestamp does not exist, the iterator returned is for the next (later) record. If the timestamp is older than the current trim horizon, the iterator returned is for the oldest untrimmed data record (TRIM_HORIZON). Valid only for Kinesis streams.
+-- * 'cesmStartingPositionTimestamp' - The timestamp of the data record from which to start reading. Used with <http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#Kinesis-GetShardIterator-request-ShardIteratorType shard iterator type> AT_TIMESTAMP. If a record with this exact timestamp does not exist, the iterator returned is for the next (later) record. If the timestamp is older than the current trim horizon, the iterator returned is for the oldest untrimmed data record (TRIM_HORIZON). Valid only for <http://docs.aws.amazon.com/streams/latest/dev/amazon-kinesis-streams.html Kinesis streams> .
 --
 -- * 'cesmEnabled' - Indicates whether AWS Lambda should begin polling the event source. By default, @Enabled@ is true.
 --
@@ -96,7 +94,7 @@
 --
 -- * 'cesmFunctionName' - The Lambda function to invoke when AWS Lambda detects an event on the stream. 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 characters in length.
 --
--- * 'cesmStartingPosition' - The position in the stream where AWS Lambda should start reading. Valid only for Kinesis streams. For more information, see <http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#Kinesis-GetShardIterator-request-ShardIteratorType ShardIteratorType> in the /Amazon Kinesis API Reference/ .
+-- * 'cesmStartingPosition' - The position in the DynamoDB or Kinesis stream where AWS Lambda should start reading. For more information, see <http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#Kinesis-GetShardIterator-request-ShardIteratorType GetShardIterator> in the /Amazon Kinesis API Reference Guide/ or <http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html GetShardIterator> in the /Amazon DynamoDB API Reference Guide/ . The @AT_TIMESTAMP@ value is supported only for <http://docs.aws.amazon.com/streams/latest/dev/amazon-kinesis-streams.html Kinesis streams> .
 createEventSourceMapping
     :: Text -- ^ 'cesmEventSourceARN'
     -> Text -- ^ 'cesmFunctionName'
@@ -104,38 +102,38 @@
     -> CreateEventSourceMapping
 createEventSourceMapping pEventSourceARN_ pFunctionName_ pStartingPosition_ =
   CreateEventSourceMapping'
-  { _cesmStartingPositionTimestamp = Nothing
-  , _cesmEnabled = Nothing
-  , _cesmBatchSize = Nothing
-  , _cesmEventSourceARN = pEventSourceARN_
-  , _cesmFunctionName = pFunctionName_
-  , _cesmStartingPosition = pStartingPosition_
-  }
+    { _cesmStartingPositionTimestamp = Nothing
+    , _cesmEnabled = Nothing
+    , _cesmBatchSize = Nothing
+    , _cesmEventSourceARN = pEventSourceARN_
+    , _cesmFunctionName = pFunctionName_
+    , _cesmStartingPosition = pStartingPosition_
+    }
 
 
--- | The timestamp of the data record from which to start reading. Used with <http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#Kinesis-GetShardIterator-request-ShardIteratorType shard iterator type> AT_TIMESTAMP. If a record with this exact timestamp does not exist, the iterator returned is for the next (later) record. If the timestamp is older than the current trim horizon, the iterator returned is for the oldest untrimmed data record (TRIM_HORIZON). Valid only for Kinesis streams.
+-- | The timestamp of the data record from which to start reading. Used with <http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#Kinesis-GetShardIterator-request-ShardIteratorType shard iterator type> AT_TIMESTAMP. If a record with this exact timestamp does not exist, the iterator returned is for the next (later) record. If the timestamp is older than the current trim horizon, the iterator returned is for the oldest untrimmed data record (TRIM_HORIZON). Valid only for <http://docs.aws.amazon.com/streams/latest/dev/amazon-kinesis-streams.html Kinesis streams> .
 cesmStartingPositionTimestamp :: Lens' CreateEventSourceMapping (Maybe UTCTime)
-cesmStartingPositionTimestamp = lens _cesmStartingPositionTimestamp (\ s a -> s{_cesmStartingPositionTimestamp = a}) . mapping _Time;
+cesmStartingPositionTimestamp = lens _cesmStartingPositionTimestamp (\ s a -> s{_cesmStartingPositionTimestamp = a}) . mapping _Time
 
 -- | Indicates whether AWS Lambda should begin polling the event source. By default, @Enabled@ is true.
 cesmEnabled :: Lens' CreateEventSourceMapping (Maybe Bool)
-cesmEnabled = lens _cesmEnabled (\ s a -> s{_cesmEnabled = a});
+cesmEnabled = lens _cesmEnabled (\ s a -> s{_cesmEnabled = a})
 
 -- | The largest number of records that AWS Lambda will retrieve from your event source at the time of invoking your function. Your function receives an event with all the retrieved records. The default is 100 records.
 cesmBatchSize :: Lens' CreateEventSourceMapping (Maybe Natural)
-cesmBatchSize = lens _cesmBatchSize (\ s a -> s{_cesmBatchSize = a}) . mapping _Nat;
+cesmBatchSize = lens _cesmBatchSize (\ s a -> s{_cesmBatchSize = a}) . mapping _Nat
 
 -- | The Amazon Resource Name (ARN) of the Amazon Kinesis or the Amazon DynamoDB stream that is the event source. Any record added to this stream could cause AWS Lambda to invoke your Lambda function, it depends on the @BatchSize@ . AWS Lambda POSTs the Amazon Kinesis event, containing records, to your Lambda function as JSON.
 cesmEventSourceARN :: Lens' CreateEventSourceMapping Text
-cesmEventSourceARN = lens _cesmEventSourceARN (\ s a -> s{_cesmEventSourceARN = a});
+cesmEventSourceARN = lens _cesmEventSourceARN (\ s a -> s{_cesmEventSourceARN = a})
 
 -- | The Lambda function to invoke when AWS Lambda detects an event on the stream. 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 characters in length.
 cesmFunctionName :: Lens' CreateEventSourceMapping Text
-cesmFunctionName = lens _cesmFunctionName (\ s a -> s{_cesmFunctionName = a});
+cesmFunctionName = lens _cesmFunctionName (\ s a -> s{_cesmFunctionName = a})
 
--- | The position in the stream where AWS Lambda should start reading. Valid only for Kinesis streams. For more information, see <http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#Kinesis-GetShardIterator-request-ShardIteratorType ShardIteratorType> in the /Amazon Kinesis API Reference/ .
+-- | The position in the DynamoDB or Kinesis stream where AWS Lambda should start reading. For more information, see <http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html#Kinesis-GetShardIterator-request-ShardIteratorType GetShardIterator> in the /Amazon Kinesis API Reference Guide/ or <http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html GetShardIterator> in the /Amazon DynamoDB API Reference Guide/ . The @AT_TIMESTAMP@ value is supported only for <http://docs.aws.amazon.com/streams/latest/dev/amazon-kinesis-streams.html Kinesis streams> .
 cesmStartingPosition :: Lens' CreateEventSourceMapping EventSourcePosition
-cesmStartingPosition = lens _cesmStartingPosition (\ s a -> s{_cesmStartingPosition = a});
+cesmStartingPosition = lens _cesmStartingPosition (\ s a -> s{_cesmStartingPosition = a})
 
 instance AWSRequest CreateEventSourceMapping where
         type Rs CreateEventSourceMapping =
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -68,6 +68,7 @@
     , fcCodeSha256
     , fcTracingConfig
     , fcDescription
+    , fcRevisionId
     , fcMasterARN
     ) where
 
@@ -112,7 +113,7 @@
 --
 -- * 'cfEnvironment' - Undocumented member.
 --
--- * 'cfDeadLetterConfig' - The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic.
+-- * 'cfDeadLetterConfig' - The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic. For more information, see 'dlq' .
 --
 -- * 'cfVPCConfig' - 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.
 --
@@ -122,13 +123,13 @@
 --
 -- * 'cfDescription' - A short, user-defined function description. Lambda does not use this value. Assign a meaningful description as you see fit.
 --
--- * 'cfTags' - The list of tags (key-value pairs) assigned to the new function.
+-- * 'cfTags' - The list of tags (key-value pairs) assigned to the new function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 --
 -- * 'cfPublish' - This boolean parameter can be used to request AWS Lambda to create the Lambda function and publish a version as an atomic operation.
 --
 -- * 'cfFunctionName' - 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 API operations, such as 'Invoke' . Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.
 --
--- * 'cfRuntime' - The runtime environment for the Lambda function you are uploading. To use the Python runtime v3.6, set the value to "python3.6". To use the Python runtime v2.7, set the value to "python2.7". To use the Node.js runtime v6.10, set the value to "nodejs6.10". To use the Node.js runtime v4.3, set the value to "nodejs4.3".
+-- * 'cfRuntime' - The runtime environment for the Lambda function you are uploading. To use the Python runtime v3.6, set the value to "python3.6". To use the Python runtime v2.7, set the value to "python2.7". To use the Node.js runtime v6.10, set the value to "nodejs6.10". To use the Node.js runtime v4.3, set the value to "nodejs4.3". To use the .NET Core runtime v1.0, set the value to "dotnetcore1.0". To use the .NET Core runtime v2.0, set the value to "dotnetcore2.0".
 --
 -- * 'cfRole' - 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> .
 --
@@ -144,83 +145,83 @@
     -> CreateFunction
 createFunction pFunctionName_ pRuntime_ pRole_ pHandler_ pCode_ =
   CreateFunction'
-  { _cfMemorySize = Nothing
-  , _cfKMSKeyARN = Nothing
-  , _cfEnvironment = Nothing
-  , _cfDeadLetterConfig = Nothing
-  , _cfVPCConfig = Nothing
-  , _cfTimeout = Nothing
-  , _cfTracingConfig = Nothing
-  , _cfDescription = Nothing
-  , _cfTags = Nothing
-  , _cfPublish = Nothing
-  , _cfFunctionName = pFunctionName_
-  , _cfRuntime = pRuntime_
-  , _cfRole = pRole_
-  , _cfHandler = pHandler_
-  , _cfCode = pCode_
-  }
+    { _cfMemorySize = Nothing
+    , _cfKMSKeyARN = Nothing
+    , _cfEnvironment = Nothing
+    , _cfDeadLetterConfig = Nothing
+    , _cfVPCConfig = Nothing
+    , _cfTimeout = Nothing
+    , _cfTracingConfig = Nothing
+    , _cfDescription = Nothing
+    , _cfTags = Nothing
+    , _cfPublish = Nothing
+    , _cfFunctionName = pFunctionName_
+    , _cfRuntime = pRuntime_
+    , _cfRole = pRole_
+    , _cfHandler = pHandler_
+    , _cfCode = pCode_
+    }
 
 
 -- | The amount of memory, in MB, your Lambda function is given. Lambda uses this memory size to infer the amount of CPU and memory allocated to your function. Your function use-case determines your CPU and memory requirements. For example, a database operation might need less memory compared to an image processing function. The default value is 128 MB. The value must be a multiple of 64 MB.
 cfMemorySize :: Lens' CreateFunction (Maybe Natural)
-cfMemorySize = lens _cfMemorySize (\ s a -> s{_cfMemorySize = a}) . mapping _Nat;
+cfMemorySize = lens _cfMemorySize (\ s a -> s{_cfMemorySize = a}) . mapping _Nat
 
 -- | The Amazon Resource Name (ARN) of the KMS key used to encrypt your function's environment variables. If not provided, AWS Lambda will use a default service key.
 cfKMSKeyARN :: Lens' CreateFunction (Maybe Text)
-cfKMSKeyARN = lens _cfKMSKeyARN (\ s a -> s{_cfKMSKeyARN = a});
+cfKMSKeyARN = lens _cfKMSKeyARN (\ s a -> s{_cfKMSKeyARN = a})
 
 -- | Undocumented member.
 cfEnvironment :: Lens' CreateFunction (Maybe Environment)
-cfEnvironment = lens _cfEnvironment (\ s a -> s{_cfEnvironment = a});
+cfEnvironment = lens _cfEnvironment (\ s a -> s{_cfEnvironment = a})
 
--- | The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic.
+-- | The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic. For more information, see 'dlq' .
 cfDeadLetterConfig :: Lens' CreateFunction (Maybe DeadLetterConfig)
-cfDeadLetterConfig = lens _cfDeadLetterConfig (\ s a -> s{_cfDeadLetterConfig = a});
+cfDeadLetterConfig = lens _cfDeadLetterConfig (\ s a -> s{_cfDeadLetterConfig = a})
 
 -- | 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});
+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 3 seconds.
 cfTimeout :: Lens' CreateFunction (Maybe Natural)
-cfTimeout = lens _cfTimeout (\ s a -> s{_cfTimeout = a}) . mapping _Nat;
+cfTimeout = lens _cfTimeout (\ s a -> s{_cfTimeout = a}) . mapping _Nat
 
 -- | The parent object that contains your function's tracing settings.
 cfTracingConfig :: Lens' CreateFunction (Maybe TracingConfig)
-cfTracingConfig = lens _cfTracingConfig (\ s a -> s{_cfTracingConfig = a});
+cfTracingConfig = lens _cfTracingConfig (\ s a -> s{_cfTracingConfig = a})
 
 -- | A short, user-defined function description. Lambda does not use this value. Assign a meaningful description as you see fit.
 cfDescription :: Lens' CreateFunction (Maybe Text)
-cfDescription = lens _cfDescription (\ s a -> s{_cfDescription = a});
+cfDescription = lens _cfDescription (\ s a -> s{_cfDescription = a})
 
--- | The list of tags (key-value pairs) assigned to the new function.
+-- | The list of tags (key-value pairs) assigned to the new function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 cfTags :: Lens' CreateFunction (HashMap Text Text)
-cfTags = lens _cfTags (\ s a -> s{_cfTags = a}) . _Default . _Map;
+cfTags = lens _cfTags (\ s a -> s{_cfTags = a}) . _Default . _Map
 
 -- | This boolean parameter can be used to request AWS Lambda to create the Lambda function and publish a version as an atomic operation.
 cfPublish :: Lens' CreateFunction (Maybe Bool)
-cfPublish = lens _cfPublish (\ s a -> s{_cfPublish = a});
+cfPublish = lens _cfPublish (\ s a -> s{_cfPublish = a})
 
 -- | 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 API operations, such as 'Invoke' . Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.
 cfFunctionName :: Lens' CreateFunction Text
-cfFunctionName = lens _cfFunctionName (\ s a -> s{_cfFunctionName = a});
+cfFunctionName = lens _cfFunctionName (\ s a -> s{_cfFunctionName = a})
 
--- | The runtime environment for the Lambda function you are uploading. To use the Python runtime v3.6, set the value to "python3.6". To use the Python runtime v2.7, set the value to "python2.7". To use the Node.js runtime v6.10, set the value to "nodejs6.10". To use the Node.js runtime v4.3, set the value to "nodejs4.3".
+-- | The runtime environment for the Lambda function you are uploading. To use the Python runtime v3.6, set the value to "python3.6". To use the Python runtime v2.7, set the value to "python2.7". To use the Node.js runtime v6.10, set the value to "nodejs6.10". To use the Node.js runtime v4.3, set the value to "nodejs4.3". To use the .NET Core runtime v1.0, set the value to "dotnetcore1.0". To use the .NET Core runtime v2.0, set the value to "dotnetcore2.0".
 cfRuntime :: Lens' CreateFunction Runtime
-cfRuntime = lens _cfRuntime (\ s a -> s{_cfRuntime = a});
+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> .
 cfRole :: Lens' CreateFunction Text
-cfRole = lens _cfRole (\ s a -> s{_cfRole = a});
+cfRole = lens _cfRole (\ s a -> s{_cfRole = a})
 
 -- | The function within your code that Lambda calls to begin execution. For Node.js, it is the /module-name/ ./export/ value in your function. For Java, it can be @package.class-name::handler@ or @package.class-name@ . For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/java-programming-model-handler-types.html Lambda Function Handler (Java)> .
 cfHandler :: Lens' CreateFunction Text
-cfHandler = lens _cfHandler (\ s a -> s{_cfHandler = a});
+cfHandler = lens _cfHandler (\ s a -> s{_cfHandler = a})
 
 -- | The code for the Lambda function.
 cfCode :: Lens' CreateFunction FunctionCode
-cfCode = lens _cfCode (\ s a -> s{_cfCode = a});
+cfCode = lens _cfCode (\ s a -> s{_cfCode = a})
 
 instance AWSRequest CreateFunction where
         type Rs CreateFunction = FunctionConfiguration
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.DeleteAlias
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -68,11 +68,11 @@
 
 -- | The Lambda function name for which the alias is created. Deleting an alias does not delete the function version to which it is pointing. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.
 daFunctionName :: Lens' DeleteAlias Text
-daFunctionName = lens _daFunctionName (\ s a -> s{_daFunctionName = a});
+daFunctionName = lens _daFunctionName (\ s a -> s{_daFunctionName = a})
 
 -- | Name of the alias to delete.
 daName :: Lens' DeleteAlias Text
-daName = lens _daName (\ s a -> s{_daName = a});
+daName = lens _daName (\ s a -> s{_daName = a})
 
 instance AWSRequest DeleteAlias where
         type Rs DeleteAlias = DeleteAliasResponse
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -75,7 +75,7 @@
 
 -- | The event source mapping ID.
 desmUUId :: Lens' DeleteEventSourceMapping Text
-desmUUId = lens _desmUUId (\ s a -> s{_desmUUId = a});
+desmUUId = lens _desmUUId (\ s a -> s{_desmUUId = a})
 
 instance AWSRequest DeleteEventSourceMapping where
         type Rs DeleteEventSourceMapping =
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -71,11 +71,11 @@
 
 -- | Using this optional parameter you can specify a function version (but 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. 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 of its versions and aliases.
 dfQualifier :: Lens' DeleteFunction (Maybe Text)
-dfQualifier = lens _dfQualifier (\ s a -> s{_dfQualifier = a});
+dfQualifier = lens _dfQualifier (\ s a -> s{_dfQualifier = a})
 
 -- | The Lambda function to delete. 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 characters in length.
 dfFunctionName :: Lens' DeleteFunction Text
-dfFunctionName = lens _dfFunctionName (\ s a -> s{_dfFunctionName = a});
+dfFunctionName = lens _dfFunctionName (\ s a -> s{_dfFunctionName = a})
 
 instance AWSRequest DeleteFunction where
         type Rs DeleteFunction = DeleteFunctionResponse
diff --git a/gen/Network/AWS/Lambda/DeleteFunctionConcurrency.hs b/gen/Network/AWS/Lambda/DeleteFunctionConcurrency.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Lambda/DeleteFunctionConcurrency.hs
@@ -0,0 +1,103 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.Lambda.DeleteFunctionConcurrency
+-- Copyright   : (c) 2013-2018 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes concurrent execution limits from this function. For more information, see 'concurrent-executions' .
+--
+--
+module Network.AWS.Lambda.DeleteFunctionConcurrency
+    (
+    -- * Creating a Request
+      deleteFunctionConcurrency
+    , DeleteFunctionConcurrency
+    -- * Request Lenses
+    , dfcFunctionName
+
+    -- * Destructuring the Response
+    , deleteFunctionConcurrencyResponse
+    , DeleteFunctionConcurrencyResponse
+    ) where
+
+import Network.AWS.Lambda.Types
+import Network.AWS.Lambda.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'deleteFunctionConcurrency' smart constructor.
+newtype DeleteFunctionConcurrency = DeleteFunctionConcurrency'
+  { _dfcFunctionName :: Text
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteFunctionConcurrency' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dfcFunctionName' - The name of the function you are removing concurrent execution limits from. For more information, see 'concurrent-executions' .
+deleteFunctionConcurrency
+    :: Text -- ^ 'dfcFunctionName'
+    -> DeleteFunctionConcurrency
+deleteFunctionConcurrency pFunctionName_ =
+  DeleteFunctionConcurrency' {_dfcFunctionName = pFunctionName_}
+
+
+-- | The name of the function you are removing concurrent execution limits from. For more information, see 'concurrent-executions' .
+dfcFunctionName :: Lens' DeleteFunctionConcurrency Text
+dfcFunctionName = lens _dfcFunctionName (\ s a -> s{_dfcFunctionName = a})
+
+instance AWSRequest DeleteFunctionConcurrency where
+        type Rs DeleteFunctionConcurrency =
+             DeleteFunctionConcurrencyResponse
+        request = delete lambda
+        response
+          = receiveNull DeleteFunctionConcurrencyResponse'
+
+instance Hashable DeleteFunctionConcurrency where
+
+instance NFData DeleteFunctionConcurrency where
+
+instance ToHeaders DeleteFunctionConcurrency where
+        toHeaders = const mempty
+
+instance ToPath DeleteFunctionConcurrency where
+        toPath DeleteFunctionConcurrency'{..}
+          = mconcat
+              ["/2017-10-31/functions/", toBS _dfcFunctionName,
+               "/concurrency"]
+
+instance ToQuery DeleteFunctionConcurrency where
+        toQuery = const mempty
+
+-- | /See:/ 'deleteFunctionConcurrencyResponse' smart constructor.
+data DeleteFunctionConcurrencyResponse =
+  DeleteFunctionConcurrencyResponse'
+  deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'DeleteFunctionConcurrencyResponse' with the minimum fields required to make a request.
+--
+deleteFunctionConcurrencyResponse
+    :: DeleteFunctionConcurrencyResponse
+deleteFunctionConcurrencyResponse = DeleteFunctionConcurrencyResponse'
+
+
+instance NFData DeleteFunctionConcurrencyResponse
+         where
diff --git a/gen/Network/AWS/Lambda/GetAccountSettings.hs b/gen/Network/AWS/Lambda/GetAccountSettings.hs
--- a/gen/Network/AWS/Lambda/GetAccountSettings.hs
+++ b/gen/Network/AWS/Lambda/GetAccountSettings.hs
@@ -12,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.GetAccountSettings
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -104,22 +104,22 @@
     -> GetAccountSettingsResponse
 getAccountSettingsResponse pResponseStatus_ =
   GetAccountSettingsResponse'
-  { _gasrsAccountLimit = Nothing
-  , _gasrsAccountUsage = Nothing
-  , _gasrsResponseStatus = pResponseStatus_
-  }
+    { _gasrsAccountLimit = Nothing
+    , _gasrsAccountUsage = Nothing
+    , _gasrsResponseStatus = pResponseStatus_
+    }
 
 
 -- | Undocumented member.
 gasrsAccountLimit :: Lens' GetAccountSettingsResponse (Maybe AccountLimit)
-gasrsAccountLimit = lens _gasrsAccountLimit (\ s a -> s{_gasrsAccountLimit = a});
+gasrsAccountLimit = lens _gasrsAccountLimit (\ s a -> s{_gasrsAccountLimit = a})
 
 -- | Undocumented member.
 gasrsAccountUsage :: Lens' GetAccountSettingsResponse (Maybe AccountUsage)
-gasrsAccountUsage = lens _gasrsAccountUsage (\ s a -> s{_gasrsAccountUsage = a});
+gasrsAccountUsage = lens _gasrsAccountUsage (\ s a -> s{_gasrsAccountUsage = a})
 
 -- | -- | The response status code.
 gasrsResponseStatus :: Lens' GetAccountSettingsResponse Int
-gasrsResponseStatus = lens _gasrsResponseStatus (\ s a -> s{_gasrsResponseStatus = a});
+gasrsResponseStatus = lens _gasrsResponseStatus (\ s a -> s{_gasrsResponseStatus = a})
 
 instance NFData GetAccountSettingsResponse where
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -36,10 +36,12 @@
     , aliasConfiguration
     , AliasConfiguration
     -- * Response Lenses
+    , acRoutingConfig
     , acName
     , acFunctionVersion
     , acAliasARN
     , acDescription
+    , acRevisionId
     ) where
 
 import Network.AWS.Lambda.Types
@@ -73,11 +75,11 @@
 
 -- | 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 must specify the function name. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.
 gaFunctionName :: Lens' GetAlias Text
-gaFunctionName = lens _gaFunctionName (\ s a -> s{_gaFunctionName = a});
+gaFunctionName = lens _gaFunctionName (\ s a -> s{_gaFunctionName = a})
 
 -- | Name of the alias for which you want to retrieve information.
 gaName :: Lens' GetAlias Text
-gaName = lens _gaName (\ s a -> s{_gaName = a});
+gaName = lens _gaName (\ s a -> s{_gaName = a})
 
 instance AWSRequest GetAlias where
         type Rs GetAlias = AliasConfiguration
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.GetEventSourceMapping
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -75,7 +75,7 @@
 
 -- | The AWS Lambda assigned ID of the event source mapping.
 gesmUUId :: Lens' GetEventSourceMapping Text
-gesmUUId = lens _gesmUUId (\ s a -> s{_gesmUUId = a});
+gesmUUId = lens _gesmUUId (\ s a -> s{_gesmUUId = a})
 
 instance AWSRequest GetEventSourceMapping where
         type Rs GetEventSourceMapping =
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.GetFunction
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -38,6 +38,7 @@
     , getFunctionResponse
     , GetFunctionResponse
     -- * Response Lenses
+    , gfrsConcurrency
     , gfrsCode
     , gfrsConfiguration
     , gfrsTags
@@ -66,7 +67,7 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'gfQualifier' - 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 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' - Use 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 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.
 --
 -- * 'gfFunctionName' - 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 characters in length.
 getFunction
@@ -76,13 +77,13 @@
   GetFunction' {_gfQualifier = Nothing, _gfFunctionName = pFunctionName_}
 
 
--- | 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 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.
+-- | Use 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 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});
+gfQualifier = lens _gfQualifier (\ s a -> s{_gfQualifier = a})
 
 -- | 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 characters in length.
 gfFunctionName :: Lens' GetFunction Text
-gfFunctionName = lens _gfFunctionName (\ s a -> s{_gfFunctionName = a});
+gfFunctionName = lens _gfFunctionName (\ s a -> s{_gfFunctionName = a})
 
 instance AWSRequest GetFunction where
         type Rs GetFunction = GetFunctionResponse
@@ -91,8 +92,9 @@
           = receiveJSON
               (\ s h x ->
                  GetFunctionResponse' <$>
-                   (x .?> "Code") <*> (x .?> "Configuration") <*>
-                     (x .?> "Tags" .!@ mempty)
+                   (x .?> "Concurrency") <*> (x .?> "Code") <*>
+                     (x .?> "Configuration")
+                     <*> (x .?> "Tags" .!@ mempty)
                      <*> (pure (fromEnum s)))
 
 instance Hashable GetFunction where
@@ -117,7 +119,8 @@
 --
 -- /See:/ 'getFunctionResponse' smart constructor.
 data GetFunctionResponse = GetFunctionResponse'
-  { _gfrsCode           :: !(Maybe FunctionCodeLocation)
+  { _gfrsConcurrency    :: !(Maybe Concurrency)
+  , _gfrsCode           :: !(Maybe FunctionCodeLocation)
   , _gfrsConfiguration  :: !(Maybe FunctionConfiguration)
   , _gfrsTags           :: !(Maybe (Map Text Text))
   , _gfrsResponseStatus :: !Int
@@ -128,11 +131,13 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'gfrsConcurrency' - The concurrent execution limit set for this function. For more information, see 'concurrent-executions' .
+--
 -- * 'gfrsCode' - Undocumented member.
 --
 -- * 'gfrsConfiguration' - Undocumented member.
 --
--- * 'gfrsTags' - Returns the list of tags associated with the function.
+-- * 'gfrsTags' - Returns the list of tags associated with the function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 --
 -- * 'gfrsResponseStatus' - -- | The response status code.
 getFunctionResponse
@@ -140,27 +145,32 @@
     -> GetFunctionResponse
 getFunctionResponse pResponseStatus_ =
   GetFunctionResponse'
-  { _gfrsCode = Nothing
-  , _gfrsConfiguration = Nothing
-  , _gfrsTags = Nothing
-  , _gfrsResponseStatus = pResponseStatus_
-  }
+    { _gfrsConcurrency = Nothing
+    , _gfrsCode = Nothing
+    , _gfrsConfiguration = Nothing
+    , _gfrsTags = Nothing
+    , _gfrsResponseStatus = pResponseStatus_
+    }
 
 
+-- | The concurrent execution limit set for this function. For more information, see 'concurrent-executions' .
+gfrsConcurrency :: Lens' GetFunctionResponse (Maybe Concurrency)
+gfrsConcurrency = lens _gfrsConcurrency (\ s a -> s{_gfrsConcurrency = a})
+
 -- | Undocumented member.
 gfrsCode :: Lens' GetFunctionResponse (Maybe FunctionCodeLocation)
-gfrsCode = lens _gfrsCode (\ s a -> s{_gfrsCode = a});
+gfrsCode = lens _gfrsCode (\ s a -> s{_gfrsCode = a})
 
 -- | Undocumented member.
 gfrsConfiguration :: Lens' GetFunctionResponse (Maybe FunctionConfiguration)
-gfrsConfiguration = lens _gfrsConfiguration (\ s a -> s{_gfrsConfiguration = a});
+gfrsConfiguration = lens _gfrsConfiguration (\ s a -> s{_gfrsConfiguration = a})
 
--- | Returns the list of tags associated with the function.
+-- | Returns the list of tags associated with the function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 gfrsTags :: Lens' GetFunctionResponse (HashMap Text Text)
-gfrsTags = lens _gfrsTags (\ s a -> s{_gfrsTags = a}) . _Default . _Map;
+gfrsTags = lens _gfrsTags (\ s a -> s{_gfrsTags = a}) . _Default . _Map
 
 -- | -- | The response status code.
 gfrsResponseStatus :: Lens' GetFunctionResponse Int
-gfrsResponseStatus = lens _gfrsResponseStatus (\ s a -> s{_gfrsResponseStatus = a});
+gfrsResponseStatus = lens _gfrsResponseStatus (\ s a -> s{_gfrsResponseStatus = a})
 
 instance NFData GetFunctionResponse where
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -55,6 +55,7 @@
     , fcCodeSha256
     , fcTracingConfig
     , fcDescription
+    , fcRevisionId
     , fcMasterARN
     ) where
 
@@ -88,16 +89,16 @@
     -> GetFunctionConfiguration
 getFunctionConfiguration pFunctionName_ =
   GetFunctionConfiguration'
-  {_gfcQualifier = Nothing, _gfcFunctionName = pFunctionName_}
+    {_gfcQualifier = Nothing, _gfcFunctionName = pFunctionName_}
 
 
 -- | 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.
 gfcQualifier :: Lens' GetFunctionConfiguration (Maybe Text)
-gfcQualifier = lens _gfcQualifier (\ s a -> s{_gfcQualifier = a});
+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 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 characters in length.
 gfcFunctionName :: Lens' GetFunctionConfiguration Text
-gfcFunctionName = lens _gfcFunctionName (\ s a -> s{_gfcFunctionName = a});
+gfcFunctionName = lens _gfcFunctionName (\ s a -> s{_gfcFunctionName = a})
 
 instance AWSRequest GetFunctionConfiguration where
         type Rs GetFunctionConfiguration =
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.GetPolicy
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -39,6 +39,7 @@
     , GetPolicyResponse
     -- * Response Lenses
     , gprsPolicy
+    , gprsRevisionId
     , gprsResponseStatus
     ) where
 
@@ -76,11 +77,11 @@
 
 -- | 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});
+gpQualifier = lens _gpQualifier (\ s a -> s{_gpQualifier = a})
 
 -- | Function name whose resource policy you want to retrieve. 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 characters in length.
 gpFunctionName :: Lens' GetPolicy Text
-gpFunctionName = lens _gpFunctionName (\ s a -> s{_gpFunctionName = a});
+gpFunctionName = lens _gpFunctionName (\ s a -> s{_gpFunctionName = a})
 
 instance AWSRequest GetPolicy where
         type Rs GetPolicy = GetPolicyResponse
@@ -89,7 +90,8 @@
           = receiveJSON
               (\ s h x ->
                  GetPolicyResponse' <$>
-                   (x .?> "Policy") <*> (pure (fromEnum s)))
+                   (x .?> "Policy") <*> (x .?> "RevisionId") <*>
+                     (pure (fromEnum s)))
 
 instance Hashable GetPolicy where
 
@@ -115,6 +117,7 @@
 -- /See:/ 'getPolicyResponse' smart constructor.
 data GetPolicyResponse = GetPolicyResponse'
   { _gprsPolicy         :: !(Maybe Text)
+  , _gprsRevisionId     :: !(Maybe Text)
   , _gprsResponseStatus :: !Int
   } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
@@ -125,21 +128,30 @@
 --
 -- * 'gprsPolicy' - The resource policy associated with the specified function. The response returns the same as a string using a backslash ("\") as an escape character in the JSON.
 --
+-- * 'gprsRevisionId' - Represents the latest updated revision of the function or alias.
+--
 -- * 'gprsResponseStatus' - -- | The response status code.
 getPolicyResponse
     :: Int -- ^ 'gprsResponseStatus'
     -> GetPolicyResponse
 getPolicyResponse pResponseStatus_ =
   GetPolicyResponse'
-  {_gprsPolicy = Nothing, _gprsResponseStatus = pResponseStatus_}
+    { _gprsPolicy = Nothing
+    , _gprsRevisionId = Nothing
+    , _gprsResponseStatus = pResponseStatus_
+    }
 
 
 -- | The resource policy associated with the specified function. The response 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});
+gprsPolicy = lens _gprsPolicy (\ s a -> s{_gprsPolicy = a})
 
+-- | Represents the latest updated revision of the function or alias.
+gprsRevisionId :: Lens' GetPolicyResponse (Maybe Text)
+gprsRevisionId = lens _gprsRevisionId (\ s a -> s{_gprsRevisionId = a})
+
 -- | -- | The response status code.
 gprsResponseStatus :: Lens' GetPolicyResponse Int
-gprsResponseStatus = lens _gprsResponseStatus (\ s a -> s{_gprsResponseStatus = a});
+gprsResponseStatus = lens _gprsResponseStatus (\ s a -> s{_gprsResponseStatus = a})
 
 instance NFData GetPolicyResponse where
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.Invoke
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -45,6 +45,7 @@
     , irsFunctionError
     , irsLogResult
     , irsPayload
+    , irsExecutedVersion
     , irsStatusCode
     ) where
 
@@ -66,7 +67,7 @@
   , _iQualifier      :: !(Maybe Text)
   , _iClientContext  :: !(Maybe Text)
   , _iFunctionName   :: !Text
-  , _iPayload        :: !(HashMap Text Value)
+  , _iPayload        :: !ByteString
   } deriving (Eq, Show, Data, Typeable, Generic)
 
 
@@ -80,60 +81,61 @@
 --
 -- * 'iQualifier' - 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.
 --
--- * 'iClientContext' - 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, see <http://docs.aws.amazon.com/mobileanalytics/latest/ug/PutEvents.html PutEvents> in the /Amazon Mobile Analytics API Reference and User Guide/ . The ClientContext JSON must be base64-encoded.
+-- * 'iClientContext' - 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, see <http://docs.aws.amazon.com/mobileanalytics/latest/ug/PutEvents.html PutEvents> in the /Amazon Mobile Analytics API Reference and User Guide/ . The ClientContext JSON must be base64-encoded and has a maximum size of 3583 bytes.
 --
 -- * 'iFunctionName' - 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 characters in length.
 --
 -- * 'iPayload' - JSON that you want to provide to your Lambda function as input.
 invoke
     :: Text -- ^ 'iFunctionName'
-    -> HashMap Text Value -- ^ 'iPayload'
+    -> ByteString -- ^ 'iPayload'
     -> Invoke
 invoke pFunctionName_ pPayload_ =
   Invoke'
-  { _iInvocationType = Nothing
-  , _iLogType = Nothing
-  , _iQualifier = Nothing
-  , _iClientContext = Nothing
-  , _iFunctionName = pFunctionName_
-  , _iPayload = pPayload_
-  }
+    { _iInvocationType = Nothing
+    , _iLogType = Nothing
+    , _iQualifier = Nothing
+    , _iClientContext = Nothing
+    , _iFunctionName = pFunctionName_
+    , _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.
 iInvocationType :: Lens' Invoke (Maybe InvocationType)
-iInvocationType = lens _iInvocationType (\ s a -> s{_iInvocationType = a});
+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-result@ header.
 iLogType :: Lens' Invoke (Maybe LogType)
-iLogType = lens _iLogType (\ s a -> s{_iLogType = a});
+iLogType = lens _iLogType (\ s a -> s{_iLogType = a})
 
 -- | 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.
 iQualifier :: Lens' Invoke (Maybe Text)
-iQualifier = lens _iQualifier (\ s a -> s{_iQualifier = a});
+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, see <http://docs.aws.amazon.com/mobileanalytics/latest/ug/PutEvents.html PutEvents> in the /Amazon Mobile Analytics API Reference and User Guide/ . The ClientContext JSON must be base64-encoded.
+-- | 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, see <http://docs.aws.amazon.com/mobileanalytics/latest/ug/PutEvents.html PutEvents> in the /Amazon Mobile Analytics API Reference and User Guide/ . The ClientContext JSON must be base64-encoded and has a maximum size of 3583 bytes.
 iClientContext :: Lens' Invoke (Maybe Text)
-iClientContext = lens _iClientContext (\ s a -> s{_iClientContext = a});
+iClientContext = lens _iClientContext (\ s a -> s{_iClientContext = a})
 
 -- | 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 characters in length.
 iFunctionName :: Lens' Invoke Text
-iFunctionName = lens _iFunctionName (\ s a -> s{_iFunctionName = a});
+iFunctionName = lens _iFunctionName (\ s a -> s{_iFunctionName = a})
 
 -- | JSON that you want to provide to your Lambda function as input.
-iPayload :: Lens' Invoke (HashMap Text Value)
-iPayload = lens _iPayload (\ s a -> s{_iPayload = a});
+iPayload :: Lens' Invoke ByteString
+iPayload = lens _iPayload (\ s a -> s{_iPayload = a})
 
 instance AWSRequest Invoke where
         type Rs Invoke = InvokeResponse
         request = postBody lambda
         response
-          = receiveJSON
+          = receiveBytes
               (\ s h x ->
                  InvokeResponse' <$>
                    (h .#? "X-Amz-Function-Error") <*>
                      (h .#? "X-Amz-Log-Result")
                      <*> (pure (Just x))
+                     <*> (h .#? "X-Amz-Executed-Version")
                      <*> (pure (fromEnum s)))
 
 instance Hashable Invoke where
@@ -166,10 +168,11 @@
 --
 -- /See:/ 'invokeResponse' smart constructor.
 data InvokeResponse = InvokeResponse'
-  { _irsFunctionError :: !(Maybe Text)
-  , _irsLogResult     :: !(Maybe Text)
-  , _irsPayload       :: !(Maybe (HashMap Text Value))
-  , _irsStatusCode    :: !Int
+  { _irsFunctionError   :: !(Maybe Text)
+  , _irsLogResult       :: !(Maybe Text)
+  , _irsPayload         :: !(Maybe ByteString)
+  , _irsExecutedVersion :: !(Maybe Text)
+  , _irsStatusCode      :: !Int
   } deriving (Eq, Show, Data, Typeable, Generic)
 
 
@@ -183,33 +186,40 @@
 --
 -- * 'irsPayload' - It is the JSON representation of the object returned by the Lambda function. This is present only if the invocation type is @RequestResponse@ .  In the event of a function error this field contains a message describing the error. For the @Handled@ errors the Lambda function will report this message. For @Unhandled@ errors AWS Lambda reports the message.
 --
+-- * 'irsExecutedVersion' - The function version that has been executed. This value is returned only if the invocation type is @RequestResponse@ . For more information, see 'lambda-traffic-shifting-using-aliases' .
+--
 -- * 'irsStatusCode' - The HTTP status code will be in the 200 range for successful request. For the @RequestResponse@ 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.
 invokeResponse
     :: Int -- ^ 'irsStatusCode'
     -> InvokeResponse
 invokeResponse pStatusCode_ =
   InvokeResponse'
-  { _irsFunctionError = Nothing
-  , _irsLogResult = Nothing
-  , _irsPayload = Nothing
-  , _irsStatusCode = pStatusCode_
-  }
+    { _irsFunctionError = Nothing
+    , _irsLogResult = Nothing
+    , _irsPayload = Nothing
+    , _irsExecutedVersion = Nothing
+    , _irsStatusCode = pStatusCode_
+    }
 
 
 -- | Indicates whether an error occurred while executing the Lambda function. If an error occurred this field will have one of two values; @Handled@ or @Unhandled@ . @Handled@ errors are errors that are reported by the function while the @Unhandled@ errors are those detected and reported by AWS Lambda. Unhandled errors include out of memory errors and function timeouts. For information about how to report an @Handled@ error, see <http://docs.aws.amazon.com/lambda/latest/dg/programming-model.html Programming Model> .
 irsFunctionError :: Lens' InvokeResponse (Maybe Text)
-irsFunctionError = lens _irsFunctionError (\ s a -> s{_irsFunctionError = a});
+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.
 irsLogResult :: Lens' InvokeResponse (Maybe Text)
-irsLogResult = lens _irsLogResult (\ s a -> s{_irsLogResult = a});
+irsLogResult = lens _irsLogResult (\ s a -> s{_irsLogResult = a})
 
 -- | It is the JSON representation of the object returned by the Lambda function. This is present only if the invocation type is @RequestResponse@ .  In the event of a function error this field contains a message describing the error. For the @Handled@ errors the Lambda function will report this message. For @Unhandled@ errors AWS Lambda reports the message.
-irsPayload :: Lens' InvokeResponse (Maybe (HashMap Text Value))
-irsPayload = lens _irsPayload (\ s a -> s{_irsPayload = a});
+irsPayload :: Lens' InvokeResponse (Maybe ByteString)
+irsPayload = lens _irsPayload (\ s a -> s{_irsPayload = a})
 
+-- | The function version that has been executed. This value is returned only if the invocation type is @RequestResponse@ . For more information, see 'lambda-traffic-shifting-using-aliases' .
+irsExecutedVersion :: Lens' InvokeResponse (Maybe Text)
+irsExecutedVersion = lens _irsExecutedVersion (\ s a -> s{_irsExecutedVersion = a})
+
 -- | The HTTP status code will be in the 200 range for successful request. For the @RequestResponse@ 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});
+irsStatusCode = lens _irsStatusCode (\ s a -> s{_irsStatusCode = a})
 
 instance NFData InvokeResponse where
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -23,6 +23,8 @@
 --
 -- This requires permission for the lambda:ListAliases action.
 --
+--
+-- This operation returns paginated results.
 module Network.AWS.Lambda.ListAliases
     (
     -- * Creating a Request
@@ -46,6 +48,7 @@
 import Network.AWS.Lambda.Types
 import Network.AWS.Lambda.Types.Product
 import Network.AWS.Lens
+import Network.AWS.Pager
 import Network.AWS.Prelude
 import Network.AWS.Request
 import Network.AWS.Response
@@ -75,29 +78,36 @@
     -> ListAliases
 listAliases pFunctionName_ =
   ListAliases'
-  { _laMarker = Nothing
-  , _laMaxItems = Nothing
-  , _laFunctionVersion = Nothing
-  , _laFunctionName = pFunctionName_
-  }
+    { _laMarker = Nothing
+    , _laMaxItems = Nothing
+    , _laFunctionVersion = Nothing
+    , _laFunctionName = pFunctionName_
+    }
 
 
 -- | Optional string. An opaque pagination token returned from a previous @ListAliases@ operation. If present, indicates where to continue the listing.
 laMarker :: Lens' ListAliases (Maybe Text)
-laMarker = lens _laMarker (\ s a -> s{_laMarker = a});
+laMarker = lens _laMarker (\ s a -> s{_laMarker = a})
 
 -- | Optional integer. Specifies the maximum number of aliases to return in response. This parameter value must be greater than 0.
 laMaxItems :: Lens' ListAliases (Maybe Natural)
-laMaxItems = lens _laMaxItems (\ s a -> s{_laMaxItems = a}) . mapping _Nat;
+laMaxItems = lens _laMaxItems (\ s a -> s{_laMaxItems = a}) . mapping _Nat
 
 -- | If you specify this optional parameter, the API returns only the aliases 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});
+laFunctionVersion = lens _laFunctionVersion (\ s a -> s{_laFunctionVersion = a})
 
 -- | Lambda function name for which the alias is created. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.
 laFunctionName :: Lens' ListAliases Text
-laFunctionName = lens _laFunctionName (\ s a -> s{_laFunctionName = a});
+laFunctionName = lens _laFunctionName (\ s a -> s{_laFunctionName = a})
 
+instance AWSPager ListAliases where
+        page rq rs
+          | stop (rs ^. larsNextMarker) = Nothing
+          | stop (rs ^. larsAliases) = Nothing
+          | otherwise =
+            Just $ rq & laMarker .~ rs ^. larsNextMarker
+
 instance AWSRequest ListAliases where
         type Rs ListAliases = ListAliasesResponse
         request = get lambda
@@ -149,22 +159,22 @@
     -> ListAliasesResponse
 listAliasesResponse pResponseStatus_ =
   ListAliasesResponse'
-  { _larsAliases = Nothing
-  , _larsNextMarker = Nothing
-  , _larsResponseStatus = pResponseStatus_
-  }
+    { _larsAliases = Nothing
+    , _larsNextMarker = Nothing
+    , _larsResponseStatus = pResponseStatus_
+    }
 
 
 -- | A list of aliases.
 larsAliases :: Lens' ListAliasesResponse [AliasConfiguration]
-larsAliases = lens _larsAliases (\ s a -> s{_larsAliases = a}) . _Default . _Coerce;
+larsAliases = lens _larsAliases (\ s a -> s{_larsAliases = a}) . _Default . _Coerce
 
 -- | A string, present if there are more aliases.
 larsNextMarker :: Lens' ListAliasesResponse (Maybe Text)
-larsNextMarker = lens _larsNextMarker (\ s a -> s{_larsNextMarker = a});
+larsNextMarker = lens _larsNextMarker (\ s a -> s{_larsNextMarker = a})
 
 -- | -- | The response status code.
 larsResponseStatus :: Lens' ListAliasesResponse Int
-larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a});
+larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a})
 
 instance NFData ListAliasesResponse where
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.ListEventSourceMappings
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -85,28 +85,28 @@
     :: ListEventSourceMappings
 listEventSourceMappings =
   ListEventSourceMappings'
-  { _lesmEventSourceARN = Nothing
-  , _lesmMarker = Nothing
-  , _lesmMaxItems = Nothing
-  , _lesmFunctionName = Nothing
-  }
+    { _lesmEventSourceARN = Nothing
+    , _lesmMarker = Nothing
+    , _lesmMaxItems = Nothing
+    , _lesmFunctionName = Nothing
+    }
 
 
 -- | The Amazon Resource Name (ARN) of the Amazon Kinesis stream. (This parameter is optional.)
 lesmEventSourceARN :: Lens' ListEventSourceMappings (Maybe Text)
-lesmEventSourceARN = lens _lesmEventSourceARN (\ s a -> s{_lesmEventSourceARN = a});
+lesmEventSourceARN = lens _lesmEventSourceARN (\ s a -> s{_lesmEventSourceARN = a})
 
 -- | Optional string. An opaque pagination token returned from a previous @ListEventSourceMappings@ operation. If present, specifies to continue the list from where the returning call left off.
 lesmMarker :: Lens' ListEventSourceMappings (Maybe Text)
-lesmMarker = lens _lesmMarker (\ s a -> s{_lesmMarker = a});
+lesmMarker = lens _lesmMarker (\ s a -> s{_lesmMarker = a})
 
 -- | Optional integer. Specifies the maximum number of event sources to return in response. This value must be greater than 0.
 lesmMaxItems :: Lens' ListEventSourceMappings (Maybe Natural)
-lesmMaxItems = lens _lesmMaxItems (\ s a -> s{_lesmMaxItems = a}) . mapping _Nat;
+lesmMaxItems = lens _lesmMaxItems (\ s a -> s{_lesmMaxItems = a}) . mapping _Nat
 
 -- | The name of the Lambda function. 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 characters in length.
 lesmFunctionName :: Lens' ListEventSourceMappings (Maybe Text)
-lesmFunctionName = lens _lesmFunctionName (\ s a -> s{_lesmFunctionName = a});
+lesmFunctionName = lens _lesmFunctionName (\ s a -> s{_lesmFunctionName = a})
 
 instance AWSPager ListEventSourceMappings where
         page rq rs
@@ -170,22 +170,22 @@
     -> ListEventSourceMappingsResponse
 listEventSourceMappingsResponse pResponseStatus_ =
   ListEventSourceMappingsResponse'
-  { _lesmrsEventSourceMappings = Nothing
-  , _lesmrsNextMarker = Nothing
-  , _lesmrsResponseStatus = pResponseStatus_
-  }
+    { _lesmrsEventSourceMappings = Nothing
+    , _lesmrsNextMarker = Nothing
+    , _lesmrsResponseStatus = pResponseStatus_
+    }
 
 
 -- | An array of @EventSourceMappingConfiguration@ objects.
 lesmrsEventSourceMappings :: Lens' ListEventSourceMappingsResponse [EventSourceMappingConfiguration]
-lesmrsEventSourceMappings = lens _lesmrsEventSourceMappings (\ s a -> s{_lesmrsEventSourceMappings = a}) . _Default . _Coerce;
+lesmrsEventSourceMappings = lens _lesmrsEventSourceMappings (\ s a -> s{_lesmrsEventSourceMappings = a}) . _Default . _Coerce
 
 -- | A string, present if there are more event source mappings.
 lesmrsNextMarker :: Lens' ListEventSourceMappingsResponse (Maybe Text)
-lesmrsNextMarker = lens _lesmrsNextMarker (\ s a -> s{_lesmrsNextMarker = a});
+lesmrsNextMarker = lens _lesmrsNextMarker (\ s a -> s{_lesmrsNextMarker = a})
 
 -- | -- | The response status code.
 lesmrsResponseStatus :: Lens' ListEventSourceMappingsResponse Int
-lesmrsResponseStatus = lens _lesmrsResponseStatus (\ s a -> s{_lesmrsResponseStatus = a});
+lesmrsResponseStatus = lens _lesmrsResponseStatus (\ s a -> s{_lesmrsResponseStatus = a})
 
 instance NFData ListEventSourceMappingsResponse where
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -72,39 +72,39 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'lfMasterRegion' - Optional string. If not specified, will return only regular function versions (i.e., non-replicated versions). Valid values are: The region from which the functions are replicated. For example, if you specify @us-east-1@ , only functions replicated from that region will be returned. @ALL@ _ Will return all functions from any region. If specified, you also must specify a valid FunctionVersion parameter.
+-- * 'lfMasterRegion' - Optional string. If not specified, will return only regular function versions (i.e., non-replicated versions). Valid values are: The region from which the functions are replicated. For example, if you specify @us-east-1@ , only functions replicated from that region will be returned. @ALL@ : Will return all functions from any region. If specified, you also must specify a valid FunctionVersion parameter.
 --
 -- * 'lfMarker' - Optional string. An opaque pagination token returned from a previous @ListFunctions@ operation. If present, indicates where to continue the listing.
 --
 -- * 'lfMaxItems' - Optional integer. Specifies the maximum number of AWS Lambda functions to return in response. This parameter value must be greater than 0.
 --
--- * 'lfFunctionVersion' - Optional string. If not specified, only the unqualified functions ARNs (Amazon Resource Names) will be returned. Valid value: @ALL@ _ Will return all versions, including @> LATEST@ which will have fully qualified ARNs (Amazon Resource Names).
+-- * 'lfFunctionVersion' - Optional string. If not specified, only the unqualified functions ARNs (Amazon Resource Names) will be returned. Valid value: @ALL@ : Will return all versions, including @> LATEST@ which will have fully qualified ARNs (Amazon Resource Names).
 listFunctions
     :: ListFunctions
 listFunctions =
   ListFunctions'
-  { _lfMasterRegion = Nothing
-  , _lfMarker = Nothing
-  , _lfMaxItems = Nothing
-  , _lfFunctionVersion = Nothing
-  }
+    { _lfMasterRegion = Nothing
+    , _lfMarker = Nothing
+    , _lfMaxItems = Nothing
+    , _lfFunctionVersion = Nothing
+    }
 
 
--- | Optional string. If not specified, will return only regular function versions (i.e., non-replicated versions). Valid values are: The region from which the functions are replicated. For example, if you specify @us-east-1@ , only functions replicated from that region will be returned. @ALL@ _ Will return all functions from any region. If specified, you also must specify a valid FunctionVersion parameter.
+-- | Optional string. If not specified, will return only regular function versions (i.e., non-replicated versions). Valid values are: The region from which the functions are replicated. For example, if you specify @us-east-1@ , only functions replicated from that region will be returned. @ALL@ : Will return all functions from any region. If specified, you also must specify a valid FunctionVersion parameter.
 lfMasterRegion :: Lens' ListFunctions (Maybe Text)
-lfMasterRegion = lens _lfMasterRegion (\ s a -> s{_lfMasterRegion = a});
+lfMasterRegion = lens _lfMasterRegion (\ s a -> s{_lfMasterRegion = a})
 
 -- | Optional string. An opaque pagination token returned from a previous @ListFunctions@ operation. If present, indicates where to continue the listing.
 lfMarker :: Lens' ListFunctions (Maybe Text)
-lfMarker = lens _lfMarker (\ s a -> s{_lfMarker = a});
+lfMarker = lens _lfMarker (\ s a -> s{_lfMarker = a})
 
 -- | Optional integer. Specifies the maximum number of AWS Lambda functions to return in response. This parameter value must be greater than 0.
 lfMaxItems :: Lens' ListFunctions (Maybe Natural)
-lfMaxItems = lens _lfMaxItems (\ s a -> s{_lfMaxItems = a}) . mapping _Nat;
+lfMaxItems = lens _lfMaxItems (\ s a -> s{_lfMaxItems = a}) . mapping _Nat
 
--- | Optional string. If not specified, only the unqualified functions ARNs (Amazon Resource Names) will be returned. Valid value: @ALL@ _ Will return all versions, including @> LATEST@ which will have fully qualified ARNs (Amazon Resource Names).
+-- | Optional string. If not specified, only the unqualified functions ARNs (Amazon Resource Names) will be returned. Valid value: @ALL@ : Will return all versions, including @> LATEST@ which will have fully qualified ARNs (Amazon Resource Names).
 lfFunctionVersion :: Lens' ListFunctions (Maybe FunctionVersion)
-lfFunctionVersion = lens _lfFunctionVersion (\ s a -> s{_lfFunctionVersion = a});
+lfFunctionVersion = lens _lfFunctionVersion (\ s a -> s{_lfFunctionVersion = a})
 
 instance AWSPager ListFunctions where
         page rq rs
@@ -167,22 +167,22 @@
     -> ListFunctionsResponse
 listFunctionsResponse pResponseStatus_ =
   ListFunctionsResponse'
-  { _lfrsNextMarker = Nothing
-  , _lfrsFunctions = Nothing
-  , _lfrsResponseStatus = pResponseStatus_
-  }
+    { _lfrsNextMarker = Nothing
+    , _lfrsFunctions = Nothing
+    , _lfrsResponseStatus = pResponseStatus_
+    }
 
 
 -- | A string, present if there are more functions.
 lfrsNextMarker :: Lens' ListFunctionsResponse (Maybe Text)
-lfrsNextMarker = lens _lfrsNextMarker (\ s a -> s{_lfrsNextMarker = a});
+lfrsNextMarker = lens _lfrsNextMarker (\ s a -> s{_lfrsNextMarker = a})
 
 -- | A list of Lambda functions.
 lfrsFunctions :: Lens' ListFunctionsResponse [FunctionConfiguration]
-lfrsFunctions = lens _lfrsFunctions (\ s a -> s{_lfrsFunctions = a}) . _Default . _Coerce;
+lfrsFunctions = lens _lfrsFunctions (\ s a -> s{_lfrsFunctions = a}) . _Default . _Coerce
 
 -- | -- | The response status code.
 lfrsResponseStatus :: Lens' ListFunctionsResponse Int
-lfrsResponseStatus = lens _lfrsResponseStatus (\ s a -> s{_lfrsResponseStatus = a});
+lfrsResponseStatus = lens _lfrsResponseStatus (\ s a -> s{_lfrsResponseStatus = a})
 
 instance NFData ListFunctionsResponse where
diff --git a/gen/Network/AWS/Lambda/ListTags.hs b/gen/Network/AWS/Lambda/ListTags.hs
--- a/gen/Network/AWS/Lambda/ListTags.hs
+++ b/gen/Network/AWS/Lambda/ListTags.hs
@@ -12,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.ListTags
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns a list of tags assigned to a function when supplied the function ARN (Amazon Resource Name).
+-- Returns a list of tags assigned to a function when supplied the function ARN (Amazon Resource Name). For more information on Tagging, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 --
 --
 module Network.AWS.Lambda.ListTags
@@ -54,16 +54,16 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ltResource' - The ARN (Amazon Resource Name) of the function.
+-- * 'ltResource' - The ARN (Amazon Resource Name) of the function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 listTags
     :: Text -- ^ 'ltResource'
     -> ListTags
 listTags pResource_ = ListTags' {_ltResource = pResource_}
 
 
--- | The ARN (Amazon Resource Name) of the function.
+-- | The ARN (Amazon Resource Name) of the function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 ltResource :: Lens' ListTags Text
-ltResource = lens _ltResource (\ s a -> s{_ltResource = a});
+ltResource = lens _ltResource (\ s a -> s{_ltResource = a})
 
 instance AWSRequest ListTags where
         type Rs ListTags = ListTagsResponse
@@ -99,7 +99,7 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ltrsTags' - The list of tags assigned to the function.
+-- * 'ltrsTags' - The list of tags assigned to the function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 --
 -- * 'ltrsResponseStatus' - -- | The response status code.
 listTagsResponse
@@ -107,15 +107,15 @@
     -> ListTagsResponse
 listTagsResponse pResponseStatus_ =
   ListTagsResponse'
-  {_ltrsTags = Nothing, _ltrsResponseStatus = pResponseStatus_}
+    {_ltrsTags = Nothing, _ltrsResponseStatus = pResponseStatus_}
 
 
--- | The list of tags assigned to the function.
+-- | The list of tags assigned to the function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 ltrsTags :: Lens' ListTagsResponse (HashMap Text Text)
-ltrsTags = lens _ltrsTags (\ s a -> s{_ltrsTags = a}) . _Default . _Map;
+ltrsTags = lens _ltrsTags (\ s a -> s{_ltrsTags = a}) . _Default . _Map
 
 -- | -- | The response status code.
 ltrsResponseStatus :: Lens' ListTagsResponse Int
-ltrsResponseStatus = lens _ltrsResponseStatus (\ s a -> s{_ltrsResponseStatus = a});
+ltrsResponseStatus = lens _ltrsResponseStatus (\ s a -> s{_ltrsResponseStatus = a})
 
 instance NFData ListTagsResponse where
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.ListVersionsByFunction
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -73,23 +73,23 @@
     -> ListVersionsByFunction
 listVersionsByFunction pFunctionName_ =
   ListVersionsByFunction'
-  { _lvbfMarker = Nothing
-  , _lvbfMaxItems = Nothing
-  , _lvbfFunctionName = pFunctionName_
-  }
+    { _lvbfMarker = Nothing
+    , _lvbfMaxItems = Nothing
+    , _lvbfFunctionName = pFunctionName_
+    }
 
 
 -- | Optional string. An opaque pagination token returned from a previous @ListVersionsByFunction@ operation. If present, indicates where to continue the listing.
 lvbfMarker :: Lens' ListVersionsByFunction (Maybe Text)
-lvbfMarker = lens _lvbfMarker (\ s a -> s{_lvbfMarker = a});
+lvbfMarker = lens _lvbfMarker (\ s a -> s{_lvbfMarker = a})
 
 -- | Optional integer. Specifies the maximum number of AWS Lambda function versions to return in response. This parameter value must be greater than 0.
 lvbfMaxItems :: Lens' ListVersionsByFunction (Maybe Natural)
-lvbfMaxItems = lens _lvbfMaxItems (\ s a -> s{_lvbfMaxItems = a}) . mapping _Nat;
+lvbfMaxItems = lens _lvbfMaxItems (\ s a -> s{_lvbfMaxItems = a}) . mapping _Nat
 
 -- | 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 characters in length.
 lvbfFunctionName :: Lens' ListVersionsByFunction Text
-lvbfFunctionName = lens _lvbfFunctionName (\ s a -> s{_lvbfFunctionName = a});
+lvbfFunctionName = lens _lvbfFunctionName (\ s a -> s{_lvbfFunctionName = a})
 
 instance AWSRequest ListVersionsByFunction where
         type Rs ListVersionsByFunction =
@@ -148,22 +148,22 @@
     -> ListVersionsByFunctionResponse
 listVersionsByFunctionResponse pResponseStatus_ =
   ListVersionsByFunctionResponse'
-  { _lvbfrsVersions = Nothing
-  , _lvbfrsNextMarker = Nothing
-  , _lvbfrsResponseStatus = pResponseStatus_
-  }
+    { _lvbfrsVersions = Nothing
+    , _lvbfrsNextMarker = Nothing
+    , _lvbfrsResponseStatus = pResponseStatus_
+    }
 
 
 -- | A list of Lambda function versions.
 lvbfrsVersions :: Lens' ListVersionsByFunctionResponse [FunctionConfiguration]
-lvbfrsVersions = lens _lvbfrsVersions (\ s a -> s{_lvbfrsVersions = a}) . _Default . _Coerce;
+lvbfrsVersions = lens _lvbfrsVersions (\ s a -> s{_lvbfrsVersions = a}) . _Default . _Coerce
 
 -- | A string, present if there are more function versions.
 lvbfrsNextMarker :: Lens' ListVersionsByFunctionResponse (Maybe Text)
-lvbfrsNextMarker = lens _lvbfrsNextMarker (\ s a -> s{_lvbfrsNextMarker = a});
+lvbfrsNextMarker = lens _lvbfrsNextMarker (\ s a -> s{_lvbfrsNextMarker = a})
 
 -- | -- | The response status code.
 lvbfrsResponseStatus :: Lens' ListVersionsByFunctionResponse Int
-lvbfrsResponseStatus = lens _lvbfrsResponseStatus (\ s a -> s{_lvbfrsResponseStatus = a});
+lvbfrsResponseStatus = lens _lvbfrsResponseStatus (\ s a -> s{_lvbfrsResponseStatus = a})
 
 instance NFData ListVersionsByFunctionResponse where
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.PublishVersion
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -29,6 +29,7 @@
     -- * Request Lenses
     , pvCodeSha256
     , pvDescription
+    , pvRevisionId
     , pvFunctionName
 
     -- * Destructuring the Response
@@ -52,6 +53,7 @@
     , fcCodeSha256
     , fcTracingConfig
     , fcDescription
+    , fcRevisionId
     , fcMasterARN
     ) where
 
@@ -70,6 +72,7 @@
 data PublishVersion = PublishVersion'
   { _pvCodeSha256   :: !(Maybe Text)
   , _pvDescription  :: !(Maybe Text)
+  , _pvRevisionId   :: !(Maybe Text)
   , _pvFunctionName :: !Text
   } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
@@ -78,33 +81,40 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'pvCodeSha256' - 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 $LATEST version for the publication to succeed.
+-- * 'pvCodeSha256' - 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, the value must match the SHA256 of the $LATEST version for the publication to succeed. You can use the __DryRun__ parameter of 'UpdateFunctionCode' to verify the hash value that will be returned before publishing your new version.
 --
 -- * 'pvDescription' - The description for the version you are publishing. If not provided, AWS Lambda copies the description from the $LATEST version.
 --
+-- * 'pvRevisionId' - An optional value you can use to ensure you are updating the latest update of the function version or alias. If the @RevisionID@ you pass doesn't match the latest @RevisionId@ of the function or alias, it will fail with an error message, advising you to retrieve the latest function version or alias @RevisionID@ using either or .
+--
 -- * 'pvFunctionName' - 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 characters in length.
 publishVersion
     :: Text -- ^ 'pvFunctionName'
     -> PublishVersion
 publishVersion pFunctionName_ =
   PublishVersion'
-  { _pvCodeSha256 = Nothing
-  , _pvDescription = Nothing
-  , _pvFunctionName = pFunctionName_
-  }
+    { _pvCodeSha256 = Nothing
+    , _pvDescription = Nothing
+    , _pvRevisionId = Nothing
+    , _pvFunctionName = pFunctionName_
+    }
 
 
--- | 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 $LATEST version for the publication to succeed.
+-- | 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, the value must match the SHA256 of the $LATEST version for the publication to succeed. You can use the __DryRun__ parameter of 'UpdateFunctionCode' to verify the hash value that will be returned before publishing your new version.
 pvCodeSha256 :: Lens' PublishVersion (Maybe Text)
-pvCodeSha256 = lens _pvCodeSha256 (\ s a -> s{_pvCodeSha256 = a});
+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 $LATEST version.
 pvDescription :: Lens' PublishVersion (Maybe Text)
-pvDescription = lens _pvDescription (\ s a -> s{_pvDescription = a});
+pvDescription = lens _pvDescription (\ s a -> s{_pvDescription = a})
 
+-- | An optional value you can use to ensure you are updating the latest update of the function version or alias. If the @RevisionID@ you pass doesn't match the latest @RevisionId@ of the function or alias, it will fail with an error message, advising you to retrieve the latest function version or alias @RevisionID@ using either or .
+pvRevisionId :: Lens' PublishVersion (Maybe Text)
+pvRevisionId = lens _pvRevisionId (\ s a -> s{_pvRevisionId = a})
+
 -- | 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 characters in length.
 pvFunctionName :: Lens' PublishVersion Text
-pvFunctionName = lens _pvFunctionName (\ s a -> s{_pvFunctionName = a});
+pvFunctionName = lens _pvFunctionName (\ s a -> s{_pvFunctionName = a})
 
 instance AWSRequest PublishVersion where
         type Rs PublishVersion = FunctionConfiguration
@@ -123,7 +133,8 @@
           = object
               (catMaybes
                  [("CodeSha256" .=) <$> _pvCodeSha256,
-                  ("Description" .=) <$> _pvDescription])
+                  ("Description" .=) <$> _pvDescription,
+                  ("RevisionId" .=) <$> _pvRevisionId])
 
 instance ToPath PublishVersion where
         toPath PublishVersion'{..}
diff --git a/gen/Network/AWS/Lambda/PutFunctionConcurrency.hs b/gen/Network/AWS/Lambda/PutFunctionConcurrency.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Lambda/PutFunctionConcurrency.hs
@@ -0,0 +1,107 @@
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.Lambda.PutFunctionConcurrency
+-- Copyright   : (c) 2013-2018 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets a limit on the number of concurrent executions available to this function. It is a subset of your account's total concurrent execution limit per region. Note that Lambda automatically reserves a buffer of 100 concurrent executions for functions without any reserved concurrency limit. This means if your account limit is 1000, you have a total of 900 available to allocate to individual functions. For more information, see 'concurrent-executions' .
+--
+--
+module Network.AWS.Lambda.PutFunctionConcurrency
+    (
+    -- * Creating a Request
+      putFunctionConcurrency
+    , PutFunctionConcurrency
+    -- * Request Lenses
+    , pfcFunctionName
+    , pfcReservedConcurrentExecutions
+
+    -- * Destructuring the Response
+    , concurrency
+    , Concurrency
+    -- * Response Lenses
+    , cReservedConcurrentExecutions
+    ) where
+
+import Network.AWS.Lambda.Types
+import Network.AWS.Lambda.Types.Product
+import Network.AWS.Lens
+import Network.AWS.Prelude
+import Network.AWS.Request
+import Network.AWS.Response
+
+-- | /See:/ 'putFunctionConcurrency' smart constructor.
+data PutFunctionConcurrency = PutFunctionConcurrency'
+  { _pfcFunctionName                 :: !Text
+  , _pfcReservedConcurrentExecutions :: !Nat
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'PutFunctionConcurrency' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pfcFunctionName' - The name of the function you are setting concurrent execution limits on. For more information, see 'concurrent-executions' .
+--
+-- * 'pfcReservedConcurrentExecutions' - The concurrent execution limit reserved for this function. For more information, see 'concurrent-executions' .
+putFunctionConcurrency
+    :: Text -- ^ 'pfcFunctionName'
+    -> Natural -- ^ 'pfcReservedConcurrentExecutions'
+    -> PutFunctionConcurrency
+putFunctionConcurrency pFunctionName_ pReservedConcurrentExecutions_ =
+  PutFunctionConcurrency'
+    { _pfcFunctionName = pFunctionName_
+    , _pfcReservedConcurrentExecutions = _Nat # pReservedConcurrentExecutions_
+    }
+
+
+-- | The name of the function you are setting concurrent execution limits on. For more information, see 'concurrent-executions' .
+pfcFunctionName :: Lens' PutFunctionConcurrency Text
+pfcFunctionName = lens _pfcFunctionName (\ s a -> s{_pfcFunctionName = a})
+
+-- | The concurrent execution limit reserved for this function. For more information, see 'concurrent-executions' .
+pfcReservedConcurrentExecutions :: Lens' PutFunctionConcurrency Natural
+pfcReservedConcurrentExecutions = lens _pfcReservedConcurrentExecutions (\ s a -> s{_pfcReservedConcurrentExecutions = a}) . _Nat
+
+instance AWSRequest PutFunctionConcurrency where
+        type Rs PutFunctionConcurrency = Concurrency
+        request = putJSON lambda
+        response = receiveJSON (\ s h x -> eitherParseJSON x)
+
+instance Hashable PutFunctionConcurrency where
+
+instance NFData PutFunctionConcurrency where
+
+instance ToHeaders PutFunctionConcurrency where
+        toHeaders = const mempty
+
+instance ToJSON PutFunctionConcurrency where
+        toJSON PutFunctionConcurrency'{..}
+          = object
+              (catMaybes
+                 [Just
+                    ("ReservedConcurrentExecutions" .=
+                       _pfcReservedConcurrentExecutions)])
+
+instance ToPath PutFunctionConcurrency where
+        toPath PutFunctionConcurrency'{..}
+          = mconcat
+              ["/2017-10-31/functions/", toBS _pfcFunctionName,
+               "/concurrency"]
+
+instance ToQuery PutFunctionConcurrency where
+        toQuery = 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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -34,6 +34,7 @@
     , RemovePermission
     -- * Request Lenses
     , rpQualifier
+    , rpRevisionId
     , rpFunctionName
     , rpStatementId
 
@@ -56,6 +57,7 @@
 -- /See:/ 'removePermission' smart constructor.
 data RemovePermission = RemovePermission'
   { _rpQualifier    :: !(Maybe Text)
+  , _rpRevisionId   :: !(Maybe Text)
   , _rpFunctionName :: !Text
   , _rpStatementId  :: !Text
   } deriving (Eq, Read, Show, Data, Typeable, Generic)
@@ -67,6 +69,8 @@
 --
 -- * 'rpQualifier' - You can specify this optional parameter to remove permission associated 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.
 --
+-- * 'rpRevisionId' - An optional value you can use to ensure you are updating the latest update of the function version or alias. If the @RevisionID@ you pass doesn't match the latest @RevisionId@ of the function or alias, it will fail with an error message, advising you to retrieve the latest function version or alias @RevisionID@ using either or .
+--
 -- * 'rpFunctionName' - Lambda function whose resource policy you want to remove a permission from. 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 characters in length.
 --
 -- * 'rpStatementId' - Statement ID of the permission to remove.
@@ -76,23 +80,28 @@
     -> RemovePermission
 removePermission pFunctionName_ pStatementId_ =
   RemovePermission'
-  { _rpQualifier = Nothing
-  , _rpFunctionName = pFunctionName_
-  , _rpStatementId = pStatementId_
-  }
+    { _rpQualifier = Nothing
+    , _rpRevisionId = Nothing
+    , _rpFunctionName = pFunctionName_
+    , _rpStatementId = pStatementId_
+    }
 
 
 -- | You can specify this optional parameter to remove permission associated 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});
+rpQualifier = lens _rpQualifier (\ s a -> s{_rpQualifier = a})
 
+-- | An optional value you can use to ensure you are updating the latest update of the function version or alias. If the @RevisionID@ you pass doesn't match the latest @RevisionId@ of the function or alias, it will fail with an error message, advising you to retrieve the latest function version or alias @RevisionID@ using either or .
+rpRevisionId :: Lens' RemovePermission (Maybe Text)
+rpRevisionId = lens _rpRevisionId (\ s a -> s{_rpRevisionId = a})
+
 -- | Lambda function whose resource policy you want to remove a permission from. 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 characters in length.
 rpFunctionName :: Lens' RemovePermission Text
-rpFunctionName = lens _rpFunctionName (\ s a -> s{_rpFunctionName = a});
+rpFunctionName = lens _rpFunctionName (\ s a -> s{_rpFunctionName = a})
 
 -- | Statement ID of the permission to remove.
 rpStatementId :: Lens' RemovePermission Text
-rpStatementId = lens _rpStatementId (\ s a -> s{_rpStatementId = a});
+rpStatementId = lens _rpStatementId (\ s a -> s{_rpStatementId = a})
 
 instance AWSRequest RemovePermission where
         type Rs RemovePermission = RemovePermissionResponse
@@ -114,7 +123,9 @@
 
 instance ToQuery RemovePermission where
         toQuery RemovePermission'{..}
-          = mconcat ["Qualifier" =: _rpQualifier]
+          = mconcat
+              ["Qualifier" =: _rpQualifier,
+               "RevisionId" =: _rpRevisionId]
 
 -- | /See:/ 'removePermissionResponse' smart constructor.
 data RemovePermissionResponse =
diff --git a/gen/Network/AWS/Lambda/TagResource.hs b/gen/Network/AWS/Lambda/TagResource.hs
--- a/gen/Network/AWS/Lambda/TagResource.hs
+++ b/gen/Network/AWS/Lambda/TagResource.hs
@@ -12,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.TagResource
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Creates a list of tags (key-value pairs) on the Lambda function. Requires the Lambda function ARN (Amazon Resource Name). If a key is specified without a value, Lambda creates a tag with the specified key and a value of null.
+-- Creates a list of tags (key-value pairs) on the Lambda function. Requires the Lambda function ARN (Amazon Resource Name). If a key is specified without a value, Lambda creates a tag with the specified key and a value of null. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 --
 --
 module Network.AWS.Lambda.TagResource
@@ -53,9 +53,9 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'trResource' - The ARN (Amazon Resource Name) of the Lambda function.
+-- * 'trResource' - The ARN (Amazon Resource Name) of the Lambda function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 --
--- * 'trTags' - The list of tags (key-value pairs) you are assigning to the Lambda function.
+-- * 'trTags' - The list of tags (key-value pairs) you are assigning to the Lambda function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 tagResource
     :: Text -- ^ 'trResource'
     -> TagResource
@@ -63,13 +63,13 @@
   TagResource' {_trResource = pResource_, _trTags = mempty}
 
 
--- | The ARN (Amazon Resource Name) of the Lambda function.
+-- | The ARN (Amazon Resource Name) of the Lambda function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 trResource :: Lens' TagResource Text
-trResource = lens _trResource (\ s a -> s{_trResource = a});
+trResource = lens _trResource (\ s a -> s{_trResource = a})
 
--- | The list of tags (key-value pairs) you are assigning to the Lambda function.
+-- | The list of tags (key-value pairs) you are assigning to the Lambda function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 trTags :: Lens' TagResource (HashMap Text Text)
-trTags = lens _trTags (\ s a -> s{_trTags = a}) . _Map;
+trTags = lens _trTags (\ s a -> s{_trTags = a}) . _Map
 
 instance AWSRequest TagResource where
         type Rs TagResource = TagResourceResponse
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -20,6 +20,7 @@
     , _EC2ThrottledException
     , _InvalidRuntimeException
     , _PolicyLengthExceededException
+    , _PreconditionFailedException
     , _EC2AccessDeniedException
     , _InvalidSubnetIdException
     , _UnsupportedMediaTypeException
@@ -63,6 +64,7 @@
     , accountLimit
     , alConcurrentExecutions
     , alTotalCodeSize
+    , alUnreservedConcurrentExecutions
     , alCodeSizeUnzipped
     , alCodeSizeZipped
 
@@ -75,11 +77,23 @@
     -- * AliasConfiguration
     , AliasConfiguration
     , aliasConfiguration
+    , acRoutingConfig
     , acName
     , acFunctionVersion
     , acAliasARN
     , acDescription
+    , acRevisionId
 
+    -- * AliasRoutingConfiguration
+    , AliasRoutingConfiguration
+    , aliasRoutingConfiguration
+    , arcAdditionalVersionWeights
+
+    -- * Concurrency
+    , Concurrency
+    , concurrency
+    , cReservedConcurrentExecutions
+
     -- * DeadLetterConfig
     , DeadLetterConfig
     , deadLetterConfig
@@ -148,6 +162,7 @@
     , fcCodeSha256
     , fcTracingConfig
     , fcDescription
+    , fcRevisionId
     , fcMasterARN
 
     -- * TracingConfig
@@ -184,24 +199,24 @@
 lambda :: Service
 lambda =
   Service
-  { _svcAbbrev = "Lambda"
-  , _svcSigner = v4
-  , _svcPrefix = "lambda"
-  , _svcVersion = "2015-03-31"
-  , _svcEndpoint = defaultEndpoint lambda
-  , _svcTimeout = Just 70
-  , _svcCheck = statusSuccess
-  , _svcError = parseJSONError "Lambda"
-  , _svcRetry = retry
-  }
+    { _svcAbbrev = "Lambda"
+    , _svcSigner = v4
+    , _svcPrefix = "lambda"
+    , _svcVersion = "2015-03-31"
+    , _svcEndpoint = defaultEndpoint lambda
+    , _svcTimeout = Just 70
+    , _svcCheck = statusSuccess
+    , _svcError = parseJSONError "Lambda"
+    , _svcRetry = retry
+    }
   where
     retry =
       Exponential
-      { _retryBase = 5.0e-2
-      , _retryGrowth = 2
-      , _retryAttempts = 5
-      , _retryCheck = check
-      }
+        { _retryBase = 5.0e-2
+        , _retryGrowth = 2
+        , _retryAttempts = 5
+        , _retryCheck = check
+        }
     check e
       | has (hasCode "ThrottledException" . hasStatus 400) e =
         Just "throttled_exception"
@@ -210,6 +225,8 @@
         Just "throttling_exception"
       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
       | has (hasStatus 504) e = Just "gateway_timeout"
+      | has (hasCode "RequestThrottledException" . hasStatus 400) e =
+        Just "request_throttled_exception"
       | has (hasStatus 502) e = Just "bad_gateway"
       | has (hasStatus 503) e = Just "service_unavailable"
       | has (hasStatus 500) e = Just "general_server_error"
@@ -249,6 +266,14 @@
   _MatchServiceError lambda "PolicyLengthExceededException" . hasStatus 400
 
 
+-- | The RevisionId provided does not match the latest RevisionId for the Lambda function or alias. Call the @GetFunction@ or the @GetAlias@ API to retrieve the latest RevisionId for your resource.
+--
+--
+_PreconditionFailedException :: AsError a => Getting (First ServiceError) a ServiceError
+_PreconditionFailedException =
+  _MatchServiceError lambda "PreconditionFailedException" . hasStatus 412
+
+
 -- |
 --
 --
@@ -297,7 +322,7 @@
   _MatchServiceError lambda "ENILimitReachedException" . hasStatus 502
 
 
--- | 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 assume you will get this exception. You will also get this exception if you have selected a deprecated runtime, such as Node v0.10.42.
+-- | 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 assume you will get this exception.
 --
 --
 _InvalidParameterValueException :: AsError a => Getting (First ServiceError) a ServiceError
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -27,10 +27,11 @@
 --
 -- /See:/ 'accountLimit' smart constructor.
 data AccountLimit = AccountLimit'
-  { _alConcurrentExecutions :: !(Maybe Int)
-  , _alTotalCodeSize        :: !(Maybe Integer)
-  , _alCodeSizeUnzipped     :: !(Maybe Integer)
-  , _alCodeSizeZipped       :: !(Maybe Integer)
+  { _alConcurrentExecutions           :: !(Maybe Int)
+  , _alTotalCodeSize                  :: !(Maybe Integer)
+  , _alUnreservedConcurrentExecutions :: !(Maybe Nat)
+  , _alCodeSizeUnzipped               :: !(Maybe Integer)
+  , _alCodeSizeZipped                 :: !(Maybe Integer)
   } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
 
@@ -38,10 +39,12 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'alConcurrentExecutions' - Number of simultaneous executions of your function per region. For more information or to request a limit increase for concurrent executions, see <http://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html Lambda Function Concurrent Executions> . The default limit is 100.
+-- * 'alConcurrentExecutions' - Number of simultaneous executions of your function per region. For more information or to request a limit increase for concurrent executions, see <http://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html Lambda Function Concurrent Executions> . The default limit is 1000.
 --
 -- * 'alTotalCodeSize' - Maximum size, in bytes, of a code package you can upload per region. The default size is 75 GB.
 --
+-- * 'alUnreservedConcurrentExecutions' - The number of concurrent executions available to functions that do not have concurrency limits set. For more information, see 'concurrent-executions' .
+--
 -- * 'alCodeSizeUnzipped' - Size, in bytes, of code/dependencies that you can zip into a deployment package (uncompressed zip/jar size) for uploading. The default limit is 250 MB.
 --
 -- * 'alCodeSizeZipped' - Size, in bytes, of a single zipped code/dependencies package you can upload for your Lambda function(.zip/.jar file). Try using Amazon S3 for uploading larger files. Default limit is 50 MB.
@@ -49,28 +52,33 @@
     :: AccountLimit
 accountLimit =
   AccountLimit'
-  { _alConcurrentExecutions = Nothing
-  , _alTotalCodeSize = Nothing
-  , _alCodeSizeUnzipped = Nothing
-  , _alCodeSizeZipped = Nothing
-  }
+    { _alConcurrentExecutions = Nothing
+    , _alTotalCodeSize = Nothing
+    , _alUnreservedConcurrentExecutions = Nothing
+    , _alCodeSizeUnzipped = Nothing
+    , _alCodeSizeZipped = Nothing
+    }
 
 
--- | Number of simultaneous executions of your function per region. For more information or to request a limit increase for concurrent executions, see <http://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html Lambda Function Concurrent Executions> . The default limit is 100.
+-- | Number of simultaneous executions of your function per region. For more information or to request a limit increase for concurrent executions, see <http://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html Lambda Function Concurrent Executions> . The default limit is 1000.
 alConcurrentExecutions :: Lens' AccountLimit (Maybe Int)
-alConcurrentExecutions = lens _alConcurrentExecutions (\ s a -> s{_alConcurrentExecutions = a});
+alConcurrentExecutions = lens _alConcurrentExecutions (\ s a -> s{_alConcurrentExecutions = a})
 
 -- | Maximum size, in bytes, of a code package you can upload per region. The default size is 75 GB.
 alTotalCodeSize :: Lens' AccountLimit (Maybe Integer)
-alTotalCodeSize = lens _alTotalCodeSize (\ s a -> s{_alTotalCodeSize = a});
+alTotalCodeSize = lens _alTotalCodeSize (\ s a -> s{_alTotalCodeSize = a})
 
+-- | The number of concurrent executions available to functions that do not have concurrency limits set. For more information, see 'concurrent-executions' .
+alUnreservedConcurrentExecutions :: Lens' AccountLimit (Maybe Natural)
+alUnreservedConcurrentExecutions = lens _alUnreservedConcurrentExecutions (\ s a -> s{_alUnreservedConcurrentExecutions = a}) . mapping _Nat
+
 -- | Size, in bytes, of code/dependencies that you can zip into a deployment package (uncompressed zip/jar size) for uploading. The default limit is 250 MB.
 alCodeSizeUnzipped :: Lens' AccountLimit (Maybe Integer)
-alCodeSizeUnzipped = lens _alCodeSizeUnzipped (\ s a -> s{_alCodeSizeUnzipped = a});
+alCodeSizeUnzipped = lens _alCodeSizeUnzipped (\ s a -> s{_alCodeSizeUnzipped = a})
 
 -- | Size, in bytes, of a single zipped code/dependencies package you can upload for your Lambda function(.zip/.jar file). Try using Amazon S3 for uploading larger files. Default limit is 50 MB.
 alCodeSizeZipped :: Lens' AccountLimit (Maybe Integer)
-alCodeSizeZipped = lens _alCodeSizeZipped (\ s a -> s{_alCodeSizeZipped = a});
+alCodeSizeZipped = lens _alCodeSizeZipped (\ s a -> s{_alCodeSizeZipped = a})
 
 instance FromJSON AccountLimit where
         parseJSON
@@ -79,6 +87,7 @@
                  AccountLimit' <$>
                    (x .:? "ConcurrentExecutions") <*>
                      (x .:? "TotalCodeSize")
+                     <*> (x .:? "UnreservedConcurrentExecutions")
                      <*> (x .:? "CodeSizeUnzipped")
                      <*> (x .:? "CodeSizeZipped"))
 
@@ -112,11 +121,11 @@
 
 -- | Total size, in bytes, of the account's deployment packages per region.
 auTotalCodeSize :: Lens' AccountUsage (Maybe Integer)
-auTotalCodeSize = lens _auTotalCodeSize (\ s a -> s{_auTotalCodeSize = a});
+auTotalCodeSize = lens _auTotalCodeSize (\ s a -> s{_auTotalCodeSize = a})
 
 -- | The number of your account's existing functions per region.
 auFunctionCount :: Lens' AccountUsage (Maybe Integer)
-auFunctionCount = lens _auFunctionCount (\ s a -> s{_auFunctionCount = a});
+auFunctionCount = lens _auFunctionCount (\ s a -> s{_auFunctionCount = a})
 
 instance FromJSON AccountUsage where
         parseJSON
@@ -135,10 +144,12 @@
 --
 -- /See:/ 'aliasConfiguration' smart constructor.
 data AliasConfiguration = AliasConfiguration'
-  { _acName            :: !(Maybe Text)
+  { _acRoutingConfig   :: !(Maybe AliasRoutingConfiguration)
+  , _acName            :: !(Maybe Text)
   , _acFunctionVersion :: !(Maybe Text)
   , _acAliasARN        :: !(Maybe Text)
   , _acDescription     :: !(Maybe Text)
+  , _acRevisionId      :: !(Maybe Text)
   } deriving (Eq, Read, Show, Data, Typeable, Generic)
 
 
@@ -146,6 +157,8 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'acRoutingConfig' - Specifies an additional function versions the alias points to, allowing you to dictate what percentage of traffic will invoke each version. For more information, see 'lambda-traffic-shifting-using-aliases' .
+--
 -- * 'acName' - Alias name.
 --
 -- * 'acFunctionVersion' - Function version to which the alias points.
@@ -153,50 +166,138 @@
 -- * 'acAliasARN' - 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@ .
 --
 -- * 'acDescription' - Alias description.
+--
+-- * 'acRevisionId' - Represents the latest updated revision of the function or alias.
 aliasConfiguration
     :: AliasConfiguration
 aliasConfiguration =
   AliasConfiguration'
-  { _acName = Nothing
-  , _acFunctionVersion = Nothing
-  , _acAliasARN = Nothing
-  , _acDescription = Nothing
-  }
+    { _acRoutingConfig = Nothing
+    , _acName = Nothing
+    , _acFunctionVersion = Nothing
+    , _acAliasARN = Nothing
+    , _acDescription = Nothing
+    , _acRevisionId = Nothing
+    }
 
 
+-- | Specifies an additional function versions the alias points to, allowing you to dictate what percentage of traffic will invoke each version. For more information, see 'lambda-traffic-shifting-using-aliases' .
+acRoutingConfig :: Lens' AliasConfiguration (Maybe AliasRoutingConfiguration)
+acRoutingConfig = lens _acRoutingConfig (\ s a -> s{_acRoutingConfig = a})
+
 -- | Alias name.
 acName :: Lens' AliasConfiguration (Maybe Text)
-acName = lens _acName (\ s a -> s{_acName = a});
+acName = lens _acName (\ s a -> s{_acName = a})
 
 -- | Function version to which the alias points.
 acFunctionVersion :: Lens' AliasConfiguration (Maybe Text)
-acFunctionVersion = lens _acFunctionVersion (\ s a -> s{_acFunctionVersion = a});
+acFunctionVersion = lens _acFunctionVersion (\ s a -> s{_acFunctionVersion = a})
 
 -- | 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});
+acAliasARN = lens _acAliasARN (\ s a -> s{_acAliasARN = a})
 
 -- | Alias description.
 acDescription :: Lens' AliasConfiguration (Maybe Text)
-acDescription = lens _acDescription (\ s a -> s{_acDescription = a});
+acDescription = lens _acDescription (\ s a -> s{_acDescription = a})
 
+-- | Represents the latest updated revision of the function or alias.
+acRevisionId :: Lens' AliasConfiguration (Maybe Text)
+acRevisionId = lens _acRevisionId (\ s a -> s{_acRevisionId = a})
+
 instance FromJSON AliasConfiguration where
         parseJSON
           = withObject "AliasConfiguration"
               (\ x ->
                  AliasConfiguration' <$>
-                   (x .:? "Name") <*> (x .:? "FunctionVersion") <*>
-                     (x .:? "AliasArn")
-                     <*> (x .:? "Description"))
+                   (x .:? "RoutingConfig") <*> (x .:? "Name") <*>
+                     (x .:? "FunctionVersion")
+                     <*> (x .:? "AliasArn")
+                     <*> (x .:? "Description")
+                     <*> (x .:? "RevisionId"))
 
 instance Hashable AliasConfiguration where
 
 instance NFData AliasConfiguration where
 
--- | The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic.
+-- | The parent object that implements what percentage of traffic will invoke each function version. For more information, see 'lambda-traffic-shifting-using-aliases' .
 --
 --
 --
+-- /See:/ 'aliasRoutingConfiguration' smart constructor.
+newtype AliasRoutingConfiguration = AliasRoutingConfiguration'
+  { _arcAdditionalVersionWeights :: Maybe (Map Text Double)
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'AliasRoutingConfiguration' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'arcAdditionalVersionWeights' - Set this value to dictate what percentage of traffic will invoke the updated function version. If set to an empty string, 100 percent of traffic will invoke @function-version@ . For more information, see 'lambda-traffic-shifting-using-aliases' .
+aliasRoutingConfiguration
+    :: AliasRoutingConfiguration
+aliasRoutingConfiguration =
+  AliasRoutingConfiguration' {_arcAdditionalVersionWeights = Nothing}
+
+
+-- | Set this value to dictate what percentage of traffic will invoke the updated function version. If set to an empty string, 100 percent of traffic will invoke @function-version@ . For more information, see 'lambda-traffic-shifting-using-aliases' .
+arcAdditionalVersionWeights :: Lens' AliasRoutingConfiguration (HashMap Text Double)
+arcAdditionalVersionWeights = lens _arcAdditionalVersionWeights (\ s a -> s{_arcAdditionalVersionWeights = a}) . _Default . _Map
+
+instance FromJSON AliasRoutingConfiguration where
+        parseJSON
+          = withObject "AliasRoutingConfiguration"
+              (\ x ->
+                 AliasRoutingConfiguration' <$>
+                   (x .:? "AdditionalVersionWeights" .!= mempty))
+
+instance Hashable AliasRoutingConfiguration where
+
+instance NFData AliasRoutingConfiguration where
+
+instance ToJSON AliasRoutingConfiguration where
+        toJSON AliasRoutingConfiguration'{..}
+          = object
+              (catMaybes
+                 [("AdditionalVersionWeights" .=) <$>
+                    _arcAdditionalVersionWeights])
+
+-- | /See:/ 'concurrency' smart constructor.
+newtype Concurrency = Concurrency'
+  { _cReservedConcurrentExecutions :: Maybe Nat
+  } deriving (Eq, Read, Show, Data, Typeable, Generic)
+
+
+-- | Creates a value of 'Concurrency' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cReservedConcurrentExecutions' - The number of concurrent executions reserved for this function. For more information, see 'concurrent-executions' .
+concurrency
+    :: Concurrency
+concurrency = Concurrency' {_cReservedConcurrentExecutions = Nothing}
+
+
+-- | The number of concurrent executions reserved for this function. For more information, see 'concurrent-executions' .
+cReservedConcurrentExecutions :: Lens' Concurrency (Maybe Natural)
+cReservedConcurrentExecutions = lens _cReservedConcurrentExecutions (\ s a -> s{_cReservedConcurrentExecutions = a}) . mapping _Nat
+
+instance FromJSON Concurrency where
+        parseJSON
+          = withObject "Concurrency"
+              (\ x ->
+                 Concurrency' <$>
+                   (x .:? "ReservedConcurrentExecutions"))
+
+instance Hashable Concurrency where
+
+instance NFData Concurrency where
+
+-- | The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic you specify as your Dead Letter Queue (DLQ). For more information, see 'dlq' .
+--
+--
+--
 -- /See:/ 'deadLetterConfig' smart constructor.
 newtype DeadLetterConfig = DeadLetterConfig'
   { _dlcTargetARN :: Maybe Text
@@ -207,15 +308,15 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'dlcTargetARN' - The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic you specify as your Dead Letter Queue (DLQ).
+-- * 'dlcTargetARN' - The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic you specify as your Dead Letter Queue (DLQ). 'dlq' . For more information, see 'dlq' .
 deadLetterConfig
     :: DeadLetterConfig
 deadLetterConfig = DeadLetterConfig' {_dlcTargetARN = Nothing}
 
 
--- | The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic you specify as your Dead Letter Queue (DLQ).
+-- | The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic you specify as your Dead Letter Queue (DLQ). 'dlq' . For more information, see 'dlq' .
 dlcTargetARN :: Lens' DeadLetterConfig (Maybe Text)
-dlcTargetARN = lens _dlcTargetARN (\ s a -> s{_dlcTargetARN = a});
+dlcTargetARN = lens _dlcTargetARN (\ s a -> s{_dlcTargetARN = a})
 
 instance FromJSON DeadLetterConfig where
         parseJSON
@@ -253,7 +354,7 @@
 
 -- | The key-value pairs that represent your environment's configuration settings.
 eVariables :: Lens' Environment (Maybe (HashMap Text Text))
-eVariables = lens _eVariables (\ s a -> s{_eVariables = a}) . mapping (_Sensitive . _Map);
+eVariables = lens _eVariables (\ s a -> s{_eVariables = a}) . mapping (_Sensitive . _Map)
 
 instance Hashable Environment where
 
@@ -290,11 +391,11 @@
 
 -- | The error code returned by the environment error object.
 eeErrorCode :: Lens' EnvironmentError (Maybe Text)
-eeErrorCode = lens _eeErrorCode (\ s a -> s{_eeErrorCode = a});
+eeErrorCode = lens _eeErrorCode (\ s a -> s{_eeErrorCode = a})
 
 -- | The message returned by the environment error object.
 eeMessage :: Lens' EnvironmentError (Maybe Text)
-eeMessage = lens _eeMessage (\ s a -> s{_eeMessage = a}) . mapping _Sensitive;
+eeMessage = lens _eeMessage (\ s a -> s{_eeMessage = a}) . mapping _Sensitive
 
 instance FromJSON EnvironmentError where
         parseJSON
@@ -333,11 +434,11 @@
 
 -- | The key-value pairs returned that represent your environment's configuration settings or error information.
 envVariables :: Lens' EnvironmentResponse (Maybe (HashMap Text Text))
-envVariables = lens _envVariables (\ s a -> s{_envVariables = a}) . mapping (_Sensitive . _Map);
+envVariables = lens _envVariables (\ s a -> s{_envVariables = a}) . mapping (_Sensitive . _Map)
 
 -- | Undocumented member.
 envError :: Lens' EnvironmentResponse (Maybe EnvironmentError)
-envError = lens _envError (\ s a -> s{_envError = a});
+envError = lens _envError (\ s a -> s{_envError = a})
 
 instance FromJSON EnvironmentResponse where
         parseJSON
@@ -390,48 +491,48 @@
     :: EventSourceMappingConfiguration
 eventSourceMappingConfiguration =
   EventSourceMappingConfiguration'
-  { _esmcEventSourceARN = Nothing
-  , _esmcState = Nothing
-  , _esmcFunctionARN = Nothing
-  , _esmcUUId = Nothing
-  , _esmcLastProcessingResult = Nothing
-  , _esmcBatchSize = Nothing
-  , _esmcStateTransitionReason = Nothing
-  , _esmcLastModified = Nothing
-  }
+    { _esmcEventSourceARN = Nothing
+    , _esmcState = Nothing
+    , _esmcFunctionARN = Nothing
+    , _esmcUUId = Nothing
+    , _esmcLastProcessingResult = Nothing
+    , _esmcBatchSize = Nothing
+    , _esmcStateTransitionReason = Nothing
+    , _esmcLastModified = Nothing
+    }
 
 
 -- | The Amazon Resource Name (ARN) of the Amazon Kinesis stream that is the source of events.
 esmcEventSourceARN :: Lens' EventSourceMappingConfiguration (Maybe Text)
-esmcEventSourceARN = lens _esmcEventSourceARN (\ s a -> s{_esmcEventSourceARN = a});
+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@ .
 esmcState :: Lens' EventSourceMappingConfiguration (Maybe Text)
-esmcState = lens _esmcState (\ s a -> s{_esmcState = a});
+esmcState = lens _esmcState (\ s a -> s{_esmcState = a})
 
 -- | The Lambda function to invoke when AWS Lambda detects an event on the stream.
 esmcFunctionARN :: Lens' EventSourceMappingConfiguration (Maybe Text)
-esmcFunctionARN = lens _esmcFunctionARN (\ s a -> s{_esmcFunctionARN = a});
+esmcFunctionARN = lens _esmcFunctionARN (\ s a -> s{_esmcFunctionARN = a})
 
 -- | The AWS Lambda assigned opaque identifier for the mapping.
 esmcUUId :: Lens' EventSourceMappingConfiguration (Maybe Text)
-esmcUUId = lens _esmcUUId (\ s a -> s{_esmcUUId = a});
+esmcUUId = lens _esmcUUId (\ s a -> s{_esmcUUId = a})
 
 -- | The result of the last AWS Lambda invocation of your Lambda function.
 esmcLastProcessingResult :: Lens' EventSourceMappingConfiguration (Maybe Text)
-esmcLastProcessingResult = lens _esmcLastProcessingResult (\ s a -> s{_esmcLastProcessingResult = a});
+esmcLastProcessingResult = lens _esmcLastProcessingResult (\ s a -> s{_esmcLastProcessingResult = a})
 
 -- | The largest number of records that AWS Lambda will retrieve from your event source at the time of invoking your function. Your function receives an event with all the retrieved records.
 esmcBatchSize :: Lens' EventSourceMappingConfiguration (Maybe Natural)
-esmcBatchSize = lens _esmcBatchSize (\ s a -> s{_esmcBatchSize = a}) . mapping _Nat;
+esmcBatchSize = lens _esmcBatchSize (\ s a -> s{_esmcBatchSize = a}) . mapping _Nat
 
 -- | The reason the event source mapping is in its current state. It is either user-requested or an AWS Lambda-initiated state transition.
 esmcStateTransitionReason :: Lens' EventSourceMappingConfiguration (Maybe Text)
-esmcStateTransitionReason = lens _esmcStateTransitionReason (\ s a -> s{_esmcStateTransitionReason = a});
+esmcStateTransitionReason = lens _esmcStateTransitionReason (\ s a -> s{_esmcStateTransitionReason = a})
 
 -- | The UTC time string indicating the last time the event mapping was updated.
 esmcLastModified :: Lens' EventSourceMappingConfiguration (Maybe UTCTime)
-esmcLastModified = lens _esmcLastModified (\ s a -> s{_esmcLastModified = a}) . mapping _Time;
+esmcLastModified = lens _esmcLastModified (\ s a -> s{_esmcLastModified = a}) . mapping _Time
 
 instance FromJSON EventSourceMappingConfiguration
          where
@@ -473,35 +574,35 @@
 --
 -- * 'fcS3Key' - The Amazon S3 object (the deployment package) key name you want to upload.
 --
--- * 'fcZipFile' - The contents of your zip file containing your deployment package. If you are using the web API directly, the contents of 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, see <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/ . -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
+-- * 'fcZipFile' - The contents of your zip file containing your deployment package. If you are using the web API directly, the contents of 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, see <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__ . -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
 --
 -- * 'fcS3Bucket' - Amazon S3 bucket name where the .zip file containing your deployment package is stored. This bucket must reside in the same AWS region where you are creating the Lambda function.
 functionCode
     :: FunctionCode
 functionCode =
   FunctionCode'
-  { _fcS3ObjectVersion = Nothing
-  , _fcS3Key = Nothing
-  , _fcZipFile = Nothing
-  , _fcS3Bucket = Nothing
-  }
+    { _fcS3ObjectVersion = Nothing
+    , _fcS3Key = Nothing
+    , _fcZipFile = Nothing
+    , _fcS3Bucket = Nothing
+    }
 
 
 -- | The Amazon S3 object (the deployment package) version you want to upload.
 fcS3ObjectVersion :: Lens' FunctionCode (Maybe Text)
-fcS3ObjectVersion = lens _fcS3ObjectVersion (\ s a -> s{_fcS3ObjectVersion = a});
+fcS3ObjectVersion = lens _fcS3ObjectVersion (\ s a -> s{_fcS3ObjectVersion = a})
 
 -- | The Amazon S3 object (the deployment package) key name you want to upload.
 fcS3Key :: Lens' FunctionCode (Maybe Text)
-fcS3Key = lens _fcS3Key (\ s a -> s{_fcS3Key = a});
+fcS3Key = lens _fcS3Key (\ s a -> s{_fcS3Key = a})
 
--- | The contents of your zip file containing your deployment package. If you are using the web API directly, the contents of 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, see <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/ . -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
+-- | The contents of your zip file containing your deployment package. If you are using the web API directly, the contents of 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, see <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__ . -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
 fcZipFile :: Lens' FunctionCode (Maybe ByteString)
-fcZipFile = lens _fcZipFile (\ s a -> s{_fcZipFile = a}) . mapping (_Sensitive . _Base64);
+fcZipFile = lens _fcZipFile (\ s a -> s{_fcZipFile = a}) . mapping (_Sensitive . _Base64)
 
 -- | Amazon S3 bucket name where the .zip file containing your deployment package is stored. This bucket must reside in the same AWS region where you are creating the Lambda function.
 fcS3Bucket :: Lens' FunctionCode (Maybe Text)
-fcS3Bucket = lens _fcS3Bucket (\ s a -> s{_fcS3Bucket = a});
+fcS3Bucket = lens _fcS3Bucket (\ s a -> s{_fcS3Bucket = a})
 
 instance Hashable FunctionCode where
 
@@ -542,11 +643,11 @@
 
 -- | The presigned URL you can use to download the function's .zip file that you previously uploaded. The URL is valid for up to 10 minutes.
 fclLocation :: Lens' FunctionCodeLocation (Maybe Text)
-fclLocation = lens _fclLocation (\ s a -> s{_fclLocation = a});
+fclLocation = lens _fclLocation (\ s a -> s{_fclLocation = a})
 
 -- | The repository from which you can download the function.
 fclRepositoryType :: Lens' FunctionCodeLocation (Maybe Text)
-fclRepositoryType = lens _fclRepositoryType (\ s a -> s{_fclRepositoryType = a});
+fclRepositoryType = lens _fclRepositoryType (\ s a -> s{_fclRepositoryType = a})
 
 instance FromJSON FunctionCodeLocation where
         parseJSON
@@ -582,6 +683,7 @@
   , _fcCodeSha256       :: !(Maybe Text)
   , _fcTracingConfig    :: !(Maybe TracingConfigResponse)
   , _fcDescription      :: !(Maybe Text)
+  , _fcRevisionId       :: !(Maybe Text)
   , _fcMasterARN        :: !(Maybe Text)
   } deriving (Eq, Show, Data, Typeable, Generic)
 
@@ -600,7 +702,7 @@
 --
 -- * 'fcEnvironment' - The parent object that contains your environment's configuration settings.
 --
--- * 'fcDeadLetterConfig' - The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic.
+-- * 'fcDeadLetterConfig' - The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic. For more information, see 'dlq' .
 --
 -- * 'fcRole' - 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.
 --
@@ -624,103 +726,110 @@
 --
 -- * 'fcDescription' - The user-provided description.
 --
+-- * 'fcRevisionId' - Represents the latest updated revision of the function or alias.
+--
 -- * 'fcMasterARN' - Returns the ARN (Amazon Resource Name) of the master function.
 functionConfiguration
     :: FunctionConfiguration
 functionConfiguration =
   FunctionConfiguration'
-  { _fcMemorySize = Nothing
-  , _fcRuntime = Nothing
-  , _fcFunctionARN = Nothing
-  , _fcKMSKeyARN = Nothing
-  , _fcEnvironment = Nothing
-  , _fcDeadLetterConfig = Nothing
-  , _fcRole = Nothing
-  , _fcVPCConfig = Nothing
-  , _fcVersion = Nothing
-  , _fcFunctionName = Nothing
-  , _fcCodeSize = Nothing
-  , _fcHandler = Nothing
-  , _fcTimeout = Nothing
-  , _fcLastModified = Nothing
-  , _fcCodeSha256 = Nothing
-  , _fcTracingConfig = Nothing
-  , _fcDescription = Nothing
-  , _fcMasterARN = Nothing
-  }
+    { _fcMemorySize = Nothing
+    , _fcRuntime = Nothing
+    , _fcFunctionARN = Nothing
+    , _fcKMSKeyARN = Nothing
+    , _fcEnvironment = Nothing
+    , _fcDeadLetterConfig = Nothing
+    , _fcRole = Nothing
+    , _fcVPCConfig = Nothing
+    , _fcVersion = Nothing
+    , _fcFunctionName = Nothing
+    , _fcCodeSize = Nothing
+    , _fcHandler = Nothing
+    , _fcTimeout = Nothing
+    , _fcLastModified = Nothing
+    , _fcCodeSha256 = Nothing
+    , _fcTracingConfig = Nothing
+    , _fcDescription = Nothing
+    , _fcRevisionId = Nothing
+    , _fcMasterARN = Nothing
+    }
 
 
 -- | The memory size, in MB, you configured for the function. Must be a multiple of 64 MB.
 fcMemorySize :: Lens' FunctionConfiguration (Maybe Natural)
-fcMemorySize = lens _fcMemorySize (\ s a -> s{_fcMemorySize = a}) . mapping _Nat;
+fcMemorySize = lens _fcMemorySize (\ s a -> s{_fcMemorySize = a}) . mapping _Nat
 
 -- | The runtime environment for the Lambda function.
 fcRuntime :: Lens' FunctionConfiguration (Maybe Runtime)
-fcRuntime = lens _fcRuntime (\ s a -> s{_fcRuntime = a});
+fcRuntime = lens _fcRuntime (\ s a -> s{_fcRuntime = a})
 
 -- | The Amazon Resource Name (ARN) assigned to the function.
 fcFunctionARN :: Lens' FunctionConfiguration (Maybe Text)
-fcFunctionARN = lens _fcFunctionARN (\ s a -> s{_fcFunctionARN = a});
+fcFunctionARN = lens _fcFunctionARN (\ s a -> s{_fcFunctionARN = a})
 
 -- | The Amazon Resource Name (ARN) of the KMS key used to encrypt your function's environment variables. If empty, it means you are using the AWS Lambda default service key.
 fcKMSKeyARN :: Lens' FunctionConfiguration (Maybe Text)
-fcKMSKeyARN = lens _fcKMSKeyARN (\ s a -> s{_fcKMSKeyARN = a});
+fcKMSKeyARN = lens _fcKMSKeyARN (\ s a -> s{_fcKMSKeyARN = a})
 
 -- | The parent object that contains your environment's configuration settings.
 fcEnvironment :: Lens' FunctionConfiguration (Maybe EnvironmentResponse)
-fcEnvironment = lens _fcEnvironment (\ s a -> s{_fcEnvironment = a});
+fcEnvironment = lens _fcEnvironment (\ s a -> s{_fcEnvironment = a})
 
--- | The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic.
+-- | The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic. For more information, see 'dlq' .
 fcDeadLetterConfig :: Lens' FunctionConfiguration (Maybe DeadLetterConfig)
-fcDeadLetterConfig = lens _fcDeadLetterConfig (\ s a -> s{_fcDeadLetterConfig = a});
+fcDeadLetterConfig = lens _fcDeadLetterConfig (\ s a -> s{_fcDeadLetterConfig = 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.
 fcRole :: Lens' FunctionConfiguration (Maybe Text)
-fcRole = lens _fcRole (\ s a -> s{_fcRole = a});
+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});
+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});
+fcVersion = lens _fcVersion (\ s a -> s{_fcVersion = a})
 
 -- | The name of the function. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.
 fcFunctionName :: Lens' FunctionConfiguration (Maybe Text)
-fcFunctionName = lens _fcFunctionName (\ s a -> s{_fcFunctionName = a});
+fcFunctionName = lens _fcFunctionName (\ s a -> s{_fcFunctionName = a})
 
 -- | The size, in bytes, of the function .zip file you uploaded.
 fcCodeSize :: Lens' FunctionConfiguration (Maybe Integer)
-fcCodeSize = lens _fcCodeSize (\ s a -> s{_fcCodeSize = a});
+fcCodeSize = lens _fcCodeSize (\ s a -> s{_fcCodeSize = a})
 
 -- | The function Lambda calls to begin executing your function.
 fcHandler :: Lens' FunctionConfiguration (Maybe Text)
-fcHandler = lens _fcHandler (\ s a -> s{_fcHandler = a});
+fcHandler = lens _fcHandler (\ s a -> s{_fcHandler = 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 3 seconds.
 fcTimeout :: Lens' FunctionConfiguration (Maybe Natural)
-fcTimeout = lens _fcTimeout (\ s a -> s{_fcTimeout = a}) . mapping _Nat;
+fcTimeout = lens _fcTimeout (\ s a -> s{_fcTimeout = a}) . mapping _Nat
 
 -- | The time stamp of the last time you updated the function. The time stamp is conveyed as a string complying with ISO-8601 in this way YYYY-MM-DDThh:mm:ssTZD (e.g., 1997-07-16T19:20:30+01:00). For more information, see <https://www.w3.org/TR/NOTE-datetime Date and Time Formats> .
 fcLastModified :: Lens' FunctionConfiguration (Maybe Text)
-fcLastModified = lens _fcLastModified (\ s a -> s{_fcLastModified = a});
+fcLastModified = lens _fcLastModified (\ s a -> s{_fcLastModified = a})
 
 -- | It is the SHA256 hash of your function deployment package.
 fcCodeSha256 :: Lens' FunctionConfiguration (Maybe Text)
-fcCodeSha256 = lens _fcCodeSha256 (\ s a -> s{_fcCodeSha256 = a});
+fcCodeSha256 = lens _fcCodeSha256 (\ s a -> s{_fcCodeSha256 = a})
 
 -- | The parent object that contains your function's tracing settings.
 fcTracingConfig :: Lens' FunctionConfiguration (Maybe TracingConfigResponse)
-fcTracingConfig = lens _fcTracingConfig (\ s a -> s{_fcTracingConfig = a});
+fcTracingConfig = lens _fcTracingConfig (\ s a -> s{_fcTracingConfig = a})
 
 -- | The user-provided description.
 fcDescription :: Lens' FunctionConfiguration (Maybe Text)
-fcDescription = lens _fcDescription (\ s a -> s{_fcDescription = a});
+fcDescription = lens _fcDescription (\ s a -> s{_fcDescription = a})
 
+-- | Represents the latest updated revision of the function or alias.
+fcRevisionId :: Lens' FunctionConfiguration (Maybe Text)
+fcRevisionId = lens _fcRevisionId (\ s a -> s{_fcRevisionId = a})
+
 -- | Returns the ARN (Amazon Resource Name) of the master function.
 fcMasterARN :: Lens' FunctionConfiguration (Maybe Text)
-fcMasterARN = lens _fcMasterARN (\ s a -> s{_fcMasterARN = a});
+fcMasterARN = lens _fcMasterARN (\ s a -> s{_fcMasterARN = a})
 
 instance FromJSON FunctionConfiguration where
         parseJSON
@@ -743,6 +852,7 @@
                      <*> (x .:? "CodeSha256")
                      <*> (x .:? "TracingConfig")
                      <*> (x .:? "Description")
+                     <*> (x .:? "RevisionId")
                      <*> (x .:? "MasterArn"))
 
 instance Hashable FunctionConfiguration where
@@ -771,7 +881,7 @@
 
 -- | Can be either PassThrough or Active. If PassThrough, Lambda will only trace the request from an upstream service if it contains a tracing header with "sampled=1". If Active, Lambda will respect any tracing header it receives from an upstream service. If no tracing header is received, Lambda will call X-Ray for a tracing decision.
 tMode :: Lens' TracingConfig (Maybe TracingMode)
-tMode = lens _tMode (\ s a -> s{_tMode = a});
+tMode = lens _tMode (\ s a -> s{_tMode = a})
 
 instance Hashable TracingConfig where
 
@@ -803,7 +913,7 @@
 
 -- | The tracing mode associated with your Lambda function.
 tcMode :: Lens' TracingConfigResponse (Maybe TracingMode)
-tcMode = lens _tcMode (\ s a -> s{_tcMode = a});
+tcMode = lens _tcMode (\ s a -> s{_tcMode = a})
 
 instance FromJSON TracingConfigResponse where
         parseJSON
@@ -840,11 +950,11 @@
 
 -- | 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;
+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;
+vpccSubnetIds = lens _vpccSubnetIds (\ s a -> s{_vpccSubnetIds = a}) . _Default . _Coerce
 
 instance Hashable VPCConfig where
 
@@ -882,20 +992,20 @@
     :: VPCConfigResponse
 vpcConfigResponse =
   VPCConfigResponse'
-  {_vcSecurityGroupIds = Nothing, _vcSubnetIds = Nothing, _vcVPCId = Nothing}
+    {_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;
+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;
+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});
+vcVPCId = lens _vcVPCId (\ s a -> s{_vcVPCId = a})
 
 instance FromJSON VPCConfigResponse where
         parseJSON
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -132,10 +132,13 @@
 
 data Runtime
   = DOTNETCORE1_0
+  | DOTNETCORE2_0
+  | GO1_x
   | JAVA8
   | NODEJS4_3
   | NODEJS4_3Edge
   | NODEJS6_10
+  | NODEJS8_10
   | Nodejs
   | PYTHON2_7
   | PYTHON3_6
@@ -145,23 +148,29 @@
 instance FromText Runtime where
     parser = takeLowerText >>= \case
         "dotnetcore1.0" -> pure DOTNETCORE1_0
+        "dotnetcore2.0" -> pure DOTNETCORE2_0
+        "go1.x" -> pure GO1_x
         "java8" -> pure JAVA8
         "nodejs4.3" -> pure NODEJS4_3
         "nodejs4.3-edge" -> pure NODEJS4_3Edge
         "nodejs6.10" -> pure NODEJS6_10
+        "nodejs8.10" -> pure NODEJS8_10
         "nodejs" -> pure Nodejs
         "python2.7" -> pure PYTHON2_7
         "python3.6" -> pure PYTHON3_6
         e -> fromTextError $ "Failure parsing Runtime from value: '" <> e
-           <> "'. Accepted values: dotnetcore1.0, java8, nodejs4.3, nodejs4.3-edge, nodejs6.10, nodejs, python2.7, python3.6"
+           <> "'. Accepted values: dotnetcore1.0, dotnetcore2.0, go1.x, java8, nodejs4.3, nodejs4.3-edge, nodejs6.10, nodejs8.10, nodejs, python2.7, python3.6"
 
 instance ToText Runtime where
     toText = \case
         DOTNETCORE1_0 -> "dotnetcore1.0"
+        DOTNETCORE2_0 -> "dotnetcore2.0"
+        GO1_x -> "go1.x"
         JAVA8 -> "java8"
         NODEJS4_3 -> "nodejs4.3"
         NODEJS4_3Edge -> "nodejs4.3-edge"
         NODEJS6_10 -> "nodejs6.10"
+        NODEJS8_10 -> "nodejs8.10"
         Nodejs -> "nodejs"
         PYTHON2_7 -> "python2.7"
         PYTHON3_6 -> "python3.6"
diff --git a/gen/Network/AWS/Lambda/UntagResource.hs b/gen/Network/AWS/Lambda/UntagResource.hs
--- a/gen/Network/AWS/Lambda/UntagResource.hs
+++ b/gen/Network/AWS/Lambda/UntagResource.hs
@@ -12,13 +12,13 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.UntagResource
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Removes tags from a Lambda function. Requires the function ARN (Amazon Resource Name).
+-- Removes tags from a Lambda function. Requires the function ARN (Amazon Resource Name). For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 --
 --
 module Network.AWS.Lambda.UntagResource
@@ -53,9 +53,9 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'urResource' - The ARN (Amazon Resource Name) of the function.
+-- * 'urResource' - The ARN (Amazon Resource Name) of the function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 --
--- * 'urTagKeys' - The list of tag keys to be deleted from the function.
+-- * 'urTagKeys' - The list of tag keys to be deleted from the function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 untagResource
     :: Text -- ^ 'urResource'
     -> UntagResource
@@ -63,13 +63,13 @@
   UntagResource' {_urResource = pResource_, _urTagKeys = mempty}
 
 
--- | The ARN (Amazon Resource Name) of the function.
+-- | The ARN (Amazon Resource Name) of the function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 urResource :: Lens' UntagResource Text
-urResource = lens _urResource (\ s a -> s{_urResource = a});
+urResource = lens _urResource (\ s a -> s{_urResource = a})
 
--- | The list of tag keys to be deleted from the function.
+-- | The list of tag keys to be deleted from the function. For more information, see <http://docs.aws.amazon.com/lambda/latest/dg/tagging.html Tagging Lambda Functions> in the __AWS Lambda Developer Guide__ .
 urTagKeys :: Lens' UntagResource [Text]
-urTagKeys = lens _urTagKeys (\ s a -> s{_urTagKeys = a}) . _Coerce;
+urTagKeys = lens _urTagKeys (\ s a -> s{_urTagKeys = a}) . _Coerce
 
 instance AWSRequest UntagResource where
         type Rs UntagResource = UntagResourceResponse
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,7 +12,7 @@
 
 -- |
 -- Module      : Network.AWS.Lambda.UpdateAlias
--- Copyright   : (c) 2013-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -29,8 +29,10 @@
       updateAlias
     , UpdateAlias
     -- * Request Lenses
+    , uaRoutingConfig
     , uaFunctionVersion
     , uaDescription
+    , uaRevisionId
     , uaFunctionName
     , uaName
 
@@ -38,10 +40,12 @@
     , aliasConfiguration
     , AliasConfiguration
     -- * Response Lenses
+    , acRoutingConfig
     , acName
     , acFunctionVersion
     , acAliasARN
     , acDescription
+    , acRevisionId
     ) where
 
 import Network.AWS.Lambda.Types
@@ -53,8 +57,10 @@
 
 -- | /See:/ 'updateAlias' smart constructor.
 data UpdateAlias = UpdateAlias'
-  { _uaFunctionVersion :: !(Maybe Text)
+  { _uaRoutingConfig   :: !(Maybe AliasRoutingConfiguration)
+  , _uaFunctionVersion :: !(Maybe Text)
   , _uaDescription     :: !(Maybe Text)
+  , _uaRevisionId      :: !(Maybe Text)
   , _uaFunctionName    :: !Text
   , _uaName            :: !Text
   } deriving (Eq, Read, Show, Data, Typeable, Generic)
@@ -64,10 +70,14 @@
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
+-- * 'uaRoutingConfig' - Specifies an additional version your alias can point to, allowing you to dictate what percentage of traffic will invoke each version. For more information, see 'lambda-traffic-shifting-using-aliases' .
+--
 -- * 'uaFunctionVersion' - Using this parameter you can change the Lambda function version to which the alias points.
 --
 -- * 'uaDescription' - You can change the description of the alias using this parameter.
 --
+-- * 'uaRevisionId' - An optional value you can use to ensure you are updating the latest update of the function version or alias. If the @RevisionID@ you pass doesn't match the latest @RevisionId@ of the function or alias, it will fail with an error message, advising you to retrieve the latest function version or alias @RevisionID@ using either or .
+--
 -- * 'uaFunctionName' - The function name for which the alias is created. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.
 --
 -- * 'uaName' - The alias name.
@@ -77,28 +87,38 @@
     -> UpdateAlias
 updateAlias pFunctionName_ pName_ =
   UpdateAlias'
-  { _uaFunctionVersion = Nothing
-  , _uaDescription = Nothing
-  , _uaFunctionName = pFunctionName_
-  , _uaName = pName_
-  }
+    { _uaRoutingConfig = Nothing
+    , _uaFunctionVersion = Nothing
+    , _uaDescription = Nothing
+    , _uaRevisionId = Nothing
+    , _uaFunctionName = pFunctionName_
+    , _uaName = pName_
+    }
 
 
+-- | Specifies an additional version your alias can point to, allowing you to dictate what percentage of traffic will invoke each version. For more information, see 'lambda-traffic-shifting-using-aliases' .
+uaRoutingConfig :: Lens' UpdateAlias (Maybe AliasRoutingConfiguration)
+uaRoutingConfig = lens _uaRoutingConfig (\ s a -> s{_uaRoutingConfig = a})
+
 -- | 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});
+uaFunctionVersion = lens _uaFunctionVersion (\ s a -> s{_uaFunctionVersion = a})
 
 -- | You can change the description of the alias using this parameter.
 uaDescription :: Lens' UpdateAlias (Maybe Text)
-uaDescription = lens _uaDescription (\ s a -> s{_uaDescription = a});
+uaDescription = lens _uaDescription (\ s a -> s{_uaDescription = a})
 
+-- | An optional value you can use to ensure you are updating the latest update of the function version or alias. If the @RevisionID@ you pass doesn't match the latest @RevisionId@ of the function or alias, it will fail with an error message, advising you to retrieve the latest function version or alias @RevisionID@ using either or .
+uaRevisionId :: Lens' UpdateAlias (Maybe Text)
+uaRevisionId = lens _uaRevisionId (\ s a -> s{_uaRevisionId = a})
+
 -- | The function name for which the alias is created. Note that the length constraint applies only to the ARN. If you specify only the function name, it is limited to 64 characters in length.
 uaFunctionName :: Lens' UpdateAlias Text
-uaFunctionName = lens _uaFunctionName (\ s a -> s{_uaFunctionName = a});
+uaFunctionName = lens _uaFunctionName (\ s a -> s{_uaFunctionName = a})
 
 -- | The alias name.
 uaName :: Lens' UpdateAlias Text
-uaName = lens _uaName (\ s a -> s{_uaName = a});
+uaName = lens _uaName (\ s a -> s{_uaName = a})
 
 instance AWSRequest UpdateAlias where
         type Rs UpdateAlias = AliasConfiguration
@@ -116,8 +136,10 @@
         toJSON UpdateAlias'{..}
           = object
               (catMaybes
-                 [("FunctionVersion" .=) <$> _uaFunctionVersion,
-                  ("Description" .=) <$> _uaDescription])
+                 [("RoutingConfig" .=) <$> _uaRoutingConfig,
+                  ("FunctionVersion" .=) <$> _uaFunctionVersion,
+                  ("Description" .=) <$> _uaDescription,
+                  ("RevisionId" .=) <$> _uaRevisionId])
 
 instance ToPath UpdateAlias where
         toPath UpdateAlias'{..}
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -88,28 +88,28 @@
     -> UpdateEventSourceMapping
 updateEventSourceMapping pUUId_ =
   UpdateEventSourceMapping'
-  { _uesmEnabled = Nothing
-  , _uesmBatchSize = Nothing
-  , _uesmFunctionName = Nothing
-  , _uesmUUId = pUUId_
-  }
+    { _uesmEnabled = Nothing
+    , _uesmBatchSize = Nothing
+    , _uesmFunctionName = Nothing
+    , _uesmUUId = pUUId_
+    }
 
 
 -- | Specifies whether AWS Lambda should actively poll the stream or not. If disabled, AWS Lambda will not poll the stream.
 uesmEnabled :: Lens' UpdateEventSourceMapping (Maybe Bool)
-uesmEnabled = lens _uesmEnabled (\ s a -> s{_uesmEnabled = a});
+uesmEnabled = lens _uesmEnabled (\ s a -> s{_uesmEnabled = a})
 
 -- | The maximum number of stream records that can be sent to your Lambda function for a single invocation.
 uesmBatchSize :: Lens' UpdateEventSourceMapping (Maybe Natural)
-uesmBatchSize = lens _uesmBatchSize (\ s a -> s{_uesmBatchSize = a}) . mapping _Nat;
+uesmBatchSize = lens _uesmBatchSize (\ s a -> s{_uesmBatchSize = a}) . mapping _Nat
 
 -- | The Lambda function to which you want the stream records sent. 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 characters in length.  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});
+uesmFunctionName = lens _uesmFunctionName (\ s a -> s{_uesmFunctionName = a})
 
 -- | The event source mapping identifier.
 uesmUUId :: Lens' UpdateEventSourceMapping Text
-uesmUUId = lens _uesmUUId (\ s a -> s{_uesmUUId = a});
+uesmUUId = lens _uesmUUId (\ s a -> s{_uesmUUId = a})
 
 instance AWSRequest UpdateEventSourceMapping where
         type Rs UpdateEventSourceMapping =
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -36,6 +36,7 @@
     , uZipFile
     , uS3Bucket
     , uDryRun
+    , uRevisionId
     , uPublish
     , uFunctionName
 
@@ -60,6 +61,7 @@
     , fcCodeSha256
     , fcTracingConfig
     , fcDescription
+    , fcRevisionId
     , fcMasterARN
     ) where
 
@@ -81,6 +83,7 @@
   , _uZipFile         :: !(Maybe (Sensitive Base64))
   , _uS3Bucket        :: !(Maybe Text)
   , _uDryRun          :: !(Maybe Bool)
+  , _uRevisionId      :: !(Maybe Text)
   , _uPublish         :: !(Maybe Bool)
   , _uFunctionName    :: !Text
   } deriving (Eq, Show, Data, Typeable, Generic)
@@ -94,12 +97,14 @@
 --
 -- * 'uS3Key' - The Amazon S3 object (the deployment package) key name you want to upload.
 --
--- * 'uZipFile' - The contents of your zip file containing your deployment package. If you are using the web API directly, the contents of 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, see <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/ . -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
+-- * 'uZipFile' - The contents of your zip file containing your deployment package. If you are using the web API directly, the contents of 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, see <http://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role.html Execution Permissions> . -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
 --
 -- * 'uS3Bucket' - Amazon S3 bucket name where the .zip file containing your deployment package is stored. This bucket must reside in the same AWS Region where you are creating the Lambda function.
 --
--- * 'uDryRun' - This boolean parameter can be used to test your request to AWS Lambda to update the Lambda function and publish a version as an atomic operation. It will do all necessary computation and validation of your code but will not upload it or a publish a version. Each time this operation is invoked, the @CodeSha256@ hash value the provided code will also be computed and returned in the response.
+-- * 'uDryRun' - This boolean parameter can be used to test your request to AWS Lambda to update the Lambda function and publish a version as an atomic operation. It will do all necessary computation and validation of your code but will not upload it or a publish a version. Each time this operation is invoked, the @CodeSha256@ hash value of the provided code will also be computed and returned in the response.
 --
+-- * 'uRevisionId' - An optional value you can use to ensure you are updating the latest update of the function version or alias. If the @RevisionID@ you pass doesn't match the latest @RevisionId@ of the function or alias, it will fail with an error message, advising you to retrieve the latest function version or alias @RevisionID@ using either or .
+--
 -- * 'uPublish' - This boolean parameter can be used to request AWS Lambda to update the Lambda function and publish a version as an atomic operation.
 --
 -- * 'uFunctionName' - The existing Lambda function name whose code you want to replace. 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 characters in length.
@@ -108,43 +113,48 @@
     -> UpdateFunctionCode
 updateFunctionCode pFunctionName_ =
   UpdateFunctionCode'
-  { _uS3ObjectVersion = Nothing
-  , _uS3Key = Nothing
-  , _uZipFile = Nothing
-  , _uS3Bucket = Nothing
-  , _uDryRun = Nothing
-  , _uPublish = Nothing
-  , _uFunctionName = pFunctionName_
-  }
+    { _uS3ObjectVersion = Nothing
+    , _uS3Key = Nothing
+    , _uZipFile = Nothing
+    , _uS3Bucket = Nothing
+    , _uDryRun = Nothing
+    , _uRevisionId = Nothing
+    , _uPublish = Nothing
+    , _uFunctionName = pFunctionName_
+    }
 
 
 -- | The Amazon S3 object (the deployment package) version you want to upload.
 uS3ObjectVersion :: Lens' UpdateFunctionCode (Maybe Text)
-uS3ObjectVersion = lens _uS3ObjectVersion (\ s a -> s{_uS3ObjectVersion = a});
+uS3ObjectVersion = lens _uS3ObjectVersion (\ s a -> s{_uS3ObjectVersion = a})
 
 -- | The Amazon S3 object (the deployment package) key name you want to upload.
 uS3Key :: Lens' UpdateFunctionCode (Maybe Text)
-uS3Key = lens _uS3Key (\ s a -> s{_uS3Key = a});
+uS3Key = lens _uS3Key (\ s a -> s{_uS3Key = a})
 
--- | The contents of your zip file containing your deployment package. If you are using the web API directly, the contents of 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, see <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/ . -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
+-- | The contents of your zip file containing your deployment package. If you are using the web API directly, the contents of 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, see <http://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role.html Execution Permissions> . -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data. The underlying isomorphism will encode to Base64 representation during serialisation, and decode from Base64 representation during deserialisation. This 'Lens' accepts and returns only raw unencoded data.
 uZipFile :: Lens' UpdateFunctionCode (Maybe ByteString)
-uZipFile = lens _uZipFile (\ s a -> s{_uZipFile = a}) . mapping (_Sensitive . _Base64);
+uZipFile = lens _uZipFile (\ s a -> s{_uZipFile = a}) . mapping (_Sensitive . _Base64)
 
 -- | Amazon S3 bucket name where the .zip file containing your deployment package is stored. This bucket must reside in the same AWS Region where you are creating the Lambda function.
 uS3Bucket :: Lens' UpdateFunctionCode (Maybe Text)
-uS3Bucket = lens _uS3Bucket (\ s a -> s{_uS3Bucket = a});
+uS3Bucket = lens _uS3Bucket (\ s a -> s{_uS3Bucket = a})
 
--- | This boolean parameter can be used to test your request to AWS Lambda to update the Lambda function and publish a version as an atomic operation. It will do all necessary computation and validation of your code but will not upload it or a publish a version. Each time this operation is invoked, the @CodeSha256@ hash value the provided code will also be computed and returned in the response.
+-- | This boolean parameter can be used to test your request to AWS Lambda to update the Lambda function and publish a version as an atomic operation. It will do all necessary computation and validation of your code but will not upload it or a publish a version. Each time this operation is invoked, the @CodeSha256@ hash value of the provided code will also be computed and returned in the response.
 uDryRun :: Lens' UpdateFunctionCode (Maybe Bool)
-uDryRun = lens _uDryRun (\ s a -> s{_uDryRun = a});
+uDryRun = lens _uDryRun (\ s a -> s{_uDryRun = a})
 
+-- | An optional value you can use to ensure you are updating the latest update of the function version or alias. If the @RevisionID@ you pass doesn't match the latest @RevisionId@ of the function or alias, it will fail with an error message, advising you to retrieve the latest function version or alias @RevisionID@ using either or .
+uRevisionId :: Lens' UpdateFunctionCode (Maybe Text)
+uRevisionId = lens _uRevisionId (\ s a -> s{_uRevisionId = a})
+
 -- | This boolean parameter can be used to request AWS Lambda to update the Lambda function and publish a version as an atomic operation.
 uPublish :: Lens' UpdateFunctionCode (Maybe Bool)
-uPublish = lens _uPublish (\ s a -> s{_uPublish = a});
+uPublish = lens _uPublish (\ s a -> s{_uPublish = a})
 
 -- | The existing Lambda function name whose code you want to replace. 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 characters in length.
 uFunctionName :: Lens' UpdateFunctionCode Text
-uFunctionName = lens _uFunctionName (\ s a -> s{_uFunctionName = a});
+uFunctionName = lens _uFunctionName (\ s a -> s{_uFunctionName = a})
 
 instance AWSRequest UpdateFunctionCode where
         type Rs UpdateFunctionCode = FunctionConfiguration
@@ -167,6 +177,7 @@
                   ("ZipFile" .=) <$> _uZipFile,
                   ("S3Bucket" .=) <$> _uS3Bucket,
                   ("DryRun" .=) <$> _uDryRun,
+                  ("RevisionId" .=) <$> _uRevisionId,
                   ("Publish" .=) <$> _uPublish])
 
 instance ToPath UpdateFunctionCode where
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -42,6 +42,7 @@
     , ufcTimeout
     , ufcTracingConfig
     , ufcDescription
+    , ufcRevisionId
     , ufcFunctionName
 
     -- * Destructuring the Response
@@ -65,6 +66,7 @@
     , fcCodeSha256
     , fcTracingConfig
     , fcDescription
+    , fcRevisionId
     , fcMasterARN
     ) where
 
@@ -92,6 +94,7 @@
   , _ufcTimeout          :: !(Maybe Nat)
   , _ufcTracingConfig    :: !(Maybe TracingConfig)
   , _ufcDescription      :: !(Maybe Text)
+  , _ufcRevisionId       :: !(Maybe Text)
   , _ufcFunctionName     :: !Text
   } deriving (Eq, Show, Data, Typeable, Generic)
 
@@ -102,13 +105,13 @@
 --
 -- * 'ufcMemorySize' - The amount of memory, in MB, your Lambda function is given. AWS Lambda uses this memory size to infer the amount of CPU allocated to your function. Your function use-case determines your CPU and memory requirements. For example, a database operation might need less memory compared to an image processing function. The default value is 128 MB. The value must be a multiple of 64 MB.
 --
--- * 'ufcRuntime' - The runtime environment for the Lambda function. To use the Python runtime v3.6, set the value to "python3.6". To use the Python runtime v2.7, set the value to "python2.7". To use the Node.js runtime v6.10, set the value to "nodejs6.10". To use the Node.js runtime v4.3, set the value to "nodejs4.3". To use the Python runtime v3.6, set the value to "python3.6".
+-- * 'ufcRuntime' - The runtime environment for the Lambda function. To use the Python runtime v3.6, set the value to "python3.6". To use the Python runtime v2.7, set the value to "python2.7". To use the Node.js runtime v6.10, set the value to "nodejs6.10". To use the Node.js runtime v4.3, set the value to "nodejs4.3". To use the .NET Core runtime v1.0, set the value to "dotnetcore1.0". To use the .NET Core runtime v2.0, set the value to "dotnetcore2.0".
 --
 -- * 'ufcKMSKeyARN' - The Amazon Resource Name (ARN) of the KMS key used to encrypt your function's environment variables. If you elect to use the AWS Lambda default service key, pass in an empty string ("") for this parameter.
 --
 -- * 'ufcEnvironment' - The parent object that contains your environment's configuration settings.
 --
--- * 'ufcDeadLetterConfig' - The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic.
+-- * 'ufcDeadLetterConfig' - The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic. For more information, see 'dlq' .
 --
 -- * 'ufcRole' - The Amazon Resource Name (ARN) of the IAM role that Lambda will assume when it executes your function.
 --
@@ -122,74 +125,81 @@
 --
 -- * 'ufcDescription' - A short user-defined function description. AWS Lambda does not use this value. Assign a meaningful description as you see fit.
 --
+-- * 'ufcRevisionId' - An optional value you can use to ensure you are updating the latest update of the function version or alias. If the @RevisionID@ you pass doesn't match the latest @RevisionId@ of the function or alias, it will fail with an error message, advising you to retrieve the latest function version or alias @RevisionID@ using either or .
+--
 -- * 'ufcFunctionName' - The name of the Lambda function. 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.
 updateFunctionConfiguration
     :: Text -- ^ 'ufcFunctionName'
     -> UpdateFunctionConfiguration
 updateFunctionConfiguration pFunctionName_ =
   UpdateFunctionConfiguration'
-  { _ufcMemorySize = Nothing
-  , _ufcRuntime = Nothing
-  , _ufcKMSKeyARN = Nothing
-  , _ufcEnvironment = Nothing
-  , _ufcDeadLetterConfig = Nothing
-  , _ufcRole = Nothing
-  , _ufcVPCConfig = Nothing
-  , _ufcHandler = Nothing
-  , _ufcTimeout = Nothing
-  , _ufcTracingConfig = Nothing
-  , _ufcDescription = Nothing
-  , _ufcFunctionName = pFunctionName_
-  }
+    { _ufcMemorySize = Nothing
+    , _ufcRuntime = Nothing
+    , _ufcKMSKeyARN = Nothing
+    , _ufcEnvironment = Nothing
+    , _ufcDeadLetterConfig = Nothing
+    , _ufcRole = Nothing
+    , _ufcVPCConfig = Nothing
+    , _ufcHandler = Nothing
+    , _ufcTimeout = Nothing
+    , _ufcTracingConfig = Nothing
+    , _ufcDescription = Nothing
+    , _ufcRevisionId = Nothing
+    , _ufcFunctionName = pFunctionName_
+    }
 
 
 -- | The amount of memory, in MB, your Lambda function is given. AWS Lambda uses this memory size to infer the amount of CPU allocated to your function. Your function use-case determines your CPU and memory requirements. For example, a database operation might need less memory compared to an image processing function. The default value is 128 MB. The value must be a multiple of 64 MB.
 ufcMemorySize :: Lens' UpdateFunctionConfiguration (Maybe Natural)
-ufcMemorySize = lens _ufcMemorySize (\ s a -> s{_ufcMemorySize = a}) . mapping _Nat;
+ufcMemorySize = lens _ufcMemorySize (\ s a -> s{_ufcMemorySize = a}) . mapping _Nat
 
--- | The runtime environment for the Lambda function. To use the Python runtime v3.6, set the value to "python3.6". To use the Python runtime v2.7, set the value to "python2.7". To use the Node.js runtime v6.10, set the value to "nodejs6.10". To use the Node.js runtime v4.3, set the value to "nodejs4.3". To use the Python runtime v3.6, set the value to "python3.6".
+-- | The runtime environment for the Lambda function. To use the Python runtime v3.6, set the value to "python3.6". To use the Python runtime v2.7, set the value to "python2.7". To use the Node.js runtime v6.10, set the value to "nodejs6.10". To use the Node.js runtime v4.3, set the value to "nodejs4.3". To use the .NET Core runtime v1.0, set the value to "dotnetcore1.0". To use the .NET Core runtime v2.0, set the value to "dotnetcore2.0".
 ufcRuntime :: Lens' UpdateFunctionConfiguration (Maybe Runtime)
-ufcRuntime = lens _ufcRuntime (\ s a -> s{_ufcRuntime = a});
+ufcRuntime = lens _ufcRuntime (\ s a -> s{_ufcRuntime = a})
 
 -- | The Amazon Resource Name (ARN) of the KMS key used to encrypt your function's environment variables. If you elect to use the AWS Lambda default service key, pass in an empty string ("") for this parameter.
 ufcKMSKeyARN :: Lens' UpdateFunctionConfiguration (Maybe Text)
-ufcKMSKeyARN = lens _ufcKMSKeyARN (\ s a -> s{_ufcKMSKeyARN = a});
+ufcKMSKeyARN = lens _ufcKMSKeyARN (\ s a -> s{_ufcKMSKeyARN = a})
 
 -- | The parent object that contains your environment's configuration settings.
 ufcEnvironment :: Lens' UpdateFunctionConfiguration (Maybe Environment)
-ufcEnvironment = lens _ufcEnvironment (\ s a -> s{_ufcEnvironment = a});
+ufcEnvironment = lens _ufcEnvironment (\ s a -> s{_ufcEnvironment = a})
 
--- | The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic.
+-- | The parent object that contains the target ARN (Amazon Resource Name) of an Amazon SQS queue or Amazon SNS topic. For more information, see 'dlq' .
 ufcDeadLetterConfig :: Lens' UpdateFunctionConfiguration (Maybe DeadLetterConfig)
-ufcDeadLetterConfig = lens _ufcDeadLetterConfig (\ s a -> s{_ufcDeadLetterConfig = a});
+ufcDeadLetterConfig = lens _ufcDeadLetterConfig (\ s a -> s{_ufcDeadLetterConfig = a})
 
 -- | The Amazon Resource Name (ARN) of the IAM role that Lambda will assume when it executes your function.
 ufcRole :: Lens' UpdateFunctionConfiguration (Maybe Text)
-ufcRole = lens _ufcRole (\ s a -> s{_ufcRole = a});
+ufcRole = lens _ufcRole (\ s a -> s{_ufcRole = a})
 
 -- | Undocumented member.
 ufcVPCConfig :: Lens' UpdateFunctionConfiguration (Maybe VPCConfig)
-ufcVPCConfig = lens _ufcVPCConfig (\ s a -> s{_ufcVPCConfig = a});
+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.
 ufcHandler :: Lens' UpdateFunctionConfiguration (Maybe Text)
-ufcHandler = lens _ufcHandler (\ s a -> s{_ufcHandler = a});
+ufcHandler = lens _ufcHandler (\ s a -> s{_ufcHandler = a})
 
 -- | The function execution time at which AWS 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 3 seconds.
 ufcTimeout :: Lens' UpdateFunctionConfiguration (Maybe Natural)
-ufcTimeout = lens _ufcTimeout (\ s a -> s{_ufcTimeout = a}) . mapping _Nat;
+ufcTimeout = lens _ufcTimeout (\ s a -> s{_ufcTimeout = a}) . mapping _Nat
 
 -- | The parent object that contains your function's tracing settings.
 ufcTracingConfig :: Lens' UpdateFunctionConfiguration (Maybe TracingConfig)
-ufcTracingConfig = lens _ufcTracingConfig (\ s a -> s{_ufcTracingConfig = a});
+ufcTracingConfig = lens _ufcTracingConfig (\ s a -> s{_ufcTracingConfig = a})
 
 -- | A short user-defined function description. AWS Lambda does not use this value. Assign a meaningful description as you see fit.
 ufcDescription :: Lens' UpdateFunctionConfiguration (Maybe Text)
-ufcDescription = lens _ufcDescription (\ s a -> s{_ufcDescription = a});
+ufcDescription = lens _ufcDescription (\ s a -> s{_ufcDescription = a})
 
+-- | An optional value you can use to ensure you are updating the latest update of the function version or alias. If the @RevisionID@ you pass doesn't match the latest @RevisionId@ of the function or alias, it will fail with an error message, advising you to retrieve the latest function version or alias @RevisionID@ using either or .
+ufcRevisionId :: Lens' UpdateFunctionConfiguration (Maybe Text)
+ufcRevisionId = lens _ufcRevisionId (\ s a -> s{_ufcRevisionId = a})
+
 -- | The name of the Lambda function. 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});
+ufcFunctionName = lens _ufcFunctionName (\ s a -> s{_ufcFunctionName = a})
 
 instance AWSRequest UpdateFunctionConfiguration where
         type Rs UpdateFunctionConfiguration =
@@ -218,7 +228,8 @@
                   ("Handler" .=) <$> _ufcHandler,
                   ("Timeout" .=) <$> _ufcTimeout,
                   ("TracingConfig" .=) <$> _ufcTracingConfig,
-                  ("Description" .=) <$> _ufcDescription])
+                  ("Description" .=) <$> _ufcDescription,
+                  ("RevisionId" .=) <$> _ufcRevisionId])
 
 instance ToPath UpdateFunctionConfiguration where
         toPath UpdateFunctionConfiguration'{..}
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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@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-2017 Brendan Hay
+-- Copyright   : (c) 2013-2018 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
 -- Stability   : auto-generated
@@ -58,9 +58,15 @@
 --         , requestGetEventSourceMapping $
 --             getEventSourceMapping
 --
+--         , requestPutFunctionConcurrency $
+--             putFunctionConcurrency
+--
 --         , requestCreateFunction $
 --             createFunction
 --
+--         , requestDeleteFunctionConcurrency $
+--             deleteFunctionConcurrency
+--
 --         , requestCreateEventSourceMapping $
 --             createEventSourceMapping
 --
@@ -142,9 +148,15 @@
 --         , responseGetEventSourceMapping $
 --             eventSourceMappingConfiguration
 --
+--         , responsePutFunctionConcurrency $
+--             concurrency
+--
 --         , responseCreateFunction $
 --             functionConfiguration
 --
+--         , responseDeleteFunctionConcurrency $
+--             deleteFunctionConcurrencyResponse
+--
 --         , responseCreateEventSourceMapping $
 --             eventSourceMappingConfiguration
 --
@@ -248,11 +260,21 @@
     "GetEventSourceMapping"
     "fixture/GetEventSourceMapping.yaml"
 
+requestPutFunctionConcurrency :: PutFunctionConcurrency -> TestTree
+requestPutFunctionConcurrency = req
+    "PutFunctionConcurrency"
+    "fixture/PutFunctionConcurrency.yaml"
+
 requestCreateFunction :: CreateFunction -> TestTree
 requestCreateFunction = req
     "CreateFunction"
     "fixture/CreateFunction.yaml"
 
+requestDeleteFunctionConcurrency :: DeleteFunctionConcurrency -> TestTree
+requestDeleteFunctionConcurrency = req
+    "DeleteFunctionConcurrency"
+    "fixture/DeleteFunctionConcurrency.yaml"
+
 requestCreateEventSourceMapping :: CreateEventSourceMapping -> TestTree
 requestCreateEventSourceMapping = req
     "CreateEventSourceMapping"
@@ -405,12 +427,26 @@
     lambda
     (Proxy :: Proxy GetEventSourceMapping)
 
+responsePutFunctionConcurrency :: Concurrency -> TestTree
+responsePutFunctionConcurrency = res
+    "PutFunctionConcurrencyResponse"
+    "fixture/PutFunctionConcurrencyResponse.proto"
+    lambda
+    (Proxy :: Proxy PutFunctionConcurrency)
+
 responseCreateFunction :: FunctionConfiguration -> TestTree
 responseCreateFunction = res
     "CreateFunctionResponse"
     "fixture/CreateFunctionResponse.proto"
     lambda
     (Proxy :: Proxy CreateFunction)
+
+responseDeleteFunctionConcurrency :: DeleteFunctionConcurrencyResponse -> TestTree
+responseDeleteFunctionConcurrency = res
+    "DeleteFunctionConcurrencyResponse"
+    "fixture/DeleteFunctionConcurrencyResponse.proto"
+    lambda
+    (Proxy :: Proxy DeleteFunctionConcurrency)
 
 responseCreateEventSourceMapping :: EventSourceMappingConfiguration -> TestTree
 responseCreateEventSourceMapping = res
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-2016 Brendan Hay
+-- Copyright   : (c) 2013-2018 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
@@ -15,12 +15,19 @@
     , fixtures
     ) where
 
-import           Network.AWS.Lambda
-import           Test.AWS.Gen.Lambda
-import           Test.Tasty
+import Network.AWS.Lambda
+import Network.AWS.Lens   ((&), (?~))
 
+import Test.AWS.Gen.Lambda
+import Test.Tasty
+
 tests :: [TestTree]
 tests = []
 
 fixtures :: [TestTree]
-fixtures = []
+fixtures =
+    [ testGroup "response"
+        [ responseInvoke $
+            invokeResponse 200 & irsPayload ?~ ""
+        ]
+    ]
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-2016 Brendan Hay
+-- Copyright   : (c) 2013-2018 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
