module Stratosphere.Resources.LifecycleHook where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
data LifecycleHook =
LifecycleHook
{ _lifecycleHookAutoScalingGroupName :: Val Text
, _lifecycleHookDefaultResult :: Maybe (Val Text)
, _lifecycleHookHeartbeatTimeout :: Maybe (Val Integer')
, _lifecycleHookLifecycleTransition :: Val Text
, _lifecycleHookNotificationMetadata :: Maybe (Val Text)
, _lifecycleHookNotificationTargetARN :: Val Text
, _lifecycleHookRoleARN :: Val Text
} deriving (Show, Generic)
instance ToJSON LifecycleHook where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }
instance FromJSON LifecycleHook where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 14, omitNothingFields = True }
lifecycleHook
:: Val Text
-> Val Text
-> Val Text
-> Val Text
-> LifecycleHook
lifecycleHook autoScalingGroupNamearg lifecycleTransitionarg notificationTargetARNarg roleARNarg =
LifecycleHook
{ _lifecycleHookAutoScalingGroupName = autoScalingGroupNamearg
, _lifecycleHookDefaultResult = Nothing
, _lifecycleHookHeartbeatTimeout = Nothing
, _lifecycleHookLifecycleTransition = lifecycleTransitionarg
, _lifecycleHookNotificationMetadata = Nothing
, _lifecycleHookNotificationTargetARN = notificationTargetARNarg
, _lifecycleHookRoleARN = roleARNarg
}
lhAutoScalingGroupName :: Lens' LifecycleHook (Val Text)
lhAutoScalingGroupName = lens _lifecycleHookAutoScalingGroupName (\s a -> s { _lifecycleHookAutoScalingGroupName = a })
lhDefaultResult :: Lens' LifecycleHook (Maybe (Val Text))
lhDefaultResult = lens _lifecycleHookDefaultResult (\s a -> s { _lifecycleHookDefaultResult = a })
lhHeartbeatTimeout :: Lens' LifecycleHook (Maybe (Val Integer'))
lhHeartbeatTimeout = lens _lifecycleHookHeartbeatTimeout (\s a -> s { _lifecycleHookHeartbeatTimeout = a })
lhLifecycleTransition :: Lens' LifecycleHook (Val Text)
lhLifecycleTransition = lens _lifecycleHookLifecycleTransition (\s a -> s { _lifecycleHookLifecycleTransition = a })
lhNotificationMetadata :: Lens' LifecycleHook (Maybe (Val Text))
lhNotificationMetadata = lens _lifecycleHookNotificationMetadata (\s a -> s { _lifecycleHookNotificationMetadata = a })
lhNotificationTargetARN :: Lens' LifecycleHook (Val Text)
lhNotificationTargetARN = lens _lifecycleHookNotificationTargetARN (\s a -> s { _lifecycleHookNotificationTargetARN = a })
lhRoleARN :: Lens' LifecycleHook (Val Text)
lhRoleARN = lens _lifecycleHookRoleARN (\s a -> s { _lifecycleHookRoleARN = a })