stratosphere-0.39.0: library-gen/Stratosphere/ResourceProperties/PinpointSegmentSegmentDimensions.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions.html
module Stratosphere.ResourceProperties.PinpointSegmentSegmentDimensions where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.PinpointSegmentBehavior
import Stratosphere.ResourceProperties.PinpointSegmentDemographic
import Stratosphere.ResourceProperties.PinpointSegmentLocation
-- | Full data type definition for PinpointSegmentSegmentDimensions. See
-- 'pinpointSegmentSegmentDimensions' for a more convenient constructor.
data PinpointSegmentSegmentDimensions =
PinpointSegmentSegmentDimensions
{ _pinpointSegmentSegmentDimensionsAttributes :: Maybe Object
, _pinpointSegmentSegmentDimensionsBehavior :: Maybe PinpointSegmentBehavior
, _pinpointSegmentSegmentDimensionsDemographic :: Maybe PinpointSegmentDemographic
, _pinpointSegmentSegmentDimensionsLocation :: Maybe PinpointSegmentLocation
, _pinpointSegmentSegmentDimensionsMetrics :: Maybe Object
, _pinpointSegmentSegmentDimensionsUserAttributes :: Maybe Object
} deriving (Show, Eq)
instance ToJSON PinpointSegmentSegmentDimensions where
toJSON PinpointSegmentSegmentDimensions{..} =
object $
catMaybes
[ fmap (("Attributes",) . toJSON) _pinpointSegmentSegmentDimensionsAttributes
, fmap (("Behavior",) . toJSON) _pinpointSegmentSegmentDimensionsBehavior
, fmap (("Demographic",) . toJSON) _pinpointSegmentSegmentDimensionsDemographic
, fmap (("Location",) . toJSON) _pinpointSegmentSegmentDimensionsLocation
, fmap (("Metrics",) . toJSON) _pinpointSegmentSegmentDimensionsMetrics
, fmap (("UserAttributes",) . toJSON) _pinpointSegmentSegmentDimensionsUserAttributes
]
-- | Constructor for 'PinpointSegmentSegmentDimensions' containing required
-- fields as arguments.
pinpointSegmentSegmentDimensions
:: PinpointSegmentSegmentDimensions
pinpointSegmentSegmentDimensions =
PinpointSegmentSegmentDimensions
{ _pinpointSegmentSegmentDimensionsAttributes = Nothing
, _pinpointSegmentSegmentDimensionsBehavior = Nothing
, _pinpointSegmentSegmentDimensionsDemographic = Nothing
, _pinpointSegmentSegmentDimensionsLocation = Nothing
, _pinpointSegmentSegmentDimensionsMetrics = Nothing
, _pinpointSegmentSegmentDimensionsUserAttributes = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions.html#cfn-pinpoint-segment-segmentdimensions-attributes
pssdAttributes :: Lens' PinpointSegmentSegmentDimensions (Maybe Object)
pssdAttributes = lens _pinpointSegmentSegmentDimensionsAttributes (\s a -> s { _pinpointSegmentSegmentDimensionsAttributes = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions.html#cfn-pinpoint-segment-segmentdimensions-behavior
pssdBehavior :: Lens' PinpointSegmentSegmentDimensions (Maybe PinpointSegmentBehavior)
pssdBehavior = lens _pinpointSegmentSegmentDimensionsBehavior (\s a -> s { _pinpointSegmentSegmentDimensionsBehavior = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions.html#cfn-pinpoint-segment-segmentdimensions-demographic
pssdDemographic :: Lens' PinpointSegmentSegmentDimensions (Maybe PinpointSegmentDemographic)
pssdDemographic = lens _pinpointSegmentSegmentDimensionsDemographic (\s a -> s { _pinpointSegmentSegmentDimensionsDemographic = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions.html#cfn-pinpoint-segment-segmentdimensions-location
pssdLocation :: Lens' PinpointSegmentSegmentDimensions (Maybe PinpointSegmentLocation)
pssdLocation = lens _pinpointSegmentSegmentDimensionsLocation (\s a -> s { _pinpointSegmentSegmentDimensionsLocation = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions.html#cfn-pinpoint-segment-segmentdimensions-metrics
pssdMetrics :: Lens' PinpointSegmentSegmentDimensions (Maybe Object)
pssdMetrics = lens _pinpointSegmentSegmentDimensionsMetrics (\s a -> s { _pinpointSegmentSegmentDimensionsMetrics = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-pinpoint-segment-segmentdimensions.html#cfn-pinpoint-segment-segmentdimensions-userattributes
pssdUserAttributes :: Lens' PinpointSegmentSegmentDimensions (Maybe Object)
pssdUserAttributes = lens _pinpointSegmentSegmentDimensionsUserAttributes (\s a -> s { _pinpointSegmentSegmentDimensionsUserAttributes = a })