{-# 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.StartDataQualityRuleRecommendationRun
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Starts a recommendation run that is used to generate rules when you
-- don\'t know what rules to write. Glue Data Quality analyzes the data and
-- comes up with recommendations for a potential ruleset. You can then
-- triage the ruleset and modify the generated ruleset to your liking.
module Amazonka.Glue.StartDataQualityRuleRecommendationRun
  ( -- * Creating a Request
    StartDataQualityRuleRecommendationRun (..),
    newStartDataQualityRuleRecommendationRun,

    -- * Request Lenses
    startDataQualityRuleRecommendationRun_clientToken,
    startDataQualityRuleRecommendationRun_createdRulesetName,
    startDataQualityRuleRecommendationRun_numberOfWorkers,
    startDataQualityRuleRecommendationRun_timeout,
    startDataQualityRuleRecommendationRun_dataSource,
    startDataQualityRuleRecommendationRun_role,

    -- * Destructuring the Response
    StartDataQualityRuleRecommendationRunResponse (..),
    newStartDataQualityRuleRecommendationRunResponse,

    -- * Response Lenses
    startDataQualityRuleRecommendationRunResponse_runId,
    startDataQualityRuleRecommendationRunResponse_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:/ 'newStartDataQualityRuleRecommendationRun' smart constructor.
data StartDataQualityRuleRecommendationRun = StartDataQualityRuleRecommendationRun'
  { -- | Used for idempotency and is recommended to be set to a random ID (such
    -- as a UUID) to avoid creating or starting multiple instances of the same
    -- resource.
    StartDataQualityRuleRecommendationRun -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
    -- | A name for the ruleset.
    StartDataQualityRuleRecommendationRun -> Maybe Text
createdRulesetName :: Prelude.Maybe Prelude.Text,
    -- | The number of @G.1X@ workers to be used in the run. The default is 5.
    StartDataQualityRuleRecommendationRun -> Maybe Int
numberOfWorkers :: Prelude.Maybe Prelude.Int,
    -- | The timeout for a run in minutes. This is the maximum time that a run
    -- can consume resources before it is terminated and enters @TIMEOUT@
    -- status. The default is 2,880 minutes (48 hours).
    StartDataQualityRuleRecommendationRun -> Maybe Natural
timeout :: Prelude.Maybe Prelude.Natural,
    -- | The data source (Glue table) associated with this run.
    StartDataQualityRuleRecommendationRun -> DataSource
dataSource :: DataSource,
    -- | An IAM role supplied to encrypt the results of the run.
    StartDataQualityRuleRecommendationRun -> Text
role' :: Prelude.Text
  }
  deriving (StartDataQualityRuleRecommendationRun
-> StartDataQualityRuleRecommendationRun -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartDataQualityRuleRecommendationRun
-> StartDataQualityRuleRecommendationRun -> Bool
$c/= :: StartDataQualityRuleRecommendationRun
-> StartDataQualityRuleRecommendationRun -> Bool
== :: StartDataQualityRuleRecommendationRun
-> StartDataQualityRuleRecommendationRun -> Bool
$c== :: StartDataQualityRuleRecommendationRun
-> StartDataQualityRuleRecommendationRun -> Bool
Prelude.Eq, ReadPrec [StartDataQualityRuleRecommendationRun]
ReadPrec StartDataQualityRuleRecommendationRun
Int -> ReadS StartDataQualityRuleRecommendationRun
ReadS [StartDataQualityRuleRecommendationRun]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartDataQualityRuleRecommendationRun]
$creadListPrec :: ReadPrec [StartDataQualityRuleRecommendationRun]
readPrec :: ReadPrec StartDataQualityRuleRecommendationRun
$creadPrec :: ReadPrec StartDataQualityRuleRecommendationRun
readList :: ReadS [StartDataQualityRuleRecommendationRun]
$creadList :: ReadS [StartDataQualityRuleRecommendationRun]
readsPrec :: Int -> ReadS StartDataQualityRuleRecommendationRun
$creadsPrec :: Int -> ReadS StartDataQualityRuleRecommendationRun
Prelude.Read, Int -> StartDataQualityRuleRecommendationRun -> ShowS
[StartDataQualityRuleRecommendationRun] -> ShowS
StartDataQualityRuleRecommendationRun -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartDataQualityRuleRecommendationRun] -> ShowS
$cshowList :: [StartDataQualityRuleRecommendationRun] -> ShowS
show :: StartDataQualityRuleRecommendationRun -> String
$cshow :: StartDataQualityRuleRecommendationRun -> String
showsPrec :: Int -> StartDataQualityRuleRecommendationRun -> ShowS
$cshowsPrec :: Int -> StartDataQualityRuleRecommendationRun -> ShowS
Prelude.Show, forall x.
Rep StartDataQualityRuleRecommendationRun x
-> StartDataQualityRuleRecommendationRun
forall x.
StartDataQualityRuleRecommendationRun
-> Rep StartDataQualityRuleRecommendationRun x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep StartDataQualityRuleRecommendationRun x
-> StartDataQualityRuleRecommendationRun
$cfrom :: forall x.
StartDataQualityRuleRecommendationRun
-> Rep StartDataQualityRuleRecommendationRun x
Prelude.Generic)

