{-# 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.Glue.CancelDataQualityRuleRecommendationRun
-- 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 specified recommendation run that was being used to generate
-- rules.
module Amazonka.Glue.CancelDataQualityRuleRecommendationRun
  ( -- * Creating a Request
    CancelDataQualityRuleRecommendationRun (..),
    newCancelDataQualityRuleRecommendationRun,

    -- * Request Lenses
    cancelDataQualityRuleRecommendationRun_runId,

    -- * Destructuring the Response
    CancelDataQualityRuleRecommendationRunResponse (..),
    newCancelDataQualityRuleRecommendationRunResponse,

    -- * Response Lenses
    cancelDataQualityRuleRecommendationRunResponse_httpStatus,
  )
where

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

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

-- |
-- Create a value of 'CancelDataQualityRuleRecommendationRun' 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:
--
-- 'runId', 'cancelDataQualityRuleRecommendationRun_runId' - The unique run identifier associated with this run.
newCancelDataQualityRuleRecommendationRun ::
  -- | 'runId'
  Prelude.Text ->
  CancelDataQualityRuleRecommendationRun
newCancelDataQualityRuleRecommendationRun :: Text -> CancelDataQualityRuleRecommendationRun
newCancelDataQualityRuleRecommendationRun Text
pRunId_ =
  CancelDataQualityRuleRecommendationRun'
    { $sel:runId:CancelDataQualityRuleRecommendationRun' :: Text
runId =
        Text
pRunId_
    }

-- | The unique run identifier associated with this run.
cancelDataQualityRuleRecommendationRun_runId :: Lens.Lens' CancelDataQualityRuleRecommendationRun Prelude.Text
cancelDataQualityRuleRecommendationRun_runId :: Lens' CancelDataQualityRuleRecommendationRun Text
cancelDataQualityRuleRecommendationRun_runId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CancelDataQualityRuleRecommendationRun' {Text
runId :: Text
$sel:runId:CancelDataQualityRuleRecommendationRun' :: CancelDataQualityRuleRecommendationRun -> Text
runId} -> Text
runId) (\s :: CancelDataQualityRuleRecommendationRun
s@CancelDataQualityRuleRecommendationRun' {} Text
a -> CancelDataQualityRuleRecommendationRun
s {$sel:runId:CancelDataQualityRuleRecommendationRun' :: Text
runId = Text
a} :: CancelDataQualityRuleRecommendationRun)

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

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

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

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

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

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

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

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

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