module Stratosphere.Resources.EventsRule where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.Types
data EventsRule =
EventsRule
{ _eventsRuleDescription :: Maybe (Val Text)
, _eventsRuleEventPattern :: Maybe Object
, _eventsRuleName :: Maybe (Val Text)
, _eventsRuleRoleArn :: Maybe (Val Text)
, _eventsRuleScheduleExpression :: Maybe (Val Text)
, _eventsRuleState :: Maybe EnabledState
, _eventsRuleTargets :: Maybe [Object]
} deriving (Show, Generic)
instance ToJSON EventsRule where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 11, omitNothingFields = True }
instance FromJSON EventsRule where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 11, omitNothingFields = True }
eventsRule
:: EventsRule
eventsRule =
EventsRule
{ _eventsRuleDescription = Nothing
, _eventsRuleEventPattern = Nothing
, _eventsRuleName = Nothing
, _eventsRuleRoleArn = Nothing
, _eventsRuleScheduleExpression = Nothing
, _eventsRuleState = Nothing
, _eventsRuleTargets = Nothing
}
erDescription :: Lens' EventsRule (Maybe (Val Text))
erDescription = lens _eventsRuleDescription (\s a -> s { _eventsRuleDescription = a })
erEventPattern :: Lens' EventsRule (Maybe Object)
erEventPattern = lens _eventsRuleEventPattern (\s a -> s { _eventsRuleEventPattern = a })
erName :: Lens' EventsRule (Maybe (Val Text))
erName = lens _eventsRuleName (\s a -> s { _eventsRuleName = a })
erRoleArn :: Lens' EventsRule (Maybe (Val Text))
erRoleArn = lens _eventsRuleRoleArn (\s a -> s { _eventsRuleRoleArn = a })
erScheduleExpression :: Lens' EventsRule (Maybe (Val Text))
erScheduleExpression = lens _eventsRuleScheduleExpression (\s a -> s { _eventsRuleScheduleExpression = a })
erState :: Lens' EventsRule (Maybe EnabledState)
erState = lens _eventsRuleState (\s a -> s { _eventsRuleState = a })
erTargets :: Lens' EventsRule (Maybe [Object])
erTargets = lens _eventsRuleTargets (\s a -> s { _eventsRuleTargets = a })