{-# 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.UpdateXssMatchSet
(
UpdateXssMatchSet (..),
newUpdateXssMatchSet,
updateXssMatchSet_xssMatchSetId,
updateXssMatchSet_changeToken,
updateXssMatchSet_updates,
UpdateXssMatchSetResponse (..),
newUpdateXssMatchSetResponse,
updateXssMatchSetResponse_changeToken,
updateXssMatchSetResponse_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 UpdateXssMatchSet = UpdateXssMatchSet'
{
UpdateXssMatchSet -> Text
xssMatchSetId :: Prelude.Text,
UpdateXssMatchSet -> Text
changeToken :: Prelude.Text,
UpdateXssMatchSet -> NonEmpty XssMatchSetUpdate
updates :: Prelude.NonEmpty XssMatchSetUpdate
}
deriving (UpdateXssMatchSet -> UpdateXssMatchSet -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateXssMatchSet -> UpdateXssMatchSet -> Bool
$c/= :: UpdateXssMatchSet -> UpdateXssMatchSet -> Bool
== :: UpdateXssMatchSet -> UpdateXssMatchSet -> Bool
$c== :: UpdateXssMatchSet -> UpdateXssMatchSet -> Bool
Prelude.Eq, ReadPrec [UpdateXssMatchSet]
ReadPrec UpdateXssMatchSet
Int -> ReadS UpdateXssMatchSet
ReadS [UpdateXssMatchSet]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateXssMatchSet]
$creadListPrec :: ReadPrec [UpdateXssMatchSet]
readPrec :: ReadPrec UpdateXssMatchSet
$creadPrec :: ReadPrec UpdateXssMatchSet
readList :: ReadS [UpdateXssMatchSet]
$creadList :: ReadS [UpdateXssMatchSet]
readsPrec :: Int -> ReadS UpdateXssMatchSet
$creadsPrec :: Int -> ReadS UpdateXssMatchSet
Prelude.Read, Int -> UpdateXssMatchSet -> ShowS
[UpdateXssMatchSet] -> ShowS
UpdateXssMatchSet -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateXssMatchSet] -> ShowS
$cshowList :: [UpdateXssMatchSet] -> ShowS
show :: UpdateXssMatchSet -> String
$cshow :: UpdateXssMatchSet -> String
showsPrec :: Int -> UpdateXssMatchSet -> ShowS
$cshowsPrec :: Int -> UpdateXssMatchSet -> ShowS
Prelude.Show, forall x. Rep UpdateXssMatchSet x -> UpdateXssMatchSet
forall x. UpdateXssMatchSet -> Rep UpdateXssMatchSet x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateXssMatchSet x -> UpdateXssMatchSet
$cfrom :: forall x. UpdateXssMatchSet -> Rep UpdateXssMatchSet x
Prelude.Generic)
newUpdateXssMatchSet ::
Prelude.Text ->
Prelude.Text ->
Prelude.NonEmpty XssMatchSetUpdate ->
UpdateXssMatchSet
newUpdateXssMatchSet :: Text -> Text -> NonEmpty XssMatchSetUpdate -> UpdateXssMatchSet
newUpdateXssMatchSet
Text
pXssMatchSetId_
Text
pChangeToken_
NonEmpty XssMatchSetUpdate
pUpdates_ =
UpdateXssMatchSet'
{ $sel:xssMatchSetId:UpdateXssMatchSet' :: Text
xssMatchSetId = Text
pXssMatchSetId_,
$sel:changeToken:UpdateXssMatchSet' :: Text
changeToken = Text
pChangeToken_,
$sel:updates:UpdateXssMatchSet' :: NonEmpty XssMatchSetUpdate
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 XssMatchSetUpdate
pUpdates_
}
updateXssMatchSet_xssMatchSetId :: Lens.Lens' UpdateXssMatchSet Prelude.Text
updateXssMatchSet_xssMatchSetId :: Lens' UpdateXssMatchSet Text
updateXssMatchSet_xssMatchSetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateXssMatchSet' {Text
xssMatchSetId :: Text
$sel:xssMatchSetId:UpdateXssMatchSet' :: UpdateXssMatchSet -> Text
xssMatchSetId} -> Text
xssMatchSetId) (\s :: UpdateXssMatchSet
s@UpdateXssMatchSet' {} Text
a -> UpdateXssMatchSet
s {$sel:xssMatchSetId:UpdateXssMatchSet' :: Text
xssMatchSetId = Text
a} :: UpdateXssMatchSet)
updateXssMatchSet_changeToken :: Lens.Lens' UpdateXssMatchSet Prelude.Text
updateXssMatchSet_changeToken :: Lens' UpdateXssMatchSet Text
updateXssMatchSet_changeToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateXssMatchSet' {Text
changeToken :: Text
$sel:changeToken:UpdateXssMatchSet' :: UpdateXssMatchSet -> Text
changeToken} -> Text
changeToken) (\s :: UpdateXssMatchSet
s@UpdateXssMatchSet' {} Text
a -> UpdateXssMatchSet
s {$sel:changeToken:UpdateXssMatchSet' :: Text
changeToken = Text
a} :: UpdateXssMatchSet)
updateXssMatchSet_updates :: Lens.Lens' UpdateXssMatchSet (Prelude.NonEmpty XssMatchSetUpdate)
updateXssMatchSet_updates :: Lens' UpdateXssMatchSet (NonEmpty XssMatchSetUpdate)
updateXssMatchSet_updates = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateXssMatchSet' {NonEmpty XssMatchSetUpdate
updates :: NonEmpty XssMatchSetUpdate
$sel:updates:UpdateXssMatchSet' :: UpdateXssMatchSet -> NonEmpty XssMatchSetUpdate
updates} -> NonEmpty XssMatchSetUpdate
updates) (\s :: UpdateXssMatchSet
s@UpdateXssMatchSet' {} NonEmpty XssMatchSetUpdate
a -> UpdateXssMatchSet
s {$sel:updates:UpdateXssMatchSet' :: NonEmpty XssMatchSetUpdate
updates = NonEmpty XssMatchSetUpdate
a} :: UpdateXssMatchSet) 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
instance Core.AWSRequest UpdateXssMatchSet where
type
AWSResponse UpdateXssMatchSet =
UpdateXssMatchSetResponse
request :: (Service -> Service)
-> UpdateXssMatchSet -> Request UpdateXssMatchSet
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 UpdateXssMatchSet
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateXssMatchSet)))
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 -> UpdateXssMatchSetResponse
UpdateXssMatchSetResponse'
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 UpdateXssMatchSet where
hashWithSalt :: Int -> UpdateXssMatchSet -> Int
hashWithSalt Int
_salt UpdateXssMatchSet' {NonEmpty XssMatchSetUpdate
Text
updates :: NonEmpty XssMatchSetUpdate
changeToken :: Text
xssMatchSetId :: Text
$sel:updates:UpdateXssMatchSet' :: UpdateXssMatchSet -> NonEmpty XssMatchSetUpdate
$sel:changeToken:UpdateXssMatchSet' :: UpdateXssMatchSet -> Text
$sel:xssMatchSetId:UpdateXssMatchSet' :: UpdateXssMatchSet -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
xssMatchSetId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
changeToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty XssMatchSetUpdate
updates
instance Prelude.NFData UpdateXssMatchSet where
rnf :: UpdateXssMatchSet -> ()
rnf UpdateXssMatchSet' {NonEmpty XssMatchSetUpdate
Text
updates :: NonEmpty XssMatchSetUpdate
changeToken :: Text
xssMatchSetId :: Text
$sel:updates:UpdateXssMatchSet' :: UpdateXssMatchSet -> NonEmpty XssMatchSetUpdate
$sel:changeToken:UpdateXssMatchSet' :: UpdateXssMatchSet -> Text
$sel:xssMatchSetId:UpdateXssMatchSet' :: UpdateXssMatchSet -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
xssMatchSetId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
changeToken
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf NonEmpty XssMatchSetUpdate
updates
instance Data.ToHeaders UpdateXssMatchSet where
toHeaders :: UpdateXssMatchSet -> 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.UpdateXssMatchSet" ::
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 UpdateXssMatchSet where
toJSON :: UpdateXssMatchSet -> Value
toJSON UpdateXssMatchSet' {NonEmpty XssMatchSetUpdate
Text
updates :: NonEmpty XssMatchSetUpdate
changeToken :: Text
xssMatchSetId :: Text
$sel:updates:UpdateXssMatchSet' :: UpdateXssMatchSet -> NonEmpty XssMatchSetUpdate
$sel:changeToken:UpdateXssMatchSet' :: UpdateXssMatchSet -> Text
$sel:xssMatchSetId:UpdateXssMatchSet' :: UpdateXssMatchSet -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"XssMatchSetId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
xssMatchSetId),
forall a. a -> Maybe a
Prelude.Just (Key
"ChangeToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
changeToken),
forall a. a -> Maybe a
Prelude.Just (Key
"Updates" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty XssMatchSetUpdate
updates)
]
)
instance Data.ToPath UpdateXssMatchSet where
toPath :: UpdateXssMatchSet -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery UpdateXssMatchSet where
toQuery :: UpdateXssMatchSet -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateXssMatchSetResponse = UpdateXssMatchSetResponse'
{
UpdateXssMatchSetResponse -> Maybe Text
changeToken :: Prelude.Maybe Prelude.Text,
UpdateXssMatchSetResponse -> Int
httpStatus :: Prelude.Int
}
deriving (UpdateXssMatchSetResponse -> UpdateXssMatchSetResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateXssMatchSetResponse -> UpdateXssMatchSetResponse -> Bool
$c/= :: UpdateXssMatchSetResponse -> UpdateXssMatchSetResponse -> Bool
== :: UpdateXssMatchSetResponse -> UpdateXssMatchSetResponse -> Bool
$c== :: UpdateXssMatchSetResponse -> UpdateXssMatchSetResponse -> Bool
Prelude.Eq, ReadPrec [UpdateXssMatchSetResponse]
ReadPrec UpdateXssMatchSetResponse
Int -> ReadS UpdateXssMatchSetResponse
ReadS [UpdateXssMatchSetResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateXssMatchSetResponse]
$creadListPrec :: ReadPrec [UpdateXssMatchSetResponse]
readPrec :: ReadPrec UpdateXssMatchSetResponse
$creadPrec :: ReadPrec UpdateXssMatchSetResponse
readList :: ReadS [UpdateXssMatchSetResponse]
$creadList :: ReadS [UpdateXssMatchSetResponse]
readsPrec :: Int -> ReadS UpdateXssMatchSetResponse
$creadsPrec :: Int -> ReadS UpdateXssMatchSetResponse
Prelude.Read, Int -> UpdateXssMatchSetResponse -> ShowS
[UpdateXssMatchSetResponse] -> ShowS
UpdateXssMatchSetResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateXssMatchSetResponse] -> ShowS
$cshowList :: [UpdateXssMatchSetResponse] -> ShowS
show :: UpdateXssMatchSetResponse -> String
$cshow :: UpdateXssMatchSetResponse -> String
showsPrec :: Int -> UpdateXssMatchSetResponse -> ShowS
$cshowsPrec :: Int -> UpdateXssMatchSetResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateXssMatchSetResponse x -> UpdateXssMatchSetResponse
forall x.
UpdateXssMatchSetResponse -> Rep UpdateXssMatchSetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateXssMatchSetResponse x -> UpdateXssMatchSetResponse
$cfrom :: forall x.
UpdateXssMatchSetResponse -> Rep UpdateXssMatchSetResponse x
Prelude.Generic)
newUpdateXssMatchSetResponse ::
Prelude.Int ->
UpdateXssMatchSetResponse
newUpdateXssMatchSetResponse :: Int -> UpdateXssMatchSetResponse
newUpdateXssMatchSetResponse Int
pHttpStatus_ =
UpdateXssMatchSetResponse'
{ $sel:changeToken:UpdateXssMatchSetResponse' :: Maybe Text
changeToken =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:UpdateXssMatchSetResponse' :: Int
httpStatus = Int
pHttpStatus_
}
updateXssMatchSetResponse_changeToken :: Lens.Lens' UpdateXssMatchSetResponse (Prelude.Maybe Prelude.Text)
updateXssMatchSetResponse_changeToken :: Lens' UpdateXssMatchSetResponse (Maybe Text)
updateXssMatchSetResponse_changeToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateXssMatchSetResponse' {Maybe Text
changeToken :: Maybe Text
$sel:changeToken:UpdateXssMatchSetResponse' :: UpdateXssMatchSetResponse -> Maybe Text
changeToken} -> Maybe Text
changeToken) (\s :: UpdateXssMatchSetResponse
s@UpdateXssMatchSetResponse' {} Maybe Text
a -> UpdateXssMatchSetResponse
s {$sel:changeToken:UpdateXssMatchSetResponse' :: Maybe Text
changeToken = Maybe Text
a} :: UpdateXssMatchSetResponse)
updateXssMatchSetResponse_httpStatus :: Lens.Lens' UpdateXssMatchSetResponse Prelude.Int
updateXssMatchSetResponse_httpStatus :: Lens' UpdateXssMatchSetResponse Int
updateXssMatchSetResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateXssMatchSetResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateXssMatchSetResponse' :: UpdateXssMatchSetResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateXssMatchSetResponse
s@UpdateXssMatchSetResponse' {} Int
a -> UpdateXssMatchSetResponse
s {$sel:httpStatus:UpdateXssMatchSetResponse' :: Int
httpStatus = Int
a} :: UpdateXssMatchSetResponse)
instance Prelude.NFData UpdateXssMatchSetResponse where
rnf :: UpdateXssMatchSetResponse -> ()
rnf UpdateXssMatchSetResponse' {Int
Maybe Text
httpStatus :: Int
changeToken :: Maybe Text
$sel:httpStatus:UpdateXssMatchSetResponse' :: UpdateXssMatchSetResponse -> Int
$sel:changeToken:UpdateXssMatchSetResponse' :: UpdateXssMatchSetResponse -> 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