{-# 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.Transcribe.DeleteMedicalTranscriptionJob
-- 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 medical transcription job. To use this operation, specify the
-- name of the job you want to delete using @MedicalTranscriptionJobName@.
-- Job names are case sensitive.
module Amazonka.Transcribe.DeleteMedicalTranscriptionJob
  ( -- * Creating a Request
    DeleteMedicalTranscriptionJob (..),
    newDeleteMedicalTranscriptionJob,

    -- * Request Lenses
    deleteMedicalTranscriptionJob_medicalTranscriptionJobName,

    -- * Destructuring the Response
    DeleteMedicalTranscriptionJobResponse (..),
    newDeleteMedicalTranscriptionJobResponse,
  )
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.Transcribe.Types

-- | /See:/ 'newDeleteMedicalTranscriptionJob' smart constructor.
data DeleteMedicalTranscriptionJob = DeleteMedicalTranscriptionJob'
  { -- | The name of the medical transcription job you want to delete. Job names
    -- are case sensitive.
    DeleteMedicalTranscriptionJob -> Text
medicalTranscriptionJobName :: Prelude.Text
  }
  deriving (DeleteMedicalTranscriptionJob
-> DeleteMedicalTranscriptionJob -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteMedicalTranscriptionJob
-> DeleteMedicalTranscriptionJob -> Bool
$c/= :: DeleteMedicalTranscriptionJob
-> DeleteMedicalTranscriptionJob -> Bool
== :: DeleteMedicalTranscriptionJob
-> DeleteMedicalTranscriptionJob -> Bool
$c== :: DeleteMedicalTranscriptionJob
-> DeleteMedicalTranscriptionJob -> Bool
Prelude.Eq, ReadPrec [DeleteMedicalTranscriptionJob]
ReadPrec DeleteMedicalTranscriptionJob
Int -> ReadS DeleteMedicalTranscriptionJob
ReadS [DeleteMedicalTranscriptionJob]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteMedicalTranscriptionJob]
$creadListPrec :: ReadPrec [DeleteMedicalTranscriptionJob]
readPrec :: ReadPrec DeleteMedicalTranscriptionJob
$creadPrec :: ReadPrec DeleteMedicalTranscriptionJob
readList :: ReadS [DeleteMedicalTranscriptionJob]
$creadList :: ReadS [DeleteMedicalTranscriptionJob]
readsPrec :: Int -> ReadS DeleteMedicalTranscriptionJob
$creadsPrec :: Int -> ReadS DeleteMedicalTranscriptionJob
Prelude.Read, Int -> DeleteMedicalTranscriptionJob -> ShowS
[DeleteMedicalTranscriptionJob] -> ShowS
DeleteMedicalTranscriptionJob -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteMedicalTranscriptionJob] -> ShowS
$cshowList :: [DeleteMedicalTranscriptionJob] -> ShowS
show :: DeleteMedicalTranscriptionJob -> String
$cshow :: DeleteMedicalTranscriptionJob -> String
showsPrec :: Int -> DeleteMedicalTranscriptionJob -> ShowS
$cshowsPrec :: Int -> DeleteMedicalTranscriptionJob -> ShowS
Prelude.Show, forall x.
Rep DeleteMedicalTranscriptionJob x
-> DeleteMedicalTranscriptionJob
forall x.
DeleteMedicalTranscriptionJob
-> Rep DeleteMedicalTranscriptionJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteMedicalTranscriptionJob x
-> DeleteMedicalTranscriptionJob
$cfrom :: forall x.
DeleteMedicalTranscriptionJob
-> Rep DeleteMedicalTranscriptionJob x
Prelude.Generic)

-- |
-- Create a value of 'DeleteMedicalTranscriptionJob' 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:
--
-- 'medicalTranscriptionJobName', 'deleteMedicalTranscriptionJob_medicalTranscriptionJobName' - The name of the medical transcription job you want to delete. Job names
-- are case sensitive.
newDeleteMedicalTranscriptionJob ::
  -- | 'medicalTranscriptionJobName'
  Prelude.Text ->
  DeleteMedicalTranscriptionJob
newDeleteMedicalTranscriptionJob :: Text -> DeleteMedicalTranscriptionJob
newDeleteMedicalTranscriptionJob
  Text
pMedicalTranscriptionJobName_ =
    DeleteMedicalTranscriptionJob'
      { $sel:medicalTranscriptionJobName:DeleteMedicalTranscriptionJob' :: Text
medicalTranscriptionJobName =
          Text
pMedicalTranscriptionJobName_
      }

-- | The name of the medical transcription job you want to delete. Job names
-- are case sensitive.
deleteMedicalTranscriptionJob_medicalTranscriptionJobName :: Lens.Lens' DeleteMedicalTranscriptionJob Prelude.Text
deleteMedicalTranscriptionJob_medicalTranscriptionJobName :: Lens' DeleteMedicalTranscriptionJob Text
deleteMedicalTranscriptionJob_medicalTranscriptionJobName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteMedicalTranscriptionJob' {Text
medicalTranscriptionJobName :: Text
$sel:medicalTranscriptionJobName:DeleteMedicalTranscriptionJob' :: DeleteMedicalTranscriptionJob -> Text
medicalTranscriptionJobName} -> Text
medicalTranscriptionJobName) (\s :: DeleteMedicalTranscriptionJob
s@DeleteMedicalTranscriptionJob' {} Text
a -> DeleteMedicalTranscriptionJob
s {$sel:medicalTranscriptionJobName:DeleteMedicalTranscriptionJob' :: Text
medicalTranscriptionJobName = Text
a} :: DeleteMedicalTranscriptionJob)

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

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

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

instance Data.ToHeaders DeleteMedicalTranscriptionJob where
  toHeaders :: DeleteMedicalTranscriptionJob -> [Header]
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 -> [Header]
Data.=# ( ByteString
"Transcribe.DeleteMedicalTranscriptionJob" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON DeleteMedicalTranscriptionJob where
  toJSON :: DeleteMedicalTranscriptionJob -> Value
toJSON DeleteMedicalTranscriptionJob' {Text
medicalTranscriptionJobName :: Text
$sel:medicalTranscriptionJobName:DeleteMedicalTranscriptionJob' :: DeleteMedicalTranscriptionJob -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just
              ( Key
"MedicalTranscriptionJobName"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
medicalTranscriptionJobName
              )
          ]
      )

instance Data.ToPath DeleteMedicalTranscriptionJob where
  toPath :: DeleteMedicalTranscriptionJob -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

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

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

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

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