{-# 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.UpdateRegexMatchSet
(
UpdateRegexMatchSet (..),
newUpdateRegexMatchSet,
updateRegexMatchSet_regexMatchSetId,
updateRegexMatchSet_updates,
updateRegexMatchSet_changeToken,
UpdateRegexMatchSetResponse (..),
newUpdateRegexMatchSetResponse,
updateRegexMatchSetResponse_changeToken,
updateRegexMatchSetResponse_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 UpdateRegexMatchSet = UpdateRegexMatchSet'
{
UpdateRegexMatchSet -> Text
regexMatchSetId :: Prelude.Text,
UpdateRegexMatchSet -> NonEmpty RegexMatchSetUpdate
updates :: Prelude.NonEmpty RegexMatchSetUpdate,
UpdateRegexMatchSet -> Text
changeToken :: Prelude.Text
}
deriving (UpdateRegexMatchSet -> UpdateRegexMatchSet -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateRegexMatchSet -> UpdateRegexMatchSet -> Bool
$c/= :: UpdateRegexMatchSet -> UpdateRegexMatchSet -> Bool
== :: UpdateRegexMatchSet -> UpdateRegexMatchSet -> Bool
$c== :: UpdateRegexMatchSet -> UpdateRegexMatchSet -> Bool
Prelude.Eq, ReadPrec [UpdateRegexMatchSet]
ReadPrec UpdateRegexMatchSet
Int -> ReadS UpdateRegexMatchSet
ReadS [UpdateRegexMatchSet]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateRegexMatchSet]
$creadListPrec :: ReadPrec [UpdateRegexMatchSet]
readPrec :: ReadPrec UpdateRegexMatchSet
$creadPrec :: ReadPrec UpdateRegexMatchSet
readList :: ReadS [UpdateRegexMatchSet]
$creadList :: ReadS [UpdateRegexMatchSet]
readsPrec :: Int -> ReadS UpdateRegexMatchSet
$creadsPrec :: Int -> ReadS UpdateRegexMatchSet
Prelude.Read, Int -> UpdateRegexMatchSet -> ShowS
[UpdateRegexMatchSet] -> ShowS
UpdateRegexMatchSet -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateRegexMatchSet] -> ShowS
$cshowList :: [UpdateRegexMatchSet] -> ShowS
show :: UpdateRegexMatchSet -> String
$cshow :: UpdateRegexMatchSet -> String
showsPrec :: Int -> UpdateRegexMatchSet -> ShowS
$cshowsPrec :: Int -> UpdateRegexMatchSet -> ShowS
Prelude.Show, forall x. Rep UpdateRegexMatchSet x -> UpdateRegexMatchSet
forall x. UpdateRegexMatchSet -> Rep UpdateRegexMatchSet x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateRegexMatchSet x -> UpdateRegexMatchSet
$cfrom :: forall x. UpdateRegexMatchSet -> Rep UpdateRegexMatchSet x
Prelude.Generic)
newUpdateRegexMatchSet ::
Prelude.Text ->
Prelude.NonEmpty RegexMatchSetUpdate ->
Prelude.Text ->
UpdateRegexMatchSet
newUpdateRegexMatchSet :: Text -> NonEmpty RegexMatchSetUpdate -> Text -> UpdateRegexMatchSet
newUpdateRegexMatchSet
Text
pRegexMatchSetId_
NonEmpty RegexMatchSetUpdate
pUpdates_
Text
pChangeToken_ =
UpdateRegexMatchSet'
{ $sel:regexMatchSetId:UpdateRegexMatchSet' :: Text
regexMatchSetId =
Text
pRegexMatchSetId_,
$sel:updates:UpdateRegexMatchSet' :: NonEmpty RegexMatchSetUpdate
updates = forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty RegexMatchSetUpdate
pUpdates_,
$sel:changeToken:UpdateRegexMatchSet' :: Text
changeToken = Text
pChangeToken_
}
updateRegexMatchSet_regexMatchSetId :: Lens.Lens' UpdateRegexMatchSet Prelude.Text
updateRegexMatchSet_regexMatchSetId :: Lens' UpdateRegexMatchSet Text
updateRegexMatchSet_regexMatchSetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRegexMatchSet' {Text
regexMatchSetId :: Text
$sel:regexMatchSetId:UpdateRegexMatchSet' :: UpdateRegexMatchSet -> Text
regexMatchSetId} -> Text
regexMatchSetId) (\s :: UpdateRegexMatchSet
s@UpdateRegexMatchSet' {} Text
a -> UpdateRegexMatchSet
s {$sel:regexMatchSetId:UpdateRegexMatchSet' :: Text
regexMatchSetId = Text
a} :: UpdateRegexMatchSet)
updateRegexMatchSet_updates :: Lens.Lens' UpdateRegexMatchSet (Prelude.NonEmpty RegexMatchSetUpdate)
updateRegexMatchSet_updates :: Lens' UpdateRegexMatchSet (NonEmpty RegexMatchSetUpdate)
updateRegexMatchSet_updates = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRegexMatchSet' {NonEmpty RegexMatchSetUpdate
updates :: NonEmpty RegexMatchSetUpdate
$sel:updates:UpdateRegexMatchSet' :: UpdateRegexMatchSet -> NonEmpty RegexMatchSetUpdate
updates} -> NonEmpty RegexMatchSetUpdate
updates) (\s :: UpdateRegexMatchSet
s@UpdateRegexMatchSet' {} NonEmpty RegexMatchSetUpdate
a -> UpdateRegexMatchSet
s {$sel:updates:UpdateRegexMatchSet' :: NonEmpty RegexMatchSetUpdate
updates = NonEmpty RegexMatchSetUpdate
a} :: UpdateRegexMatchSet) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
updateRegexMatchSet_changeToken :: Lens.Lens' UpdateRegexMatchSet Prelude.Text
updateRegexMatchSet_changeToken :: Lens' UpdateRegexMatchSet Text
updateRegexMatchSet_changeToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRegexMatchSet' {Text
changeToken :: Text
$sel:changeToken:UpdateRegexMatchSet' :: UpdateRegexMatchSet -> Text
changeToken} -> Text
changeToken) (\s :: UpdateRegexMatchSet
s@UpdateRegexMatchSet' {} Text
a -> UpdateRegexMatchSet
s {$sel:changeToken:UpdateRegexMatchSet' :: Text
changeToken = Text
a} :: UpdateRegexMatchSet)
instance Core.AWSRequest UpdateRegexMatchSet where
type
AWSResponse UpdateRegexMatchSet =
UpdateRegexMatchSetResponse
request :: (Service -> Service)
-> UpdateRegexMatchSet -> Request UpdateRegexMatchSet
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 UpdateRegexMatchSet
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateRegexMatchSet)))
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 -> Int -> UpdateRegexMatchSetResponse
UpdateRegexMatchSetResponse'
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.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
)
instance Prelude.Hashable UpdateRegexMatchSet where
hashWithSalt :: Int -> UpdateRegexMatchSet -> Int
hashWithSalt Int
_salt UpdateRegexMatchSet' {NonEmpty RegexMatchSetUpdate
Text
changeToken :: Text
updates :: NonEmpty RegexMatchSetUpdate
regexMatchSetId :: Text
$sel:changeToken:UpdateRegexMatchSet' :: UpdateRegexMatchSet -> Text
$sel:updates:UpdateRegexMatchSet' :: UpdateRegexMatchSet -> NonEmpty RegexMatchSetUpdate
$sel:regexMatchSetId:UpdateRegexMatchSet' :: UpdateRegexMatchSet -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
regexMatchSetId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty RegexMatchSetUpdate
updates
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
changeToken
instance Prelude.NFData UpdateRegexMatchSet where
rnf :: UpdateRegexMatchSet -> ()
rnf UpdateRegexMatchSet' {NonEmpty RegexMatchSetUpdate
Text
changeToken :: Text
updates :: NonEmpty RegexMatchSetUpdate
regexMatchSetId :: Text
$sel:changeToken:UpdateRegexMatchSet' :: UpdateRegexMatchSet -> Text
$sel:updates:UpdateRegexMatchSet' :: UpdateRegexMatchSet -> NonEmpty RegexMatchSetUpdate
$sel:regexMatchSetId:UpdateRegexMatchSet' :: UpdateRegexMatchSet -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
regexMatchSetId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty RegexMatchSetUpdate
updates
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
changeToken
instance Data.ToHeaders UpdateRegexMatchSet where
toHeaders :: UpdateRegexMatchSet -> 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.UpdateRegexMatchSet" ::
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 UpdateRegexMatchSet where
toJSON :: UpdateRegexMatchSet -> Value
toJSON UpdateRegexMatchSet' {NonEmpty RegexMatchSetUpdate
Text
changeToken :: Text
updates :: NonEmpty RegexMatchSetUpdate
regexMatchSetId :: Text
$sel:changeToken:UpdateRegexMatchSet' :: UpdateRegexMatchSet -> Text
$sel:updates:UpdateRegexMatchSet' :: UpdateRegexMatchSet -> NonEmpty RegexMatchSetUpdate
$sel:regexMatchSetId:UpdateRegexMatchSet' :: UpdateRegexMatchSet -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"RegexMatchSetId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
regexMatchSetId),
forall a. a -> Maybe a
Prelude.Just (Key
"Updates" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty RegexMatchSetUpdate
updates),
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 UpdateRegexMatchSet where
toPath :: UpdateRegexMatchSet -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery UpdateRegexMatchSet where
toQuery :: UpdateRegexMatchSet -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateRegexMatchSetResponse = UpdateRegexMatchSetResponse'
{
UpdateRegexMatchSetResponse -> Maybe Text
changeToken :: Prelude.Maybe Prelude.Text,
UpdateRegexMatchSetResponse -> Int
httpStatus :: Prelude.Int
}
deriving (UpdateRegexMatchSetResponse -> UpdateRegexMatchSetResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateRegexMatchSetResponse -> UpdateRegexMatchSetResponse -> Bool
$c/= :: UpdateRegexMatchSetResponse -> UpdateRegexMatchSetResponse -> Bool
== :: UpdateRegexMatchSetResponse -> UpdateRegexMatchSetResponse -> Bool
$c== :: UpdateRegexMatchSetResponse -> UpdateRegexMatchSetResponse -> Bool
Prelude.Eq, ReadPrec [UpdateRegexMatchSetResponse]
ReadPrec UpdateRegexMatchSetResponse
Int -> ReadS UpdateRegexMatchSetResponse
ReadS [UpdateRegexMatchSetResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateRegexMatchSetResponse]
$creadListPrec :: ReadPrec [UpdateRegexMatchSetResponse]
readPrec :: ReadPrec UpdateRegexMatchSetResponse
$creadPrec :: ReadPrec UpdateRegexMatchSetResponse
readList :: ReadS [UpdateRegexMatchSetResponse]
$creadList :: ReadS [UpdateRegexMatchSetResponse]
readsPrec :: Int -> ReadS UpdateRegexMatchSetResponse
$creadsPrec :: Int -> ReadS UpdateRegexMatchSetResponse
Prelude.Read, Int -> UpdateRegexMatchSetResponse -> ShowS
[UpdateRegexMatchSetResponse] -> ShowS
UpdateRegexMatchSetResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateRegexMatchSetResponse] -> ShowS
$cshowList :: [UpdateRegexMatchSetResponse] -> ShowS
show :: UpdateRegexMatchSetResponse -> String
$cshow :: UpdateRegexMatchSetResponse -> String
showsPrec :: Int -> UpdateRegexMatchSetResponse -> ShowS
$cshowsPrec :: Int -> UpdateRegexMatchSetResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateRegexMatchSetResponse x -> UpdateRegexMatchSetResponse
forall x.
UpdateRegexMatchSetResponse -> Rep UpdateRegexMatchSetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateRegexMatchSetResponse x -> UpdateRegexMatchSetResponse
$cfrom :: forall x.
UpdateRegexMatchSetResponse -> Rep UpdateRegexMatchSetResponse x
Prelude.Generic)
newUpdateRegexMatchSetResponse ::
Prelude.Int ->
UpdateRegexMatchSetResponse
newUpdateRegexMatchSetResponse :: Int -> UpdateRegexMatchSetResponse
newUpdateRegexMatchSetResponse Int
pHttpStatus_ =
UpdateRegexMatchSetResponse'
{ $sel:changeToken:UpdateRegexMatchSetResponse' :: Maybe Text
changeToken =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:UpdateRegexMatchSetResponse' :: Int
httpStatus = Int
pHttpStatus_
}
updateRegexMatchSetResponse_changeToken :: Lens.Lens' UpdateRegexMatchSetResponse (Prelude.Maybe Prelude.Text)
updateRegexMatchSetResponse_changeToken :: Lens' UpdateRegexMatchSetResponse (Maybe Text)
updateRegexMatchSetResponse_changeToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRegexMatchSetResponse' {Maybe Text
changeToken :: Maybe Text
$sel:changeToken:UpdateRegexMatchSetResponse' :: UpdateRegexMatchSetResponse -> Maybe Text
changeToken} -> Maybe Text
changeToken) (\s :: UpdateRegexMatchSetResponse
s@UpdateRegexMatchSetResponse' {} Maybe Text
a -> UpdateRegexMatchSetResponse
s {$sel:changeToken:UpdateRegexMatchSetResponse' :: Maybe Text
changeToken = Maybe Text
a} :: UpdateRegexMatchSetResponse)
updateRegexMatchSetResponse_httpStatus :: Lens.Lens' UpdateRegexMatchSetResponse Prelude.Int
updateRegexMatchSetResponse_httpStatus :: Lens' UpdateRegexMatchSetResponse Int
updateRegexMatchSetResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateRegexMatchSetResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateRegexMatchSetResponse' :: UpdateRegexMatchSetResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateRegexMatchSetResponse
s@UpdateRegexMatchSetResponse' {} Int
a -> UpdateRegexMatchSetResponse
s {$sel:httpStatus:UpdateRegexMatchSetResponse' :: Int
httpStatus = Int
a} :: UpdateRegexMatchSetResponse)
instance Prelude.NFData UpdateRegexMatchSetResponse where
rnf :: UpdateRegexMatchSetResponse -> ()
rnf UpdateRegexMatchSetResponse' {Int
Maybe Text
httpStatus :: Int
changeToken :: Maybe Text
$sel:httpStatus:UpdateRegexMatchSetResponse' :: UpdateRegexMatchSetResponse -> Int
$sel:changeToken:UpdateRegexMatchSetResponse' :: UpdateRegexMatchSetResponse -> 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 Int
httpStatus