module Network.AWS.Lambda.ListEventSourceMappings
(
ListEventSourceMappings
, listEventSourceMappings
, lesmEventSourceArn
, lesmFunctionName
, lesmMarker
, lesmMaxItems
, ListEventSourceMappingsResponse
, listEventSourceMappingsResponse
, lesmrEventSourceMappings
, lesmrNextMarker
) where
import Network.AWS.Data (Object)
import Network.AWS.Prelude
import Network.AWS.Request.RestJSON
import Network.AWS.Lambda.Types
import qualified GHC.Exts
data ListEventSourceMappings = ListEventSourceMappings
{ _lesmEventSourceArn :: Maybe Text
, _lesmFunctionName :: Maybe Text
, _lesmMarker :: Maybe Text
, _lesmMaxItems :: Maybe Nat
} deriving (Eq, Ord, Read, Show)
listEventSourceMappings :: ListEventSourceMappings
listEventSourceMappings = ListEventSourceMappings
{ _lesmEventSourceArn = Nothing
, _lesmFunctionName = Nothing
, _lesmMarker = Nothing
, _lesmMaxItems = Nothing
}
lesmEventSourceArn :: Lens' ListEventSourceMappings (Maybe Text)
lesmEventSourceArn =
lens _lesmEventSourceArn (\s a -> s { _lesmEventSourceArn = a })
lesmFunctionName :: Lens' ListEventSourceMappings (Maybe Text)
lesmFunctionName = lens _lesmFunctionName (\s a -> s { _lesmFunctionName = a })
lesmMarker :: Lens' ListEventSourceMappings (Maybe Text)
lesmMarker = lens _lesmMarker (\s a -> s { _lesmMarker = a })
lesmMaxItems :: Lens' ListEventSourceMappings (Maybe Natural)
lesmMaxItems = lens _lesmMaxItems (\s a -> s { _lesmMaxItems = a }) . mapping _Nat
data ListEventSourceMappingsResponse = ListEventSourceMappingsResponse
{ _lesmrEventSourceMappings :: List "EventSourceMappings" EventSourceMappingConfiguration
, _lesmrNextMarker :: Maybe Text
} deriving (Eq, Read, Show)
listEventSourceMappingsResponse :: ListEventSourceMappingsResponse
listEventSourceMappingsResponse = ListEventSourceMappingsResponse
{ _lesmrNextMarker = Nothing
, _lesmrEventSourceMappings = mempty
}
lesmrEventSourceMappings :: Lens' ListEventSourceMappingsResponse [EventSourceMappingConfiguration]
lesmrEventSourceMappings =
lens _lesmrEventSourceMappings
(\s a -> s { _lesmrEventSourceMappings = a })
. _List
lesmrNextMarker :: Lens' ListEventSourceMappingsResponse (Maybe Text)
lesmrNextMarker = lens _lesmrNextMarker (\s a -> s { _lesmrNextMarker = a })
instance ToPath ListEventSourceMappings where
toPath = const "/2015-03-31/event-source-mappings/"
instance ToQuery ListEventSourceMappings where
toQuery ListEventSourceMappings{..} = mconcat
[ "EventSourceArn" =? _lesmEventSourceArn
, "FunctionName" =? _lesmFunctionName
, "Marker" =? _lesmMarker
, "MaxItems" =? _lesmMaxItems
]
instance ToHeaders ListEventSourceMappings
instance ToJSON ListEventSourceMappings where
toJSON = const (toJSON Empty)
instance AWSRequest ListEventSourceMappings where
type Sv ListEventSourceMappings = Lambda
type Rs ListEventSourceMappings = ListEventSourceMappingsResponse
request = get
response = jsonResponse
instance FromJSON ListEventSourceMappingsResponse where
parseJSON = withObject "ListEventSourceMappingsResponse" $ \o -> ListEventSourceMappingsResponse
<$> o .:? "EventSourceMappings" .!= mempty
<*> o .:? "NextMarker"
instance AWSPager ListEventSourceMappings where
page rq rs
| stop (rs ^. lesmrNextMarker) = Nothing
| otherwise = (\x -> rq & lesmMarker ?~ x)
<$> (rs ^. lesmrNextMarker)