packages feed

stratosphere-0.53.0: library-gen/Stratosphere/Resources/MacieCustomDataIdentifier.hs

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

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

module Stratosphere.Resources.MacieCustomDataIdentifier where

import Stratosphere.ResourceImports


-- | Full data type definition for MacieCustomDataIdentifier. See
-- 'macieCustomDataIdentifier' for a more convenient constructor.
data MacieCustomDataIdentifier =
  MacieCustomDataIdentifier
  { _macieCustomDataIdentifierDescription :: Maybe (Val Text)
  , _macieCustomDataIdentifierIgnoreWords :: Maybe (ValList Text)
  , _macieCustomDataIdentifierKeywords :: Maybe (ValList Text)
  , _macieCustomDataIdentifierMaximumMatchDistance :: Maybe (Val Integer)
  , _macieCustomDataIdentifierName :: Val Text
  , _macieCustomDataIdentifierRegex :: Val Text
  } deriving (Show, Eq)

instance ToResourceProperties MacieCustomDataIdentifier where
  toResourceProperties MacieCustomDataIdentifier{..} =
    ResourceProperties
    { resourcePropertiesType = "AWS::Macie::CustomDataIdentifier"
    , resourcePropertiesProperties =
        hashMapFromList $ catMaybes
        [ fmap (("Description",) . toJSON) _macieCustomDataIdentifierDescription
        , fmap (("IgnoreWords",) . toJSON) _macieCustomDataIdentifierIgnoreWords
        , fmap (("Keywords",) . toJSON) _macieCustomDataIdentifierKeywords
        , fmap (("MaximumMatchDistance",) . toJSON) _macieCustomDataIdentifierMaximumMatchDistance
        , (Just . ("Name",) . toJSON) _macieCustomDataIdentifierName
        , (Just . ("Regex",) . toJSON) _macieCustomDataIdentifierRegex
        ]
    }

-- | Constructor for 'MacieCustomDataIdentifier' containing required fields as
-- arguments.
macieCustomDataIdentifier
  :: Val Text -- ^ 'mcdiName'
  -> Val Text -- ^ 'mcdiRegex'
  -> MacieCustomDataIdentifier
macieCustomDataIdentifier namearg regexarg =
  MacieCustomDataIdentifier
  { _macieCustomDataIdentifierDescription = Nothing
  , _macieCustomDataIdentifierIgnoreWords = Nothing
  , _macieCustomDataIdentifierKeywords = Nothing
  , _macieCustomDataIdentifierMaximumMatchDistance = Nothing
  , _macieCustomDataIdentifierName = namearg
  , _macieCustomDataIdentifierRegex = regexarg
  }

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html#cfn-macie-customdataidentifier-ignorewords
mcdiIgnoreWords :: Lens' MacieCustomDataIdentifier (Maybe (ValList Text))
mcdiIgnoreWords = lens _macieCustomDataIdentifierIgnoreWords (\s a -> s { _macieCustomDataIdentifierIgnoreWords = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html#cfn-macie-customdataidentifier-keywords
mcdiKeywords :: Lens' MacieCustomDataIdentifier (Maybe (ValList Text))
mcdiKeywords = lens _macieCustomDataIdentifierKeywords (\s a -> s { _macieCustomDataIdentifierKeywords = a })

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html#cfn-macie-customdataidentifier-maximummatchdistance
mcdiMaximumMatchDistance :: Lens' MacieCustomDataIdentifier (Maybe (Val Integer))
mcdiMaximumMatchDistance = lens _macieCustomDataIdentifierMaximumMatchDistance (\s a -> s { _macieCustomDataIdentifierMaximumMatchDistance = a })

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

-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-macie-customdataidentifier.html#cfn-macie-customdataidentifier-regex
mcdiRegex :: Lens' MacieCustomDataIdentifier (Val Text)
mcdiRegex = lens _macieCustomDataIdentifierRegex (\s a -> s { _macieCustomDataIdentifierRegex = a })