diff --git a/amazonka-iam.cabal b/amazonka-iam.cabal
--- a/amazonka-iam.cabal
+++ b/amazonka-iam.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-iam
-version:               0.3.3
+version:               0.3.4
 synopsis:              Amazon Identity and Access Management SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -144,5 +144,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core == 0.3.3.*
+          amazonka-core == 0.3.4.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/IAM/GetAccountAuthorizationDetails.hs b/gen/Network/AWS/IAM/GetAccountAuthorizationDetails.hs
--- a/gen/Network/AWS/IAM/GetAccountAuthorizationDetails.hs
+++ b/gen/Network/AWS/IAM/GetAccountAuthorizationDetails.hs
@@ -25,7 +25,7 @@
 -- | Retrieves information about all IAM users, groups, and roles in your account,
 -- including their relationships to one another and their policies. Use this API
 -- to obtain a snapshot of the configuration of IAM permissions (users, groups,
--- roles, and their policies) in your account.
+-- roles, and policies) in your account.
 --
 -- You can optionally filter the results using the 'Filter' parameter. You can
 -- paginate the results using the 'MaxItems' and 'Marker' parameters.
@@ -50,6 +50,7 @@
     , gaadrGroupDetailList
     , gaadrIsTruncated
     , gaadrMarker
+    , gaadrPolicies
     , gaadrRoleDetailList
     , gaadrUserDetailList
     ) where
@@ -82,7 +83,8 @@
     , _gaadMarker   = Nothing
     }
 
--- | A list of entity types (user, group, or role) for filtering the results.
+-- | A list of entity types (user, group, role, local managed policy, or AWS
+-- managed policy) for filtering the results.
 gaadFilter :: Lens' GetAccountAuthorizationDetails [EntityType]
 gaadFilter = lens _gaadFilter (\s a -> s { _gaadFilter = a }) . _List
 
@@ -103,6 +105,7 @@
     { _gaadrGroupDetailList :: List "member" GroupDetail
     , _gaadrIsTruncated     :: Maybe Bool
     , _gaadrMarker          :: Maybe Text
+    , _gaadrPolicies        :: List "member" ManagedPolicyDetail
     , _gaadrRoleDetailList  :: List "member" RoleDetail
     , _gaadrUserDetailList  :: List "member" UserDetail
     } deriving (Eq, Read, Show)
@@ -117,6 +120,8 @@
 --
 -- * 'gaadrMarker' @::@ 'Maybe' 'Text'
 --
+-- * 'gaadrPolicies' @::@ ['ManagedPolicyDetail']
+--
 -- * 'gaadrRoleDetailList' @::@ ['RoleDetail']
 --
 -- * 'gaadrUserDetailList' @::@ ['UserDetail']
@@ -126,6 +131,7 @@
     { _gaadrUserDetailList  = mempty
     , _gaadrGroupDetailList = mempty
     , _gaadrRoleDetailList  = mempty
+    , _gaadrPolicies        = mempty
     , _gaadrIsTruncated     = Nothing
     , _gaadrMarker          = Nothing
     }
@@ -147,6 +153,10 @@
 gaadrMarker :: Lens' GetAccountAuthorizationDetailsResponse (Maybe Text)
 gaadrMarker = lens _gaadrMarker (\s a -> s { _gaadrMarker = a })
 
+-- | A list containing information about managed policies.
+gaadrPolicies :: Lens' GetAccountAuthorizationDetailsResponse [ManagedPolicyDetail]
+gaadrPolicies = lens _gaadrPolicies (\s a -> s { _gaadrPolicies = a }) . _List
+
 -- | A list containing information about IAM roles.
 gaadrRoleDetailList :: Lens' GetAccountAuthorizationDetailsResponse [RoleDetail]
 gaadrRoleDetailList =
@@ -183,5 +193,6 @@
         <$> x .@? "GroupDetailList" .!@ mempty
         <*> x .@? "IsTruncated"
         <*> x .@? "Marker"
