stratosphere-0.11.0: library-gen/Stratosphere/ResourceProperties/GlueTableSkewedInfo.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html
module Stratosphere.ResourceProperties.GlueTableSkewedInfo where
import Control.Lens hiding ((.=))
import Data.Aeson
import Data.Maybe (catMaybes)
import Data.Monoid (mempty)
import Data.Text
import Stratosphere.Values
-- | Full data type definition for GlueTableSkewedInfo. See
-- 'glueTableSkewedInfo' for a more convenient constructor.
data GlueTableSkewedInfo =
GlueTableSkewedInfo
{ _glueTableSkewedInfoSkewedColumnNames :: Maybe (ValList Text)
, _glueTableSkewedInfoSkewedColumnValueLocationMaps :: Maybe Object
, _glueTableSkewedInfoSkewedColumnValues :: Maybe (ValList Text)
} deriving (Show, Eq)
instance ToJSON GlueTableSkewedInfo where
toJSON GlueTableSkewedInfo{..} =
object $
catMaybes
[ fmap (("SkewedColumnNames",) . toJSON) _glueTableSkewedInfoSkewedColumnNames
, fmap (("SkewedColumnValueLocationMaps",) . toJSON) _glueTableSkewedInfoSkewedColumnValueLocationMaps
, fmap (("SkewedColumnValues",) . toJSON) _glueTableSkewedInfoSkewedColumnValues
]
instance FromJSON GlueTableSkewedInfo where
parseJSON (Object obj) =
GlueTableSkewedInfo <$>
(obj .:? "SkewedColumnNames") <*>
(obj .:? "SkewedColumnValueLocationMaps") <*>
(obj .:? "SkewedColumnValues")
parseJSON _ = mempty
-- | Constructor for 'GlueTableSkewedInfo' containing required fields as
-- arguments.
glueTableSkewedInfo
:: GlueTableSkewedInfo
glueTableSkewedInfo =
GlueTableSkewedInfo
{ _glueTableSkewedInfoSkewedColumnNames = Nothing
, _glueTableSkewedInfoSkewedColumnValueLocationMaps = Nothing
, _glueTableSkewedInfoSkewedColumnValues = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html#cfn-glue-table-skewedinfo-skewedcolumnnames
gtsiSkewedColumnNames :: Lens' GlueTableSkewedInfo (Maybe (ValList Text))
gtsiSkewedColumnNames = lens _glueTableSkewedInfoSkewedColumnNames (\s a -> s { _glueTableSkewedInfoSkewedColumnNames = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html#cfn-glue-table-skewedinfo-skewedcolumnvaluelocationmaps
gtsiSkewedColumnValueLocationMaps :: Lens' GlueTableSkewedInfo (Maybe Object)
gtsiSkewedColumnValueLocationMaps = lens _glueTableSkewedInfoSkewedColumnValueLocationMaps (\s a -> s { _glueTableSkewedInfoSkewedColumnValueLocationMaps = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-skewedinfo.html#cfn-glue-table-skewedinfo-skewedcolumnvalues
gtsiSkewedColumnValues :: Lens' GlueTableSkewedInfo (Maybe (ValList Text))
gtsiSkewedColumnValues = lens _glueTableSkewedInfoSkewedColumnValues (\s a -> s { _glueTableSkewedInfoSkewedColumnValues = a })