stratosphere-0.1.2: library-gen/Stratosphere/ResourceProperties/AutoScalingNotificationConfigurations.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
-- | The NotificationConfigurations property is an embedded property of the
-- AWS::AutoScaling::AutoScalingGroup resource that specifies the events for
-- which the Auto Scaling group sends notifications.
module Stratosphere.ResourceProperties.AutoScalingNotificationConfigurations where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
-- | Full data type definition for AutoScalingNotificationConfigurations. See
-- 'autoScalingNotificationConfigurations' for a more convenient constructor.
data AutoScalingNotificationConfigurations =
AutoScalingNotificationConfigurations
{ _autoScalingNotificationConfigurationsNotificationTypes :: [Val Text]
, _autoScalingNotificationConfigurationsTopicARN :: Val Text
} deriving (Show, Generic)
instance ToJSON AutoScalingNotificationConfigurations where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }
instance FromJSON AutoScalingNotificationConfigurations where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 38, omitNothingFields = True }
-- | Constructor for 'AutoScalingNotificationConfigurations' containing
-- required fields as arguments.
autoScalingNotificationConfigurations
:: [Val Text] -- ^ 'asncNotificationTypes'
-> Val Text -- ^ 'asncTopicARN'
-> AutoScalingNotificationConfigurations
autoScalingNotificationConfigurations notificationTypesarg topicARNarg =
AutoScalingNotificationConfigurations
{ _autoScalingNotificationConfigurationsNotificationTypes = notificationTypesarg
, _autoScalingNotificationConfigurationsTopicARN = topicARNarg
}
-- | A list of event types that trigger a notification. Event types can
-- include any of the following types: autoscaling:EC2_INSTANCE_LAUNCH,
-- autoscaling:EC2_INSTANCE_LAUNCH_ERROR, autoscaling:EC2_INSTANCE_TERMINATE,
-- autoscaling:EC2_INSTANCE_TERMINATE_ERROR, and
-- autoscaling:TEST_NOTIFICATION. For more information about event types, see
-- DescribeAutoScalingNotificationTypes in the Auto Scaling API Reference.
asncNotificationTypes :: Lens' AutoScalingNotificationConfigurations [Val Text]
asncNotificationTypes = lens _autoScalingNotificationConfigurationsNotificationTypes (\s a -> s { _autoScalingNotificationConfigurationsNotificationTypes = a })
-- | The Amazon Resource Name (ARN) of the Amazon Simple Notification Service
-- (SNS) topic.
asncTopicARN :: Lens' AutoScalingNotificationConfigurations (Val Text)
asncTopicARN = lens _autoScalingNotificationConfigurationsTopicARN (\s a -> s { _autoScalingNotificationConfigurationsTopicARN = a })