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-route53-domains.cabal b/amazonka-route53-domains.cabal
--- a/amazonka-route53-domains.cabal
+++ b/amazonka-route53-domains.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-route53-domains
-version:               1.1.0
+version:               1.2.0
 synopsis:              Amazon Route 53 Domains SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -67,7 +67,7 @@
         , Network.AWS.Route53Domains.Types.Sum
 
     build-depends:
-          amazonka-core == 1.1.0.*
+          amazonka-core == 1.2.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-route53-domains-test
@@ -86,9 +86,9 @@
         , Test.AWS.Route53Domains.Internal
 
     build-depends:
-          amazonka-core == 1.1.0
-        , amazonka-test == 1.1.0
-        , amazonka-route53-domains == 1.1.0
+          amazonka-core == 1.2.0
+        , amazonka-test == 1.2.0
+        , amazonka-route53-domains == 1.2.0
         , base
         , bytestring
         , lens
diff --git a/gen/Network/AWS/Route53Domains.hs b/gen/Network/AWS/Route53Domains.hs
--- a/gen/Network/AWS/Route53Domains.hs
+++ b/gen/Network/AWS/Route53Domains.hs
@@ -16,8 +16,8 @@
 -- /See:/ <http://docs.aws.amazon.com/Route53/latest/APIReference/actions-on-domain-registrations.html AWS API Reference>
 module Network.AWS.Route53Domains
     (
-    -- * Service
-      Route53Domains
+    -- * Service Configuration
+      route53Domains
 
     -- * Errors
     -- $errors
diff --git a/gen/Network/AWS/Route53Domains/CheckDomainAvailability.hs b/gen/Network/AWS/Route53Domains/CheckDomainAvailability.hs
--- a/gen/Network/AWS/Route53Domains/CheckDomainAvailability.hs
+++ b/gen/Network/AWS/Route53Domains/CheckDomainAvailability.hs
@@ -90,10 +90,9 @@
 cdaDomainName = lens _cdaDomainName (\ s a -> s{_cdaDomainName = a});
 
 instance AWSRequest CheckDomainAvailability where
-        type Sv CheckDomainAvailability = Route53Domains
         type Rs CheckDomainAvailability =
              CheckDomainAvailabilityResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -113,8 +112,9 @@
 instance ToJSON CheckDomainAvailability where
         toJSON CheckDomainAvailability'{..}
           = object
-              ["IdnLangCode" .= _cdaIdNLangCode,
-               "DomainName" .= _cdaDomainName]
+              (catMaybes
+                 [("IdnLangCode" .=) <$> _cdaIdNLangCode,
+                  Just ("DomainName" .= _cdaDomainName)])
 
 instance ToPath CheckDomainAvailability where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/DeleteTagsForDomain.hs b/gen/Network/AWS/Route53Domains/DeleteTagsForDomain.hs
--- a/gen/Network/AWS/Route53Domains/DeleteTagsForDomain.hs
+++ b/gen/Network/AWS/Route53Domains/DeleteTagsForDomain.hs
@@ -101,10 +101,9 @@
 dtfdTagsToDelete = lens _dtfdTagsToDelete (\ s a -> s{_dtfdTagsToDelete = a}) . _Coerce;
 
 instance AWSRequest DeleteTagsForDomain where
-        type Sv DeleteTagsForDomain = Route53Domains
         type Rs DeleteTagsForDomain =
              DeleteTagsForDomainResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveEmpty
               (\ s h x ->
@@ -123,8 +122,9 @@
 instance ToJSON DeleteTagsForDomain where
         toJSON DeleteTagsForDomain'{..}
           = object
-              ["DomainName" .= _dtfdDomainName,
-               "TagsToDelete" .= _dtfdTagsToDelete]
+              (catMaybes
+                 [Just ("DomainName" .= _dtfdDomainName),
+                  Just ("TagsToDelete" .= _dtfdTagsToDelete)])
 
 instance ToPath DeleteTagsForDomain where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/DisableDomainAutoRenew.hs b/gen/Network/AWS/Route53Domains/DisableDomainAutoRenew.hs
--- a/gen/Network/AWS/Route53Domains/DisableDomainAutoRenew.hs
+++ b/gen/Network/AWS/Route53Domains/DisableDomainAutoRenew.hs
@@ -71,10 +71,9 @@
 ddarDomainName = lens _ddarDomainName (\ s a -> s{_ddarDomainName = a});
 
 instance AWSRequest DisableDomainAutoRenew where
-        type Sv DisableDomainAutoRenew = Route53Domains
         type Rs DisableDomainAutoRenew =
              DisableDomainAutoRenewResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveEmpty
               (\ s h x ->
@@ -93,7 +92,8 @@
 
 instance ToJSON DisableDomainAutoRenew where
         toJSON DisableDomainAutoRenew'{..}
-          = object ["DomainName" .= _ddarDomainName]
+          = object
+              (catMaybes [Just ("DomainName" .= _ddarDomainName)])
 
 instance ToPath DisableDomainAutoRenew where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/DisableDomainTransferLock.hs b/gen/Network/AWS/Route53Domains/DisableDomainTransferLock.hs
--- a/gen/Network/AWS/Route53Domains/DisableDomainTransferLock.hs
+++ b/gen/Network/AWS/Route53Domains/DisableDomainTransferLock.hs
@@ -84,10 +84,9 @@
 ddtlDomainName = lens _ddtlDomainName (\ s a -> s{_ddtlDomainName = a});
 
 instance AWSRequest DisableDomainTransferLock where
-        type Sv DisableDomainTransferLock = Route53Domains
         type Rs DisableDomainTransferLock =
              DisableDomainTransferLockResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -106,7 +105,8 @@
 
 instance ToJSON DisableDomainTransferLock where
         toJSON DisableDomainTransferLock'{..}
-          = object ["DomainName" .= _ddtlDomainName]
+          = object
+              (catMaybes [Just ("DomainName" .= _ddtlDomainName)])
 
 instance ToPath DisableDomainTransferLock where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/EnableDomainAutoRenew.hs b/gen/Network/AWS/Route53Domains/EnableDomainAutoRenew.hs
--- a/gen/Network/AWS/Route53Domains/EnableDomainAutoRenew.hs
+++ b/gen/Network/AWS/Route53Domains/EnableDomainAutoRenew.hs
@@ -74,10 +74,9 @@
 edarDomainName = lens _edarDomainName (\ s a -> s{_edarDomainName = a});
 
 instance AWSRequest EnableDomainAutoRenew where
-        type Sv EnableDomainAutoRenew = Route53Domains
         type Rs EnableDomainAutoRenew =
              EnableDomainAutoRenewResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveEmpty
               (\ s h x ->
@@ -96,7 +95,8 @@
 
 instance ToJSON EnableDomainAutoRenew where
         toJSON EnableDomainAutoRenew'{..}
-          = object ["DomainName" .= _edarDomainName]
+          = object
+              (catMaybes [Just ("DomainName" .= _edarDomainName)])
 
 instance ToPath EnableDomainAutoRenew where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/EnableDomainTransferLock.hs b/gen/Network/AWS/Route53Domains/EnableDomainTransferLock.hs
--- a/gen/Network/AWS/Route53Domains/EnableDomainTransferLock.hs
+++ b/gen/Network/AWS/Route53Domains/EnableDomainTransferLock.hs
@@ -82,10 +82,9 @@
 edtlDomainName = lens _edtlDomainName (\ s a -> s{_edtlDomainName = a});
 
 instance AWSRequest EnableDomainTransferLock where
-        type Sv EnableDomainTransferLock = Route53Domains
         type Rs EnableDomainTransferLock =
              EnableDomainTransferLockResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -104,7 +103,8 @@
 
 instance ToJSON EnableDomainTransferLock where
         toJSON EnableDomainTransferLock'{..}
-          = object ["DomainName" .= _edtlDomainName]
+          = object
+              (catMaybes [Just ("DomainName" .= _edtlDomainName)])
 
 instance ToPath EnableDomainTransferLock where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/GetDomainDetail.hs b/gen/Network/AWS/Route53Domains/GetDomainDetail.hs
--- a/gen/Network/AWS/Route53Domains/GetDomainDetail.hs
+++ b/gen/Network/AWS/Route53Domains/GetDomainDetail.hs
@@ -99,9 +99,8 @@
 gddDomainName = lens _gddDomainName (\ s a -> s{_gddDomainName = a});
 
 instance AWSRequest GetDomainDetail where
-        type Sv GetDomainDetail = Route53Domains
         type Rs GetDomainDetail = GetDomainDetailResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -140,7 +139,8 @@
 
 instance ToJSON GetDomainDetail where
         toJSON GetDomainDetail'{..}
-          = object ["DomainName" .= _gddDomainName]
+          = object
+              (catMaybes [Just ("DomainName" .= _gddDomainName)])
 
 instance ToPath GetDomainDetail where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/GetOperationDetail.hs b/gen/Network/AWS/Route53Domains/GetOperationDetail.hs
--- a/gen/Network/AWS/Route53Domains/GetOperationDetail.hs
+++ b/gen/Network/AWS/Route53Domains/GetOperationDetail.hs
@@ -81,10 +81,9 @@
 godOperationId = lens _godOperationId (\ s a -> s{_godOperationId = a});
 
 instance AWSRequest GetOperationDetail where
-        type Sv GetOperationDetail = Route53Domains
         type Rs GetOperationDetail =
              GetOperationDetailResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -107,7 +106,8 @@
 
 instance ToJSON GetOperationDetail where
         toJSON GetOperationDetail'{..}
-          = object ["OperationId" .= _godOperationId]
+          = object
+              (catMaybes [Just ("OperationId" .= _godOperationId)])
 
 instance ToPath GetOperationDetail where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/ListDomains.hs b/gen/Network/AWS/Route53Domains/ListDomains.hs
--- a/gen/Network/AWS/Route53Domains/ListDomains.hs
+++ b/gen/Network/AWS/Route53Domains/ListDomains.hs
@@ -110,9 +110,8 @@
             Just $ rq & ldMarker .~ rs ^. ldrsNextPageMarker
 
 instance AWSRequest ListDomains where
-        type Sv ListDomains = Route53Domains
         type Rs ListDomains = ListDomainsResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -133,7 +132,9 @@
 instance ToJSON ListDomains where
         toJSON ListDomains'{..}
           = object
-              ["MaxItems" .= _ldMaxItems, "Marker" .= _ldMarker]
+              (catMaybes
+                 [("MaxItems" .=) <$> _ldMaxItems,
+                  ("Marker" .=) <$> _ldMarker])
 
 instance ToPath ListDomains where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/ListOperations.hs b/gen/Network/AWS/Route53Domains/ListOperations.hs
--- a/gen/Network/AWS/Route53Domains/ListOperations.hs
+++ b/gen/Network/AWS/Route53Domains/ListOperations.hs
@@ -107,9 +107,8 @@
             Just $ rq & loMarker .~ rs ^. lorsNextPageMarker
 
 instance AWSRequest ListOperations where
-        type Sv ListOperations = Route53Domains
         type Rs ListOperations = ListOperationsResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -130,7 +129,9 @@
 instance ToJSON ListOperations where
         toJSON ListOperations'{..}
           = object
-              ["MaxItems" .= _loMaxItems, "Marker" .= _loMarker]
+              (catMaybes
+                 [("MaxItems" .=) <$> _loMaxItems,
+                  ("Marker" .=) <$> _loMarker])
 
 instance ToPath ListOperations where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/ListTagsForDomain.hs b/gen/Network/AWS/Route53Domains/ListTagsForDomain.hs
--- a/gen/Network/AWS/Route53Domains/ListTagsForDomain.hs
+++ b/gen/Network/AWS/Route53Domains/ListTagsForDomain.hs
@@ -72,9 +72,8 @@
 ltfdDomainName = lens _ltfdDomainName (\ s a -> s{_ltfdDomainName = a});
 
 instance AWSRequest ListTagsForDomain where
-        type Sv ListTagsForDomain = Route53Domains
         type Rs ListTagsForDomain = ListTagsForDomainResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -93,7 +92,8 @@
 
 instance ToJSON ListTagsForDomain where
         toJSON ListTagsForDomain'{..}
-          = object ["DomainName" .= _ltfdDomainName]
+          = object
+              (catMaybes [Just ("DomainName" .= _ltfdDomainName)])
 
 instance ToPath ListTagsForDomain where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/RegisterDomain.hs b/gen/Network/AWS/Route53Domains/RegisterDomain.hs
--- a/gen/Network/AWS/Route53Domains/RegisterDomain.hs
+++ b/gen/Network/AWS/Route53Domains/RegisterDomain.hs
@@ -262,9 +262,8 @@
 rdTechContact = lens _rdTechContact (\ s a -> s{_rdTechContact = a}) . _Sensitive;
 
 instance AWSRequest RegisterDomain where
-        type Sv RegisterDomain = Route53Domains
         type Rs RegisterDomain = RegisterDomainResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -284,19 +283,20 @@
 instance ToJSON RegisterDomain where
         toJSON RegisterDomain'{..}
           = object
-              ["PrivacyProtectTechContact" .=
-                 _rdPrivacyProtectTechContact,
-               "PrivacyProtectRegistrantContact" .=
-                 _rdPrivacyProtectRegistrantContact,
-               "AutoRenew" .= _rdAutoRenew,
-               "PrivacyProtectAdminContact" .=
-                 _rdPrivacyProtectAdminContact,
-               "IdnLangCode" .= _rdIdNLangCode,
-               "DomainName" .= _rdDomainName,
-               "DurationInYears" .= _rdDurationInYears,
-               "AdminContact" .= _rdAdminContact,
-               "RegistrantContact" .= _rdRegistrantContact,
-               "TechContact" .= _rdTechContact]
+              (catMaybes
+                 [("PrivacyProtectTechContact" .=) <$>
+                    _rdPrivacyProtectTechContact,
+                  ("PrivacyProtectRegistrantContact" .=) <$>
+                    _rdPrivacyProtectRegistrantContact,
+                  ("AutoRenew" .=) <$> _rdAutoRenew,
+                  ("PrivacyProtectAdminContact" .=) <$>
+                    _rdPrivacyProtectAdminContact,
+                  ("IdnLangCode" .=) <$> _rdIdNLangCode,
+                  Just ("DomainName" .= _rdDomainName),
+                  Just ("DurationInYears" .= _rdDurationInYears),
+                  Just ("AdminContact" .= _rdAdminContact),
+                  Just ("RegistrantContact" .= _rdRegistrantContact),
+                  Just ("TechContact" .= _rdTechContact)])
 
 instance ToPath RegisterDomain where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/RetrieveDomainAuthCode.hs b/gen/Network/AWS/Route53Domains/RetrieveDomainAuthCode.hs
--- a/gen/Network/AWS/Route53Domains/RetrieveDomainAuthCode.hs
+++ b/gen/Network/AWS/Route53Domains/RetrieveDomainAuthCode.hs
@@ -79,10 +79,9 @@
 rdacDomainName = lens _rdacDomainName (\ s a -> s{_rdacDomainName = a});
 
 instance AWSRequest RetrieveDomainAuthCode where
-        type Sv RetrieveDomainAuthCode = Route53Domains
         type Rs RetrieveDomainAuthCode =
              RetrieveDomainAuthCodeResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -101,7 +100,8 @@
 
 instance ToJSON RetrieveDomainAuthCode where
         toJSON RetrieveDomainAuthCode'{..}
-          = object ["DomainName" .= _rdacDomainName]
+          = object
+              (catMaybes [Just ("DomainName" .= _rdacDomainName)])
 
 instance ToPath RetrieveDomainAuthCode where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/TransferDomain.hs b/gen/Network/AWS/Route53Domains/TransferDomain.hs
--- a/gen/Network/AWS/Route53Domains/TransferDomain.hs
+++ b/gen/Network/AWS/Route53Domains/TransferDomain.hs
@@ -293,9 +293,8 @@
 tdTechContact = lens _tdTechContact (\ s a -> s{_tdTechContact = a}) . _Sensitive;
 
 instance AWSRequest TransferDomain where
-        type Sv TransferDomain = Route53Domains
         type Rs TransferDomain = TransferDomainResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -315,21 +314,22 @@
 instance ToJSON TransferDomain where
         toJSON TransferDomain'{..}
           = object
-              ["PrivacyProtectTechContact" .=
-                 _tdPrivacyProtectTechContact,
-               "PrivacyProtectRegistrantContact" .=
-                 _tdPrivacyProtectRegistrantContact,
-               "AutoRenew" .= _tdAutoRenew,
-               "PrivacyProtectAdminContact" .=
-                 _tdPrivacyProtectAdminContact,
-               "IdnLangCode" .= _tdIdNLangCode,
-               "AuthCode" .= _tdAuthCode,
-               "Nameservers" .= _tdNameservers,
-               "DomainName" .= _tdDomainName,
-               "DurationInYears" .= _tdDurationInYears,
-               "AdminContact" .= _tdAdminContact,
-               "RegistrantContact" .= _tdRegistrantContact,
-               "TechContact" .= _tdTechContact]
+              (catMaybes
+                 [("PrivacyProtectTechContact" .=) <$>
+                    _tdPrivacyProtectTechContact,
+                  ("PrivacyProtectRegistrantContact" .=) <$>
+                    _tdPrivacyProtectRegistrantContact,
+                  ("AutoRenew" .=) <$> _tdAutoRenew,
+                  ("PrivacyProtectAdminContact" .=) <$>
+                    _tdPrivacyProtectAdminContact,
+                  ("IdnLangCode" .=) <$> _tdIdNLangCode,
+                  ("AuthCode" .=) <$> _tdAuthCode,
+                  ("Nameservers" .=) <$> _tdNameservers,
+                  Just ("DomainName" .= _tdDomainName),
+                  Just ("DurationInYears" .= _tdDurationInYears),
+                  Just ("AdminContact" .= _tdAdminContact),
+                  Just ("RegistrantContact" .= _tdRegistrantContact),
+                  Just ("TechContact" .= _tdTechContact)])
 
 instance ToPath TransferDomain where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/Types.hs b/gen/Network/AWS/Route53Domains/Types.hs
--- a/gen/Network/AWS/Route53Domains/Types.hs
+++ b/gen/Network/AWS/Route53Domains/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.Route53Domains.Types
     (
-    -- * Service
-      Route53Domains
+    -- * Service Configuration
+      route53Domains
 
     -- * Errors
     , _InvalidInput
@@ -100,39 +99,36 @@
 import           Network.AWS.Route53Domains.Types.Sum
 import           Network.AWS.Sign.V4
 
--- | Version @2014-05-15@ of the Amazon Route 53 Domains SDK.
-data Route53Domains
-
-instance AWSService Route53Domains where
-    type Sg Route53Domains = V4
-    service = const svc
-      where
-        svc =
-            Service
-            { _svcAbbrev = "Route53Domains"
-            , _svcPrefix = "route53domains"
-            , _svcVersion = "2014-05-15"
-            , _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 '2014-05-15' of the Amazon Route 53 Domains SDK configuration.
+route53Domains :: Service
+route53Domains =
+    Service
+    { _svcAbbrev = "Route53Domains"
+    , _svcSigner = v4
+    , _svcPrefix = "route53domains"
+    , _svcVersion = "2014-05-15"
+    , _svcEndpoint = defaultEndpoint route53Domains
+    , _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 requested item is not acceptable. For example, for an OperationId it
 -- may refer to the ID of an operation that is already completed. For a
diff --git a/gen/Network/AWS/Route53Domains/Types/Product.hs b/gen/Network/AWS/Route53Domains/Types/Product.hs
--- a/gen/Network/AWS/Route53Domains/Types/Product.hs
+++ b/gen/Network/AWS/Route53Domains/Types/Product.hs
@@ -2,7 +2,6 @@
 {-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE OverloadedStrings  #-}
 {-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
 
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
@@ -320,17 +319,20 @@
 instance ToJSON ContactDetail where
         toJSON ContactDetail'{..}
           = object
-              ["OrganizationName" .= _cdOrganizationName,
-               "Email" .= _cdEmail, "Fax" .= _cdFax,
-               "State" .= _cdState, "LastName" .= _cdLastName,
-               "ExtraParams" .= _cdExtraParams,
-               "ZipCode" .= _cdZipCode,
-               "AddressLine1" .= _cdAddressLine1, "City" .= _cdCity,
-               "PhoneNumber" .= _cdPhoneNumber,
-               "AddressLine2" .= _cdAddressLine2,
-               "FirstName" .= _cdFirstName,
-               "CountryCode" .= _cdCountryCode,
-               "ContactType" .= _cdContactType]
+              (catMaybes
+                 [("OrganizationName" .=) <$> _cdOrganizationName,
+                  ("Email" .=) <$> _cdEmail, ("Fax" .=) <$> _cdFax,
+                  ("State" .=) <$> _cdState,
+                  ("LastName" .=) <$> _cdLastName,
+                  ("ExtraParams" .=) <$> _cdExtraParams,
+                  ("ZipCode" .=) <$> _cdZipCode,
+                  ("AddressLine1" .=) <$> _cdAddressLine1,
+                  ("City" .=) <$> _cdCity,
+                  ("PhoneNumber" .=) <$> _cdPhoneNumber,
+                  ("AddressLine2" .=) <$> _cdAddressLine2,
+                  ("FirstName" .=) <$> _cdFirstName,
+                  ("CountryCode" .=) <$> _cdCountryCode,
+                  ("ContactType" .=) <$> _cdContactType])
 
 -- | /See:/ 'domainSummary' smart constructor.
 data DomainSummary = DomainSummary'
@@ -467,7 +469,10 @@
 
 instance ToJSON ExtraParam where
         toJSON ExtraParam'{..}
-          = object ["Name" .= _epName, "Value" .= _epValue]
+          = object
+              (catMaybes
+                 [Just ("Name" .= _epName),
+                  Just ("Value" .= _epValue)])
 
 -- | Nameserver includes the following elements.
 --
@@ -526,7 +531,10 @@
 
 instance ToJSON Nameserver where
         toJSON Nameserver'{..}
-          = object ["GlueIps" .= _nGlueIPs, "Name" .= _nName]
+          = object
+              (catMaybes
+                 [("GlueIps" .=) <$> _nGlueIPs,
+                  Just ("Name" .= _nName)])
 
 -- | OperationSummary includes the following elements.
 --
@@ -656,4 +664,6 @@
 
 instance ToJSON Tag where
         toJSON Tag'{..}
-          = object ["Value" .= _tagValue, "Key" .= _tagKey]
+          = object
+              (catMaybes
+                 [("Value" .=) <$> _tagValue, ("Key" .=) <$> _tagKey])
diff --git a/gen/Network/AWS/Route53Domains/UpdateDomainContact.hs b/gen/Network/AWS/Route53Domains/UpdateDomainContact.hs
--- a/gen/Network/AWS/Route53Domains/UpdateDomainContact.hs
+++ b/gen/Network/AWS/Route53Domains/UpdateDomainContact.hs
@@ -136,10 +136,9 @@
 udcDomainName = lens _udcDomainName (\ s a -> s{_udcDomainName = a});
 
 instance AWSRequest UpdateDomainContact where
-        type Sv UpdateDomainContact = Route53Domains
         type Rs UpdateDomainContact =
              UpdateDomainContactResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -159,10 +158,11 @@
 instance ToJSON UpdateDomainContact where
         toJSON UpdateDomainContact'{..}
           = object
-              ["RegistrantContact" .= _udcRegistrantContact,
-               "AdminContact" .= _udcAdminContact,
-               "TechContact" .= _udcTechContact,
-               "DomainName" .= _udcDomainName]
+              (catMaybes
+                 [("RegistrantContact" .=) <$> _udcRegistrantContact,
+                  ("AdminContact" .=) <$> _udcAdminContact,
+                  ("TechContact" .=) <$> _udcTechContact,
+                  Just ("DomainName" .= _udcDomainName)])
 
 instance ToPath UpdateDomainContact where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/UpdateDomainContactPrivacy.hs b/gen/Network/AWS/Route53Domains/UpdateDomainContactPrivacy.hs
--- a/gen/Network/AWS/Route53Domains/UpdateDomainContactPrivacy.hs
+++ b/gen/Network/AWS/Route53Domains/UpdateDomainContactPrivacy.hs
@@ -149,10 +149,9 @@
 udcpDomainName = lens _udcpDomainName (\ s a -> s{_udcpDomainName = a});
 
 instance AWSRequest UpdateDomainContactPrivacy where
-        type Sv UpdateDomainContactPrivacy = Route53Domains
         type Rs UpdateDomainContactPrivacy =
              UpdateDomainContactPrivacyResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -172,10 +171,11 @@
 instance ToJSON UpdateDomainContactPrivacy where
         toJSON UpdateDomainContactPrivacy'{..}
           = object
-              ["TechPrivacy" .= _udcpTechPrivacy,
-               "RegistrantPrivacy" .= _udcpRegistrantPrivacy,
-               "AdminPrivacy" .= _udcpAdminPrivacy,
-               "DomainName" .= _udcpDomainName]
+              (catMaybes
+                 [("TechPrivacy" .=) <$> _udcpTechPrivacy,
+                  ("RegistrantPrivacy" .=) <$> _udcpRegistrantPrivacy,
+                  ("AdminPrivacy" .=) <$> _udcpAdminPrivacy,
+                  Just ("DomainName" .= _udcpDomainName)])
 
 instance ToPath UpdateDomainContactPrivacy where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/UpdateDomainNameservers.hs b/gen/Network/AWS/Route53Domains/UpdateDomainNameservers.hs
--- a/gen/Network/AWS/Route53Domains/UpdateDomainNameservers.hs
+++ b/gen/Network/AWS/Route53Domains/UpdateDomainNameservers.hs
@@ -110,10 +110,9 @@
 udnNameservers = lens _udnNameservers (\ s a -> s{_udnNameservers = a}) . _Coerce;
 
 instance AWSRequest UpdateDomainNameservers where
-        type Sv UpdateDomainNameservers = Route53Domains
         type Rs UpdateDomainNameservers =
              UpdateDomainNameserversResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveJSON
               (\ s h x ->
@@ -133,9 +132,10 @@
 instance ToJSON UpdateDomainNameservers where
         toJSON UpdateDomainNameservers'{..}
           = object
-              ["FIAuthKey" .= _udnFIAuthKey,
-               "DomainName" .= _udnDomainName,
-               "Nameservers" .= _udnNameservers]
+              (catMaybes
+                 [("FIAuthKey" .=) <$> _udnFIAuthKey,
+                  Just ("DomainName" .= _udnDomainName),
+                  Just ("Nameservers" .= _udnNameservers)])
 
 instance ToPath UpdateDomainNameservers where
         toPath = const "/"
diff --git a/gen/Network/AWS/Route53Domains/UpdateTagsForDomain.hs b/gen/Network/AWS/Route53Domains/UpdateTagsForDomain.hs
--- a/gen/Network/AWS/Route53Domains/UpdateTagsForDomain.hs
+++ b/gen/Network/AWS/Route53Domains/UpdateTagsForDomain.hs
@@ -136,10 +136,9 @@
 utfdDomainName = lens _utfdDomainName (\ s a -> s{_utfdDomainName = a});
 
 instance AWSRequest UpdateTagsForDomain where
-        type Sv UpdateTagsForDomain = Route53Domains
         type Rs UpdateTagsForDomain =
              UpdateTagsForDomainResponse
-        request = postJSON
+        request = postJSON route53Domains
         response
           = receiveEmpty
               (\ s h x ->
@@ -158,8 +157,9 @@
 instance ToJSON UpdateTagsForDomain where
         toJSON UpdateTagsForDomain'{..}
           = object
-              ["TagsToUpdate" .= _utfdTagsToUpdate,
-               "DomainName" .= _utfdDomainName]
+              (catMaybes
+                 [("TagsToUpdate" .=) <$> _utfdTagsToUpdate,
+                  Just ("DomainName" .= _utfdDomainName)])
 
 instance ToPath UpdateTagsForDomain where
         toPath = const "/"
diff --git a/test/Test/AWS/Gen/Route53Domains.hs b/test/Test/AWS/Gen/Route53Domains.hs
--- a/test/Test/AWS/Gen/Route53Domains.hs
+++ b/test/Test/AWS/Gen/Route53Domains.hs
@@ -240,106 +240,124 @@
 testListOperationsResponse = res
     "ListOperationsResponse"
     "fixture/ListOperationsResponse"
+    route53Domains
     (Proxy :: Proxy ListOperations)
 
 testGetDomainDetailResponse :: GetDomainDetailResponse -> TestTree
 testGetDomainDetailResponse = res
     "GetDomainDetailResponse"
     "fixture/GetDomainDetailResponse"
+    route53Domains
     (Proxy :: Proxy GetDomainDetail)
 
 testUpdateDomainContactPrivacyResponse :: UpdateDomainContactPrivacyResponse -> TestTree
 testUpdateDomainContactPrivacyResponse = res
     "UpdateDomainContactPrivacyResponse"
     "fixture/UpdateDomainContactPrivacyResponse"
+    route53Domains
     (Proxy :: Proxy UpdateDomainContactPrivacy)
 
 testGetOperationDetailResponse :: GetOperationDetailResponse -> TestTree
 testGetOperationDetailResponse = res
     "GetOperationDetailResponse"
     "fixture/GetOperationDetailResponse"
+    route53Domains
     (Proxy :: Proxy GetOperationDetail)
 
 testEnableDomainAutoRenewResponse :: EnableDomainAutoRenewResponse -> TestTree
 testEnableDomainAutoRenewResponse = res
     "EnableDomainAutoRenewResponse"
     "fixture/EnableDomainAutoRenewResponse"
+    route53Domains
     (Proxy :: Proxy EnableDomainAutoRenew)
 
 testDisableDomainAutoRenewResponse :: DisableDomainAutoRenewResponse -> TestTree
 testDisableDomainAutoRenewResponse = res
     "DisableDomainAutoRenewResponse"
     "fixture/DisableDomainAutoRenewResponse"
+    route53Domains
     (Proxy :: Proxy DisableDomainAutoRenew)
 
 testUpdateDomainContactResponse :: UpdateDomainContactResponse -> TestTree
 testUpdateDomainContactResponse = res
     "UpdateDomainContactResponse"
     "fixture/UpdateDomainContactResponse"
+    route53Domains
     (Proxy :: Proxy UpdateDomainContact)
 
 testEnableDomainTransferLockResponse :: EnableDomainTransferLockResponse -> TestTree
 testEnableDomainTransferLockResponse = res
     "EnableDomainTransferLockResponse"
     "fixture/EnableDomainTransferLockResponse"
+    route53Domains
     (Proxy :: Proxy EnableDomainTransferLock)
 
 testRegisterDomainResponse :: RegisterDomainResponse -> TestTree
 testRegisterDomainResponse = res
     "RegisterDomainResponse"
     "fixture/RegisterDomainResponse"
+    route53Domains
     (Proxy :: Proxy RegisterDomain)
 
 testDisableDomainTransferLockResponse :: DisableDomainTransferLockResponse -> TestTree
 testDisableDomainTransferLockResponse = res
     "DisableDomainTransferLockResponse"
     "fixture/DisableDomainTransferLockResponse"
+    route53Domains
     (Proxy :: Proxy DisableDomainTransferLock)
 
 testCheckDomainAvailabilityResponse :: CheckDomainAvailabilityResponse -> TestTree
 testCheckDomainAvailabilityResponse = res
     "CheckDomainAvailabilityResponse"
     "fixture/CheckDomainAvailabilityResponse"
+    route53Domains
     (Proxy :: Proxy CheckDomainAvailability)
 
 testListTagsForDomainResponse :: ListTagsForDomainResponse -> TestTree
 testListTagsForDomainResponse = res
     "ListTagsForDomainResponse"
     "fixture/ListTagsForDomainResponse"
+    route53Domains
     (Proxy :: Proxy ListTagsForDomain)
 
 testUpdateDomainNameserversResponse :: UpdateDomainNameserversResponse -> TestTree
 testUpdateDomainNameserversResponse = res
     "UpdateDomainNameserversResponse"
     "fixture/UpdateDomainNameserversResponse"
+    route53Domains
     (Proxy :: Proxy UpdateDomainNameservers)
 
 testRetrieveDomainAuthCodeResponse :: RetrieveDomainAuthCodeResponse -> TestTree
 testRetrieveDomainAuthCodeResponse = res
     "RetrieveDomainAuthCodeResponse"
     "fixture/RetrieveDomainAuthCodeResponse"
+    route53Domains
     (Proxy :: Proxy RetrieveDomainAuthCode)
 
 testTransferDomainResponse :: TransferDomainResponse -> TestTree
 testTransferDomainResponse = res
     "TransferDomainResponse"
     "fixture/TransferDomainResponse"
+    route53Domains
     (Proxy :: Proxy TransferDomain)
 
 testDeleteTagsForDomainResponse :: DeleteTagsForDomainResponse -> TestTree
 testDeleteTagsForDomainResponse = res
     "DeleteTagsForDomainResponse"
     "fixture/DeleteTagsForDomainResponse"
+    route53Domains
     (Proxy :: Proxy DeleteTagsForDomain)
 
 testUpdateTagsForDomainResponse :: UpdateTagsForDomainResponse -> TestTree
 testUpdateTagsForDomainResponse = res
     "UpdateTagsForDomainResponse"
     "fixture/UpdateTagsForDomainResponse"
+    route53Domains
     (Proxy :: Proxy UpdateTagsForDomain)
 
 testListDomainsResponse :: ListDomainsResponse -> TestTree
 testListDomainsResponse = res
     "ListDomainsResponse"
     "fixture/ListDomainsResponse"
+    route53Domains
     (Proxy :: Proxy ListDomains)
