{-# 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.Glue.DeleteSecurityConfiguration
-- 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 specified security configuration.
module Amazonka.Glue.DeleteSecurityConfiguration
  ( -- * Creating a Request
    DeleteSecurityConfiguration (..),
    newDeleteSecurityConfiguration,

    -- * Request Lenses
    deleteSecurityConfiguration_name,

    -- * Destructuring the Response
    DeleteSecurityConfigurationResponse (..),
    newDeleteSecurityConfigurationResponse,

    -- * Response Lenses
    deleteSecurityConfigurationResponse_httpStatus,
  )
where

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

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

-- |
-- Create a value of 'DeleteSecurityConfiguration' 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:
--
-- 'name', 'deleteSecurityConfiguration_name' - The name of the security configuration to delete.
newDeleteSecurityConfiguration ::
  -- | 'name'
  Prelude.Text ->
  DeleteSecurityConfiguration
newDeleteSecurityConfiguration :: Text -> DeleteSecurityConfiguration
newDeleteSecurityConfiguration Text
pName_ =
  DeleteSecurityConfiguration' {$sel:name:DeleteSecurityConfiguration' :: Text
name = Text
pName_}

-- | The name of the security configuration to delete.
deleteSecurityConfiguration_name :: Lens.Lens' DeleteSecurityConfiguration Prelude.Text
deleteSecurityConfiguration_name :: Lens' DeleteSecurityConfiguration Text
deleteSecurityConfiguration_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteSecurityConfiguration' {Text
name :: Text
$sel:name:DeleteSecurityConfiguration' :: DeleteSecurityConfiguration -> Text
name} -> Text
name) (\s :: DeleteSecurityConfiguration
s@DeleteSecurityConfiguration' {} Text
a -> DeleteSecurityConfiguration
s {$sel:name:DeleteSecurityConfiguration' :: Text
name = Text
a} :: DeleteSecurityConfiguration)

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

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

instance Data.ToHeaders DeleteSecurityConfiguration where
  toHeaders :: DeleteSecurityConfiguration -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AWSGlue.DeleteSecurityConfiguration" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

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

instance Data.ToPath DeleteSecurityConfiguration where
  toPath :: DeleteSecurityConfiguration -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

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

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

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

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

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