stratosphere-0.15.2: library-gen/Stratosphere/ResourceProperties/EventsRuleInputTransformer.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html
module Stratosphere.ResourceProperties.EventsRuleInputTransformer where
import Stratosphere.ResourceImports
-- | Full data type definition for EventsRuleInputTransformer. See
-- 'eventsRuleInputTransformer' for a more convenient constructor.
data EventsRuleInputTransformer =
EventsRuleInputTransformer
{ _eventsRuleInputTransformerInputPathsMap :: Maybe Object
, _eventsRuleInputTransformerInputTemplate :: Val Text
} deriving (Show, Eq)
instance ToJSON EventsRuleInputTransformer where
toJSON EventsRuleInputTransformer{..} =
object $
catMaybes
[ fmap (("InputPathsMap",) . toJSON) _eventsRuleInputTransformerInputPathsMap
, (Just . ("InputTemplate",) . toJSON) _eventsRuleInputTransformerInputTemplate
]
instance FromJSON EventsRuleInputTransformer where
parseJSON (Object obj) =
EventsRuleInputTransformer <$>
(obj .:? "InputPathsMap") <*>
(obj .: "InputTemplate")
parseJSON _ = mempty
-- | Constructor for 'EventsRuleInputTransformer' containing required fields
-- as arguments.
eventsRuleInputTransformer
:: Val Text -- ^ 'eritInputTemplate'
-> EventsRuleInputTransformer
eventsRuleInputTransformer inputTemplatearg =
EventsRuleInputTransformer
{ _eventsRuleInputTransformerInputPathsMap = Nothing
, _eventsRuleInputTransformerInputTemplate = inputTemplatearg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html#cfn-events-rule-inputtransformer-inputpathsmap
eritInputPathsMap :: Lens' EventsRuleInputTransformer (Maybe Object)
eritInputPathsMap = lens _eventsRuleInputTransformerInputPathsMap (\s a -> s { _eventsRuleInputTransformerInputPathsMap = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-inputtransformer.html#cfn-events-rule-inputtransformer-inputtemplate
eritInputTemplate :: Lens' EventsRuleInputTransformer (Val Text)
eritInputTemplate = lens _eventsRuleInputTransformerInputTemplate (\s a -> s { _eventsRuleInputTransformerInputTemplate = a })