{-# 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.DeleteVoiceConnectorTerminationCredentials
-- 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.DeleteVoiceConnectorTerminationCredentials
  ( -- * Creating a Request
    DeleteVoiceConnectorTerminationCredentials (..),
    newDeleteVoiceConnectorTerminationCredentials,

    -- * Request Lenses
    deleteVoiceConnectorTerminationCredentials_usernames,
    deleteVoiceConnectorTerminationCredentials_voiceConnectorId,

    -- * Destructuring the Response
    DeleteVoiceConnectorTerminationCredentialsResponse (..),
    newDeleteVoiceConnectorTerminationCredentialsResponse,
  )
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:/ 'newDeleteVoiceConnectorTerminationCredentials' smart constructor.
data DeleteVoiceConnectorTerminationCredentials = DeleteVoiceConnectorTerminationCredentials'
  { DeleteVoiceConnectorTerminationCredentials -> [Sensitive Text]
usernames :: [Data.Sensitive Prelude.Text],
    DeleteVoiceConnectorTerminationCredentials -> Text
voiceConnectorId :: Prelude.Text
  }
  deriving (DeleteVoiceConnectorTerminationCredentials
-> DeleteVoiceConnectorTerminationCredentials -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteVoiceConnectorTerminationCredentials
-> DeleteVoiceConnectorTerminationCredentials -> Bool
$c/= :: DeleteVoiceConnectorTerminationCredentials
-> DeleteVoiceConnectorTerminationCredentials -> Bool
== :: DeleteVoiceConnectorTerminationCredentials
-> DeleteVoiceConnectorTerminationCredentials -> Bool
$c== :: DeleteVoiceConnectorTerminationCredentials
-> DeleteVoiceConnectorTerminationCredentials -> Bool
Prelude.Eq, Int -> DeleteVoiceConnectorTerminationCredentials -> ShowS
[DeleteVoiceConnectorTerminationCredentials] -> ShowS
DeleteVoiceConnectorTerminationCredentials -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteVoiceConnectorTerminationCredentials] -> ShowS
$cshowList :: [DeleteVoiceConnectorTerminationCredentials] -> ShowS
show :: DeleteVoiceConnectorTerminationCredentials -> String
$cshow :: DeleteVoiceConnectorTerminationCredentials -> String
showsPrec :: Int -> DeleteVoiceConnectorTerminationCredentials -> ShowS
$cshowsPrec :: Int -> DeleteVoiceConnectorTerminationCredentials -> ShowS
Prelude.Show, forall x.
Rep DeleteVoiceConnectorTerminationCredentials x
-> DeleteVoiceConnectorTerminationCredentials
forall x.
DeleteVoiceConnectorTerminationCredentials
-> Rep DeleteVoiceConnectorTerminationCredentials x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DeleteVoiceConnectorTerminationCredentials x
-> DeleteVoiceConnectorTerminationCredentials
$cfrom :: forall x.
DeleteVoiceConnectorTerminationCredentials
-> Rep DeleteVoiceConnectorTerminationCredentials x
Prelude.Generic)

-- |
-- Create a value of 'DeleteVoiceConnectorTerminationCredentials' 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:
--
-- 'usernames', 'deleteVoiceConnectorTerminationCredentials_usernames' - Undocumented member.
--
-- 'voiceConnectorId', 'deleteVoiceConnectorTerminationCredentials_voiceConnectorId' - Undocumented member.
newDeleteVoiceConnectorTerminationCredentials ::
  -- | 'voiceConnectorId'
  Prelude.Text ->
  DeleteVoiceConnectorTerminationCredentials
newDeleteVoiceConnectorTerminationCredentials :: Text -> DeleteVoiceConnectorTerminationCredentials
newDeleteVoiceConnectorTerminationCredentials
  Text
pVoiceConnectorId_ =
    DeleteVoiceConnectorTerminationCredentials'
      { $sel:usernames:DeleteVoiceConnectorTerminationCredentials' :: [Sensitive Text]
usernames =
          forall a. Monoid a => a
Prelude.mempty,
        $sel:voiceConnectorId:DeleteVoiceConnectorTerminationCredentials' :: Text
voiceConnectorId =
          Text
pVoiceConnectorId_
      }

