{-# 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.DeleteDatasetImportJob
-- 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 dataset import job created using the
-- <https://docs.aws.amazon.com/forecast/latest/dg/API_CreateDatasetImportJob.html CreateDatasetImportJob>
-- operation. You can delete only dataset import jobs that have a status of
-- @ACTIVE@ or @CREATE_FAILED@. To get the status, use the
-- <https://docs.aws.amazon.com/forecast/latest/dg/API_DescribeDatasetImportJob.html DescribeDatasetImportJob>
-- operation.
module Amazonka.Forecast.DeleteDatasetImportJob
  ( -- * Creating a Request
    DeleteDatasetImportJob (..),
    newDeleteDatasetImportJob,

    -- * Request Lenses
    deleteDatasetImportJob_datasetImportJobArn,

    -- * Destructuring the Response
    DeleteDatasetImportJobResponse (..),
    newDeleteDatasetImportJobResponse,
  )
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:/ 'newDeleteDatasetImportJob' smart constructor.
data DeleteDatasetImportJob = DeleteDatasetImportJob'
  { -- | The Amazon Resource Name (ARN) of the dataset import job to delete.
    DeleteDatasetImportJob -> Text
datasetImportJobArn :: Prelude.Text
  }
  deriving (DeleteDatasetImportJob -> DeleteDatasetImportJob -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeleteDatasetImportJob -> DeleteDatasetImportJob -> Bool
$c/= :: DeleteDatasetImportJob -> DeleteDatasetImportJob -> Bool
== :: DeleteDatasetImportJob -> DeleteDatasetImportJob -> Bool
$c== :: DeleteDatasetImportJob -> DeleteDatasetImportJob -> Bool
Prelude.Eq, ReadPrec [DeleteDatasetImportJob]
ReadPrec DeleteDatasetImportJob
Int -> ReadS DeleteDatasetImportJob
ReadS [DeleteDatasetImportJob]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeleteDatasetImportJob]
$creadListPrec :: ReadPrec [DeleteDatasetImportJob]
readPrec :: ReadPrec DeleteDatasetImportJob
$creadPrec :: ReadPrec DeleteDatasetImportJob
readList :: ReadS [DeleteDatasetImportJob]
$creadList :: ReadS [DeleteDatasetImportJob]
readsPrec :: Int -> ReadS DeleteDatasetImportJob
$creadsPrec :: Int -> ReadS DeleteDatasetImportJob
Prelude.Read, Int -> DeleteDatasetImportJob -> ShowS
[DeleteDatasetImportJob] -> ShowS
DeleteDatasetImportJob -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeleteDatasetImportJob] -> ShowS
$cshowList :: [DeleteDatasetImportJob] -> ShowS
show :: DeleteDatasetImportJob -> String
$cshow :: DeleteDatasetImportJob -> String
showsPrec :: Int -> DeleteDatasetImportJob -> ShowS
$cshowsPrec :: Int -> DeleteDatasetImportJob -> ShowS
Prelude.Show, forall x. Rep DeleteDatasetImportJob x -> DeleteDatasetImportJob
forall x. DeleteDatasetImportJob -> Rep DeleteDatasetImportJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeleteDatasetImportJob x -> DeleteDatasetImportJob
$cfrom :: forall x. DeleteDatasetImportJob -> Rep DeleteDatasetImportJob x
Prelude.Generic)

-- |
-- Create a value of 'DeleteDatasetImportJob' 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:
--
-- 'datasetImportJobArn', 'deleteDatasetImportJob_datasetImportJobArn' - The Amazon Resource Name (ARN) of the dataset import job to delete.
newDeleteDatasetImportJob ::
  -- | 'datasetImportJobArn'
  Prelude.Text ->
  DeleteDatasetImportJob
newDeleteDatasetImportJob :: Text -> DeleteDatasetImportJob
newDeleteDatasetImportJob Text
pDatasetImportJobArn_ =
  DeleteDatasetImportJob'
    { $sel:datasetImportJobArn:DeleteDatasetImportJob' :: Text
datasetImportJobArn =
        Text
pDatasetImportJobArn_
    }

-- | The Amazon Resource Name (ARN) of the dataset import job to delete.
deleteDatasetImportJob_datasetImportJobArn :: Lens.Lens' DeleteDatasetImportJob Prelude.Text
deleteDatasetImportJob_datasetImportJobArn :: Lens' DeleteDatasetImportJob Text
deleteDatasetImportJob_datasetImportJobArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeleteDatasetImportJob' {Text
datasetImportJobArn :: Text
$sel:datasetImportJobArn:DeleteDatasetImportJob' :: DeleteDatasetImportJob -> Text
datasetImportJobArn} -> Text
datasetImportJobArn) (\s :: DeleteDatasetImportJob
s@DeleteDatasetImportJob' {} Text
a -> DeleteDatasetImportJob
s {$sel:datasetImportJobArn:DeleteDatasetImportJob' :: Text
datasetImportJobArn = Text
a} :: DeleteDatasetImportJob)

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

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

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

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

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

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

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

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

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