diff --git a/amazonka-kms.cabal b/amazonka-kms.cabal
--- a/amazonka-kms.cabal
+++ b/amazonka-kms.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-kms
-version:               0.3.4
+version:               0.3.5
 synopsis:              Amazon Key Management Service SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -64,10 +64,11 @@
         , Network.AWS.KMS.RetireGrant
         , Network.AWS.KMS.RevokeGrant
         , Network.AWS.KMS.Types
+        , Network.AWS.KMS.UpdateAlias
         , Network.AWS.KMS.UpdateKeyDescription
 
     other-modules:
 
     build-depends:
-          amazonka-core == 0.3.4.*
+          amazonka-core == 0.3.5.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/KMS.hs b/gen/Network/AWS/KMS.hs
--- a/gen/Network/AWS/KMS.hs
+++ b/gen/Network/AWS/KMS.hs
@@ -43,6 +43,7 @@
     , module Network.AWS.KMS.RetireGrant
     , module Network.AWS.KMS.RevokeGrant
     , module Network.AWS.KMS.Types
+    , module Network.AWS.KMS.UpdateAlias
     , module Network.AWS.KMS.UpdateKeyDescription
     ) where
 
@@ -71,4 +72,5 @@
 import Network.AWS.KMS.RetireGrant
 import Network.AWS.KMS.RevokeGrant
 import Network.AWS.KMS.Types
+import Network.AWS.KMS.UpdateAlias
 import Network.AWS.KMS.UpdateKeyDescription
diff --git a/gen/Network/AWS/KMS/CreateAlias.hs b/gen/Network/AWS/KMS/CreateAlias.hs
--- a/gen/Network/AWS/KMS/CreateAlias.hs
+++ b/gen/Network/AWS/KMS/CreateAlias.hs
@@ -30,6 +30,11 @@
 -- (alias/). An alias that begins with "aws" after the forward slash
 -- (alias/aws...) is reserved by Amazon Web Services (AWS).
 --
+-- To associate an alias with a different key, call 'UpdateAlias'.
+--
+-- Note that you cannot create or update an alias that represents a key in
+-- another account.
+--
 -- <http://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html>
 module Network.AWS.KMS.CreateAlias
     (
@@ -74,15 +79,16 @@
     , _caTargetKeyId = p2
     }
 
--- | String that contains the display name. Aliases that begin with AWS are
--- reserved.
+-- | String that contains the display name. The name must start with the word
+-- "alias" followed by a forward slash (alias/). Aliases that begin with
+-- "alias/AWS" are reserved.
 caAliasName :: Lens' CreateAlias Text
 caAliasName = lens _caAliasName (\s a -> s { _caAliasName = a })
 
 -- | An identifier of the key for which you are creating the alias. This value
 -- cannot be another alias but can be a globally unique identifier or a fully
 -- specified ARN to a key.  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-123456789012
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
 --
 caTargetKeyId :: Lens' CreateAlias Text
 caTargetKeyId = lens _caTargetKeyId (\s a -> s { _caTargetKeyId = a })
diff --git a/gen/Network/AWS/KMS/CreateGrant.hs b/gen/Network/AWS/KMS/CreateGrant.hs
--- a/gen/Network/AWS/KMS/CreateGrant.hs
+++ b/gen/Network/AWS/KMS/CreateGrant.hs
@@ -112,7 +112,7 @@
 
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier or the fully specified ARN to a key.  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-123456789012
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
 --
 cgKeyId :: Lens' CreateGrant Text
 cgKeyId = lens _cgKeyId (\s a -> s { _cgKeyId = a })
diff --git a/gen/Network/AWS/KMS/DeleteAlias.hs b/gen/Network/AWS/KMS/DeleteAlias.hs
--- a/gen/Network/AWS/KMS/DeleteAlias.hs
+++ b/gen/Network/AWS/KMS/DeleteAlias.hs
@@ -22,7 +22,7 @@
 --
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
--- | Deletes the specified alias.
+-- | Deletes the specified alias. To associate an alias with a different key, call 'UpdateAlias'.
 --
 -- <http://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteAlias.html>
 module Network.AWS.KMS.DeleteAlias
@@ -62,7 +62,8 @@
     { _daAliasName = p1
     }
 
--- | The alias to be deleted.
+-- | The alias to be deleted. The name must start with the word "alias" followed
+-- by a forward slash (alias/). Aliases that begin with "alias/AWS" are reserved.
 daAliasName :: Lens' DeleteAlias Text
 daAliasName = lens _daAliasName (\s a -> s { _daAliasName = a })
 
