{-# 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.APIGateway.CreateRequestValidator
(
CreateRequestValidator (..),
newCreateRequestValidator,
createRequestValidator_name,
createRequestValidator_validateRequestBody,
createRequestValidator_validateRequestParameters,
createRequestValidator_restApiId,
RequestValidator (..),
newRequestValidator,
requestValidator_id,
requestValidator_name,
requestValidator_validateRequestBody,
requestValidator_validateRequestParameters,
)
where
import Amazonka.APIGateway.Types
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
data CreateRequestValidator = CreateRequestValidator'
{
CreateRequestValidator -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
CreateRequestValidator -> Maybe Bool
validateRequestBody :: Prelude.Maybe Prelude.Bool,
CreateRequestValidator -> Maybe Bool
validateRequestParameters :: Prelude.Maybe Prelude.Bool,
CreateRequestValidator -> Text
restApiId :: Prelude.Text
}
deriving (CreateRequestValidator -> CreateRequestValidator -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateRequestValidator -> CreateRequestValidator -> Bool
$c/= :: CreateRequestValidator -> CreateRequestValidator -> Bool
== :: CreateRequestValidator -> CreateRequestValidator -> Bool
$c== :: CreateRequestValidator -> CreateRequestValidator -> Bool
Prelude.Eq, ReadPrec [CreateRequestValidator]
ReadPrec CreateRequestValidator
Int -> ReadS CreateRequestValidator
ReadS [CreateRequestValidator]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateRequestValidator]
$creadListPrec :: ReadPrec [CreateRequestValidator]
readPrec :: ReadPrec CreateRequestValidator
$creadPrec :: ReadPrec CreateRequestValidator
readList :: ReadS [CreateRequestValidator]
$creadList :: ReadS [CreateRequestValidator]
readsPrec :: Int -> ReadS CreateRequestValidator
$creadsPrec :: Int -> ReadS CreateRequestValidator
Prelude.Read, Int -> CreateRequestValidator -> ShowS
[CreateRequestValidator] -> ShowS
CreateRequestValidator -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateRequestValidator] -> ShowS
$cshowList :: [CreateRequestValidator] -> ShowS
show :: CreateRequestValidator -> String
$cshow :: CreateRequestValidator -> String
showsPrec :: Int -> CreateRequestValidator -> ShowS
$cshowsPrec :: Int -> CreateRequestValidator -> ShowS
Prelude.Show, forall x. Rep CreateRequestValidator x -> CreateRequestValidator
forall x. CreateRequestValidator -> Rep CreateRequestValidator x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CreateRequestValidator x -> CreateRequestValidator
$cfrom :: forall x. CreateRequestValidator -> Rep CreateRequestValidator x
Prelude.Generic)
newCreateRequestValidator ::
Prelude.Text ->
CreateRequestValidator
newCreateRequestValidator :: Text -> CreateRequestValidator
newCreateRequestValidator Text
pRestApiId_ =
CreateRequestValidator'
{ $sel:name:CreateRequestValidator' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
$sel:validateRequestBody:CreateRequestValidator' :: Maybe Bool
validateRequestBody = forall a. Maybe a
Prelude.Nothing,
$sel:validateRequestParameters:CreateRequestValidator' :: Maybe Bool
validateRequestParameters = forall a. Maybe a
Prelude.Nothing,
$sel:restApiId:CreateRequestValidator' :: Text
restApiId = Text
pRestApiId_
}
createRequestValidator_name :: Lens.Lens' CreateRequestValidator (Prelude.Maybe Prelude.Text)
createRequestValidator_name :: Lens' CreateRequestValidator (Maybe Text)
createRequestValidator_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRequestValidator' {Maybe Text
name :: Maybe Text
$sel:name:CreateRequestValidator' :: CreateRequestValidator -> Maybe Text
name} -> Maybe Text
name) (\s :: CreateRequestValidator
s@CreateRequestValidator' {} Maybe Text
a -> CreateRequestValidator
s {$sel:name:CreateRequestValidator' :: Maybe Text
name = Maybe Text
a} :: CreateRequestValidator)
createRequestValidator_validateRequestBody :: Lens.Lens' CreateRequestValidator (Prelude.Maybe Prelude.Bool)
createRequestValidator_validateRequestBody :: Lens' CreateRequestValidator (Maybe Bool)
createRequestValidator_validateRequestBody = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRequestValidator' {Maybe Bool
validateRequestBody :: Maybe Bool
$sel:validateRequestBody:CreateRequestValidator' :: CreateRequestValidator -> Maybe Bool
validateRequestBody} -> Maybe Bool
validateRequestBody) (\s :: CreateRequestValidator
s@CreateRequestValidator' {} Maybe Bool
a -> CreateRequestValidator
s {$sel:validateRequestBody:CreateRequestValidator' :: Maybe Bool
validateRequestBody = Maybe Bool
a} :: CreateRequestValidator)
createRequestValidator_validateRequestParameters :: Lens.Lens' CreateRequestValidator (Prelude.Maybe Prelude.Bool)
createRequestValidator_validateRequestParameters :: Lens' CreateRequestValidator (Maybe Bool)
createRequestValidator_validateRequestParameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRequestValidator' {Maybe Bool
validateRequestParameters :: Maybe Bool
$sel:validateRequestParameters:CreateRequestValidator' :: CreateRequestValidator -> Maybe Bool
validateRequestParameters} -> Maybe Bool
validateRequestParameters) (\s :: CreateRequestValidator
s@CreateRequestValidator' {} Maybe Bool
a -> CreateRequestValidator
s {$sel:validateRequestParameters:CreateRequestValidator' :: Maybe Bool
validateRequestParameters = Maybe Bool
a} :: CreateRequestValidator)
createRequestValidator_restApiId :: Lens.Lens' CreateRequestValidator Prelude.Text
createRequestValidator_restApiId :: Lens' CreateRequestValidator Text
createRequestValidator_restApiId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateRequestValidator' {Text
restApiId :: Text
$sel:restApiId:CreateRequestValidator' :: CreateRequestValidator -> Text
restApiId} -> Text
restApiId) (\s :: CreateRequestValidator
s@CreateRequestValidator' {} Text
a -> CreateRequestValidator
s {$sel:restApiId:CreateRequestValidator' :: Text
restApiId = Text
a} :: CreateRequestValidator)
instance Core.AWSRequest CreateRequestValidator where
type
AWSResponse CreateRequestValidator =
RequestValidator
request :: (Service -> Service)
-> CreateRequestValidator -> Request CreateRequestValidator
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 CreateRequestValidator
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse CreateRequestValidator)))
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 -> forall a. FromJSON a => Object -> Either String a
Data.eitherParseJSON Object
x)
instance Prelude.Hashable CreateRequestValidator where
hashWithSalt :: Int -> CreateRequestValidator -> Int
hashWithSalt Int
_salt CreateRequestValidator' {Maybe Bool
Maybe Text
Text
restApiId :: Text
validateRequestParameters :: Maybe Bool
validateRequestBody :: Maybe Bool
name :: Maybe Text
$sel:restApiId:CreateRequestValidator' :: CreateRequestValidator -> Text
$sel:validateRequestParameters:CreateRequestValidator' :: CreateRequestValidator -> Maybe Bool
$sel:validateRequestBody:CreateRequestValidator' :: CreateRequestValidator -> Maybe Bool
$sel:name:CreateRequestValidator' :: CreateRequestValidator -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
validateRequestBody
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
validateRequestParameters
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
restApiId
instance Prelude.NFData CreateRequestValidator where
rnf :: CreateRequestValidator -> ()
rnf CreateRequestValidator' {Maybe Bool
Maybe Text
Text
restApiId :: Text
validateRequestParameters :: Maybe Bool
validateRequestBody :: Maybe Bool
name :: Maybe Text
$sel:restApiId:CreateRequestValidator' :: CreateRequestValidator -> Text
$sel:validateRequestParameters:CreateRequestValidator' :: CreateRequestValidator -> Maybe Bool
$sel:validateRequestBody:CreateRequestValidator' :: CreateRequestValidator -> Maybe Bool
$sel:name:CreateRequestValidator' :: CreateRequestValidator -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
name
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
validateRequestBody
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
validateRequestParameters
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
restApiId
instance Data.ToHeaders CreateRequestValidator where
toHeaders :: CreateRequestValidator -> ResponseHeaders
toHeaders =
forall a b. a -> b -> a
Prelude.const
( forall a. Monoid a => [a] -> a
Prelude.mconcat
[ HeaderName
"Accept"
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# (ByteString
"application/json" :: Prelude.ByteString)
]
)
instance Data.ToJSON CreateRequestValidator where
toJSON :: CreateRequestValidator -> Value
toJSON CreateRequestValidator' {Maybe Bool
Maybe Text
Text
restApiId :: Text
validateRequestParameters :: Maybe Bool
validateRequestBody :: Maybe Bool
name :: Maybe Text
$sel:restApiId:CreateRequestValidator' :: CreateRequestValidator -> Text
$sel:validateRequestParameters:CreateRequestValidator' :: CreateRequestValidator -> Maybe Bool
$sel:validateRequestBody:CreateRequestValidator' :: CreateRequestValidator -> Maybe Bool
$sel:name:CreateRequestValidator' :: CreateRequestValidator -> Maybe Text
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
name,
(Key
"validateRequestBody" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
validateRequestBody,
(Key
"validateRequestParameters" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
validateRequestParameters
]
)
instance Data.ToPath CreateRequestValidator where
toPath :: CreateRequestValidator -> ByteString
toPath CreateRequestValidator' {Maybe Bool
Maybe Text
Text
restApiId :: Text
validateRequestParameters :: Maybe Bool
validateRequestBody :: Maybe Bool
name :: Maybe Text
$sel:restApiId:CreateRequestValidator' :: CreateRequestValidator -> Text
$sel:validateRequestParameters:CreateRequestValidator' :: CreateRequestValidator -> Maybe Bool
$sel:validateRequestBody:CreateRequestValidator' :: CreateRequestValidator -> Maybe Bool
$sel:name:CreateRequestValidator' :: CreateRequestValidator -> Maybe Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"/restapis/",
forall a. ToByteString a => a -> ByteString
Data.toBS Text
restApiId,
ByteString
"/requestvalidators"
]
instance Data.ToQuery CreateRequestValidator where
toQuery :: CreateRequestValidator -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty