module Network.AWS.CognitoSync.ListDatasets
(
ListDatasets
, listDatasets
, ldIdentityId
, ldIdentityPoolId
, ldMaxResults
, ldNextToken
, ListDatasetsResponse
, listDatasetsResponse
, ldrCount
, ldrDatasets
, ldrNextToken
) where
import Network.AWS.Prelude
import Network.AWS.Request.RestJSON
import Network.AWS.CognitoSync.Types
import qualified GHC.Exts
data ListDatasets = ListDatasets
{ _ldIdentityId :: Text
, _ldIdentityPoolId :: Text
, _ldMaxResults :: Maybe Int
, _ldNextToken :: Maybe Text
} deriving (Eq, Ord, Show)
listDatasets :: Text
-> Text
-> ListDatasets
listDatasets p1 p2 = ListDatasets
{ _ldIdentityPoolId = p1
, _ldIdentityId = p2
, _ldNextToken = Nothing
, _ldMaxResults = Nothing
}
ldIdentityId :: Lens' ListDatasets Text
ldIdentityId = lens _ldIdentityId (\s a -> s { _ldIdentityId = a })
ldIdentityPoolId :: Lens' ListDatasets Text
ldIdentityPoolId = lens _ldIdentityPoolId (\s a -> s { _ldIdentityPoolId = a })
ldMaxResults :: Lens' ListDatasets (Maybe Int)
ldMaxResults = lens _ldMaxResults (\s a -> s { _ldMaxResults = a })
ldNextToken :: Lens' ListDatasets (Maybe Text)
ldNextToken = lens _ldNextToken (\s a -> s { _ldNextToken = a })
data ListDatasetsResponse = ListDatasetsResponse
{ _ldrCount :: Maybe Int
, _ldrDatasets :: List "Datasets" Dataset
, _ldrNextToken :: Maybe Text
} deriving (Eq, Show)
listDatasetsResponse :: ListDatasetsResponse
listDatasetsResponse = ListDatasetsResponse
{ _ldrDatasets = mempty
, _ldrCount = Nothing
, _ldrNextToken = Nothing
}
ldrCount :: Lens' ListDatasetsResponse (Maybe Int)
ldrCount = lens _ldrCount (\s a -> s { _ldrCount = a })
ldrDatasets :: Lens' ListDatasetsResponse [Dataset]
ldrDatasets = lens _ldrDatasets (\s a -> s { _ldrDatasets = a }) . _List
ldrNextToken :: Lens' ListDatasetsResponse (Maybe Text)
ldrNextToken = lens _ldrNextToken (\s a -> s { _ldrNextToken = a })
instance ToPath ListDatasets where
toPath ListDatasets{..} = mconcat
[ "/identitypools/"
, toText _ldIdentityPoolId
, "/identities/"
, toText _ldIdentityId
, "/datasets"
]
instance ToQuery ListDatasets where
toQuery ListDatasets{..} = mconcat
[ "nextToken" =? _ldNextToken
, "maxResults" =? _ldMaxResults
]
instance ToHeaders ListDatasets
instance ToJSON ListDatasets where
toJSON = const (toJSON Empty)
instance AWSRequest ListDatasets where
type Sv ListDatasets = CognitoSync
type Rs ListDatasets = ListDatasetsResponse
request = get
response = jsonResponse
instance FromJSON ListDatasetsResponse where
parseJSON = withObject "ListDatasetsResponse" $ \o -> ListDatasetsResponse
<$> o .:? "Count"
<*> o .:? "Datasets" .!= mempty
<*> o .:? "NextToken"