diff --git a/gen/Network/AWS/KMS/DescribeKey.hs b/gen/Network/AWS/KMS/DescribeKey.hs
--- a/gen/Network/AWS/KMS/DescribeKey.hs
+++ b/gen/Network/AWS/KMS/DescribeKey.hs
@@ -67,9 +67,9 @@
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier, a fully specified ARN to either an alias or a key, or an
 -- alias name prefixed by "alias/".  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:/alias/MyAliasName
--- Globally Unique Key ID Example - 12345678-1234-1234-123456789012 Alias Name
--- Example - alias/MyAliasName
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
+-- Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 Alias
+-- Name Example - alias/MyAliasName
 dk1KeyId :: Lens' DescribeKey Text
 dk1KeyId = lens _dk1KeyId (\s a -> s { _dk1KeyId = a })
 
diff --git a/gen/Network/AWS/KMS/DisableKey.hs b/gen/Network/AWS/KMS/DisableKey.hs
--- a/gen/Network/AWS/KMS/DisableKey.hs
+++ b/gen/Network/AWS/KMS/DisableKey.hs
@@ -64,7 +64,7 @@
 
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier or the fully specified ARN to a key.  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-123456789012
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
 --
 dkKeyId :: Lens' DisableKey Text
 dkKeyId = lens _dkKeyId (\s a -> s { _dkKeyId = a })
diff --git a/gen/Network/AWS/KMS/DisableKeyRotation.hs b/gen/Network/AWS/KMS/DisableKeyRotation.hs
--- a/gen/Network/AWS/KMS/DisableKeyRotation.hs
+++ b/gen/Network/AWS/KMS/DisableKeyRotation.hs
@@ -64,7 +64,7 @@
 
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier or the fully specified ARN to a key.  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-123456789012
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
 --
 dkrKeyId :: Lens' DisableKeyRotation Text
 dkrKeyId = lens _dkrKeyId (\s a -> s { _dkrKeyId = a })
diff --git a/gen/Network/AWS/KMS/EnableKey.hs b/gen/Network/AWS/KMS/EnableKey.hs
--- a/gen/Network/AWS/KMS/EnableKey.hs
+++ b/gen/Network/AWS/KMS/EnableKey.hs
@@ -65,7 +65,7 @@
 
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier or the fully specified ARN to a key.  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-123456789012
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
 --
 ekKeyId :: Lens' EnableKey Text
 ekKeyId = lens _ekKeyId (\s a -> s { _ekKeyId = a })
diff --git a/gen/Network/AWS/KMS/EnableKeyRotation.hs b/gen/Network/AWS/KMS/EnableKeyRotation.hs
--- a/gen/Network/AWS/KMS/EnableKeyRotation.hs
+++ b/gen/Network/AWS/KMS/EnableKeyRotation.hs
@@ -64,7 +64,7 @@
 
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier or the fully specified ARN to a key.  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-123456789012
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
 --
 ekrKeyId :: Lens' EnableKeyRotation Text
 ekrKeyId = lens _ekrKeyId (\s a -> s { _ekrKeyId = a })
diff --git a/gen/Network/AWS/KMS/Encrypt.hs b/gen/Network/AWS/KMS/Encrypt.hs
--- a/gen/Network/AWS/KMS/Encrypt.hs
+++ b/gen/Network/AWS/KMS/Encrypt.hs
@@ -110,9 +110,9 @@
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier, a fully specified ARN to either an alias or a key, or an
 -- alias name prefixed by "alias/".  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:/alias/MyAliasName
--- Globally Unique Key ID Example - 12345678-1234-1234-123456789012 Alias Name
--- Example - alias/MyAliasName
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
+-- Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 Alias
+-- Name Example - alias/MyAliasName
 eKeyId :: Lens' Encrypt Text
 eKeyId = lens _eKeyId (\s a -> s { _eKeyId = a })
 
diff --git a/gen/Network/AWS/KMS/GenerateDataKey.hs b/gen/Network/AWS/KMS/GenerateDataKey.hs
--- a/gen/Network/AWS/KMS/GenerateDataKey.hs
+++ b/gen/Network/AWS/KMS/GenerateDataKey.hs
@@ -130,9 +130,9 @@
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier, a fully specified ARN to either an alias or a key, or an
 -- alias name prefixed by "alias/".  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:/alias/MyAliasName