-- |
-- Create a value of 'StartDataQualityRuleRecommendationRun' 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:
--
-- 'clientToken', 'startDataQualityRuleRecommendationRun_clientToken' - Used for idempotency and is recommended to be set to a random ID (such
-- as a UUID) to avoid creating or starting multiple instances of the same
-- resource.
--
-- 'createdRulesetName', 'startDataQualityRuleRecommendationRun_createdRulesetName' - A name for the ruleset.
--
-- 'numberOfWorkers', 'startDataQualityRuleRecommendationRun_numberOfWorkers' - The number of @G.1X@ workers to be used in the run. The default is 5.
--
-- 'timeout', 'startDataQualityRuleRecommendationRun_timeout' - The timeout for a run in minutes. This is the maximum time that a run
-- can consume resources before it is terminated and enters @TIMEOUT@
-- status. The default is 2,880 minutes (48 hours).
--
-- 'dataSource', 'startDataQualityRuleRecommendationRun_dataSource' - The data source (Glue table) associated with this run.
--
-- 'role'', 'startDataQualityRuleRecommendationRun_role' - An IAM role supplied to encrypt the results of the run.
newStartDataQualityRuleRecommendationRun ::
  -- | 'dataSource'
  DataSource ->
  -- | 'role''
  Prelude.Text ->
  StartDataQualityRuleRecommendationRun
newStartDataQualityRuleRecommendationRun :: DataSource -> Text -> StartDataQualityRuleRecommendationRun
newStartDataQualityRuleRecommendationRun
  DataSource
pDataSource_
  Text
pRole_ =
    StartDataQualityRuleRecommendationRun'
      { $sel:clientToken:StartDataQualityRuleRecommendationRun' :: Maybe Text
clientToken =
          forall a. Maybe a
Prelude.Nothing,
        $sel:createdRulesetName:StartDataQualityRuleRecommendationRun' :: Maybe Text
createdRulesetName = forall a. Maybe a
Prelude.Nothing,
        $sel:numberOfWorkers:StartDataQualityRuleRecommendationRun' :: Maybe Int
numberOfWorkers = forall a. Maybe a
Prelude.Nothing,
        $sel:timeout:StartDataQualityRuleRecommendationRun' :: Maybe Natural
timeout = forall a. Maybe a
Prelude.Nothing,
        $sel:dataSource:StartDataQualityRuleRecommendationRun' :: DataSource
dataSource = DataSource
pDataSource_,
        $sel:role':StartDataQualityRuleRecommendationRun' :: Text
role' = Text
pRole_
      }

-- | Used for idempotency and is recommended to be set to a random ID (such
-- as a UUID) to avoid creating or starting multiple instances of the same
-- resource.
startDataQualityRuleRecommendationRun_clientToken :: Lens.Lens' StartDataQualityRuleRecommendationRun (Prelude.Maybe Prelude.Text)
startDataQualityRuleRecommendationRun_clientToken :: Lens' StartDataQualityRuleRecommendationRun (Maybe Text)
startDataQualityRuleRecommendationRun_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartDataQualityRuleRecommendationRun' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: StartDataQualityRuleRecommendationRun
s@StartDataQualityRuleRecommendationRun' {} Maybe Text
a -> StartDataQualityRuleRecommendationRun
s {$sel:clientToken:StartDataQualityRuleRecommendationRun' :: Maybe Text
clientToken = Maybe Text
a} :: StartDataQualityRuleRecommendationRun)

