module Stratosphere.ResourceProperties.S3NotificationConfigurationTopicConfiguration where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.ResourceProperties.S3NotificationConfigurationConfigFilter
data S3NotificationConfigurationTopicConfiguration =
S3NotificationConfigurationTopicConfiguration
{ _s3NotificationConfigurationTopicConfigurationEvent :: Val Text
, _s3NotificationConfigurationTopicConfigurationFilter :: Maybe S3NotificationConfigurationConfigFilter
, _s3NotificationConfigurationTopicConfigurationTopic :: Val Text
} deriving (Show, Generic)
instance ToJSON S3NotificationConfigurationTopicConfiguration where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 46, omitNothingFields = True }
instance FromJSON S3NotificationConfigurationTopicConfiguration where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 46, omitNothingFields = True }
s3NotificationConfigurationTopicConfiguration
:: Val Text
-> Val Text
-> S3NotificationConfigurationTopicConfiguration
s3NotificationConfigurationTopicConfiguration eventarg topicarg =
S3NotificationConfigurationTopicConfiguration
{ _s3NotificationConfigurationTopicConfigurationEvent = eventarg
, _s3NotificationConfigurationTopicConfigurationFilter = Nothing
, _s3NotificationConfigurationTopicConfigurationTopic = topicarg
}
snctcEvent :: Lens' S3NotificationConfigurationTopicConfiguration (Val Text)
snctcEvent = lens _s3NotificationConfigurationTopicConfigurationEvent (\s a -> s { _s3NotificationConfigurationTopicConfigurationEvent = a })
snctcFilter :: Lens' S3NotificationConfigurationTopicConfiguration (Maybe S3NotificationConfigurationConfigFilter)
snctcFilter = lens _s3NotificationConfigurationTopicConfigurationFilter (\s a -> s { _s3NotificationConfigurationTopicConfigurationFilter = a })
snctcTopic :: Lens' S3NotificationConfigurationTopicConfiguration (Val Text)
snctcTopic = lens _s3NotificationConfigurationTopicConfigurationTopic (\s a -> s { _s3NotificationConfigurationTopicConfigurationTopic = a })