{-# 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.StepFunctions.UpdateStateMachine
(
updateStateMachine
, UpdateStateMachine
, usmDefinition
, usmRoleARN
, usmStateMachineARN
, updateStateMachineResponse
, UpdateStateMachineResponse
, usmrsResponseStatus
, usmrsUpdateDate
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.StepFunctions.Types
import Network.AWS.StepFunctions.Types.Product
data UpdateStateMachine = UpdateStateMachine'
{ _usmDefinition :: !(Maybe Text)
, _usmRoleARN :: !(Maybe Text)
, _usmStateMachineARN :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateStateMachine
:: Text
-> UpdateStateMachine
updateStateMachine pStateMachineARN_ =
UpdateStateMachine'
{ _usmDefinition = Nothing
, _usmRoleARN = Nothing
, _usmStateMachineARN = pStateMachineARN_
}
usmDefinition :: Lens' UpdateStateMachine (Maybe Text)
usmDefinition = lens _usmDefinition (\ s a -> s{_usmDefinition = a})
usmRoleARN :: Lens' UpdateStateMachine (Maybe Text)
usmRoleARN = lens _usmRoleARN (\ s a -> s{_usmRoleARN = a})
usmStateMachineARN :: Lens' UpdateStateMachine Text
usmStateMachineARN = lens _usmStateMachineARN (\ s a -> s{_usmStateMachineARN = a})
instance AWSRequest UpdateStateMachine where
type Rs UpdateStateMachine =
UpdateStateMachineResponse
request = postJSON stepFunctions
response
= receiveJSON
(\ s h x ->
UpdateStateMachineResponse' <$>
(pure (fromEnum s)) <*> (x .:> "updateDate"))
instance Hashable UpdateStateMachine where
instance NFData UpdateStateMachine where
instance ToHeaders UpdateStateMachine where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSStepFunctions.UpdateStateMachine" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.0" :: ByteString)])
instance ToJSON UpdateStateMachine where
toJSON UpdateStateMachine'{..}
= object
(catMaybes
[("definition" .=) <$> _usmDefinition,
("roleArn" .=) <$> _usmRoleARN,
Just ("stateMachineArn" .= _usmStateMachineARN)])
instance ToPath UpdateStateMachine where
toPath = const "/"
instance ToQuery UpdateStateMachine where
toQuery = const mempty
data UpdateStateMachineResponse = UpdateStateMachineResponse'
{ _usmrsResponseStatus :: !Int
, _usmrsUpdateDate :: !POSIX
} deriving (Eq, Read, Show, Data, Typeable, Generic)
updateStateMachineResponse
:: Int
-> UTCTime
-> UpdateStateMachineResponse
updateStateMachineResponse pResponseStatus_ pUpdateDate_ =
UpdateStateMachineResponse'
{ _usmrsResponseStatus = pResponseStatus_
, _usmrsUpdateDate = _Time # pUpdateDate_
}
usmrsResponseStatus :: Lens' UpdateStateMachineResponse Int
usmrsResponseStatus = lens _usmrsResponseStatus (\ s a -> s{_usmrsResponseStatus = a})
usmrsUpdateDate :: Lens' UpdateStateMachineResponse UTCTime
usmrsUpdateDate = lens _usmrsUpdateDate (\ s a -> s{_usmrsUpdateDate = a}) . _Time
instance NFData UpdateStateMachineResponse where