module Network.AWS.CloudWatch.PutMetricAlarm
(
PutMetricAlarm
, putMetricAlarm
, pmaActionsEnabled
, pmaAlarmActions
, pmaAlarmDescription
, pmaAlarmName
, pmaComparisonOperator
, pmaDimensions
, pmaEvaluationPeriods
, pmaInsufficientDataActions
, pmaMetricName
, pmaNamespace
, pmaOKActions
, pmaPeriod
, pmaStatistic
, pmaThreshold
, pmaUnit
, PutMetricAlarmResponse
, putMetricAlarmResponse
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.CloudWatch.Types
import qualified GHC.Exts
data PutMetricAlarm = PutMetricAlarm
{ _pmaActionsEnabled :: Maybe Bool
, _pmaAlarmActions :: List "member" Text
, _pmaAlarmDescription :: Maybe Text
, _pmaAlarmName :: Text
, _pmaComparisonOperator :: ComparisonOperator
, _pmaDimensions :: List "member" Dimension
, _pmaEvaluationPeriods :: Nat
, _pmaInsufficientDataActions :: List "member" Text
, _pmaMetricName :: Text
, _pmaNamespace :: Text
, _pmaOKActions :: List "member" Text
, _pmaPeriod :: Nat
, _pmaStatistic :: Statistic
, _pmaThreshold :: Double
, _pmaUnit :: Maybe StandardUnit
} deriving (Eq, Read, Show)
putMetricAlarm :: Text
-> Text
-> Text
-> Statistic
-> Natural
-> Natural
-> Double
-> ComparisonOperator
-> PutMetricAlarm
putMetricAlarm p1 p2 p3 p4 p5 p6 p7 p8 = PutMetricAlarm
{ _pmaAlarmName = p1
, _pmaMetricName = p2
, _pmaNamespace = p3
, _pmaStatistic = p4
, _pmaPeriod = withIso _Nat (const id) p5
, _pmaEvaluationPeriods = withIso _Nat (const id) p6
, _pmaThreshold = p7
, _pmaComparisonOperator = p8
, _pmaAlarmDescription = Nothing
, _pmaActionsEnabled = Nothing
, _pmaOKActions = mempty
, _pmaAlarmActions = mempty
, _pmaInsufficientDataActions = mempty
, _pmaDimensions = mempty
, _pmaUnit = Nothing
}
pmaActionsEnabled :: Lens' PutMetricAlarm (Maybe Bool)
pmaActionsEnabled =
lens _pmaActionsEnabled (\s a -> s { _pmaActionsEnabled = a })
pmaAlarmActions :: Lens' PutMetricAlarm [Text]
pmaAlarmActions = lens _pmaAlarmActions (\s a -> s { _pmaAlarmActions = a }) . _List
pmaAlarmDescription :: Lens' PutMetricAlarm (Maybe Text)
pmaAlarmDescription =
lens _pmaAlarmDescription (\s a -> s { _pmaAlarmDescription = a })
pmaAlarmName :: Lens' PutMetricAlarm Text
pmaAlarmName = lens _pmaAlarmName (\s a -> s { _pmaAlarmName = a })
pmaComparisonOperator :: Lens' PutMetricAlarm ComparisonOperator
pmaComparisonOperator =
lens _pmaComparisonOperator (\s a -> s { _pmaComparisonOperator = a })
pmaDimensions :: Lens' PutMetricAlarm [Dimension]
pmaDimensions = lens _pmaDimensions (\s a -> s { _pmaDimensions = a }) . _List
pmaEvaluationPeriods :: Lens' PutMetricAlarm Natural
pmaEvaluationPeriods =
lens _pmaEvaluationPeriods (\s a -> s { _pmaEvaluationPeriods = a })
. _Nat
pmaInsufficientDataActions :: Lens' PutMetricAlarm [Text]
pmaInsufficientDataActions =
lens _pmaInsufficientDataActions
(\s a -> s { _pmaInsufficientDataActions = a })
. _List
pmaMetricName :: Lens' PutMetricAlarm Text
pmaMetricName = lens _pmaMetricName (\s a -> s { _pmaMetricName = a })
pmaNamespace :: Lens' PutMetricAlarm Text
pmaNamespace = lens _pmaNamespace (\s a -> s { _pmaNamespace = a })
pmaOKActions :: Lens' PutMetricAlarm [Text]
pmaOKActions = lens _pmaOKActions (\s a -> s { _pmaOKActions = a }) . _List
pmaPeriod :: Lens' PutMetricAlarm Natural
pmaPeriod = lens _pmaPeriod (\s a -> s { _pmaPeriod = a }) . _Nat
pmaStatistic :: Lens' PutMetricAlarm Statistic
pmaStatistic = lens _pmaStatistic (\s a -> s { _pmaStatistic = a })
pmaThreshold :: Lens' PutMetricAlarm Double
pmaThreshold = lens _pmaThreshold (\s a -> s { _pmaThreshold = a })
pmaUnit :: Lens' PutMetricAlarm (Maybe StandardUnit)
pmaUnit = lens _pmaUnit (\s a -> s { _pmaUnit = a })
data PutMetricAlarmResponse = PutMetricAlarmResponse
deriving (Eq, Ord, Read, Show, Generic)
putMetricAlarmResponse :: PutMetricAlarmResponse
putMetricAlarmResponse = PutMetricAlarmResponse
instance ToPath PutMetricAlarm where
toPath = const "/"
instance ToQuery PutMetricAlarm where
toQuery PutMetricAlarm{..} = mconcat
[ "ActionsEnabled" =? _pmaActionsEnabled
, "AlarmActions" =? _pmaAlarmActions
, "AlarmDescription" =? _pmaAlarmDescription
, "AlarmName" =? _pmaAlarmName
, "ComparisonOperator" =? _pmaComparisonOperator
, "Dimensions" =? _pmaDimensions
, "EvaluationPeriods" =? _pmaEvaluationPeriods
, "InsufficientDataActions" =? _pmaInsufficientDataActions
, "MetricName" =? _pmaMetricName
, "Namespace" =? _pmaNamespace
, "OKActions" =? _pmaOKActions
, "Period" =? _pmaPeriod
, "Statistic" =? _pmaStatistic
, "Threshold" =? _pmaThreshold
, "Unit" =? _pmaUnit
]
instance ToHeaders PutMetricAlarm
instance AWSRequest PutMetricAlarm where
type Sv PutMetricAlarm = CloudWatch
type Rs PutMetricAlarm = PutMetricAlarmResponse
request = post "PutMetricAlarm"
response = nullResponse PutMetricAlarmResponse