packages feed

stratosphere-0.39.0: library-gen/Stratosphere/ResourceProperties/PinpointCampaignMessage.hs

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

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

module Stratosphere.ResourceProperties.PinpointCampaignMessage where

import Stratosphere.ResourceImports


-- | Full data type definition for PinpointCampaignMessage. See
-- 'pinpointCampaignMessage' for a more convenient constructor.
data PinpointCampaignMessage =
  PinpointCampaignMessage
  { _pinpointCampaignMessageAction :: Maybe (Val Text)
  , _pinpointCampaignMessageBody :: Maybe (Val Text)
  , _pinpointCampaignMessageImageIconUrl :: Maybe (Val Text)
  , _pinpointCampaignMessageImageSmallIconUrl :: Maybe (Val Text)
  , _pinpointCampaignMessageImageUrl :: Maybe (Val Text)
  , _pinpointCampaignMessageJsonBody :: Maybe (Val Text)
  , _pinpointCampaignMessageMediaUrl :: Maybe (Val Text)
  , _pinpointCampaignMessageRawContent :: Maybe (Val Text)
  , _pinpointCampaignMessageSilentPush :: Maybe (Val Bool)
  , _pinpointCampaignMessageTimeToLive :: Maybe (Val Integer)
  , _pinpointCampaignMessageTitle :: Maybe (Val Text)
  , _pinpointCampaignMessageUrl :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToJSON PinpointCampaignMessage where
  toJSON PinpointCampaignMessage{..} =
    object $
    catMaybes
    [ fmap (("Action",) . toJSON) _pinpointCampaignMessageAction
    , fmap (("Body",) . toJSON) _pinpointCampaignMessageBody
    , fmap (("ImageIconUrl",) . toJSON) _pinpointCampaignMessageImageIconUrl
    , fmap (("ImageSmallIconUrl",) . toJSON) _pinpointCampaignMessageImageSmallIconUrl
    , fmap (("ImageUrl",) . toJSON) _pinpointCampaignMessageImageUrl
    , fmap (("JsonBody",) . toJSON) _pinpointCampaignMessageJsonBody
    , fmap (("MediaUrl",) . toJSON) _pinpointCampaignMessageMediaUrl
    , fmap (("RawContent",) . toJSON) _pinpointCampaignMessageRawContent
    , fmap (("SilentPush",) . toJSON) _pinpointCampaignMessageSilentPush
    , fmap (("TimeToLive",) . toJSON) _pinpointCampaignMessageTimeToLive
    , fmap (("Title",) . toJSON) _pinpointCampaignMessageTitle
    , fmap (("Url",) . toJSON) _pinpointCampaignMessageUrl
    ]

-- | Constructor for 'PinpointCampaignMessage' containing required fields as
-- arguments.
pinpointCampaignMessage
  :: PinpointCampaignMessage
pinpointCampaignMessage  =
  PinpointCampaignMessage
  { _pinpointCampaignMessageAction = Nothing
  , _pinpointCampaignMessageBody = Nothing
  , _pinpointCampaignMessageImageIconUrl = Nothing
  , _pinpointCampaignMessageImageSmallIconUrl = Nothing
  , _pinpointCampaignMessageImageUrl = Nothing
  , _pinpointCampaignMessageJsonBody = Nothing
  , _pinpointCampaignMessageMediaUrl = Nothing
  , _pinpointCampaignMessageRawContent = Nothing
  , _pinpointCampaignMessageSilentPush = Nothing
  , _pinpointCampaignMessageTimeToLive = Nothing
  , _pinpointCampaignMessageTitle = Nothing
  , _pinpointCampaignMessageUrl = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html#cfn-pinpoint-campaign-message-action
pcmAction :: Lens' PinpointCampaignMessage (Maybe (Val Text))
pcmAction = lens _pinpointCampaignMessageAction (\s a -> s { _pinpointCampaignMessageAction = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html#cfn-pinpoint-campaign-message-body
pcmBody :: Lens' PinpointCampaignMessage (Maybe (Val Text))
pcmBody = lens _pinpointCampaignMessageBody (\s a -> s { _pinpointCampaignMessageBody = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html#cfn-pinpoint-campaign-message-imageiconurl
pcmImageIconUrl :: Lens' PinpointCampaignMessage (Maybe (Val Text))
pcmImageIconUrl = lens _pinpointCampaignMessageImageIconUrl (\s a -> s { _pinpointCampaignMessageImageIconUrl = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html#cfn-pinpoint-campaign-message-imagesmalliconurl
pcmImageSmallIconUrl :: Lens' PinpointCampaignMessage (Maybe (Val Text))
pcmImageSmallIconUrl = lens _pinpointCampaignMessageImageSmallIconUrl (\s a -> s { _pinpointCampaignMessageImageSmallIconUrl = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html#cfn-pinpoint-campaign-message-imageurl
pcmImageUrl :: Lens' PinpointCampaignMessage (Maybe (Val Text))
pcmImageUrl = lens _pinpointCampaignMessageImageUrl (\s a -> s { _pinpointCampaignMessageImageUrl = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html#cfn-pinpoint-campaign-message-jsonbody
pcmJsonBody :: Lens' PinpointCampaignMessage (Maybe (Val Text))
pcmJsonBody = lens _pinpointCampaignMessageJsonBody (\s a -> s { _pinpointCampaignMessageJsonBody = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html#cfn-pinpoint-campaign-message-mediaurl
pcmMediaUrl :: Lens' PinpointCampaignMessage (Maybe (Val Text))
pcmMediaUrl = lens _pinpointCampaignMessageMediaUrl (\s a -> s { _pinpointCampaignMessageMediaUrl = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html#cfn-pinpoint-campaign-message-rawcontent
pcmRawContent :: Lens' PinpointCampaignMessage (Maybe (Val Text))
pcmRawContent = lens _pinpointCampaignMessageRawContent (\s a -> s { _pinpointCampaignMessageRawContent = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html#cfn-pinpoint-campaign-message-silentpush
pcmSilentPush :: Lens' PinpointCampaignMessage (Maybe (Val Bool))
pcmSilentPush = lens _pinpointCampaignMessageSilentPush (\s a -> s { _pinpointCampaignMessageSilentPush = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html#cfn-pinpoint-campaign-message-timetolive
pcmTimeToLive :: Lens' PinpointCampaignMessage (Maybe (Val Integer))
pcmTimeToLive = lens _pinpointCampaignMessageTimeToLive (\s a -> s { _pinpointCampaignMessageTimeToLive = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html#cfn-pinpoint-campaign-message-title
pcmTitle :: Lens' PinpointCampaignMessage (Maybe (Val Text))
pcmTitle = lens _pinpointCampaignMessageTitle (\s a -> s { _pinpointCampaignMessageTitle = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-message.html#cfn-pinpoint-campaign-message-url
pcmUrl :: Lens' PinpointCampaignMessage (Maybe (Val Text))
pcmUrl = lens _pinpointCampaignMessageUrl (\s a -> s { _pinpointCampaignMessageUrl = a })