{-# 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.Omics.DeleteRunGroup
-- 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 workflow run group.
module Amazonka.Omics.DeleteRunGroup
  ( -- * Creating a Request
    DeleteRunGroup (..),
    newDeleteRunGroup,

    -- * Request Lenses
    deleteRunGroup_id,

    -- * Destructuring the Response
    DeleteRunGroupResponse (..),
    newDeleteRunGroupResponse,
  )
where

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

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

-- |
-- Create a value of 'DeleteRunGroup' 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:
--
-- 'id', 'deleteRunGroup_id' - The run group\'s ID.
newDeleteRunGroup ::
  -- | 'id'
  Prelude.Text ->
  DeleteRunGroup
newDeleteRunGroup :: Text -> DeleteRunGroup
newDeleteRunGroup Text
pId_ = DeleteRunGroup' {$sel:id:DeleteRunGroup' :: Text
id = Text
pId_}

-- | The run group\'s ID.
deleteRunGroup_id :: Lens.Lens' DeleteRunGroup Prelude.Text
deleteRunGroup_id :: Lens' DeleteRunGroup Text
deleteRunGroup_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteRunGroup' {Text
id :: Text
$sel:id:DeleteRunGroup' :: DeleteRunGroup -> Text
id} -> Text
id) (\s :: DeleteRunGroup
s@DeleteRunGroup' {} Text
a -> DeleteRunGroup
s {$sel:id:DeleteRunGroup' :: Text
id = Text
a} :: DeleteRunGroup)

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

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

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

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

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

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

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

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