{-# 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.Cookies 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.CookieMatchPattern
import Amazonka.WAFV2.Types.MapMatchScope
import Amazonka.WAFV2.Types.OversizeHandling
data Cookies = Cookies'
{
Cookies -> CookieMatchPattern
matchPattern :: CookieMatchPattern,
Cookies -> MapMatchScope
matchScope :: MapMatchScope,
Cookies -> OversizeHandling
oversizeHandling :: OversizeHandling
}
deriving (Cookies -> Cookies -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Cookies -> Cookies -> Bool
$c/= :: Cookies -> Cookies -> Bool
== :: Cookies -> Cookies -> Bool
$c== :: Cookies -> Cookies -> Bool
Prelude.Eq, ReadPrec [Cookies]
ReadPrec Cookies
Int -> ReadS Cookies
ReadS [Cookies]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Cookies]
$creadListPrec :: ReadPrec [Cookies]
readPrec :: ReadPrec Cookies
$creadPrec :: ReadPrec Cookies
readList :: ReadS [Cookies]
$creadList :: ReadS [Cookies]
readsPrec :: Int -> ReadS Cookies
$creadsPrec :: Int -> ReadS Cookies
Prelude.Read, Int -> Cookies -> ShowS
[Cookies] -> ShowS
Cookies -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Cookies] -> ShowS
$cshowList :: [Cookies] -> ShowS
show :: Cookies -> String
$cshow :: Cookies -> String
showsPrec :: Int -> Cookies -> ShowS
$cshowsPrec :: Int -> Cookies -> ShowS
Prelude.Show, forall x. Rep Cookies x -> Cookies
forall x. Cookies -> Rep Cookies x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Cookies x -> Cookies
$cfrom :: forall x. Cookies -> Rep Cookies x
Prelude.Generic)
newCookies ::
CookieMatchPattern ->
MapMatchScope ->
OversizeHandling ->
Cookies
newCookies :: CookieMatchPattern -> MapMatchScope -> OversizeHandling -> Cookies
newCookies
CookieMatchPattern
pMatchPattern_
MapMatchScope
pMatchScope_
OversizeHandling
pOversizeHandling_ =
Cookies'
{ $sel:matchPattern:Cookies' :: CookieMatchPattern
matchPattern = CookieMatchPattern
pMatchPattern_,
$sel:matchScope:Cookies' :: MapMatchScope
matchScope = MapMatchScope
pMatchScope_,
$sel:oversizeHandling:Cookies' :: OversizeHandling
oversizeHandling = OversizeHandling
pOversizeHandling_
}
cookies_matchPattern :: Lens.Lens' Cookies CookieMatchPattern
cookies_matchPattern :: Lens' Cookies CookieMatchPattern
cookies_matchPattern = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Cookies' {CookieMatchPattern
matchPattern :: CookieMatchPattern
$sel:matchPattern:Cookies' :: Cookies -> CookieMatchPattern
matchPattern} -> CookieMatchPattern
matchPattern) (\s :: Cookies
s@Cookies' {} CookieMatchPattern
a -> Cookies
s {$sel:matchPattern:Cookies' :: CookieMatchPattern
matchPattern = CookieMatchPattern
a} :: Cookies)
cookies_matchScope :: Lens.Lens' Cookies MapMatchScope
cookies_matchScope :: Lens' Cookies MapMatchScope
cookies_matchScope = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Cookies' {MapMatchScope
matchScope :: MapMatchScope
$sel:matchScope:Cookies' :: Cookies -> MapMatchScope
matchScope} -> MapMatchScope
matchScope) (\s :: Cookies
s@Cookies' {} MapMatchScope
a -> Cookies
s {$sel:matchScope:Cookies' :: MapMatchScope
matchScope = MapMatchScope
a} :: Cookies)
cookies_oversizeHandling :: Lens.Lens' Cookies OversizeHandling
cookies_oversizeHandling :: Lens' Cookies OversizeHandling
cookies_oversizeHandling = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Cookies' {OversizeHandling
oversizeHandling :: OversizeHandling
$sel:oversizeHandling:Cookies' :: Cookies -> OversizeHandling
oversizeHandling} -> OversizeHandling
oversizeHandling) (\s :: Cookies
s@Cookies' {} OversizeHandling
a -> Cookies
s {$sel:oversizeHandling:Cookies' :: OversizeHandling
oversizeHandling = OversizeHandling
a} :: Cookies)
instance Data.FromJSON Cookies where
parseJSON :: Value -> Parser Cookies
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"Cookies"
( \Object
x ->
CookieMatchPattern -> MapMatchScope -> OversizeHandling -> Cookies
Cookies'
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
"MatchPattern")
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
"MatchScope")
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
"OversizeHandling")
)
instance Prelude.Hashable Cookies where
hashWithSalt :: Int -> Cookies -> Int
hashWithSalt Int
_salt Cookies' {CookieMatchPattern
MapMatchScope
OversizeHandling
oversizeHandling :: OversizeHandling
matchScope :: MapMatchScope
matchPattern :: CookieMatchPattern
$sel:oversizeHandling:Cookies' :: Cookies -> OversizeHandling
$sel:matchScope:Cookies' :: Cookies -> MapMatchScope
$sel:matchPattern:Cookies' :: Cookies -> CookieMatchPattern
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` CookieMatchPattern
matchPattern
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` MapMatchScope
matchScope
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` OversizeHandling
oversizeHandling
instance Prelude.NFData Cookies where
rnf :: Cookies -> ()
rnf Cookies' {CookieMatchPattern
MapMatchScope
OversizeHandling
oversizeHandling :: OversizeHandling
matchScope :: MapMatchScope
matchPattern :: CookieMatchPattern
$sel:oversizeHandling:Cookies' :: Cookies -> OversizeHandling
$sel:matchScope:Cookies' :: Cookies -> MapMatchScope
$sel:matchPattern:Cookies' :: Cookies -> CookieMatchPattern
..} =
forall a. NFData a => a -> ()
Prelude.rnf CookieMatchPattern
matchPattern
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf MapMatchScope
matchScope
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf OversizeHandling
oversizeHandling
instance Data.ToJSON Cookies where
toJSON :: Cookies -> Value
toJSON Cookies' {CookieMatchPattern
MapMatchScope
OversizeHandling
oversizeHandling :: OversizeHandling
matchScope :: MapMatchScope
matchPattern :: CookieMatchPattern
$sel:oversizeHandling:Cookies' :: Cookies -> OversizeHandling
$sel:matchScope:Cookies' :: Cookies -> MapMatchScope
$sel:matchPattern:Cookies' :: Cookies -> CookieMatchPattern
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"MatchPattern" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= CookieMatchPattern
matchPattern),
forall a. a -> Maybe a
Prelude.Just (Key
"MatchScope" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= MapMatchScope
matchScope),
forall a. a -> Maybe a
Prelude.Just
(Key
"OversizeHandling" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= OversizeHandling
oversizeHandling)
]
)