{-# 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.IoTJobsData.StartNextPendingJobExecution
(
startNextPendingJobExecution
, StartNextPendingJobExecution
, snpjeStatusDetails
, snpjeThingName
, startNextPendingJobExecutionResponse
, StartNextPendingJobExecutionResponse
, snpjersExecution
, snpjersResponseStatus
) where
import Network.AWS.IoTJobsData.Types
import Network.AWS.IoTJobsData.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data StartNextPendingJobExecution = StartNextPendingJobExecution'
{ _snpjeStatusDetails :: !(Maybe (Map Text Text))
, _snpjeThingName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
startNextPendingJobExecution
:: Text
-> StartNextPendingJobExecution
startNextPendingJobExecution pThingName_ =
StartNextPendingJobExecution'
{_snpjeStatusDetails = Nothing, _snpjeThingName = pThingName_}
snpjeStatusDetails :: Lens' StartNextPendingJobExecution (HashMap Text Text)
snpjeStatusDetails = lens _snpjeStatusDetails (\ s a -> s{_snpjeStatusDetails = a}) . _Default . _Map
snpjeThingName :: Lens' StartNextPendingJobExecution Text
snpjeThingName = lens _snpjeThingName (\ s a -> s{_snpjeThingName = a})
instance AWSRequest StartNextPendingJobExecution
where
type Rs StartNextPendingJobExecution =
StartNextPendingJobExecutionResponse
request = putJSON ioTJobsData
response
= receiveJSON
(\ s h x ->
StartNextPendingJobExecutionResponse' <$>
(x .?> "execution") <*> (pure (fromEnum s)))
instance Hashable StartNextPendingJobExecution where
instance NFData StartNextPendingJobExecution where
instance ToHeaders StartNextPendingJobExecution where
toHeaders = const mempty
instance ToJSON StartNextPendingJobExecution where
toJSON StartNextPendingJobExecution'{..}
= object
(catMaybes
[("statusDetails" .=) <$> _snpjeStatusDetails])
instance ToPath StartNextPendingJobExecution where
toPath StartNextPendingJobExecution'{..}
= mconcat
["/things/", toBS _snpjeThingName, "/jobs/$next"]
instance ToQuery StartNextPendingJobExecution where
toQuery = const mempty
data StartNextPendingJobExecutionResponse = StartNextPendingJobExecutionResponse'
{ _snpjersExecution :: !(Maybe JobExecution)
, _snpjersResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
startNextPendingJobExecutionResponse
:: Int
-> StartNextPendingJobExecutionResponse
startNextPendingJobExecutionResponse pResponseStatus_ =
StartNextPendingJobExecutionResponse'
{_snpjersExecution = Nothing, _snpjersResponseStatus = pResponseStatus_}
snpjersExecution :: Lens' StartNextPendingJobExecutionResponse (Maybe JobExecution)
snpjersExecution = lens _snpjersExecution (\ s a -> s{_snpjersExecution = a})
snpjersResponseStatus :: Lens' StartNextPendingJobExecutionResponse Int
snpjersResponseStatus = lens _snpjersResponseStatus (\ s a -> s{_snpjersResponseStatus = a})
instance NFData StartNextPendingJobExecutionResponse
where