{-# 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.RunTask
(
runTask
, RunTask
, rtOverrides
, rtCluster
, rtCount
, rtStartedBy
, rtTaskDefinition
, runTaskResponse
, RunTaskResponse
, rtrsFailures
, rtrsTasks
, rtrsResponseStatus
) where
import Network.AWS.ECS.Types
import Network.AWS.ECS.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data RunTask = RunTask'
{ _rtOverrides :: !(Maybe TaskOverride)
, _rtCluster :: !(Maybe Text)
, _rtCount :: !(Maybe Int)
, _rtStartedBy :: !(Maybe Text)
, _rtTaskDefinition :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
runTask
:: Text
-> RunTask
runTask pTaskDefinition_ =
RunTask'
{ _rtOverrides = Nothing
, _rtCluster = Nothing
, _rtCount = Nothing
, _rtStartedBy = Nothing
, _rtTaskDefinition = pTaskDefinition_
}
rtOverrides :: Lens' RunTask (Maybe TaskOverride)
rtOverrides = lens _rtOverrides (\ s a -> s{_rtOverrides = a});
rtCluster :: Lens' RunTask (Maybe Text)
rtCluster = lens _rtCluster (\ s a -> s{_rtCluster = a});
rtCount :: Lens' RunTask (Maybe Int)
rtCount = lens _rtCount (\ s a -> s{_rtCount = a});
rtStartedBy :: Lens' RunTask (Maybe Text)
rtStartedBy = lens _rtStartedBy (\ s a -> s{_rtStartedBy = a});
rtTaskDefinition :: Lens' RunTask Text
rtTaskDefinition = lens _rtTaskDefinition (\ s a -> s{_rtTaskDefinition = a});
instance AWSRequest RunTask where
type Rs RunTask = RunTaskResponse
request = postJSON ecs
response
= receiveJSON
(\ s h x ->
RunTaskResponse' <$>
(x .?> "failures" .!@ mempty) <*>
(x .?> "tasks" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable RunTask
instance NFData RunTask
instance ToHeaders RunTask where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonEC2ContainerServiceV20141113.RunTask" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON RunTask where
toJSON RunTask'{..}
= object
(catMaybes
[("overrides" .=) <$> _rtOverrides,
("cluster" .=) <$> _rtCluster,
("count" .=) <$> _rtCount,
("startedBy" .=) <$> _rtStartedBy,
Just ("taskDefinition" .= _rtTaskDefinition)])
instance ToPath RunTask where
toPath = const "/"
instance ToQuery RunTask where
toQuery = const mempty
data RunTaskResponse = RunTaskResponse'
{ _rtrsFailures :: !(Maybe [Failure])
, _rtrsTasks :: !(Maybe [Task])
, _rtrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
runTaskResponse
:: Int
-> RunTaskResponse
runTaskResponse pResponseStatus_ =
RunTaskResponse'
{ _rtrsFailures = Nothing
, _rtrsTasks = Nothing
, _rtrsResponseStatus = pResponseStatus_
}
rtrsFailures :: Lens' RunTaskResponse [Failure]
rtrsFailures = lens _rtrsFailures (\ s a -> s{_rtrsFailures = a}) . _Default . _Coerce;
rtrsTasks :: Lens' RunTaskResponse [Task]
rtrsTasks = lens _rtrsTasks (\ s a -> s{_rtrsTasks = a}) . _Default . _Coerce;
rtrsResponseStatus :: Lens' RunTaskResponse Int
rtrsResponseStatus = lens _rtrsResponseStatus (\ s a -> s{_rtrsResponseStatus = a});
instance NFData RunTaskResponse