{-# 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.IoTAnalytics.CancelPipelineReprocessing
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Cancels the reprocessing of data through the pipeline.
module Amazonka.IoTAnalytics.CancelPipelineReprocessing
  ( -- * Creating a Request
    CancelPipelineReprocessing (..),
    newCancelPipelineReprocessing,

    -- * Request Lenses
    cancelPipelineReprocessing_pipelineName,
    cancelPipelineReprocessing_reprocessingId,

    -- * Destructuring the Response
    CancelPipelineReprocessingResponse (..),
    newCancelPipelineReprocessingResponse,

    -- * Response Lenses
    cancelPipelineReprocessingResponse_httpStatus,
  )
where

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

-- | /See:/ 'newCancelPipelineReprocessing' smart constructor.
data CancelPipelineReprocessing = CancelPipelineReprocessing'
  { -- | The name of pipeline for which data reprocessing is canceled.
    CancelPipelineReprocessing -> Text
pipelineName :: Prelude.Text,
    -- | The ID of the reprocessing task (returned by
    -- @StartPipelineReprocessing@).
    CancelPipelineReprocessing -> Text
reprocessingId :: Prelude.Text
  }
  deriving (CancelPipelineReprocessing -> CancelPipelineReprocessing -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CancelPipelineReprocessing -> CancelPipelineReprocessing -> Bool
$c/= :: CancelPipelineReprocessing -> CancelPipelineReprocessing -> Bool
== :: CancelPipelineReprocessing -> CancelPipelineReprocessing -> Bool
$c== :: CancelPipelineReprocessing -> CancelPipelineReprocessing -> Bool
Prelude.Eq, ReadPrec [CancelPipelineReprocessing]
ReadPrec CancelPipelineReprocessing
Int -> ReadS CancelPipelineReprocessing
ReadS [CancelPipelineReprocessing]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CancelPipelineReprocessing]
$creadListPrec :: ReadPrec [CancelPipelineReprocessing]
readPrec :: ReadPrec CancelPipelineReprocessing
$creadPrec :: ReadPrec CancelPipelineReprocessing
readList :: ReadS [CancelPipelineReprocessing]
$creadList :: ReadS [CancelPipelineReprocessing]
readsPrec :: Int -> ReadS CancelPipelineReprocessing
$creadsPrec :: Int -> ReadS CancelPipelineReprocessing
Prelude.Read, Int -> CancelPipelineReprocessing -> ShowS
[CancelPipelineReprocessing] -> ShowS
CancelPipelineReprocessing -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CancelPipelineReprocessing] -> ShowS
$cshowList :: [CancelPipelineReprocessing] -> ShowS
show :: CancelPipelineReprocessing -> String
$cshow :: CancelPipelineReprocessing -> String
showsPrec :: Int -> CancelPipelineReprocessing -> ShowS
$cshowsPrec :: Int -> CancelPipelineReprocessing -> ShowS
Prelude.Show, forall x.
Rep CancelPipelineReprocessing x -> CancelPipelineReprocessing
forall x.
CancelPipelineReprocessing -> Rep CancelPipelineReprocessing x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CancelPipelineReprocessing x -> CancelPipelineReprocessing
$cfrom :: forall x.
CancelPipelineReprocessing -> Rep CancelPipelineReprocessing x
Prelude.Generic)

-- |
-- Create a value of 'CancelPipelineReprocessing' 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:
--
-- 'pipelineName', 'cancelPipelineReprocessing_pipelineName' - The name of pipeline for which data reprocessing is canceled.
--
-- 'reprocessingId', 'cancelPipelineReprocessing_reprocessingId' - The ID of the reprocessing task (returned by
-- @StartPipelineReprocessing@).
newCancelPipelineReprocessing ::
  -- | 'pipelineName'
  Prelude.Text ->
  -- | 'reprocessingId'
  Prelude.Text ->
  CancelPipelineReprocessing
newCancelPipelineReprocessing :: Text -> Text -> CancelPipelineReprocessing
newCancelPipelineReprocessing
  Text
pPipelineName_
  Text
pReprocessingId_ =
    CancelPipelineReprocessing'
      { $sel:pipelineName:CancelPipelineReprocessing' :: Text
pipelineName =
          Text
pPipelineName_,
        $sel:reprocessingId:CancelPipelineReprocessing' :: Text
reprocessingId = Text
pReprocessingId_
      }

-- | The name of pipeline for which data reprocessing is canceled.
cancelPipelineReprocessing_pipelineName :: Lens.Lens' CancelPipelineReprocessing Prelude.Text
cancelPipelineReprocessing_pipelineName :: Lens' CancelPipelineReprocessing Text
cancelPipelineReprocessing_pipelineName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CancelPipelineReprocessing' {Text
pipelineName :: Text
$sel:pipelineName:CancelPipelineReprocessing' :: CancelPipelineReprocessing -> Text
pipelineName} -> Text
pipelineName) (\s :: CancelPipelineReprocessing
s@CancelPipelineReprocessing' {} Text
a -> CancelPipelineReprocessing
s {$sel:pipelineName:CancelPipelineReprocessing' :: Text
pipelineName = Text
a} :: CancelPipelineReprocessing)

-- | The ID of the reprocessing task (returned by
-- @StartPipelineReprocessing@).
cancelPipelineReprocessing_reprocessingId :: Lens.Lens' CancelPipelineReprocessing Prelude.Text
cancelPipelineReprocessing_reprocessingId :: Lens' CancelPipelineReprocessing Text
cancelPipelineReprocessing_reprocessingId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CancelPipelineReprocessing' {Text
reprocessingId :: Text
$sel:reprocessingId:CancelPipelineReprocessing' :: CancelPipelineReprocessing -> Text
reprocessingId} -> Text
reprocessingId) (\s :: CancelPipelineReprocessing
s@CancelPipelineReprocessing' {} Text
a -> CancelPipelineReprocessing
s {$sel:reprocessingId:CancelPipelineReprocessing' :: Text
reprocessingId = Text
a} :: CancelPipelineReprocessing)

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

instance Prelude.NFData CancelPipelineReprocessing where
  rnf :: CancelPipelineReprocessing -> ()
rnf CancelPipelineReprocessing' {Text
reprocessingId :: Text
pipelineName :: Text
$sel:reprocessingId:CancelPipelineReprocessing' :: CancelPipelineReprocessing -> Text
$sel:pipelineName:CancelPipelineReprocessing' :: CancelPipelineReprocessing -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
pipelineName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
reprocessingId

instance Data.ToHeaders CancelPipelineReprocessing where
  toHeaders :: CancelPipelineReprocessing -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToPath CancelPipelineReprocessing where
  toPath :: CancelPipelineReprocessing -> ByteString
toPath CancelPipelineReprocessing' {Text
reprocessingId :: Text
pipelineName :: Text
$sel:reprocessingId:CancelPipelineReprocessing' :: CancelPipelineReprocessing -> Text
$sel:pipelineName:CancelPipelineReprocessing' :: CancelPipelineReprocessing -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/pipelines/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
pipelineName,
        ByteString
"/reprocessing/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
reprocessingId
      ]

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

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

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

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

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