-- | A name for the ruleset.
startDataQualityRuleRecommendationRun_createdRulesetName :: Lens.Lens' StartDataQualityRuleRecommendationRun (Prelude.Maybe Prelude.Text)
startDataQualityRuleRecommendationRun_createdRulesetName :: Lens' StartDataQualityRuleRecommendationRun (Maybe Text)
startDataQualityRuleRecommendationRun_createdRulesetName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartDataQualityRuleRecommendationRun' {Maybe Text
createdRulesetName :: Maybe Text
$sel:createdRulesetName:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Text
createdRulesetName} -> Maybe Text
createdRulesetName) (\s :: StartDataQualityRuleRecommendationRun
s@StartDataQualityRuleRecommendationRun' {} Maybe Text
a -> StartDataQualityRuleRecommendationRun
s {$sel:createdRulesetName:StartDataQualityRuleRecommendationRun' :: Maybe Text
createdRulesetName = Maybe Text
a} :: StartDataQualityRuleRecommendationRun)

-- | The number of @G.1X@ workers to be used in the run. The default is 5.
startDataQualityRuleRecommendationRun_numberOfWorkers :: Lens.Lens' StartDataQualityRuleRecommendationRun (Prelude.Maybe Prelude.Int)
startDataQualityRuleRecommendationRun_numberOfWorkers :: Lens' StartDataQualityRuleRecommendationRun (Maybe Int)
startDataQualityRuleRecommendationRun_numberOfWorkers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartDataQualityRuleRecommendationRun' {Maybe Int
numberOfWorkers :: Maybe Int
$sel:numberOfWorkers:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Int
numberOfWorkers} -> Maybe Int
numberOfWorkers) (\s :: StartDataQualityRuleRecommendationRun
s@StartDataQualityRuleRecommendationRun' {} Maybe Int
a -> StartDataQualityRuleRecommendationRun
s {$sel:numberOfWorkers:StartDataQualityRuleRecommendationRun' :: Maybe Int
numberOfWorkers = Maybe Int
a} :: StartDataQualityRuleRecommendationRun)

-- | The timeout for a run in minutes. This is the maximum time that a run
-- can consume resources before it is terminated and enters @TIMEOUT@
-- status. The default is 2,880 minutes (48 hours).
startDataQualityRuleRecommendationRun_timeout :: Lens.Lens' StartDataQualityRuleRecommendationRun (Prelude.Maybe Prelude.Natural)
startDataQualityRuleRecommendationRun_timeout :: Lens' StartDataQualityRuleRecommendationRun (Maybe Natural)
startDataQualityRuleRecommendationRun_timeout = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartDataQualityRuleRecommendationRun' {Maybe Natural
timeout :: Maybe Natural
$sel:timeout:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Natural
timeout} -> Maybe Natural
timeout) (\s :: StartDataQualityRuleRecommendationRun
s@StartDataQualityRuleRecommendationRun' {} Maybe Natural
a -> StartDataQualityRuleRecommendationRun
s {$sel:timeout:StartDataQualityRuleRecommendationRun' :: Maybe Natural
timeout = Maybe Natural
a} :: StartDataQualityRuleRecommendationRun)

-- | The data source (Glue table) associated with this run.
startDataQualityRuleRecommendationRun_dataSource :: Lens.Lens' StartDataQualityRuleRecommendationRun DataSource
startDataQualityRuleRecommendationRun_dataSource :: Lens' StartDataQualityRuleRecommendationRun DataSource
startDataQualityRuleRecommendationRun_dataSource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartDataQualityRuleRecommendationRun' {DataSource
dataSource :: DataSource
$sel:dataSource:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> DataSource
dataSource} -> DataSource
dataSource) (\s :: StartDataQualityRuleRecommendationRun
s@StartDataQualityRuleRecommendationRun' {} DataSource
a -> StartDataQualityRuleRecommendationRun
s {$sel:dataSource:StartDataQualityRuleRecommendationRun' :: DataSource
dataSource = DataSource
a} :: StartDataQualityRuleRecommendationRun)

-- | An IAM role supplied to encrypt the results of the run.
startDataQualityRuleRecommendationRun_role :: Lens.Lens' StartDataQualityRuleRecommendationRun Prelude.Text
startDataQualityRuleRecommendationRun_role :: Lens' StartDataQualityRuleRecommendationRun Text
startDataQualityRuleRecommendationRun_role = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartDataQualityRuleRecommendationRun' {Text
role' :: Text
$sel:role':StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Text
role'} -> Text
role') (\s :: StartDataQualityRuleRecommendationRun
s@StartDataQualityRuleRecommendationRun' {} Text
a -> StartDataQualityRuleRecommendationRun
s {$sel:role':StartDataQualityRuleRecommendationRun' :: Text
role' = Text
a} :: StartDataQualityRuleRecommendationRun)

instance
  Core.AWSRequest
    StartDataQualityRuleRecommendationRun
  where
  type
    AWSResponse
      StartDataQualityRuleRecommendationRun =
      StartDataQualityRuleRecommendationRunResponse
  request :: (Service -> Service)
