{-# 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.IoTWireless.DeleteNetworkAnalyzerConfiguration
-- 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 network analyzer configuration.
module Amazonka.IoTWireless.DeleteNetworkAnalyzerConfiguration
  ( -- * Creating a Request
    DeleteNetworkAnalyzerConfiguration (..),
    newDeleteNetworkAnalyzerConfiguration,

    -- * Request Lenses
    deleteNetworkAnalyzerConfiguration_configurationName,

    -- * Destructuring the Response
    DeleteNetworkAnalyzerConfigurationResponse (..),
    newDeleteNetworkAnalyzerConfigurationResponse,

    -- * Response Lenses
    deleteNetworkAnalyzerConfigurationResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoTWireless.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

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

-- |
-- Create a value of 'DeleteNetworkAnalyzerConfiguration' 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:
--
-- 'configurationName', 'deleteNetworkAnalyzerConfiguration_configurationName' - Undocumented member.
newDeleteNetworkAnalyzerConfiguration ::
  -- | 'configurationName'
  Prelude.Text ->
  DeleteNetworkAnalyzerConfiguration
newDeleteNetworkAnalyzerConfiguration :: Text -> DeleteNetworkAnalyzerConfiguration
newDeleteNetworkAnalyzerConfiguration
  Text
pConfigurationName_ =
    DeleteNetworkAnalyzerConfiguration'
      { $sel:configurationName:DeleteNetworkAnalyzerConfiguration' :: Text
configurationName =
          Text
pConfigurationName_
      }

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

instance
  Core.AWSRequest
    DeleteNetworkAnalyzerConfiguration
  where
  type
    AWSResponse DeleteNetworkAnalyzerConfiguration =
      DeleteNetworkAnalyzerConfigurationResponse
  request :: (Service -> Service)
-> DeleteNetworkAnalyzerConfiguration
-> Request DeleteNetworkAnalyzerConfiguration
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 DeleteNetworkAnalyzerConfiguration
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DeleteNetworkAnalyzerConfiguration)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> () -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveEmpty
      ( \Int
s ResponseHeaders
h ()
x ->
          Int -> DeleteNetworkAnalyzerConfigurationResponse
DeleteNetworkAnalyzerConfigurationResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

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

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

instance
  Data.ToHeaders
    DeleteNetworkAnalyzerConfiguration
  where
  toHeaders :: DeleteNetworkAnalyzerConfiguration -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance
  Data.ToPath
    DeleteNetworkAnalyzerConfiguration
  where
  toPath :: DeleteNetworkAnalyzerConfiguration -> ByteString
toPath DeleteNetworkAnalyzerConfiguration' {Text
configurationName :: Text
$sel:configurationName:DeleteNetworkAnalyzerConfiguration' :: DeleteNetworkAnalyzerConfiguration -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/network-analyzer-configurations/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
configurationName
      ]

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

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

-- |
-- Create a value of 'DeleteNetworkAnalyzerConfigurationResponse' 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:
--
-- 'httpStatus', 'deleteNetworkAnalyzerConfigurationResponse_httpStatus' - The response's http status code.
newDeleteNetworkAnalyzerConfigurationResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DeleteNetworkAnalyzerConfigurationResponse
newDeleteNetworkAnalyzerConfigurationResponse :: Int -> DeleteNetworkAnalyzerConfigurationResponse
newDeleteNetworkAnalyzerConfigurationResponse
  Int
pHttpStatus_ =
    DeleteNetworkAnalyzerConfigurationResponse'
      { $sel:httpStatus:DeleteNetworkAnalyzerConfigurationResponse' :: Int
httpStatus =
          Int
pHttpStatus_
      }

-- | The response's http status code.
deleteNetworkAnalyzerConfigurationResponse_httpStatus :: Lens.Lens' DeleteNetworkAnalyzerConfigurationResponse Prelude.Int
deleteNetworkAnalyzerConfigurationResponse_httpStatus :: Lens' DeleteNetworkAnalyzerConfigurationResponse Int
deleteNetworkAnalyzerConfigurationResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteNetworkAnalyzerConfigurationResponse' {Int
httpStatus :: Int
$sel:httpStatus:DeleteNetworkAnalyzerConfigurationResponse' :: DeleteNetworkAnalyzerConfigurationResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: DeleteNetworkAnalyzerConfigurationResponse
s@DeleteNetworkAnalyzerConfigurationResponse' {} Int
a -> DeleteNetworkAnalyzerConfigurationResponse
s {$sel:httpStatus:DeleteNetworkAnalyzerConfigurationResponse' :: Int
httpStatus = Int
a} :: DeleteNetworkAnalyzerConfigurationResponse)

instance
  Prelude.NFData
    DeleteNetworkAnalyzerConfigurationResponse
  where
  rnf :: DeleteNetworkAnalyzerConfigurationResponse -> ()
rnf DeleteNetworkAnalyzerConfigurationResponse' {Int
httpStatus :: Int
$sel:httpStatus:DeleteNetworkAnalyzerConfigurationResponse' :: DeleteNetworkAnalyzerConfigurationResponse -> Int
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus