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-cloudformation.cabal b/amazonka-cloudformation.cabal
--- a/amazonka-cloudformation.cabal
+++ b/amazonka-cloudformation.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-cloudformation
-version:               1.1.0
+version:               1.2.0
 synopsis:              Amazon CloudFormation SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -87,7 +87,7 @@
         , Network.AWS.CloudFormation.Types.Sum
 
     build-depends:
-          amazonka-core == 1.1.0.*
+          amazonka-core == 1.2.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-cloudformation-test
@@ -106,9 +106,9 @@
         , Test.AWS.CloudFormation.Internal
 
     build-depends:
-          amazonka-core == 1.1.0
-        , amazonka-test == 1.1.0
-        , amazonka-cloudformation == 1.1.0
+          amazonka-core == 1.2.0
+        , amazonka-test == 1.2.0
+        , amazonka-cloudformation == 1.2.0
         , base
         , bytestring
         , lens
diff --git a/gen/Network/AWS/CloudFormation.hs b/gen/Network/AWS/CloudFormation.hs
--- a/gen/Network/AWS/CloudFormation.hs
+++ b/gen/Network/AWS/CloudFormation.hs
@@ -37,8 +37,8 @@
 -- /See:/ <http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/Welcome.html AWS API Reference>
 module Network.AWS.CloudFormation
     (
-    -- * Service
-      CloudFormation
+    -- * Service Configuration
+      cloudFormation
 
     -- * Errors
     -- $errors
diff --git a/gen/Network/AWS/CloudFormation/CancelUpdateStack.hs b/gen/Network/AWS/CloudFormation/CancelUpdateStack.hs
--- a/gen/Network/AWS/CloudFormation/CancelUpdateStack.hs
+++ b/gen/Network/AWS/CloudFormation/CancelUpdateStack.hs
@@ -69,9 +69,8 @@
 cusStackName = lens _cusStackName (\ s a -> s{_cusStackName = a});
 
 instance AWSRequest CancelUpdateStack where
-        type Sv CancelUpdateStack = CloudFormation
         type Rs CancelUpdateStack = CancelUpdateStackResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response = receiveNull CancelUpdateStackResponse'
 
 instance ToHeaders CancelUpdateStack where
diff --git a/gen/Network/AWS/CloudFormation/CreateStack.hs b/gen/Network/AWS/CloudFormation/CreateStack.hs
--- a/gen/Network/AWS/CloudFormation/CreateStack.hs
+++ b/gen/Network/AWS/CloudFormation/CreateStack.hs
@@ -227,9 +227,8 @@
 csStackName = lens _csStackName (\ s a -> s{_csStackName = a});
 
 instance AWSRequest CreateStack where
-        type Sv CreateStack = CloudFormation
         type Rs CreateStack = CreateStackResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response
           = receiveXMLWrapper "CreateStackResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/CloudFormation/DeleteStack.hs b/gen/Network/AWS/CloudFormation/DeleteStack.hs
--- a/gen/Network/AWS/CloudFormation/DeleteStack.hs
+++ b/gen/Network/AWS/CloudFormation/DeleteStack.hs
@@ -67,9 +67,8 @@
 dsStackName = lens _dsStackName (\ s a -> s{_dsStackName = a});
 
 instance AWSRequest DeleteStack where
-        type Sv DeleteStack = CloudFormation
         type Rs DeleteStack = DeleteStackResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response = receiveNull DeleteStackResponse'
 
 instance ToHeaders DeleteStack where
diff --git a/gen/Network/AWS/CloudFormation/DescribeStackEvents.hs b/gen/Network/AWS/CloudFormation/DescribeStackEvents.hs
--- a/gen/Network/AWS/CloudFormation/DescribeStackEvents.hs
+++ b/gen/Network/AWS/CloudFormation/DescribeStackEvents.hs
@@ -103,10 +103,9 @@
             Just $ rq & dseNextToken .~ rs ^. dsersNextToken
 
 instance AWSRequest DescribeStackEvents where
-        type Sv DescribeStackEvents = CloudFormation
         type Rs DescribeStackEvents =
              DescribeStackEventsResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response
           = receiveXMLWrapper "DescribeStackEventsResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/CloudFormation/DescribeStackResource.hs b/gen/Network/AWS/CloudFormation/DescribeStackResource.hs
--- a/gen/Network/AWS/CloudFormation/DescribeStackResource.hs
+++ b/gen/Network/AWS/CloudFormation/DescribeStackResource.hs
@@ -90,10 +90,9 @@
 desLogicalResourceId = lens _desLogicalResourceId (\ s a -> s{_desLogicalResourceId = a});
 
 instance AWSRequest DescribeStackResource where
-        type Sv DescribeStackResource = CloudFormation
         type Rs DescribeStackResource =
              DescribeStackResourceResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response
           = receiveXMLWrapper "DescribeStackResourceResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/CloudFormation/DescribeStackResources.hs b/gen/Network/AWS/CloudFormation/DescribeStackResources.hs
--- a/gen/Network/AWS/CloudFormation/DescribeStackResources.hs
+++ b/gen/Network/AWS/CloudFormation/DescribeStackResources.hs
@@ -127,10 +127,9 @@
 dsrStackName = lens _dsrStackName (\ s a -> s{_dsrStackName = a});
 
 instance AWSRequest DescribeStackResources where
-        type Sv DescribeStackResources = CloudFormation
         type Rs DescribeStackResources =
              DescribeStackResourcesResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response
           = receiveXMLWrapper "DescribeStackResourcesResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/CloudFormation/DescribeStacks.hs b/gen/Network/AWS/CloudFormation/DescribeStacks.hs
--- a/gen/Network/AWS/CloudFormation/DescribeStacks.hs
+++ b/gen/Network/AWS/CloudFormation/DescribeStacks.hs
@@ -96,9 +96,8 @@
             Just $ rq & dNextToken .~ rs ^. dsrsNextToken
 
 instance AWSRequest DescribeStacks where
-        type Sv DescribeStacks = CloudFormation
         type Rs DescribeStacks = DescribeStacksResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response
           = receiveXMLWrapper "DescribeStacksResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/CloudFormation/EstimateTemplateCost.hs b/gen/Network/AWS/CloudFormation/EstimateTemplateCost.hs
--- a/gen/Network/AWS/CloudFormation/EstimateTemplateCost.hs
+++ b/gen/Network/AWS/CloudFormation/EstimateTemplateCost.hs
@@ -98,10 +98,9 @@
 etcTemplateURL = lens _etcTemplateURL (\ s a -> s{_etcTemplateURL = a});
 
 instance AWSRequest EstimateTemplateCost where
-        type Sv EstimateTemplateCost = CloudFormation
         type Rs EstimateTemplateCost =
              EstimateTemplateCostResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response
           = receiveXMLWrapper "EstimateTemplateCostResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/CloudFormation/GetStackPolicy.hs b/gen/Network/AWS/CloudFormation/GetStackPolicy.hs
--- a/gen/Network/AWS/CloudFormation/GetStackPolicy.hs
+++ b/gen/Network/AWS/CloudFormation/GetStackPolicy.hs
@@ -70,9 +70,8 @@
 gspStackName = lens _gspStackName (\ s a -> s{_gspStackName = a});
 
 instance AWSRequest GetStackPolicy where
-        type Sv GetStackPolicy = CloudFormation
         type Rs GetStackPolicy = GetStackPolicyResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response
           = receiveXMLWrapper "GetStackPolicyResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/CloudFormation/GetTemplate.hs b/gen/Network/AWS/CloudFormation/GetTemplate.hs
--- a/gen/Network/AWS/CloudFormation/GetTemplate.hs
+++ b/gen/Network/AWS/CloudFormation/GetTemplate.hs
@@ -81,9 +81,8 @@
 gtStackName = lens _gtStackName (\ s a -> s{_gtStackName = a});
 
 instance AWSRequest GetTemplate where
-        type Sv GetTemplate = CloudFormation
         type Rs GetTemplate = GetTemplateResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response
           = receiveXMLWrapper "GetTemplateResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/CloudFormation/GetTemplateSummary.hs b/gen/Network/AWS/CloudFormation/GetTemplateSummary.hs
--- a/gen/Network/AWS/CloudFormation/GetTemplateSummary.hs
+++ b/gen/Network/AWS/CloudFormation/GetTemplateSummary.hs
@@ -120,10 +120,9 @@
 gtsStackName = lens _gtsStackName (\ s a -> s{_gtsStackName = a});
 
 instance AWSRequest GetTemplateSummary where
-        type Sv GetTemplateSummary = CloudFormation
         type Rs GetTemplateSummary =
              GetTemplateSummaryResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response
           = receiveXMLWrapper "GetTemplateSummaryResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/CloudFormation/ListStackResources.hs b/gen/Network/AWS/CloudFormation/ListStackResources.hs
--- a/gen/Network/AWS/CloudFormation/ListStackResources.hs
+++ b/gen/Network/AWS/CloudFormation/ListStackResources.hs
@@ -101,10 +101,9 @@
             Just $ rq & lsrNextToken .~ rs ^. lsrrsNextToken
 
 instance AWSRequest ListStackResources where
-        type Sv ListStackResources = CloudFormation
         type Rs ListStackResources =
              ListStackResourcesResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response
           = receiveXMLWrapper "ListStackResourcesResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/CloudFormation/ListStacks.hs b/gen/Network/AWS/CloudFormation/ListStacks.hs
--- a/gen/Network/AWS/CloudFormation/ListStacks.hs
+++ b/gen/Network/AWS/CloudFormation/ListStacks.hs
@@ -97,9 +97,8 @@
             Just $ rq & lsNextToken .~ rs ^. lsrsNextToken
 
 instance AWSRequest ListStacks where
-        type Sv ListStacks = CloudFormation
         type Rs ListStacks = ListStacksResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response
           = receiveXMLWrapper "ListStacksResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/CloudFormation/SetStackPolicy.hs b/gen/Network/AWS/CloudFormation/SetStackPolicy.hs
--- a/gen/Network/AWS/CloudFormation/SetStackPolicy.hs
+++ b/gen/Network/AWS/CloudFormation/SetStackPolicy.hs
@@ -89,9 +89,8 @@
 sspStackName = lens _sspStackName (\ s a -> s{_sspStackName = a});
 
 instance AWSRequest SetStackPolicy where
-        type Sv SetStackPolicy = CloudFormation
         type Rs SetStackPolicy = SetStackPolicyResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response = receiveNull SetStackPolicyResponse'
 
 instance ToHeaders SetStackPolicy where
diff --git a/gen/Network/AWS/CloudFormation/SignalResource.hs b/gen/Network/AWS/CloudFormation/SignalResource.hs
--- a/gen/Network/AWS/CloudFormation/SignalResource.hs
+++ b/gen/Network/AWS/CloudFormation/SignalResource.hs
@@ -108,9 +108,8 @@
 sigStatus = lens _sigStatus (\ s a -> s{_sigStatus = a});
 
 instance AWSRequest SignalResource where
-        type Sv SignalResource = CloudFormation
         type Rs SignalResource = SignalResourceResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response = receiveNull SignalResourceResponse'
 
 instance ToHeaders SignalResource where
diff --git a/gen/Network/AWS/CloudFormation/Types.hs b/gen/Network/AWS/CloudFormation/Types.hs
--- a/gen/Network/AWS/CloudFormation/Types.hs
+++ b/gen/Network/AWS/CloudFormation/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.CloudFormation.Types
     (
-    -- * Service
-      CloudFormation
+    -- * Service Configuration
+      cloudFormation
 
     -- * Errors
     , _InsufficientCapabilitiesException
@@ -166,39 +165,36 @@
 import           Network.AWS.Prelude
 import           Network.AWS.Sign.V4
 
--- | Version @2010-05-15@ of the Amazon CloudFormation SDK.
-data CloudFormation
-
-instance AWSService CloudFormation where
-    type Sg CloudFormation = V4
-    service = const svc
-      where
-        svc =
-            Service
-            { _svcAbbrev = "CloudFormation"
-            , _svcPrefix = "cloudformation"
-            , _svcVersion = "2010-05-15"
-            , _svcEndpoint = defaultEndpoint svc
-            , _svcTimeout = Just 70
-            , _svcStatus = statusSuccess
-            , _svcError = parseXMLError
-            , _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 '2010-05-15' of the Amazon CloudFormation SDK configuration.
+cloudFormation :: Service
+cloudFormation =
+    Service
+    { _svcAbbrev = "CloudFormation"
+    , _svcSigner = v4
+    , _svcPrefix = "cloudformation"
+    , _svcVersion = "2010-05-15"
+    , _svcEndpoint = defaultEndpoint cloudFormation
+    , _svcTimeout = Just 70
+    , _svcCheck = statusSuccess
+    , _svcError = parseXMLError
+    , _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 template contains resources with capabilities that were not
 -- specified in the Capabilities parameter.
diff --git a/gen/Network/AWS/CloudFormation/Types/Product.hs b/gen/Network/AWS/CloudFormation/Types/Product.hs
--- a/gen/Network/AWS/CloudFormation/Types/Product.hs
+++ b/gen/Network/AWS/CloudFormation/Types/Product.hs
@@ -2,7 +2,6 @@
 {-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE OverloadedStrings  #-}
 {-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
 
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
diff --git a/gen/Network/AWS/CloudFormation/UpdateStack.hs b/gen/Network/AWS/CloudFormation/UpdateStack.hs
--- a/gen/Network/AWS/CloudFormation/UpdateStack.hs
+++ b/gen/Network/AWS/CloudFormation/UpdateStack.hs
@@ -234,9 +234,8 @@
 usStackName = lens _usStackName (\ s a -> s{_usStackName = a});
 
 instance AWSRequest UpdateStack where
-        type Sv UpdateStack = CloudFormation
         type Rs UpdateStack = UpdateStackResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response
           = receiveXMLWrapper "UpdateStackResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/CloudFormation/ValidateTemplate.hs b/gen/Network/AWS/CloudFormation/ValidateTemplate.hs
--- a/gen/Network/AWS/CloudFormation/ValidateTemplate.hs
+++ b/gen/Network/AWS/CloudFormation/ValidateTemplate.hs
@@ -92,9 +92,8 @@
 vtTemplateURL = lens _vtTemplateURL (\ s a -> s{_vtTemplateURL = a});
 
 instance AWSRequest ValidateTemplate where
-        type Sv ValidateTemplate = CloudFormation
         type Rs ValidateTemplate = ValidateTemplateResponse
-        request = postQuery
+        request = postQuery cloudFormation
         response
           = receiveXMLWrapper "ValidateTemplateResult"
               (\ s h x ->
diff --git a/test/Test/AWS/Gen/CloudFormation.hs b/test/Test/AWS/Gen/CloudFormation.hs
--- a/test/Test/AWS/Gen/CloudFormation.hs
+++ b/test/Test/AWS/Gen/CloudFormation.hs
@@ -229,100 +229,117 @@
 testDeleteStackResponse = res
     "DeleteStackResponse"
     "fixture/DeleteStackResponse"
+    cloudFormation
     (Proxy :: Proxy DeleteStack)
 
 testUpdateStackResponse :: UpdateStackResponse -> TestTree
 testUpdateStackResponse = res
     "UpdateStackResponse"
     "fixture/UpdateStackResponse"
+    cloudFormation
     (Proxy :: Proxy UpdateStack)
 
 testGetTemplateSummaryResponse :: GetTemplateSummaryResponse -> TestTree
 testGetTemplateSummaryResponse = res
     "GetTemplateSummaryResponse"
     "fixture/GetTemplateSummaryResponse"
+    cloudFormation
     (Proxy :: Proxy GetTemplateSummary)
 
 testListStackResourcesResponse :: ListStackResourcesResponse -> TestTree
 testListStackResourcesResponse = res
     "ListStackResourcesResponse"
     "fixture/ListStackResourcesResponse"
+    cloudFormation
     (Proxy :: Proxy ListStackResources)
 
 testDescribeStacksResponse :: DescribeStacksResponse -> TestTree
 testDescribeStacksResponse = res
     "DescribeStacksResponse"
     "fixture/DescribeStacksResponse"
+    cloudFormation
     (Proxy :: Proxy DescribeStacks)
 
 testGetStackPolicyResponse :: GetStackPolicyResponse -> TestTree
 testGetStackPolicyResponse = res
     "GetStackPolicyResponse"
     "fixture/GetStackPolicyResponse"
+    cloudFormation
     (Proxy :: Proxy GetStackPolicy)
 
 testValidateTemplateResponse :: ValidateTemplateResponse -> TestTree
 testValidateTemplateResponse = res
     "ValidateTemplateResponse"
     "fixture/ValidateTemplateResponse"
+    cloudFormation
     (Proxy :: Proxy ValidateTemplate)
 
 testCancelUpdateStackResponse :: CancelUpdateStackResponse -> TestTree
 testCancelUpdateStackResponse = res
     "CancelUpdateStackResponse"
     "fixture/CancelUpdateStackResponse"
+    cloudFormation
     (Proxy :: Proxy CancelUpdateStack)
 
 testSetStackPolicyResponse :: SetStackPolicyResponse -> TestTree
 testSetStackPolicyResponse = res
     "SetStackPolicyResponse"
     "fixture/SetStackPolicyResponse"
+    cloudFormation
     (Proxy :: Proxy SetStackPolicy)
 
 testDescribeStackEventsResponse :: DescribeStackEventsResponse -> TestTree
 testDescribeStackEventsResponse = res
     "DescribeStackEventsResponse"
     "fixture/DescribeStackEventsResponse"
+    cloudFormation
     (Proxy :: Proxy DescribeStackEvents)
 
 testSignalResourceResponse :: SignalResourceResponse -> TestTree
 testSignalResourceResponse = res
     "SignalResourceResponse"
     "fixture/SignalResourceResponse"
+    cloudFormation
     (Proxy :: Proxy SignalResource)
 
 testListStacksResponse :: ListStacksResponse -> TestTree
 testListStacksResponse = res
     "ListStacksResponse"
     "fixture/ListStacksResponse"
+    cloudFormation
     (Proxy :: Proxy ListStacks)
 
 testCreateStackResponse :: CreateStackResponse -> TestTree
 testCreateStackResponse = res
     "CreateStackResponse"
     "fixture/CreateStackResponse"
+    cloudFormation
     (Proxy :: Proxy CreateStack)
 
 testDescribeStackResourcesResponse :: DescribeStackResourcesResponse -> TestTree
 testDescribeStackResourcesResponse = res
     "DescribeStackResourcesResponse"
     "fixture/DescribeStackResourcesResponse"
+    cloudFormation
     (Proxy :: Proxy DescribeStackResources)
 
 testEstimateTemplateCostResponse :: EstimateTemplateCostResponse -> TestTree
 testEstimateTemplateCostResponse = res
     "EstimateTemplateCostResponse"
     "fixture/EstimateTemplateCostResponse"
+    cloudFormation
     (Proxy :: Proxy EstimateTemplateCost)
 
 testGetTemplateResponse :: GetTemplateResponse -> TestTree
 testGetTemplateResponse = res
     "GetTemplateResponse"
     "fixture/GetTemplateResponse"
+    cloudFormation
     (Proxy :: Proxy GetTemplate)
 
 testDescribeStackResourceResponse :: DescribeStackResourceResponse -> TestTree
 testDescribeStackResourceResponse = res
     "DescribeStackResourceResponse"
     "fixture/DescribeStackResourceResponse"
+    cloudFormation
     (Proxy :: Proxy DescribeStackResource)