-> StartDataQualityRuleRecommendationRun
-> Request StartDataQualityRuleRecommendationRun
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 StartDataQualityRuleRecommendationRun
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse
           (AWSResponse StartDataQualityRuleRecommendationRun)))
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 Text -> Int -> StartDataQualityRuleRecommendationRunResponse
StartDataQualityRuleRecommendationRunResponse'
            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
"RunId")
            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
    StartDataQualityRuleRecommendationRun
  where
  hashWithSalt :: Int -> StartDataQualityRuleRecommendationRun -> Int
hashWithSalt
    Int
_salt
    StartDataQualityRuleRecommendationRun' {Maybe Int
Maybe Natural
Maybe Text
Text
DataSource
role' :: Text
dataSource :: DataSource
timeout :: Maybe Natural
numberOfWorkers :: Maybe Int
createdRulesetName :: Maybe Text
clientToken :: Maybe Text
$sel:role':StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Text
$sel:dataSource:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> DataSource
$sel:timeout:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Natural
$sel:numberOfWorkers:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Int
$sel:createdRulesetName:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Text
$sel:clientToken:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
clientToken
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
createdRulesetName
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
numberOfWorkers
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
timeout
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` DataSource
dataSource
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
role'

instance
  Prelude.NFData
    StartDataQualityRuleRecommendationRun
  where
  rnf :: StartDataQualityRuleRecommendationRun -> ()
rnf StartDataQualityRuleRecommendationRun' {Maybe Int
Maybe Natural
Maybe Text
Text
DataSource
role' :: Text
dataSource :: DataSource
timeout :: Maybe Natural
numberOfWorkers :: Maybe Int
createdRulesetName :: Maybe Text
clientToken :: Maybe Text
$sel:role':StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Text
$sel:dataSource:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> DataSource
$sel:timeout:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Natural
$sel:numberOfWorkers:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Int
$sel:createdRulesetName:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Text
$sel:clientToken:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
clientToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
createdRulesetName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
numberOfWorkers
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
timeout
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf DataSource
dataSource
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
role'

instance
  Data.ToHeaders
    StartDataQualityRuleRecommendationRun
  where
  toHeaders :: StartDataQualityRuleRecommendationRun -> 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.StartDataQualityRuleRecommendationRun" ::
                          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
    StartDataQualityRuleRecommendationRun
  where
  toJSON :: StartDataQualityRuleRecommendationRun -> Value
toJSON StartDataQualityRuleRecommendationRun' {Maybe Int
Maybe Natural
Maybe Text
Text
DataSource
role' :: Text
dataSource :: DataSource
timeout :: Maybe Natural
numberOfWorkers :: Maybe Int
createdRulesetName :: Maybe Text
clientToken :: Maybe Text
$sel:role':StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Text
$sel:dataSource:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> DataSource
$sel:timeout:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Natural
$sel:numberOfWorkers:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Int
$sel:createdRulesetName:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Text
$sel:clientToken:StartDataQualityRuleRecommendationRun' :: StartDataQualityRuleRecommendationRun -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"ClientToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
clientToken,
            (Key
"CreatedRulesetName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
createdRulesetName,
            (Key
"NumberOfWorkers" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
numberOfWorkers,
            (Key
"Timeout" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
timeout,
            forall a. a -> Maybe a
Prelude.Just (Key
"DataSource" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= DataSource
dataSource),
            forall a. a -> Maybe a
Prelude.Just (Key
"Role" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
role')
          ]
      )

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

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

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

-- |
-- Create a value of 'StartDataQualityRuleRecommendationRunResponse' 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', 'startDataQualityRuleRecommendationRunResponse_runId' - The unique run identifier associated with this run.
--
-- 'httpStatus', 'startDataQualityRuleRecommendationRunResponse_httpStatus' - The response's http status code.
newStartDataQualityRuleRecommendationRunResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  StartDataQualityRuleRecommendationRunResponse
newStartDataQualityRuleRecommendationRunResponse :: Int -> StartDataQualityRuleRecommendationRunResponse
newStartDataQualityRuleRecommendationRunResponse
  Int
pHttpStatus_ =
    StartDataQualityRuleRecommendationRunResponse'
      { $sel:runId:StartDataQualityRuleRecommendationRunResponse' :: Maybe Text
runId =
          forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:StartDataQualityRuleRecommendationRunResponse' :: Int
httpStatus = Int
pHttpStatus_
      }

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

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

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