module Network.AWS.IAM.ListInstanceProfilesForRole
(
ListInstanceProfilesForRole
, listInstanceProfilesForRole
, lipfrMarker
, lipfrMaxItems
, lipfrRoleName
, ListInstanceProfilesForRoleResponse
, listInstanceProfilesForRoleResponse
, lipfrrInstanceProfiles
, lipfrrIsTruncated
, lipfrrMarker
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.IAM.Types
import qualified GHC.Exts
data ListInstanceProfilesForRole = ListInstanceProfilesForRole
{ _lipfrMarker :: Maybe Text
, _lipfrMaxItems :: Maybe Nat
, _lipfrRoleName :: Text
} deriving (Eq, Ord, Read, Show)
listInstanceProfilesForRole :: Text
-> ListInstanceProfilesForRole
listInstanceProfilesForRole p1 = ListInstanceProfilesForRole
{ _lipfrRoleName = p1
, _lipfrMarker = Nothing
, _lipfrMaxItems = Nothing
}
lipfrMarker :: Lens' ListInstanceProfilesForRole (Maybe Text)
lipfrMarker = lens _lipfrMarker (\s a -> s { _lipfrMarker = a })
lipfrMaxItems :: Lens' ListInstanceProfilesForRole (Maybe Natural)
lipfrMaxItems = lens _lipfrMaxItems (\s a -> s { _lipfrMaxItems = a }) . mapping _Nat
lipfrRoleName :: Lens' ListInstanceProfilesForRole Text
lipfrRoleName = lens _lipfrRoleName (\s a -> s { _lipfrRoleName = a })
data ListInstanceProfilesForRoleResponse = ListInstanceProfilesForRoleResponse
{ _lipfrrInstanceProfiles :: List "member" InstanceProfile
, _lipfrrIsTruncated :: Maybe Bool
, _lipfrrMarker :: Maybe Text
} deriving (Eq, Read, Show)
listInstanceProfilesForRoleResponse :: ListInstanceProfilesForRoleResponse
listInstanceProfilesForRoleResponse = ListInstanceProfilesForRoleResponse
{ _lipfrrInstanceProfiles = mempty
, _lipfrrIsTruncated = Nothing
, _lipfrrMarker = Nothing
}
lipfrrInstanceProfiles :: Lens' ListInstanceProfilesForRoleResponse [InstanceProfile]
lipfrrInstanceProfiles =
lens _lipfrrInstanceProfiles (\s a -> s { _lipfrrInstanceProfiles = a })
. _List
lipfrrIsTruncated :: Lens' ListInstanceProfilesForRoleResponse (Maybe Bool)
lipfrrIsTruncated =
lens _lipfrrIsTruncated (\s a -> s { _lipfrrIsTruncated = a })
lipfrrMarker :: Lens' ListInstanceProfilesForRoleResponse (Maybe Text)
lipfrrMarker = lens _lipfrrMarker (\s a -> s { _lipfrrMarker = a })
instance ToPath ListInstanceProfilesForRole where
toPath = const "/"
instance ToQuery ListInstanceProfilesForRole where
toQuery ListInstanceProfilesForRole{..} = mconcat
[ "Marker" =? _lipfrMarker
, "MaxItems" =? _lipfrMaxItems
, "RoleName" =? _lipfrRoleName
]
instance ToHeaders ListInstanceProfilesForRole
instance AWSRequest ListInstanceProfilesForRole where
type Sv ListInstanceProfilesForRole = IAM
type Rs ListInstanceProfilesForRole = ListInstanceProfilesForRoleResponse
request = post "ListInstanceProfilesForRole"
response = xmlResponse
instance FromXML ListInstanceProfilesForRoleResponse where
parseXML = withElement "ListInstanceProfilesForRoleResult" $ \x -> ListInstanceProfilesForRoleResponse
<$> x .@? "InstanceProfiles" .!@ mempty
<*> x .@? "IsTruncated"
<*> x .@? "Marker"
instance AWSPager ListInstanceProfilesForRole where
page rq rs
| stop (rs ^. lipfrrIsTruncated) = Nothing
| otherwise = Just $ rq
& lipfrMarker .~ rs ^. lipfrrMarker