{-# 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.ChimeSdkVoice.DeleteSipMediaApplication
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- -- | Undocumented operation.
module Amazonka.ChimeSdkVoice.DeleteSipMediaApplication
  ( -- * Creating a Request
    DeleteSipMediaApplication (..),
    newDeleteSipMediaApplication,

    -- * Request Lenses
    deleteSipMediaApplication_sipMediaApplicationId,

    -- * Destructuring the Response
    DeleteSipMediaApplicationResponse (..),
    newDeleteSipMediaApplicationResponse,
  )
where

import Amazonka.ChimeSdkVoice.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:/ 'newDeleteSipMediaApplication' smart constructor.
data DeleteSipMediaApplication = DeleteSipMediaApplication'
  { DeleteSipMediaApplication -> Text
sipMediaApplicationId :: Prelude.Text
  }
  deriving (DeleteSipMediaApplication -> DeleteSipMediaApplication -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteSipMediaApplication -> DeleteSipMediaApplication -> Bool
$c/= :: DeleteSipMediaApplication -> DeleteSipMediaApplication -> Bool
== :: DeleteSipMediaApplication -> DeleteSipMediaApplication -> Bool
$c== :: DeleteSipMediaApplication -> DeleteSipMediaApplication -> Bool
Prelude.Eq, ReadPrec [DeleteSipMediaApplication]
ReadPrec DeleteSipMediaApplication
Int -> ReadS DeleteSipMediaApplication
ReadS [DeleteSipMediaApplication]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteSipMediaApplication]
$creadListPrec :: ReadPrec [DeleteSipMediaApplication]
readPrec :: ReadPrec DeleteSipMediaApplication
$creadPrec :: ReadPrec DeleteSipMediaApplication
readList :: ReadS [DeleteSipMediaApplication]
$creadList :: ReadS [DeleteSipMediaApplication]
readsPrec :: Int -> ReadS DeleteSipMediaApplication
$creadsPrec :: Int -> ReadS DeleteSipMediaApplication
Prelude.Read, Int -> DeleteSipMediaApplication -> ShowS
[DeleteSipMediaApplication] -> ShowS
DeleteSipMediaApplication -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteSipMediaApplication] -> ShowS
$cshowList :: [DeleteSipMediaApplication] -> ShowS
show :: DeleteSipMediaApplication -> String
$cshow :: DeleteSipMediaApplication -> String
showsPrec :: Int -> DeleteSipMediaApplication -> ShowS
$cshowsPrec :: Int -> DeleteSipMediaApplication -> ShowS
Prelude.Show, forall x.
Rep DeleteSipMediaApplication x -> DeleteSipMediaApplication
forall x.
DeleteSipMediaApplication -> Rep DeleteSipMediaApplication x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteSipMediaApplication x -> DeleteSipMediaApplication
$cfrom :: forall x.
DeleteSipMediaApplication -> Rep DeleteSipMediaApplication x
Prelude.Generic)

-- |
-- Create a value of 'DeleteSipMediaApplication' 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:
--
-- 'sipMediaApplicationId', 'deleteSipMediaApplication_sipMediaApplicationId' - Undocumented member.
newDeleteSipMediaApplication ::
  -- | 'sipMediaApplicationId'
  Prelude.Text ->
  DeleteSipMediaApplication
newDeleteSipMediaApplication :: Text -> DeleteSipMediaApplication
newDeleteSipMediaApplication Text
pSipMediaApplicationId_ =
  DeleteSipMediaApplication'
    { $sel:sipMediaApplicationId:DeleteSipMediaApplication' :: Text
sipMediaApplicationId =
        Text
pSipMediaApplicationId_
    }

-- | Undocumented member.
deleteSipMediaApplication_sipMediaApplicationId :: Lens.Lens' DeleteSipMediaApplication Prelude.Text
deleteSipMediaApplication_sipMediaApplicationId :: Lens' DeleteSipMediaApplication Text
deleteSipMediaApplication_sipMediaApplicationId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteSipMediaApplication' {Text
sipMediaApplicationId :: Text
$sel:sipMediaApplicationId:DeleteSipMediaApplication' :: DeleteSipMediaApplication -> Text
sipMediaApplicationId} -> Text
sipMediaApplicationId) (\s :: DeleteSipMediaApplication
s@DeleteSipMediaApplication' {} Text
a -> DeleteSipMediaApplication
s {$sel:sipMediaApplicationId:DeleteSipMediaApplication' :: Text
sipMediaApplicationId = Text
a} :: DeleteSipMediaApplication)

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

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

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

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

instance Data.ToPath DeleteSipMediaApplication where
  toPath :: DeleteSipMediaApplication -> ByteString
toPath DeleteSipMediaApplication' {Text
sipMediaApplicationId :: Text
$sel:sipMediaApplicationId:DeleteSipMediaApplication' :: DeleteSipMediaApplication -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/sip-media-applications/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
sipMediaApplicationId
      ]

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

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

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

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