stratosphere-0.15.2: library-gen/Stratosphere/ResourceProperties/ElasticBeanstalkApplicationMaxAgeRule.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html
module Stratosphere.ResourceProperties.ElasticBeanstalkApplicationMaxAgeRule where
import Stratosphere.ResourceImports
-- | Full data type definition for ElasticBeanstalkApplicationMaxAgeRule. See
-- 'elasticBeanstalkApplicationMaxAgeRule' for a more convenient
-- constructor.
data ElasticBeanstalkApplicationMaxAgeRule =
ElasticBeanstalkApplicationMaxAgeRule
{ _elasticBeanstalkApplicationMaxAgeRuleDeleteSourceFromS3 :: Maybe (Val Bool)
, _elasticBeanstalkApplicationMaxAgeRuleEnabled :: Maybe (Val Bool)
, _elasticBeanstalkApplicationMaxAgeRuleMaxAgeInDays :: Maybe (Val Integer)
} deriving (Show, Eq)
instance ToJSON ElasticBeanstalkApplicationMaxAgeRule where
toJSON ElasticBeanstalkApplicationMaxAgeRule{..} =
object $
catMaybes
[ fmap (("DeleteSourceFromS3",) . toJSON . fmap Bool') _elasticBeanstalkApplicationMaxAgeRuleDeleteSourceFromS3
, fmap (("Enabled",) . toJSON . fmap Bool') _elasticBeanstalkApplicationMaxAgeRuleEnabled
, fmap (("MaxAgeInDays",) . toJSON . fmap Integer') _elasticBeanstalkApplicationMaxAgeRuleMaxAgeInDays
]
instance FromJSON ElasticBeanstalkApplicationMaxAgeRule where
parseJSON (Object obj) =
ElasticBeanstalkApplicationMaxAgeRule <$>
fmap (fmap (fmap unBool')) (obj .:? "DeleteSourceFromS3") <*>
fmap (fmap (fmap unBool')) (obj .:? "Enabled") <*>
fmap (fmap (fmap unInteger')) (obj .:? "MaxAgeInDays")
parseJSON _ = mempty
-- | Constructor for 'ElasticBeanstalkApplicationMaxAgeRule' containing
-- required fields as arguments.
elasticBeanstalkApplicationMaxAgeRule
:: ElasticBeanstalkApplicationMaxAgeRule
elasticBeanstalkApplicationMaxAgeRule =
ElasticBeanstalkApplicationMaxAgeRule
{ _elasticBeanstalkApplicationMaxAgeRuleDeleteSourceFromS3 = Nothing
, _elasticBeanstalkApplicationMaxAgeRuleEnabled = Nothing
, _elasticBeanstalkApplicationMaxAgeRuleMaxAgeInDays = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html#cfn-elasticbeanstalk-application-maxagerule-deletesourcefroms3
ebamarDeleteSourceFromS3 :: Lens' ElasticBeanstalkApplicationMaxAgeRule (Maybe (Val Bool))
ebamarDeleteSourceFromS3 = lens _elasticBeanstalkApplicationMaxAgeRuleDeleteSourceFromS3 (\s a -> s { _elasticBeanstalkApplicationMaxAgeRuleDeleteSourceFromS3 = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html#cfn-elasticbeanstalk-application-maxagerule-enabled
ebamarEnabled :: Lens' ElasticBeanstalkApplicationMaxAgeRule (Maybe (Val Bool))
ebamarEnabled = lens _elasticBeanstalkApplicationMaxAgeRuleEnabled (\s a -> s { _elasticBeanstalkApplicationMaxAgeRuleEnabled = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticbeanstalk-application-maxagerule.html#cfn-elasticbeanstalk-application-maxagerule-maxageindays
ebamarMaxAgeInDays :: Lens' ElasticBeanstalkApplicationMaxAgeRule (Maybe (Val Integer))
ebamarMaxAgeInDays = lens _elasticBeanstalkApplicationMaxAgeRuleMaxAgeInDays (\s a -> s { _elasticBeanstalkApplicationMaxAgeRuleMaxAgeInDays = a })