packages feed

stratosphere-0.46.0: library-gen/Stratosphere/ResourceProperties/PinpointPushTemplateAndroidPushNotificationTemplate.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html

module Stratosphere.ResourceProperties.PinpointPushTemplateAndroidPushNotificationTemplate where

import Stratosphere.ResourceImports


-- | Full data type definition for
-- PinpointPushTemplateAndroidPushNotificationTemplate. See
-- 'pinpointPushTemplateAndroidPushNotificationTemplate' for a more
-- convenient constructor.
data PinpointPushTemplateAndroidPushNotificationTemplate =
  PinpointPushTemplateAndroidPushNotificationTemplate
  { _pinpointPushTemplateAndroidPushNotificationTemplateAction :: Maybe (Val Text)
  , _pinpointPushTemplateAndroidPushNotificationTemplateBody :: Maybe (Val Text)
  , _pinpointPushTemplateAndroidPushNotificationTemplateImageIconUrl :: Maybe (Val Text)
  , _pinpointPushTemplateAndroidPushNotificationTemplateImageUrl :: Maybe (Val Text)
  , _pinpointPushTemplateAndroidPushNotificationTemplateSmallImageIconUrl :: Maybe (Val Text)
  , _pinpointPushTemplateAndroidPushNotificationTemplateSound :: Maybe (Val Text)
  , _pinpointPushTemplateAndroidPushNotificationTemplateTitle :: Maybe (Val Text)
  , _pinpointPushTemplateAndroidPushNotificationTemplateUrl :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToJSON PinpointPushTemplateAndroidPushNotificationTemplate where
  toJSON PinpointPushTemplateAndroidPushNotificationTemplate{..} =
    object $
    catMaybes
    [ fmap (("Action",) . toJSON) _pinpointPushTemplateAndroidPushNotificationTemplateAction
    , fmap (("Body",) . toJSON) _pinpointPushTemplateAndroidPushNotificationTemplateBody
    , fmap (("ImageIconUrl",) . toJSON) _pinpointPushTemplateAndroidPushNotificationTemplateImageIconUrl
    , fmap (("ImageUrl",) . toJSON) _pinpointPushTemplateAndroidPushNotificationTemplateImageUrl
    , fmap (("SmallImageIconUrl",) . toJSON) _pinpointPushTemplateAndroidPushNotificationTemplateSmallImageIconUrl
    , fmap (("Sound",) . toJSON) _pinpointPushTemplateAndroidPushNotificationTemplateSound
    , fmap (("Title",) . toJSON) _pinpointPushTemplateAndroidPushNotificationTemplateTitle
    , fmap (("Url",) . toJSON) _pinpointPushTemplateAndroidPushNotificationTemplateUrl
    ]

-- | Constructor for 'PinpointPushTemplateAndroidPushNotificationTemplate'
-- containing required fields as arguments.
pinpointPushTemplateAndroidPushNotificationTemplate
  :: PinpointPushTemplateAndroidPushNotificationTemplate
pinpointPushTemplateAndroidPushNotificationTemplate  =
  PinpointPushTemplateAndroidPushNotificationTemplate
  { _pinpointPushTemplateAndroidPushNotificationTemplateAction = Nothing
  , _pinpointPushTemplateAndroidPushNotificationTemplateBody = Nothing
  , _pinpointPushTemplateAndroidPushNotificationTemplateImageIconUrl = Nothing
  , _pinpointPushTemplateAndroidPushNotificationTemplateImageUrl = Nothing
  , _pinpointPushTemplateAndroidPushNotificationTemplateSmallImageIconUrl = Nothing
  , _pinpointPushTemplateAndroidPushNotificationTemplateSound = Nothing
  , _pinpointPushTemplateAndroidPushNotificationTemplateTitle = Nothing
  , _pinpointPushTemplateAndroidPushNotificationTemplateUrl = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html#cfn-pinpoint-pushtemplate-androidpushnotificationtemplate-action
pptapntAction :: Lens' PinpointPushTemplateAndroidPushNotificationTemplate (Maybe (Val Text))
pptapntAction = lens _pinpointPushTemplateAndroidPushNotificationTemplateAction (\s a -> s { _pinpointPushTemplateAndroidPushNotificationTemplateAction = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html#cfn-pinpoint-pushtemplate-androidpushnotificationtemplate-body
pptapntBody :: Lens' PinpointPushTemplateAndroidPushNotificationTemplate (Maybe (Val Text))
pptapntBody = lens _pinpointPushTemplateAndroidPushNotificationTemplateBody (\s a -> s { _pinpointPushTemplateAndroidPushNotificationTemplateBody = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html#cfn-pinpoint-pushtemplate-androidpushnotificationtemplate-imageiconurl
pptapntImageIconUrl :: Lens' PinpointPushTemplateAndroidPushNotificationTemplate (Maybe (Val Text))
pptapntImageIconUrl = lens _pinpointPushTemplateAndroidPushNotificationTemplateImageIconUrl (\s a -> s { _pinpointPushTemplateAndroidPushNotificationTemplateImageIconUrl = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html#cfn-pinpoint-pushtemplate-androidpushnotificationtemplate-imageurl
pptapntImageUrl :: Lens' PinpointPushTemplateAndroidPushNotificationTemplate (Maybe (Val Text))
pptapntImageUrl = lens _pinpointPushTemplateAndroidPushNotificationTemplateImageUrl (\s a -> s { _pinpointPushTemplateAndroidPushNotificationTemplateImageUrl = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html#cfn-pinpoint-pushtemplate-androidpushnotificationtemplate-smallimageiconurl
pptapntSmallImageIconUrl :: Lens' PinpointPushTemplateAndroidPushNotificationTemplate (Maybe (Val Text))
pptapntSmallImageIconUrl = lens _pinpointPushTemplateAndroidPushNotificationTemplateSmallImageIconUrl (\s a -> s { _pinpointPushTemplateAndroidPushNotificationTemplateSmallImageIconUrl = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html#cfn-pinpoint-pushtemplate-androidpushnotificationtemplate-sound
pptapntSound :: Lens' PinpointPushTemplateAndroidPushNotificationTemplate (Maybe (Val Text))
pptapntSound = lens _pinpointPushTemplateAndroidPushNotificationTemplateSound (\s a -> s { _pinpointPushTemplateAndroidPushNotificationTemplateSound = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html#cfn-pinpoint-pushtemplate-androidpushnotificationtemplate-title
pptapntTitle :: Lens' PinpointPushTemplateAndroidPushNotificationTemplate (Maybe (Val Text))
pptapntTitle = lens _pinpointPushTemplateAndroidPushNotificationTemplateTitle (\s a -> s { _pinpointPushTemplateAndroidPushNotificationTemplateTitle = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-pushtemplate-androidpushnotificationtemplate.html#cfn-pinpoint-pushtemplate-androidpushnotificationtemplate-url
pptapntUrl :: Lens' PinpointPushTemplateAndroidPushNotificationTemplate (Maybe (Val Text))
pptapntUrl = lens _pinpointPushTemplateAndroidPushNotificationTemplateUrl (\s a -> s { _pinpointPushTemplateAndroidPushNotificationTemplateUrl = a })