{-# 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.StepFunctions.DeleteActivity
-- 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 an activity.
module Amazonka.StepFunctions.DeleteActivity
  ( -- * Creating a Request
    DeleteActivity (..),
    newDeleteActivity,

    -- * Request Lenses
    deleteActivity_activityArn,

    -- * Destructuring the Response
    DeleteActivityResponse (..),
    newDeleteActivityResponse,

    -- * Response Lenses
    deleteActivityResponse_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.StepFunctions.Types

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

-- |
-- Create a value of 'DeleteActivity' 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:
--
-- 'activityArn', 'deleteActivity_activityArn' - The Amazon Resource Name (ARN) of the activity to delete.
newDeleteActivity ::
  -- | 'activityArn'
  Prelude.Text ->
  DeleteActivity
newDeleteActivity :: Text -> DeleteActivity
newDeleteActivity Text
pActivityArn_ =
  DeleteActivity' {$sel:activityArn:DeleteActivity' :: Text
activityArn = Text
pActivityArn_}

-- | The Amazon Resource Name (ARN) of the activity to delete.
deleteActivity_activityArn :: Lens.Lens' DeleteActivity Prelude.Text
deleteActivity_activityArn :: Lens' DeleteActivity Text
deleteActivity_activityArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteActivity' {Text
activityArn :: Text
$sel:activityArn:DeleteActivity' :: DeleteActivity -> Text
activityArn} -> Text
activityArn) (\s :: DeleteActivity
s@DeleteActivity' {} Text
a -> DeleteActivity
s {$sel:activityArn:DeleteActivity' :: Text
activityArn = Text
a} :: DeleteActivity)

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

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

instance Data.ToHeaders DeleteActivity where
  toHeaders :: DeleteActivity -> 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
"AWSStepFunctions.DeleteActivity" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.0" ::
                          Prelude.ByteString
                      )
          ]
      )

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

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

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

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

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

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

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