{-# 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 })