stratosphere-0.2.0: library-gen/Stratosphere/ResourceProperties/KinesisFirehoseS3EncryptionConfiguration.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
-- | EncryptionConfiguration is a property of the Amazon Kinesis Firehose
-- DeliveryStream S3DestinationConfiguration property that specifies the
-- encryption settings that Amazon Kinesis Firehose (Firehose) uses when
-- delivering data to Amazon Simple Storage Service (Amazon S3).
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
-- | Full data type definition for KinesisFirehoseS3EncryptionConfiguration.
-- See 'kinesisFirehoseS3EncryptionConfiguration' for a more convenient
-- constructor.
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 }
-- | Constructor for 'KinesisFirehoseS3EncryptionConfiguration' containing
-- required fields as arguments.
kinesisFirehoseS3EncryptionConfiguration
:: KinesisFirehoseS3EncryptionConfiguration
kinesisFirehoseS3EncryptionConfiguration =
KinesisFirehoseS3EncryptionConfiguration
{ _kinesisFirehoseS3EncryptionConfigurationKMSEncryptionConfig = Nothing
, _kinesisFirehoseS3EncryptionConfigurationNoEncryptionConfig = Nothing
}
-- | The AWS Key Management Service (AWS KMS) encryption key that Amazon S3
-- uses to encrypt your data.
kfsecKMSEncryptionConfig :: Lens' KinesisFirehoseS3EncryptionConfiguration (Maybe KinesisFirehoseS3KMSEncryptionConfig)
kfsecKMSEncryptionConfig = lens _kinesisFirehoseS3EncryptionConfigurationKMSEncryptionConfig (\s a -> s { _kinesisFirehoseS3EncryptionConfigurationKMSEncryptionConfig = a })
-- | Disables encryption. For valid values, see the NoEncryptionConfig content
-- for the EncryptionConfiguration data type in the Amazon Kinesis Firehose
-- API Reference.
kfsecNoEncryptionConfig :: Lens' KinesisFirehoseS3EncryptionConfiguration (Maybe KinesisFirehoseNoEncryptionConfig)
kfsecNoEncryptionConfig = lens _kinesisFirehoseS3EncryptionConfigurationNoEncryptionConfig (\s a -> s { _kinesisFirehoseS3EncryptionConfigurationNoEncryptionConfig = a })