{-# 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.ECS.ListTaskDefinitions
(
listTaskDefinitions
, ListTaskDefinitions
, ltdStatus
, ltdFamilyPrefix
, ltdNextToken
, ltdSort
, ltdMaxResults
, listTaskDefinitionsResponse
, ListTaskDefinitionsResponse
, ltdrsTaskDefinitionARNs
, ltdrsNextToken
, ltdrsResponseStatus
) where
import Network.AWS.ECS.Types
import Network.AWS.ECS.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListTaskDefinitions = ListTaskDefinitions'
{ _ltdStatus :: !(Maybe TaskDefinitionStatus)
, _ltdFamilyPrefix :: !(Maybe Text)
, _ltdNextToken :: !(Maybe Text)
, _ltdSort :: !(Maybe SortOrder)
, _ltdMaxResults :: !(Maybe Int)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listTaskDefinitions
:: ListTaskDefinitions
listTaskDefinitions =
ListTaskDefinitions'
{ _ltdStatus = Nothing
, _ltdFamilyPrefix = Nothing
, _ltdNextToken = Nothing
, _ltdSort = Nothing
, _ltdMaxResults = Nothing
}
ltdStatus :: Lens' ListTaskDefinitions (Maybe TaskDefinitionStatus)
ltdStatus = lens _ltdStatus (\ s a -> s{_ltdStatus = a});
ltdFamilyPrefix :: Lens' ListTaskDefinitions (Maybe Text)
ltdFamilyPrefix = lens _ltdFamilyPrefix (\ s a -> s{_ltdFamilyPrefix = a});
ltdNextToken :: Lens' ListTaskDefinitions (Maybe Text)
ltdNextToken = lens _ltdNextToken (\ s a -> s{_ltdNextToken = a});
ltdSort :: Lens' ListTaskDefinitions (Maybe SortOrder)
ltdSort = lens _ltdSort (\ s a -> s{_ltdSort = a});
ltdMaxResults :: Lens' ListTaskDefinitions (Maybe Int)
ltdMaxResults = lens _ltdMaxResults (\ s a -> s{_ltdMaxResults = a});
instance AWSPager ListTaskDefinitions where
page rq rs
| stop (rs ^. ltdrsNextToken) = Nothing
| stop (rs ^. ltdrsTaskDefinitionARNs) = Nothing
| otherwise =
Just $ rq & ltdNextToken .~ rs ^. ltdrsNextToken
instance AWSRequest ListTaskDefinitions where
type Rs ListTaskDefinitions =
ListTaskDefinitionsResponse
request = postJSON ecs
response
= receiveJSON
(\ s h x ->
ListTaskDefinitionsResponse' <$>
(x .?> "taskDefinitionArns" .!@ mempty) <*>
(x .?> "nextToken")
<*> (pure (fromEnum s)))
instance Hashable ListTaskDefinitions
instance NFData ListTaskDefinitions
instance ToHeaders ListTaskDefinitions where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonEC2ContainerServiceV20141113.ListTaskDefinitions"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListTaskDefinitions where
toJSON ListTaskDefinitions'{..}
= object
(catMaybes
[("status" .=) <$> _ltdStatus,
("familyPrefix" .=) <$> _ltdFamilyPrefix,
("nextToken" .=) <$> _ltdNextToken,
("sort" .=) <$> _ltdSort,
("maxResults" .=) <$> _ltdMaxResults])
instance ToPath ListTaskDefinitions where
toPath = const "/"
instance ToQuery ListTaskDefinitions where
toQuery = const mempty
data ListTaskDefinitionsResponse = ListTaskDefinitionsResponse'
{ _ltdrsTaskDefinitionARNs :: !(Maybe [Text])
, _ltdrsNextToken :: !(Maybe Text)
, _ltdrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listTaskDefinitionsResponse
:: Int
-> ListTaskDefinitionsResponse
listTaskDefinitionsResponse pResponseStatus_ =
ListTaskDefinitionsResponse'
{ _ltdrsTaskDefinitionARNs = Nothing
, _ltdrsNextToken = Nothing
, _ltdrsResponseStatus = pResponseStatus_
}
ltdrsTaskDefinitionARNs :: Lens' ListTaskDefinitionsResponse [Text]
ltdrsTaskDefinitionARNs = lens _ltdrsTaskDefinitionARNs (\ s a -> s{_ltdrsTaskDefinitionARNs = a}) . _Default . _Coerce;
ltdrsNextToken :: Lens' ListTaskDefinitionsResponse (Maybe Text)
ltdrsNextToken = lens _ltdrsNextToken (\ s a -> s{_ltdrsNextToken = a});
ltdrsResponseStatus :: Lens' ListTaskDefinitionsResponse Int
ltdrsResponseStatus = lens _ltdrsResponseStatus (\ s a -> s{_ltdrsResponseStatus = a});
instance NFData ListTaskDefinitionsResponse