module Stratosphere.WAFv2.LoggingConfiguration.LoggingFilterProperty (
        module Exports, LoggingFilterProperty(..), mkLoggingFilterProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.WAFv2.LoggingConfiguration.FilterProperty as Exports
import Stratosphere.ResourceProperties
import Stratosphere.Value
data LoggingFilterProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-loggingconfiguration-loggingfilter.html>
    LoggingFilterProperty {LoggingFilterProperty -> ()
haddock_workaround_ :: (),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-loggingconfiguration-loggingfilter.html#cfn-wafv2-loggingconfiguration-loggingfilter-defaultbehavior>
                           LoggingFilterProperty -> Value Text
defaultBehavior :: (Value Prelude.Text),
                           -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-loggingconfiguration-loggingfilter.html#cfn-wafv2-loggingconfiguration-loggingfilter-filters>
                           LoggingFilterProperty -> [FilterProperty]
filters :: [FilterProperty]}
  deriving stock (LoggingFilterProperty -> LoggingFilterProperty -> Bool
(LoggingFilterProperty -> LoggingFilterProperty -> Bool)
-> (LoggingFilterProperty -> LoggingFilterProperty -> Bool)
-> Eq LoggingFilterProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LoggingFilterProperty -> LoggingFilterProperty -> Bool
== :: LoggingFilterProperty -> LoggingFilterProperty -> Bool
$c/= :: LoggingFilterProperty -> LoggingFilterProperty -> Bool
/= :: LoggingFilterProperty -> LoggingFilterProperty -> Bool
Prelude.Eq, Int -> LoggingFilterProperty -> ShowS
[LoggingFilterProperty] -> ShowS
LoggingFilterProperty -> String
(Int -> LoggingFilterProperty -> ShowS)
-> (LoggingFilterProperty -> String)
-> ([LoggingFilterProperty] -> ShowS)
-> Show LoggingFilterProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LoggingFilterProperty -> ShowS
showsPrec :: Int -> LoggingFilterProperty -> ShowS
$cshow :: LoggingFilterProperty -> String
show :: LoggingFilterProperty -> String
$cshowList :: [LoggingFilterProperty] -> ShowS
showList :: [LoggingFilterProperty] -> ShowS
Prelude.Show)
mkLoggingFilterProperty ::
  Value Prelude.Text -> [FilterProperty] -> LoggingFilterProperty
mkLoggingFilterProperty :: Value Text -> [FilterProperty] -> LoggingFilterProperty
mkLoggingFilterProperty Value Text
defaultBehavior [FilterProperty]
filters
  = LoggingFilterProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), defaultBehavior :: Value Text
defaultBehavior = Value Text
defaultBehavior,
       filters :: [FilterProperty]
filters = [FilterProperty]
filters}
instance ToResourceProperties LoggingFilterProperty where
  toResourceProperties :: LoggingFilterProperty -> ResourceProperties
toResourceProperties LoggingFilterProperty {[FilterProperty]
()
Value Text
haddock_workaround_ :: LoggingFilterProperty -> ()
defaultBehavior :: LoggingFilterProperty -> Value Text
filters :: LoggingFilterProperty -> [FilterProperty]
haddock_workaround_ :: ()
defaultBehavior :: Value Text
filters :: [FilterProperty]
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::WAFv2::LoggingConfiguration.LoggingFilter",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Key
"DefaultBehavior" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
defaultBehavior,
                       Key
"Filters" Key -> [FilterProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [FilterProperty]
filters]}
instance JSON.ToJSON LoggingFilterProperty where
  toJSON :: LoggingFilterProperty -> Value
toJSON LoggingFilterProperty {[FilterProperty]
()
Value Text
haddock_workaround_ :: LoggingFilterProperty -> ()
defaultBehavior :: LoggingFilterProperty -> Value Text
filters :: LoggingFilterProperty -> [FilterProperty]
haddock_workaround_ :: ()
defaultBehavior :: Value Text
filters :: [FilterProperty]
..}
    = [(Key, Value)] -> Value
JSON.object
        [Key
"DefaultBehavior" Key -> Value Text -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= Value Text
defaultBehavior,
         Key
"Filters" Key -> [FilterProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
JSON..= [FilterProperty]
filters]
instance Property "DefaultBehavior" LoggingFilterProperty where
  type PropertyType "DefaultBehavior" LoggingFilterProperty = Value Prelude.Text
  set :: PropertyType "DefaultBehavior" LoggingFilterProperty
-> LoggingFilterProperty -> LoggingFilterProperty
set PropertyType "DefaultBehavior" LoggingFilterProperty
newValue LoggingFilterProperty {[FilterProperty]
()
Value Text
haddock_workaround_ :: LoggingFilterProperty -> ()
defaultBehavior :: LoggingFilterProperty -> Value Text
filters :: LoggingFilterProperty -> [FilterProperty]
haddock_workaround_ :: ()
defaultBehavior :: Value Text
filters :: [FilterProperty]
..}
    = LoggingFilterProperty {defaultBehavior :: Value Text
defaultBehavior = PropertyType "DefaultBehavior" LoggingFilterProperty
Value Text
newValue, [FilterProperty]
()
haddock_workaround_ :: ()
filters :: [FilterProperty]
haddock_workaround_ :: ()
filters :: [FilterProperty]
..}
instance Property "Filters" LoggingFilterProperty where
  type PropertyType "Filters" LoggingFilterProperty = [FilterProperty]
  set :: PropertyType "Filters" LoggingFilterProperty
-> LoggingFilterProperty -> LoggingFilterProperty
set PropertyType "Filters" LoggingFilterProperty
newValue LoggingFilterProperty {[FilterProperty]
()
Value Text
haddock_workaround_ :: LoggingFilterProperty -> ()
defaultBehavior :: LoggingFilterProperty -> Value Text
filters :: LoggingFilterProperty -> [FilterProperty]
haddock_workaround_ :: ()
defaultBehavior :: Value Text
filters :: [FilterProperty]
..}
    = LoggingFilterProperty {filters :: [FilterProperty]
filters = [FilterProperty]
PropertyType "Filters" LoggingFilterProperty
newValue, ()
Value Text
haddock_workaround_ :: ()
defaultBehavior :: Value Text
haddock_workaround_ :: ()
defaultBehavior :: Value Text
..}