diff --git a/amazonka-dynamodb.cabal b/amazonka-dynamodb.cabal
--- a/amazonka-dynamodb.cabal
+++ b/amazonka-dynamodb.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-dynamodb
-version:               0.3.4
+version:               0.3.5
 synopsis:              Amazon DynamoDB SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -58,5 +58,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core == 0.3.4.*
+          amazonka-core == 0.3.5.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/DynamoDB/BatchGetItem.hs b/gen/Network/AWS/DynamoDB/BatchGetItem.hs
--- a/gen/Network/AWS/DynamoDB/BatchGetItem.hs
+++ b/gen/Network/AWS/DynamoDB/BatchGetItem.hs
@@ -50,7 +50,7 @@
 -- individual tables. If you delay the batch operation using exponential
 -- backoff, the individual requests in the batch are much more likely to succeed.
 --
--- For more information, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#BatchOperations Batch Operations and Error Handling> in the /Amazon DynamoDB Developer Guide/.
+-- For more information, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#BatchOperations Batch Operations and Error Handling> in the /AmazonDynamoDB Developer Guide/.
 --
 -- By default, /BatchGetItem/ performs eventually consistent reads on every
 -- table in the request. If you want strongly consistent reads instead, you can
@@ -113,28 +113,80 @@
     , _bgiReturnConsumedCapacity = Nothing
     }
 
--- | A map of one or more table names and, for each table, the corresponding
--- primary keys for the items to retrieve. Each table name can be invoked only
--- once.
+-- | A map of one or more table names and, for each table, a map that describes
+-- one or more items to retrieve from that table. Each table name can be used
+-- only once per /BatchGetItem/ request.
 --
--- Each element in the map consists of the following:
+-- Each element in the map of items to retrieve consists of the following:
 --
