packages feed

stratosphere-0.53.0: library-gen/Stratosphere/ResourceProperties/LakeFormationPermissionsTableWithColumnsResource.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tablewithcolumnsresource.html

module Stratosphere.ResourceProperties.LakeFormationPermissionsTableWithColumnsResource where

import Stratosphere.ResourceImports
import Stratosphere.ResourceProperties.LakeFormationPermissionsColumnWildcard

-- | Full data type definition for
-- LakeFormationPermissionsTableWithColumnsResource. See
-- 'lakeFormationPermissionsTableWithColumnsResource' for a more convenient
-- constructor.
data LakeFormationPermissionsTableWithColumnsResource =
  LakeFormationPermissionsTableWithColumnsResource
  { _lakeFormationPermissionsTableWithColumnsResourceColumnNames :: Maybe (ValList Text)
  , _lakeFormationPermissionsTableWithColumnsResourceColumnWildcard :: Maybe LakeFormationPermissionsColumnWildcard
  , _lakeFormationPermissionsTableWithColumnsResourceDatabaseName :: Maybe (Val Text)
  , _lakeFormationPermissionsTableWithColumnsResourceName :: Maybe (Val Text)
  } deriving (Show, Eq)

instance ToJSON LakeFormationPermissionsTableWithColumnsResource where
  toJSON LakeFormationPermissionsTableWithColumnsResource{..} =
    object $
    catMaybes
    [ fmap (("ColumnNames",) . toJSON) _lakeFormationPermissionsTableWithColumnsResourceColumnNames
    , fmap (("ColumnWildcard",) . toJSON) _lakeFormationPermissionsTableWithColumnsResourceColumnWildcard
    , fmap (("DatabaseName",) . toJSON) _lakeFormationPermissionsTableWithColumnsResourceDatabaseName
    , fmap (("Name",) . toJSON) _lakeFormationPermissionsTableWithColumnsResourceName
    ]

-- | Constructor for 'LakeFormationPermissionsTableWithColumnsResource'
-- containing required fields as arguments.
lakeFormationPermissionsTableWithColumnsResource
  :: LakeFormationPermissionsTableWithColumnsResource
lakeFormationPermissionsTableWithColumnsResource  =
  LakeFormationPermissionsTableWithColumnsResource
  { _lakeFormationPermissionsTableWithColumnsResourceColumnNames = Nothing
  , _lakeFormationPermissionsTableWithColumnsResourceColumnWildcard = Nothing
  , _lakeFormationPermissionsTableWithColumnsResourceDatabaseName = Nothing
  , _lakeFormationPermissionsTableWithColumnsResourceName = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tablewithcolumnsresource.html#cfn-lakeformation-permissions-tablewithcolumnsresource-columnnames
lfptwcrColumnNames :: Lens' LakeFormationPermissionsTableWithColumnsResource (Maybe (ValList Text))
lfptwcrColumnNames = lens _lakeFormationPermissionsTableWithColumnsResourceColumnNames (\s a -> s { _lakeFormationPermissionsTableWithColumnsResourceColumnNames = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tablewithcolumnsresource.html#cfn-lakeformation-permissions-tablewithcolumnsresource-columnwildcard
lfptwcrColumnWildcard :: Lens' LakeFormationPermissionsTableWithColumnsResource (Maybe LakeFormationPermissionsColumnWildcard)
lfptwcrColumnWildcard = lens _lakeFormationPermissionsTableWithColumnsResourceColumnWildcard (\s a -> s { _lakeFormationPermissionsTableWithColumnsResourceColumnWildcard = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tablewithcolumnsresource.html#cfn-lakeformation-permissions-tablewithcolumnsresource-databasename
lfptwcrDatabaseName :: Lens' LakeFormationPermissionsTableWithColumnsResource (Maybe (Val Text))
lfptwcrDatabaseName = lens _lakeFormationPermissionsTableWithColumnsResourceDatabaseName (\s a -> s { _lakeFormationPermissionsTableWithColumnsResourceDatabaseName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lakeformation-permissions-tablewithcolumnsresource.html#cfn-lakeformation-permissions-tablewithcolumnsresource-name
lfptwcrName :: Lens' LakeFormationPermissionsTableWithColumnsResource (Maybe (Val Text))
lfptwcrName = lens _lakeFormationPermissionsTableWithColumnsResourceName (\s a -> s { _lakeFormationPermissionsTableWithColumnsResourceName = a })