stratosphere-0.2.0: library-gen/Stratosphere/ResourceProperties/KinesisFirehoseRedshiftDestinationConfiguration.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
-- | RedshiftDestinationConfiguration is a property of the
-- AWS::KinesisFirehose::DeliveryStream resource that specifies an Amazon
-- Redshift cluster to which Amazon Kinesis Firehose (Firehose) delivers data.
module Stratosphere.ResourceProperties.KinesisFirehoseRedshiftDestinationConfiguration where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
import Stratosphere.ResourceProperties.KinesisFirehoseCloudWatchLoggingOptions
import Stratosphere.ResourceProperties.KinesisFirehoseRedshiftCopyCommand
import Stratosphere.ResourceProperties.KinesisFirehoseS3DestinationConfiguration
-- | Full data type definition for
-- KinesisFirehoseRedshiftDestinationConfiguration. See
-- 'kinesisFirehoseRedshiftDestinationConfiguration' for a more convenient
-- constructor.
data KinesisFirehoseRedshiftDestinationConfiguration =
KinesisFirehoseRedshiftDestinationConfiguration
{ _kinesisFirehoseRedshiftDestinationConfigurationCloudWatchLoggingOptions :: Maybe KinesisFirehoseCloudWatchLoggingOptions
, _kinesisFirehoseRedshiftDestinationConfigurationClusterJDBCURL :: Val Text
, _kinesisFirehoseRedshiftDestinationConfigurationCopyCommand :: KinesisFirehoseRedshiftCopyCommand
, _kinesisFirehoseRedshiftDestinationConfigurationPassword :: Val Text
, _kinesisFirehoseRedshiftDestinationConfigurationRoleARN :: Val Text
, _kinesisFirehoseRedshiftDestinationConfigurationS3Configuration :: KinesisFirehoseS3DestinationConfiguration
, _kinesisFirehoseRedshiftDestinationConfigurationUsername :: Val Text
} deriving (Show, Generic)
instance ToJSON KinesisFirehoseRedshiftDestinationConfiguration where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 48, omitNothingFields = True }
instance FromJSON KinesisFirehoseRedshiftDestinationConfiguration where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 48, omitNothingFields = True }
-- | Constructor for 'KinesisFirehoseRedshiftDestinationConfiguration'
-- containing required fields as arguments.
kinesisFirehoseRedshiftDestinationConfiguration
:: Val Text -- ^ 'kfrdcClusterJDBCURL'
-> KinesisFirehoseRedshiftCopyCommand -- ^ 'kfrdcCopyCommand'
-> Val Text -- ^ 'kfrdcPassword'
-> Val Text -- ^ 'kfrdcRoleARN'
-> KinesisFirehoseS3DestinationConfiguration -- ^ 'kfrdcS3Configuration'
-> Val Text -- ^ 'kfrdcUsername'
-> KinesisFirehoseRedshiftDestinationConfiguration
kinesisFirehoseRedshiftDestinationConfiguration clusterJDBCURLarg copyCommandarg passwordarg roleARNarg s3Configurationarg usernamearg =
KinesisFirehoseRedshiftDestinationConfiguration
{ _kinesisFirehoseRedshiftDestinationConfigurationCloudWatchLoggingOptions = Nothing
, _kinesisFirehoseRedshiftDestinationConfigurationClusterJDBCURL = clusterJDBCURLarg
, _kinesisFirehoseRedshiftDestinationConfigurationCopyCommand = copyCommandarg
, _kinesisFirehoseRedshiftDestinationConfigurationPassword = passwordarg
, _kinesisFirehoseRedshiftDestinationConfigurationRoleARN = roleARNarg
, _kinesisFirehoseRedshiftDestinationConfigurationS3Configuration = s3Configurationarg
, _kinesisFirehoseRedshiftDestinationConfigurationUsername = usernamearg
}
-- | The Amazon CloudWatch Logs logging options for the delivery stream.
kfrdcCloudWatchLoggingOptions :: Lens' KinesisFirehoseRedshiftDestinationConfiguration (Maybe KinesisFirehoseCloudWatchLoggingOptions)
kfrdcCloudWatchLoggingOptions = lens _kinesisFirehoseRedshiftDestinationConfigurationCloudWatchLoggingOptions (\s a -> s { _kinesisFirehoseRedshiftDestinationConfigurationCloudWatchLoggingOptions = a })
-- | The connection string that Firehose uses to connect to the Amazon
-- Redshift cluster.
kfrdcClusterJDBCURL :: Lens' KinesisFirehoseRedshiftDestinationConfiguration (Val Text)
kfrdcClusterJDBCURL = lens _kinesisFirehoseRedshiftDestinationConfigurationClusterJDBCURL (\s a -> s { _kinesisFirehoseRedshiftDestinationConfigurationClusterJDBCURL = a })
-- | Configures the Amazon Redshift COPY command that Firehose uses to load
-- data into the cluster from the S3 bucket.
kfrdcCopyCommand :: Lens' KinesisFirehoseRedshiftDestinationConfiguration KinesisFirehoseRedshiftCopyCommand
kfrdcCopyCommand = lens _kinesisFirehoseRedshiftDestinationConfigurationCopyCommand (\s a -> s { _kinesisFirehoseRedshiftDestinationConfigurationCopyCommand = a })
-- | The password for the Amazon Redshift user that you specified in the
-- Username property.
kfrdcPassword :: Lens' KinesisFirehoseRedshiftDestinationConfiguration (Val Text)
kfrdcPassword = lens _kinesisFirehoseRedshiftDestinationConfigurationPassword (\s a -> s { _kinesisFirehoseRedshiftDestinationConfigurationPassword = a })
-- | The ARN of the AWS Identity and Access Management (IAM) role that grants
-- Firehose access to your S3 bucket and AWS KMS (if you enable data
-- encryption). For more information, see Grant Firehose Access to an Amazon
-- Redshift Destination in the Amazon Kinesis Firehose Developer Guide.
kfrdcRoleARN :: Lens' KinesisFirehoseRedshiftDestinationConfiguration (Val Text)
kfrdcRoleARN = lens _kinesisFirehoseRedshiftDestinationConfigurationRoleARN (\s a -> s { _kinesisFirehoseRedshiftDestinationConfigurationRoleARN = a })
-- | The S3 bucket where Firehose first delivers data. After the data is in
-- the bucket, Firehose uses the COPY command to load the data into the Amazon
-- Redshift cluster. For the S3 bucket's compression format, don't specify
-- SNAPPY or ZIP because the Amazon Redshift COPY command doesn't support
-- them.
kfrdcS3Configuration :: Lens' KinesisFirehoseRedshiftDestinationConfiguration KinesisFirehoseS3DestinationConfiguration
kfrdcS3Configuration = lens _kinesisFirehoseRedshiftDestinationConfigurationS3Configuration (\s a -> s { _kinesisFirehoseRedshiftDestinationConfigurationS3Configuration = a })
-- | The Amazon Redshift user that has permission to access the Amazon
-- Redshift cluster. This user must have INSERT privileges for copying data
-- from the S3 bucket to the cluster.
kfrdcUsername :: Lens' KinesisFirehoseRedshiftDestinationConfiguration (Val Text)
kfrdcUsername = lens _kinesisFirehoseRedshiftDestinationConfigurationUsername (\s a -> s { _kinesisFirehoseRedshiftDestinationConfigurationUsername = a })