amazonka-datapipeline-1.2.0: gen/Network/AWS/DataPipeline/ReportTaskRunnerHeartbeat.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.DataPipeline.ReportTaskRunnerHeartbeat
-- Copyright : (c) 2013-2015 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Task runners call 'ReportTaskRunnerHeartbeat' every 15 minutes to
-- indicate that they are operational. If the AWS Data Pipeline Task Runner
-- is launched on a resource managed by AWS Data Pipeline, the web service
-- can use this call to detect when the task runner application has failed
-- and restart a new instance.
--
-- /See:/ <http://docs.aws.amazon.com/datapipeline/latest/APIReference/API_ReportTaskRunnerHeartbeat.html AWS API Reference> for ReportTaskRunnerHeartbeat.
module Network.AWS.DataPipeline.ReportTaskRunnerHeartbeat
(
-- * Creating a Request
reportTaskRunnerHeartbeat
, ReportTaskRunnerHeartbeat
-- * Request Lenses
, rtrhHostname
, rtrhWorkerGroup
, rtrhTaskrunnerId
-- * Destructuring the Response
, reportTaskRunnerHeartbeatResponse
, ReportTaskRunnerHeartbeatResponse
-- * Response Lenses
, rtrhrsStatus
, rtrhrsTerminate
) where
import Network.AWS.DataPipeline.Types
import Network.AWS.DataPipeline.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | Contains the parameters for ReportTaskRunnerHeartbeat.
--
-- /See:/ 'reportTaskRunnerHeartbeat' smart constructor.
data ReportTaskRunnerHeartbeat = ReportTaskRunnerHeartbeat'
{ _rtrhHostname :: !(Maybe Text)
, _rtrhWorkerGroup :: !(Maybe Text)
, _rtrhTaskrunnerId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'ReportTaskRunnerHeartbeat' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'rtrhHostname'
--
-- * 'rtrhWorkerGroup'
--
-- * 'rtrhTaskrunnerId'
reportTaskRunnerHeartbeat
:: Text -- ^ 'rtrhTaskrunnerId'
-> ReportTaskRunnerHeartbeat
reportTaskRunnerHeartbeat pTaskrunnerId_ =
ReportTaskRunnerHeartbeat'
{ _rtrhHostname = Nothing
, _rtrhWorkerGroup = Nothing
, _rtrhTaskrunnerId = pTaskrunnerId_
}
-- | The public DNS name of the task runner.
rtrhHostname :: Lens' ReportTaskRunnerHeartbeat (Maybe Text)
rtrhHostname = lens _rtrhHostname (\ s a -> s{_rtrhHostname = a});
-- | The type of task the task runner is configured to accept and process.
-- The worker group is set as a field on objects in the pipeline when they
-- are created. You can only specify a single value for 'workerGroup'.
-- There are no wildcard values permitted in 'workerGroup'; the string must
-- be an exact, case-sensitive, match.
rtrhWorkerGroup :: Lens' ReportTaskRunnerHeartbeat (Maybe Text)
rtrhWorkerGroup = lens _rtrhWorkerGroup (\ s a -> s{_rtrhWorkerGroup = a});
-- | The ID of the task runner. This value should be unique across your AWS
-- account. In the case of AWS Data Pipeline Task Runner launched on a
-- resource managed by AWS Data Pipeline, the web service provides a unique
-- identifier when it launches the application. If you have written a
-- custom task runner, you should assign a unique identifier for the task
-- runner.
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
-- | Contains the output of ReportTaskRunnerHeartbeat.
--
-- /See:/ 'reportTaskRunnerHeartbeatResponse' smart constructor.
data ReportTaskRunnerHeartbeatResponse = ReportTaskRunnerHeartbeatResponse'
{ _rtrhrsStatus :: !Int
, _rtrhrsTerminate :: !Bool
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'ReportTaskRunnerHeartbeatResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'rtrhrsStatus'
--
-- * 'rtrhrsTerminate'
reportTaskRunnerHeartbeatResponse
:: Int -- ^ 'rtrhrsStatus'
-> Bool -- ^ 'rtrhrsTerminate'
-> ReportTaskRunnerHeartbeatResponse
reportTaskRunnerHeartbeatResponse pStatus_ pTerminate_ =
ReportTaskRunnerHeartbeatResponse'
{ _rtrhrsStatus = pStatus_
, _rtrhrsTerminate = pTerminate_
}
-- | The response status code.
rtrhrsStatus :: Lens' ReportTaskRunnerHeartbeatResponse Int
rtrhrsStatus = lens _rtrhrsStatus (\ s a -> s{_rtrhrsStatus = a});
-- | Indicates whether the calling task runner should terminate.
rtrhrsTerminate :: Lens' ReportTaskRunnerHeartbeatResponse Bool
rtrhrsTerminate = lens _rtrhrsTerminate (\ s a -> s{_rtrhrsTerminate = a});