{-# 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 #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.Lambda.PublishVersion -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Publishes a version of your function from the current snapshot of -- $LATEST. That is, AWS Lambda takes a snapshot of the function code and -- configuration information from $LATEST and publishes a new version. The -- code and configuration cannot be modified after publication. For -- information about the versioning feature, see -- . module Network.AWS.Lambda.PublishVersion ( -- * Creating a Request publishVersion , PublishVersion -- * Request Lenses , pvCodeSha256 , pvDescription , pvFunctionName -- * Destructuring the Response , functionConfiguration , FunctionConfiguration -- * Response Lenses , 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 -- | /See:/ 'publishVersion' smart constructor. data PublishVersion = PublishVersion' { _pvCodeSha256 :: !(Maybe Text) , _pvDescription :: !(Maybe Text) , _pvFunctionName :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'PublishVersion' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'pvCodeSha256' -- -- * 'pvDescription' -- -- * 'pvFunctionName' publishVersion :: Text -- ^ 'pvFunctionName' -> PublishVersion publishVersion pFunctionName_ = PublishVersion' { _pvCodeSha256 = Nothing , _pvDescription = Nothing , _pvFunctionName = pFunctionName_ } -- | The SHA256 hash of the deployment package you want to publish. This -- provides validation on the code you are publishing. If you provide this -- parameter value must match the SHA256 of the $LATEST version for the -- publication to succeed. pvCodeSha256 :: Lens' PublishVersion (Maybe Text) pvCodeSha256 = lens _pvCodeSha256 (\ s a -> s{_pvCodeSha256 = a}); -- | The description for the version you are publishing. If not provided, AWS -- Lambda copies the description from the $LATEST version. pvDescription :: Lens' PublishVersion (Maybe Text) pvDescription = lens _pvDescription (\ s a -> s{_pvDescription = a}); -- | The Lambda function name. You can specify a function name (for example, -- 'Thumbnail') or you can specify Amazon Resource Name (ARN) of the -- function (for example, -- 'arn:aws:lambda:us-west-2:account-id:function:ThumbNail'). AWS Lambda -- also allows you to specify a partial ARN (for example, -- 'account-id:Thumbnail'). Note that the length constraint applies only to -- the ARN. If you specify only the function name, it is limited to 64 -- character in length. pvFunctionName :: Lens' PublishVersion Text pvFunctionName = lens _pvFunctionName (\ s a -> s{_pvFunctionName = a}); instance AWSRequest PublishVersion where type Rs PublishVersion = FunctionConfiguration request = postJSON lambda response = receiveJSON (\ s h x -> eitherParseJSON x) instance Hashable PublishVersion instance NFData PublishVersion instance ToHeaders PublishVersion where toHeaders = const mempty instance ToJSON PublishVersion where toJSON PublishVersion'{..} = object (catMaybes [("CodeSha256" .=) <$> _pvCodeSha256, ("Description" .=) <$> _pvDescription]) instance ToPath PublishVersion where toPath PublishVersion'{..} = mconcat ["/2015-03-31/functions/", toBS _pvFunctionName, "/versions"] instance ToQuery PublishVersion where toQuery = const mempty