module Network.AWS.CognitoIdentity.ListIdentities
(
ListIdentities
, listIdentities
, liIdentityPoolId
, liMaxResults
, liNextToken
, ListIdentitiesResponse
, listIdentitiesResponse
, lirIdentities
, lirIdentityPoolId
, lirNextToken
) where
import Network.AWS.Data (Object)
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.CognitoIdentity.Types
import qualified GHC.Exts
data ListIdentities = ListIdentities
{ _liIdentityPoolId :: Text
, _liMaxResults :: Nat
, _liNextToken :: Maybe Text
} deriving (Eq, Ord, Read, Show)
listIdentities :: Text
-> Natural
-> ListIdentities
listIdentities p1 p2 = ListIdentities
{ _liIdentityPoolId = p1
, _liMaxResults = withIso _Nat (const id) p2
, _liNextToken = Nothing
}
liIdentityPoolId :: Lens' ListIdentities Text
liIdentityPoolId = lens _liIdentityPoolId (\s a -> s { _liIdentityPoolId = a })
liMaxResults :: Lens' ListIdentities Natural
liMaxResults = lens _liMaxResults (\s a -> s { _liMaxResults = a }) . _Nat
liNextToken :: Lens' ListIdentities (Maybe Text)
liNextToken = lens _liNextToken (\s a -> s { _liNextToken = a })
data ListIdentitiesResponse = ListIdentitiesResponse
{ _lirIdentities :: List "Identities" IdentityDescription
, _lirIdentityPoolId :: Maybe Text
, _lirNextToken :: Maybe Text
} deriving (Eq, Read, Show)
listIdentitiesResponse :: ListIdentitiesResponse
listIdentitiesResponse = ListIdentitiesResponse
{ _lirIdentityPoolId = Nothing
, _lirIdentities = mempty
, _lirNextToken = Nothing
}
lirIdentities :: Lens' ListIdentitiesResponse [IdentityDescription]
lirIdentities = lens _lirIdentities (\s a -> s { _lirIdentities = a }) . _List
lirIdentityPoolId :: Lens' ListIdentitiesResponse (Maybe Text)
lirIdentityPoolId =
lens _lirIdentityPoolId (\s a -> s { _lirIdentityPoolId = a })
lirNextToken :: Lens' ListIdentitiesResponse (Maybe Text)
lirNextToken = lens _lirNextToken (\s a -> s { _lirNextToken = a })
instance ToPath ListIdentities where
toPath = const "/"
instance ToQuery ListIdentities where
toQuery = const mempty
instance ToHeaders ListIdentities
instance ToJSON ListIdentities where
toJSON ListIdentities{..} = object
[ "IdentityPoolId" .= _liIdentityPoolId
, "MaxResults" .= _liMaxResults
, "NextToken" .= _liNextToken
]
instance AWSRequest ListIdentities where
type Sv ListIdentities = CognitoIdentity
type Rs ListIdentities = ListIdentitiesResponse
request = post "ListIdentities"
response = jsonResponse
instance FromJSON ListIdentitiesResponse where
parseJSON = withObject "ListIdentitiesResponse" $ \o -> ListIdentitiesResponse
<$> o .:? "Identities" .!= mempty
<*> o .:? "IdentityPoolId"
<*> o .:? "NextToken"