{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.ApiGatewayV2.DeleteRouteRequestParameter
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Deletes a route request parameter.
module Amazonka.ApiGatewayV2.DeleteRouteRequestParameter
  ( -- * Creating a Request
    DeleteRouteRequestParameter (..),
    newDeleteRouteRequestParameter,

    -- * Request Lenses
    deleteRouteRequestParameter_requestParameterKey,
    deleteRouteRequestParameter_apiId,
    deleteRouteRequestParameter_routeId,

    -- * Destructuring the Response
    DeleteRouteRequestParameterResponse (..),
    newDeleteRouteRequestParameterResponse,
  )
where

import Amazonka.ApiGatewayV2.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

-- | /See:/ 'newDeleteRouteRequestParameter' smart constructor.
data DeleteRouteRequestParameter = DeleteRouteRequestParameter'
  { -- | The route request parameter key.
    DeleteRouteRequestParameter -> Text
requestParameterKey :: Prelude.Text,
    -- | The API identifier.
    DeleteRouteRequestParameter -> Text
apiId :: Prelude.Text,
    -- | The route ID.
    DeleteRouteRequestParameter -> Text
routeId :: Prelude.Text
  }
  deriving (DeleteRouteRequestParameter -> DeleteRouteRequestParameter -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteRouteRequestParameter -> DeleteRouteRequestParameter -> Bool
$c/= :: DeleteRouteRequestParameter -> DeleteRouteRequestParameter -> Bool
== :: DeleteRouteRequestParameter -> DeleteRouteRequestParameter -> Bool
$c== :: DeleteRouteRequestParameter -> DeleteRouteRequestParameter -> Bool
Prelude.Eq, ReadPrec [DeleteRouteRequestParameter]
ReadPrec DeleteRouteRequestParameter
Int -> ReadS DeleteRouteRequestParameter
ReadS [DeleteRouteRequestParameter]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteRouteRequestParameter]
$creadListPrec :: ReadPrec [DeleteRouteRequestParameter]
readPrec :: ReadPrec DeleteRouteRequestParameter
$creadPrec :: ReadPrec DeleteRouteRequestParameter
readList :: ReadS [DeleteRouteRequestParameter]
$creadList :: ReadS [DeleteRouteRequestParameter]
readsPrec :: Int -> ReadS DeleteRouteRequestParameter
$creadsPrec :: Int -> ReadS DeleteRouteRequestParameter
Prelude.Read, Int -> DeleteRouteRequestParameter -> ShowS
[DeleteRouteRequestParameter] -> ShowS
DeleteRouteRequestParameter -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteRouteRequestParameter] -> ShowS
$cshowList :: [DeleteRouteRequestParameter] -> ShowS
show :: DeleteRouteRequestParameter -> String
$cshow :: DeleteRouteRequestParameter -> String
showsPrec :: Int -> DeleteRouteRequestParameter -> ShowS
$cshowsPrec :: Int -> DeleteRouteRequestParameter -> ShowS
Prelude.Show, forall x.
Rep DeleteRouteRequestParameter x -> DeleteRouteRequestParameter
forall x.
DeleteRouteRequestParameter -> Rep DeleteRouteRequestParameter x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteRouteRequestParameter x -> DeleteRouteRequestParameter
$cfrom :: forall x.
DeleteRouteRequestParameter -> Rep DeleteRouteRequestParameter x
Prelude.Generic)

-- |
-- Create a value of 'DeleteRouteRequestParameter' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'requestParameterKey', 'deleteRouteRequestParameter_requestParameterKey' - The route request parameter key.
--
-- 'apiId', 'deleteRouteRequestParameter_apiId' - The API identifier.
--
-- 'routeId', 'deleteRouteRequestParameter_routeId' - The route ID.
newDeleteRouteRequestParameter ::
  -- | 'requestParameterKey'
  Prelude.Text ->
  -- | 'apiId'
  Prelude.Text ->
  -- | 'routeId'
  Prelude.Text ->
  DeleteRouteRequestParameter
newDeleteRouteRequestParameter :: Text -> Text -> Text -> DeleteRouteRequestParameter
newDeleteRouteRequestParameter
  Text
pRequestParameterKey_
  Text
pApiId_
  Text
