{-# 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.DMS.DeleteReplicationTaskAssessmentRun
-- 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 the record of a single premigration assessment run.
--
-- This operation removes all metadata that DMS maintains about this
-- assessment run. However, the operation leaves untouched all information
-- about this assessment run that is stored in your Amazon S3 bucket.
module Amazonka.DMS.DeleteReplicationTaskAssessmentRun
  ( -- * Creating a Request
    DeleteReplicationTaskAssessmentRun (..),
    newDeleteReplicationTaskAssessmentRun,

    -- * Request Lenses
    deleteReplicationTaskAssessmentRun_replicationTaskAssessmentRunArn,

    -- * Destructuring the Response
    DeleteReplicationTaskAssessmentRunResponse (..),
    newDeleteReplicationTaskAssessmentRunResponse,

    -- * Response Lenses
    deleteReplicationTaskAssessmentRunResponse_replicationTaskAssessmentRun,
    deleteReplicationTaskAssessmentRunResponse_httpStatus,
  )
where

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

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

-- |
-- Create a value of 'DeleteReplicationTaskAssessmentRun' 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:
--
-- 'replicationTaskAssessmentRunArn', 'deleteReplicationTaskAssessmentRun_replicationTaskAssessmentRunArn' - Amazon Resource Name (ARN) of the premigration assessment run to be
-- deleted.
newDeleteReplicationTaskAssessmentRun ::
  -- | 'replicationTaskAssessmentRunArn'
  Prelude.Text ->
  DeleteReplicationTaskAssessmentRun
newDeleteReplicationTaskAssessmentRun :: Text -> DeleteReplicationTaskAssessmentRun
newDeleteReplicationTaskAssessmentRun
  Text
pReplicationTaskAssessmentRunArn_ =
    DeleteReplicationTaskAssessmentRun'
      { $sel:replicationTaskAssessmentRunArn:DeleteReplicationTaskAssessmentRun' :: Text
replicationTaskAssessmentRunArn =
          Text
pReplicationTaskAssessmentRunArn_
      }

-- | Amazon Resource Name (ARN) of the premigration assessment run to be
-- deleted.
deleteReplicationTaskAssessmentRun_replicationTaskAssessmentRunArn :: Lens.Lens' DeleteReplicationTaskAssessmentRun Prelude.Text
deleteReplicationTaskAssessmentRun_replicationTaskAssessmentRunArn :: Lens' DeleteReplicationTaskAssessmentRun Text
deleteReplicationTaskAssessmentRun_replicationTaskAssessmentRunArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteReplicationTaskAssessmentRun' {Text
replicationTaskAssessmentRunArn :: Text
$sel:replicationTaskAssessmentRunArn:DeleteReplicationTaskAssessmentRun' :: DeleteReplicationTaskAssessmentRun -> Text
replicationTaskAssessmentRunArn} -> Text
replicationTaskAssessmentRunArn) (\s :: DeleteReplicationTaskAssessmentRun
s@DeleteReplicationTaskAssessmentRun' {} Text
a -> DeleteReplicationTaskAssessmentRun
s {$sel:replicationTaskAssessmentRunArn:DeleteReplicationTaskAssessmentRun' :: Text
replicationTaskAssessmentRunArn = Text
a} :: DeleteReplicationTaskAssessmentRun)

instance
  Core.AWSRequest
    DeleteReplicationTaskAssessmentRun
  where
  type
    AWSResponse DeleteReplicationTaskAssessmentRun =
      DeleteReplicationTaskAssessmentRunResponse
  request :: (Service -> Service)
-> DeleteReplicationTaskAssessmentRun
-> Request DeleteReplicationTaskAssessmentRun
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 DeleteReplicationTaskAssessmentRun
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DeleteReplicationTaskAssessmentRun)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe ReplicationTaskAssessmentRun
-> Int -> DeleteReplicationTaskAssessmentRunResponse
DeleteReplicationTaskAssessmentRunResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ReplicationTaskAssessmentRun")
            forall (f :: * -> *) a b. Applicative f => 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
    DeleteReplicationTaskAssessmentRun
  where
  hashWithSalt :: Int -> DeleteReplicationTaskAssessmentRun -> Int
hashWithSalt
    Int
_salt
    DeleteReplicationTaskAssessmentRun' {Text
replicationTaskAssessmentRunArn :: Text
$sel:replicationTaskAssessmentRunArn:DeleteReplicationTaskAssessmentRun' :: DeleteReplicationTaskAssessmentRun -> Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
replicationTaskAssessmentRunArn

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

