packages feed

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

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

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

module Stratosphere.ResourceProperties.PinpointCampaignEventDimensions where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.PinpointCampaignSetDimension

-- | Full data type definition for PinpointCampaignEventDimensions. See
-- 'pinpointCampaignEventDimensions' for a more convenient constructor.
data PinpointCampaignEventDimensions =
  PinpointCampaignEventDimensions
  { _pinpointCampaignEventDimensionsAttributes :: Maybe Object
  , _pinpointCampaignEventDimensionsEventType :: Maybe PinpointCampaignSetDimension
  , _pinpointCampaignEventDimensionsMetrics :: Maybe Object
  } deriving (Show, Eq)

instance ToJSON PinpointCampaignEventDimensions where
  toJSON PinpointCampaignEventDimensions{..} =
    object $
    catMaybes
    [ fmap (("Attributes",) . toJSON) _pinpointCampaignEventDimensionsAttributes
    , fmap (("EventType",) . toJSON) _pinpointCampaignEventDimensionsEventType
    , fmap (("Metrics",) . toJSON) _pinpointCampaignEventDimensionsMetrics
    ]

-- | Constructor for 'PinpointCampaignEventDimensions' containing required
-- fields as arguments.
pinpointCampaignEventDimensions
  :: PinpointCampaignEventDimensions
pinpointCampaignEventDimensions  =
  PinpointCampaignEventDimensions
  { _pinpointCampaignEventDimensionsAttributes = Nothing
  , _pinpointCampaignEventDimensionsEventType = Nothing
  , _pinpointCampaignEventDimensionsMetrics = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-eventdimensions.html#cfn-pinpoint-campaign-eventdimensions-attributes
pcedAttributes :: Lens' PinpointCampaignEventDimensions (Maybe Object)
pcedAttributes = lens _pinpointCampaignEventDimensionsAttributes (\s a -> s { _pinpointCampaignEventDimensionsAttributes = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-eventdimensions.html#cfn-pinpoint-campaign-eventdimensions-eventtype
pcedEventType :: Lens' PinpointCampaignEventDimensions (Maybe PinpointCampaignSetDimension)
pcedEventType = lens _pinpointCampaignEventDimensionsEventType (\s a -> s { _pinpointCampaignEventDimensionsEventType = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-campaign-eventdimensions.html#cfn-pinpoint-campaign-eventdimensions-metrics
pcedMetrics :: Lens' PinpointCampaignEventDimensions (Maybe Object)
pcedMetrics = lens _pinpointCampaignEventDimensionsMetrics (\s a -> s { _pinpointCampaignEventDimensionsMetrics = a })