{-# 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.KinesisAnalytics.ListApplications
(
listApplications
, ListApplications
, laLimit
, laExclusiveStartApplicationName
, listApplicationsResponse
, ListApplicationsResponse
, larsResponseStatus
, larsApplicationSummaries
, larsHasMoreApplications
) where
import Network.AWS.KinesisAnalytics.Types
import Network.AWS.KinesisAnalytics.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListApplications = ListApplications'
{ _laLimit :: !(Maybe Nat)
, _laExclusiveStartApplicationName :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listApplications
:: ListApplications
listApplications =
ListApplications'
{ _laLimit = Nothing
, _laExclusiveStartApplicationName = Nothing
}
laLimit :: Lens' ListApplications (Maybe Natural)
laLimit = lens _laLimit (\ s a -> s{_laLimit = a}) . mapping _Nat;
laExclusiveStartApplicationName :: Lens' ListApplications (Maybe Text)
laExclusiveStartApplicationName = lens _laExclusiveStartApplicationName (\ s a -> s{_laExclusiveStartApplicationName = a});
instance AWSRequest ListApplications where
type Rs ListApplications = ListApplicationsResponse
request = postJSON kinesisAnalytics
response
= receiveJSON
(\ s h x ->
ListApplicationsResponse' <$>
(pure (fromEnum s)) <*>
(x .?> "ApplicationSummaries" .!@ mempty)
<*> (x .:> "HasMoreApplications"))
instance Hashable ListApplications
instance NFData ListApplications
instance ToHeaders ListApplications where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("KinesisAnalytics_20150814.ListApplications" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListApplications where
toJSON ListApplications'{..}
= object
(catMaybes
[("Limit" .=) <$> _laLimit,
("ExclusiveStartApplicationName" .=) <$>
_laExclusiveStartApplicationName])
instance ToPath ListApplications where
toPath = const "/"
instance ToQuery ListApplications where
toQuery = const mempty
data ListApplicationsResponse = ListApplicationsResponse'
{ _larsResponseStatus :: !Int
, _larsApplicationSummaries :: ![ApplicationSummary]
, _larsHasMoreApplications :: !Bool
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listApplicationsResponse
:: Int
-> Bool
-> ListApplicationsResponse
listApplicationsResponse pResponseStatus_ pHasMoreApplications_ =
ListApplicationsResponse'
{ _larsResponseStatus = pResponseStatus_
, _larsApplicationSummaries = mempty
, _larsHasMoreApplications = pHasMoreApplications_
}
larsResponseStatus :: Lens' ListApplicationsResponse Int
larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a});
larsApplicationSummaries :: Lens' ListApplicationsResponse [ApplicationSummary]
larsApplicationSummaries = lens _larsApplicationSummaries (\ s a -> s{_larsApplicationSummaries = a}) . _Coerce;
larsHasMoreApplications :: Lens' ListApplicationsResponse Bool
larsHasMoreApplications = lens _larsHasMoreApplications (\ s a -> s{_larsHasMoreApplications = a});
instance NFData ListApplicationsResponse