{-# 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.ConnectCampaigns.DeleteConnectInstanceConfig
-- 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 connect instance config from the specified AWS account.
module Amazonka.ConnectCampaigns.DeleteConnectInstanceConfig
  ( -- * Creating a Request
    DeleteConnectInstanceConfig (..),
    newDeleteConnectInstanceConfig,

    -- * Request Lenses
    deleteConnectInstanceConfig_connectInstanceId,

    -- * Destructuring the Response
    DeleteConnectInstanceConfigResponse (..),
    newDeleteConnectInstanceConfigResponse,
  )
where

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

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

-- |
-- Create a value of 'DeleteConnectInstanceConfig' 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:
--
-- 'connectInstanceId', 'deleteConnectInstanceConfig_connectInstanceId' - Undocumented member.
newDeleteConnectInstanceConfig ::
  -- | 'connectInstanceId'
  Prelude.Text ->
  DeleteConnectInstanceConfig
newDeleteConnectInstanceConfig :: Text -> DeleteConnectInstanceConfig
newDeleteConnectInstanceConfig Text
pConnectInstanceId_ =
  DeleteConnectInstanceConfig'
    { $sel:connectInstanceId:DeleteConnectInstanceConfig' :: Text
connectInstanceId =
        Text
pConnectInstanceId_
    }

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

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

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

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

instance Data.ToHeaders DeleteConnectInstanceConfig where
  toHeaders :: DeleteConnectInstanceConfig -> [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 DeleteConnectInstanceConfig where
  toPath :: DeleteConnectInstanceConfig -> ByteString
toPath DeleteConnectInstanceConfig' {Text
connectInstanceId :: Text
$sel:connectInstanceId:DeleteConnectInstanceConfig' :: DeleteConnectInstanceConfig -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/connect-instance/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
connectInstanceId,
        ByteString
"/config"
      ]

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

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

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

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