{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.WAFV2.Types.FirewallManagerRuleGroup where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.WAFV2.Types.FirewallManagerStatement
import Amazonka.WAFV2.Types.OverrideAction
import Amazonka.WAFV2.Types.VisibilityConfig
data FirewallManagerRuleGroup = FirewallManagerRuleGroup'
{
FirewallManagerRuleGroup -> Text
name :: Prelude.Text,
FirewallManagerRuleGroup -> Natural
priority :: Prelude.Natural,
FirewallManagerRuleGroup -> FirewallManagerStatement
firewallManagerStatement :: FirewallManagerStatement,
FirewallManagerRuleGroup -> OverrideAction
overrideAction :: OverrideAction,
FirewallManagerRuleGroup -> VisibilityConfig
visibilityConfig :: VisibilityConfig
}
deriving (FirewallManagerRuleGroup -> FirewallManagerRuleGroup -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FirewallManagerRuleGroup -> FirewallManagerRuleGroup -> Bool
$c/= :: FirewallManagerRuleGroup -> FirewallManagerRuleGroup -> Bool
== :: FirewallManagerRuleGroup -> FirewallManagerRuleGroup -> Bool
$c== :: FirewallManagerRuleGroup -> FirewallManagerRuleGroup -> Bool
Prelude.Eq, ReadPrec [FirewallManagerRuleGroup]
ReadPrec FirewallManagerRuleGroup
Int -> ReadS FirewallManagerRuleGroup
ReadS [FirewallManagerRuleGroup]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [FirewallManagerRuleGroup]
$creadListPrec :: ReadPrec [FirewallManagerRuleGroup]
readPrec :: ReadPrec FirewallManagerRuleGroup
$creadPrec :: ReadPrec FirewallManagerRuleGroup
readList :: ReadS [FirewallManagerRuleGroup]
$creadList :: ReadS [FirewallManagerRuleGroup]
readsPrec :: Int -> ReadS FirewallManagerRuleGroup
$creadsPrec :: Int -> ReadS FirewallManagerRuleGroup
Prelude.Read, Int -> FirewallManagerRuleGroup -> ShowS
[FirewallManagerRuleGroup] -> ShowS
FirewallManagerRuleGroup -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FirewallManagerRuleGroup] -> ShowS
$cshowList :: [FirewallManagerRuleGroup] -> ShowS
show :: FirewallManagerRuleGroup -> String
$cshow :: FirewallManagerRuleGroup -> String
showsPrec :: Int -> FirewallManagerRuleGroup -> ShowS
$cshowsPrec :: Int -> FirewallManagerRuleGroup -> ShowS
Prelude.Show, forall x.
Rep FirewallManagerRuleGroup x -> FirewallManagerRuleGroup
forall x.
FirewallManagerRuleGroup -> Rep FirewallManagerRuleGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep FirewallManagerRuleGroup x -> FirewallManagerRuleGroup
$cfrom :: forall x.
FirewallManagerRuleGroup -> Rep FirewallManagerRuleGroup x
Prelude.Generic)
newFirewallManagerRuleGroup ::
Prelude.Text ->
Prelude.Natural ->
FirewallManagerStatement ->
OverrideAction ->
VisibilityConfig ->
FirewallManagerRuleGroup
newFirewallManagerRuleGroup :: Text
-> Natural
-> FirewallManagerStatement
-> OverrideAction
-> VisibilityConfig
-> FirewallManagerRuleGroup
newFirewallManagerRuleGroup
Text
pName_
Natural
pPriority_
FirewallManagerStatement
pFirewallManagerStatement_
OverrideAction
pOverrideAction_
VisibilityConfig
pVisibilityConfig_ =
FirewallManagerRuleGroup'
{ $sel:name:FirewallManagerRuleGroup' :: Text
name = Text
pName_,
$sel:priority:FirewallManagerRuleGroup' :: Natural
priority = Natural
pPriority_,
$sel:firewallManagerStatement:FirewallManagerRuleGroup' :: FirewallManagerStatement
firewallManagerStatement =
FirewallManagerStatement
pFirewallManagerStatement_,
$sel:overrideAction:FirewallManagerRuleGroup' :: OverrideAction
overrideAction = OverrideAction
pOverrideAction_,
$sel:visibilityConfig:FirewallManagerRuleGroup' :: VisibilityConfig
visibilityConfig = VisibilityConfig
pVisibilityConfig_
}
firewallManagerRuleGroup_name :: Lens.Lens' FirewallManagerRuleGroup Prelude.Text
firewallManagerRuleGroup_name :: Lens' FirewallManagerRuleGroup Text
firewallManagerRuleGroup_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FirewallManagerRuleGroup' {Text
name :: Text
$sel:name:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> Text
name} -> Text
name) (\s :: FirewallManagerRuleGroup
s@FirewallManagerRuleGroup' {} Text
a -> FirewallManagerRuleGroup
s {$sel:name:FirewallManagerRuleGroup' :: Text
name = Text
a} :: FirewallManagerRuleGroup)
firewallManagerRuleGroup_priority :: Lens.Lens' FirewallManagerRuleGroup Prelude.Natural
firewallManagerRuleGroup_priority :: Lens' FirewallManagerRuleGroup Natural
firewallManagerRuleGroup_priority = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FirewallManagerRuleGroup' {Natural
priority :: Natural
$sel:priority:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> Natural
priority} -> Natural
priority) (\s :: FirewallManagerRuleGroup
s@FirewallManagerRuleGroup' {} Natural
a -> FirewallManagerRuleGroup
s {$sel:priority:FirewallManagerRuleGroup' :: Natural
priority = Natural
a} :: FirewallManagerRuleGroup)
firewallManagerRuleGroup_firewallManagerStatement :: Lens.Lens' FirewallManagerRuleGroup FirewallManagerStatement
firewallManagerRuleGroup_firewallManagerStatement :: Lens' FirewallManagerRuleGroup FirewallManagerStatement
firewallManagerRuleGroup_firewallManagerStatement = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FirewallManagerRuleGroup' {FirewallManagerStatement
firewallManagerStatement :: FirewallManagerStatement
$sel:firewallManagerStatement:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> FirewallManagerStatement
firewallManagerStatement} -> FirewallManagerStatement
firewallManagerStatement) (\s :: FirewallManagerRuleGroup
s@FirewallManagerRuleGroup' {} FirewallManagerStatement
a -> FirewallManagerRuleGroup
s {$sel:firewallManagerStatement:FirewallManagerRuleGroup' :: FirewallManagerStatement
firewallManagerStatement = FirewallManagerStatement
a} :: FirewallManagerRuleGroup)
firewallManagerRuleGroup_overrideAction :: Lens.Lens' FirewallManagerRuleGroup OverrideAction
firewallManagerRuleGroup_overrideAction :: Lens' FirewallManagerRuleGroup OverrideAction
firewallManagerRuleGroup_overrideAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FirewallManagerRuleGroup' {OverrideAction
overrideAction :: OverrideAction
$sel:overrideAction:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> OverrideAction
overrideAction} -> OverrideAction
overrideAction) (\s :: FirewallManagerRuleGroup
s@FirewallManagerRuleGroup' {} OverrideAction
a -> FirewallManagerRuleGroup
s {$sel:overrideAction:FirewallManagerRuleGroup' :: OverrideAction
overrideAction = OverrideAction
a} :: FirewallManagerRuleGroup)
firewallManagerRuleGroup_visibilityConfig :: Lens.Lens' FirewallManagerRuleGroup VisibilityConfig
firewallManagerRuleGroup_visibilityConfig :: Lens' FirewallManagerRuleGroup VisibilityConfig
firewallManagerRuleGroup_visibilityConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FirewallManagerRuleGroup' {VisibilityConfig
visibilityConfig :: VisibilityConfig
$sel:visibilityConfig:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> VisibilityConfig
visibilityConfig} -> VisibilityConfig
visibilityConfig) (\s :: FirewallManagerRuleGroup
s@FirewallManagerRuleGroup' {} VisibilityConfig
a -> FirewallManagerRuleGroup
s {$sel:visibilityConfig:FirewallManagerRuleGroup' :: VisibilityConfig
visibilityConfig = VisibilityConfig
a} :: FirewallManagerRuleGroup)
instance Data.FromJSON FirewallManagerRuleGroup where
parseJSON :: Value -> Parser FirewallManagerRuleGroup
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"FirewallManagerRuleGroup"
( \Object
x ->
Text
-> Natural
-> FirewallManagerStatement
-> OverrideAction
-> VisibilityConfig
-> FirewallManagerRuleGroup
FirewallManagerRuleGroup'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"Name")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"Priority")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"FirewallManagerStatement")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"OverrideAction")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"VisibilityConfig")
)
instance Prelude.Hashable FirewallManagerRuleGroup where
hashWithSalt :: Int -> FirewallManagerRuleGroup -> Int
hashWithSalt Int
_salt FirewallManagerRuleGroup' {Natural
Text
OverrideAction
FirewallManagerStatement
VisibilityConfig
visibilityConfig :: VisibilityConfig
overrideAction :: OverrideAction
firewallManagerStatement :: FirewallManagerStatement
priority :: Natural
name :: Text
$sel:visibilityConfig:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> VisibilityConfig
$sel:overrideAction:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> OverrideAction
$sel:firewallManagerStatement:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> FirewallManagerStatement
$sel:priority:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> Natural
$sel:name:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Natural
priority
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` FirewallManagerStatement
firewallManagerStatement
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` OverrideAction
overrideAction
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` VisibilityConfig
visibilityConfig
instance Prelude.NFData FirewallManagerRuleGroup where
rnf :: FirewallManagerRuleGroup -> ()
rnf FirewallManagerRuleGroup' {Natural
Text
OverrideAction
FirewallManagerStatement
VisibilityConfig
visibilityConfig :: VisibilityConfig
overrideAction :: OverrideAction
firewallManagerStatement :: FirewallManagerStatement
priority :: Natural
name :: Text
$sel:visibilityConfig:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> VisibilityConfig
$sel:overrideAction:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> OverrideAction
$sel:firewallManagerStatement:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> FirewallManagerStatement
$sel:priority:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> Natural
$sel:name:FirewallManagerRuleGroup' :: FirewallManagerRuleGroup -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Natural
priority
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf FirewallManagerStatement
firewallManagerStatement
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf OverrideAction
overrideAction
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf VisibilityConfig
visibilityConfig