amazonka-ecs-0.3.4: gen/Network/AWS/ECS/ListTasks.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- Module : Network.AWS.ECS.ListTasks
-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
-- License : This Source Code Form is subject to the terms of
-- the Mozilla Public License, v. 2.0.
-- A copy of the MPL can be found in the LICENSE file or
-- you can obtain it at http://mozilla.org/MPL/2.0/.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : experimental
-- Portability : non-portable (GHC extensions)
--
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- | Returns a list of tasks for a specified cluster. You can filter the results
-- by family name or by a particular container instance with the 'family' and 'containerInstance' parameters.
--
-- <http://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTasks.html>
module Network.AWS.ECS.ListTasks
(
-- * Request
ListTasks
-- ** Request constructor
, listTasks
-- ** Request lenses
, ltCluster
, ltContainerInstance
, ltFamily
, ltMaxResults
, ltNextToken
, ltServiceName
, ltStartedBy
-- * Response
, ListTasksResponse
-- ** Response constructor
, listTasksResponse
-- ** Response lenses
, ltrNextToken
, ltrTaskArns
) where
import Network.AWS.Data (Object)
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.ECS.Types
import qualified GHC.Exts
data ListTasks = ListTasks
{ _ltCluster :: Maybe Text
, _ltContainerInstance :: Maybe Text
, _ltFamily :: Maybe Text
, _ltMaxResults :: Maybe Int
, _ltNextToken :: Maybe Text
, _ltServiceName :: Maybe Text
, _ltStartedBy :: Maybe Text
} deriving (Eq, Ord, Read, Show)
-- | 'ListTasks' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'ltCluster' @::@ 'Maybe' 'Text'
--
-- * 'ltContainerInstance' @::@ 'Maybe' 'Text'
--
-- * 'ltFamily' @::@ 'Maybe' 'Text'
--
-- * 'ltMaxResults' @::@ 'Maybe' 'Int'
--
-- * 'ltNextToken' @::@ 'Maybe' 'Text'
--
-- * 'ltServiceName' @::@ 'Maybe' 'Text'
--
-- * 'ltStartedBy' @::@ 'Maybe' 'Text'
--
listTasks :: ListTasks
listTasks = ListTasks
{ _ltCluster = Nothing
, _ltContainerInstance = Nothing
, _ltFamily = Nothing
, _ltNextToken = Nothing
, _ltMaxResults = Nothing
, _ltStartedBy = Nothing
, _ltServiceName = Nothing
}
-- | The short name or full Amazon Resource Name (ARN) of the cluster that hosts
-- the tasks you want to list. If you do not specify a cluster, the default
-- cluster is assumed..
ltCluster :: Lens' ListTasks (Maybe Text)
ltCluster = lens _ltCluster (\s a -> s { _ltCluster = a })
-- | The container instance UUID or full Amazon Resource Name (ARN) of the
-- container instance that you want to filter the 'ListTasks' results with.
-- Specifying a 'containerInstance' will limit the results to tasks that belong to
-- that container instance.
ltContainerInstance :: Lens' ListTasks (Maybe Text)
ltContainerInstance =
lens _ltContainerInstance (\s a -> s { _ltContainerInstance = a })
-- | The name of the family that you want to filter the 'ListTasks' results with.
-- Specifying a 'family' will limit the results to tasks that belong to that
-- family.
ltFamily :: Lens' ListTasks (Maybe Text)
ltFamily = lens _ltFamily (\s a -> s { _ltFamily = a })
-- | The maximum number of task results returned by 'ListTasks' in paginated output.
-- When this parameter is used, 'ListTasks' only returns 'maxResults' results in a
-- single page along with a 'nextToken' response element. The remaining results of
-- the initial request can be seen by sending another 'ListTasks' request with the
-- returned 'nextToken' value. This value can be between 1 and 100. If this
-- parameter is not used, then 'ListTasks' returns up to 100 results and a 'nextToken' value if applicable.
ltMaxResults :: Lens' ListTasks (Maybe Int)
ltMaxResults = lens _ltMaxResults (\s a -> s { _ltMaxResults = a })
-- | The 'nextToken' value returned from a previous paginated 'ListTasks' request
-- where 'maxResults' was used and the results exceeded the value of that
-- parameter. Pagination continues from the end of the previous results that
-- returned the 'nextToken' value. This value is 'null' when there are no more
-- results to return.
ltNextToken :: Lens' ListTasks (Maybe Text)
ltNextToken = lens _ltNextToken (\s a -> s { _ltNextToken = a })
-- | The name of the service that you want to filter the 'ListTasks' results with.
-- Specifying a 'serviceName' will limit the results to tasks that belong to that
-- service.
ltServiceName :: Lens' ListTasks (Maybe Text)
ltServiceName = lens _ltServiceName (\s a -> s { _ltServiceName = a })
-- | The 'startedBy' value that you want to filter the task results with. Specifying
-- a 'startedBy' value will limit the results to tasks that were started with that
-- value.
ltStartedBy :: Lens' ListTasks (Maybe Text)
ltStartedBy = lens _ltStartedBy (\s a -> s { _ltStartedBy = a })
data ListTasksResponse = ListTasksResponse
{ _ltrNextToken :: Maybe Text
, _ltrTaskArns :: List "taskArns" Text
} deriving (Eq, Ord, Read, Show)
-- | 'ListTasksResponse' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'ltrNextToken' @::@ 'Maybe' 'Text'
--
-- * 'ltrTaskArns' @::@ ['Text']
--
listTasksResponse :: ListTasksResponse
listTasksResponse = ListTasksResponse
{ _ltrTaskArns = mempty
, _ltrNextToken = Nothing
}
-- | The 'nextToken' value to include in a future 'ListTasks' request. When the
-- results of a 'ListTasks' request exceed 'maxResults', this value can be used to
-- retrieve the next page of results. This value is 'null' when there are no more
-- results to return.
ltrNextToken :: Lens' ListTasksResponse (Maybe Text)
ltrNextToken = lens _ltrNextToken (\s a -> s { _ltrNextToken = a })
-- | The list of task Amazon Resource Name (ARN) entries for the 'ListTasks' request.
ltrTaskArns :: Lens' ListTasksResponse [Text]
ltrTaskArns = lens _ltrTaskArns (\s a -> s { _ltrTaskArns = a }) . _List
instance ToPath ListTasks where
toPath = const "/"
instance ToQuery ListTasks where
toQuery = const mempty
instance ToHeaders ListTasks
instance ToJSON ListTasks where
toJSON ListTasks{..} = object
[ "cluster" .= _ltCluster
, "containerInstance" .= _ltContainerInstance
, "family" .= _ltFamily
, "nextToken" .= _ltNextToken
, "maxResults" .= _ltMaxResults
, "startedBy" .= _ltStartedBy
, "serviceName" .= _ltServiceName
]
instance AWSRequest ListTasks where
type Sv ListTasks = ECS
type Rs ListTasks = ListTasksResponse
request = post "ListTasks"
response = jsonResponse
instance FromJSON ListTasksResponse where
parseJSON = withObject "ListTasksResponse" $ \o -> ListTasksResponse
<$> o .:? "nextToken"
<*> o .:? "taskArns" .!= mempty