stratosphere-0.22.2: library-gen/Stratosphere/ResourceProperties/GuardDutyFilterCondition.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html
module Stratosphere.ResourceProperties.GuardDutyFilterCondition where
import Stratosphere.ResourceImports
-- | Full data type definition for GuardDutyFilterCondition. See
-- 'guardDutyFilterCondition' for a more convenient constructor.
data GuardDutyFilterCondition =
GuardDutyFilterCondition
{ _guardDutyFilterConditionEq :: Maybe (ValList Text)
, _guardDutyFilterConditionGte :: Maybe (Val Integer)
, _guardDutyFilterConditionLt :: Maybe (Val Integer)
, _guardDutyFilterConditionLte :: Maybe (Val Integer)
, _guardDutyFilterConditionNeq :: Maybe (ValList Text)
} deriving (Show, Eq)
instance ToJSON GuardDutyFilterCondition where
toJSON GuardDutyFilterCondition{..} =
object $
catMaybes
[ fmap (("Eq",) . toJSON) _guardDutyFilterConditionEq
, fmap (("Gte",) . toJSON . fmap Integer') _guardDutyFilterConditionGte
, fmap (("Lt",) . toJSON . fmap Integer') _guardDutyFilterConditionLt
, fmap (("Lte",) . toJSON . fmap Integer') _guardDutyFilterConditionLte
, fmap (("Neq",) . toJSON) _guardDutyFilterConditionNeq
]
instance FromJSON GuardDutyFilterCondition where
parseJSON (Object obj) =
GuardDutyFilterCondition <$>
(obj .:? "Eq") <*>
fmap (fmap (fmap unInteger')) (obj .:? "Gte") <*>
fmap (fmap (fmap unInteger')) (obj .:? "Lt") <*>
fmap (fmap (fmap unInteger')) (obj .:? "Lte") <*>
(obj .:? "Neq")
parseJSON _ = mempty
-- | Constructor for 'GuardDutyFilterCondition' containing required fields as
-- arguments.
guardDutyFilterCondition
:: GuardDutyFilterCondition
guardDutyFilterCondition =
GuardDutyFilterCondition
{ _guardDutyFilterConditionEq = Nothing
, _guardDutyFilterConditionGte = Nothing
, _guardDutyFilterConditionLt = Nothing
, _guardDutyFilterConditionLte = Nothing
, _guardDutyFilterConditionNeq = Nothing
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-eq
gdfcEq :: Lens' GuardDutyFilterCondition (Maybe (ValList Text))
gdfcEq = lens _guardDutyFilterConditionEq (\s a -> s { _guardDutyFilterConditionEq = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-gte
gdfcGte :: Lens' GuardDutyFilterCondition (Maybe (Val Integer))
gdfcGte = lens _guardDutyFilterConditionGte (\s a -> s { _guardDutyFilterConditionGte = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-lt
gdfcLt :: Lens' GuardDutyFilterCondition (Maybe (Val Integer))
gdfcLt = lens _guardDutyFilterConditionLt (\s a -> s { _guardDutyFilterConditionLt = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-lte
gdfcLte :: Lens' GuardDutyFilterCondition (Maybe (Val Integer))
gdfcLte = lens _guardDutyFilterConditionLte (\s a -> s { _guardDutyFilterConditionLte = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-guardduty-filter-condition.html#cfn-guardduty-filter-condition-neq
gdfcNeq :: Lens' GuardDutyFilterCondition (Maybe (ValList Text))
gdfcNeq = lens _guardDutyFilterConditionNeq (\s a -> s { _guardDutyFilterConditionNeq = a })