+        <*> x .@? "Policies" .!@ mempty
         <*> x .@? "RoleDetailList" .!@ mempty
         <*> x .@? "UserDetailList" .!@ mempty
diff --git a/gen/Network/AWS/IAM/Types.hs b/gen/Network/AWS/IAM/Types.hs
--- a/gen/Network/AWS/IAM/Types.hs
+++ b/gen/Network/AWS/IAM/Types.hs
@@ -32,6 +32,21 @@
     -- ** XML
     , ns
 
+    -- * ManagedPolicyDetail
+    , ManagedPolicyDetail
+    , managedPolicyDetail
+    , mpdArn
+    , mpdAttachmentCount
+    , mpdCreateDate
+    , mpdDefaultVersionId
+    , mpdDescription
+    , mpdIsAttachable
+    , mpdPath
+    , mpdPolicyId
+    , mpdPolicyName
+    , mpdPolicyVersionList
+    , mpdUpdateDate
+
     -- * PolicyRole
     , PolicyRole
     , policyRole
@@ -99,6 +114,7 @@
     , roleDetail
     , rdArn
     , rdAssumeRolePolicyDocument
+    , rdAttachedManagedPolicies
     , rdCreateDate
     , rdInstanceProfileList
     , rdPath
@@ -141,6 +157,7 @@
     , GroupDetail
     , groupDetail
     , gdArn
+    , gdAttachedManagedPolicies
     , gdCreateDate
     , gdGroupId
     , gdGroupName
@@ -198,6 +215,7 @@
     , UserDetail
     , userDetail
     , udArn
+    , udAttachedManagedPolicies
     , udCreateDate
     , udGroupList
     , udPath
