stratosphere-0.4.2: library-gen/Stratosphere/Resources/ElasticBeanstalkConfigurationTemplate.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html
module Stratosphere.Resources.ElasticBeanstalkConfigurationTemplate where
import Control.Lens hiding ((.=))
import Data.Aeson
import Data.Maybe (catMaybes)
import Data.Monoid (mempty)
import Data.Text
import Stratosphere.Values
import Stratosphere.ResourceProperties.ElasticBeanstalkConfigurationTemplateConfigurationOptionSetting
import Stratosphere.ResourceProperties.ElasticBeanstalkConfigurationTemplateSourceConfiguration
-- | Full data type definition for ElasticBeanstalkConfigurationTemplate. See
-- 'elasticBeanstalkConfigurationTemplate' for a more convenient
-- constructor.
data ElasticBeanstalkConfigurationTemplate =
ElasticBeanstalkConfigurationTemplate
{ _elasticBeanstalkConfigurationTemplateApplicationName :: Val Text
, _elasticBeanstalkConfigurationTemplateDescription :: Maybe (Val Text)
, _elasticBeanstalkConfigurationTemplateEnvironmentId :: Maybe (Val Text)
, _elasticBeanstalkConfigurationTemplateOptionSettings :: Maybe [ElasticBeanstalkConfigurationTemplateConfigurationOptionSetting]
, _elasticBeanstalkConfigurationTemplateSolutionStackName :: Maybe (Val Text)
, _elasticBeanstalkConfigurationTemplateSourceConfiguration :: Maybe ElasticBeanstalkConfigurationTemplateSourceConfiguration
} deriving (Show, Eq)
instance ToJSON ElasticBeanstalkConfigurationTemplate where
toJSON ElasticBeanstalkConfigurationTemplate{..} =
object $
catMaybes
[ Just ("ApplicationName" .= _elasticBeanstalkConfigurationTemplateApplicationName)
, ("Description" .=) <$> _elasticBeanstalkConfigurationTemplateDescription
, ("EnvironmentId" .=) <$> _elasticBeanstalkConfigurationTemplateEnvironmentId
, ("OptionSettings" .=) <$> _elasticBeanstalkConfigurationTemplateOptionSettings
, ("SolutionStackName" .=) <$> _elasticBeanstalkConfigurationTemplateSolutionStackName
, ("SourceConfiguration" .=) <$> _elasticBeanstalkConfigurationTemplateSourceConfiguration
]
instance FromJSON ElasticBeanstalkConfigurationTemplate where
parseJSON (Object obj) =
ElasticBeanstalkConfigurationTemplate <$>
obj .: "ApplicationName" <*>
obj .:? "Description" <*>
obj .:? "EnvironmentId" <*>
obj .:? "OptionSettings" <*>
obj .:? "SolutionStackName" <*>
obj .:? "SourceConfiguration"
parseJSON _ = mempty
-- | Constructor for 'ElasticBeanstalkConfigurationTemplate' containing
-- required fields as arguments.
elasticBeanstalkConfigurationTemplate
:: Val Text -- ^ 'ebctApplicationName'
-> ElasticBeanstalkConfigurationTemplate
elasticBeanstalkConfigurationTemplate applicationNamearg =
ElasticBeanstalkConfigurationTemplate
{ _elasticBeanstalkConfigurationTemplateApplicationName = applicationNamearg
, _elasticBeanstalkConfigurationTemplateDescription = Nothing
, _elasticBeanstalkConfigurationTemplateEnvironmentId = Nothing
, _elasticBeanstalkConfigurationTemplateOptionSettings = Nothing
, _elasticBeanstalkConfigurationTemplateSolutionStackName = Nothing
, _elasticBeanstalkConfigurationTemplateSourceConfiguration = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-applicationname
ebctApplicationName :: Lens' ElasticBeanstalkConfigurationTemplate (Val Text)
ebctApplicationName = lens _elasticBeanstalkConfigurationTemplateApplicationName (\s a -> s { _elasticBeanstalkConfigurationTemplateApplicationName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-description
ebctDescription :: Lens' ElasticBeanstalkConfigurationTemplate (Maybe (Val Text))
ebctDescription = lens _elasticBeanstalkConfigurationTemplateDescription (\s a -> s { _elasticBeanstalkConfigurationTemplateDescription = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-environmentid
ebctEnvironmentId :: Lens' ElasticBeanstalkConfigurationTemplate (Maybe (Val Text))
ebctEnvironmentId = lens _elasticBeanstalkConfigurationTemplateEnvironmentId (\s a -> s { _elasticBeanstalkConfigurationTemplateEnvironmentId = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-optionsettings
ebctOptionSettings :: Lens' ElasticBeanstalkConfigurationTemplate (Maybe [ElasticBeanstalkConfigurationTemplateConfigurationOptionSetting])
ebctOptionSettings = lens _elasticBeanstalkConfigurationTemplateOptionSettings (\s a -> s { _elasticBeanstalkConfigurationTemplateOptionSettings = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-solutionstackname
ebctSolutionStackName :: Lens' ElasticBeanstalkConfigurationTemplate (Maybe (Val Text))
ebctSolutionStackName = lens _elasticBeanstalkConfigurationTemplateSolutionStackName (\s a -> s { _elasticBeanstalkConfigurationTemplateSolutionStackName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-beanstalk-configurationtemplate.html#cfn-elasticbeanstalk-configurationtemplate-sourceconfiguration
ebctSourceConfiguration :: Lens' ElasticBeanstalkConfigurationTemplate (Maybe ElasticBeanstalkConfigurationTemplateSourceConfiguration)
ebctSourceConfiguration = lens _elasticBeanstalkConfigurationTemplateSourceConfiguration (\s a -> s { _elasticBeanstalkConfigurationTemplateSourceConfiguration = a })