{-# 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.Forecast.DeleteExplainabilityExport
-- 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 Explainability export.
module Amazonka.Forecast.DeleteExplainabilityExport
  ( -- * Creating a Request
    DeleteExplainabilityExport (..),
    newDeleteExplainabilityExport,

    -- * Request Lenses
    deleteExplainabilityExport_explainabilityExportArn,

    -- * Destructuring the Response
    DeleteExplainabilityExportResponse (..),
    newDeleteExplainabilityExportResponse,
  )
where

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

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

-- |
-- Create a value of 'DeleteExplainabilityExport' 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:
--
-- 'explainabilityExportArn', 'deleteExplainabilityExport_explainabilityExportArn' - The Amazon Resource Name (ARN) of the Explainability export to delete.
newDeleteExplainabilityExport ::
  -- | 'explainabilityExportArn'
  Prelude.Text ->
  DeleteExplainabilityExport
newDeleteExplainabilityExport :: Text -> DeleteExplainabilityExport
newDeleteExplainabilityExport
  Text
pExplainabilityExportArn_ =
    DeleteExplainabilityExport'
      { $sel:explainabilityExportArn:DeleteExplainabilityExport' :: Text
explainabilityExportArn =
          Text
pExplainabilityExportArn_
      }

-- | The Amazon Resource Name (ARN) of the Explainability export to delete.
deleteExplainabilityExport_explainabilityExportArn :: Lens.Lens' DeleteExplainabilityExport Prelude.Text
deleteExplainabilityExport_explainabilityExportArn :: Lens' DeleteExplainabilityExport Text
deleteExplainabilityExport_explainabilityExportArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteExplainabilityExport' {Text
explainabilityExportArn :: Text
$sel:explainabilityExportArn:DeleteExplainabilityExport' :: DeleteExplainabilityExport -> Text
explainabilityExportArn} -> Text
explainabilityExportArn) (\s :: DeleteExplainabilityExport
s@DeleteExplainabilityExport' {} Text
a -> DeleteExplainabilityExport
s {$sel:explainabilityExportArn:DeleteExplainabilityExport' :: Text
explainabilityExportArn = Text
a} :: DeleteExplainabilityExport)

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

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

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

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

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

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

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

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

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