stratosphere-0.18.0: library-gen/Stratosphere/ResourceProperties/SESReceiptRuleAction.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html
module Stratosphere.ResourceProperties.SESReceiptRuleAction where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.SESReceiptRuleAddHeaderAction
import Stratosphere.ResourceProperties.SESReceiptRuleBounceAction
import Stratosphere.ResourceProperties.SESReceiptRuleLambdaAction
import Stratosphere.ResourceProperties.SESReceiptRuleS3Action
import Stratosphere.ResourceProperties.SESReceiptRuleSNSAction
import Stratosphere.ResourceProperties.SESReceiptRuleStopAction
import Stratosphere.ResourceProperties.SESReceiptRuleWorkmailAction
-- | Full data type definition for SESReceiptRuleAction. See
-- 'sesReceiptRuleAction' for a more convenient constructor.
data SESReceiptRuleAction =
SESReceiptRuleAction
{ _sESReceiptRuleActionAddHeaderAction :: Maybe SESReceiptRuleAddHeaderAction
, _sESReceiptRuleActionBounceAction :: Maybe SESReceiptRuleBounceAction
, _sESReceiptRuleActionLambdaAction :: Maybe SESReceiptRuleLambdaAction
, _sESReceiptRuleActionS3Action :: Maybe SESReceiptRuleS3Action
, _sESReceiptRuleActionSNSAction :: Maybe SESReceiptRuleSNSAction
, _sESReceiptRuleActionStopAction :: Maybe SESReceiptRuleStopAction
, _sESReceiptRuleActionWorkmailAction :: Maybe SESReceiptRuleWorkmailAction
} deriving (Show, Eq)
instance ToJSON SESReceiptRuleAction where
toJSON SESReceiptRuleAction{..} =
object $
catMaybes
[ fmap (("AddHeaderAction",) . toJSON) _sESReceiptRuleActionAddHeaderAction
, fmap (("BounceAction",) . toJSON) _sESReceiptRuleActionBounceAction
, fmap (("LambdaAction",) . toJSON) _sESReceiptRuleActionLambdaAction
, fmap (("S3Action",) . toJSON) _sESReceiptRuleActionS3Action
, fmap (("SNSAction",) . toJSON) _sESReceiptRuleActionSNSAction
, fmap (("StopAction",) . toJSON) _sESReceiptRuleActionStopAction
, fmap (("WorkmailAction",) . toJSON) _sESReceiptRuleActionWorkmailAction
]
instance FromJSON SESReceiptRuleAction where
parseJSON (Object obj) =
SESReceiptRuleAction <$>
(obj .:? "AddHeaderAction") <*>
(obj .:? "BounceAction") <*>
(obj .:? "LambdaAction") <*>
(obj .:? "S3Action") <*>
(obj .:? "SNSAction") <*>
(obj .:? "StopAction") <*>
(obj .:? "WorkmailAction")
parseJSON _ = mempty
-- | Constructor for 'SESReceiptRuleAction' containing required fields as
-- arguments.
sesReceiptRuleAction
:: SESReceiptRuleAction
sesReceiptRuleAction =
SESReceiptRuleAction
{ _sESReceiptRuleActionAddHeaderAction = Nothing
, _sESReceiptRuleActionBounceAction = Nothing
, _sESReceiptRuleActionLambdaAction = Nothing
, _sESReceiptRuleActionS3Action = Nothing
, _sESReceiptRuleActionSNSAction = Nothing
, _sESReceiptRuleActionStopAction = Nothing
, _sESReceiptRuleActionWorkmailAction = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-addheaderaction
sesrraAddHeaderAction :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleAddHeaderAction)
sesrraAddHeaderAction = lens _sESReceiptRuleActionAddHeaderAction (\s a -> s { _sESReceiptRuleActionAddHeaderAction = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-bounceaction
sesrraBounceAction :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleBounceAction)
sesrraBounceAction = lens _sESReceiptRuleActionBounceAction (\s a -> s { _sESReceiptRuleActionBounceAction = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-lambdaaction
sesrraLambdaAction :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleLambdaAction)
sesrraLambdaAction = lens _sESReceiptRuleActionLambdaAction (\s a -> s { _sESReceiptRuleActionLambdaAction = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-s3action
sesrraS3Action :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleS3Action)
sesrraS3Action = lens _sESReceiptRuleActionS3Action (\s a -> s { _sESReceiptRuleActionS3Action = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-snsaction
sesrraSNSAction :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleSNSAction)
sesrraSNSAction = lens _sESReceiptRuleActionSNSAction (\s a -> s { _sESReceiptRuleActionSNSAction = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-stopaction
sesrraStopAction :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleStopAction)
sesrraStopAction = lens _sESReceiptRuleActionStopAction (\s a -> s { _sESReceiptRuleActionStopAction = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ses-receiptrule-action.html#cfn-ses-receiptrule-action-workmailaction
sesrraWorkmailAction :: Lens' SESReceiptRuleAction (Maybe SESReceiptRuleWorkmailAction)
sesrraWorkmailAction = lens _sESReceiptRuleActionWorkmailAction (\s a -> s { _sESReceiptRuleActionWorkmailAction = a })