packages feed

stratosphere-0.54.0: library-gen/Stratosphere/Resources/MacieFindingsFilter.hs

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html

module Stratosphere.Resources.MacieFindingsFilter where

import Stratosphere.ResourceImports


-- | Full data type definition for MacieFindingsFilter. See
-- 'macieFindingsFilter' for a more convenient constructor.
data MacieFindingsFilter =
  MacieFindingsFilter
  { _macieFindingsFilterAction :: Maybe (Val Text)
  , _macieFindingsFilterDescription :: Maybe (Val Text)
  , _macieFindingsFilterName :: Val Text
  , _macieFindingsFilterPosition :: Maybe (Val Integer)
  } deriving (Show, Eq)

instance ToResourceProperties MacieFindingsFilter where
  toResourceProperties MacieFindingsFilter{..} =
    ResourceProperties
    { resourcePropertiesType = "AWS::Macie::FindingsFilter"
    , resourcePropertiesProperties =
        hashMapFromList $ catMaybes
        [ fmap (("Action",) . toJSON) _macieFindingsFilterAction
        , fmap (("Description",) . toJSON) _macieFindingsFilterDescription
        , (Just . ("Name",) . toJSON) _macieFindingsFilterName
        , fmap (("Position",) . toJSON) _macieFindingsFilterPosition
        ]
    }

-- | Constructor for 'MacieFindingsFilter' containing required fields as
-- arguments.
macieFindingsFilter
  :: Val Text -- ^ 'mffName'
  -> MacieFindingsFilter
macieFindingsFilter namearg =
  MacieFindingsFilter
  { _macieFindingsFilterAction = Nothing
  , _macieFindingsFilterDescription = Nothing
  , _macieFindingsFilterName = namearg
  , _macieFindingsFilterPosition = Nothing
  }

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html#cfn-macie-findingsfilter-action
mffAction :: Lens' MacieFindingsFilter (Maybe (Val Text))
mffAction = lens _macieFindingsFilterAction (\s a -> s { _macieFindingsFilterAction = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html#cfn-macie-findingsfilter-description
mffDescription :: Lens' MacieFindingsFilter (Maybe (Val Text))
mffDescription = lens _macieFindingsFilterDescription (\s a -> s { _macieFindingsFilterDescription = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html#cfn-macie-findingsfilter-name
mffName :: Lens' MacieFindingsFilter (Val Text)
mffName = lens _macieFindingsFilterName (\s a -> s { _macieFindingsFilterName = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-findingsfilter.html#cfn-macie-findingsfilter-position
mffPosition :: Lens' MacieFindingsFilter (Maybe (Val Integer))
mffPosition = lens _macieFindingsFilterPosition (\s a -> s { _macieFindingsFilterPosition = a })