-- | Undocumented member.
deleteVoiceConnectorTerminationCredentials_usernames :: Lens.Lens' DeleteVoiceConnectorTerminationCredentials [Prelude.Text]
deleteVoiceConnectorTerminationCredentials_usernames :: Lens' DeleteVoiceConnectorTerminationCredentials [Text]
deleteVoiceConnectorTerminationCredentials_usernames = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteVoiceConnectorTerminationCredentials' {[Sensitive Text]
usernames :: [Sensitive Text]
$sel:usernames:DeleteVoiceConnectorTerminationCredentials' :: DeleteVoiceConnectorTerminationCredentials -> [Sensitive Text]
usernames} -> [Sensitive Text]
usernames) (\s :: DeleteVoiceConnectorTerminationCredentials
s@DeleteVoiceConnectorTerminationCredentials' {} [Sensitive Text]
a -> DeleteVoiceConnectorTerminationCredentials
s {$sel:usernames:DeleteVoiceConnectorTerminationCredentials' :: [Sensitive Text]
usernames = [Sensitive Text]
a} :: DeleteVoiceConnectorTerminationCredentials) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

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

instance
  Prelude.Hashable
    DeleteVoiceConnectorTerminationCredentials
  where
  hashWithSalt :: Int -> DeleteVoiceConnectorTerminationCredentials -> Int
hashWithSalt
    Int
_salt
    DeleteVoiceConnectorTerminationCredentials' {[Sensitive Text]
Text
voiceConnectorId :: Text
usernames :: [Sensitive Text]
$sel:voiceConnectorId:DeleteVoiceConnectorTerminationCredentials' :: DeleteVoiceConnectorTerminationCredentials -> Text
$sel:usernames:DeleteVoiceConnectorTerminationCredentials' :: DeleteVoiceConnectorTerminationCredentials -> [Sensitive Text]
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` [Sensitive Text]
usernames
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
voiceConnectorId

instance
  Prelude.NFData
    DeleteVoiceConnectorTerminationCredentials
  where
  rnf :: DeleteVoiceConnectorTerminationCredentials -> ()
rnf DeleteVoiceConnectorTerminationCredentials' {[Sensitive Text]
Text
voiceConnectorId :: Text
usernames :: [Sensitive Text]
$sel:voiceConnectorId:DeleteVoiceConnectorTerminationCredentials' :: DeleteVoiceConnectorTerminationCredentials -> Text
$sel:usernames:DeleteVoiceConnectorTerminationCredentials' :: DeleteVoiceConnectorTerminationCredentials -> [Sensitive Text]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf [Sensitive Text]
usernames
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
voiceConnectorId

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

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

instance
  Data.ToPath
    DeleteVoiceConnectorTerminationCredentials
  where
  toPath :: DeleteVoiceConnectorTerminationCredentials -> ByteString
toPath
    DeleteVoiceConnectorTerminationCredentials' {[Sensitive Text]
Text
voiceConnectorId :: Text
usernames :: [Sensitive Text]
$sel:voiceConnectorId:DeleteVoiceConnectorTerminationCredentials' :: DeleteVoiceConnectorTerminationCredentials -> Text
$sel:usernames:DeleteVoiceConnectorTerminationCredentials' :: DeleteVoiceConnectorTerminationCredentials -> [Sensitive Text]
..} =
      forall a. Monoid a => [a] -> a
Prelude.mconcat
        [ ByteString
"/voice-connectors/",
          forall a. ToByteString a => a -> ByteString
Data.toBS Text
voiceConnectorId,
          ByteString
"/termination/credentials"
        ]

instance
  Data.ToQuery
    DeleteVoiceConnectorTerminationCredentials
  where
  toQuery :: DeleteVoiceConnectorTerminationCredentials -> QueryString
toQuery =
    forall a b. a -> b -> a
Prelude.const
      (forall a. Monoid a => [a] -> a
Prelude.mconcat [QueryString
"operation=delete"])

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

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

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