{-# 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.WorkSpacesWeb.DeleteNetworkSettings
-- 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 network settings.
module Amazonka.WorkSpacesWeb.DeleteNetworkSettings
  ( -- * Creating a Request
    DeleteNetworkSettings (..),
    newDeleteNetworkSettings,

    -- * Request Lenses
    deleteNetworkSettings_networkSettingsArn,

    -- * Destructuring the Response
    DeleteNetworkSettingsResponse (..),
    newDeleteNetworkSettingsResponse,

    -- * Response Lenses
    deleteNetworkSettingsResponse_httpStatus,
  )
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.WorkSpacesWeb.Types

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

-- |
-- Create a value of 'DeleteNetworkSettings' 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:
--
-- 'networkSettingsArn', 'deleteNetworkSettings_networkSettingsArn' - The ARN of the network settings.
newDeleteNetworkSettings ::
  -- | 'networkSettingsArn'
  Prelude.Text ->
  DeleteNetworkSettings
newDeleteNetworkSettings :: Text -> DeleteNetworkSettings
newDeleteNetworkSettings Text
pNetworkSettingsArn_ =
  DeleteNetworkSettings'
    { $sel:networkSettingsArn:DeleteNetworkSettings' :: Text
networkSettingsArn =
        Text
pNetworkSettingsArn_
    }

-- | The ARN of the network settings.
deleteNetworkSettings_networkSettingsArn :: Lens.Lens' DeleteNetworkSettings Prelude.Text
deleteNetworkSettings_networkSettingsArn :: Lens' DeleteNetworkSettings Text
deleteNetworkSettings_networkSettingsArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteNetworkSettings' {Text
networkSettingsArn :: Text
$sel:networkSettingsArn:DeleteNetworkSettings' :: DeleteNetworkSettings -> Text
networkSettingsArn} -> Text
networkSettingsArn) (\s :: DeleteNetworkSettings
s@DeleteNetworkSettings' {} Text
a -> DeleteNetworkSettings
s {$sel:networkSettingsArn:DeleteNetworkSettings' :: Text
networkSettingsArn = Text
a} :: DeleteNetworkSettings)

instance Core.AWSRequest DeleteNetworkSettings where
  type
    AWSResponse DeleteNetworkSettings =
      DeleteNetworkSettingsResponse
  request :: (Service -> Service)
-> DeleteNetworkSettings -> Request DeleteNetworkSettings
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 DeleteNetworkSettings
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DeleteNetworkSettings)))
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 -> DeleteNetworkSettingsResponse
DeleteNetworkSettingsResponse'
            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 DeleteNetworkSettings where
  hashWithSalt :: Int -> DeleteNetworkSettings -> Int
hashWithSalt Int
_salt DeleteNetworkSettings' {Text
networkSettingsArn :: Text
$sel:networkSettingsArn:DeleteNetworkSettings' :: DeleteNetworkSettings -> Text
..} =
    Int
_salt forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
networkSettingsArn

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

instance Data.ToHeaders DeleteNetworkSettings where
  toHeaders :: DeleteNetworkSettings -> ResponseHeaders
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 -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath DeleteNetworkSettings where
  toPath :: DeleteNetworkSettings -> ByteString
toPath DeleteNetworkSettings' {Text
networkSettingsArn :: Text
$sel:networkSettingsArn:DeleteNetworkSettings' :: DeleteNetworkSettings -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/networkSettings/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
networkSettingsArn]

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

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

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

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

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