module Network.AWS.DynamoDBStreams.GetShardIterator
(
getShardIterator
, GetShardIterator
, gsiSequenceNumber
, gsiStreamARN
, gsiShardId
, gsiShardIteratorType
, getShardIteratorResponse
, GetShardIteratorResponse
, gsirsShardIterator
, gsirsResponseStatus
) where
import Network.AWS.DynamoDBStreams.Types
import Network.AWS.DynamoDBStreams.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data GetShardIterator = GetShardIterator'
{ _gsiSequenceNumber :: !(Maybe Text)
, _gsiStreamARN :: !Text
, _gsiShardId :: !Text
, _gsiShardIteratorType :: !ShardIteratorType
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getShardIterator
:: Text
-> Text
-> ShardIteratorType
-> GetShardIterator
getShardIterator pStreamARN_ pShardId_ pShardIteratorType_ =
GetShardIterator'
{ _gsiSequenceNumber = Nothing
, _gsiStreamARN = pStreamARN_
, _gsiShardId = pShardId_
, _gsiShardIteratorType = pShardIteratorType_
}
gsiSequenceNumber :: Lens' GetShardIterator (Maybe Text)
gsiSequenceNumber = lens _gsiSequenceNumber (\ s a -> s{_gsiSequenceNumber = a});
gsiStreamARN :: Lens' GetShardIterator Text
gsiStreamARN = lens _gsiStreamARN (\ s a -> s{_gsiStreamARN = a});
gsiShardId :: Lens' GetShardIterator Text
gsiShardId = lens _gsiShardId (\ s a -> s{_gsiShardId = a});
gsiShardIteratorType :: Lens' GetShardIterator ShardIteratorType
gsiShardIteratorType = lens _gsiShardIteratorType (\ s a -> s{_gsiShardIteratorType = a});
instance AWSRequest GetShardIterator where
type Rs GetShardIterator = GetShardIteratorResponse
request = postJSON dynamoDBStreams
response
= receiveJSON
(\ s h x ->
GetShardIteratorResponse' <$>
(x .?> "ShardIterator") <*> (pure (fromEnum s)))
instance Hashable GetShardIterator
instance NFData GetShardIterator
instance ToHeaders GetShardIterator where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("DynamoDBStreams_20120810.GetShardIterator" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.0" :: ByteString)])
instance ToJSON GetShardIterator where
toJSON GetShardIterator'{..}
= object
(catMaybes
[("SequenceNumber" .=) <$> _gsiSequenceNumber,
Just ("StreamArn" .= _gsiStreamARN),
Just ("ShardId" .= _gsiShardId),
Just ("ShardIteratorType" .= _gsiShardIteratorType)])
instance ToPath GetShardIterator where
toPath = const "/"
instance ToQuery GetShardIterator where
toQuery = const mempty
data GetShardIteratorResponse = GetShardIteratorResponse'
{ _gsirsShardIterator :: !(Maybe Text)
, _gsirsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getShardIteratorResponse
:: Int
-> GetShardIteratorResponse
getShardIteratorResponse pResponseStatus_ =
GetShardIteratorResponse'
{ _gsirsShardIterator = Nothing
, _gsirsResponseStatus = pResponseStatus_
}
gsirsShardIterator :: Lens' GetShardIteratorResponse (Maybe Text)
gsirsShardIterator = lens _gsirsShardIterator (\ s a -> s{_gsirsShardIterator = a});
gsirsResponseStatus :: Lens' GetShardIteratorResponse Int
gsirsResponseStatus = lens _gsirsResponseStatus (\ s a -> s{_gsirsResponseStatus = a});
instance NFData GetShardIteratorResponse