{-# 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.ChimeSdkMediaPipelines.DeleteMediaPipeline
-- 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 the media pipeline.
module Amazonka.ChimeSdkMediaPipelines.DeleteMediaPipeline
  ( -- * Creating a Request
    DeleteMediaPipeline (..),
    newDeleteMediaPipeline,

    -- * Request Lenses
    deleteMediaPipeline_mediaPipelineId,

    -- * Destructuring the Response
    DeleteMediaPipelineResponse (..),
    newDeleteMediaPipelineResponse,
  )
where

import Amazonka.ChimeSdkMediaPipelines.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:/ 'newDeleteMediaPipeline' smart constructor.
data DeleteMediaPipeline = DeleteMediaPipeline'
  { -- | The ID of the media pipeline to delete.
    DeleteMediaPipeline -> Text
mediaPipelineId :: Prelude.Text
  }
  deriving (DeleteMediaPipeline -> DeleteMediaPipeline -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteMediaPipeline -> DeleteMediaPipeline -> Bool
$c/= :: DeleteMediaPipeline -> DeleteMediaPipeline -> Bool
== :: DeleteMediaPipeline -> DeleteMediaPipeline -> Bool
$c== :: DeleteMediaPipeline -> DeleteMediaPipeline -> Bool
Prelude.Eq, ReadPrec [DeleteMediaPipeline]
ReadPrec DeleteMediaPipeline
Int -> ReadS DeleteMediaPipeline
ReadS [DeleteMediaPipeline]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteMediaPipeline]
$creadListPrec :: ReadPrec [DeleteMediaPipeline]
readPrec :: ReadPrec DeleteMediaPipeline
$creadPrec :: ReadPrec DeleteMediaPipeline
readList :: ReadS [DeleteMediaPipeline]
$creadList :: ReadS [DeleteMediaPipeline]
readsPrec :: Int -> ReadS DeleteMediaPipeline
$creadsPrec :: Int -> ReadS DeleteMediaPipeline
Prelude.Read, Int -> DeleteMediaPipeline -> ShowS
[DeleteMediaPipeline] -> ShowS
DeleteMediaPipeline -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteMediaPipeline] -> ShowS
$cshowList :: [DeleteMediaPipeline] -> ShowS
show :: DeleteMediaPipeline -> String
$cshow :: DeleteMediaPipeline -> String
showsPrec :: Int -> DeleteMediaPipeline -> ShowS
$cshowsPrec :: Int -> DeleteMediaPipeline -> ShowS
Prelude.Show, forall x. Rep DeleteMediaPipeline x -> DeleteMediaPipeline
forall x. DeleteMediaPipeline -> Rep DeleteMediaPipeline x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteMediaPipeline x -> DeleteMediaPipeline
$cfrom :: forall x. DeleteMediaPipeline -> Rep DeleteMediaPipeline x
Prelude.Generic)

-- |
-- Create a value of 'DeleteMediaPipeline' 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:
--
-- 'mediaPipelineId', 'deleteMediaPipeline_mediaPipelineId' - The ID of the media pipeline to delete.
newDeleteMediaPipeline ::
  -- | 'mediaPipelineId'
  Prelude.Text ->
  DeleteMediaPipeline
newDeleteMediaPipeline :: Text -> DeleteMediaPipeline
newDeleteMediaPipeline Text
pMediaPipelineId_ =
  DeleteMediaPipeline'
    { $sel:mediaPipelineId:DeleteMediaPipeline' :: Text
mediaPipelineId =
        Text
pMediaPipelineId_
    }

-- | The ID of the media pipeline to delete.
deleteMediaPipeline_mediaPipelineId :: Lens.Lens' DeleteMediaPipeline Prelude.Text
deleteMediaPipeline_mediaPipelineId :: Lens' DeleteMediaPipeline Text
deleteMediaPipeline_mediaPipelineId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteMediaPipeline' {Text
mediaPipelineId :: Text
$sel:mediaPipelineId:DeleteMediaPipeline' :: DeleteMediaPipeline -> Text
mediaPipelineId} -> Text
mediaPipelineId) (\s :: DeleteMediaPipeline
s@DeleteMediaPipeline' {} Text
a -> DeleteMediaPipeline
s {$sel:mediaPipelineId:DeleteMediaPipeline' :: Text
mediaPipelineId = Text
a} :: DeleteMediaPipeline)

instance Core.AWSRequest DeleteMediaPipeline where
  type
    AWSResponse DeleteMediaPipeline =
      DeleteMediaPipelineResponse
  request :: (Service -> Service)
-> DeleteMediaPipeline -> Request DeleteMediaPipeline
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 DeleteMediaPipeline
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DeleteMediaPipeline)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
AWSResponse a
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveNull DeleteMediaPipelineResponse
DeleteMediaPipelineResponse'

instance Prelude.Hashable DeleteMediaPipeline where
  hashWithSalt :: Int -> DeleteMediaPipeline -> Int
hashWithSalt Int
_salt DeleteMediaPipeline' {Text
mediaPipelineId :: Text
$sel:mediaPipelineId:DeleteMediaPipeline' :: DeleteMediaPipeline -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
mediaPipelineId

instance Prelude.NFData DeleteMediaPipeline where
  rnf :: DeleteMediaPipeline -> ()
rnf DeleteMediaPipeline' {Text
mediaPipelineId :: Text
$sel:mediaPipelineId:DeleteMediaPipeline' :: DeleteMediaPipeline -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
mediaPipelineId

instance Data.ToHeaders DeleteMediaPipeline where
  toHeaders :: DeleteMediaPipeline -> [Header]
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToPath DeleteMediaPipeline where
  toPath :: DeleteMediaPipeline -> ByteString
toPath DeleteMediaPipeline' {Text
mediaPipelineId :: Text
$sel:mediaPipelineId:DeleteMediaPipeline' :: DeleteMediaPipeline -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/sdk-media-pipelines/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
mediaPipelineId]

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

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

-- |
-- Create a value of 'DeleteMediaPipelineResponse' 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.
newDeleteMediaPipelineResponse ::
  DeleteMediaPipelineResponse
newDeleteMediaPipelineResponse :: DeleteMediaPipelineResponse
newDeleteMediaPipelineResponse =
  DeleteMediaPipelineResponse
DeleteMediaPipelineResponse'

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