stratosphere-0.39.0: library-gen/Stratosphere/ResourceProperties/PinpointCampaignLimits.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-limits.html
module Stratosphere.ResourceProperties.PinpointCampaignLimits where
import Stratosphere.ResourceImports
-- | Full data type definition for PinpointCampaignLimits. See
-- 'pinpointCampaignLimits' for a more convenient constructor.
data PinpointCampaignLimits =
PinpointCampaignLimits
{ _pinpointCampaignLimitsDaily :: Maybe (Val Integer)
, _pinpointCampaignLimitsMaximumDuration :: Maybe (Val Integer)
, _pinpointCampaignLimitsMessagesPerSecond :: Maybe (Val Integer)
, _pinpointCampaignLimitsTotal :: Maybe (Val Integer)
} deriving (Show, Eq)
instance ToJSON PinpointCampaignLimits where
toJSON PinpointCampaignLimits{..} =
object $
catMaybes
[ fmap (("Daily",) . toJSON) _pinpointCampaignLimitsDaily
, fmap (("MaximumDuration",) . toJSON) _pinpointCampaignLimitsMaximumDuration
, fmap (("MessagesPerSecond",) . toJSON) _pinpointCampaignLimitsMessagesPerSecond
, fmap (("Total",) . toJSON) _pinpointCampaignLimitsTotal
]
-- | Constructor for 'PinpointCampaignLimits' containing required fields as
-- arguments.
pinpointCampaignLimits
:: PinpointCampaignLimits
pinpointCampaignLimits =
PinpointCampaignLimits
{ _pinpointCampaignLimitsDaily = Nothing
, _pinpointCampaignLimitsMaximumDuration = Nothing
, _pinpointCampaignLimitsMessagesPerSecond = Nothing
, _pinpointCampaignLimitsTotal = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-limits.html#cfn-pinpoint-campaign-limits-daily
pclDaily :: Lens' PinpointCampaignLimits (Maybe (Val Integer))
pclDaily = lens _pinpointCampaignLimitsDaily (\s a -> s { _pinpointCampaignLimitsDaily = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-limits.html#cfn-pinpoint-campaign-limits-maximumduration
pclMaximumDuration :: Lens' PinpointCampaignLimits (Maybe (Val Integer))
pclMaximumDuration = lens _pinpointCampaignLimitsMaximumDuration (\s a -> s { _pinpointCampaignLimitsMaximumDuration = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-limits.html#cfn-pinpoint-campaign-limits-messagespersecond
pclMessagesPerSecond :: Lens' PinpointCampaignLimits (Maybe (Val Integer))
pclMessagesPerSecond = lens _pinpointCampaignLimitsMessagesPerSecond (\s a -> s { _pinpointCampaignLimitsMessagesPerSecond = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-limits.html#cfn-pinpoint-campaign-limits-total
pclTotal :: Lens' PinpointCampaignLimits (Maybe (Val Integer))
pclTotal = lens _pinpointCampaignLimitsTotal (\s a -> s { _pinpointCampaignLimitsTotal = a })