{-# 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.Lambda.ListEventSourceMappings -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns a list of event source mappings you created using the -- 'CreateEventSourceMapping' (see < CreateEventSourceMapping>). -- -- For each mapping, the API returns configuration information. You can -- optionally specify filters to retrieve specific event source mappings. -- -- If you are using the versioning feature, you can get list of event -- source mappings for a specific Lambda function version or an alias as -- described in the 'FunctionName' parameter. For information about the -- versioning feature, see -- . -- -- This operation requires permission for the -- 'lambda:ListEventSourceMappings' action. -- -- This operation returns paginated results. module Network.AWS.Lambda.ListEventSourceMappings ( -- * Creating a Request listEventSourceMappings , ListEventSourceMappings -- * Request Lenses , lesmEventSourceARN , lesmMarker , lesmMaxItems , lesmFunctionName -- * Destructuring the Response , listEventSourceMappingsResponse , ListEventSourceMappingsResponse -- * Response Lenses , lesmrsEventSourceMappings , lesmrsNextMarker , lesmrsResponseStatus ) where import Network.AWS.Lambda.Types import Network.AWS.Lambda.Types.Product import Network.AWS.Lens import Network.AWS.Pager import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'listEventSourceMappings' smart constructor. data ListEventSourceMappings = ListEventSourceMappings' { _lesmEventSourceARN :: !(Maybe Text) , _lesmMarker :: !(Maybe Text) , _lesmMaxItems :: !(Maybe Nat) , _lesmFunctionName :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ListEventSourceMappings' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lesmEventSourceARN' -- -- * 'lesmMarker' -- -- * 'lesmMaxItems' -- -- * 'lesmFunctionName' listEventSourceMappings :: ListEventSourceMappings listEventSourceMappings = ListEventSourceMappings' { _lesmEventSourceARN = Nothing , _lesmMarker = Nothing , _lesmMaxItems = Nothing , _lesmFunctionName = Nothing } -- | The Amazon Resource Name (ARN) of the Amazon Kinesis stream. lesmEventSourceARN :: Lens' ListEventSourceMappings (Maybe Text) lesmEventSourceARN = lens _lesmEventSourceARN (\ s a -> s{_lesmEventSourceARN = a}); -- | Optional string. An opaque pagination token returned from a previous -- 'ListEventSourceMappings' operation. If present, specifies to continue -- the list from where the returning call left off. lesmMarker :: Lens' ListEventSourceMappings (Maybe Text) lesmMarker = lens _lesmMarker (\ s a -> s{_lesmMarker = a}); -- | Optional integer. Specifies the maximum number of event sources to -- return in response. This value must be greater than 0. lesmMaxItems :: Lens' ListEventSourceMappings (Maybe Natural) lesmMaxItems = lens _lesmMaxItems (\ s a -> s{_lesmMaxItems = a}) . mapping _Nat; -- | The name of the Lambda function. -- -- You can specify the function name (for example, 'Thumbnail') or you can -- specify Amazon Resource Name (ARN) of the function (for example, -- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). If you are -- using versioning, you can also provide a qualified function ARN (ARN -- that is qualified with function version or alias name as suffix). AWS -- Lambda also allows you to specify only the function name with the -- account ID qualifier (for example, 'account-id:Thumbnail'). Note that -- the length constraint applies only to the ARN. If you specify only the -- function name, it is limited to 64 character in length. lesmFunctionName :: Lens' ListEventSourceMappings (Maybe Text) lesmFunctionName = lens _lesmFunctionName (\ s a -> s{_lesmFunctionName = a}); instance AWSPager ListEventSourceMappings where page rq rs | stop (rs ^. lesmrsNextMarker) = Nothing | stop (rs ^. lesmrsEventSourceMappings) = Nothing | otherwise = Just $ rq & lesmMarker .~ rs ^. lesmrsNextMarker instance AWSRequest ListEventSourceMappings where type Rs ListEventSourceMappings = ListEventSourceMappingsResponse request = get lambda response = receiveJSON (\ s h x -> ListEventSourceMappingsResponse' <$> (x .?> "EventSourceMappings" .!@ mempty) <*> (x .?> "NextMarker") <*> (pure (fromEnum s))) instance Hashable ListEventSourceMappings instance NFData ListEventSourceMappings instance ToHeaders ListEventSourceMappings where toHeaders = const mempty instance ToPath ListEventSourceMappings where toPath = const "/2015-03-31/event-source-mappings/" instance ToQuery ListEventSourceMappings where toQuery ListEventSourceMappings'{..} = mconcat ["EventSourceArn" =: _lesmEventSourceARN, "Marker" =: _lesmMarker, "MaxItems" =: _lesmMaxItems, "FunctionName" =: _lesmFunctionName] -- | Contains a list of event sources (see -- < API_EventSourceMappingConfiguration>) -- -- /See:/ 'listEventSourceMappingsResponse' smart constructor. data ListEventSourceMappingsResponse = ListEventSourceMappingsResponse' { _lesmrsEventSourceMappings :: !(Maybe [EventSourceMappingConfiguration]) , _lesmrsNextMarker :: !(Maybe Text) , _lesmrsResponseStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ListEventSourceMappingsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lesmrsEventSourceMappings' -- -- * 'lesmrsNextMarker' -- -- * 'lesmrsResponseStatus' listEventSourceMappingsResponse :: Int -- ^ 'lesmrsResponseStatus' -> ListEventSourceMappingsResponse listEventSourceMappingsResponse pResponseStatus_ = ListEventSourceMappingsResponse' { _lesmrsEventSourceMappings = Nothing , _lesmrsNextMarker = Nothing , _lesmrsResponseStatus = pResponseStatus_ } -- | An array of 'EventSourceMappingConfiguration' objects. lesmrsEventSourceMappings :: Lens' ListEventSourceMappingsResponse [EventSourceMappingConfiguration] lesmrsEventSourceMappings = lens _lesmrsEventSourceMappings (\ s a -> s{_lesmrsEventSourceMappings = a}) . _Default . _Coerce; -- | A string, present if there are more event source mappings. lesmrsNextMarker :: Lens' ListEventSourceMappingsResponse (Maybe Text) lesmrsNextMarker = lens _lesmrsNextMarker (\ s a -> s{_lesmrsNextMarker = a}); -- | The response status code. lesmrsResponseStatus :: Lens' ListEventSourceMappingsResponse Int lesmrsResponseStatus = lens _lesmrsResponseStatus (\ s a -> s{_lesmrsResponseStatus = a}); instance NFData ListEventSourceMappingsResponse