pRouteId_ =
    DeleteRouteRequestParameter'
      { $sel:requestParameterKey:DeleteRouteRequestParameter' :: Text
requestParameterKey =
          Text
pRequestParameterKey_,
        $sel:apiId:DeleteRouteRequestParameter' :: Text
apiId = Text
pApiId_,
        $sel:routeId:DeleteRouteRequestParameter' :: Text
routeId = Text
pRouteId_
      }

-- | The route request parameter key.
deleteRouteRequestParameter_requestParameterKey :: Lens.Lens' DeleteRouteRequestParameter Prelude.Text
deleteRouteRequestParameter_requestParameterKey :: Lens' DeleteRouteRequestParameter Text
deleteRouteRequestParameter_requestParameterKey = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteRouteRequestParameter' {Text
requestParameterKey :: Text
$sel:requestParameterKey:DeleteRouteRequestParameter' :: DeleteRouteRequestParameter -> Text
requestParameterKey} -> Text
requestParameterKey) (\s :: DeleteRouteRequestParameter
s@DeleteRouteRequestParameter' {} Text
a -> DeleteRouteRequestParameter
s {$sel:requestParameterKey:DeleteRouteRequestParameter' :: Text
requestParameterKey = Text
a} :: DeleteRouteRequestParameter)

-- | The API identifier.
deleteRouteRequestParameter_apiId :: Lens.Lens' DeleteRouteRequestParameter Prelude.Text
deleteRouteRequestParameter_apiId :: Lens' DeleteRouteRequestParameter Text
deleteRouteRequestParameter_apiId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteRouteRequestParameter' {Text
apiId :: Text
$sel:apiId:DeleteRouteRequestParameter' :: DeleteRouteRequestParameter -> Text
apiId} -> Text
apiId) (\s :: DeleteRouteRequestParameter
s@DeleteRouteRequestParameter' {} Text
a -> DeleteRouteRequestParameter
s {$sel:apiId:DeleteRouteRequestParameter' :: Text
apiId = Text
a} :: DeleteRouteRequestParameter)

-- | The route ID.
deleteRouteRequestParameter_routeId :: Lens.Lens' DeleteRouteRequestParameter Prelude.Text
deleteRouteRequestParameter_routeId :: Lens' DeleteRouteRequestParameter Text
deleteRouteRequestParameter_routeId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteRouteRequestParameter' {Text
routeId :: Text
$sel:routeId:DeleteRouteRequestParameter' :: DeleteRouteRequestParameter -> Text
routeId} -> Text
routeId) (\s :: DeleteRouteRequestParameter
s@DeleteRouteRequestParameter' {} Text
a -> DeleteRouteRequestParameter
s {$sel:routeId:DeleteRouteRequestParameter' :: Text
routeId = Text
a} :: DeleteRouteRequestParameter)

instance Core.AWSRequest DeleteRouteRequestParameter where
  type
    AWSResponse DeleteRouteRequestParameter =
      DeleteRouteRequestParameterResponse
  request :: (Service -> Service)
-> DeleteRouteRequestParameter
-> Request DeleteRouteRequestParameter
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.delete (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DeleteRouteRequestParameter
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DeleteRouteRequestParameter)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull
      DeleteRouteRequestParameterResponse
DeleteRouteRequestParameterResponse'

instance Prelude.Hashable DeleteRouteRequestParameter where
  hashWithSalt :: Int -> DeleteRouteRequestParameter -> Int
hashWithSalt Int
_salt DeleteRouteRequestParameter' {Text
routeId :: Text
apiId :: Text
requestParameterKey :: Text
$sel:routeId:DeleteRouteRequestParameter' :: DeleteRouteRequestParameter -> Text
$sel:apiId:DeleteRouteRequestParameter' :: DeleteRouteRequestParameter -> Text
$sel:requestParameterKey:DeleteRouteRequestParameter' :: DeleteRouteRequestParameter -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
requestParameterKey
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
apiId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
routeId

instance Prelude.NFData DeleteRouteRequestParameter where
  rnf :: DeleteRouteRequestParameter -> ()
rnf DeleteRouteRequestParameter' {Text
routeId :: Text
apiId :: Text
requestParameterKey :: Text
$sel:routeId:DeleteRouteRequestParameter' :: DeleteRouteRequestParameter -> Text
$sel:apiId:DeleteRouteRequestParameter' :: DeleteRouteRequestParameter -> Text
$sel:requestParameterKey:DeleteRouteRequestParameter' :: DeleteRouteRequestParameter -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
requestParameterKey
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
apiId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
routeId

