{-# 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.UpdateSizeConstraintSet
(
UpdateSizeConstraintSet (..),
newUpdateSizeConstraintSet,
updateSizeConstraintSet_sizeConstraintSetId,
updateSizeConstraintSet_changeToken,
updateSizeConstraintSet_updates,
UpdateSizeConstraintSetResponse (..),
newUpdateSizeConstraintSetResponse,
updateSizeConstraintSetResponse_changeToken,
updateSizeConstraintSetResponse_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 UpdateSizeConstraintSet = UpdateSizeConstraintSet'
{
UpdateSizeConstraintSet -> Text
sizeConstraintSetId :: Prelude.Text,
UpdateSizeConstraintSet -> Text
changeToken :: Prelude.Text,
UpdateSizeConstraintSet -> NonEmpty SizeConstraintSetUpdate
updates :: Prelude.NonEmpty SizeConstraintSetUpdate
}
deriving (UpdateSizeConstraintSet -> UpdateSizeConstraintSet -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateSizeConstraintSet -> UpdateSizeConstraintSet -> Bool
$c/= :: UpdateSizeConstraintSet -> UpdateSizeConstraintSet -> Bool
== :: UpdateSizeConstraintSet -> UpdateSizeConstraintSet -> Bool
$c== :: UpdateSizeConstraintSet -> UpdateSizeConstraintSet -> Bool
Prelude.Eq, ReadPrec [UpdateSizeConstraintSet]
ReadPrec UpdateSizeConstraintSet
Int -> ReadS UpdateSizeConstraintSet
ReadS [UpdateSizeConstraintSet]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateSizeConstraintSet]
$creadListPrec :: ReadPrec [UpdateSizeConstraintSet]
readPrec :: ReadPrec UpdateSizeConstraintSet
$creadPrec :: ReadPrec UpdateSizeConstraintSet
readList :: ReadS [UpdateSizeConstraintSet]
$creadList :: ReadS [UpdateSizeConstraintSet]
readsPrec :: Int -> ReadS UpdateSizeConstraintSet
$creadsPrec :: Int -> ReadS UpdateSizeConstraintSet
Prelude.Read, Int -> UpdateSizeConstraintSet -> ShowS
[UpdateSizeConstraintSet] -> ShowS
UpdateSizeConstraintSet -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateSizeConstraintSet] -> ShowS
$cshowList :: [UpdateSizeConstraintSet] -> ShowS
show :: UpdateSizeConstraintSet -> String
$cshow :: UpdateSizeConstraintSet -> String
showsPrec :: Int -> UpdateSizeConstraintSet -> ShowS
$cshowsPrec :: Int -> UpdateSizeConstraintSet -> ShowS
Prelude.Show, forall x. Rep UpdateSizeConstraintSet x -> UpdateSizeConstraintSet
forall x. UpdateSizeConstraintSet -> Rep UpdateSizeConstraintSet x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateSizeConstraintSet x -> UpdateSizeConstraintSet
$cfrom :: forall x. UpdateSizeConstraintSet -> Rep UpdateSizeConstraintSet x
Prelude.Generic)
newUpdateSizeConstraintSet ::
Prelude.Text ->
Prelude.Text ->
Prelude.NonEmpty SizeConstraintSetUpdate ->
UpdateSizeConstraintSet
newUpdateSizeConstraintSet :: Text
-> Text
-> NonEmpty SizeConstraintSetUpdate
-> UpdateSizeConstraintSet
newUpdateSizeConstraintSet
Text
pSizeConstraintSetId_
Text
pChangeToken_
NonEmpty SizeConstraintSetUpdate
pUpdates_ =
UpdateSizeConstraintSet'
{ $sel:sizeConstraintSetId:UpdateSizeConstraintSet' :: Text
sizeConstraintSetId =
Text
pSizeConstraintSetId_,
$sel:changeToken:UpdateSizeConstraintSet' :: Text
changeToken = Text
pChangeToken_,
$sel:updates:UpdateSizeConstraintSet' :: NonEmpty SizeConstraintSetUpdate
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 SizeConstraintSetUpdate
pUpdates_
}
updateSizeConstraintSet_sizeConstraintSetId :: Lens.Lens' UpdateSizeConstraintSet Prelude.Text
updateSizeConstraintSet_sizeConstraintSetId :: Lens' UpdateSizeConstraintSet Text
updateSizeConstraintSet_sizeConstraintSetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSizeConstraintSet' {Text
sizeConstraintSetId :: Text
$sel:sizeConstraintSetId:UpdateSizeConstraintSet' :: UpdateSizeConstraintSet -> Text
sizeConstraintSetId} -> Text
sizeConstraintSetId) (\s :: UpdateSizeConstraintSet
s@UpdateSizeConstraintSet' {} Text
a -> UpdateSizeConstraintSet
s {$sel:sizeConstraintSetId:UpdateSizeConstraintSet' :: Text
sizeConstraintSetId = Text
a} :: UpdateSizeConstraintSet)
updateSizeConstraintSet_changeToken :: Lens.Lens' UpdateSizeConstraintSet Prelude.Text
updateSizeConstraintSet_changeToken :: Lens' UpdateSizeConstraintSet Text
updateSizeConstraintSet_changeToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSizeConstraintSet' {Text
changeToken :: Text
$sel:changeToken:UpdateSizeConstraintSet' :: UpdateSizeConstraintSet -> Text
changeToken} -> Text
changeToken) (\s :: UpdateSizeConstraintSet
s@UpdateSizeConstraintSet' {} Text
a -> UpdateSizeConstraintSet
s {$sel:changeToken:UpdateSizeConstraintSet' :: Text
changeToken = Text
a} :: UpdateSizeConstraintSet)
updateSizeConstraintSet_updates :: Lens.Lens' UpdateSizeConstraintSet (Prelude.NonEmpty SizeConstraintSetUpdate)
updateSizeConstraintSet_updates :: Lens' UpdateSizeConstraintSet (NonEmpty SizeConstraintSetUpdate)
updateSizeConstraintSet_updates = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSizeConstraintSet' {NonEmpty SizeConstraintSetUpdate
updates :: NonEmpty SizeConstraintSetUpdate
$sel:updates:UpdateSizeConstraintSet' :: UpdateSizeConstraintSet -> NonEmpty SizeConstraintSetUpdate
updates} -> NonEmpty SizeConstraintSetUpdate
updates) (\s :: UpdateSizeConstraintSet
s@UpdateSizeConstraintSet' {} NonEmpty SizeConstraintSetUpdate
a -> UpdateSizeConstraintSet
s {$sel:updates:UpdateSizeConstraintSet' :: NonEmpty SizeConstraintSetUpdate
updates = NonEmpty SizeConstraintSetUpdate
a} :: UpdateSizeConstraintSet) 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 UpdateSizeConstraintSet where
type
AWSResponse UpdateSizeConstraintSet =
UpdateSizeConstraintSetResponse
request :: (Service -> Service)
-> UpdateSizeConstraintSet -> Request UpdateSizeConstraintSet
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 UpdateSizeConstraintSet
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateSizeConstraintSet)))
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 -> UpdateSizeConstraintSetResponse
UpdateSizeConstraintSetResponse'
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 UpdateSizeConstraintSet where
hashWithSalt :: Int -> UpdateSizeConstraintSet -> Int
hashWithSalt Int
_salt UpdateSizeConstraintSet' {NonEmpty SizeConstraintSetUpdate
Text
updates :: NonEmpty SizeConstraintSetUpdate
changeToken :: Text
sizeConstraintSetId :: Text
$sel:updates:UpdateSizeConstraintSet' :: UpdateSizeConstraintSet -> NonEmpty SizeConstraintSetUpdate
$sel:changeToken:UpdateSizeConstraintSet' :: UpdateSizeConstraintSet -> Text
$sel:sizeConstraintSetId:UpdateSizeConstraintSet' :: UpdateSizeConstraintSet -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
sizeConstraintSetId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
changeToken
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty SizeConstraintSetUpdate
updates
instance Prelude.NFData UpdateSizeConstraintSet where
rnf :: UpdateSizeConstraintSet -> ()
rnf UpdateSizeConstraintSet' {NonEmpty SizeConstraintSetUpdate
Text
updates :: NonEmpty SizeConstraintSetUpdate
changeToken :: Text
sizeConstraintSetId :: Text
$sel:updates:UpdateSizeConstraintSet' :: UpdateSizeConstraintSet -> NonEmpty SizeConstraintSetUpdate
$sel:changeToken:UpdateSizeConstraintSet' :: UpdateSizeConstraintSet -> Text
$sel:sizeConstraintSetId:UpdateSizeConstraintSet' :: UpdateSizeConstraintSet -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
sizeConstraintSetId
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 SizeConstraintSetUpdate
updates
instance Data.ToHeaders UpdateSizeConstraintSet where
toHeaders :: UpdateSizeConstraintSet -> 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.UpdateSizeConstraintSet" ::
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 UpdateSizeConstraintSet where
toJSON :: UpdateSizeConstraintSet -> Value
toJSON UpdateSizeConstraintSet' {NonEmpty SizeConstraintSetUpdate
Text
updates :: NonEmpty SizeConstraintSetUpdate
changeToken :: Text
sizeConstraintSetId :: Text
$sel:updates:UpdateSizeConstraintSet' :: UpdateSizeConstraintSet -> NonEmpty SizeConstraintSetUpdate
$sel:changeToken:UpdateSizeConstraintSet' :: UpdateSizeConstraintSet -> Text
$sel:sizeConstraintSetId:UpdateSizeConstraintSet' :: UpdateSizeConstraintSet -> Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just
(Key
"SizeConstraintSetId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
sizeConstraintSetId),
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 SizeConstraintSetUpdate
updates)
]
)
instance Data.ToPath UpdateSizeConstraintSet where
toPath :: UpdateSizeConstraintSet -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance Data.ToQuery UpdateSizeConstraintSet where
toQuery :: UpdateSizeConstraintSet -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateSizeConstraintSetResponse = UpdateSizeConstraintSetResponse'
{
UpdateSizeConstraintSetResponse -> Maybe Text
changeToken :: Prelude.Maybe Prelude.Text,
UpdateSizeConstraintSetResponse -> Int
httpStatus :: Prelude.Int
}
deriving (UpdateSizeConstraintSetResponse
-> UpdateSizeConstraintSetResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateSizeConstraintSetResponse
-> UpdateSizeConstraintSetResponse -> Bool
$c/= :: UpdateSizeConstraintSetResponse
-> UpdateSizeConstraintSetResponse -> Bool
== :: UpdateSizeConstraintSetResponse
-> UpdateSizeConstraintSetResponse -> Bool
$c== :: UpdateSizeConstraintSetResponse
-> UpdateSizeConstraintSetResponse -> Bool
Prelude.Eq, ReadPrec [UpdateSizeConstraintSetResponse]
ReadPrec UpdateSizeConstraintSetResponse
Int -> ReadS UpdateSizeConstraintSetResponse
ReadS [UpdateSizeConstraintSetResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateSizeConstraintSetResponse]
$creadListPrec :: ReadPrec [UpdateSizeConstraintSetResponse]
readPrec :: ReadPrec UpdateSizeConstraintSetResponse
$creadPrec :: ReadPrec UpdateSizeConstraintSetResponse
readList :: ReadS [UpdateSizeConstraintSetResponse]
$creadList :: ReadS [UpdateSizeConstraintSetResponse]
readsPrec :: Int -> ReadS UpdateSizeConstraintSetResponse
$creadsPrec :: Int -> ReadS UpdateSizeConstraintSetResponse
Prelude.Read, Int -> UpdateSizeConstraintSetResponse -> ShowS
[UpdateSizeConstraintSetResponse] -> ShowS
UpdateSizeConstraintSetResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateSizeConstraintSetResponse] -> ShowS
$cshowList :: [UpdateSizeConstraintSetResponse] -> ShowS
show :: UpdateSizeConstraintSetResponse -> String
$cshow :: UpdateSizeConstraintSetResponse -> String
showsPrec :: Int -> UpdateSizeConstraintSetResponse -> ShowS
$cshowsPrec :: Int -> UpdateSizeConstraintSetResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateSizeConstraintSetResponse x
-> UpdateSizeConstraintSetResponse
forall x.
UpdateSizeConstraintSetResponse
-> Rep UpdateSizeConstraintSetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateSizeConstraintSetResponse x
-> UpdateSizeConstraintSetResponse
$cfrom :: forall x.
UpdateSizeConstraintSetResponse
-> Rep UpdateSizeConstraintSetResponse x
Prelude.Generic)
newUpdateSizeConstraintSetResponse ::
Prelude.Int ->
UpdateSizeConstraintSetResponse
newUpdateSizeConstraintSetResponse :: Int -> UpdateSizeConstraintSetResponse
newUpdateSizeConstraintSetResponse Int
pHttpStatus_ =
UpdateSizeConstraintSetResponse'
{ $sel:changeToken:UpdateSizeConstraintSetResponse' :: Maybe Text
changeToken =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:UpdateSizeConstraintSetResponse' :: Int
httpStatus = Int
pHttpStatus_
}
updateSizeConstraintSetResponse_changeToken :: Lens.Lens' UpdateSizeConstraintSetResponse (Prelude.Maybe Prelude.Text)
updateSizeConstraintSetResponse_changeToken :: Lens' UpdateSizeConstraintSetResponse (Maybe Text)
updateSizeConstraintSetResponse_changeToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSizeConstraintSetResponse' {Maybe Text
changeToken :: Maybe Text
$sel:changeToken:UpdateSizeConstraintSetResponse' :: UpdateSizeConstraintSetResponse -> Maybe Text
changeToken} -> Maybe Text
changeToken) (\s :: UpdateSizeConstraintSetResponse
s@UpdateSizeConstraintSetResponse' {} Maybe Text
a -> UpdateSizeConstraintSetResponse
s {$sel:changeToken:UpdateSizeConstraintSetResponse' :: Maybe Text
changeToken = Maybe Text
a} :: UpdateSizeConstraintSetResponse)
updateSizeConstraintSetResponse_httpStatus :: Lens.Lens' UpdateSizeConstraintSetResponse Prelude.Int
updateSizeConstraintSetResponse_httpStatus :: Lens' UpdateSizeConstraintSetResponse Int
updateSizeConstraintSetResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateSizeConstraintSetResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateSizeConstraintSetResponse' :: UpdateSizeConstraintSetResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateSizeConstraintSetResponse
s@UpdateSizeConstraintSetResponse' {} Int
a -> UpdateSizeConstraintSetResponse
s {$sel:httpStatus:UpdateSizeConstraintSetResponse' :: Int
httpStatus = Int
a} :: UpdateSizeConstraintSetResponse)
instance
Prelude.NFData
UpdateSizeConstraintSetResponse
where
rnf :: UpdateSizeConstraintSetResponse -> ()
rnf UpdateSizeConstraintSetResponse' {Int
Maybe Text
httpStatus :: Int
changeToken :: Maybe Text
$sel:httpStatus:UpdateSizeConstraintSetResponse' :: UpdateSizeConstraintSetResponse -> Int
$sel:changeToken:UpdateSizeConstraintSetResponse' :: UpdateSizeConstraintSetResponse -> 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