{-# 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.DataPipeline.ReportTaskRunnerHeartbeat
(
reportTaskRunnerHeartbeat
, ReportTaskRunnerHeartbeat
, rtrhHostname
, rtrhWorkerGroup
, rtrhTaskrunnerId
, reportTaskRunnerHeartbeatResponse
, ReportTaskRunnerHeartbeatResponse
, rtrhrsResponseStatus
, rtrhrsTerminate
) where
import Network.AWS.DataPipeline.Types
import Network.AWS.DataPipeline.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ReportTaskRunnerHeartbeat = ReportTaskRunnerHeartbeat'
{ _rtrhHostname :: !(Maybe Text)
, _rtrhWorkerGroup :: !(Maybe Text)
, _rtrhTaskrunnerId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
reportTaskRunnerHeartbeat
:: Text
-> ReportTaskRunnerHeartbeat
reportTaskRunnerHeartbeat pTaskrunnerId_ =
ReportTaskRunnerHeartbeat'
{ _rtrhHostname = Nothing
, _rtrhWorkerGroup = Nothing
, _rtrhTaskrunnerId = pTaskrunnerId_
}
rtrhHostname :: Lens' ReportTaskRunnerHeartbeat (Maybe Text)
rtrhHostname = lens _rtrhHostname (\ s a -> s{_rtrhHostname = a})
rtrhWorkerGroup :: Lens' ReportTaskRunnerHeartbeat (Maybe Text)
rtrhWorkerGroup = lens _rtrhWorkerGroup (\ s a -> s{_rtrhWorkerGroup = a})
rtrhTaskrunnerId :: Lens' ReportTaskRunnerHeartbeat Text
rtrhTaskrunnerId = lens _rtrhTaskrunnerId (\ s a -> s{_rtrhTaskrunnerId = a})
instance AWSRequest ReportTaskRunnerHeartbeat where
type Rs ReportTaskRunnerHeartbeat =
ReportTaskRunnerHeartbeatResponse
request = postJSON dataPipeline
response
= receiveJSON
(\ s h x ->
ReportTaskRunnerHeartbeatResponse' <$>
(pure (fromEnum s)) <*> (x .:> "terminate"))
instance Hashable ReportTaskRunnerHeartbeat where
instance NFData ReportTaskRunnerHeartbeat where
instance ToHeaders ReportTaskRunnerHeartbeat where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("DataPipeline.ReportTaskRunnerHeartbeat" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ReportTaskRunnerHeartbeat where
toJSON ReportTaskRunnerHeartbeat'{..}
= object
(catMaybes
[("hostname" .=) <$> _rtrhHostname,
("workerGroup" .=) <$> _rtrhWorkerGroup,
Just ("taskrunnerId" .= _rtrhTaskrunnerId)])
instance ToPath ReportTaskRunnerHeartbeat where
toPath = const "/"
instance ToQuery ReportTaskRunnerHeartbeat where
toQuery = const mempty
data ReportTaskRunnerHeartbeatResponse = ReportTaskRunnerHeartbeatResponse'
{ _rtrhrsResponseStatus :: !Int
, _rtrhrsTerminate :: !Bool
} deriving (Eq, Read, Show, Data, Typeable, Generic)
reportTaskRunnerHeartbeatResponse
:: Int
-> Bool
-> ReportTaskRunnerHeartbeatResponse
reportTaskRunnerHeartbeatResponse pResponseStatus_ pTerminate_ =
ReportTaskRunnerHeartbeatResponse'
{_rtrhrsResponseStatus = pResponseStatus_, _rtrhrsTerminate = pTerminate_}
rtrhrsResponseStatus :: Lens' ReportTaskRunnerHeartbeatResponse Int
rtrhrsResponseStatus = lens _rtrhrsResponseStatus (\ s a -> s{_rtrhrsResponseStatus = a})
rtrhrsTerminate :: Lens' ReportTaskRunnerHeartbeatResponse Bool
rtrhrsTerminate = lens _rtrhrsTerminate (\ s a -> s{_rtrhrsTerminate = a})
instance NFData ReportTaskRunnerHeartbeatResponse
where