diff --git a/amazonka-route53.cabal b/amazonka-route53.cabal
--- a/amazonka-route53.cabal
+++ b/amazonka-route53.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-route53
-version:               0.0.7
+version:               0.0.8
 synopsis:              Amazon Route 53 SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -66,10 +66,11 @@
         , Network.AWS.Route53.ListTagsForResources
         , Network.AWS.Route53.Types
         , Network.AWS.Route53.UpdateHealthCheck
+        , Network.AWS.Route53.UpdateHostedZoneComment
 
     other-modules:
           Network.AWS.Route53.Internal
 
     build-depends:
-          amazonka-core == 0.0.7.*
+          amazonka-core == 0.0.8.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/Route53.hs b/gen/Network/AWS/Route53.hs
--- a/gen/Network/AWS/Route53.hs
+++ b/gen/Network/AWS/Route53.hs
@@ -45,6 +45,7 @@
     , module Network.AWS.Route53.ListTagsForResources
     , module Network.AWS.Route53.Types
     , module Network.AWS.Route53.UpdateHealthCheck
+    , module Network.AWS.Route53.UpdateHostedZoneComment
     ) where
 
 import Network.AWS.Route53.AssociateVPCWithHostedZone
@@ -75,3 +76,4 @@
 import Network.AWS.Route53.ListTagsForResources
 import Network.AWS.Route53.Types
 import Network.AWS.Route53.UpdateHealthCheck
+import Network.AWS.Route53.UpdateHostedZoneComment
diff --git a/gen/Network/AWS/Route53/ChangeTagsForResource.hs b/gen/Network/AWS/Route53/ChangeTagsForResource.hs
--- a/gen/Network/AWS/Route53/ChangeTagsForResource.hs
+++ b/gen/Network/AWS/Route53/ChangeTagsForResource.hs
@@ -92,7 +92,11 @@
 ctfrResourceId :: Lens' ChangeTagsForResource Text
 ctfrResourceId = lens _ctfrResourceId (\s a -> s { _ctfrResourceId = a })
 
--- | The type of the resource. The resource type for health checks is 'healthcheck'.
+-- | The type of the resource.
+--
+-- - The resource type for health checks is 'healthcheck'.
+--
+-- - The resource type for hosted zones is 'hostedzone'.
 ctfrResourceType :: Lens' ChangeTagsForResource TagResourceType
 ctfrResourceType = lens _ctfrResourceType (\s a -> s { _ctfrResourceType = a })
 
diff --git a/gen/Network/AWS/Route53/ListTagsForResource.hs b/gen/Network/AWS/Route53/ListTagsForResource.hs
--- a/gen/Network/AWS/Route53/ListTagsForResource.hs
+++ b/gen/Network/AWS/Route53/ListTagsForResource.hs
@@ -71,7 +71,11 @@
 ltfrResourceId :: Lens' ListTagsForResource Text
 ltfrResourceId = lens _ltfrResourceId (\s a -> s { _ltfrResourceId = a })
 
--- | The type of the resource. The resource type for health checks is 'healthcheck'.
+-- | The type of the resource.
+--
+-- - The resource type for health checks is 'healthcheck'.
+--
+-- - The resource type for hosted zones is 'hostedzone'.
 ltfrResourceType :: Lens' ListTagsForResource TagResourceType
 ltfrResourceType = lens _ltfrResourceType (\s a -> s { _ltfrResourceType = a })
 
diff --git a/gen/Network/AWS/Route53/ListTagsForResources.hs b/gen/Network/AWS/Route53/ListTagsForResources.hs
--- a/gen/Network/AWS/Route53/ListTagsForResources.hs
+++ b/gen/Network/AWS/Route53/ListTagsForResources.hs
@@ -72,7 +72,11 @@
 ltfr1ResourceIds :: Lens' ListTagsForResources (NonEmpty Text)
 ltfr1ResourceIds = lens _ltfr1ResourceIds (\s a -> s { _ltfr1ResourceIds = a }) . _List1
 
--- | The type of the resources. The resource type for health checks is 'healthcheck'.
+-- | The type of the resources.
+--
+-- - The resource type for health checks is 'healthcheck'.
+--
+-- - The resource type for hosted zones is 'hostedzone'.
 ltfr1ResourceType :: Lens' ListTagsForResources TagResourceType
 ltfr1ResourceType =
     lens _ltfr1ResourceType (\s a -> s { _ltfr1ResourceType = a })
