stratosphere-0.47.0: library-gen/Stratosphere/Resources/PinpointPushTemplate.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html
module Stratosphere.Resources.PinpointPushTemplate where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.PinpointPushTemplateAndroidPushNotificationTemplate
import Stratosphere.ResourceProperties.PinpointPushTemplateAPNSPushNotificationTemplate
import Stratosphere.ResourceProperties.PinpointPushTemplateDefaultPushNotificationTemplate
-- | Full data type definition for PinpointPushTemplate. See
-- 'pinpointPushTemplate' for a more convenient constructor.
data PinpointPushTemplate =
PinpointPushTemplate
{ _pinpointPushTemplateADM :: Maybe PinpointPushTemplateAndroidPushNotificationTemplate
, _pinpointPushTemplateAPNS :: Maybe PinpointPushTemplateAPNSPushNotificationTemplate
, _pinpointPushTemplateBaidu :: Maybe PinpointPushTemplateAndroidPushNotificationTemplate
, _pinpointPushTemplateDefault :: Maybe PinpointPushTemplateDefaultPushNotificationTemplate
, _pinpointPushTemplateDefaultSubstitutions :: Maybe (Val Text)
, _pinpointPushTemplateGCM :: Maybe PinpointPushTemplateAndroidPushNotificationTemplate
, _pinpointPushTemplateTags :: Maybe Object
, _pinpointPushTemplateTemplateDescription :: Maybe (Val Text)
, _pinpointPushTemplateTemplateName :: Val Text
} deriving (Show, Eq)
instance ToResourceProperties PinpointPushTemplate where
toResourceProperties PinpointPushTemplate{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::Pinpoint::PushTemplate"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ fmap (("ADM",) . toJSON) _pinpointPushTemplateADM
, fmap (("APNS",) . toJSON) _pinpointPushTemplateAPNS
, fmap (("Baidu",) . toJSON) _pinpointPushTemplateBaidu
, fmap (("Default",) . toJSON) _pinpointPushTemplateDefault
, fmap (("DefaultSubstitutions",) . toJSON) _pinpointPushTemplateDefaultSubstitutions
, fmap (("GCM",) . toJSON) _pinpointPushTemplateGCM
, fmap (("Tags",) . toJSON) _pinpointPushTemplateTags
, fmap (("TemplateDescription",) . toJSON) _pinpointPushTemplateTemplateDescription
, (Just . ("TemplateName",) . toJSON) _pinpointPushTemplateTemplateName
]
}
-- | Constructor for 'PinpointPushTemplate' containing required fields as
-- arguments.
pinpointPushTemplate
:: Val Text -- ^ 'pptTemplateName'
-> PinpointPushTemplate
pinpointPushTemplate templateNamearg =
PinpointPushTemplate
{ _pinpointPushTemplateADM = Nothing
, _pinpointPushTemplateAPNS = Nothing
, _pinpointPushTemplateBaidu = Nothing
, _pinpointPushTemplateDefault = Nothing
, _pinpointPushTemplateDefaultSubstitutions = Nothing
, _pinpointPushTemplateGCM = Nothing
, _pinpointPushTemplateTags = Nothing
, _pinpointPushTemplateTemplateDescription = Nothing
, _pinpointPushTemplateTemplateName = templateNamearg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html#cfn-pinpoint-pushtemplate-adm
pptADM :: Lens' PinpointPushTemplate (Maybe PinpointPushTemplateAndroidPushNotificationTemplate)
pptADM = lens _pinpointPushTemplateADM (\s a -> s { _pinpointPushTemplateADM = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html#cfn-pinpoint-pushtemplate-apns
pptAPNS :: Lens' PinpointPushTemplate (Maybe PinpointPushTemplateAPNSPushNotificationTemplate)
pptAPNS = lens _pinpointPushTemplateAPNS (\s a -> s { _pinpointPushTemplateAPNS = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html#cfn-pinpoint-pushtemplate-baidu
pptBaidu :: Lens' PinpointPushTemplate (Maybe PinpointPushTemplateAndroidPushNotificationTemplate)
pptBaidu = lens _pinpointPushTemplateBaidu (\s a -> s { _pinpointPushTemplateBaidu = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html#cfn-pinpoint-pushtemplate-default
pptDefault :: Lens' PinpointPushTemplate (Maybe PinpointPushTemplateDefaultPushNotificationTemplate)
pptDefault = lens _pinpointPushTemplateDefault (\s a -> s { _pinpointPushTemplateDefault = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html#cfn-pinpoint-pushtemplate-defaultsubstitutions
pptDefaultSubstitutions :: Lens' PinpointPushTemplate (Maybe (Val Text))
pptDefaultSubstitutions = lens _pinpointPushTemplateDefaultSubstitutions (\s a -> s { _pinpointPushTemplateDefaultSubstitutions = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html#cfn-pinpoint-pushtemplate-gcm
pptGCM :: Lens' PinpointPushTemplate (Maybe PinpointPushTemplateAndroidPushNotificationTemplate)
pptGCM = lens _pinpointPushTemplateGCM (\s a -> s { _pinpointPushTemplateGCM = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html#cfn-pinpoint-pushtemplate-tags
pptTags :: Lens' PinpointPushTemplate (Maybe Object)
pptTags = lens _pinpointPushTemplateTags (\s a -> s { _pinpointPushTemplateTags = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html#cfn-pinpoint-pushtemplate-templatedescription
pptTemplateDescription :: Lens' PinpointPushTemplate (Maybe (Val Text))
pptTemplateDescription = lens _pinpointPushTemplateTemplateDescription (\s a -> s { _pinpointPushTemplateTemplateDescription = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-pushtemplate.html#cfn-pinpoint-pushtemplate-templatename
pptTemplateName :: Lens' PinpointPushTemplate (Val Text)
pptTemplateName = lens _pinpointPushTemplateTemplateName (\s a -> s { _pinpointPushTemplateTemplateName = a })