stratosphere-0.41.0: library-gen/Stratosphere/Resources/CloudWatchAnomalyDetector.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html
module Stratosphere.Resources.CloudWatchAnomalyDetector where
import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.CloudWatchAnomalyDetectorConfiguration
import Stratosphere.ResourceProperties.CloudWatchAnomalyDetectorDimension
-- | Full data type definition for CloudWatchAnomalyDetector. See
-- 'cloudWatchAnomalyDetector' for a more convenient constructor.
data CloudWatchAnomalyDetector =
CloudWatchAnomalyDetector
{ _cloudWatchAnomalyDetectorConfiguration :: Maybe CloudWatchAnomalyDetectorConfiguration
, _cloudWatchAnomalyDetectorDimensions :: Maybe [CloudWatchAnomalyDetectorDimension]
, _cloudWatchAnomalyDetectorMetricName :: Val Text
, _cloudWatchAnomalyDetectorNamespace :: Val Text
, _cloudWatchAnomalyDetectorStat :: Val Text
} deriving (Show, Eq)
instance ToResourceProperties CloudWatchAnomalyDetector where
toResourceProperties CloudWatchAnomalyDetector{..} =
ResourceProperties
{ resourcePropertiesType = "AWS::CloudWatch::AnomalyDetector"
, resourcePropertiesProperties =
hashMapFromList $ catMaybes
[ fmap (("Configuration",) . toJSON) _cloudWatchAnomalyDetectorConfiguration
, fmap (("Dimensions",) . toJSON) _cloudWatchAnomalyDetectorDimensions
, (Just . ("MetricName",) . toJSON) _cloudWatchAnomalyDetectorMetricName
, (Just . ("Namespace",) . toJSON) _cloudWatchAnomalyDetectorNamespace
, (Just . ("Stat",) . toJSON) _cloudWatchAnomalyDetectorStat
]
}
-- | Constructor for 'CloudWatchAnomalyDetector' containing required fields as
-- arguments.
cloudWatchAnomalyDetector
:: Val Text -- ^ 'cwadMetricName'
-> Val Text -- ^ 'cwadNamespace'
-> Val Text -- ^ 'cwadStat'
-> CloudWatchAnomalyDetector
cloudWatchAnomalyDetector metricNamearg namespacearg statarg =
CloudWatchAnomalyDetector
{ _cloudWatchAnomalyDetectorConfiguration = Nothing
, _cloudWatchAnomalyDetectorDimensions = Nothing
, _cloudWatchAnomalyDetectorMetricName = metricNamearg
, _cloudWatchAnomalyDetectorNamespace = namespacearg
, _cloudWatchAnomalyDetectorStat = statarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-configuration
cwadConfiguration :: Lens' CloudWatchAnomalyDetector (Maybe CloudWatchAnomalyDetectorConfiguration)
cwadConfiguration = lens _cloudWatchAnomalyDetectorConfiguration (\s a -> s { _cloudWatchAnomalyDetectorConfiguration = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-dimensions
cwadDimensions :: Lens' CloudWatchAnomalyDetector (Maybe [CloudWatchAnomalyDetectorDimension])
cwadDimensions = lens _cloudWatchAnomalyDetectorDimensions (\s a -> s { _cloudWatchAnomalyDetectorDimensions = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-metricname
cwadMetricName :: Lens' CloudWatchAnomalyDetector (Val Text)
cwadMetricName = lens _cloudWatchAnomalyDetectorMetricName (\s a -> s { _cloudWatchAnomalyDetectorMetricName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-namespace
cwadNamespace :: Lens' CloudWatchAnomalyDetector (Val Text)
cwadNamespace = lens _cloudWatchAnomalyDetectorNamespace (\s a -> s { _cloudWatchAnomalyDetectorNamespace = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudwatch-anomalydetector.html#cfn-cloudwatch-anomalydetector-stat
cwadStat :: Lens' CloudWatchAnomalyDetector (Val Text)
cwadStat = lens _cloudWatchAnomalyDetectorStat (\s a -> s { _cloudWatchAnomalyDetectorStat = a })