stratosphere-0.22.3: library-gen/Stratosphere/ResourceProperties/AutoScalingPlansScalingPlanApplicationSource.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-applicationsource.html
module Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanApplicationSource where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.AutoScalingPlansScalingPlanTagFilter
-- | Full data type definition for
-- AutoScalingPlansScalingPlanApplicationSource. See
-- 'autoScalingPlansScalingPlanApplicationSource' for a more convenient
-- constructor.
data AutoScalingPlansScalingPlanApplicationSource =
AutoScalingPlansScalingPlanApplicationSource
{ _autoScalingPlansScalingPlanApplicationSourceCloudFormationStackARN :: Maybe (Val Text)
, _autoScalingPlansScalingPlanApplicationSourceTagFilters :: Maybe [AutoScalingPlansScalingPlanTagFilter]
} deriving (Show, Eq)
instance ToJSON AutoScalingPlansScalingPlanApplicationSource where
toJSON AutoScalingPlansScalingPlanApplicationSource{..} =
object $
catMaybes
[ fmap (("CloudFormationStackARN",) . toJSON) _autoScalingPlansScalingPlanApplicationSourceCloudFormationStackARN
, fmap (("TagFilters",) . toJSON) _autoScalingPlansScalingPlanApplicationSourceTagFilters
]
instance FromJSON AutoScalingPlansScalingPlanApplicationSource where
parseJSON (Object obj) =
AutoScalingPlansScalingPlanApplicationSource <$>
(obj .:? "CloudFormationStackARN") <*>
(obj .:? "TagFilters")
parseJSON _ = mempty
-- | Constructor for 'AutoScalingPlansScalingPlanApplicationSource' containing
-- required fields as arguments.
autoScalingPlansScalingPlanApplicationSource
:: AutoScalingPlansScalingPlanApplicationSource
autoScalingPlansScalingPlanApplicationSource =
AutoScalingPlansScalingPlanApplicationSource
{ _autoScalingPlansScalingPlanApplicationSourceCloudFormationStackARN = Nothing
, _autoScalingPlansScalingPlanApplicationSourceTagFilters = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-applicationsource.html#cfn-autoscalingplans-scalingplan-applicationsource-cloudformationstackarn
aspspasCloudFormationStackARN :: Lens' AutoScalingPlansScalingPlanApplicationSource (Maybe (Val Text))
aspspasCloudFormationStackARN = lens _autoScalingPlansScalingPlanApplicationSourceCloudFormationStackARN (\s a -> s { _autoScalingPlansScalingPlanApplicationSourceCloudFormationStackARN = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscalingplans-scalingplan-applicationsource.html#cfn-autoscalingplans-scalingplan-applicationsource-tagfilters
aspspasTagFilters :: Lens' AutoScalingPlansScalingPlanApplicationSource (Maybe [AutoScalingPlansScalingPlanTagFilter])
aspspasTagFilters = lens _autoScalingPlansScalingPlanApplicationSourceTagFilters (\s a -> s { _autoScalingPlansScalingPlanApplicationSourceTagFilters = a })