--- Globally Unique Key ID Example - 12345678-1234-1234-123456789012 Alias Name
--- Example - alias/MyAliasName
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
+-- Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 Alias
+-- Name Example - alias/MyAliasName
 gdkKeyId :: Lens' GenerateDataKey Text
 gdkKeyId = lens _gdkKeyId (\s a -> s { _gdkKeyId = a })
 
diff --git a/gen/Network/AWS/KMS/GenerateDataKeyWithoutPlaintext.hs b/gen/Network/AWS/KMS/GenerateDataKeyWithoutPlaintext.hs
--- a/gen/Network/AWS/KMS/GenerateDataKeyWithoutPlaintext.hs
+++ b/gen/Network/AWS/KMS/GenerateDataKeyWithoutPlaintext.hs
@@ -103,9 +103,9 @@
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier, a fully specified ARN to either an alias or a key, or an
 -- alias name prefixed by "alias/".  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:/alias/MyAliasName
--- Globally Unique Key ID Example - 12345678-1234-1234-123456789012 Alias Name
--- Example - alias/MyAliasName
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
+-- Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 Alias
+-- Name Example - alias/MyAliasName
 gdkwpKeyId :: Lens' GenerateDataKeyWithoutPlaintext Text
 gdkwpKeyId = lens _gdkwpKeyId (\s a -> s { _gdkwpKeyId = a })
 
diff --git a/gen/Network/AWS/KMS/GetKeyPolicy.hs b/gen/Network/AWS/KMS/GetKeyPolicy.hs
--- a/gen/Network/AWS/KMS/GetKeyPolicy.hs
+++ b/gen/Network/AWS/KMS/GetKeyPolicy.hs
@@ -72,7 +72,7 @@
 
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier or the fully specified ARN to a key.  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-123456789012
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
 --
 gkpKeyId :: Lens' GetKeyPolicy Text
 gkpKeyId = lens _gkpKeyId (\s a -> s { _gkpKeyId = a })
diff --git a/gen/Network/AWS/KMS/GetKeyRotationStatus.hs b/gen/Network/AWS/KMS/GetKeyRotationStatus.hs
--- a/gen/Network/AWS/KMS/GetKeyRotationStatus.hs
+++ b/gen/Network/AWS/KMS/GetKeyRotationStatus.hs
@@ -67,7 +67,7 @@
 
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier or the fully specified ARN to a key.  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-123456789012
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
 --
 gkrsKeyId :: Lens' GetKeyRotationStatus Text
 gkrsKeyId = lens _gkrsKeyId (\s a -> s { _gkrsKeyId = a })
diff --git a/gen/Network/AWS/KMS/ListGrants.hs b/gen/Network/AWS/KMS/ListGrants.hs
--- a/gen/Network/AWS/KMS/ListGrants.hs
+++ b/gen/Network/AWS/KMS/ListGrants.hs
@@ -78,7 +78,7 @@
 
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier or the fully specified ARN to a key.  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-123456789012
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
 --
 lgKeyId :: Lens' ListGrants Text
 lgKeyId = lens _lgKeyId (\s a -> s { _lgKeyId = a })
diff --git a/gen/Network/AWS/KMS/ListKeyPolicies.hs b/gen/Network/AWS/KMS/ListKeyPolicies.hs
--- a/gen/Network/AWS/KMS/ListKeyPolicies.hs
+++ b/gen/Network/AWS/KMS/ListKeyPolicies.hs
@@ -79,9 +79,9 @@
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier, a fully specified ARN to either an alias or a key, or an
 -- alias name prefixed by "alias/".  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:/alias/MyAliasName
--- Globally Unique Key ID Example - 12345678-1234-1234-123456789012 Alias Name
--- Example - alias/MyAliasName
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
+-- Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 Alias
+-- Name Example - alias/MyAliasName
 lkpKeyId :: Lens' ListKeyPolicies Text
 lkpKeyId = lens _lkpKeyId (\s a -> s { _lkpKeyId = a })
 
diff --git a/gen/Network/AWS/KMS/PutKeyPolicy.hs b/gen/Network/AWS/KMS/PutKeyPolicy.hs
--- a/gen/Network/AWS/KMS/PutKeyPolicy.hs
+++ b/gen/Network/AWS/KMS/PutKeyPolicy.hs
@@ -76,7 +76,7 @@
 
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier or the fully specified ARN to a key.  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-123456789012
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
 --
 pkpKeyId :: Lens' PutKeyPolicy Text
 pkpKeyId = lens _pkpKeyId (\s a -> s { _pkpKeyId = a })
