stratosphere-0.15.2: library-gen/Stratosphere/ResourceProperties/KinesisAnalyticsApplicationRecordColumn.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordcolumn.html
module Stratosphere.ResourceProperties.KinesisAnalyticsApplicationRecordColumn where
import Stratosphere.ResourceImports
-- | Full data type definition for KinesisAnalyticsApplicationRecordColumn.
-- See 'kinesisAnalyticsApplicationRecordColumn' for a more convenient
-- constructor.
data KinesisAnalyticsApplicationRecordColumn =
KinesisAnalyticsApplicationRecordColumn
{ _kinesisAnalyticsApplicationRecordColumnMapping :: Maybe (Val Text)
, _kinesisAnalyticsApplicationRecordColumnName :: Val Text
, _kinesisAnalyticsApplicationRecordColumnSqlType :: Val Text
} deriving (Show, Eq)
instance ToJSON KinesisAnalyticsApplicationRecordColumn where
toJSON KinesisAnalyticsApplicationRecordColumn{..} =
object $
catMaybes
[ fmap (("Mapping",) . toJSON) _kinesisAnalyticsApplicationRecordColumnMapping
, (Just . ("Name",) . toJSON) _kinesisAnalyticsApplicationRecordColumnName
, (Just . ("SqlType",) . toJSON) _kinesisAnalyticsApplicationRecordColumnSqlType
]
instance FromJSON KinesisAnalyticsApplicationRecordColumn where
parseJSON (Object obj) =
KinesisAnalyticsApplicationRecordColumn <$>
(obj .:? "Mapping") <*>
(obj .: "Name") <*>
(obj .: "SqlType")
parseJSON _ = mempty
-- | Constructor for 'KinesisAnalyticsApplicationRecordColumn' containing
-- required fields as arguments.
kinesisAnalyticsApplicationRecordColumn
:: Val Text -- ^ 'kaarcName'
-> Val Text -- ^ 'kaarcSqlType'
-> KinesisAnalyticsApplicationRecordColumn
kinesisAnalyticsApplicationRecordColumn namearg sqlTypearg =
KinesisAnalyticsApplicationRecordColumn
{ _kinesisAnalyticsApplicationRecordColumnMapping = Nothing
, _kinesisAnalyticsApplicationRecordColumnName = namearg
, _kinesisAnalyticsApplicationRecordColumnSqlType = sqlTypearg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordcolumn.html#cfn-kinesisanalytics-application-recordcolumn-mapping
kaarcMapping :: Lens' KinesisAnalyticsApplicationRecordColumn (Maybe (Val Text))
kaarcMapping = lens _kinesisAnalyticsApplicationRecordColumnMapping (\s a -> s { _kinesisAnalyticsApplicationRecordColumnMapping = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordcolumn.html#cfn-kinesisanalytics-application-recordcolumn-name
kaarcName :: Lens' KinesisAnalyticsApplicationRecordColumn (Val Text)
kaarcName = lens _kinesisAnalyticsApplicationRecordColumnName (\s a -> s { _kinesisAnalyticsApplicationRecordColumnName = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisanalytics-application-recordcolumn.html#cfn-kinesisanalytics-application-recordcolumn-sqltype
kaarcSqlType :: Lens' KinesisAnalyticsApplicationRecordColumn (Val Text)
kaarcSqlType = lens _kinesisAnalyticsApplicationRecordColumnSqlType (\s a -> s { _kinesisAnalyticsApplicationRecordColumnSqlType = a })