{-# 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.Lambda.UpdateFunctionConfiguration
(
updateFunctionConfiguration
, UpdateFunctionConfiguration
, ufcMemorySize
, ufcRuntime
, ufcRole
, ufcVPCConfig
, ufcHandler
, ufcTimeout
, ufcDescription
, ufcFunctionName
, functionConfiguration
, FunctionConfiguration
, fcMemorySize
, fcRuntime
, fcFunctionARN
, fcRole
, fcVPCConfig
, fcVersion
, fcFunctionName
, fcCodeSize
, fcHandler
, fcTimeout
, fcLastModified
, fcCodeSha256
, fcDescription
) where
import Network.AWS.Lambda.Types
import Network.AWS.Lambda.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data UpdateFunctionConfiguration = UpdateFunctionConfiguration'
{ _ufcMemorySize :: !(Maybe Nat)
, _ufcRuntime :: !(Maybe Runtime)
, _ufcRole :: !(Maybe Text)
, _ufcVPCConfig :: !(Maybe VPCConfig)
, _ufcHandler :: !(Maybe Text)
, _ufcTimeout :: !(Maybe Nat)
, _ufcDescription :: !(Maybe Text)
, _ufcFunctionName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
updateFunctionConfiguration
:: Text
-> UpdateFunctionConfiguration
updateFunctionConfiguration pFunctionName_ =
UpdateFunctionConfiguration'
{ _ufcMemorySize = Nothing
, _ufcRuntime = Nothing
, _ufcRole = Nothing
, _ufcVPCConfig = Nothing
, _ufcHandler = Nothing
, _ufcTimeout = Nothing
, _ufcDescription = Nothing
, _ufcFunctionName = pFunctionName_
}
ufcMemorySize :: Lens' UpdateFunctionConfiguration (Maybe Natural)
ufcMemorySize = lens _ufcMemorySize (\ s a -> s{_ufcMemorySize = a}) . mapping _Nat;
ufcRuntime :: Lens' UpdateFunctionConfiguration (Maybe Runtime)
ufcRuntime = lens _ufcRuntime (\ s a -> s{_ufcRuntime = a});
ufcRole :: Lens' UpdateFunctionConfiguration (Maybe Text)
ufcRole = lens _ufcRole (\ s a -> s{_ufcRole = a});
ufcVPCConfig :: Lens' UpdateFunctionConfiguration (Maybe VPCConfig)
ufcVPCConfig = lens _ufcVPCConfig (\ s a -> s{_ufcVPCConfig = a});
ufcHandler :: Lens' UpdateFunctionConfiguration (Maybe Text)
ufcHandler = lens _ufcHandler (\ s a -> s{_ufcHandler = a});
ufcTimeout :: Lens' UpdateFunctionConfiguration (Maybe Natural)
ufcTimeout = lens _ufcTimeout (\ s a -> s{_ufcTimeout = a}) . mapping _Nat;
ufcDescription :: Lens' UpdateFunctionConfiguration (Maybe Text)
ufcDescription = lens _ufcDescription (\ s a -> s{_ufcDescription = a});
ufcFunctionName :: Lens' UpdateFunctionConfiguration Text
ufcFunctionName = lens _ufcFunctionName (\ s a -> s{_ufcFunctionName = a});
instance AWSRequest UpdateFunctionConfiguration where
type Rs UpdateFunctionConfiguration =
FunctionConfiguration
request = putJSON lambda
response = receiveJSON (\ s h x -> eitherParseJSON x)
instance Hashable UpdateFunctionConfiguration
instance NFData UpdateFunctionConfiguration
instance ToHeaders UpdateFunctionConfiguration where
toHeaders = const mempty
instance ToJSON UpdateFunctionConfiguration where
toJSON UpdateFunctionConfiguration'{..}
= object
(catMaybes
[("MemorySize" .=) <$> _ufcMemorySize,
("Runtime" .=) <$> _ufcRuntime,
("Role" .=) <$> _ufcRole,
("VpcConfig" .=) <$> _ufcVPCConfig,
("Handler" .=) <$> _ufcHandler,
("Timeout" .=) <$> _ufcTimeout,
("Description" .=) <$> _ufcDescription])
instance ToPath UpdateFunctionConfiguration where
toPath UpdateFunctionConfiguration'{..}
= mconcat
["/2015-03-31/functions/", toBS _ufcFunctionName,
"/configuration"]
instance ToQuery UpdateFunctionConfiguration where
toQuery = const mempty