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.0.6
+version:               0.0.7
 synopsis:              Amazon Identity and Access Management SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -124,5 +124,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core == 0.0.6.*
+          amazonka-core == 0.0.7.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/IAM/GetAccountSummary.hs b/gen/Network/AWS/IAM/GetAccountSummary.hs
--- a/gen/Network/AWS/IAM/GetAccountSummary.hs
+++ b/gen/Network/AWS/IAM/GetAccountSummary.hs
@@ -141,4 +141,4 @@
 
 instance FromXML GetAccountSummaryResponse where
     parseXML = withElement "GetAccountSummaryResult" $ \x -> GetAccountSummaryResponse
-        <$> x .@  "SummaryMap"
+        <$> x .@? "SummaryMap" .!@ mempty
diff --git a/gen/Network/AWS/IAM/GetGroup.hs b/gen/Network/AWS/IAM/GetGroup.hs
--- a/gen/Network/AWS/IAM/GetGroup.hs
+++ b/gen/Network/AWS/IAM/GetGroup.hs
@@ -165,7 +165,7 @@
         <$> x .@  "Group"
         <*> x .@? "IsTruncated"
         <*> x .@? "Marker"
-        <*> x .@  "Users"
+        <*> x .@? "Users" .!@ mempty
 
 instance AWSPager GetGroup where
     page rq rs
diff --git a/gen/Network/AWS/IAM/GetOpenIDConnectProvider.hs b/gen/Network/AWS/IAM/GetOpenIDConnectProvider.hs
--- a/gen/Network/AWS/IAM/GetOpenIDConnectProvider.hs
+++ b/gen/Network/AWS/IAM/GetOpenIDConnectProvider.hs
@@ -146,7 +146,7 @@
 
 instance FromXML GetOpenIDConnectProviderResponse where
     parseXML = withElement "GetOpenIDConnectProviderResult" $ \x -> GetOpenIDConnectProviderResponse
-        <$> x .@  "ClientIDList"
+        <$> x .@? "ClientIDList" .!@ mempty
         <*> x .@? "CreateDate"
-        <*> x .@  "ThumbprintList"
+        <*> x .@? "ThumbprintList" .!@ mempty
         <*> x .@? "Url"
diff --git a/gen/Network/AWS/IAM/ListAccessKeys.hs b/gen/Network/AWS/IAM/ListAccessKeys.hs
--- a/gen/Network/AWS/IAM/ListAccessKeys.hs
+++ b/gen/Network/AWS/IAM/ListAccessKeys.hs
@@ -162,7 +162,7 @@
 
 instance FromXML ListAccessKeysResponse where
     parseXML = withElement "ListAccessKeysResult" $ \x -> ListAccessKeysResponse
-        <$> x .@  "AccessKeyMetadata"
+        <$> x .@? "AccessKeyMetadata" .!@ mempty
         <*> x .@? "IsTruncated"
         <*> x .@? "Marker"
 
diff --git a/gen/Network/AWS/IAM/ListAccountAliases.hs b/gen/Network/AWS/IAM/ListAccountAliases.hs
--- a/gen/Network/AWS/IAM/ListAccountAliases.hs
+++ b/gen/Network/AWS/IAM/ListAccountAliases.hs
@@ -146,7 +146,7 @@
 
 instance FromXML ListAccountAliasesResponse where
     parseXML = withElement "ListAccountAliasesResult" $ \x -> ListAccountAliasesResponse
-        <$> x .@  "AccountAliases"
+        <$> x .@? "AccountAliases" .!@ mempty
         <*> x .@? "IsTruncated"
         <*> x .@? "Marker"
 
diff --git a/gen/Network/AWS/IAM/ListGroupPolicies.hs b/gen/Network/AWS/IAM/ListGroupPolicies.hs
--- a/gen/Network/AWS/IAM/ListGroupPolicies.hs
+++ b/gen/Network/AWS/IAM/ListGroupPolicies.hs
@@ -156,7 +156,7 @@
     parseXML = withElement "ListGroupPoliciesResult" $ \x -> ListGroupPoliciesResponse
         <$> x .@? "IsTruncated"
         <*> x .@? "Marker"
-        <*> x .@  "PolicyNames"
+        <*> x .@? "PolicyNames" .!@ mempty
 
 instance AWSPager ListGroupPolicies where
     page rq rs
diff --git a/gen/Network/AWS/IAM/ListGroups.hs b/gen/Network/AWS/IAM/ListGroups.hs
--- a/gen/Network/AWS/IAM/ListGroups.hs
+++ b/gen/Network/AWS/IAM/ListGroups.hs
@@ -155,7 +155,7 @@
 
 instance FromXML ListGroupsResponse where
     parseXML = withElement "ListGroupsResult" $ \x -> ListGroupsResponse