+-- /ConsistentRead/ - If 'true', a strongly consistent read is used; if 'false'
+-- (the default), an eventually consistent read is used.
+--
+-- /ExpressionAttributeNames/ - One or more substitution tokens for attribute
+-- names in the /ProjectionExpression/ parameter. The following are some use cases
+-- for using /ExpressionAttributeNames/:
+--
+-- To access an attribute whose name conflicts with a DynamoDB reserved word.
+--
+-- To create a placeholder for repeating occurrences of an attribute name in
+-- an expression.
+--
+-- To prevent special characters in an attribute name from being
+-- misinterpreted in an expression.
+--
+-- Use the # character in an expression to dereference an attribute name. For
+-- example, consider the following attribute name:
+--
+-- 'Percentile'
+--
+-- The name of this attribute conflicts with a reserved word, so it cannot be
+-- used directly in an expression. (For the complete list of reserved words, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around this,
+-- you could specify the following for /ExpressionAttributeNames/:
+--
+-- '{"#P":"Percentile"}'
+--
+-- You could then use this substitution in an expression, as in this example:
+--
+-- '#P = :val'
+--
+-- Tokens that begin with the : character are /expression attribute values/,
+-- which are placeholders for the actual value at runtime.
+--
+-- For more information on expression attribute names, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing ItemAttributes> in the /Amazon DynamoDB Developer Guide/.
+--
 -- /Keys/ - An array of primary key attribute values that define specific items
 -- in the table. For each primary key, you must provide /all/ of the key
 -- attributes. For example, with a hash type primary key, you only need to
 -- provide the hash attribute. For a hash-and-range type primary key, you must
 -- provide /both/ the hash attribute and the range attribute.
 --
--- /AttributesToGet/ - One or more attributes to be retrieved from the table.
--- By default, all attributes are returned. If a specified attribute is not
--- found, it does not appear in the result.
+-- /ProjectionExpression/ - A string that identifies one or more attributes to
+-- retrieve from the table. These attributes can include scalars, sets, or
+-- elements of a JSON document. The attributes in the expression must be
+-- separated by commas.
 --
+-- If no attribute names are specified, then all attributes will be returned.
+-- If any of the requested attributes are not found, they will not appear in the
+-- result.
+--
+-- For more information, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing Item Attributes> in the /Amazon DynamoDBDeveloper Guide/.
+--
+-- /AttributesToGet/ -
+--
+-- This is a legacy parameter, for backward compatibility. New applications
+-- should use /ProjectionExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
+--
+-- This parameter allows you to retrieve attributes of type List or Map;
+-- however, it cannot retrieve individual elements within a List or a Map.
+--
+-- The names of one or more attributes to retrieve. If no attribute names are
+-- provided, then all attributes will be returned. If any of the requested
+-- attributes are not found, they will not appear in the result.
+--
 -- Note that /AttributesToGet/ has no effect on provisioned throughput
 -- consumption. DynamoDB determines capacity units consumed based on item size,
 -- not on the amount of data that is returned to an application.
---
--- /ConsistentRead/ - If 'true', a strongly consistent read is used; if 'false'
--- (the default), an eventually consistent read is used.
 --
 --
 bgiRequestItems :: Lens' BatchGetItem (HashMap Text KeysAndAttributes)
diff --git a/gen/Network/AWS/DynamoDB/BatchWriteItem.hs b/gen/Network/AWS/DynamoDB/BatchWriteItem.hs
--- a/gen/Network/AWS/DynamoDB/BatchWriteItem.hs
+++ b/gen/Network/AWS/DynamoDB/BatchWriteItem.hs
@@ -46,7 +46,7 @@
 -- individual tables. If you delay the batch operation using exponential
 -- backoff, the individual requests in the batch are much more likely to succeed.
 --
--- For more information, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#BatchOperations Batch Operations and Error Handling> in the /Amazon DynamoDB Developer Guide/.
+-- For more information, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#BatchOperations Batch Operations and Error Handling> in the /AmazonDynamoDB Developer Guide/.
 --
 -- With /BatchWriteItem/, you can efficiently write or delete large amounts of
 -- data, such as from Amazon Elastic MapReduce (EMR), or copy data from another
@@ -59,10 +59,11 @@
 -- If you use a programming language that supports concurrency, such as Java,
 -- you can use threads to write items in parallel. Your application must include
 -- the necessary logic to manage the threads. With languages that don't support
--- threading, such as PHP, you must update provides an alternative where the API
--- performs the specified put and delete operations in parallel, giving you the
--- power of the thread pool approach without having to introduce complexity into
--- your application.
+-- threading, such as PHP, you must update or delete the specified items one at
+-- a time. In both situations, /BatchWriteItem/ provides an alternative where the
+-- API performs the specified put and delete operations in parallel, giving you
+-- the power of the thread pool approach without having to introduce complexity
+-- into your application.
 --
 -- Parallel processing reduces latency, but each specified put and delete
 -- request consumes the same number of write capacity units whether it is
diff --git a/gen/Network/AWS/DynamoDB/DeleteItem.hs b/gen/Network/AWS/DynamoDB/DeleteItem.hs
--- a/gen/Network/AWS/DynamoDB/DeleteItem.hs
+++ b/gen/Network/AWS/DynamoDB/DeleteItem.hs
@@ -137,15 +137,19 @@
 --
 -- Logical operators: 'AND | OR | NOT'
 --
--- For more information on condition expressions, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html Specifying Conditions>
+-- For more information on condition expressions, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html Specifying Conditions>
 -- in the /Amazon DynamoDB Developer Guide/.
+--
+-- /ConditionExpression/ replaces the legacy /ConditionalOperator/ and /Expected/
+-- parameters.
+--
 diConditionExpression :: Lens' DeleteItem (Maybe Text)
 diConditionExpression =
     lens _diConditionExpression (\s a -> s { _diConditionExpression = a })
 
--- | There is a newer parameter available. Use /ConditionExpression/ instead. Note
--- that if you use /ConditionalOperator/ and / ConditionExpression / at the same
--- time, DynamoDB will return a /ValidationException/ exception.
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /ConditionExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
 --
 -- A logical operator to apply to the conditions in the /Expected/ map:
 --
@@ -165,9 +169,9 @@
 diConditionalOperator =
     lens _diConditionalOperator (\s a -> s { _diConditionalOperator = a })
 
--- | There is a newer parameter available. Use /ConditionExpression/ instead. Note
--- that if you use /Expected/ and / ConditionExpression / at the same time, DynamoDB
--- will return a /ValidationException/ exception.
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /ConditionExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
 --
 -- A map of attribute/condition pairs. /Expected/ provides a conditional block
 -- for the /DeleteItem/ operation.
@@ -376,9 +380,8 @@
 -- 'Percentile'
 --
 -- The name of this attribute conflicts with a reserved word, so it cannot be
--- used directly in an expression. (For the complete list of reserved words, go
--- to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around
--- this, you could specify the following for /ExpressionAttributeNames/:
+-- used directly in an expression. (For the complete list of reserved words, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around this,
+-- you could specify the following for /ExpressionAttributeNames/:
 --
 -- '{"#P":"Percentile"}'
 --
@@ -389,7 +392,7 @@
 -- Tokens that begin with the : character are /expression attribute values/,
 -- which are placeholders for the actual value at runtime.
 --
--- For more information on expression attribute names, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing ItemAttributes> in the /Amazon DynamoDB Developer Guide/.
+-- For more information on expression attribute names, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html Using Placeholdersfor Attribute Names and Values> in the /Amazon DynamoDB Developer Guide/.
 diExpressionAttributeNames :: Lens' DeleteItem (HashMap Text Text)
 diExpressionAttributeNames =
     lens _diExpressionAttributeNames
@@ -411,7 +414,7 @@
 --
 -- 'ProductStatus IN (:avail, :back, :disc)'
 --
--- For more information on expression attribute values, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html SpecifyingConditions> in the /Amazon DynamoDB Developer Guide/.
+-- For more information on expression attribute values, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionPlaceholders.html Using Placeholdersfor Attribute Names and Values> in the /Amazon DynamoDB Developer Guide/.
 diExpressionAttributeValues :: Lens' DeleteItem (HashMap Text AttributeValue)
 diExpressionAttributeValues =
     lens _diExpressionAttributeValues
diff --git a/gen/Network/AWS/DynamoDB/GetItem.hs b/gen/Network/AWS/DynamoDB/GetItem.hs
--- a/gen/Network/AWS/DynamoDB/GetItem.hs
+++ b/gen/Network/AWS/DynamoDB/GetItem.hs
@@ -102,9 +102,9 @@
     , _giExpressionAttributeNames = mempty
     }
 
--- | There is a newer parameter available. Use /ProjectionExpression/ instead. Note
--- that if you use /AttributesToGet/ and /ProjectionExpression/ at the same time,
--- DynamoDB will return a /ValidationException/ exception.
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /ProjectionExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
 --
 -- This parameter allows you to retrieve attributes of type List or Map;
 -- however, it cannot retrieve individual elements within a List or a Map.
@@ -143,9 +143,8 @@
 -- 'Percentile'
 --
 -- The name of this attribute conflicts with a reserved word, so it cannot be
--- used directly in an expression. (For the complete list of reserved words, go
--- to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around
--- this, you could specify the following for /ExpressionAttributeNames/:
+-- used directly in an expression. (For the complete list of reserved words, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around this,
+-- you could specify the following for /ExpressionAttributeNames/:
 --
 -- '{"#P":"Percentile"}'
 --
@@ -156,7 +155,7 @@
 -- Tokens that begin with the : character are /expression attribute values/,
 -- which are placeholders for the actual value at runtime.
 --
--- For more information on expression attribute names, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing ItemAttributes> in the /Amazon DynamoDB Developer Guide/.
+-- For more information on expression attribute names, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html Using Placeholdersfor Attribute Names and Values> in the /Amazon DynamoDB Developer Guide/.
 giExpressionAttributeNames :: Lens' GetItem (HashMap Text Text)
 giExpressionAttributeNames =
     lens _giExpressionAttributeNames
@@ -181,7 +180,10 @@
 -- If any of the requested attributes are not found, they will not appear in the
 -- result.
 --
--- For more information, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing Item Attributes> in the /Amazon DynamoDBDeveloper Guide/.
+-- For more information, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing Item Attributes> in the /Amazon DynamoDBDeveloper Guide/.
+--
+-- /ProjectionExpression/ replaces the legacy /AttributesToGet/ parameter.
+--
 giProjectionExpression :: Lens' GetItem (Maybe Text)
 giProjectionExpression =
     lens _giProjectionExpression (\s a -> s { _giProjectionExpression = a })
diff --git a/gen/Network/AWS/DynamoDB/PutItem.hs b/gen/Network/AWS/DynamoDB/PutItem.hs
--- a/gen/Network/AWS/DynamoDB/PutItem.hs
+++ b/gen/Network/AWS/DynamoDB/PutItem.hs
@@ -148,15 +148,19 @@
 --
 -- Logical operators: 'AND | OR | NOT'
 --
--- For more information on condition expressions, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html Specifying Conditions>
+-- For more information on condition expressions, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html Specifying Conditions>
 -- in the /Amazon DynamoDB Developer Guide/.
+--
+-- /ConditionExpression/ replaces the legacy /ConditionalOperator/ and /Expected/
+-- parameters.
+--
 piConditionExpression :: Lens' PutItem (Maybe Text)
 piConditionExpression =
     lens _piConditionExpression (\s a -> s { _piConditionExpression = a })
 
--- | There is a newer parameter available. Use /ConditionExpression/ instead. Note
--- that if you use /ConditionalOperator/ and / ConditionExpression / at the same
--- time, DynamoDB will return a /ValidationException/ exception.
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /ConditionExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
 --
 -- A logical operator to apply to the conditions in the /Expected/ map:
 --
@@ -176,9 +180,9 @@
 piConditionalOperator =
     lens _piConditionalOperator (\s a -> s { _piConditionalOperator = a })
 
--- | There is a newer parameter available. Use /ConditionExpression/ instead. Note
--- that if you use /Expected/ and / ConditionExpression / at the same time, DynamoDB
--- will return a /ValidationException/ exception.
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /ConditionExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
 --
 -- A map of attribute/condition pairs. /Expected/ provides a conditional block
 -- for the /PutItem/ operation.
@@ -386,9 +390,8 @@
 -- 'Percentile'
 --
 -- The name of this attribute conflicts with a reserved word, so it cannot be
--- used directly in an expression. (For the complete list of reserved words, go
--- to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around
--- this, you could specify the following for /ExpressionAttributeNames/:
+-- used directly in an expression. (For the complete list of reserved words, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around this,
+-- you could specify the following for /ExpressionAttributeNames/:
 --
 -- '{"#P":"Percentile"}'
 --
@@ -399,7 +402,7 @@
 -- Tokens that begin with the : character are /expression attribute values/,
 -- which are placeholders for the actual value at runtime.
 --
--- For more information on expression attribute names, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing ItemAttributes> in the /Amazon DynamoDB Developer Guide/.
+-- For more information on expression attribute names, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html Using Placeholdersfor Attribute Names and Values> in the /Amazon DynamoDB Developer Guide/.
 piExpressionAttributeNames :: Lens' PutItem (HashMap Text Text)
 piExpressionAttributeNames =
     lens _piExpressionAttributeNames
@@ -421,7 +424,7 @@
 --
 -- 'ProductStatus IN (:avail, :back, :disc)'
 --
--- For more information on expression attribute values, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html SpecifyingConditions> in the /Amazon DynamoDB Developer Guide/.
+-- For more information on expression attribute values, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionPlaceholders.html Using Placeholdersfor Attribute Names and Values> in the /Amazon DynamoDB Developer Guide/.
 piExpressionAttributeValues :: Lens' PutItem (HashMap Text AttributeValue)
 piExpressionAttributeValues =
     lens _piExpressionAttributeValues
diff --git a/gen/Network/AWS/DynamoDB/Query.hs b/gen/Network/AWS/DynamoDB/Query.hs
--- a/gen/Network/AWS/DynamoDB/Query.hs
+++ b/gen/Network/AWS/DynamoDB/Query.hs
@@ -22,13 +22,14 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | A /Query/ operation directly accesses items from a table using the table
--- primary key, or from an index using the index key. You must provide a
--- specific hash key value. You can narrow the scope of the query by using
--- comparison operators on the range key value, or on the index key. You can use
--- the /ScanIndexForward/ parameter to get results in forward or reverse order, by
--- range key or by index key.
+-- | A /Query/ operation uses the primary key of a table or a secondary index to
+-- directly access items from that table or index.
 --
+-- Use the /KeyConditionExpression/ parameter to provide a specific hash key
+-- value. The /Query/ operation will return all of the items from the table or
+-- index with that hash key value. You can optionally narrow the scope of the /Query/ by specifying a range key value and a comparison operator in the /KeyConditionExpression/. You can use the /ScanIndexForward/ parameter to get results in forward or
+-- reverse order, by range key or by index key.
+--
 -- Queries that do not return results consume the minimum number of read
 -- capacity units for that type of read operation.
 --
@@ -60,6 +61,7 @@
     , qExpressionAttributeValues
     , qFilterExpression
     , qIndexName
+    , qKeyConditionExpression
     , qKeyConditions
     , qLimit
     , qProjectionExpression
@@ -96,6 +98,7 @@
     , _qExpressionAttributeValues :: Map Text AttributeValue
     , _qFilterExpression          :: Maybe Text
     , _qIndexName                 :: Maybe Text
+    , _qKeyConditionExpression    :: Maybe Text
     , _qKeyConditions             :: Map Text Condition
     , _qLimit                     :: Maybe Nat
     , _qProjectionExpression      :: Maybe Text
@@ -126,6 +129,8 @@
 --
 -- * 'qIndexName' @::@ 'Maybe' 'Text'
 --
+-- * 'qKeyConditionExpression' @::@ 'Maybe' 'Text'
+--
 -- * 'qKeyConditions' @::@ 'HashMap' 'Text' 'Condition'
 --
 -- * 'qLimit' @::@ 'Maybe' 'Natural'
@@ -160,13 +165,14 @@
     , _qReturnConsumedCapacity    = Nothing
     , _qProjectionExpression      = Nothing
     , _qFilterExpression          = Nothing
+    , _qKeyConditionExpression    = Nothing
     , _qExpressionAttributeNames  = mempty
     , _qExpressionAttributeValues = mempty
     }
 
--- | There is a newer parameter available. Use /ProjectionExpression/ instead. Note
--- that if you use /AttributesToGet/ and /ProjectionExpression/ at the same time,
--- DynamoDB will return a /ValidationException/ exception.
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /ProjectionExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
 --
 -- This parameter allows you to retrieve attributes of type List or Map;
 -- however, it cannot retrieve individual elements within a List or a Map.
@@ -194,8 +200,12 @@
 qAttributesToGet :: Lens' Query (NonEmpty Text)
 qAttributesToGet = lens _qAttributesToGet (\s a -> s { _qAttributesToGet = a }) . _List1
 
--- | A logical operator to apply to the conditions in a /QueryFilter/ map:
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /FilterExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
 --
+-- A logical operator to apply to the conditions in a /QueryFilter/ map:
+--
 -- 'AND' - If all of the conditions evaluate to true, then the entire map
 -- evaluates to true.
 --
@@ -248,9 +258,8 @@
 -- 'Percentile'
 --
 -- The name of this attribute conflicts with a reserved word, so it cannot be
--- used directly in an expression. (For the complete list of reserved words, go
--- to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around
--- this, you could specify the following for /ExpressionAttributeNames/:
+-- used directly in an expression. (For the complete list of reserved words, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around this,
+-- you could specify the following for /ExpressionAttributeNames/:
 --
 -- '{"#P":"Percentile"}'
 --
@@ -261,7 +270,7 @@
 -- Tokens that begin with the : character are /expression attribute values/,
 -- which are placeholders for the actual value at runtime.
 --
--- For more information on expression attribute names, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing ItemAttributes> in the /Amazon DynamoDB Developer Guide/.
+-- For more information on expression attribute names, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html Using Placeholdersfor Attribute Names and Values> in the /Amazon DynamoDB Developer Guide/.
 qExpressionAttributeNames :: Lens' Query (HashMap Text Text)
 qExpressionAttributeNames =
     lens _qExpressionAttributeNames
@@ -283,7 +292,7 @@
 --
 -- 'ProductStatus IN (:avail, :back, :disc)'
 --
--- For more information on expression attribute values, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html SpecifyingConditions> in the /Amazon DynamoDB Developer Guide/.
+-- For more information on expression attribute values, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionPlaceholders.html Using Placeholdersfor Attribute Names and Values> in the /Amazon DynamoDB Developer Guide/.
 qExpressionAttributeValues :: Lens' Query (HashMap Text AttributeValue)
 qExpressionAttributeValues =
     lens _qExpressionAttributeValues
@@ -297,27 +306,98 @@
 -- A /FilterExpression/ is applied after the items have already been read; the
 -- process of filtering does not consume any additional read capacity units.
 --
--- For more information, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#FilteringResults Filter Expressions> in the /Amazon DynamoDBDeveloper Guide/.
+-- For more information, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#FilteringResults Filter Expressions> in the /Amazon DynamoDBDeveloper Guide/.
+--
+-- /FilterExpression/ replaces the legacy /QueryFilter/ and /ConditionalOperator/
+-- parameters.
+--
 qFilterExpression :: Lens' Query (Maybe Text)
 qFilterExpression =
     lens _qFilterExpression (\s a -> s { _qFilterExpression = a })
 
 -- | The name of an index to query. This index can be any local secondary index or
--- global secondary index on the table.
+-- global secondary index on the table. Note that if you use the /IndexName/
+-- parameter, you must also provide /TableName./
 qIndexName :: Lens' Query (Maybe Text)
 qIndexName = lens _qIndexName (\s a -> s { _qIndexName = a })
 
--- | The selection criteria for the query. For a query on a table, you can have
+-- | The condition that specifies the key value(s) for items to be retrieved by
+-- the /Query/ action.
+--
+-- The condition must perform an equality test on a single hash key value. The
+-- condition can also test for one or more range key values. A /Query/ can use /KeyConditionExpression/ to retrieve a single item with a given hash and range key value, or several
+-- items that have the same hash key value but different range key values.
+--
+-- The hash key equality test is required, and must be specified in the
+-- following format:
+--
+-- 'hashAttributeName' /=/ ':hashval'
+--
+-- If you also want to provide a range key condition, it must be combined using /AND/ with the hash key condition. Following is an example, using the =
+-- comparison operator for the range key:
+--
+-- 'hashAttributeName' /=/ ':hashval' /AND/ 'rangeAttributeName' /=/ ':rangeval'
+--
+-- Valid comparisons for the range key condition are as follows:
+--
+-- 'rangeAttributeName' /=/ ':rangeval' - true if the range key is equal to ':rangeval'.
+--
+-- 'rangeAttributeName' /</ ':rangeval' - true if the range key is less than ':rangeval'.
+--
+-- 'rangeAttributeName' /<=/ ':rangeval' - true if the range key is less than or
+-- equal to ':rangeval'.
+--
+-- 'rangeAttributeName' />/ ':rangeval' - true if the range key is greater than ':rangeval'.
+--
+-- 'rangeAttributeName' />= /':rangeval' - true if the range key is greater than or
+-- equal to ':rangeval'.
+--
+-- 'rangeAttributeName' /BETWEEN/ ':rangeval1' /AND/ ':rangeval2' - true if the range
+-- key is less than or greater than ':rangeval1', and less than or equal to ':rangeval2'.
+--
+-- /begins_with (/'rangeAttributeName', ':rangeval'/)/ - true if the range key begins
+-- with a particular operand. Note that the function name 'begins_with' is
+-- case-sensitive.
+--
+-- Use the /ExpressionAttributeValues/ parameter to replace tokens such as ':hashval' and ':rangeval' with actual values at runtime.
+--
+-- You can optionally use the /ExpressionAttributeNames/ parameter to replace the
+-- names of the hash and range attributes with placeholder tokens. This might be
+-- necessary if an attribute name conflicts with a DynamoDB reserved word. For
+-- example, the following /KeyConditionExpression/ causes an error because /Size/ is
+-- a reserved word:
+--
+-- 'Size = :myval'   To work around this, define a placeholder (such a '#myval')
+-- to represent the attribute name /Size/. /KeyConditionExpression/ then is as
+-- follows:
+--
+-- '#S = :myval'   For a list of reserved words, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/.
+--
+-- For more information on /ExpressionAttributeNames/ and /ExpressionAttributeValues/, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html Using Placeholders for Attribute Names and Values> in the /AmazonDynamoDB Developer Guide/.
+--
+-- /KeyConditionExpression/ replaces the legacy /KeyConditions/ parameter.
+--
+--
+qKeyConditionExpression :: Lens' Query (Maybe Text)
+qKeyConditionExpression =
+    lens _qKeyConditionExpression (\s a -> s { _qKeyConditionExpression = a })
+
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /KeyConditionExpression/ instead. Do not combine legacy parameters
+-- and expression parameters in a single API call; otherwise, DynamoDB will
+-- return a /ValidationException/ exception.
+--
+-- The selection criteria for the query. For a query on a table, you can have
 -- conditions only on the table primary key attributes. You must provide the
 -- hash key attribute name and value as an 'EQ' condition. You can optionally
 -- provide a second condition, referring to the range key attribute.
 --
--- If you do not provide a range key condition, all of the items that match the
+-- If you don't provide a range key condition, all of the items that match the
 -- hash key will be retrieved. If a /FilterExpression/ or /QueryFilter/ is present,
 -- it will be applied after the items are retrieved.
 --
 -- For a query on an index, you can have conditions only on the index key
--- attributes. You must provide the index hash attribute name and value as an EQ
+-- attributes. You must provide the index hash attribute name and value as an 'EQ'
 -- condition. You can optionally provide a second condition, referring to the
 -- index key range attribute.
 --
@@ -429,22 +509,25 @@
 -- If any of the requested attributes are not found, they will not appear in the
 -- result.
 --
--- For more information, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing Item Attributes> in the /Amazon DynamoDBDeveloper Guide/.
+-- For more information, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing Item Attributes> in the /Amazon DynamoDBDeveloper Guide/.
+--
+-- /ProjectionExpression/ replaces the legacy /AttributesToGet/ parameter.
+--
 qProjectionExpression :: Lens' Query (Maybe Text)
 qProjectionExpression =
     lens _qProjectionExpression (\s a -> s { _qProjectionExpression = a })
 
--- | There is a newer parameter available. Use /FilterExpression/ instead. Note
--- that if you use /QueryFilter/ and /FilterExpression/ at the same time, DynamoDB
--- will return a /ValidationException/ exception.
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /FilterExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
 --
 -- A condition that evaluates the query results after the items are read and
 -- returns only the desired values.
 --
 -- This parameter does not support attributes of type List or Map.
 --
--- A /QueryFilter/ is applied after the items have already been read; the process
--- of filtering does not consume any additional read capacity units.
+-- A /QueryFilter/ is applied after the items have already been read; the
+-- process of filtering does not consume any additional read capacity units.
 --
 -- If you provide more than one condition in the /QueryFilter/ map, then by
 -- default all of the conditions must evaluate to true. In other words, the
@@ -541,6 +624,10 @@
 -- index. You cannot use both /Select/ and /AttributesToGet/ together in a single
 -- request, unless the value for /Select/ is 'SPECIFIC_ATTRIBUTES'. (This usage is
 -- equivalent to specifying /AttributesToGet/ without any value for /Select/.)
+--
+-- If you use the /ProjectionExpression/ parameter, then the value for /Select/ can
+-- only be 'SPECIFIC_ATTRIBUTES'. Any other value for /Select/ will return an error.
+--
 qSelect :: Lens' Query (Maybe Select)
 qSelect = lens _qSelect (\s a -> s { _qSelect = a })
 
@@ -645,6 +732,7 @@
         , "ReturnConsumedCapacity"    .= _qReturnConsumedCapacity
         , "ProjectionExpression"      .= _qProjectionExpression
         , "FilterExpression"          .= _qFilterExpression
+        , "KeyConditionExpression"    .= _qKeyConditionExpression
         , "ExpressionAttributeNames"  .= _qExpressionAttributeNames
         , "ExpressionAttributeValues" .= _qExpressionAttributeValues
         ]
diff --git a/gen/Network/AWS/DynamoDB/Scan.hs b/gen/Network/AWS/DynamoDB/Scan.hs
--- a/gen/Network/AWS/DynamoDB/Scan.hs
+++ b/gen/Network/AWS/DynamoDB/Scan.hs
@@ -153,9 +153,9 @@
     , _sExpressionAttributeValues = mempty
     }
 
--- | There is a newer parameter available. Use /ProjectionExpression/ instead. Note
--- that if you use /AttributesToGet/ and /ProjectionExpression/ at the same time,
--- DynamoDB will return a /ValidationException/ exception.
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /ProjectionExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
 --
 -- This parameter allows you to retrieve attributes of type List or Map;
 -- however, it cannot retrieve individual elements within a List or a Map.
@@ -170,9 +170,9 @@
 sAttributesToGet :: Lens' Scan (NonEmpty Text)
 sAttributesToGet = lens _sAttributesToGet (\s a -> s { _sAttributesToGet = a }) . _List1
 
--- | There is a newer parameter available. Use /ConditionExpression/ instead. Note
--- that if you use /ConditionalOperator/ and / ConditionExpression / at the same
--- time, DynamoDB will return a /ValidationException/ exception.
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /FilterExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
 --
 -- A logical operator to apply to the conditions in a /ScanFilter/ map:
 --
@@ -223,9 +223,8 @@
 -- 'Percentile'
 --
 -- The name of this attribute conflicts with a reserved word, so it cannot be
--- used directly in an expression. (For the complete list of reserved words, go
--- to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around
--- this, you could specify the following for /ExpressionAttributeNames/:
+-- used directly in an expression. (For the complete list of reserved words, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around this,
+-- you could specify the following for /ExpressionAttributeNames/:
 --
 -- '{"#P":"Percentile"}'
 --
@@ -236,7 +235,7 @@
 -- Tokens that begin with the : character are /expression attribute values/,
 -- which are placeholders for the actual value at runtime.
 --
--- For more information on expression attribute names, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing ItemAttributes> in the /Amazon DynamoDB Developer Guide/.
+-- For more information on expression attribute names, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html Using Placeholdersfor Attribute Names and Values> in the /Amazon DynamoDB Developer Guide/.
 sExpressionAttributeNames :: Lens' Scan (HashMap Text Text)
 sExpressionAttributeNames =
     lens _sExpressionAttributeNames
@@ -258,7 +257,7 @@
 --
 -- 'ProductStatus IN (:avail, :back, :disc)'
 --
--- For more information on expression attribute values, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html SpecifyingConditions> in the /Amazon DynamoDB Developer Guide/.
+-- For more information on expression attribute values, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionPlaceholders.html Using Placeholdersfor Attribute Names and Values> in the /Amazon DynamoDB Developer Guide/.
 sExpressionAttributeValues :: Lens' Scan (HashMap Text AttributeValue)
 sExpressionAttributeValues =
     lens _sExpressionAttributeValues
@@ -272,7 +271,11 @@
 -- A /FilterExpression/ is applied after the items have already been read; the
 -- process of filtering does not consume any additional read capacity units.
 --
--- For more information, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#FilteringResults Filter Expressions> in the /Amazon DynamoDBDeveloper Guide/.
+-- For more information, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#FilteringResults Filter Expressions> in the /Amazon DynamoDBDeveloper Guide/.
+--
+-- /FilterExpression/ replaces the legacy /ScanFilter/ and /ConditionalOperator/
+-- parameters.
+--
 sFilterExpression :: Lens' Scan (Maybe Text)
 sFilterExpression =
     lens _sFilterExpression (\s a -> s { _sFilterExpression = a })
@@ -304,7 +307,10 @@
 -- If any of the requested attributes are not found, they will not appear in the
 -- result.
 --
--- For more information, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing Item Attributes> in the /Amazon DynamoDBDeveloper Guide/.
+-- For more information, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing Item Attributes> in the /Amazon DynamoDBDeveloper Guide/.
+--
+-- /ProjectionExpression/ replaces the legacy /AttributesToGet/ parameter.
+--
 sProjectionExpression :: Lens' Scan (Maybe Text)
 sProjectionExpression =
     lens _sProjectionExpression (\s a -> s { _sProjectionExpression = a })
@@ -313,9 +319,9 @@
 sReturnConsumedCapacity =
     lens _sReturnConsumedCapacity (\s a -> s { _sReturnConsumedCapacity = a })
 
--- | There is a newer parameter available. Use /FilterExpression/ instead. Note
--- that if you use /ScanFilter/ and /FilterExpression/ at the same time, DynamoDB
--- will return a /ValidationException/ exception.
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /FilterExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
 --
 -- A condition that evaluates the scan results and returns only the desired
 -- values.
diff --git a/gen/Network/AWS/DynamoDB/Types.hs b/gen/Network/AWS/DynamoDB/Types.hs
--- a/gen/Network/AWS/DynamoDB/Types.hs
+++ b/gen/Network/AWS/DynamoDB/Types.hs
@@ -295,8 +295,8 @@
               -> JSONError
               -> Bool
         check (statusCode -> s) (awsErrorCode -> e)
-            | s == 400 && "ThrottlingException" == e = True -- Throttling
-            | s == 400 && "ProvisionedThroughputExceededException" == e = True -- Throughput Exceeded
+            | s == 400 && (Just "ThrottlingException") == e = True -- Throttling
+            | s == 400 && (Just "ProvisionedThroughputExceededException") == e = True -- Throughput Exceeded
             | s == 500  = True -- General Server Error
             | s == 509  = True -- Limit Exceeded
             | s == 503  = True -- Service Unavailable
@@ -1044,9 +1044,8 @@
 -- 'Percentile'
 --
 -- The name of this attribute conflicts with a reserved word, so it cannot be
--- used directly in an expression. (For the complete list of reserved words, go
--- to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around
--- this, you could specify the following for /ExpressionAttributeNames/:
+-- used directly in an expression. (For the complete list of reserved words, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around this,
+-- you could specify the following for /ExpressionAttributeNames/:
 --
 -- '{"#P":"Percentile"}'
 --
@@ -1057,7 +1056,7 @@
 -- Tokens that begin with the : character are /expression attribute values/,
 -- which are placeholders for the actual value at runtime.
 --
--- For more information on expression attribute names, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing ItemAttributes> in the /Amazon DynamoDB Developer Guide/.
+-- For more information on expression attribute names, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html Using Placeholdersfor Attribute Names and Values> in the /Amazon DynamoDB Developer Guide/.
 kaaExpressionAttributeNames :: Lens' KeysAndAttributes (HashMap Text Text)
 kaaExpressionAttributeNames =
     lens _kaaExpressionAttributeNames
@@ -1077,7 +1076,10 @@
 -- If any of the requested attributes are not found, they will not appear in the
 -- result.
 --
--- For more information, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing Item Attributes> in the /Amazon DynamoDBDeveloper Guide/.
+-- For more information, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing Item Attributes> in the /Amazon DynamoDBDeveloper Guide/.
+--
+-- /ProjectionExpression/ replaces the legacy /AttributesToGet/ parameter.
+--
 kaaProjectionExpression :: Lens' KeysAndAttributes (Maybe Text)
 kaaProjectionExpression =
     lens _kaaProjectionExpression (\s a -> s { _kaaProjectionExpression = a })
diff --git a/gen/Network/AWS/DynamoDB/UpdateItem.hs b/gen/Network/AWS/DynamoDB/UpdateItem.hs
--- a/gen/Network/AWS/DynamoDB/UpdateItem.hs
+++ b/gen/Network/AWS/DynamoDB/UpdateItem.hs
@@ -130,9 +130,9 @@
     , _uiExpressionAttributeValues   = mempty
     }
 
--- | There is a newer parameter available. Use /UpdateExpression/ instead. Note
--- that if you use /AttributeUpdates/ and /UpdateExpression/ at the same time,
--- DynamoDB will return a /ValidationException/ exception.
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /UpdateExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
 --
 -- This parameter can be used for modifying top-level attributes; however, it
 -- does not support individual list or map elements.
@@ -230,15 +230,19 @@
 --
 -- Logical operators: 'AND | OR | NOT'
 --
--- For more information on condition expressions, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html Specifying Conditions>
+-- For more information on condition expressions, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html Specifying Conditions>
 -- in the /Amazon DynamoDB Developer Guide/.
+--
+-- /ConditionExpression/ replaces the legacy /ConditionalOperator/ and /Expected/
+-- parameters.
+--
 uiConditionExpression :: Lens' UpdateItem (Maybe Text)
 uiConditionExpression =
     lens _uiConditionExpression (\s a -> s { _uiConditionExpression = a })
 
--- | There is a newer parameter available. Use /ConditionExpression/ instead. Note
--- that if you use /ConditionalOperator/ and / ConditionExpression / at the same
--- time, DynamoDB will return a /ValidationException/ exception.
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use /ConditionExpression/ instead. Do not combine legacy parameters and
+-- expression parameters in a single API call; otherwise, DynamoDB will return a /ValidationException/ exception.
 --
 -- A logical operator to apply to the conditions in the /Expected/ map:
 --
@@ -258,9 +262,10 @@
 uiConditionalOperator =
     lens _uiConditionalOperator (\s a -> s { _uiConditionalOperator = a })
 
--- | There is a newer parameter available. Use / ConditionExpression / instead.
--- Note that if you use /Expected/ and / ConditionExpression / at the same time,
--- DynamoDB will return a /ValidationException/ exception.
+-- | This is a legacy parameter, for backward compatibility. New applications
+-- should use / ConditionExpression / instead. Do not combine legacy parameters
+-- and expression parameters in a single API call; otherwise, DynamoDB will
+-- return a /ValidationException/ exception.
 --
 -- A map of attribute/condition pairs. /Expected/ provides a conditional block
 -- for the /UpdateItem/ operation.
@@ -469,9 +474,8 @@
 -- 'Percentile'
 --
 -- The name of this attribute conflicts with a reserved word, so it cannot be
--- used directly in an expression. (For the complete list of reserved words, go
--- to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around
--- this, you could specify the following for /ExpressionAttributeNames/:
+-- used directly in an expression. (For the complete list of reserved words, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ReservedWords.html Reserved Words> in the /Amazon DynamoDB Developer Guide/). To work around this,
+-- you could specify the following for /ExpressionAttributeNames/:
 --
 -- '{"#P":"Percentile"}'
 --
@@ -482,7 +486,7 @@
 -- Tokens that begin with the : character are /expression attribute values/,
 -- which are placeholders for the actual value at runtime.
 --
--- For more information on expression attribute names, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.AccessingItemAttributes.html Accessing ItemAttributes> in the /Amazon DynamoDB Developer Guide/.
+-- For more information on expression attribute names, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ExpressionPlaceholders.html Using Placeholdersfor Attribute Names and Values> in the /Amazon DynamoDB Developer Guide/.
 uiExpressionAttributeNames :: Lens' UpdateItem (HashMap Text Text)
 uiExpressionAttributeNames =
     lens _uiExpressionAttributeNames
@@ -504,7 +508,7 @@
 --
 -- 'ProductStatus IN (:avail, :back, :disc)'
 --
--- For more information on expression attribute values, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html SpecifyingConditions> in the /Amazon DynamoDB Developer Guide/.
+-- For more information on expression attribute values, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.ExpressionPlaceholders.html Using Placeholdersfor Attribute Names and Values> in the /Amazon DynamoDB Developer Guide/.
 uiExpressionAttributeValues :: Lens' UpdateItem (HashMap Text AttributeValue)
 uiExpressionAttributeValues =
     lens _uiExpressionAttributeValues
@@ -622,7 +626,10 @@
 --
 -- You can have many actions in a single expression, such as the following: 'SET a=:value1, b=:value2 DELETE :value3, :value4, :value5'
 --
--- For more information on update expressions, go to <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html Modifying Items andAttributes> in the /Amazon DynamoDB Developer Guide/.
+-- For more information on update expressions, see <http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.Modifying.html Modifying Items andAttributes> in the /Amazon DynamoDB Developer Guide/.
+--
+-- /UpdateExpression/ replaces the legacy /AttributeUpdates/ parameter.
+--
 uiUpdateExpression :: Lens' UpdateItem (Maybe Text)
 uiUpdateExpression =
     lens _uiUpdateExpression (\s a -> s { _uiUpdateExpression = a })
