stratosphere-0.47.0: library-gen/Stratosphere/ResourceProperties/AccessAnalyzerAnalyzerFilter.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html
module Stratosphere.ResourceProperties.AccessAnalyzerAnalyzerFilter where
import Stratosphere.ResourceImports
-- | Full data type definition for AccessAnalyzerAnalyzerFilter. See
-- 'accessAnalyzerAnalyzerFilter' for a more convenient constructor.
data AccessAnalyzerAnalyzerFilter =
AccessAnalyzerAnalyzerFilter
{ _accessAnalyzerAnalyzerFilterContains :: Maybe (ValList Text)
, _accessAnalyzerAnalyzerFilterEq :: Maybe (ValList Text)
, _accessAnalyzerAnalyzerFilterExists :: Maybe (Val Bool)
, _accessAnalyzerAnalyzerFilterNeq :: Maybe (ValList Text)
, _accessAnalyzerAnalyzerFilterProperty :: Val Text
} deriving (Show, Eq)
instance ToJSON AccessAnalyzerAnalyzerFilter where
toJSON AccessAnalyzerAnalyzerFilter{..} =
object $
catMaybes
[ fmap (("Contains",) . toJSON) _accessAnalyzerAnalyzerFilterContains
, fmap (("Eq",) . toJSON) _accessAnalyzerAnalyzerFilterEq
, fmap (("Exists",) . toJSON) _accessAnalyzerAnalyzerFilterExists
, fmap (("Neq",) . toJSON) _accessAnalyzerAnalyzerFilterNeq
, (Just . ("Property",) . toJSON) _accessAnalyzerAnalyzerFilterProperty
]
-- | Constructor for 'AccessAnalyzerAnalyzerFilter' containing required fields
-- as arguments.
accessAnalyzerAnalyzerFilter
:: Val Text -- ^ 'aaafProperty'
-> AccessAnalyzerAnalyzerFilter
accessAnalyzerAnalyzerFilter propertyarg =
AccessAnalyzerAnalyzerFilter
{ _accessAnalyzerAnalyzerFilterContains = Nothing
, _accessAnalyzerAnalyzerFilterEq = Nothing
, _accessAnalyzerAnalyzerFilterExists = Nothing
, _accessAnalyzerAnalyzerFilterNeq = Nothing
, _accessAnalyzerAnalyzerFilterProperty = propertyarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html#cfn-accessanalyzer-analyzer-filter-contains
aaafContains :: Lens' AccessAnalyzerAnalyzerFilter (Maybe (ValList Text))
aaafContains = lens _accessAnalyzerAnalyzerFilterContains (\s a -> s { _accessAnalyzerAnalyzerFilterContains = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html#cfn-accessanalyzer-analyzer-filter-eq
aaafEq :: Lens' AccessAnalyzerAnalyzerFilter (Maybe (ValList Text))
aaafEq = lens _accessAnalyzerAnalyzerFilterEq (\s a -> s { _accessAnalyzerAnalyzerFilterEq = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html#cfn-accessanalyzer-analyzer-filter-exists
aaafExists :: Lens' AccessAnalyzerAnalyzerFilter (Maybe (Val Bool))
aaafExists = lens _accessAnalyzerAnalyzerFilterExists (\s a -> s { _accessAnalyzerAnalyzerFilterExists = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html#cfn-accessanalyzer-analyzer-filter-neq
aaafNeq :: Lens' AccessAnalyzerAnalyzerFilter (Maybe (ValList Text))
aaafNeq = lens _accessAnalyzerAnalyzerFilterNeq (\s a -> s { _accessAnalyzerAnalyzerFilterNeq = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-accessanalyzer-analyzer-filter.html#cfn-accessanalyzer-analyzer-filter-property
aaafProperty :: Lens' AccessAnalyzerAnalyzerFilter (Val Text)
aaafProperty = lens _accessAnalyzerAnalyzerFilterProperty (\s a -> s { _accessAnalyzerAnalyzerFilterProperty = a })