diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`1.1.0`
+`1.2.0`
 
 
 ## Description
diff --git a/amazonka-dynamodb-streams.cabal b/amazonka-dynamodb-streams.cabal
--- a/amazonka-dynamodb-streams.cabal
+++ b/amazonka-dynamodb-streams.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-dynamodb-streams
-version:               1.1.0
+version:               1.2.0
 synopsis:              Amazon DynamoDB Streams SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -80,7 +80,7 @@
         , Network.AWS.DynamoDBStreams.Types.Sum
 
     build-depends:
-          amazonka-core == 1.1.0.*
+          amazonka-core == 1.2.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-dynamodb-streams-test
@@ -99,9 +99,9 @@
         , Test.AWS.DynamoDBStreams.Internal
 
     build-depends:
-          amazonka-core == 1.1.0
-        , amazonka-test == 1.1.0
-        , amazonka-dynamodb-streams == 1.1.0
+          amazonka-core == 1.2.0
+        , amazonka-test == 1.2.0
+        , amazonka-dynamodb-streams == 1.2.0
         , base
         , bytestring
         , lens
diff --git a/gen/Network/AWS/DynamoDBStreams.hs b/gen/Network/AWS/DynamoDBStreams.hs
--- a/gen/Network/AWS/DynamoDBStreams.hs
+++ b/gen/Network/AWS/DynamoDBStreams.hs
@@ -44,8 +44,8 @@
 -- /See:/ <http://dynamodb-preview.s3-website-us-west-2.amazonaws.com/docs/streams-api/Welcome.html AWS API Reference>
 module Network.AWS.DynamoDBStreams
     (
-    -- * Service
-      DynamoDBStreams
+    -- * Service Configuration
+      dynamoDBStreams
 
     -- * Errors
     -- $errors
diff --git a/gen/Network/AWS/DynamoDBStreams/DescribeStream.hs b/gen/Network/AWS/DynamoDBStreams/DescribeStream.hs
--- a/gen/Network/AWS/DynamoDBStreams/DescribeStream.hs
+++ b/gen/Network/AWS/DynamoDBStreams/DescribeStream.hs
@@ -99,9 +99,8 @@
 dsStreamARN = lens _dsStreamARN (\ s a -> s{_dsStreamARN = a});
 
 instance AWSRequest DescribeStream where
-        type Sv DescribeStream = DynamoDBStreams
         type Rs DescribeStream = DescribeStreamResponse
-        request = postJSON
+        request = postJSON dynamoDBStreams
         response
           = receiveJSON
               (\ s h x ->
@@ -121,8 +120,11 @@
 instance ToJSON DescribeStream where
         toJSON DescribeStream'{..}
           = object
-              ["ExclusiveStartShardId" .= _dsExclusiveStartShardId,
-               "Limit" .= _dsLimit, "StreamArn" .= _dsStreamARN]
+              (catMaybes
+                 [("ExclusiveStartShardId" .=) <$>
+                    _dsExclusiveStartShardId,
+                  ("Limit" .=) <$> _dsLimit,
+                  Just ("StreamArn" .= _dsStreamARN)])
 
 instance ToPath DescribeStream where
         toPath = const "/"
diff --git a/gen/Network/AWS/DynamoDBStreams/GetRecords.hs b/gen/Network/AWS/DynamoDBStreams/GetRecords.hs
--- a/gen/Network/AWS/DynamoDBStreams/GetRecords.hs
+++ b/gen/Network/AWS/DynamoDBStreams/GetRecords.hs
@@ -91,9 +91,8 @@
 grShardIterator = lens _grShardIterator (\ s a -> s{_grShardIterator = a});
 
 instance AWSRequest GetRecords where
-        type Sv GetRecords = DynamoDBStreams
         type Rs GetRecords = GetRecordsResponse
-        request = postJSON
+        request = postJSON dynamoDBStreams
         response
           = receiveJSON
               (\ s h x ->
@@ -115,8 +114,9 @@
 instance ToJSON GetRecords where
         toJSON GetRecords'{..}
           = object
-              ["Limit" .= _grLimit,
-               "ShardIterator" .= _grShardIterator]
+              (catMaybes
+                 [("Limit" .=) <$> _grLimit,
+                  Just ("ShardIterator" .= _grShardIterator)])
 
 instance ToPath GetRecords where
         toPath = const "/"
diff --git a/gen/Network/AWS/DynamoDBStreams/GetShardIterator.hs b/gen/Network/AWS/DynamoDBStreams/GetShardIterator.hs
--- a/gen/Network/AWS/DynamoDBStreams/GetShardIterator.hs
+++ b/gen/Network/AWS/DynamoDBStreams/GetShardIterator.hs
@@ -123,9 +123,8 @@
 gsiShardIteratorType = lens _gsiShardIteratorType (\ s a -> s{_gsiShardIteratorType = a});
 
 instance AWSRequest GetShardIterator where
-        type Sv GetShardIterator = DynamoDBStreams
         type Rs GetShardIterator = GetShardIteratorResponse
-        request = postJSON
+        request = postJSON dynamoDBStreams
         response
           = receiveJSON
               (\ s h x ->
@@ -145,10 +144,11 @@
 instance ToJSON GetShardIterator where
         toJSON GetShardIterator'{..}
           = object
-              ["SequenceNumber" .= _gsiSequenceNumber,
-               "StreamArn" .= _gsiStreamARN,
-               "ShardId" .= _gsiShardId,
-               "ShardIteratorType" .= _gsiShardIteratorType]
+              (catMaybes
+                 [("SequenceNumber" .=) <$> _gsiSequenceNumber,
+                  Just ("StreamArn" .= _gsiStreamARN),
+                  Just ("ShardId" .= _gsiShardId),
+                  Just ("ShardIteratorType" .= _gsiShardIteratorType)])
 
 instance ToPath GetShardIterator where
         toPath = const "/"
diff --git a/gen/Network/AWS/DynamoDBStreams/ListStreams.hs b/gen/Network/AWS/DynamoDBStreams/ListStreams.hs
--- a/gen/Network/AWS/DynamoDBStreams/ListStreams.hs
+++ b/gen/Network/AWS/DynamoDBStreams/ListStreams.hs
@@ -93,9 +93,8 @@
 lsTableName = lens _lsTableName (\ s a -> s{_lsTableName = a});
 
 instance AWSRequest ListStreams where
-        type Sv ListStreams = DynamoDBStreams
         type Rs ListStreams = ListStreamsResponse
-        request = postJSON
+        request = postJSON dynamoDBStreams
         response
           = receiveJSON
               (\ s h x ->
@@ -117,9 +116,11 @@
 instance ToJSON ListStreams where
         toJSON ListStreams'{..}
           = object
-              ["ExclusiveStartStreamArn" .=
-                 _lsExclusiveStartStreamARN,
-               "Limit" .= _lsLimit, "TableName" .= _lsTableName]
+              (catMaybes
+                 [("ExclusiveStartStreamArn" .=) <$>
+                    _lsExclusiveStartStreamARN,
+                  ("Limit" .=) <$> _lsLimit,
+                  ("TableName" .=) <$> _lsTableName])
 
 instance ToPath ListStreams where
         toPath = const "/"
diff --git a/gen/Network/AWS/DynamoDBStreams/Types.hs b/gen/Network/AWS/DynamoDBStreams/Types.hs
--- a/gen/Network/AWS/DynamoDBStreams/Types.hs
+++ b/gen/Network/AWS/DynamoDBStreams/Types.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE TypeFamilies      #-}
 
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
@@ -13,8 +12,8 @@
 --
 module Network.AWS.DynamoDBStreams.Types
     (
-    -- * Service
-      DynamoDBStreams
+    -- * Service Configuration
+      dynamoDBStreams
 
     -- * Errors
     , _ExpiredIteratorException
@@ -117,39 +116,36 @@
 import           Network.AWS.Prelude
 import           Network.AWS.Sign.V4
 
--- | Version @2012-08-10@ of the Amazon DynamoDB Streams SDK.
-data DynamoDBStreams
-
-instance AWSService DynamoDBStreams where
-    type Sg DynamoDBStreams = V4
-    service = const svc
-      where
-        svc =
-            Service
-            { _svcAbbrev = "DynamoDBStreams"
-            , _svcPrefix = "streams.dynamodb"
-            , _svcVersion = "2012-08-10"
-            , _svcEndpoint = defaultEndpoint svc
-            , _svcTimeout = Just 70
-            , _svcStatus = statusSuccess
-            , _svcError = parseJSONError
-            , _svcRetry = retry
-            }
-        retry =
-            Exponential
-            { _retryBase = 5.0e-2
-            , _retryGrowth = 2
-            , _retryAttempts = 5
-            , _retryCheck = check
-            }
-        check e
-          | has (hasCode "ThrottlingException" . hasStatus 400) e =
-              Just "throttling_exception"
-          | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
-          | has (hasStatus 503) e = Just "service_unavailable"
-          | has (hasStatus 500) e = Just "general_server_error"
-          | has (hasStatus 509) e = Just "limit_exceeded"
-          | otherwise = Nothing
+-- | API version '2012-08-10' of the Amazon DynamoDB Streams SDK configuration.
+dynamoDBStreams :: Service
+dynamoDBStreams =
+    Service
+    { _svcAbbrev = "DynamoDBStreams"
+    , _svcSigner = v4
+    , _svcPrefix = "streams.dynamodb"
+    , _svcVersion = "2012-08-10"
+    , _svcEndpoint = defaultEndpoint dynamoDBStreams
+    , _svcTimeout = Just 70
+    , _svcCheck = statusSuccess
+    , _svcError = parseJSONError
+    , _svcRetry = retry
+    }
+  where
+    retry =
+        Exponential
+        { _retryBase = 5.0e-2
+        , _retryGrowth = 2
+        , _retryAttempts = 5
+        , _retryCheck = check
+        }
+    check e
+      | has (hasCode "ThrottlingException" . hasStatus 400) e =
+          Just "throttling_exception"
+      | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
+      | has (hasStatus 503) e = Just "service_unavailable"
+      | has (hasStatus 500) e = Just "general_server_error"
+      | has (hasStatus 509) e = Just "limit_exceeded"
+      | otherwise = Nothing
 
 -- | The shard iterator has expired and can no longer be used to retrieve
 -- stream records. A shard iterator expires 15 minutes after it is
diff --git a/gen/Network/AWS/DynamoDBStreams/Types/Product.hs b/gen/Network/AWS/DynamoDBStreams/Types/Product.hs
--- a/gen/Network/AWS/DynamoDBStreams/Types/Product.hs
+++ b/gen/Network/AWS/DynamoDBStreams/Types/Product.hs
@@ -2,7 +2,6 @@
 {-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE OverloadedStrings  #-}
 {-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
 
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
diff --git a/test/Test/AWS/Gen/DynamoDBStreams.hs b/test/Test/AWS/Gen/DynamoDBStreams.hs
--- a/test/Test/AWS/Gen/DynamoDBStreams.hs
+++ b/test/Test/AWS/Gen/DynamoDBStreams.hs
@@ -86,22 +86,26 @@
 testGetRecordsResponse = res
     "GetRecordsResponse"
     "fixture/GetRecordsResponse"
+    dynamoDBStreams
     (Proxy :: Proxy GetRecords)
 
 testGetShardIteratorResponse :: GetShardIteratorResponse -> TestTree
 testGetShardIteratorResponse = res
     "GetShardIteratorResponse"
     "fixture/GetShardIteratorResponse"
+    dynamoDBStreams
     (Proxy :: Proxy GetShardIterator)
 
 testListStreamsResponse :: ListStreamsResponse -> TestTree
 testListStreamsResponse = res
     "ListStreamsResponse"
     "fixture/ListStreamsResponse"
+    dynamoDBStreams
     (Proxy :: Proxy ListStreams)
 
 testDescribeStreamResponse :: DescribeStreamResponse -> TestTree
 testDescribeStreamResponse = res
     "DescribeStreamResponse"
     "fixture/DescribeStreamResponse"
+    dynamoDBStreams
     (Proxy :: Proxy DescribeStream)
