{-# 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.UpdateJobExecution
(
updateJobExecution
, UpdateJobExecution
, ujeIncludeJobDocument
, ujeStatusDetails
, ujeExecutionNumber
, ujeExpectedVersion
, ujeIncludeJobExecutionState
, ujeJobId
, ujeThingName
, ujeStatus
, updateJobExecutionResponse
, UpdateJobExecutionResponse
, ujersJobDocument
, ujersExecutionState
, ujersResponseStatus
) 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 UpdateJobExecution = UpdateJobExecution'
{ _ujeIncludeJobDocument :: !(Maybe Bool)
, _ujeStatusDetails :: !(Maybe (Map Text Text))
, _ujeExecutionNumber :: !(Maybe Integer)
, _ujeExpectedVersion :: !(Maybe Integer)
, _ujeIncludeJobExecutionState :: !(Maybe Bool)
, _ujeJobId :: !Text
, _ujeThingName :: !Text
, _ujeStatus :: !JobExecutionStatus
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateJobExecution
:: Text
-> Text
-> JobExecutionStatus
-> UpdateJobExecution
updateJobExecution pJobId_ pThingName_ pStatus_ =
UpdateJobExecution'
{ _ujeIncludeJobDocument = Nothing
, _ujeStatusDetails = Nothing
, _ujeExecutionNumber = Nothing
, _ujeExpectedVersion = Nothing
, _ujeIncludeJobExecutionState = Nothing
, _ujeJobId = pJobId_
, _ujeThingName = pThingName_
, _ujeStatus = pStatus_
}
ujeIncludeJobDocument :: Lens' UpdateJobExecution (Maybe Bool)
ujeIncludeJobDocument = lens _ujeIncludeJobDocument (\ s a -> s{_ujeIncludeJobDocument = a})
ujeStatusDetails :: Lens' UpdateJobExecution (HashMap Text Text)
ujeStatusDetails = lens _ujeStatusDetails (\ s a -> s{_ujeStatusDetails = a}) . _Default . _Map
ujeExecutionNumber :: Lens' UpdateJobExecution (Maybe Integer)
ujeExecutionNumber = lens _ujeExecutionNumber (\ s a -> s{_ujeExecutionNumber = a})
ujeExpectedVersion :: Lens' UpdateJobExecution (Maybe Integer)
ujeExpectedVersion = lens _ujeExpectedVersion (\ s a -> s{_ujeExpectedVersion = a})
ujeIncludeJobExecutionState :: Lens' UpdateJobExecution (Maybe Bool)
ujeIncludeJobExecutionState = lens _ujeIncludeJobExecutionState (\ s a -> s{_ujeIncludeJobExecutionState = a})
ujeJobId :: Lens' UpdateJobExecution Text
ujeJobId = lens _ujeJobId (\ s a -> s{_ujeJobId = a})
ujeThingName :: Lens' UpdateJobExecution Text
ujeThingName = lens _ujeThingName (\ s a -> s{_ujeThingName = a})
ujeStatus :: Lens' UpdateJobExecution JobExecutionStatus
ujeStatus = lens _ujeStatus (\ s a -> s{_ujeStatus = a})
instance AWSRequest UpdateJobExecution where
type Rs UpdateJobExecution =
UpdateJobExecutionResponse
request = postJSON ioTJobsData
response
= receiveJSON
(\ s h x ->
UpdateJobExecutionResponse' <$>
(x .?> "jobDocument") <*> (x .?> "executionState")
<*> (pure (fromEnum s)))
instance Hashable UpdateJobExecution where
instance NFData UpdateJobExecution where
instance ToHeaders UpdateJobExecution where
toHeaders = const mempty
instance ToJSON UpdateJobExecution where
toJSON UpdateJobExecution'{..}
= object
(catMaybes
[("includeJobDocument" .=) <$>
_ujeIncludeJobDocument,
("statusDetails" .=) <$> _ujeStatusDetails,
("executionNumber" .=) <$> _ujeExecutionNumber,
("expectedVersion" .=) <$> _ujeExpectedVersion,
("includeJobExecutionState" .=) <$>
_ujeIncludeJobExecutionState,
Just ("status" .= _ujeStatus)])
instance ToPath UpdateJobExecution where
toPath UpdateJobExecution'{..}
= mconcat
["/things/", toBS _ujeThingName, "/jobs/",
toBS _ujeJobId]
instance ToQuery UpdateJobExecution where
toQuery = const mempty
data UpdateJobExecutionResponse = UpdateJobExecutionResponse'
{ _ujersJobDocument :: !(Maybe Text)
, _ujersExecutionState :: !(Maybe JobExecutionState)
, _ujersResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateJobExecutionResponse
:: Int
-> UpdateJobExecutionResponse
updateJobExecutionResponse pResponseStatus_ =
UpdateJobExecutionResponse'
{ _ujersJobDocument = Nothing
, _ujersExecutionState = Nothing
, _ujersResponseStatus = pResponseStatus_
}
ujersJobDocument :: Lens' UpdateJobExecutionResponse (Maybe Text)
ujersJobDocument = lens _ujersJobDocument (\ s a -> s{_ujersJobDocument = a})
ujersExecutionState :: Lens' UpdateJobExecutionResponse (Maybe JobExecutionState)
ujersExecutionState = lens _ujersExecutionState (\ s a -> s{_ujersExecutionState = a})
ujersResponseStatus :: Lens' UpdateJobExecutionResponse Int
ujersResponseStatus = lens _ujersResponseStatus (\ s a -> s{_ujersResponseStatus = a})
instance NFData UpdateJobExecutionResponse where