module Network.AWS.CloudWatch.PutMetricAlarm
(
putMetricAlarm
, PutMetricAlarm
, pmaAlarmDescription
, pmaOKActions
, pmaActionsEnabled
, pmaInsufficientDataActions
, pmaDimensions
, pmaAlarmActions
, pmaUnit
, pmaAlarmName
, pmaMetricName
, pmaNamespace
, pmaStatistic
, pmaPeriod
, pmaEvaluationPeriods
, pmaThreshold
, pmaComparisonOperator
, putMetricAlarmResponse
, PutMetricAlarmResponse
) where
import Network.AWS.CloudWatch.Types
import Network.AWS.CloudWatch.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data PutMetricAlarm = PutMetricAlarm'
{ _pmaAlarmDescription :: !(Maybe Text)
, _pmaOKActions :: !(Maybe [Text])
, _pmaActionsEnabled :: !(Maybe Bool)
, _pmaInsufficientDataActions :: !(Maybe [Text])
, _pmaDimensions :: !(Maybe [Dimension])
, _pmaAlarmActions :: !(Maybe [Text])
, _pmaUnit :: !(Maybe StandardUnit)
, _pmaAlarmName :: !Text
, _pmaMetricName :: !Text
, _pmaNamespace :: !Text
, _pmaStatistic :: !Statistic
, _pmaPeriod :: !Nat
, _pmaEvaluationPeriods :: !Nat
, _pmaThreshold :: !Double
, _pmaComparisonOperator :: !ComparisonOperator
} deriving (Eq,Read,Show,Data,Typeable,Generic)
putMetricAlarm
:: Text
-> Text
-> Text
-> Statistic
-> Natural
-> Natural
-> Double
-> ComparisonOperator
-> PutMetricAlarm
putMetricAlarm pAlarmName_ pMetricName_ pNamespace_ pStatistic_ pPeriod_ pEvaluationPeriods_ pThreshold_ pComparisonOperator_ =
PutMetricAlarm'
{ _pmaAlarmDescription = Nothing
, _pmaOKActions = Nothing
, _pmaActionsEnabled = Nothing
, _pmaInsufficientDataActions = Nothing
, _pmaDimensions = Nothing
, _pmaAlarmActions = Nothing
, _pmaUnit = Nothing
, _pmaAlarmName = pAlarmName_
, _pmaMetricName = pMetricName_
, _pmaNamespace = pNamespace_
, _pmaStatistic = pStatistic_
, _pmaPeriod = _Nat # pPeriod_
, _pmaEvaluationPeriods = _Nat # pEvaluationPeriods_
, _pmaThreshold = pThreshold_
, _pmaComparisonOperator = pComparisonOperator_
}
pmaAlarmDescription :: Lens' PutMetricAlarm (Maybe Text)
pmaAlarmDescription = lens _pmaAlarmDescription (\ s a -> s{_pmaAlarmDescription = a});
pmaOKActions :: Lens' PutMetricAlarm [Text]
pmaOKActions = lens _pmaOKActions (\ s a -> s{_pmaOKActions = a}) . _Default . _Coerce;
pmaActionsEnabled :: Lens' PutMetricAlarm (Maybe Bool)
pmaActionsEnabled = lens _pmaActionsEnabled (\ s a -> s{_pmaActionsEnabled = a});
pmaInsufficientDataActions :: Lens' PutMetricAlarm [Text]
pmaInsufficientDataActions = lens _pmaInsufficientDataActions (\ s a -> s{_pmaInsufficientDataActions = a}) . _Default . _Coerce;
pmaDimensions :: Lens' PutMetricAlarm [Dimension]
pmaDimensions = lens _pmaDimensions (\ s a -> s{_pmaDimensions = a}) . _Default . _Coerce;
pmaAlarmActions :: Lens' PutMetricAlarm [Text]
pmaAlarmActions = lens _pmaAlarmActions (\ s a -> s{_pmaAlarmActions = a}) . _Default . _Coerce;
pmaUnit :: Lens' PutMetricAlarm (Maybe StandardUnit)
pmaUnit = lens _pmaUnit (\ s a -> s{_pmaUnit = a});
pmaAlarmName :: Lens' PutMetricAlarm Text
pmaAlarmName = lens _pmaAlarmName (\ s a -> s{_pmaAlarmName = a});
pmaMetricName :: Lens' PutMetricAlarm Text
pmaMetricName = lens _pmaMetricName (\ s a -> s{_pmaMetricName = a});
pmaNamespace :: Lens' PutMetricAlarm Text
pmaNamespace = lens _pmaNamespace (\ s a -> s{_pmaNamespace = a});
pmaStatistic :: Lens' PutMetricAlarm Statistic
pmaStatistic = lens _pmaStatistic (\ s a -> s{_pmaStatistic = a});
pmaPeriod :: Lens' PutMetricAlarm Natural
pmaPeriod = lens _pmaPeriod (\ s a -> s{_pmaPeriod = a}) . _Nat;
pmaEvaluationPeriods :: Lens' PutMetricAlarm Natural
pmaEvaluationPeriods = lens _pmaEvaluationPeriods (\ s a -> s{_pmaEvaluationPeriods = a}) . _Nat;
pmaThreshold :: Lens' PutMetricAlarm Double
pmaThreshold = lens _pmaThreshold (\ s a -> s{_pmaThreshold = a});
pmaComparisonOperator :: Lens' PutMetricAlarm ComparisonOperator
pmaComparisonOperator = lens _pmaComparisonOperator (\ s a -> s{_pmaComparisonOperator = a});
instance AWSRequest PutMetricAlarm where
type Sv PutMetricAlarm = CloudWatch
type Rs PutMetricAlarm = PutMetricAlarmResponse
request = postQuery
response = receiveNull PutMetricAlarmResponse'
instance ToHeaders PutMetricAlarm where
toHeaders = const mempty
instance ToPath PutMetricAlarm where
toPath = const "/"
instance ToQuery PutMetricAlarm where
toQuery PutMetricAlarm'{..}
= mconcat
["Action" =: ("PutMetricAlarm" :: ByteString),
"Version" =: ("2010-08-01" :: ByteString),
"AlarmDescription" =: _pmaAlarmDescription,
"OKActions" =:
toQuery (toQueryList "member" <$> _pmaOKActions),
"ActionsEnabled" =: _pmaActionsEnabled,
"InsufficientDataActions" =:
toQuery
(toQueryList "member" <$>
_pmaInsufficientDataActions),
"Dimensions" =:
toQuery (toQueryList "member" <$> _pmaDimensions),
"AlarmActions" =:
toQuery (toQueryList "member" <$> _pmaAlarmActions),
"Unit" =: _pmaUnit, "AlarmName" =: _pmaAlarmName,
"MetricName" =: _pmaMetricName,
"Namespace" =: _pmaNamespace,
"Statistic" =: _pmaStatistic, "Period" =: _pmaPeriod,
"EvaluationPeriods" =: _pmaEvaluationPeriods,
"Threshold" =: _pmaThreshold,
"ComparisonOperator" =: _pmaComparisonOperator]
data PutMetricAlarmResponse =
PutMetricAlarmResponse'
deriving (Eq,Read,Show,Data,Typeable,Generic)
putMetricAlarmResponse
:: PutMetricAlarmResponse
putMetricAlarmResponse = PutMetricAlarmResponse'