-        <$> x .@  "Groups"
+        <$> x .@? "Groups" .!@ mempty
         <*> x .@? "IsTruncated"
         <*> x .@? "Marker"
 
diff --git a/gen/Network/AWS/IAM/ListGroupsForUser.hs b/gen/Network/AWS/IAM/ListGroupsForUser.hs
--- a/gen/Network/AWS/IAM/ListGroupsForUser.hs
+++ b/gen/Network/AWS/IAM/ListGroupsForUser.hs
@@ -153,7 +153,7 @@
 
 instance FromXML ListGroupsForUserResponse where
     parseXML = withElement "ListGroupsForUserResult" $ \x -> ListGroupsForUserResponse
-        <$> x .@  "Groups"
+        <$> x .@? "Groups" .!@ mempty
         <*> x .@? "IsTruncated"
         <*> x .@? "Marker"
 
diff --git a/gen/Network/AWS/IAM/ListInstanceProfiles.hs b/gen/Network/AWS/IAM/ListInstanceProfiles.hs
--- a/gen/Network/AWS/IAM/ListInstanceProfiles.hs
+++ b/gen/Network/AWS/IAM/ListInstanceProfiles.hs
@@ -161,7 +161,7 @@
 
 instance FromXML ListInstanceProfilesResponse where
     parseXML = withElement "ListInstanceProfilesResult" $ \x -> ListInstanceProfilesResponse
-        <$> x .@  "InstanceProfiles"
+        <$> x .@? "InstanceProfiles" .!@ mempty
         <*> x .@? "IsTruncated"
         <*> x .@? "Marker"
 
diff --git a/gen/Network/AWS/IAM/ListInstanceProfilesForRole.hs b/gen/Network/AWS/IAM/ListInstanceProfilesForRole.hs
--- a/gen/Network/AWS/IAM/ListInstanceProfilesForRole.hs
+++ b/gen/Network/AWS/IAM/ListInstanceProfilesForRole.hs
@@ -160,7 +160,7 @@
 
 instance FromXML ListInstanceProfilesForRoleResponse where
     parseXML = withElement "ListInstanceProfilesForRoleResult" $ \x -> ListInstanceProfilesForRoleResponse
-        <$> x .@  "InstanceProfiles"
+        <$> x .@? "InstanceProfiles" .!@ mempty
         <*> x .@? "IsTruncated"
         <*> x .@? "Marker"
 
diff --git a/gen/Network/AWS/IAM/ListMFADevices.hs b/gen/Network/AWS/IAM/ListMFADevices.hs
--- a/gen/Network/AWS/IAM/ListMFADevices.hs
+++ b/gen/Network/AWS/IAM/ListMFADevices.hs
@@ -157,7 +157,7 @@
 instance FromXML ListMFADevicesResponse where
     parseXML = withElement "ListMFADevicesResult" $ \x -> ListMFADevicesResponse
         <$> x .@? "IsTruncated"
-        <*> x .@  "MFADevices"
+        <*> x .@? "MFADevices" .!@ mempty
         <*> x .@? "Marker"
 
 instance AWSPager ListMFADevices where
diff --git a/gen/Network/AWS/IAM/ListOpenIDConnectProviders.hs b/gen/Network/AWS/IAM/ListOpenIDConnectProviders.hs
--- a/gen/Network/AWS/IAM/ListOpenIDConnectProviders.hs
+++ b/gen/Network/AWS/IAM/ListOpenIDConnectProviders.hs
@@ -97,4 +97,4 @@
 
 instance FromXML ListOpenIDConnectProvidersResponse where
     parseXML = withElement "ListOpenIDConnectProvidersResult" $ \x -> ListOpenIDConnectProvidersResponse
-        <$> x .@  "OpenIDConnectProviderList"
+        <$> x .@? "OpenIDConnectProviderList" .!@ mempty
diff --git a/gen/Network/AWS/IAM/ListRolePolicies.hs b/gen/Network/AWS/IAM/ListRolePolicies.hs
--- a/gen/Network/AWS/IAM/ListRolePolicies.hs
+++ b/gen/Network/AWS/IAM/ListRolePolicies.hs
@@ -157,7 +157,7 @@
     parseXML = withElement "ListRolePoliciesResult" $ \x -> ListRolePoliciesResponse
         <$> x .@? "IsTruncated"
         <*> x .@? "Marker"
-        <*> x .@  "PolicyNames"
+        <*> x .@? "PolicyNames" .!@ mempty
 
 instance AWSPager ListRolePolicies where
     page rq rs
diff --git a/gen/Network/AWS/IAM/ListRoles.hs b/gen/Network/AWS/IAM/ListRoles.hs
--- a/gen/Network/AWS/IAM/ListRoles.hs
+++ b/gen/Network/AWS/IAM/ListRoles.hs
@@ -161,7 +161,7 @@
     parseXML = withElement "ListRolesResult" $ \x -> ListRolesResponse
         <$> x .@? "IsTruncated"
         <*> x .@? "Marker"
