{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TupleSections #-} -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html module Stratosphere.Resources.LambdaLayerVersion where import Stratosphere.ResourceImports import Stratosphere.ResourceProperties.LambdaLayerVersionContent -- | Full data type definition for LambdaLayerVersion. See -- 'lambdaLayerVersion' for a more convenient constructor. data LambdaLayerVersion = LambdaLayerVersion { _lambdaLayerVersionCompatibleRuntimes :: Maybe (ValList Text) , _lambdaLayerVersionContent :: LambdaLayerVersionContent , _lambdaLayerVersionDescription :: Maybe (Val Text) , _lambdaLayerVersionLayerName :: Maybe (Val Text) , _lambdaLayerVersionLicenseInfo :: Maybe (Val Text) } deriving (Show, Eq) instance ToResourceProperties LambdaLayerVersion where toResourceProperties LambdaLayerVersion{..} = ResourceProperties { resourcePropertiesType = "AWS::Lambda::LayerVersion" , resourcePropertiesProperties = hashMapFromList $ catMaybes [ fmap (("CompatibleRuntimes",) . toJSON) _lambdaLayerVersionCompatibleRuntimes , (Just . ("Content",) . toJSON) _lambdaLayerVersionContent , fmap (("Description",) . toJSON) _lambdaLayerVersionDescription , fmap (("LayerName",) . toJSON) _lambdaLayerVersionLayerName , fmap (("LicenseInfo",) . toJSON) _lambdaLayerVersionLicenseInfo ] } -- | Constructor for 'LambdaLayerVersion' containing required fields as -- arguments. lambdaLayerVersion :: LambdaLayerVersionContent -- ^ 'llvContent' -> LambdaLayerVersion lambdaLayerVersion contentarg = LambdaLayerVersion { _lambdaLayerVersionCompatibleRuntimes = Nothing , _lambdaLayerVersionContent = contentarg , _lambdaLayerVersionDescription = Nothing , _lambdaLayerVersionLayerName = Nothing , _lambdaLayerVersionLicenseInfo = Nothing } -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes llvCompatibleRuntimes :: Lens' LambdaLayerVersion (Maybe (ValList Text)) llvCompatibleRuntimes = lens _lambdaLayerVersionCompatibleRuntimes (\s a -> s { _lambdaLayerVersionCompatibleRuntimes = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-content llvContent :: Lens' LambdaLayerVersion LambdaLayerVersionContent llvContent = lens _lambdaLayerVersionContent (\s a -> s { _lambdaLayerVersionContent = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-description llvDescription :: Lens' LambdaLayerVersion (Maybe (Val Text)) llvDescription = lens _lambdaLayerVersionDescription (\s a -> s { _lambdaLayerVersionDescription = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-layername llvLayerName :: Lens' LambdaLayerVersion (Maybe (Val Text)) llvLayerName = lens _lambdaLayerVersionLayerName (\s a -> s { _lambdaLayerVersionLayerName = a }) -- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-licenseinfo llvLicenseInfo :: Lens' LambdaLayerVersion (Maybe (Val Text)) llvLicenseInfo = lens _lambdaLayerVersionLicenseInfo (\s a -> s { _lambdaLayerVersionLicenseInfo = a })