@@ -317,6 +335,151 @@
 ns = "https://iam.amazonaws.com/doc/2010-05-08/"
 {-# INLINE ns #-}
 
+data ManagedPolicyDetail = ManagedPolicyDetail
+    { _mpdArn               :: Maybe Text
+    , _mpdAttachmentCount   :: Maybe Int
+    , _mpdCreateDate        :: Maybe ISO8601
+    , _mpdDefaultVersionId  :: Maybe Text
+    , _mpdDescription       :: Maybe Text
+    , _mpdIsAttachable      :: Maybe Bool
+    , _mpdPath              :: Maybe Text
+    , _mpdPolicyId          :: Maybe Text
+    , _mpdPolicyName        :: Maybe Text
+    , _mpdPolicyVersionList :: List "member" PolicyVersion
+    , _mpdUpdateDate        :: Maybe ISO8601
+    } deriving (Eq, Read, Show)
+
+-- | 'ManagedPolicyDetail' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'mpdArn' @::@ 'Maybe' 'Text'
+--
+-- * 'mpdAttachmentCount' @::@ 'Maybe' 'Int'
+--
+-- * 'mpdCreateDate' @::@ 'Maybe' 'UTCTime'
+--
+-- * 'mpdDefaultVersionId' @::@ 'Maybe' 'Text'
+--
+-- * 'mpdDescription' @::@ 'Maybe' 'Text'
+--
+-- * 'mpdIsAttachable' @::@ 'Maybe' 'Bool'
+--
+-- * 'mpdPath' @::@ 'Maybe' 'Text'
+--
+-- * 'mpdPolicyId' @::@ 'Maybe' 'Text'
+--
+-- * 'mpdPolicyName' @::@ 'Maybe' 'Text'
+--
+-- * 'mpdPolicyVersionList' @::@ ['PolicyVersion']
+--
+-- * 'mpdUpdateDate' @::@ 'Maybe' 'UTCTime'
+--
+managedPolicyDetail :: ManagedPolicyDetail
+managedPolicyDetail = ManagedPolicyDetail
+    { _mpdPolicyName        = Nothing
+    , _mpdPolicyId          = Nothing
+    , _mpdArn               = Nothing
+    , _mpdPath              = Nothing
+    , _mpdDefaultVersionId  = Nothing
+    , _mpdAttachmentCount   = Nothing
+    , _mpdIsAttachable      = Nothing
+    , _mpdDescription       = Nothing
+    , _mpdCreateDate        = Nothing
+    , _mpdUpdateDate        = Nothing
+    , _mpdPolicyVersionList = mempty
+    }
+
+mpdArn :: Lens' ManagedPolicyDetail (Maybe Text)
+mpdArn = lens _mpdArn (\s a -> s { _mpdArn = a })
+
+-- | The number of principal entities (users, groups, and roles) that the policy
+-- is attached to.
+mpdAttachmentCount :: Lens' ManagedPolicyDetail (Maybe Int)
+mpdAttachmentCount =
+    lens _mpdAttachmentCount (\s a -> s { _mpdAttachmentCount = a })
+
+-- | The date and time, in <http://www.iso.org/iso/iso8601 ISO 8601 date-time format>, when the policy was created.
+mpdCreateDate :: Lens' ManagedPolicyDetail (Maybe UTCTime)
+mpdCreateDate = lens _mpdCreateDate (\s a -> s { _mpdCreateDate = a }) . mapping _Time
+
+-- | The identifier for the version of the policy that is set as the default
+-- (operative) version.
+--
+-- For more information about policy versions, see <http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html Versioning for ManagedPolicies> in the /Using IAM/ guide.
+mpdDefaultVersionId :: Lens' ManagedPolicyDetail (Maybe Text)
+mpdDefaultVersionId =
+    lens _mpdDefaultVersionId (\s a -> s { _mpdDefaultVersionId = a })
+
+-- | A friendly description of the policy.
+mpdDescription :: Lens' ManagedPolicyDetail (Maybe Text)
+mpdDescription = lens _mpdDescription (\s a -> s { _mpdDescription = a })
+
+-- | Specifies whether the policy can be attached to an IAM user, group, or role.
+mpdIsAttachable :: Lens' ManagedPolicyDetail (Maybe Bool)
+mpdIsAttachable = lens _mpdIsAttachable (\s a -> s { _mpdIsAttachable = a })
+
+-- | The path to the policy.
+--
+-- For more information about paths, see <http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html IAM Identifiers> in the /Using IAM/ guide.
+mpdPath :: Lens' ManagedPolicyDetail (Maybe Text)
+mpdPath = lens _mpdPath (\s a -> s { _mpdPath = a })
+
+-- | The stable and unique string identifying the policy.
+--
+-- For more information about IDs, see <http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html IAM Identifiers> in the /Using IAM/ guide.
+mpdPolicyId :: Lens' ManagedPolicyDetail (Maybe Text)
+mpdPolicyId = lens _mpdPolicyId (\s a -> s { _mpdPolicyId = a })
+
+-- | The friendly name (not ARN) identifying the policy.
+mpdPolicyName :: Lens' ManagedPolicyDetail (Maybe Text)
+mpdPolicyName = lens _mpdPolicyName (\s a -> s { _mpdPolicyName = a })
+
+-- | A list containing information about the versions of the policy.
+mpdPolicyVersionList :: Lens' ManagedPolicyDetail [PolicyVersion]
+mpdPolicyVersionList =
+    lens _mpdPolicyVersionList (\s a -> s { _mpdPolicyVersionList = a })
+        . _List
+
+-- | The date and time, in <http://www.iso.org/iso/iso8601 ISO 8601 date-time format>, when the policy was last
+-- updated.
+--
+-- When a policy has only one version, this field contains the date and time
+-- when the policy was created. When a policy has more than one version, this
+-- field contains the date and time when the most recent policy version was
+-- created.
+mpdUpdateDate :: Lens' ManagedPolicyDetail (Maybe UTCTime)
+mpdUpdateDate = lens _mpdUpdateDate (\s a -> s { _mpdUpdateDate = a }) . mapping _Time
+
+instance FromXML ManagedPolicyDetail where
+    parseXML x = ManagedPolicyDetail
+        <$> x .@? "Arn"
+        <*> x .@? "AttachmentCount"
+        <*> x .@? "CreateDate"
+        <*> x .@? "DefaultVersionId"
+        <*> x .@? "Description"
+        <*> x .@? "IsAttachable"
+        <*> x .@? "Path"
+        <*> x .@? "PolicyId"
+        <*> x .@? "PolicyName"
+        <*> x .@? "PolicyVersionList" .!@ mempty
+        <*> x .@? "UpdateDate"
+
+instance ToQuery ManagedPolicyDetail where
+    toQuery ManagedPolicyDetail{..} = mconcat
+        [ "Arn"               =? _mpdArn
+        , "AttachmentCount"   =? _mpdAttachmentCount
+        , "CreateDate"        =? _mpdCreateDate
+        , "DefaultVersionId"  =? _mpdDefaultVersionId
+        , "Description"       =? _mpdDescription
+        , "IsAttachable"      =? _mpdIsAttachable
+        , "Path"              =? _mpdPath
+        , "PolicyId"          =? _mpdPolicyId
+        , "PolicyName"        =? _mpdPolicyName
+        , "PolicyVersionList" =? _mpdPolicyVersionList
+        , "UpdateDate"        =? _mpdUpdateDate
+        ]
+
 newtype PolicyRole = PolicyRole
     { _prRoleName :: Maybe Text
     } deriving (Eq, Ord, Read, Show, Monoid)
@@ -707,8 +870,7 @@
 -- | The policy document.
 --
 -- The policy document is returned in the response to the 'GetPolicyVersion'
--- operation. It is not included in the response to the 'ListPolicyVersions'
--- operation.
+-- operation. It is not included in the response to the 'ListPolicyVersions' or 'GetAccountAuthorizationDetails' operations.
 pvDocument :: Lens' PolicyVersion (Maybe Text)
 pvDocument = lens _pvDocument (\s a -> s { _pvDocument = a })
 
@@ -830,6 +992,7 @@
 data RoleDetail = RoleDetail
     { _rdArn                      :: Maybe Text
     , _rdAssumeRolePolicyDocument :: Maybe Text
+    , _rdAttachedManagedPolicies  :: List "member" AttachedPolicy
     , _rdCreateDate               :: Maybe ISO8601
     , _rdInstanceProfileList      :: List "member" InstanceProfile
     , _rdPath                     :: Maybe Text
@@ -846,6 +1009,8 @@
 --
 -- * 'rdAssumeRolePolicyDocument' @::@ 'Maybe' 'Text'
 --
+-- * 'rdAttachedManagedPolicies' @::@ ['AttachedPolicy']
+--
 -- * 'rdCreateDate' @::@ 'Maybe' 'UTCTime'
 --
 -- * 'rdInstanceProfileList' @::@ ['InstanceProfile']
@@ -868,6 +1033,7 @@
     , _rdAssumeRolePolicyDocument = Nothing
     , _rdInstanceProfileList      = mempty
     , _rdRolePolicyList           = mempty
+    , _rdAttachedManagedPolicies  = mempty
     }
 
 rdArn :: Lens' RoleDetail (Maybe Text)
@@ -881,6 +1047,14 @@
     lens _rdAssumeRolePolicyDocument
         (\s a -> s { _rdAssumeRolePolicyDocument = a })
 
+-- | A list of managed policies attached to the role. These policies are the
+-- role's access (permissions) policies.
+rdAttachedManagedPolicies :: Lens' RoleDetail [AttachedPolicy]
+rdAttachedManagedPolicies =
+    lens _rdAttachedManagedPolicies
+        (\s a -> s { _rdAttachedManagedPolicies = a })
+            . _List
+
 -- | The date and time, in <http://www.iso.org/iso/iso8601 ISO 8601 date-time format>, when the role was created.
 rdCreateDate :: Lens' RoleDetail (Maybe UTCTime)
 rdCreateDate = lens _rdCreateDate (\s a -> s { _rdCreateDate = a }) . mapping _Time
@@ -904,7 +1078,8 @@
 rdRoleName :: Lens' RoleDetail (Maybe Text)
 rdRoleName = lens _rdRoleName (\s a -> s { _rdRoleName = a })
 
--- | A list of the role's access (permissions) policies.
+-- | A list of inline policies embedded in the role. These policies are the role's
+-- access (permissions) policies.
 rdRolePolicyList :: Lens' RoleDetail [PolicyDetail]
 rdRolePolicyList = lens _rdRolePolicyList (\s a -> s { _rdRolePolicyList = a }) . _List
 
@@ -912,6 +1087,7 @@
     parseXML x = RoleDetail
         <$> x .@? "Arn"
         <*> x .@? "AssumeRolePolicyDocument"
+        <*> x .@? "AttachedManagedPolicies" .!@ mempty
         <*> x .@? "CreateDate"
         <*> x .@? "InstanceProfileList" .!@ mempty
         <*> x .@? "Path"
@@ -923,6 +1099,7 @@
     toQuery RoleDetail{..} = mconcat
         [ "Arn"                      =? _rdArn
         , "AssumeRolePolicyDocument" =? _rdAssumeRolePolicyDocument
+        , "AttachedManagedPolicies"  =? _rdAttachedManagedPolicies
         , "CreateDate"               =? _rdCreateDate
         , "InstanceProfileList"      =? _rdInstanceProfileList
         , "Path"                     =? _rdPath
@@ -1121,26 +1298,32 @@
         ]
 
 data EntityType
-    = ETGroup -- ^ Group
-    | ETRole  -- ^ Role
-    | ETUser  -- ^ User
+    = ETAWSManagedPolicy   -- ^ AWSManagedPolicy
+    | ETGroup              -- ^ Group
+    | ETLocalManagedPolicy -- ^ LocalManagedPolicy
+    | ETRole               -- ^ Role
+    | ETUser               -- ^ User
       deriving (Eq, Ord, Read, Show, Generic, Enum)
 
 instance Hashable EntityType
 
 instance FromText EntityType where
     parser = takeLowerText >>= \case
-        "group" -> pure ETGroup
-        "role"  -> pure ETRole
-        "user"  -> pure ETUser
-        e       -> fail $
+        "awsmanagedpolicy"   -> pure ETAWSManagedPolicy
+        "group"              -> pure ETGroup
+        "localmanagedpolicy" -> pure ETLocalManagedPolicy
+        "role"               -> pure ETRole
+        "user"               -> pure ETUser
+        e                    -> fail $
             "Failure parsing EntityType from " ++ show e
 
 instance ToText EntityType where
     toText = \case
-        ETGroup -> "Group"
-        ETRole  -> "Role"
-        ETUser  -> "User"
+        ETAWSManagedPolicy   -> "AWSManagedPolicy"
+        ETGroup              -> "Group"
+        ETLocalManagedPolicy -> "LocalManagedPolicy"
+        ETRole               -> "Role"
+        ETUser               -> "User"
 
 instance ToByteString EntityType
 instance ToHeader     EntityType
@@ -1245,12 +1428,13 @@
     parseXML = parseXMLText "SummaryKeyType"
 
 data GroupDetail = GroupDetail
-    { _gdArn             :: Maybe Text
-    , _gdCreateDate      :: Maybe ISO8601
-    , _gdGroupId         :: Maybe Text
-    , _gdGroupName       :: Maybe Text
-    , _gdGroupPolicyList :: List "member" PolicyDetail
-    , _gdPath            :: Maybe Text
+    { _gdArn                     :: Maybe Text
+    , _gdAttachedManagedPolicies :: List "member" AttachedPolicy
+    , _gdCreateDate              :: Maybe ISO8601
+    , _gdGroupId                 :: Maybe Text
+    , _gdGroupName               :: Maybe Text
+    , _gdGroupPolicyList         :: List "member" PolicyDetail
+    , _gdPath                    :: Maybe Text
     } deriving (Eq, Read, Show)
 
 -- | 'GroupDetail' constructor.
@@ -1259,6 +1443,8 @@
 --
 -- * 'gdArn' @::@ 'Maybe' 'Text'
 --
+-- * 'gdAttachedManagedPolicies' @::@ ['AttachedPolicy']
+--
 -- * 'gdCreateDate' @::@ 'Maybe' 'UTCTime'
 --
 -- * 'gdGroupId' @::@ 'Maybe' 'Text'
@@ -1271,17 +1457,25 @@
 --
 groupDetail :: GroupDetail
 groupDetail = GroupDetail
-    { _gdPath            = Nothing
-    , _gdGroupName       = Nothing
-    , _gdGroupId         = Nothing
-    , _gdArn             = Nothing
-    , _gdCreateDate      = Nothing
-    , _gdGroupPolicyList = mempty
+    { _gdPath                    = Nothing
+    , _gdGroupName               = Nothing
+    , _gdGroupId                 = Nothing
+    , _gdArn                     = Nothing
+    , _gdCreateDate              = Nothing
+    , _gdGroupPolicyList         = mempty
+    , _gdAttachedManagedPolicies = mempty
     }
 
 gdArn :: Lens' GroupDetail (Maybe Text)
 gdArn = lens _gdArn (\s a -> s { _gdArn = a })
 
+-- | A list of the managed policies attached to the group.
+gdAttachedManagedPolicies :: Lens' GroupDetail [AttachedPolicy]
+gdAttachedManagedPolicies =
+    lens _gdAttachedManagedPolicies
+        (\s a -> s { _gdAttachedManagedPolicies = a })
+            . _List
+
 -- | The date and time, in <http://www.iso.org/iso/iso8601 ISO 8601 date-time format>, when the group was created.
 gdCreateDate :: Lens' GroupDetail (Maybe UTCTime)
 gdCreateDate = lens _gdCreateDate (\s a -> s { _gdCreateDate = a }) . mapping _Time
@@ -1295,7 +1489,7 @@
 gdGroupName :: Lens' GroupDetail (Maybe Text)
 gdGroupName = lens _gdGroupName (\s a -> s { _gdGroupName = a })
 
--- | A list of the group's policies.
+-- | A list of the inline policies embedded in the group.
 gdGroupPolicyList :: Lens' GroupDetail [PolicyDetail]
 gdGroupPolicyList =
     lens _gdGroupPolicyList (\s a -> s { _gdGroupPolicyList = a })
@@ -1309,6 +1503,7 @@
 instance FromXML GroupDetail where
     parseXML x = GroupDetail
         <$> x .@? "Arn"
+        <*> x .@? "AttachedManagedPolicies" .!@ mempty
         <*> x .@? "CreateDate"
         <*> x .@? "GroupId"
         <*> x .@? "GroupName"
@@ -1317,12 +1512,13 @@
 
 instance ToQuery GroupDetail where
     toQuery GroupDetail{..} = mconcat
-        [ "Arn"             =? _gdArn
-        , "CreateDate"      =? _gdCreateDate
-        , "GroupId"         =? _gdGroupId
-        , "GroupName"       =? _gdGroupName
-        , "GroupPolicyList" =? _gdGroupPolicyList
-        , "Path"            =? _gdPath
+        [ "Arn"                     =? _gdArn
+        , "AttachedManagedPolicies" =? _gdAttachedManagedPolicies
+        , "CreateDate"              =? _gdCreateDate
+        , "GroupId"                 =? _gdGroupId
+        , "GroupName"               =? _gdGroupName
+        , "GroupPolicyList"         =? _gdGroupPolicyList
+        , "Path"                    =? _gdPath
         ]
 
 data ReportStateType
@@ -1716,13 +1912,14 @@
     parseXML = parseXMLText "PolicyScopeType"
 
 data UserDetail = UserDetail
-    { _udArn            :: Maybe Text
-    , _udCreateDate     :: Maybe ISO8601
-    , _udGroupList      :: List "member" Text
-    , _udPath           :: Maybe Text
-    , _udUserId         :: Maybe Text
-    , _udUserName       :: Maybe Text
-    , _udUserPolicyList :: List "member" PolicyDetail
+    { _udArn                     :: Maybe Text
+    , _udAttachedManagedPolicies :: List "member" AttachedPolicy
+    , _udCreateDate              :: Maybe ISO8601
+    , _udGroupList               :: List "member" Text
+    , _udPath                    :: Maybe Text
+    , _udUserId                  :: Maybe Text
+    , _udUserName                :: Maybe Text
+    , _udUserPolicyList          :: List "member" PolicyDetail
     } deriving (Eq, Read, Show)
 
 -- | 'UserDetail' constructor.
@@ -1731,6 +1928,8 @@
 --
 -- * 'udArn' @::@ 'Maybe' 'Text'
 --
+-- * 'udAttachedManagedPolicies' @::@ ['AttachedPolicy']
+--
 -- * 'udCreateDate' @::@ 'Maybe' 'UTCTime'
 --
 -- * 'udGroupList' @::@ ['Text']
@@ -1745,18 +1944,26 @@
 --
 userDetail :: UserDetail
 userDetail = UserDetail
-    { _udPath           = Nothing
-    , _udUserName       = Nothing
-    , _udUserId         = Nothing
-    , _udArn            = Nothing
-    , _udCreateDate     = Nothing
-    , _udUserPolicyList = mempty
-    , _udGroupList      = mempty
+    { _udPath                    = Nothing
+    , _udUserName                = Nothing
+    , _udUserId                  = Nothing
+    , _udArn                     = Nothing
+    , _udCreateDate              = Nothing
+    , _udUserPolicyList          = mempty
+    , _udGroupList               = mempty
+    , _udAttachedManagedPolicies = mempty
     }
 
 udArn :: Lens' UserDetail (Maybe Text)
 udArn = lens _udArn (\s a -> s { _udArn = a })
 
+-- | A list of the managed policies attached to the user.
+udAttachedManagedPolicies :: Lens' UserDetail [AttachedPolicy]
+udAttachedManagedPolicies =
+    lens _udAttachedManagedPolicies
+        (\s a -> s { _udAttachedManagedPolicies = a })
+            . _List
+
 -- | The date and time, in <http://www.iso.org/iso/iso8601 ISO 8601 date-time format>, when the user was created.
 udCreateDate :: Lens' UserDetail (Maybe UTCTime)
 udCreateDate = lens _udCreateDate (\s a -> s { _udCreateDate = a }) . mapping _Time
@@ -1779,13 +1986,14 @@
 udUserName :: Lens' UserDetail (Maybe Text)
 udUserName = lens _udUserName (\s a -> s { _udUserName = a })
 
--- | A list of the user's policies.
+-- | A list of the inline policies embedded in the user.
 udUserPolicyList :: Lens' UserDetail [PolicyDetail]
 udUserPolicyList = lens _udUserPolicyList (\s a -> s { _udUserPolicyList = a }) . _List
 
 instance FromXML UserDetail where
     parseXML x = UserDetail
         <$> x .@? "Arn"
+        <*> x .@? "AttachedManagedPolicies" .!@ mempty
         <*> x .@? "CreateDate"
         <*> x .@? "GroupList" .!@ mempty
         <*> x .@? "Path"
@@ -1795,13 +2003,14 @@
 
 instance ToQuery UserDetail where
     toQuery UserDetail{..} = mconcat
-        [ "Arn"            =? _udArn
-        , "CreateDate"     =? _udCreateDate
-        , "GroupList"      =? _udGroupList
-        , "Path"           =? _udPath
-        , "UserId"         =? _udUserId
-        , "UserName"       =? _udUserName
-        , "UserPolicyList" =? _udUserPolicyList
+        [ "Arn"                     =? _udArn
+        , "AttachedManagedPolicies" =? _udAttachedManagedPolicies
+        , "CreateDate"              =? _udCreateDate
+        , "GroupList"               =? _udGroupList
+        , "Path"                    =? _udPath
+        , "UserId"                  =? _udUserId
+        , "UserName"                =? _udUserName
+        , "UserPolicyList"          =? _udUserPolicyList
         ]
 
 data Policy = Policy
