{-# 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.SageMaker.DeleteDeviceFleet
-- 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 fleet.
module Amazonka.SageMaker.DeleteDeviceFleet
  ( -- * Creating a Request
    DeleteDeviceFleet (..),
    newDeleteDeviceFleet,

    -- * Request Lenses
    deleteDeviceFleet_deviceFleetName,

    -- * Destructuring the Response
    DeleteDeviceFleetResponse (..),
    newDeleteDeviceFleetResponse,
  )
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.SageMaker.Types

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

-- |
-- Create a value of 'DeleteDeviceFleet' 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:
--
-- 'deviceFleetName', 'deleteDeviceFleet_deviceFleetName' - The name of the fleet to delete.
newDeleteDeviceFleet ::
  -- | 'deviceFleetName'
  Prelude.Text ->
  DeleteDeviceFleet
newDeleteDeviceFleet :: Text -> DeleteDeviceFleet
newDeleteDeviceFleet Text
pDeviceFleetName_ =
  DeleteDeviceFleet'
    { $sel:deviceFleetName:DeleteDeviceFleet' :: Text
deviceFleetName =
        Text
pDeviceFleetName_
    }

-- | The name of the fleet to delete.
deleteDeviceFleet_deviceFleetName :: Lens.Lens' DeleteDeviceFleet Prelude.Text
deleteDeviceFleet_deviceFleetName :: Lens' DeleteDeviceFleet Text
deleteDeviceFleet_deviceFleetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteDeviceFleet' {Text
deviceFleetName :: Text
$sel:deviceFleetName:DeleteDeviceFleet' :: DeleteDeviceFleet -> Text
deviceFleetName} -> Text
deviceFleetName) (\s :: DeleteDeviceFleet
s@DeleteDeviceFleet' {} Text
a -> DeleteDeviceFleet
s {$sel:deviceFleetName:DeleteDeviceFleet' :: Text
deviceFleetName = Text
a} :: DeleteDeviceFleet)

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

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

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

instance Data.ToHeaders DeleteDeviceFleet where
  toHeaders :: DeleteDeviceFleet -> [Header]
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 -> [Header]
Data.=# ( ByteString
"SageMaker.DeleteDeviceFleet" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> [Header]
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

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

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

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

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

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

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