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-sts.cabal b/amazonka-sts.cabal
--- a/amazonka-sts.cabal
+++ b/amazonka-sts.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-sts
-version:               1.1.0
+version:               1.2.0
 synopsis:              Amazon Security Token Service SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -110,7 +110,7 @@
         , Network.AWS.STS.Types.Sum
 
     build-depends:
-          amazonka-core == 1.1.0.*
+          amazonka-core == 1.2.0.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-sts-test
@@ -129,9 +129,9 @@
         , Test.AWS.STS.Internal
 
     build-depends:
-          amazonka-core == 1.1.0
-        , amazonka-test == 1.1.0
-        , amazonka-sts == 1.1.0
+          amazonka-core == 1.2.0
+        , amazonka-test == 1.2.0
+        , amazonka-sts == 1.2.0
         , base
         , bytestring
         , lens
diff --git a/gen/Network/AWS/STS.hs b/gen/Network/AWS/STS.hs
--- a/gen/Network/AWS/STS.hs
+++ b/gen/Network/AWS/STS.hs
@@ -71,8 +71,8 @@
 -- /See:/ <http://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html AWS API Reference>
 module Network.AWS.STS
     (
-    -- * Service
-      STS
+    -- * Service Configuration
+      sTS
 
     -- * Errors
     -- $errors
diff --git a/gen/Network/AWS/STS/AssumeRole.hs b/gen/Network/AWS/STS/AssumeRole.hs
--- a/gen/Network/AWS/STS/AssumeRole.hs
+++ b/gen/Network/AWS/STS/AssumeRole.hs
@@ -247,9 +247,8 @@
 arRoleSessionName = lens _arRoleSessionName (\ s a -> s{_arRoleSessionName = a});
 
 instance AWSRequest AssumeRole where
-        type Sv AssumeRole = STS
         type Rs AssumeRole = AssumeRoleResponse
-        request = postQuery
+        request = postQuery sTS
         response
           = receiveXMLWrapper "AssumeRoleResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/STS/AssumeRoleWithSAML.hs b/gen/Network/AWS/STS/AssumeRoleWithSAML.hs
--- a/gen/Network/AWS/STS/AssumeRoleWithSAML.hs
+++ b/gen/Network/AWS/STS/AssumeRoleWithSAML.hs
@@ -192,10 +192,9 @@
 arwsamlSAMLAssertion = lens _arwsamlSAMLAssertion (\ s a -> s{_arwsamlSAMLAssertion = a});
 
 instance AWSRequest AssumeRoleWithSAML where
-        type Sv AssumeRoleWithSAML = STS
         type Rs AssumeRoleWithSAML =
              AssumeRoleWithSAMLResponse
-        request = postQuery
+        request = postQuery sTS
         response
           = receiveXMLWrapper "AssumeRoleWithSAMLResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/STS/AssumeRoleWithWebIdentity.hs b/gen/Network/AWS/STS/AssumeRoleWithWebIdentity.hs
--- a/gen/Network/AWS/STS/AssumeRoleWithWebIdentity.hs
+++ b/gen/Network/AWS/STS/AssumeRoleWithWebIdentity.hs
@@ -227,10 +227,9 @@
 arwwiWebIdentityToken = lens _arwwiWebIdentityToken (\ s a -> s{_arwwiWebIdentityToken = a});
 
 instance AWSRequest AssumeRoleWithWebIdentity where
-        type Sv AssumeRoleWithWebIdentity = STS
         type Rs AssumeRoleWithWebIdentity =
              AssumeRoleWithWebIdentityResponse
-        request = postQuery
+        request = postQuery sTS
         response
           = receiveXMLWrapper "AssumeRoleWithWebIdentityResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/STS/DecodeAuthorizationMessage.hs b/gen/Network/AWS/STS/DecodeAuthorizationMessage.hs
--- a/gen/Network/AWS/STS/DecodeAuthorizationMessage.hs
+++ b/gen/Network/AWS/STS/DecodeAuthorizationMessage.hs
@@ -94,10 +94,9 @@
 damEncodedMessage = lens _damEncodedMessage (\ s a -> s{_damEncodedMessage = a});
 
 instance AWSRequest DecodeAuthorizationMessage where
-        type Sv DecodeAuthorizationMessage = STS
         type Rs DecodeAuthorizationMessage =
              DecodeAuthorizationMessageResponse
-        request = postQuery
+        request = postQuery sTS
         response
           = receiveXMLWrapper
               "DecodeAuthorizationMessageResult"
diff --git a/gen/Network/AWS/STS/GetFederationToken.hs b/gen/Network/AWS/STS/GetFederationToken.hs
--- a/gen/Network/AWS/STS/GetFederationToken.hs
+++ b/gen/Network/AWS/STS/GetFederationToken.hs
@@ -189,10 +189,9 @@
 gftName = lens _gftName (\ s a -> s{_gftName = a});
 
 instance AWSRequest GetFederationToken where
-        type Sv GetFederationToken = STS
         type Rs GetFederationToken =
              GetFederationTokenResponse
-        request = postQuery
+        request = postQuery sTS
         response
           = receiveXMLWrapper "GetFederationTokenResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/STS/GetSessionToken.hs b/gen/Network/AWS/STS/GetSessionToken.hs
--- a/gen/Network/AWS/STS/GetSessionToken.hs
+++ b/gen/Network/AWS/STS/GetSessionToken.hs
@@ -133,9 +133,8 @@
 gstSerialNumber = lens _gstSerialNumber (\ s a -> s{_gstSerialNumber = a});
 
 instance AWSRequest GetSessionToken where
-        type Sv GetSessionToken = STS
         type Rs GetSessionToken = GetSessionTokenResponse
-        request = postQuery
+        request = postQuery sTS
         response
           = receiveXMLWrapper "GetSessionTokenResult"
               (\ s h x ->
diff --git a/gen/Network/AWS/STS/Types.hs b/gen/Network/AWS/STS/Types.hs
--- a/gen/Network/AWS/STS/Types.hs
+++ b/gen/Network/AWS/STS/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.STS.Types
     (
-    -- * Service
-      STS
+    -- * Service Configuration
+      sTS
 
     -- * Errors
     , _MalformedPolicyDocumentException
@@ -51,39 +50,36 @@
 import           Network.AWS.STS.Types.Product
 import           Network.AWS.STS.Types.Sum
 
--- | Version @2011-06-15@ of the Amazon Security Token Service SDK.
-data STS
-
-instance AWSService STS where
-    type Sg STS = V4
-    service = const svc
-      where
-        svc =
-            Service
-            { _svcAbbrev = "STS"
-            , _svcPrefix = "sts"
-            , _svcVersion = "2011-06-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 '2011-06-15' of the Amazon Security Token Service SDK configuration.
+sTS :: Service
+sTS =
+    Service
+    { _svcAbbrev = "STS"
+    , _svcSigner = v4
+    , _svcPrefix = "sts"
+    , _svcVersion = "2011-06-15"
+    , _svcEndpoint = defaultEndpoint sTS
+    , _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 request was rejected because the policy document was malformed. The
 -- error message describes the specific error.
diff --git a/gen/Network/AWS/STS/Types/Product.hs b/gen/Network/AWS/STS/Types/Product.hs
--- a/gen/Network/AWS/STS/Types/Product.hs
+++ b/gen/Network/AWS/STS/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/STS.hs b/test/Test/AWS/Gen/STS.hs
--- a/test/Test/AWS/Gen/STS.hs
+++ b/test/Test/AWS/Gen/STS.hs
@@ -108,34 +108,40 @@
 testAssumeRoleResponse = res
     "AssumeRoleResponse"
     "fixture/AssumeRoleResponse"
+    sTS
     (Proxy :: Proxy AssumeRole)
 
 testDecodeAuthorizationMessageResponse :: DecodeAuthorizationMessageResponse -> TestTree
 testDecodeAuthorizationMessageResponse = res
     "DecodeAuthorizationMessageResponse"
     "fixture/DecodeAuthorizationMessageResponse"
+    sTS
     (Proxy :: Proxy DecodeAuthorizationMessage)
 
 testAssumeRoleWithWebIdentityResponse :: AssumeRoleWithWebIdentityResponse -> TestTree
 testAssumeRoleWithWebIdentityResponse = res
     "AssumeRoleWithWebIdentityResponse"
     "fixture/AssumeRoleWithWebIdentityResponse"
+    sTS
     (Proxy :: Proxy AssumeRoleWithWebIdentity)
 
 testGetFederationTokenResponse :: GetFederationTokenResponse -> TestTree
 testGetFederationTokenResponse = res
     "GetFederationTokenResponse"
     "fixture/GetFederationTokenResponse"
+    sTS
     (Proxy :: Proxy GetFederationToken)
 
 testGetSessionTokenResponse :: GetSessionTokenResponse -> TestTree
 testGetSessionTokenResponse = res
     "GetSessionTokenResponse"
     "fixture/GetSessionTokenResponse"
+    sTS
     (Proxy :: Proxy GetSessionToken)
 
 testAssumeRoleWithSAMLResponse :: AssumeRoleWithSAMLResponse -> TestTree
 testAssumeRoleWithSAMLResponse = res
     "AssumeRoleWithSAMLResponse"
     "fixture/AssumeRoleWithSAMLResponse"
+    sTS
     (Proxy :: Proxy AssumeRoleWithSAML)
