module Stratosphere.ResourceProperties.S3NotificationConfigurationQueueConfiguration 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 S3NotificationConfigurationQueueConfiguration =
S3NotificationConfigurationQueueConfiguration
{ _s3NotificationConfigurationQueueConfigurationEvent :: Val Text
, _s3NotificationConfigurationQueueConfigurationFilter :: Maybe S3NotificationConfigurationConfigFilter
, _s3NotificationConfigurationQueueConfigurationQueue :: Val Text
} deriving (Show, Generic)
instance ToJSON S3NotificationConfigurationQueueConfiguration where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 46, omitNothingFields = True }
instance FromJSON S3NotificationConfigurationQueueConfiguration where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 46, omitNothingFields = True }
s3NotificationConfigurationQueueConfiguration
:: Val Text
-> Val Text
-> S3NotificationConfigurationQueueConfiguration
s3NotificationConfigurationQueueConfiguration eventarg queuearg =
S3NotificationConfigurationQueueConfiguration
{ _s3NotificationConfigurationQueueConfigurationEvent = eventarg
, _s3NotificationConfigurationQueueConfigurationFilter = Nothing
, _s3NotificationConfigurationQueueConfigurationQueue = queuearg
}
sncqcEvent :: Lens' S3NotificationConfigurationQueueConfiguration (Val Text)
sncqcEvent = lens _s3NotificationConfigurationQueueConfigurationEvent (\s a -> s { _s3NotificationConfigurationQueueConfigurationEvent = a })
sncqcFilter :: Lens' S3NotificationConfigurationQueueConfiguration (Maybe S3NotificationConfigurationConfigFilter)
sncqcFilter = lens _s3NotificationConfigurationQueueConfigurationFilter (\s a -> s { _s3NotificationConfigurationQueueConfigurationFilter = a })
sncqcQueue :: Lens' S3NotificationConfigurationQueueConfiguration (Val Text)
sncqcQueue = lens _s3NotificationConfigurationQueueConfigurationQueue (\s a -> s { _s3NotificationConfigurationQueueConfigurationQueue = a })