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 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});