instance
  Data.ToHeaders
    DeleteReplicationTaskAssessmentRun
  where
  toHeaders :: DeleteReplicationTaskAssessmentRun -> 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
"AmazonDMSv20160101.DeleteReplicationTaskAssessmentRun" ::
                          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
    DeleteReplicationTaskAssessmentRun
  where
  toJSON :: DeleteReplicationTaskAssessmentRun -> Value
toJSON DeleteReplicationTaskAssessmentRun' {Text
replicationTaskAssessmentRunArn :: Text
$sel:replicationTaskAssessmentRunArn:DeleteReplicationTaskAssessmentRun' :: DeleteReplicationTaskAssessmentRun -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just
              ( Key
"ReplicationTaskAssessmentRunArn"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
replicationTaskAssessmentRunArn
              )
          ]
      )

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

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

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

-- |
-- Create a value of 'DeleteReplicationTaskAssessmentRunResponse' 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:
--
-- 'replicationTaskAssessmentRun', 'deleteReplicationTaskAssessmentRunResponse_replicationTaskAssessmentRun' - The @ReplicationTaskAssessmentRun@ object for the deleted assessment
-- run.
--
-- 'httpStatus', 'deleteReplicationTaskAssessmentRunResponse_httpStatus' - The response's http status code.
newDeleteReplicationTaskAssessmentRunResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  DeleteReplicationTaskAssessmentRunResponse
newDeleteReplicationTaskAssessmentRunResponse :: Int -> DeleteReplicationTaskAssessmentRunResponse
newDeleteReplicationTaskAssessmentRunResponse
  Int
pHttpStatus_ =
    DeleteReplicationTaskAssessmentRunResponse'
      { $sel:replicationTaskAssessmentRun:DeleteReplicationTaskAssessmentRunResponse' :: Maybe ReplicationTaskAssessmentRun
replicationTaskAssessmentRun =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DeleteReplicationTaskAssessmentRunResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

-- | The @ReplicationTaskAssessmentRun@ object for the deleted assessment
-- run.
deleteReplicationTaskAssessmentRunResponse_replicationTaskAssessmentRun :: Lens.Lens' DeleteReplicationTaskAssessmentRunResponse (Prelude.Maybe ReplicationTaskAssessmentRun)
deleteReplicationTaskAssessmentRunResponse_replicationTaskAssessmentRun :: Lens'
  DeleteReplicationTaskAssessmentRunResponse
  (Maybe ReplicationTaskAssessmentRun)
deleteReplicationTaskAssessmentRunResponse_replicationTaskAssessmentRun = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteReplicationTaskAssessmentRunResponse' {Maybe ReplicationTaskAssessmentRun
replicationTaskAssessmentRun :: Maybe ReplicationTaskAssessmentRun
$sel:replicationTaskAssessmentRun:DeleteReplicationTaskAssessmentRunResponse' :: DeleteReplicationTaskAssessmentRunResponse
-> Maybe ReplicationTaskAssessmentRun
replicationTaskAssessmentRun} -> Maybe ReplicationTaskAssessmentRun
replicationTaskAssessmentRun) (\s :: DeleteReplicationTaskAssessmentRunResponse
s@DeleteReplicationTaskAssessmentRunResponse' {} Maybe ReplicationTaskAssessmentRun
a -> DeleteReplicationTaskAssessmentRunResponse
s {$sel:replicationTaskAssessmentRun:DeleteReplicationTaskAssessmentRunResponse' :: Maybe ReplicationTaskAssessmentRun
replicationTaskAssessmentRun = Maybe ReplicationTaskAssessmentRun
a} :: DeleteReplicationTaskAssessmentRunResponse)

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

instance
  Prelude.NFData
    DeleteReplicationTaskAssessmentRunResponse
  where
  rnf :: DeleteReplicationTaskAssessmentRunResponse -> ()
rnf DeleteReplicationTaskAssessmentRunResponse' {Int
Maybe ReplicationTaskAssessmentRun
httpStatus :: Int
replicationTaskAssessmentRun :: Maybe ReplicationTaskAssessmentRun
$sel:httpStatus:DeleteReplicationTaskAssessmentRunResponse' :: DeleteReplicationTaskAssessmentRunResponse -> Int
$sel:replicationTaskAssessmentRun:DeleteReplicationTaskAssessmentRunResponse' :: DeleteReplicationTaskAssessmentRunResponse
-> Maybe ReplicationTaskAssessmentRun
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ReplicationTaskAssessmentRun
replicationTaskAssessmentRun
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus