{-# 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.SSM.PutParameter
(
putParameter
, PutParameter
, ppKeyId
, ppOverwrite
, ppDescription
, ppName
, ppValue
, ppType
, putParameterResponse
, PutParameterResponse
, pprsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.SSM.Types
import Network.AWS.SSM.Types.Product
data PutParameter = PutParameter'
{ _ppKeyId :: !(Maybe Text)
, _ppOverwrite :: !(Maybe Bool)
, _ppDescription :: !(Maybe Text)
, _ppName :: !Text
, _ppValue :: !Text
, _ppType :: !ParameterType
} deriving (Eq,Read,Show,Data,Typeable,Generic)
putParameter
:: Text
-> Text
-> ParameterType
-> PutParameter
putParameter pName_ pValue_ pType_ =
PutParameter'
{ _ppKeyId = Nothing
, _ppOverwrite = Nothing
, _ppDescription = Nothing
, _ppName = pName_
, _ppValue = pValue_
, _ppType = pType_
}
ppKeyId :: Lens' PutParameter (Maybe Text)
ppKeyId = lens _ppKeyId (\ s a -> s{_ppKeyId = a});
ppOverwrite :: Lens' PutParameter (Maybe Bool)
ppOverwrite = lens _ppOverwrite (\ s a -> s{_ppOverwrite = a});
ppDescription :: Lens' PutParameter (Maybe Text)
ppDescription = lens _ppDescription (\ s a -> s{_ppDescription = a});
ppName :: Lens' PutParameter Text
ppName = lens _ppName (\ s a -> s{_ppName = a});
ppValue :: Lens' PutParameter Text
ppValue = lens _ppValue (\ s a -> s{_ppValue = a});
ppType :: Lens' PutParameter ParameterType
ppType = lens _ppType (\ s a -> s{_ppType = a});
instance AWSRequest PutParameter where
type Rs PutParameter = PutParameterResponse
request = postJSON ssm
response
= receiveEmpty
(\ s h x ->
PutParameterResponse' <$> (pure (fromEnum s)))
instance Hashable PutParameter
instance NFData PutParameter
instance ToHeaders PutParameter where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonSSM.PutParameter" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON PutParameter where
toJSON PutParameter'{..}
= object
(catMaybes
[("KeyId" .=) <$> _ppKeyId,
("Overwrite" .=) <$> _ppOverwrite,
("Description" .=) <$> _ppDescription,
Just ("Name" .= _ppName), Just ("Value" .= _ppValue),
Just ("Type" .= _ppType)])
instance ToPath PutParameter where
toPath = const "/"
instance ToQuery PutParameter where
toQuery = const mempty
newtype PutParameterResponse = PutParameterResponse'
{ _pprsResponseStatus :: Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
putParameterResponse
:: Int
-> PutParameterResponse
putParameterResponse pResponseStatus_ =
PutParameterResponse'
{ _pprsResponseStatus = pResponseStatus_
}
pprsResponseStatus :: Lens' PutParameterResponse Int
pprsResponseStatus = lens _pprsResponseStatus (\ s a -> s{_pprsResponseStatus = a});
instance NFData PutParameterResponse