module Network.AWS.Lambda.ListEventSources
(
ListEventSources
, listEventSources
, lesEventSourceArn
, lesFunctionName
, lesMarker
, lesMaxItems
, ListEventSourcesResponse
, listEventSourcesResponse
, lesrEventSources
, lesrNextMarker
) where
import Network.AWS.Prelude
import Network.AWS.Request.RestJSON
import Network.AWS.Lambda.Types
import qualified GHC.Exts
data ListEventSources = ListEventSources
{ _lesEventSourceArn :: Maybe Text
, _lesFunctionName :: Maybe Text
, _lesMarker :: Maybe Text
, _lesMaxItems :: Maybe Nat
} deriving (Eq, Ord, Read, Show)
listEventSources :: ListEventSources
listEventSources = ListEventSources
{ _lesEventSourceArn = Nothing
, _lesFunctionName = Nothing
, _lesMarker = Nothing
, _lesMaxItems = Nothing
}
lesEventSourceArn :: Lens' ListEventSources (Maybe Text)
lesEventSourceArn =
lens _lesEventSourceArn (\s a -> s { _lesEventSourceArn = a })
lesFunctionName :: Lens' ListEventSources (Maybe Text)
lesFunctionName = lens _lesFunctionName (\s a -> s { _lesFunctionName = a })
lesMarker :: Lens' ListEventSources (Maybe Text)
lesMarker = lens _lesMarker (\s a -> s { _lesMarker = a })
lesMaxItems :: Lens' ListEventSources (Maybe Natural)
lesMaxItems = lens _lesMaxItems (\s a -> s { _lesMaxItems = a }) . mapping _Nat
data ListEventSourcesResponse = ListEventSourcesResponse
{ _lesrEventSources :: List "EventSources" EventSourceConfiguration
, _lesrNextMarker :: Maybe Text
} deriving (Eq, Read, Show)
listEventSourcesResponse :: ListEventSourcesResponse
listEventSourcesResponse = ListEventSourcesResponse
{ _lesrNextMarker = Nothing
, _lesrEventSources = mempty
}
lesrEventSources :: Lens' ListEventSourcesResponse [EventSourceConfiguration]
lesrEventSources = lens _lesrEventSources (\s a -> s { _lesrEventSources = a }) . _List
lesrNextMarker :: Lens' ListEventSourcesResponse (Maybe Text)
lesrNextMarker = lens _lesrNextMarker (\s a -> s { _lesrNextMarker = a })
instance ToPath ListEventSources where
toPath = const "/2014-11-13/event-source-mappings/"
instance ToQuery ListEventSources where
toQuery ListEventSources{..} = mconcat
[ "EventSource" =? _lesEventSourceArn
, "FunctionName" =? _lesFunctionName
, "Marker" =? _lesMarker
, "MaxItems" =? _lesMaxItems
]
instance ToHeaders ListEventSources
instance ToJSON ListEventSources where
toJSON = const (toJSON Empty)
instance AWSRequest ListEventSources where
type Sv ListEventSources = Lambda
type Rs ListEventSources = ListEventSourcesResponse
request = get
response = jsonResponse
instance FromJSON ListEventSourcesResponse where
parseJSON = withObject "ListEventSourcesResponse" $ \o -> ListEventSourcesResponse
<$> o .:? "EventSources" .!= mempty
<*> o .:? "NextMarker"