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-workspaces.cabal b/amazonka-workspaces.cabal
--- a/amazonka-workspaces.cabal
+++ b/amazonka-workspaces.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-workspaces
-version:               1.1.0
+version:               1.2.0
 synopsis:              Amazon WorkSpaces SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -60,7 +60,7 @@
         , Network.AWS.WorkSpaces.Types.Sum
 
     build-depends:
-          amazonka-core == 1.1.0.*
+          amazonka-core == 1.2.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-workspaces-test
@@ -79,9 +79,9 @@
         , Test.AWS.WorkSpaces.Internal
 
     build-depends:
-          amazonka-core == 1.1.0
-        , amazonka-test == 1.1.0
-        , amazonka-workspaces == 1.1.0
+          amazonka-core == 1.2.0
+        , amazonka-test == 1.2.0
+        , amazonka-workspaces == 1.2.0
         , base
         , bytestring
         , lens
diff --git a/gen/Network/AWS/WorkSpaces.hs b/gen/Network/AWS/WorkSpaces.hs
--- a/gen/Network/AWS/WorkSpaces.hs
+++ b/gen/Network/AWS/WorkSpaces.hs
@@ -20,8 +20,8 @@
 -- /See:/ <http://docs.aws.amazon.com/workspaces/latest/devguide/welcome.html AWS API Reference>
 module Network.AWS.WorkSpaces
     (
-    -- * Service
-      WorkSpaces
+    -- * Service Configuration
+      workSpaces
 
     -- * Errors
     -- $errors
diff --git a/gen/Network/AWS/WorkSpaces/CreateWorkspaces.hs b/gen/Network/AWS/WorkSpaces/CreateWorkspaces.hs
--- a/gen/Network/AWS/WorkSpaces/CreateWorkspaces.hs
+++ b/gen/Network/AWS/WorkSpaces/CreateWorkspaces.hs
@@ -72,9 +72,8 @@
 cwWorkspaces = lens _cwWorkspaces (\ s a -> s{_cwWorkspaces = a}) . _List1;
 
 instance AWSRequest CreateWorkspaces where
-        type Sv CreateWorkspaces = WorkSpaces
         type Rs CreateWorkspaces = CreateWorkspacesResponse
-        request = postJSON
+        request = postJSON workSpaces
         response
           = receiveJSON
               (\ s h x ->
@@ -94,7 +93,8 @@
 
 instance ToJSON CreateWorkspaces where
         toJSON CreateWorkspaces'{..}
-          = object ["Workspaces" .= _cwWorkspaces]
+          = object
+              (catMaybes [Just ("Workspaces" .= _cwWorkspaces)])
 
 instance ToPath CreateWorkspaces where
         toPath = const "/"
diff --git a/gen/Network/AWS/WorkSpaces/DescribeWorkspaceBundles.hs b/gen/Network/AWS/WorkSpaces/DescribeWorkspaceBundles.hs
--- a/gen/Network/AWS/WorkSpaces/DescribeWorkspaceBundles.hs
+++ b/gen/Network/AWS/WorkSpaces/DescribeWorkspaceBundles.hs
@@ -105,10 +105,9 @@
 dwbNextToken = lens _dwbNextToken (\ s a -> s{_dwbNextToken = a});
 
 instance AWSRequest DescribeWorkspaceBundles where
-        type Sv DescribeWorkspaceBundles = WorkSpaces
         type Rs DescribeWorkspaceBundles =
              DescribeWorkspaceBundlesResponse
-        request = postJSON
+        request = postJSON workSpaces
         response
           = receiveJSON
               (\ s h x ->
@@ -129,8 +128,10 @@
 instance ToJSON DescribeWorkspaceBundles where
         toJSON DescribeWorkspaceBundles'{..}
           = object
-              ["BundleIds" .= _dwbBundleIds, "Owner" .= _dwbOwner,
-               "NextToken" .= _dwbNextToken]
+              (catMaybes
+                 [("BundleIds" .=) <$> _dwbBundleIds,
+                  ("Owner" .=) <$> _dwbOwner,
+                  ("NextToken" .=) <$> _dwbNextToken])
 
 instance ToPath DescribeWorkspaceBundles where
         toPath = const "/"
diff --git a/gen/Network/AWS/WorkSpaces/DescribeWorkspaceDirectories.hs b/gen/Network/AWS/WorkSpaces/DescribeWorkspaceDirectories.hs
--- a/gen/Network/AWS/WorkSpaces/DescribeWorkspaceDirectories.hs
+++ b/gen/Network/AWS/WorkSpaces/DescribeWorkspaceDirectories.hs
@@ -87,10 +87,9 @@
 
 instance AWSRequest DescribeWorkspaceDirectories
          where
-        type Sv DescribeWorkspaceDirectories = WorkSpaces
         type Rs DescribeWorkspaceDirectories =
              DescribeWorkspaceDirectoriesResponse
-        request = postJSON
+        request = postJSON workSpaces
         response
           = receiveJSON
               (\ s h x ->
@@ -112,8 +111,9 @@
 instance ToJSON DescribeWorkspaceDirectories where
         toJSON DescribeWorkspaceDirectories'{..}
           = object
-              ["NextToken" .= _dwdNextToken,
-               "DirectoryIds" .= _dwdDirectoryIds]
+              (catMaybes
+                 [("NextToken" .=) <$> _dwdNextToken,
+                  ("DirectoryIds" .=) <$> _dwdDirectoryIds])
 
 instance ToPath DescribeWorkspaceDirectories where
         toPath = const "/"
diff --git a/gen/Network/AWS/WorkSpaces/DescribeWorkspaces.hs b/gen/Network/AWS/WorkSpaces/DescribeWorkspaces.hs
--- a/gen/Network/AWS/WorkSpaces/DescribeWorkspaces.hs
+++ b/gen/Network/AWS/WorkSpaces/DescribeWorkspaces.hs
@@ -135,10 +135,9 @@
 dwLimit = lens _dwLimit (\ s a -> s{_dwLimit = a}) . mapping _Nat;
 
 instance AWSRequest DescribeWorkspaces where
-        type Sv DescribeWorkspaces = WorkSpaces
         type Rs DescribeWorkspaces =
              DescribeWorkspacesResponse
-        request = postJSON
+        request = postJSON workSpaces
         response
           = receiveJSON
               (\ s h x ->
@@ -160,10 +159,13 @@
 instance ToJSON DescribeWorkspaces where
         toJSON DescribeWorkspaces'{..}
           = object
-              ["DirectoryId" .= _dwDirectoryId,
-               "WorkspaceIds" .= _dwWorkspaceIds,
-               "UserName" .= _dwUserName, "BundleId" .= _dwBundleId,
-               "NextToken" .= _dwNextToken, "Limit" .= _dwLimit]
+              (catMaybes
+                 [("DirectoryId" .=) <$> _dwDirectoryId,
+                  ("WorkspaceIds" .=) <$> _dwWorkspaceIds,
+                  ("UserName" .=) <$> _dwUserName,
+                  ("BundleId" .=) <$> _dwBundleId,
+                  ("NextToken" .=) <$> _dwNextToken,
+                  ("Limit" .=) <$> _dwLimit])
 
 instance ToPath DescribeWorkspaces where
         toPath = const "/"
diff --git a/gen/Network/AWS/WorkSpaces/RebootWorkspaces.hs b/gen/Network/AWS/WorkSpaces/RebootWorkspaces.hs
--- a/gen/Network/AWS/WorkSpaces/RebootWorkspaces.hs
+++ b/gen/Network/AWS/WorkSpaces/RebootWorkspaces.hs
@@ -74,9 +74,8 @@
 rwRebootWorkspaceRequests = lens _rwRebootWorkspaceRequests (\ s a -> s{_rwRebootWorkspaceRequests = a}) . _List1;
 
 instance AWSRequest RebootWorkspaces where
-        type Sv RebootWorkspaces = WorkSpaces
         type Rs RebootWorkspaces = RebootWorkspacesResponse
-        request = postJSON
+        request = postJSON workSpaces
         response
           = receiveJSON
               (\ s h x ->
@@ -96,8 +95,10 @@
 instance ToJSON RebootWorkspaces where
         toJSON RebootWorkspaces'{..}
           = object
-              ["RebootWorkspaceRequests" .=
-                 _rwRebootWorkspaceRequests]
+              (catMaybes
+                 [Just
+                    ("RebootWorkspaceRequests" .=
+                       _rwRebootWorkspaceRequests)])
 
 instance ToPath RebootWorkspaces where
         toPath = const "/"
diff --git a/gen/Network/AWS/WorkSpaces/RebuildWorkspaces.hs b/gen/Network/AWS/WorkSpaces/RebuildWorkspaces.hs
--- a/gen/Network/AWS/WorkSpaces/RebuildWorkspaces.hs
+++ b/gen/Network/AWS/WorkSpaces/RebuildWorkspaces.hs
@@ -88,9 +88,8 @@
 rwRebuildWorkspaceRequests = lens _rwRebuildWorkspaceRequests (\ s a -> s{_rwRebuildWorkspaceRequests = a}) . _List1;
 
 instance AWSRequest RebuildWorkspaces where
-        type Sv RebuildWorkspaces = WorkSpaces
         type Rs RebuildWorkspaces = RebuildWorkspacesResponse
-        request = postJSON
+        request = postJSON workSpaces
         response
           = receiveJSON
               (\ s h x ->
@@ -111,8 +110,10 @@
 instance ToJSON RebuildWorkspaces where
         toJSON RebuildWorkspaces'{..}
           = object
-              ["RebuildWorkspaceRequests" .=
-                 _rwRebuildWorkspaceRequests]
+              (catMaybes
+                 [Just
+                    ("RebuildWorkspaceRequests" .=
+                       _rwRebuildWorkspaceRequests)])
 
 instance ToPath RebuildWorkspaces where
         toPath = const "/"
diff --git a/gen/Network/AWS/WorkSpaces/TerminateWorkspaces.hs b/gen/Network/AWS/WorkSpaces/TerminateWorkspaces.hs
--- a/gen/Network/AWS/WorkSpaces/TerminateWorkspaces.hs
+++ b/gen/Network/AWS/WorkSpaces/TerminateWorkspaces.hs
@@ -78,10 +78,9 @@
 twTerminateWorkspaceRequests = lens _twTerminateWorkspaceRequests (\ s a -> s{_twTerminateWorkspaceRequests = a}) . _List1;
 
 instance AWSRequest TerminateWorkspaces where
-        type Sv TerminateWorkspaces = WorkSpaces
         type Rs TerminateWorkspaces =
              TerminateWorkspacesResponse
-        request = postJSON
+        request = postJSON workSpaces
         response
           = receiveJSON
               (\ s h x ->
@@ -102,8 +101,10 @@
 instance ToJSON TerminateWorkspaces where
         toJSON TerminateWorkspaces'{..}
           = object
-              ["TerminateWorkspaceRequests" .=
-                 _twTerminateWorkspaceRequests]
+              (catMaybes
+                 [Just
+                    ("TerminateWorkspaceRequests" .=
+                       _twTerminateWorkspaceRequests)])
 
 instance ToPath TerminateWorkspaces where
         toPath = const "/"
diff --git a/gen/Network/AWS/WorkSpaces/Types.hs b/gen/Network/AWS/WorkSpaces/Types.hs
--- a/gen/Network/AWS/WorkSpaces/Types.hs
+++ b/gen/Network/AWS/WorkSpaces/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.WorkSpaces.Types
     (
-    -- * Service
-      WorkSpaces
+    -- * Service Configuration
+      workSpaces
 
     -- * Errors
     , _InvalidParameterValuesException
@@ -133,39 +132,36 @@
 import           Network.AWS.WorkSpaces.Types.Product
 import           Network.AWS.WorkSpaces.Types.Sum
 
--- | Version @2015-04-08@ of the Amazon WorkSpaces SDK.
-data WorkSpaces
-
-instance AWSService WorkSpaces where
-    type Sg WorkSpaces = V4
-    service = const svc
-      where
-        svc =
-            Service
-            { _svcAbbrev = "WorkSpaces"
-            , _svcPrefix = "workspaces"
-            , _svcVersion = "2015-04-08"
-            , _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 '2015-04-08' of the Amazon WorkSpaces SDK configuration.
+workSpaces :: Service
+workSpaces =
+    Service
+    { _svcAbbrev = "WorkSpaces"
+    , _svcSigner = v4
+    , _svcPrefix = "workspaces"
+    , _svcVersion = "2015-04-08"
+    , _svcEndpoint = defaultEndpoint workSpaces
+    , _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
 
 -- | One or more parameter values are not valid.
 _InvalidParameterValuesException :: AsError a => Getting (First ServiceError) a ServiceError
diff --git a/gen/Network/AWS/WorkSpaces/Types/Product.hs b/gen/Network/AWS/WorkSpaces/Types/Product.hs
--- a/gen/Network/AWS/WorkSpaces/Types/Product.hs
+++ b/gen/Network/AWS/WorkSpaces/Types/Product.hs
@@ -2,7 +2,6 @@
 {-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE OverloadedStrings  #-}
 {-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
 
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
@@ -243,7 +242,8 @@
 
 instance ToJSON RebootRequest where
         toJSON RebootRequest'{..}
-          = object ["WorkspaceId" .= _rWorkspaceId]
+          = object
+              (catMaybes [Just ("WorkspaceId" .= _rWorkspaceId)])
 
 -- | Contains information used with the RebuildWorkspaces operation to
 -- rebuild a WorkSpace.
@@ -272,7 +272,8 @@
 
 instance ToJSON RebuildRequest where
         toJSON RebuildRequest'{..}
-          = object ["WorkspaceId" .= _rrWorkspaceId]
+          = object
+              (catMaybes [Just ("WorkspaceId" .= _rrWorkspaceId)])
 
 -- | Contains information used with the TerminateWorkspaces operation to
 -- terminate a WorkSpace.
@@ -301,7 +302,8 @@
 
 instance ToJSON TerminateRequest where
         toJSON TerminateRequest'{..}
-          = object ["WorkspaceId" .= _trWorkspaceId]
+          = object
+              (catMaybes [Just ("WorkspaceId" .= _trWorkspaceId)])
 
 -- | Contains information about the user storage for a WorkSpace bundle.
 --
@@ -705,5 +707,7 @@
 instance ToJSON WorkspaceRequest where
         toJSON WorkspaceRequest'{..}
           = object
-              ["DirectoryId" .= _wrDirectoryId,
-               "UserName" .= _wrUserName, "BundleId" .= _wrBundleId]
+              (catMaybes
+                 [Just ("DirectoryId" .= _wrDirectoryId),
+                  Just ("UserName" .= _wrUserName),
+                  Just ("BundleId" .= _wrBundleId)])
diff --git a/test/Test/AWS/Gen/WorkSpaces.hs b/test/Test/AWS/Gen/WorkSpaces.hs
--- a/test/Test/AWS/Gen/WorkSpaces.hs
+++ b/test/Test/AWS/Gen/WorkSpaces.hs
@@ -119,40 +119,47 @@
 testDescribeWorkspaceDirectoriesResponse = res
     "DescribeWorkspaceDirectoriesResponse"
     "fixture/DescribeWorkspaceDirectoriesResponse"
+    workSpaces
     (Proxy :: Proxy DescribeWorkspaceDirectories)
 
 testDescribeWorkspaceBundlesResponse :: DescribeWorkspaceBundlesResponse -> TestTree
 testDescribeWorkspaceBundlesResponse = res
     "DescribeWorkspaceBundlesResponse"
     "fixture/DescribeWorkspaceBundlesResponse"
+    workSpaces
     (Proxy :: Proxy DescribeWorkspaceBundles)
 
 testRebuildWorkspacesResponse :: RebuildWorkspacesResponse -> TestTree
 testRebuildWorkspacesResponse = res
     "RebuildWorkspacesResponse"
     "fixture/RebuildWorkspacesResponse"
+    workSpaces
     (Proxy :: Proxy RebuildWorkspaces)
 
 testRebootWorkspacesResponse :: RebootWorkspacesResponse -> TestTree
 testRebootWorkspacesResponse = res
     "RebootWorkspacesResponse"
     "fixture/RebootWorkspacesResponse"
+    workSpaces
     (Proxy :: Proxy RebootWorkspaces)
 
 testTerminateWorkspacesResponse :: TerminateWorkspacesResponse -> TestTree
 testTerminateWorkspacesResponse = res
     "TerminateWorkspacesResponse"
     "fixture/TerminateWorkspacesResponse"
+    workSpaces
     (Proxy :: Proxy TerminateWorkspaces)
 
 testCreateWorkspacesResponse :: CreateWorkspacesResponse -> TestTree
 testCreateWorkspacesResponse = res
     "CreateWorkspacesResponse"
     "fixture/CreateWorkspacesResponse"
+    workSpaces
     (Proxy :: Proxy CreateWorkspaces)
 
 testDescribeWorkspacesResponse :: DescribeWorkspacesResponse -> TestTree
 testDescribeWorkspacesResponse = res
     "DescribeWorkspacesResponse"
     "fixture/DescribeWorkspacesResponse"
+    workSpaces
     (Proxy :: Proxy DescribeWorkspaces)