-        <*> x .@  "Roles"
+        <*> x .@? "Roles" .!@ mempty
 
 instance AWSPager ListRoles where
     page rq rs
diff --git a/gen/Network/AWS/IAM/ListSAMLProviders.hs b/gen/Network/AWS/IAM/ListSAMLProviders.hs
--- a/gen/Network/AWS/IAM/ListSAMLProviders.hs
+++ b/gen/Network/AWS/IAM/ListSAMLProviders.hs
@@ -96,4 +96,4 @@
 
 instance FromXML ListSAMLProvidersResponse where
     parseXML = withElement "ListSAMLProvidersResult" $ \x -> ListSAMLProvidersResponse
-        <$> x .@  "SAMLProviderList"
+        <$> x .@? "SAMLProviderList" .!@ mempty
diff --git a/gen/Network/AWS/IAM/ListServerCertificates.hs b/gen/Network/AWS/IAM/ListServerCertificates.hs
--- a/gen/Network/AWS/IAM/ListServerCertificates.hs
+++ b/gen/Network/AWS/IAM/ListServerCertificates.hs
@@ -164,7 +164,7 @@
     parseXML = withElement "ListServerCertificatesResult" $ \x -> ListServerCertificatesResponse
         <$> x .@? "IsTruncated"
         <*> x .@? "Marker"
-        <*> x .@  "ServerCertificateMetadataList"
+        <*> x .@? "ServerCertificateMetadataList" .!@ mempty
 
 instance AWSPager ListServerCertificates where
     page rq rs
diff --git a/gen/Network/AWS/IAM/ListSigningCertificates.hs b/gen/Network/AWS/IAM/ListSigningCertificates.hs
--- a/gen/Network/AWS/IAM/ListSigningCertificates.hs
+++ b/gen/Network/AWS/IAM/ListSigningCertificates.hs
@@ -162,7 +162,7 @@
 
 instance FromXML ListSigningCertificatesResponse where
     parseXML = withElement "ListSigningCertificatesResult" $ \x -> ListSigningCertificatesResponse
-        <$> x .@  "Certificates"
+        <$> x .@? "Certificates" .!@ mempty
         <*> x .@? "IsTruncated"
         <*> x .@? "Marker"
 
diff --git a/gen/Network/AWS/IAM/ListUserPolicies.hs b/gen/Network/AWS/IAM/ListUserPolicies.hs
--- a/gen/Network/AWS/IAM/ListUserPolicies.hs
+++ b/gen/Network/AWS/IAM/ListUserPolicies.hs
@@ -156,7 +156,7 @@
     parseXML = withElement "ListUserPoliciesResult" $ \x -> ListUserPoliciesResponse
         <$> x .@? "IsTruncated"
         <*> x .@? "Marker"
-        <*> x .@  "PolicyNames"
+        <*> x .@? "PolicyNames" .!@ mempty
 
 instance AWSPager ListUserPolicies where
     page rq rs
diff --git a/gen/Network/AWS/IAM/ListUsers.hs b/gen/Network/AWS/IAM/ListUsers.hs
--- a/gen/Network/AWS/IAM/ListUsers.hs
+++ b/gen/Network/AWS/IAM/ListUsers.hs
@@ -159,7 +159,7 @@
     parseXML = withElement "ListUsersResult" $ \x -> ListUsersResponse
         <$> x .@? "IsTruncated"
         <*> x .@? "Marker"
-        <*> x .@  "Users"
+        <*> x .@? "Users" .!@ mempty
 
 instance AWSPager ListUsers where
     page rq rs
diff --git a/gen/Network/AWS/IAM/ListVirtualMFADevices.hs b/gen/Network/AWS/IAM/ListVirtualMFADevices.hs
--- a/gen/Network/AWS/IAM/ListVirtualMFADevices.hs
+++ b/gen/Network/AWS/IAM/ListVirtualMFADevices.hs
@@ -162,7 +162,7 @@
     parseXML = withElement "ListVirtualMFADevicesResult" $ \x -> ListVirtualMFADevicesResponse
         <$> x .@? "IsTruncated"
         <*> x .@? "Marker"
-        <*> x .@  "VirtualMFADevices"
+        <*> x .@? "VirtualMFADevices" .!@ mempty
 
 instance AWSPager ListVirtualMFADevices where
     page rq rs
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
@@ -569,7 +569,7 @@
         <*> x .@  "InstanceProfileId"
         <*> x .@  "InstanceProfileName"
         <*> x .@  "Path"
-        <*> x .@  "Roles"
+        <*> x .@? "Roles" .!@ mempty
 
 instance ToQuery InstanceProfile where
     toQuery InstanceProfile{..} = mconcat
