{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.WAF.CreateRegexMatchSet
(
CreateRegexMatchSet (..),
newCreateRegexMatchSet,
createRegexMatchSet_name,
createRegexMatchSet_changeToken,
CreateRegexMatchSetResponse (..),
newCreateRegexMatchSetResponse,
createRegexMatchSetResponse_changeToken,
createRegexMatchSetResponse_regexMatchSet,
createRegexMatchSetResponse_httpStatus,
)
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
import Amazonka.WAF.Types
data CreateRegexMatchSet = CreateRegexMatchSet'
{
CreateRegexMatchSet -> Text
name :: Prelude.Text,
CreateRegexMatchSet -> Text
changeToken :: Prelude.Text
}
deriving (CreateRegexMatchSet -> CreateRegexMatchSet -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateRegexMatchSet -> CreateRegexMatchSet -> Bool
$c/= :: CreateRegexMatchSet -> CreateRegexMatchSet -> Bool
== :: CreateRegexMatchSet -> CreateRegexMatchSet -> Bool
$c== :: CreateRegexMatchSet -> CreateRegexMatchSet -> Bool
Prelude.Eq, ReadPrec [CreateRegexMatchSet]
ReadPrec CreateRegexMatchSet
Int -> ReadS CreateRegexMatchSet
ReadS [CreateRegexMatchSet]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateRegexMatchSet]
$creadListPrec :: ReadPrec [CreateRegexMatchSet]
readPrec :: ReadPrec CreateRegexMatchSet
$creadPrec :: ReadPrec CreateRegexMatchSet
readList :: ReadS [CreateRegexMatchSet]
$creadList :: ReadS [CreateRegexMatchSet]
readsPrec :: Int -> ReadS CreateRegexMatchSet
$creadsPrec :: Int -> ReadS CreateRegexMatchSet
Prelude.Read, Int -> CreateRegexMatchSet -> ShowS
[CreateRegexMatchSet] -> ShowS
CreateRegexMatchSet -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateRegexMatchSet] -> ShowS
$cshowList :: [CreateRegexMatchSet] -> ShowS
show :: CreateRegexMatchSet -> String
$cshow :: CreateRegexMatchSet -> String
showsPrec :: Int -> CreateRegexMatchSet -> ShowS
$cshowsPrec :: Int -> CreateRegexMatchSet -> ShowS
Prelude.Show, forall x. Rep CreateRegexMatchSet x -> CreateRegexMatchSet
forall x. CreateRegexMatchSet -> Rep CreateRegexMatchSet x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateRegexMatchSet x -> CreateRegexMatchSet
$cfrom :: forall x. CreateRegexMatchSet -> Rep CreateRegexMatchSet x
Prelude.Generic)
newCreateRegexMatchSet ::
Prelude.Text ->
Prelude.Text ->
CreateRegexMatchSet
newCreateRegexMatchSet :: Text -> Text -> CreateRegexMatchSet
newCreateRegexMatchSet Text
pName_ Text
pChangeToken_ =
CreateRegexMatchSet'
{ $sel:name:CreateRegexMatchSet' :: Text
name = Text
pName_,
$sel:changeToken:CreateRegexMatchSet' :: Text
changeToken = Text
pChangeToken_
}
createRegexMatchSet_name :: Lens.Lens' CreateRegexMatchSet Prelude.Text
createRegexMatchSet_name :: Lens' CreateRegexMatchSet Text
createRegexMatchSet_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRegexMatchSet' {Text
name :: Text
$sel:name:CreateRegexMatchSet' :: CreateRegexMatchSet -> Text
name} -> Text
name) (\s :: CreateRegexMatchSet
s@CreateRegexMatchSet' {} Text
a -> CreateRegexMatchSet
s {$sel:name:CreateRegexMatchSet' :: Text
name = Text
a} :: CreateRegexMatchSet)
createRegexMatchSet_changeToken :: Lens.Lens' CreateRegexMatchSet Prelude.Text
createRegexMatchSet_changeToken :: Lens' CreateRegexMatchSet Text
createRegexMatchSet_changeToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRegexMatchSet' {Text
changeToken :: Text
$sel:changeToken:CreateRegexMatchSet' :: CreateRegexMatchSet -> Text
changeToken} -> Text
changeToken) (\s :: CreateRegexMatchSet
s@CreateRegexMatchSet' {} Text
a -> CreateRegexMatchSet
s {$sel:changeToken:CreateRegexMatchSet' :: Text
changeToken = Text
a} :: CreateRegexMatchSet)
instance Core.AWSRequest CreateRegexMatchSet where
type
AWSResponse CreateRegexMatchSet =
CreateRegexMatchSetResponse
request :: (Service -> Service)
-> CreateRegexMatchSet -> Request CreateRegexMatchSet
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy CreateRegexMatchSet
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateRegexMatchSet)))
response =
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
( \Int
s ResponseHeaders
h Object
x ->
Maybe Text
-> Maybe RegexMatchSet -> Int -> CreateRegexMatchSetResponse
CreateRegexMatchSetResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ChangeToken")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"RegexMatchSet")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable CreateRegexMatchSet where
hashWithSalt :: Int -> CreateRegexMatchSet -> Int
hashWithSalt Int
_salt CreateRegexMatchSet' {Text
changeToken :: Text
name :: Text
$sel:changeToken:CreateRegexMatchSet' :: CreateRegexMatchSet -> Text
$sel:name:CreateRegexMatchSet' :: CreateRegexMatchSet -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
changeToken
instance Prelude.NFData CreateRegexMatchSet where
rnf :: CreateRegexMatchSet -> ()
rnf CreateRegexMatchSet' {Text
changeToken :: Text
name :: Text
$sel:changeToken:CreateRegexMatchSet' :: CreateRegexMatchSet -> Text
$sel:name:CreateRegexMatchSet' :: CreateRegexMatchSet -> 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 Text
changeToken
instance Data.ToHeaders CreateRegexMatchSet where
toHeaders :: CreateRegexMatchSet -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"X-Amz-Target"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AWSWAF_20150824.CreateRegexMatchSet" ::
Prelude.ByteString
),
HeaderName
"Content-Type"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
Prelude.ByteString
)
]
)
instance Data.ToJSON CreateRegexMatchSet where
toJSON :: CreateRegexMatchSet -> Value
toJSON CreateRegexMatchSet' {Text
changeToken :: Text
name :: Text
$sel:changeToken:CreateRegexMatchSet' :: CreateRegexMatchSet -> Text
$sel:name:CreateRegexMatchSet' :: CreateRegexMatchSet -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"Name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
name),
forall a. a -> Maybe a
Prelude.Just (Key
"ChangeToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
changeToken)
]
)
instance Data.ToPath CreateRegexMatchSet where
toPath :: CreateRegexMatchSet -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery CreateRegexMatchSet where
toQuery :: CreateRegexMatchSet -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data CreateRegexMatchSetResponse = CreateRegexMatchSetResponse'
{
CreateRegexMatchSetResponse -> Maybe Text
changeToken :: Prelude.Maybe Prelude.Text,
CreateRegexMatchSetResponse -> Maybe RegexMatchSet
regexMatchSet :: Prelude.Maybe RegexMatchSet,
CreateRegexMatchSetResponse -> Int
httpStatus :: Prelude.Int
}
deriving (CreateRegexMatchSetResponse -> CreateRegexMatchSetResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateRegexMatchSetResponse -> CreateRegexMatchSetResponse -> Bool
$c/= :: CreateRegexMatchSetResponse -> CreateRegexMatchSetResponse -> Bool
== :: CreateRegexMatchSetResponse -> CreateRegexMatchSetResponse -> Bool
$c== :: CreateRegexMatchSetResponse -> CreateRegexMatchSetResponse -> Bool
Prelude.Eq, ReadPrec [CreateRegexMatchSetResponse]
ReadPrec CreateRegexMatchSetResponse
Int -> ReadS CreateRegexMatchSetResponse
ReadS [CreateRegexMatchSetResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateRegexMatchSetResponse]
$creadListPrec :: ReadPrec [CreateRegexMatchSetResponse]
readPrec :: ReadPrec CreateRegexMatchSetResponse
$creadPrec :: ReadPrec CreateRegexMatchSetResponse
readList :: ReadS [CreateRegexMatchSetResponse]
$creadList :: ReadS [CreateRegexMatchSetResponse]
readsPrec :: Int -> ReadS CreateRegexMatchSetResponse
$creadsPrec :: Int -> ReadS CreateRegexMatchSetResponse
Prelude.Read, Int -> CreateRegexMatchSetResponse -> ShowS
[CreateRegexMatchSetResponse] -> ShowS
CreateRegexMatchSetResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateRegexMatchSetResponse] -> ShowS
$cshowList :: [CreateRegexMatchSetResponse] -> ShowS
show :: CreateRegexMatchSetResponse -> String
$cshow :: CreateRegexMatchSetResponse -> String
showsPrec :: Int -> CreateRegexMatchSetResponse -> ShowS
$cshowsPrec :: Int -> CreateRegexMatchSetResponse -> ShowS
Prelude.Show, forall x.
Rep CreateRegexMatchSetResponse x -> CreateRegexMatchSetResponse
forall x.
CreateRegexMatchSetResponse -> Rep CreateRegexMatchSetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateRegexMatchSetResponse x -> CreateRegexMatchSetResponse
$cfrom :: forall x.
CreateRegexMatchSetResponse -> Rep CreateRegexMatchSetResponse x
Prelude.Generic)
newCreateRegexMatchSetResponse ::
Prelude.Int ->
CreateRegexMatchSetResponse
newCreateRegexMatchSetResponse :: Int -> CreateRegexMatchSetResponse
newCreateRegexMatchSetResponse Int
pHttpStatus_ =
CreateRegexMatchSetResponse'
{ $sel:changeToken:CreateRegexMatchSetResponse' :: Maybe Text
changeToken =
forall a. Maybe a
Prelude.Nothing,
$sel:regexMatchSet:CreateRegexMatchSetResponse' :: Maybe RegexMatchSet
regexMatchSet = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:CreateRegexMatchSetResponse' :: Int
httpStatus = Int
pHttpStatus_
}
createRegexMatchSetResponse_changeToken :: Lens.Lens' CreateRegexMatchSetResponse (Prelude.Maybe Prelude.Text)
createRegexMatchSetResponse_changeToken :: Lens' CreateRegexMatchSetResponse (Maybe Text)
createRegexMatchSetResponse_changeToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRegexMatchSetResponse' {Maybe Text
changeToken :: Maybe Text
$sel:changeToken:CreateRegexMatchSetResponse' :: CreateRegexMatchSetResponse -> Maybe Text
changeToken} -> Maybe Text
changeToken) (\s :: CreateRegexMatchSetResponse
s@CreateRegexMatchSetResponse' {} Maybe Text
a -> CreateRegexMatchSetResponse
s {$sel:changeToken:CreateRegexMatchSetResponse' :: Maybe Text
changeToken = Maybe Text
a} :: CreateRegexMatchSetResponse)
createRegexMatchSetResponse_regexMatchSet :: Lens.Lens' CreateRegexMatchSetResponse (Prelude.Maybe RegexMatchSet)
createRegexMatchSetResponse_regexMatchSet :: Lens' CreateRegexMatchSetResponse (Maybe RegexMatchSet)
createRegexMatchSetResponse_regexMatchSet = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRegexMatchSetResponse' {Maybe RegexMatchSet
regexMatchSet :: Maybe RegexMatchSet
$sel:regexMatchSet:CreateRegexMatchSetResponse' :: CreateRegexMatchSetResponse -> Maybe RegexMatchSet
regexMatchSet} -> Maybe RegexMatchSet
regexMatchSet) (\s :: CreateRegexMatchSetResponse
s@CreateRegexMatchSetResponse' {} Maybe RegexMatchSet
a -> CreateRegexMatchSetResponse
s {$sel:regexMatchSet:CreateRegexMatchSetResponse' :: Maybe RegexMatchSet
regexMatchSet = Maybe RegexMatchSet
a} :: CreateRegexMatchSetResponse)
createRegexMatchSetResponse_httpStatus :: Lens.Lens' CreateRegexMatchSetResponse Prelude.Int
createRegexMatchSetResponse_httpStatus :: Lens' CreateRegexMatchSetResponse Int
createRegexMatchSetResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRegexMatchSetResponse' {Int
httpStatus :: Int
$sel:httpStatus:CreateRegexMatchSetResponse' :: CreateRegexMatchSetResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: CreateRegexMatchSetResponse
s@CreateRegexMatchSetResponse' {} Int
a -> CreateRegexMatchSetResponse
s {$sel:httpStatus:CreateRegexMatchSetResponse' :: Int
httpStatus = Int
a} :: CreateRegexMatchSetResponse)
instance Prelude.NFData CreateRegexMatchSetResponse where
rnf :: CreateRegexMatchSetResponse -> ()
rnf CreateRegexMatchSetResponse' {Int
Maybe Text
Maybe RegexMatchSet
httpStatus :: Int
regexMatchSet :: Maybe RegexMatchSet
changeToken :: Maybe Text
$sel:httpStatus:CreateRegexMatchSetResponse' :: CreateRegexMatchSetResponse -> Int
$sel:regexMatchSet:CreateRegexMatchSetResponse' :: CreateRegexMatchSetResponse -> Maybe RegexMatchSet
$sel:changeToken:CreateRegexMatchSetResponse' :: CreateRegexMatchSetResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
changeToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RegexMatchSet
regexMatchSet
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus