stratosphere-0.50.0: library-gen/Stratosphere/Resources/AppConfigApplication.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html
module Stratosphere.Resources.AppConfigApplication where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AppConfigApplicationTags
-- | Full data type definition for AppConfigApplication. See
-- 'appConfigApplication' for a more convenient constructor.
data AppConfigApplication =
AppConfigApplication
{ _appConfigApplicationDescription :: Maybe (Val Text)
, _appConfigApplicationName :: Val Text
, _appConfigApplicationTags :: Maybe [AppConfigApplicationTags]
} deriving (Show, Eq)
instance ToResourceProperties AppConfigApplication where
toResourceProperties AppConfigApplication{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::AppConfig::Application"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ fmap (("Description",) . toJSON) _appConfigApplicationDescription
, (Just . ("Name",) . toJSON) _appConfigApplicationName
, fmap (("Tags",) . toJSON) _appConfigApplicationTags
]
}
-- | Constructor for 'AppConfigApplication' containing required fields as
-- arguments.
appConfigApplication
:: Val Text -- ^ 'acaName'
-> AppConfigApplication
appConfigApplication namearg =
AppConfigApplication
{ _appConfigApplicationDescription = Nothing
, _appConfigApplicationName = namearg
, _appConfigApplicationTags = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html#cfn-appconfig-application-description
acaDescription :: Lens' AppConfigApplication (Maybe (Val Text))
acaDescription = lens _appConfigApplicationDescription (\s a -> s { _appConfigApplicationDescription = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html#cfn-appconfig-application-name
acaName :: Lens' AppConfigApplication (Val Text)
acaName = lens _appConfigApplicationName (\s a -> s { _appConfigApplicationName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appconfig-application.html#cfn-appconfig-application-tags
acaTags :: Lens' AppConfigApplication (Maybe [AppConfigApplicationTags])
acaTags = lens _appConfigApplicationTags (\s a -> s { _appConfigApplicationTags = a })