module Stratosphere.ResourceProperties.KinesisFirehoseS3EncryptionConfiguration where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.ResourceProperties.KinesisFirehoseS3KMSEncryptionConfig
import Stratosphere.Types
data KinesisFirehoseS3EncryptionConfiguration =
KinesisFirehoseS3EncryptionConfiguration
{ _kinesisFirehoseS3EncryptionConfigurationKMSEncryptionConfig :: Maybe KinesisFirehoseS3KMSEncryptionConfig
, _kinesisFirehoseS3EncryptionConfigurationNoEncryptionConfig :: Maybe KinesisFirehoseNoEncryptionConfig
} deriving (Show, Generic)
instance ToJSON KinesisFirehoseS3EncryptionConfiguration where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }
instance FromJSON KinesisFirehoseS3EncryptionConfiguration where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 41, omitNothingFields = True }
kinesisFirehoseS3EncryptionConfiguration
:: KinesisFirehoseS3EncryptionConfiguration
kinesisFirehoseS3EncryptionConfiguration =
KinesisFirehoseS3EncryptionConfiguration
{ _kinesisFirehoseS3EncryptionConfigurationKMSEncryptionConfig = Nothing
, _kinesisFirehoseS3EncryptionConfigurationNoEncryptionConfig = Nothing
}
kfsecKMSEncryptionConfig :: Lens' KinesisFirehoseS3EncryptionConfiguration (Maybe KinesisFirehoseS3KMSEncryptionConfig)
kfsecKMSEncryptionConfig = lens _kinesisFirehoseS3EncryptionConfigurationKMSEncryptionConfig (\s a -> s { _kinesisFirehoseS3EncryptionConfigurationKMSEncryptionConfig = a })
kfsecNoEncryptionConfig :: Lens' KinesisFirehoseS3EncryptionConfiguration (Maybe KinesisFirehoseNoEncryptionConfig)
kfsecNoEncryptionConfig = lens _kinesisFirehoseS3EncryptionConfigurationNoEncryptionConfig (\s a -> s { _kinesisFirehoseS3EncryptionConfigurationNoEncryptionConfig = a })