{-# 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 #-}
module Network.AWS.DataPipeline.DescribeObjects
(
describeObjects
, DescribeObjects
, doEvaluateExpressions
, doMarker
, doPipelineId
, doObjectIds
, describeObjectsResponse
, DescribeObjectsResponse
, dorsHasMoreResults
, dorsMarker
, dorsResponseStatus
, dorsPipelineObjects
) where
import Network.AWS.DataPipeline.Types
import Network.AWS.DataPipeline.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeObjects = DescribeObjects'
{ _doEvaluateExpressions :: !(Maybe Bool)
, _doMarker :: !(Maybe Text)
, _doPipelineId :: !Text
, _doObjectIds :: ![Text]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeObjects
:: Text
-> DescribeObjects
describeObjects pPipelineId_ =
DescribeObjects'
{ _doEvaluateExpressions = Nothing
, _doMarker = Nothing
, _doPipelineId = pPipelineId_
, _doObjectIds = mempty
}
doEvaluateExpressions :: Lens' DescribeObjects (Maybe Bool)
doEvaluateExpressions = lens _doEvaluateExpressions (\ s a -> s{_doEvaluateExpressions = a});
doMarker :: Lens' DescribeObjects (Maybe Text)
doMarker = lens _doMarker (\ s a -> s{_doMarker = a});
doPipelineId :: Lens' DescribeObjects Text
doPipelineId = lens _doPipelineId (\ s a -> s{_doPipelineId = a});
doObjectIds :: Lens' DescribeObjects [Text]
doObjectIds = lens _doObjectIds (\ s a -> s{_doObjectIds = a}) . _Coerce;
instance AWSPager DescribeObjects where
page rq rs
| stop (rs ^. dorsHasMoreResults) = Nothing
| isNothing (rs ^. dorsMarker) = Nothing
| otherwise =
Just $ rq & doMarker .~ rs ^. dorsMarker
instance AWSRequest DescribeObjects where
type Rs DescribeObjects = DescribeObjectsResponse
request = postJSON dataPipeline
response
= receiveJSON
(\ s h x ->
DescribeObjectsResponse' <$>
(x .?> "hasMoreResults") <*> (x .?> "marker") <*>
(pure (fromEnum s))
<*> (x .?> "pipelineObjects" .!@ mempty))
instance Hashable DescribeObjects
instance NFData DescribeObjects
instance ToHeaders DescribeObjects where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("DataPipeline.DescribeObjects" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeObjects where
toJSON DescribeObjects'{..}
= object
(catMaybes
[("evaluateExpressions" .=) <$>
_doEvaluateExpressions,
("marker" .=) <$> _doMarker,
Just ("pipelineId" .= _doPipelineId),
Just ("objectIds" .= _doObjectIds)])
instance ToPath DescribeObjects where
toPath = const "/"
instance ToQuery DescribeObjects where
toQuery = const mempty
data DescribeObjectsResponse = DescribeObjectsResponse'
{ _dorsHasMoreResults :: !(Maybe Bool)
, _dorsMarker :: !(Maybe Text)
, _dorsResponseStatus :: !Int
, _dorsPipelineObjects :: ![PipelineObject]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeObjectsResponse
:: Int
-> DescribeObjectsResponse
describeObjectsResponse pResponseStatus_ =
DescribeObjectsResponse'
{ _dorsHasMoreResults = Nothing
, _dorsMarker = Nothing
, _dorsResponseStatus = pResponseStatus_
, _dorsPipelineObjects = mempty
}
dorsHasMoreResults :: Lens' DescribeObjectsResponse (Maybe Bool)
dorsHasMoreResults = lens _dorsHasMoreResults (\ s a -> s{_dorsHasMoreResults = a});
dorsMarker :: Lens' DescribeObjectsResponse (Maybe Text)
dorsMarker = lens _dorsMarker (\ s a -> s{_dorsMarker = a});
dorsResponseStatus :: Lens' DescribeObjectsResponse Int
dorsResponseStatus = lens _dorsResponseStatus (\ s a -> s{_dorsResponseStatus = a});
dorsPipelineObjects :: Lens' DescribeObjectsResponse [PipelineObject]
dorsPipelineObjects = lens _dorsPipelineObjects (\ s a -> s{_dorsPipelineObjects = a}) . _Coerce;
instance NFData DescribeObjectsResponse