module Stratosphere.Resources.ScheduledAction where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
data ScheduledAction =
ScheduledAction
{ _scheduledActionAutoScalingGroupName :: Val Text
, _scheduledActionDesiredCapacity :: Maybe (Val Integer')
, _scheduledActionEndTime :: Maybe (Val Text)
, _scheduledActionMaxSize :: Maybe (Val Integer')
, _scheduledActionMinSize :: Maybe (Val Integer')
, _scheduledActionRecurrence :: Maybe (Val Text)
, _scheduledActionStartTime :: Maybe (Val Text)
} deriving (Show, Generic)
instance ToJSON ScheduledAction where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }
instance FromJSON ScheduledAction where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 16, omitNothingFields = True }
scheduledAction
:: Val Text
-> ScheduledAction
scheduledAction autoScalingGroupNamearg =
ScheduledAction
{ _scheduledActionAutoScalingGroupName = autoScalingGroupNamearg
, _scheduledActionDesiredCapacity = Nothing
, _scheduledActionEndTime = Nothing
, _scheduledActionMaxSize = Nothing
, _scheduledActionMinSize = Nothing
, _scheduledActionRecurrence = Nothing
, _scheduledActionStartTime = Nothing
}
saAutoScalingGroupName :: Lens' ScheduledAction (Val Text)
saAutoScalingGroupName = lens _scheduledActionAutoScalingGroupName (\s a -> s { _scheduledActionAutoScalingGroupName = a })
saDesiredCapacity :: Lens' ScheduledAction (Maybe (Val Integer'))
saDesiredCapacity = lens _scheduledActionDesiredCapacity (\s a -> s { _scheduledActionDesiredCapacity = a })
saEndTime :: Lens' ScheduledAction (Maybe (Val Text))
saEndTime = lens _scheduledActionEndTime (\s a -> s { _scheduledActionEndTime = a })
saMaxSize :: Lens' ScheduledAction (Maybe (Val Integer'))
saMaxSize = lens _scheduledActionMaxSize (\s a -> s { _scheduledActionMaxSize = a })
saMinSize :: Lens' ScheduledAction (Maybe (Val Integer'))
saMinSize = lens _scheduledActionMinSize (\s a -> s { _scheduledActionMinSize = a })
saRecurrence :: Lens' ScheduledAction (Maybe (Val Text))
saRecurrence = lens _scheduledActionRecurrence (\s a -> s { _scheduledActionRecurrence = a })
saStartTime :: Lens' ScheduledAction (Maybe (Val Text))
saStartTime = lens _scheduledActionStartTime (\s a -> s { _scheduledActionStartTime = a })