amazonka-cognito-sync-1.4.0: gen/Network/AWS/CognitoSync/ListRecords.hs
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.CognitoSync.ListRecords
-- Copyright : (c) 2013-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets paginated records, optionally changed after a particular sync count
-- for a dataset and identity. With Amazon Cognito Sync, each identity has
-- access only to its own data. Thus, the credentials used to make this API
-- call need to have access to the identity data.
--
-- ListRecords can be called with temporary user credentials provided by
-- Cognito Identity or with developer credentials. You should use Cognito
-- Identity credentials to make this API call.
module Network.AWS.CognitoSync.ListRecords
(
-- * Creating a Request
listRecords
, ListRecords
-- * Request Lenses
, lrLastSyncCount
, lrNextToken
, lrSyncSessionToken
, lrMaxResults
, lrIdentityPoolId
, lrIdentityId
, lrDatasetName
-- * Destructuring the Response
, listRecordsResponse
, ListRecordsResponse
-- * Response Lenses
, lrrsDatasetDeletedAfterRequestedSyncCount
, lrrsDatasetExists
, lrrsCount
, lrrsRecords
, lrrsNextToken
, lrrsMergedDatasetNames
, lrrsSyncSessionToken
, lrrsLastModifiedBy
, lrrsDatasetSyncCount
, lrrsResponseStatus
) where
import Network.AWS.CognitoSync.Types
import Network.AWS.CognitoSync.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | A request for a list of records.
--
-- /See:/ 'listRecords' smart constructor.
data ListRecords = ListRecords'
{ _lrLastSyncCount :: !(Maybe Integer)
, _lrNextToken :: !(Maybe Text)
, _lrSyncSessionToken :: !(Maybe Text)
, _lrMaxResults :: !(Maybe Int)
, _lrIdentityPoolId :: !Text
, _lrIdentityId :: !Text
, _lrDatasetName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'ListRecords' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'lrLastSyncCount'
--
-- * 'lrNextToken'
--
-- * 'lrSyncSessionToken'
--
-- * 'lrMaxResults'
--
-- * 'lrIdentityPoolId'
--
-- * 'lrIdentityId'
--
-- * 'lrDatasetName'
listRecords
:: Text -- ^ 'lrIdentityPoolId'
-> Text -- ^ 'lrIdentityId'
-> Text -- ^ 'lrDatasetName'
-> ListRecords
listRecords pIdentityPoolId_ pIdentityId_ pDatasetName_ =
ListRecords'
{ _lrLastSyncCount = Nothing
, _lrNextToken = Nothing
, _lrSyncSessionToken = Nothing
, _lrMaxResults = Nothing
, _lrIdentityPoolId = pIdentityPoolId_
, _lrIdentityId = pIdentityId_
, _lrDatasetName = pDatasetName_
}
-- | The last server sync count for this record.
lrLastSyncCount :: Lens' ListRecords (Maybe Integer)
lrLastSyncCount = lens _lrLastSyncCount (\ s a -> s{_lrLastSyncCount = a});
-- | A pagination token for obtaining the next page of results.
lrNextToken :: Lens' ListRecords (Maybe Text)
lrNextToken = lens _lrNextToken (\ s a -> s{_lrNextToken = a});
-- | A token containing a session ID, identity ID, and expiration.
lrSyncSessionToken :: Lens' ListRecords (Maybe Text)
lrSyncSessionToken = lens _lrSyncSessionToken (\ s a -> s{_lrSyncSessionToken = a});
-- | The maximum number of results to be returned.
lrMaxResults :: Lens' ListRecords (Maybe Int)
lrMaxResults = lens _lrMaxResults (\ s a -> s{_lrMaxResults = a});
-- | A name-spaced GUID (for example,
-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
-- Cognito. GUID generation is unique within a region.
lrIdentityPoolId :: Lens' ListRecords Text
lrIdentityPoolId = lens _lrIdentityPoolId (\ s a -> s{_lrIdentityPoolId = a});
-- | A name-spaced GUID (for example,
-- us-east-1:23EC4050-6AEA-7089-A2DD-08002EXAMPLE) created by Amazon
-- Cognito. GUID generation is unique within a region.
lrIdentityId :: Lens' ListRecords Text
lrIdentityId = lens _lrIdentityId (\ s a -> s{_lrIdentityId = a});
-- | A string of up to 128 characters. Allowed characters are a-z, A-Z, 0-9,
-- \'_\' (underscore), \'-\' (dash), and \'.\' (dot).
lrDatasetName :: Lens' ListRecords Text
lrDatasetName = lens _lrDatasetName (\ s a -> s{_lrDatasetName = a});
instance AWSRequest ListRecords where
type Rs ListRecords = ListRecordsResponse
request = get cognitoSync
response
= receiveJSON
(\ s h x ->
ListRecordsResponse' <$>
(x .?> "DatasetDeletedAfterRequestedSyncCount") <*>
(x .?> "DatasetExists")
<*> (x .?> "Count")
<*> (x .?> "Records" .!@ mempty)
<*> (x .?> "NextToken")
<*> (x .?> "MergedDatasetNames" .!@ mempty)
<*> (x .?> "SyncSessionToken")
<*> (x .?> "LastModifiedBy")
<*> (x .?> "DatasetSyncCount")
<*> (pure (fromEnum s)))
instance Hashable ListRecords
instance ToHeaders ListRecords where
toHeaders
= const
(mconcat
["Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToPath ListRecords where
toPath ListRecords'{..}
= mconcat
["/identitypools/", toBS _lrIdentityPoolId,
"/identities/", toBS _lrIdentityId, "/datasets/",
toBS _lrDatasetName, "/records"]
instance ToQuery ListRecords where
toQuery ListRecords'{..}
= mconcat
["lastSyncCount" =: _lrLastSyncCount,
"nextToken" =: _lrNextToken,
"syncSessionToken" =: _lrSyncSessionToken,
"maxResults" =: _lrMaxResults]
-- | Returned for a successful ListRecordsRequest.
--
-- /See:/ 'listRecordsResponse' smart constructor.
data ListRecordsResponse = ListRecordsResponse'
{ _lrrsDatasetDeletedAfterRequestedSyncCount :: !(Maybe Bool)
, _lrrsDatasetExists :: !(Maybe Bool)
, _lrrsCount :: !(Maybe Int)
, _lrrsRecords :: !(Maybe [Record])
, _lrrsNextToken :: !(Maybe Text)
, _lrrsMergedDatasetNames :: !(Maybe [Text])
, _lrrsSyncSessionToken :: !(Maybe Text)
, _lrrsLastModifiedBy :: !(Maybe Text)
, _lrrsDatasetSyncCount :: !(Maybe Integer)
, _lrrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'ListRecordsResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'lrrsDatasetDeletedAfterRequestedSyncCount'
--
-- * 'lrrsDatasetExists'
--
-- * 'lrrsCount'
--
-- * 'lrrsRecords'
--
-- * 'lrrsNextToken'
--
-- * 'lrrsMergedDatasetNames'
--
-- * 'lrrsSyncSessionToken'
--
-- * 'lrrsLastModifiedBy'
--
-- * 'lrrsDatasetSyncCount'
--
-- * 'lrrsResponseStatus'
listRecordsResponse
:: Int -- ^ 'lrrsResponseStatus'
-> ListRecordsResponse
listRecordsResponse pResponseStatus_ =
ListRecordsResponse'
{ _lrrsDatasetDeletedAfterRequestedSyncCount = Nothing
, _lrrsDatasetExists = Nothing
, _lrrsCount = Nothing
, _lrrsRecords = Nothing
, _lrrsNextToken = Nothing
, _lrrsMergedDatasetNames = Nothing
, _lrrsSyncSessionToken = Nothing
, _lrrsLastModifiedBy = Nothing
, _lrrsDatasetSyncCount = Nothing
, _lrrsResponseStatus = pResponseStatus_
}
-- | A boolean value specifying whether to delete the dataset locally.
lrrsDatasetDeletedAfterRequestedSyncCount :: Lens' ListRecordsResponse (Maybe Bool)
lrrsDatasetDeletedAfterRequestedSyncCount = lens _lrrsDatasetDeletedAfterRequestedSyncCount (\ s a -> s{_lrrsDatasetDeletedAfterRequestedSyncCount = a});
-- | Indicates whether the dataset exists.
lrrsDatasetExists :: Lens' ListRecordsResponse (Maybe Bool)
lrrsDatasetExists = lens _lrrsDatasetExists (\ s a -> s{_lrrsDatasetExists = a});
-- | Total number of records.
lrrsCount :: Lens' ListRecordsResponse (Maybe Int)
lrrsCount = lens _lrrsCount (\ s a -> s{_lrrsCount = a});
-- | A list of all records.
lrrsRecords :: Lens' ListRecordsResponse [Record]
lrrsRecords = lens _lrrsRecords (\ s a -> s{_lrrsRecords = a}) . _Default . _Coerce;
-- | A pagination token for obtaining the next page of results.
lrrsNextToken :: Lens' ListRecordsResponse (Maybe Text)
lrrsNextToken = lens _lrrsNextToken (\ s a -> s{_lrrsNextToken = a});
-- | Names of merged datasets.
lrrsMergedDatasetNames :: Lens' ListRecordsResponse [Text]
lrrsMergedDatasetNames = lens _lrrsMergedDatasetNames (\ s a -> s{_lrrsMergedDatasetNames = a}) . _Default . _Coerce;
-- | A token containing a session ID, identity ID, and expiration.
lrrsSyncSessionToken :: Lens' ListRecordsResponse (Maybe Text)
lrrsSyncSessionToken = lens _lrrsSyncSessionToken (\ s a -> s{_lrrsSyncSessionToken = a});
-- | The user\/device that made the last change to this record.
lrrsLastModifiedBy :: Lens' ListRecordsResponse (Maybe Text)
lrrsLastModifiedBy = lens _lrrsLastModifiedBy (\ s a -> s{_lrrsLastModifiedBy = a});
-- | Server sync count for this dataset.
lrrsDatasetSyncCount :: Lens' ListRecordsResponse (Maybe Integer)
lrrsDatasetSyncCount = lens _lrrsDatasetSyncCount (\ s a -> s{_lrrsDatasetSyncCount = a});
-- | The response status code.
lrrsResponseStatus :: Lens' ListRecordsResponse Int
lrrsResponseStatus = lens _lrrsResponseStatus (\ s a -> s{_lrrsResponseStatus = a});