diff --git a/gen/Network/AWS/Route53/Types.hs b/gen/Network/AWS/Route53/Types.hs
--- a/gen/Network/AWS/Route53/Types.hs
+++ b/gen/Network/AWS/Route53/Types.hs
@@ -7,6 +7,7 @@
 {-# LANGUAGE OverloadedStrings           #-}
 {-# LANGUAGE RecordWildCards             #-}
 {-# LANGUAGE TypeFamilies                #-}
+{-# LANGUAGE ViewPatterns                #-}
 
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
 
@@ -193,7 +194,6 @@
     , module Network.AWS.Route53.Internal
     ) where
 
-import Network.AWS.Error
 import Network.AWS.Prelude
 import Network.AWS.Signing
 import Network.AWS.Route53.Internal
@@ -206,18 +206,44 @@
     type Sg Route53 = V3
     type Er Route53 = RESTError
 
-    service = Service
-        { _svcAbbrev       = "Route53"
-        , _svcPrefix       = "route53"
-        , _svcVersion      = "2013-04-01"
-        , _svcTargetPrefix = Nothing
-        , _svcJSONVersion  = Nothing
-        }
+    service = service'
+      where
+        service' :: Service Route53
+        service' = Service
+            { _svcAbbrev       = "Route53"
+            , _svcPrefix       = "route53"
+            , _svcVersion      = "2013-04-01"
+            , _svcTargetPrefix = Nothing
+            , _svcJSONVersion  = Nothing
+            , _svcHandle       = handle
+            , _svcRetry        = retry
+            }
 
-    handle = restError statusSuccess
+        handle :: Status
+               -> Maybe (LazyByteString -> ServiceError RESTError)
+        handle = restError statusSuccess service'
 
+        retry :: Retry Route53
+        retry = Exponential
+            { _retryBase     = 0.05
+            , _retryGrowth   = 2
+            , _retryAttempts = 5
+            , _retryCheck    = check
+            }
+
+        check :: Status
+              -> RESTError
+              -> Bool
+        check (statusCode -> s) (awsErrorCode -> e)
+            | s == 400 && "Throttling" == e = True -- Throttling
+            | s == 500  = True -- General Server Error
+            | s == 509  = True -- Limit Exceeded
+            | s == 503  = True -- Service Unavailable
+            | otherwise = False
+
 ns :: Text
 ns = "http://route53.amazonaws.com/doc/2013-04-01/"
+{-# INLINE ns #-}
 
 data AliasTarget = AliasTarget
     { _atDNSName              :: Text
@@ -659,6 +685,7 @@
 
 data TagResourceType
     = Healthcheck -- ^ healthcheck
+    | Hostedzone  -- ^ hostedzone
       deriving (Eq, Ord, Show, Generic, Enum)
 
 instance Hashable TagResourceType
@@ -666,11 +693,14 @@
 instance FromText TagResourceType where
     parser = takeText >>= \case
         "healthcheck" -> pure Healthcheck
+        "hostedzone"  -> pure Hostedzone
         e             -> fail $
             "Failure parsing TagResourceType from " ++ show e
 
 instance ToText TagResourceType where
-    toText Healthcheck = "healthcheck"
+    toText = \case
+        Healthcheck -> "healthcheck"
+        Hostedzone  -> "hostedzone"
 
 instance ToByteString TagResourceType
 instance ToHeader     TagResourceType
@@ -987,7 +1017,11 @@
 rtsResourceId :: Lens' ResourceTagSet (Maybe Text)
 rtsResourceId = lens _rtsResourceId (\s a -> s { _rtsResourceId = a })
 
--- | The type of the resource. The resource type for health checks is 'healthcheck'.
+-- | The type of the resource.
+--
+-- - The resource type for health checks is 'healthcheck'.
+--
+-- - The resource type for hosted zones is 'hostedzone'.
 rtsResourceType :: Lens' ResourceTagSet (Maybe TagResourceType)
 rtsResourceType = lens _rtsResourceType (\s a -> s { _rtsResourceType = a })
 
diff --git a/gen/Network/AWS/Route53/UpdateHostedZoneComment.hs b/gen/Network/AWS/Route53/UpdateHostedZoneComment.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Route53/UpdateHostedZoneComment.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds                   #-}
+{-# LANGUAGE DeriveGeneric               #-}
+{-# LANGUAGE FlexibleInstances           #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
+{-# LANGUAGE LambdaCase                  #-}
+{-# LANGUAGE NoImplicitPrelude           #-}
+{-# LANGUAGE OverloadedStrings           #-}
+{-# LANGUAGE RecordWildCards             #-}
+{-# LANGUAGE TypeFamilies                #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Network.AWS.Route53.UpdateHostedZoneComment
+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
+-- License     : This Source Code Form is subject to the terms of
+--               the Mozilla Public License, v. 2.0.
+--               A copy of the MPL can be found in the LICENSE file or
+--               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
+-- Stability   : experimental
+-- Portability : non-portable (GHC extensions)
+--
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- | To update the hosted zone comment, send a 'POST' request to the '2013-04-01/hostedzone//hosted zone ID/ resource. The request body must include an XML document with a 'UpdateHostedZoneCommentRequest' element. The response to this request includes
+-- the modified 'HostedZone' element.
+--
+-- The comment can have a maximum length of 256 characters.
+--
+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/API_UpdateHostedZoneComment.html>
+module Network.AWS.Route53.UpdateHostedZoneComment
+    (
+    -- * Request
+      UpdateHostedZoneComment
+    -- ** Request constructor
+    , updateHostedZoneComment
+    -- ** Request lenses
+    , uhzcComment
+    , uhzcId
+
+    -- * Response
+    , UpdateHostedZoneCommentResponse
+    -- ** Response constructor
+    , updateHostedZoneCommentResponse
+    -- ** Response lenses
+    , uhzcrHostedZone
+    ) where
+
+import Network.AWS.Prelude
+import Network.AWS.Request.RestXML
+import Network.AWS.Route53.Types
+import qualified GHC.Exts
+
+data UpdateHostedZoneComment = UpdateHostedZoneComment
+    { _uhzcComment :: Maybe Text
+    , _uhzcId      :: Text
+    } deriving (Eq, Ord, Show)
+
+-- | 'UpdateHostedZoneComment' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'uhzcComment' @::@ 'Maybe' 'Text'
+--
+-- * 'uhzcId' @::@ 'Text'
+--
+updateHostedZoneComment :: Text -- ^ 'uhzcId'
+                        -> UpdateHostedZoneComment
+updateHostedZoneComment p1 = UpdateHostedZoneComment
+    { _uhzcId      = p1
+    , _uhzcComment = Nothing
+    }
+
+-- | A comment about your hosted zone.
+uhzcComment :: Lens' UpdateHostedZoneComment (Maybe Text)
+uhzcComment = lens _uhzcComment (\s a -> s { _uhzcComment = a })
+
+-- | The ID of the hosted zone you want to update.
+uhzcId :: Lens' UpdateHostedZoneComment Text
+uhzcId = lens _uhzcId (\s a -> s { _uhzcId = a })
+
+newtype UpdateHostedZoneCommentResponse = UpdateHostedZoneCommentResponse
+    { _uhzcrHostedZone :: HostedZone
+    } deriving (Eq, Show)
+
+-- | 'UpdateHostedZoneCommentResponse' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'uhzcrHostedZone' @::@ 'HostedZone'
+--
+updateHostedZoneCommentResponse :: HostedZone -- ^ 'uhzcrHostedZone'
+                                -> UpdateHostedZoneCommentResponse
+updateHostedZoneCommentResponse p1 = UpdateHostedZoneCommentResponse
+    { _uhzcrHostedZone = p1
+    }
+
+uhzcrHostedZone :: Lens' UpdateHostedZoneCommentResponse HostedZone
+uhzcrHostedZone = lens _uhzcrHostedZone (\s a -> s { _uhzcrHostedZone = a })
+
+instance ToPath UpdateHostedZoneComment where
+    toPath UpdateHostedZoneComment{..} = mconcat
+        [ "/2013-04-01/hostedzone/"
+        , toText _uhzcId
+        ]
+
+instance ToQuery UpdateHostedZoneComment where
+    toQuery = const mempty
+
+instance ToHeaders UpdateHostedZoneComment
+
+instance ToXMLRoot UpdateHostedZoneComment where
+    toXMLRoot UpdateHostedZoneComment{..} = namespaced ns "UpdateHostedZoneComment"
+        [ "Comment" =@ _uhzcComment
+        ]
+
+instance ToXML UpdateHostedZoneComment
+
+instance AWSRequest UpdateHostedZoneComment where
+    type Sv UpdateHostedZoneComment = Route53
+    type Rs UpdateHostedZoneComment = UpdateHostedZoneCommentResponse
+
+    request  = post
+    response = xmlResponse
+
+instance FromXML UpdateHostedZoneCommentResponse where
+    parseXML x = UpdateHostedZoneCommentResponse
+        <$> x .@  "HostedZone"
