module Stratosphere.CloudWatch.CompositeAlarm ( CompositeAlarm(..), mkCompositeAlarm ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import Stratosphere.ResourceProperties import Stratosphere.Tag import Stratosphere.Value data CompositeAlarm = -- | See: CompositeAlarm {haddock_workaround_ :: (), -- | See: actionsEnabled :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: actionsSuppressor :: (Prelude.Maybe (Value Prelude.Text)), -- | See: actionsSuppressorExtensionPeriod :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: actionsSuppressorWaitPeriod :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: alarmActions :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: alarmDescription :: (Prelude.Maybe (Value Prelude.Text)), -- | See: alarmName :: (Prelude.Maybe (Value Prelude.Text)), -- | See: alarmRule :: (Value Prelude.Text), -- | See: insufficientDataActions :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: oKActions :: (Prelude.Maybe (ValueList Prelude.Text)), -- | See: tags :: (Prelude.Maybe [Tag])} deriving stock (Prelude.Eq, Prelude.Show) mkCompositeAlarm :: Value Prelude.Text -> CompositeAlarm mkCompositeAlarm alarmRule = CompositeAlarm {haddock_workaround_ = (), alarmRule = alarmRule, actionsEnabled = Prelude.Nothing, actionsSuppressor = Prelude.Nothing, actionsSuppressorExtensionPeriod = Prelude.Nothing, actionsSuppressorWaitPeriod = Prelude.Nothing, alarmActions = Prelude.Nothing, alarmDescription = Prelude.Nothing, alarmName = Prelude.Nothing, insufficientDataActions = Prelude.Nothing, oKActions = Prelude.Nothing, tags = Prelude.Nothing} instance ToResourceProperties CompositeAlarm where toResourceProperties CompositeAlarm {..} = ResourceProperties {awsType = "AWS::CloudWatch::CompositeAlarm", supportsTags = Prelude.True, properties = Prelude.fromList ((Prelude.<>) ["AlarmRule" JSON..= alarmRule] (Prelude.catMaybes [(JSON..=) "ActionsEnabled" Prelude.<$> actionsEnabled, (JSON..=) "ActionsSuppressor" Prelude.<$> actionsSuppressor, (JSON..=) "ActionsSuppressorExtensionPeriod" Prelude.<$> actionsSuppressorExtensionPeriod, (JSON..=) "ActionsSuppressorWaitPeriod" Prelude.<$> actionsSuppressorWaitPeriod, (JSON..=) "AlarmActions" Prelude.<$> alarmActions, (JSON..=) "AlarmDescription" Prelude.<$> alarmDescription, (JSON..=) "AlarmName" Prelude.<$> alarmName, (JSON..=) "InsufficientDataActions" Prelude.<$> insufficientDataActions, (JSON..=) "OKActions" Prelude.<$> oKActions, (JSON..=) "Tags" Prelude.<$> tags]))} instance JSON.ToJSON CompositeAlarm where toJSON CompositeAlarm {..} = JSON.object (Prelude.fromList ((Prelude.<>) ["AlarmRule" JSON..= alarmRule] (Prelude.catMaybes [(JSON..=) "ActionsEnabled" Prelude.<$> actionsEnabled, (JSON..=) "ActionsSuppressor" Prelude.<$> actionsSuppressor, (JSON..=) "ActionsSuppressorExtensionPeriod" Prelude.<$> actionsSuppressorExtensionPeriod, (JSON..=) "ActionsSuppressorWaitPeriod" Prelude.<$> actionsSuppressorWaitPeriod, (JSON..=) "AlarmActions" Prelude.<$> alarmActions, (JSON..=) "AlarmDescription" Prelude.<$> alarmDescription, (JSON..=) "AlarmName" Prelude.<$> alarmName, (JSON..=) "InsufficientDataActions" Prelude.<$> insufficientDataActions, (JSON..=) "OKActions" Prelude.<$> oKActions, (JSON..=) "Tags" Prelude.<$> tags]))) instance Property "ActionsEnabled" CompositeAlarm where type PropertyType "ActionsEnabled" CompositeAlarm = Value Prelude.Bool set newValue CompositeAlarm {..} = CompositeAlarm {actionsEnabled = Prelude.pure newValue, ..} instance Property "ActionsSuppressor" CompositeAlarm where type PropertyType "ActionsSuppressor" CompositeAlarm = Value Prelude.Text set newValue CompositeAlarm {..} = CompositeAlarm {actionsSuppressor = Prelude.pure newValue, ..} instance Property "ActionsSuppressorExtensionPeriod" CompositeAlarm where type PropertyType "ActionsSuppressorExtensionPeriod" CompositeAlarm = Value Prelude.Integer set newValue CompositeAlarm {..} = CompositeAlarm {actionsSuppressorExtensionPeriod = Prelude.pure newValue, ..} instance Property "ActionsSuppressorWaitPeriod" CompositeAlarm where type PropertyType "ActionsSuppressorWaitPeriod" CompositeAlarm = Value Prelude.Integer set newValue CompositeAlarm {..} = CompositeAlarm {actionsSuppressorWaitPeriod = Prelude.pure newValue, ..} instance Property "AlarmActions" CompositeAlarm where type PropertyType "AlarmActions" CompositeAlarm = ValueList Prelude.Text set newValue CompositeAlarm {..} = CompositeAlarm {alarmActions = Prelude.pure newValue, ..} instance Property "AlarmDescription" CompositeAlarm where type PropertyType "AlarmDescription" CompositeAlarm = Value Prelude.Text set newValue CompositeAlarm {..} = CompositeAlarm {alarmDescription = Prelude.pure newValue, ..} instance Property "AlarmName" CompositeAlarm where type PropertyType "AlarmName" CompositeAlarm = Value Prelude.Text set newValue CompositeAlarm {..} = CompositeAlarm {alarmName = Prelude.pure newValue, ..} instance Property "AlarmRule" CompositeAlarm where type PropertyType "AlarmRule" CompositeAlarm = Value Prelude.Text set newValue CompositeAlarm {..} = CompositeAlarm {alarmRule = newValue, ..} instance Property "InsufficientDataActions" CompositeAlarm where type PropertyType "InsufficientDataActions" CompositeAlarm = ValueList Prelude.Text set newValue CompositeAlarm {..} = CompositeAlarm {insufficientDataActions = Prelude.pure newValue, ..} instance Property "OKActions" CompositeAlarm where type PropertyType "OKActions" CompositeAlarm = ValueList Prelude.Text set newValue CompositeAlarm {..} = CompositeAlarm {oKActions = Prelude.pure newValue, ..} instance Property "Tags" CompositeAlarm where type PropertyType "Tags" CompositeAlarm = [Tag] set newValue CompositeAlarm {..} = CompositeAlarm {tags = Prelude.pure newValue, ..}