diff --git a/gen/Network/AWS/KMS/ReEncrypt.hs b/gen/Network/AWS/KMS/ReEncrypt.hs
--- a/gen/Network/AWS/KMS/ReEncrypt.hs
+++ b/gen/Network/AWS/KMS/ReEncrypt.hs
@@ -27,6 +27,13 @@
 -- decrypted and then encrypted. This operation can also be used to change the
 -- encryption context of a ciphertext.
 --
+-- Unlike other actions, 'ReEncrypt' is authorized twice - once as 'ReEncryptFrom'
+-- on the source key and once as 'ReEncryptTo' on the destination key. We
+-- therefore recommend that you include the '"action":"kms:ReEncrypt*"' statement
+-- in your key policies to permit re-encryption from or to the key. The
+-- statement is included automatically when you authorize use of the key through
+-- the console but must be included manually when you set a policy by using the 'PutKeyPolicy' function.
+--
 -- <http://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html>
 module Network.AWS.KMS.ReEncrypt
     (
@@ -105,9 +112,9 @@
 -- This value can be a globally unique identifier, a fully specified ARN to
 -- either an alias or a key, or an alias name prefixed by "alias/".  Key ARN
 -- Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:/alias/MyAliasName
--- Globally Unique Key ID Example - 12345678-1234-1234-123456789012 Alias Name
--- Example - alias/MyAliasName
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Alias ARN Example - arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
+-- Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012 Alias
+-- Name Example - alias/MyAliasName
 reDestinationKeyId :: Lens' ReEncrypt Text
 reDestinationKeyId =
     lens _reDestinationKeyId (\s a -> s { _reDestinationKeyId = a })
diff --git a/gen/Network/AWS/KMS/RetireGrant.hs b/gen/Network/AWS/KMS/RetireGrant.hs
--- a/gen/Network/AWS/KMS/RetireGrant.hs
+++ b/gen/Network/AWS/KMS/RetireGrant.hs
@@ -26,7 +26,11 @@
 -- up. You should revoke a grant when you intend to actively deny operations
 -- that depend on it. The following are permitted to call this API:  The account
 -- that created the grant The 'RetiringPrincipal', if present The 'GranteePrincipal', if
--- 'RetireGrant' is a grantee operation
+-- 'RetireGrant' is a grantee operation  The grant to retire must be identified by
+-- its grant token or by a combination of the key ARN and the grant ID. A grant
+-- token is a unique variable-length base64-encoded string. A grant ID is a 64
+-- character unique identifier of a grant. Both are returned by the 'CreateGrant'
+-- function.
 --
 -- <http://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html>
 module Network.AWS.KMS.RetireGrant
@@ -36,7 +40,9 @@
     -- ** Request constructor
     , retireGrant
     -- ** Request lenses
+    , rgGrantId
     , rgGrantToken
+    , rgKeyId
 
     -- * Response
     , RetireGrantResponse
@@ -50,26 +56,47 @@
 import Network.AWS.KMS.Types
 import qualified GHC.Exts
 
-newtype RetireGrant = RetireGrant
-    { _rgGrantToken :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+data RetireGrant = RetireGrant
+    { _rgGrantId    :: Maybe Text
+    , _rgGrantToken :: Maybe Text
+    , _rgKeyId      :: Maybe Text
+    } deriving (Eq, Ord, Read, Show)
 
 -- | 'RetireGrant' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'rgGrantToken' @::@ 'Text'
+-- * 'rgGrantId' @::@ 'Maybe' 'Text'
 --
-retireGrant :: Text -- ^ 'rgGrantToken'
-            -> RetireGrant
-retireGrant p1 = RetireGrant
-    { _rgGrantToken = p1
+-- * 'rgGrantToken' @::@ 'Maybe' 'Text'
+--
+-- * 'rgKeyId' @::@ 'Maybe' 'Text'
+--
+retireGrant :: RetireGrant
+retireGrant = RetireGrant
+    { _rgGrantToken = Nothing
+    , _rgKeyId      = Nothing
+    , _rgGrantId    = Nothing
     }
 
+-- | Unique identifier of the grant to be retired. The grant ID is returned by
+-- the 'CreateGrant' function.  Grant ID Example -
+-- 0123456789012345678901234567890123456789012345678901234567890123
+rgGrantId :: Lens' RetireGrant (Maybe Text)
+rgGrantId = lens _rgGrantId (\s a -> s { _rgGrantId = a })
+
 -- | Token that identifies the grant to be retired.
-rgGrantToken :: Lens' RetireGrant Text
+rgGrantToken :: Lens' RetireGrant (Maybe Text)
 rgGrantToken = lens _rgGrantToken (\s a -> s { _rgGrantToken = a })
 
+-- | A unique identifier for the customer master key associated with the grant.
+-- This value can be a globally unique identifier or a fully specified ARN of
+-- the key.  Key ARN Example -
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
+--
+rgKeyId :: Lens' RetireGrant (Maybe Text)
+rgKeyId = lens _rgKeyId (\s a -> s { _rgKeyId = a })
+
 data RetireGrantResponse = RetireGrantResponse
     deriving (Eq, Ord, Read, Show, Generic)
 
@@ -88,6 +115,8 @@
 instance ToJSON RetireGrant where
     toJSON RetireGrant{..} = object
         [ "GrantToken" .= _rgGrantToken
+        , "KeyId"      .= _rgKeyId
+        , "GrantId"    .= _rgGrantId
         ]
 
 instance AWSRequest RetireGrant where
diff --git a/gen/Network/AWS/KMS/RevokeGrant.hs b/gen/Network/AWS/KMS/RevokeGrant.hs
--- a/gen/Network/AWS/KMS/RevokeGrant.hs
+++ b/gen/Network/AWS/KMS/RevokeGrant.hs
@@ -33,8 +33,8 @@
     -- ** Request constructor
     , revokeGrant
     -- ** Request lenses
-    , rgGrantId
-    , rgKeyId
+    , rg1GrantId
+    , rg1KeyId
 
     -- * Response
     , RevokeGrantResponse
@@ -49,37 +49,37 @@
 import qualified GHC.Exts
 
 data RevokeGrant = RevokeGrant
-    { _rgGrantId :: Text
-    , _rgKeyId   :: Text
+    { _rg1GrantId :: Text
+    , _rg1KeyId   :: Text
     } deriving (Eq, Ord, Read, Show)
 
 -- | 'RevokeGrant' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'rgGrantId' @::@ 'Text'
+-- * 'rg1GrantId' @::@ 'Text'
 --
--- * 'rgKeyId' @::@ 'Text'
+-- * 'rg1KeyId' @::@ 'Text'
 --
-revokeGrant :: Text -- ^ 'rgKeyId'
-            -> Text -- ^ 'rgGrantId'
+revokeGrant :: Text -- ^ 'rg1KeyId'
+            -> Text -- ^ 'rg1GrantId'
             -> RevokeGrant
 revokeGrant p1 p2 = RevokeGrant
-    { _rgKeyId   = p1
-    , _rgGrantId = p2
+    { _rg1KeyId   = p1
+    , _rg1GrantId = p2
     }
 
 -- | Identifier of the grant to be revoked.
-rgGrantId :: Lens' RevokeGrant Text
-rgGrantId = lens _rgGrantId (\s a -> s { _rgGrantId = a })
+rg1GrantId :: Lens' RevokeGrant Text
+rg1GrantId = lens _rg1GrantId (\s a -> s { _rg1GrantId = a })
 
 -- | A unique identifier for the customer master key associated with the grant.
 -- This value can be a globally unique identifier or the fully specified ARN to
 -- a key.  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-123456789012
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
 --
-rgKeyId :: Lens' RevokeGrant Text
-rgKeyId = lens _rgKeyId (\s a -> s { _rgKeyId = a })
+rg1KeyId :: Lens' RevokeGrant Text
+rg1KeyId = lens _rg1KeyId (\s a -> s { _rg1KeyId = a })
 
 data RevokeGrantResponse = RevokeGrantResponse
     deriving (Eq, Ord, Read, Show, Generic)
@@ -98,8 +98,8 @@
 
 instance ToJSON RevokeGrant where
     toJSON RevokeGrant{..} = object
-        [ "KeyId"   .= _rgKeyId
-        , "GrantId" .= _rgGrantId
+        [ "KeyId"   .= _rg1KeyId
+        , "GrantId" .= _rg1GrantId
         ]
 
 instance AWSRequest RevokeGrant where
diff --git a/gen/Network/AWS/KMS/UpdateAlias.hs b/gen/Network/AWS/KMS/UpdateAlias.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/KMS/UpdateAlias.hs
@@ -0,0 +1,123 @@
+{-# 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.KMS.UpdateAlias
+-- 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.
+
+-- | Updates an alias to associate it with a different key.
+--
+-- An alias name can contain only alphanumeric characters, forward slashes (/),
+-- underscores (_), and dashes (-). An alias must start with the word "alias"
+-- followed by a forward slash (alias/). An alias that begins with "aws" after
+-- the forward slash (alias/aws...) is reserved by Amazon Web Services (AWS).
+--
+-- An alias is not a property of a key. Therefore, an alias can be associated
+-- with and disassociated from an existing key without changing the properties
+-- of the key.
+--
+-- Note that you cannot create or update an alias that represents a key in
+-- another account.
+--
+-- <http://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.html>
+module Network.AWS.KMS.UpdateAlias
+    (
+    -- * Request
+      UpdateAlias
+    -- ** Request constructor
+    , updateAlias
+    -- ** Request lenses
+    , uaAliasName
+    , uaTargetKeyId
+
+    -- * Response
+    , UpdateAliasResponse
+    -- ** Response constructor
+    , updateAliasResponse
+    ) where
+
+import Network.AWS.Data (Object)
+import Network.AWS.Prelude
+import Network.AWS.Request.JSON
+import Network.AWS.KMS.Types
+import qualified GHC.Exts
+
+data UpdateAlias = UpdateAlias
+    { _uaAliasName   :: Text
+    , _uaTargetKeyId :: Text
+    } deriving (Eq, Ord, Read, Show)
+
+-- | 'UpdateAlias' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'uaAliasName' @::@ 'Text'
+--
+-- * 'uaTargetKeyId' @::@ 'Text'
+--
+updateAlias :: Text -- ^ 'uaAliasName'
+            -> Text -- ^ 'uaTargetKeyId'
+            -> UpdateAlias
+updateAlias p1 p2 = UpdateAlias
+    { _uaAliasName   = p1
+    , _uaTargetKeyId = p2
+    }
+
+-- | String that contains the name of the alias to be modifed. The name must start
+-- with the word "alias" followed by a forward slash (alias/). Aliases that
+-- begin with "alias/AWS" are reserved.
+uaAliasName :: Lens' UpdateAlias Text
+uaAliasName = lens _uaAliasName (\s a -> s { _uaAliasName = a })
+
+-- | Unique identifier of the customer master key to be associated with the alias.
+-- This value can be a globally unique identifier or the fully specified ARN of
+-- a key.  Key ARN Example -
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
+--
+uaTargetKeyId :: Lens' UpdateAlias Text
+uaTargetKeyId = lens _uaTargetKeyId (\s a -> s { _uaTargetKeyId = a })
+
+data UpdateAliasResponse = UpdateAliasResponse
+    deriving (Eq, Ord, Read, Show, Generic)
+
+-- | 'UpdateAliasResponse' constructor.
+updateAliasResponse :: UpdateAliasResponse
+updateAliasResponse = UpdateAliasResponse
+
+instance ToPath UpdateAlias where
+    toPath = const "/"
+
+instance ToQuery UpdateAlias where
+    toQuery = const mempty
+
+instance ToHeaders UpdateAlias
+
+instance ToJSON UpdateAlias where
+    toJSON UpdateAlias{..} = object
+        [ "AliasName"   .= _uaAliasName
+        , "TargetKeyId" .= _uaTargetKeyId
+        ]
+
+instance AWSRequest UpdateAlias where
+    type Sv UpdateAlias = KMS
+    type Rs UpdateAlias = UpdateAliasResponse
+
+    request  = post "UpdateAlias"
+    response = nullResponse UpdateAliasResponse
diff --git a/gen/Network/AWS/KMS/UpdateKeyDescription.hs b/gen/Network/AWS/KMS/UpdateKeyDescription.hs
--- a/gen/Network/AWS/KMS/UpdateKeyDescription.hs
+++ b/gen/Network/AWS/KMS/UpdateKeyDescription.hs
@@ -74,7 +74,7 @@
 
 -- | A unique identifier for the customer master key. This value can be a globally
 -- unique identifier or the fully specified ARN to a key.  Key ARN Example -
--- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-123456789012
+-- arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 Globally Unique Key ID Example - 12345678-1234-1234-1234-123456789012
 --
 ukdKeyId :: Lens' UpdateKeyDescription Text
 ukdKeyId = lens _ukdKeyId (\s a -> s { _ukdKeyId = a })
