stratosphere-0.43.0: library-gen/Stratosphere/Resources/PinpointCampaign.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html
module Stratosphere.Resources.PinpointCampaign where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.PinpointCampaignWriteTreatmentResource
import Stratosphere.ResourceProperties.PinpointCampaignCampaignHook
import Stratosphere.ResourceProperties.PinpointCampaignLimits
import Stratosphere.ResourceProperties.PinpointCampaignMessageConfiguration
import Stratosphere.ResourceProperties.PinpointCampaignSchedule
-- | Full data type definition for PinpointCampaign. See 'pinpointCampaign'
-- for a more convenient constructor.
data PinpointCampaign =
PinpointCampaign
{ _pinpointCampaignAdditionalTreatments :: Maybe [PinpointCampaignWriteTreatmentResource]
, _pinpointCampaignApplicationId :: Val Text
, _pinpointCampaignCampaignHook :: Maybe PinpointCampaignCampaignHook
, _pinpointCampaignDescription :: Maybe (Val Text)
, _pinpointCampaignHoldoutPercent :: Maybe (Val Integer)
, _pinpointCampaignIsPaused :: Maybe (Val Bool)
, _pinpointCampaignLimits :: Maybe PinpointCampaignLimits
, _pinpointCampaignMessageConfiguration :: PinpointCampaignMessageConfiguration
, _pinpointCampaignName :: Val Text
, _pinpointCampaignSchedule :: PinpointCampaignSchedule
, _pinpointCampaignSegmentId :: Val Text
, _pinpointCampaignSegmentVersion :: Maybe (Val Integer)
, _pinpointCampaignTags :: Maybe Object
, _pinpointCampaignTreatmentDescription :: Maybe (Val Text)
, _pinpointCampaignTreatmentName :: Maybe (Val Text)
} deriving (Show, Eq)
instance ToResourceProperties PinpointCampaign where
toResourceProperties PinpointCampaign{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::Pinpoint::Campaign"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ fmap (("AdditionalTreatments",) . toJSON) _pinpointCampaignAdditionalTreatments
, (Just . ("ApplicationId",) . toJSON) _pinpointCampaignApplicationId
, fmap (("CampaignHook",) . toJSON) _pinpointCampaignCampaignHook
, fmap (("Description",) . toJSON) _pinpointCampaignDescription
, fmap (("HoldoutPercent",) . toJSON) _pinpointCampaignHoldoutPercent
, fmap (("IsPaused",) . toJSON) _pinpointCampaignIsPaused
, fmap (("Limits",) . toJSON) _pinpointCampaignLimits
, (Just . ("MessageConfiguration",) . toJSON) _pinpointCampaignMessageConfiguration
, (Just . ("Name",) . toJSON) _pinpointCampaignName
, (Just . ("Schedule",) . toJSON) _pinpointCampaignSchedule
, (Just . ("SegmentId",) . toJSON) _pinpointCampaignSegmentId
, fmap (("SegmentVersion",) . toJSON) _pinpointCampaignSegmentVersion
, fmap (("Tags",) . toJSON) _pinpointCampaignTags
, fmap (("TreatmentDescription",) . toJSON) _pinpointCampaignTreatmentDescription
, fmap (("TreatmentName",) . toJSON) _pinpointCampaignTreatmentName
]
}
-- | Constructor for 'PinpointCampaign' containing required fields as
-- arguments.
pinpointCampaign
:: Val Text -- ^ 'pcApplicationId'
-> PinpointCampaignMessageConfiguration -- ^ 'pcMessageConfiguration'
-> Val Text -- ^ 'pcName'
-> PinpointCampaignSchedule -- ^ 'pcSchedule'
-> Val Text -- ^ 'pcSegmentId'
-> PinpointCampaign
pinpointCampaign applicationIdarg messageConfigurationarg namearg schedulearg segmentIdarg =
PinpointCampaign
{ _pinpointCampaignAdditionalTreatments = Nothing
, _pinpointCampaignApplicationId = applicationIdarg
, _pinpointCampaignCampaignHook = Nothing
, _pinpointCampaignDescription = Nothing
, _pinpointCampaignHoldoutPercent = Nothing
, _pinpointCampaignIsPaused = Nothing
, _pinpointCampaignLimits = Nothing
, _pinpointCampaignMessageConfiguration = messageConfigurationarg
, _pinpointCampaignName = namearg
, _pinpointCampaignSchedule = schedulearg
, _pinpointCampaignSegmentId = segmentIdarg
, _pinpointCampaignSegmentVersion = Nothing
, _pinpointCampaignTags = Nothing
, _pinpointCampaignTreatmentDescription = Nothing
, _pinpointCampaignTreatmentName = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-additionaltreatments
pcAdditionalTreatments :: Lens' PinpointCampaign (Maybe [PinpointCampaignWriteTreatmentResource])
pcAdditionalTreatments = lens _pinpointCampaignAdditionalTreatments (\s a -> s { _pinpointCampaignAdditionalTreatments = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-applicationid
pcApplicationId :: Lens' PinpointCampaign (Val Text)
pcApplicationId = lens _pinpointCampaignApplicationId (\s a -> s { _pinpointCampaignApplicationId = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-campaignhook
pcCampaignHook :: Lens' PinpointCampaign (Maybe PinpointCampaignCampaignHook)
pcCampaignHook = lens _pinpointCampaignCampaignHook (\s a -> s { _pinpointCampaignCampaignHook = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-description
pcDescription :: Lens' PinpointCampaign (Maybe (Val Text))
pcDescription = lens _pinpointCampaignDescription (\s a -> s { _pinpointCampaignDescription = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-holdoutpercent
pcHoldoutPercent :: Lens' PinpointCampaign (Maybe (Val Integer))
pcHoldoutPercent = lens _pinpointCampaignHoldoutPercent (\s a -> s { _pinpointCampaignHoldoutPercent = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-ispaused
pcIsPaused :: Lens' PinpointCampaign (Maybe (Val Bool))
pcIsPaused = lens _pinpointCampaignIsPaused (\s a -> s { _pinpointCampaignIsPaused = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-limits
pcLimits :: Lens' PinpointCampaign (Maybe PinpointCampaignLimits)
pcLimits = lens _pinpointCampaignLimits (\s a -> s { _pinpointCampaignLimits = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-messageconfiguration
pcMessageConfiguration :: Lens' PinpointCampaign PinpointCampaignMessageConfiguration
pcMessageConfiguration = lens _pinpointCampaignMessageConfiguration (\s a -> s { _pinpointCampaignMessageConfiguration = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-name
pcName :: Lens' PinpointCampaign (Val Text)
pcName = lens _pinpointCampaignName (\s a -> s { _pinpointCampaignName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-schedule
pcSchedule :: Lens' PinpointCampaign PinpointCampaignSchedule
pcSchedule = lens _pinpointCampaignSchedule (\s a -> s { _pinpointCampaignSchedule = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-segmentid
pcSegmentId :: Lens' PinpointCampaign (Val Text)
pcSegmentId = lens _pinpointCampaignSegmentId (\s a -> s { _pinpointCampaignSegmentId = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-segmentversion
pcSegmentVersion :: Lens' PinpointCampaign (Maybe (Val Integer))
pcSegmentVersion = lens _pinpointCampaignSegmentVersion (\s a -> s { _pinpointCampaignSegmentVersion = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-tags
pcTags :: Lens' PinpointCampaign (Maybe Object)
pcTags = lens _pinpointCampaignTags (\s a -> s { _pinpointCampaignTags = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-treatmentdescription
pcTreatmentDescription :: Lens' PinpointCampaign (Maybe (Val Text))
pcTreatmentDescription = lens _pinpointCampaignTreatmentDescription (\s a -> s { _pinpointCampaignTreatmentDescription = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pinpoint-campaign.html#cfn-pinpoint-campaign-treatmentname
pcTreatmentName :: Lens' PinpointCampaign (Maybe (Val Text))
pcTreatmentName = lens _pinpointCampaignTreatmentName (\s a -> s { _pinpointCampaignTreatmentName = a })