instance Data.ToHeaders DeleteRouteRequestParameter where
  toHeaders :: DeleteRouteRequestParameter -> [Header]
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath DeleteRouteRequestParameter where
  toPath :: DeleteRouteRequestParameter -> ByteString
toPath DeleteRouteRequestParameter' {Text
routeId :: Text
apiId :: Text
requestParameterKey :: Text
$sel:routeId:DeleteRouteRequestParameter' :: DeleteRouteRequestParameter -> Text
$sel:apiId:DeleteRouteRequestParameter' :: DeleteRouteRequestParameter -> Text
$sel:requestParameterKey:DeleteRouteRequestParameter' :: DeleteRouteRequestParameter -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/v2/apis/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
apiId,
        ByteString
"/routes/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
routeId,
        ByteString
"/requestparameters/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
requestParameterKey
      ]

instance Data.ToQuery DeleteRouteRequestParameter where
  toQuery :: DeleteRouteRequestParameter -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newDeleteRouteRequestParameterResponse' smart constructor.
data DeleteRouteRequestParameterResponse = DeleteRouteRequestParameterResponse'
  {
  }
  deriving (DeleteRouteRequestParameterResponse
-> DeleteRouteRequestParameterResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteRouteRequestParameterResponse
-> DeleteRouteRequestParameterResponse -> Bool
$c/= :: DeleteRouteRequestParameterResponse
-> DeleteRouteRequestParameterResponse -> Bool
== :: DeleteRouteRequestParameterResponse
-> DeleteRouteRequestParameterResponse -> Bool
$c== :: DeleteRouteRequestParameterResponse
-> DeleteRouteRequestParameterResponse -> Bool
Prelude.Eq, ReadPrec [DeleteRouteRequestParameterResponse]
ReadPrec DeleteRouteRequestParameterResponse
Int -> ReadS DeleteRouteRequestParameterResponse
ReadS [DeleteRouteRequestParameterResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteRouteRequestParameterResponse]
$creadListPrec :: ReadPrec [DeleteRouteRequestParameterResponse]
readPrec :: ReadPrec DeleteRouteRequestParameterResponse
$creadPrec :: ReadPrec DeleteRouteRequestParameterResponse
readList :: ReadS [DeleteRouteRequestParameterResponse]
$creadList :: ReadS [DeleteRouteRequestParameterResponse]
readsPrec :: Int -> ReadS DeleteRouteRequestParameterResponse
$creadsPrec :: Int -> ReadS DeleteRouteRequestParameterResponse
Prelude.Read, Int -> DeleteRouteRequestParameterResponse -> ShowS
[DeleteRouteRequestParameterResponse] -> ShowS
DeleteRouteRequestParameterResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteRouteRequestParameterResponse] -> ShowS
$cshowList :: [DeleteRouteRequestParameterResponse] -> ShowS
show :: DeleteRouteRequestParameterResponse -> String
$cshow :: DeleteRouteRequestParameterResponse -> String
showsPrec :: Int -> DeleteRouteRequestParameterResponse -> ShowS
$cshowsPrec :: Int -> DeleteRouteRequestParameterResponse -> ShowS
Prelude.Show, forall x.
Rep DeleteRouteRequestParameterResponse x
-> DeleteRouteRequestParameterResponse
forall x.
DeleteRouteRequestParameterResponse
-> Rep DeleteRouteRequestParameterResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteRouteRequestParameterResponse x
-> DeleteRouteRequestParameterResponse
$cfrom :: forall x.
DeleteRouteRequestParameterResponse
-> Rep DeleteRouteRequestParameterResponse x
Prelude.Generic)

-- |
-- Create a value of 'DeleteRouteRequestParameterResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
newDeleteRouteRequestParameterResponse ::
  DeleteRouteRequestParameterResponse
newDeleteRouteRequestParameterResponse :: DeleteRouteRequestParameterResponse
newDeleteRouteRequestParameterResponse =
  DeleteRouteRequestParameterResponse
DeleteRouteRequestParameterResponse'

instance
  Prelude.NFData
    DeleteRouteRequestParameterResponse
  where
  rnf :: DeleteRouteRequestParameterResponse -> ()
rnf DeleteRouteRequestParameterResponse
_ = ()