{-# 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.CreateDataQualityRuleset
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates a data quality ruleset with DQDL rules applied to a specified
-- Glue table.
--
-- You create the ruleset using the Data Quality Definition Language
-- (DQDL). For more information, see the Glue developer guide.
module Amazonka.Glue.CreateDataQualityRuleset
  ( -- * Creating a Request
    CreateDataQualityRuleset (..),
    newCreateDataQualityRuleset,

    -- * Request Lenses
    createDataQualityRuleset_clientToken,
    createDataQualityRuleset_description,
    createDataQualityRuleset_tags,
    createDataQualityRuleset_targetTable,
    createDataQualityRuleset_name,
    createDataQualityRuleset_ruleset,

    -- * Destructuring the Response
    CreateDataQualityRulesetResponse (..),
    newCreateDataQualityRulesetResponse,

    -- * Response Lenses
    createDataQualityRulesetResponse_name,
    createDataQualityRulesetResponse_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:/ 'newCreateDataQualityRuleset' smart constructor.
data CreateDataQualityRuleset = CreateDataQualityRuleset'
  { -- | 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.
    CreateDataQualityRuleset -> Maybe Text
clientToken :: Prelude.Maybe Prelude.Text,
    -- | A description of the data quality ruleset.
    CreateDataQualityRuleset -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | A list of tags applied to the data quality ruleset.
    CreateDataQualityRuleset -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | A target table associated with the data quality ruleset.
    CreateDataQualityRuleset -> Maybe DataQualityTargetTable
targetTable :: Prelude.Maybe DataQualityTargetTable,
    -- | A unique name for the data quality ruleset.
    CreateDataQualityRuleset -> Text
name :: Prelude.Text,
    -- | A Data Quality Definition Language (DQDL) ruleset. For more information,
    -- see the Glue developer guide.
    CreateDataQualityRuleset -> Text
ruleset :: Prelude.Text
  }
  deriving (CreateDataQualityRuleset -> CreateDataQualityRuleset -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateDataQualityRuleset -> CreateDataQualityRuleset -> Bool
$c/= :: CreateDataQualityRuleset -> CreateDataQualityRuleset -> Bool
== :: CreateDataQualityRuleset -> CreateDataQualityRuleset -> Bool
$c== :: CreateDataQualityRuleset -> CreateDataQualityRuleset -> Bool
Prelude.Eq, ReadPrec [CreateDataQualityRuleset]
ReadPrec CreateDataQualityRuleset
Int -> ReadS CreateDataQualityRuleset
ReadS [CreateDataQualityRuleset]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateDataQualityRuleset]
$creadListPrec :: ReadPrec [CreateDataQualityRuleset]
readPrec :: ReadPrec CreateDataQualityRuleset
$creadPrec :: ReadPrec CreateDataQualityRuleset
readList :: ReadS [CreateDataQualityRuleset]
$creadList :: ReadS [CreateDataQualityRuleset]
readsPrec :: Int -> ReadS CreateDataQualityRuleset
$creadsPrec :: Int -> ReadS CreateDataQualityRuleset
Prelude.Read, Int -> CreateDataQualityRuleset -> ShowS
[CreateDataQualityRuleset] -> ShowS
CreateDataQualityRuleset -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateDataQualityRuleset] -> ShowS
$cshowList :: [CreateDataQualityRuleset] -> ShowS
show :: CreateDataQualityRuleset -> String
$cshow :: CreateDataQualityRuleset -> String
showsPrec :: Int -> CreateDataQualityRuleset -> ShowS
$cshowsPrec :: Int -> CreateDataQualityRuleset -> ShowS
Prelude.Show, forall x.
Rep CreateDataQualityRuleset x -> CreateDataQualityRuleset
forall x.
CreateDataQualityRuleset -> Rep CreateDataQualityRuleset x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateDataQualityRuleset x -> CreateDataQualityRuleset
$cfrom :: forall x.
CreateDataQualityRuleset -> Rep CreateDataQualityRuleset x
Prelude.Generic)

-- |
-- Create a value of 'CreateDataQualityRuleset' 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', 'createDataQualityRuleset_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.
--
-- 'description', 'createDataQualityRuleset_description' - A description of the data quality ruleset.
--
-- 'tags', 'createDataQualityRuleset_tags' - A list of tags applied to the data quality ruleset.
--
-- 'targetTable', 'createDataQualityRuleset_targetTable' - A target table associated with the data quality ruleset.
--
-- 'name', 'createDataQualityRuleset_name' - A unique name for the data quality ruleset.
--
-- 'ruleset', 'createDataQualityRuleset_ruleset' - A Data Quality Definition Language (DQDL) ruleset. For more information,
-- see the Glue developer guide.
newCreateDataQualityRuleset ::
  -- | 'name'
  Prelude.Text ->
  -- | 'ruleset'
  Prelude.Text ->
  CreateDataQualityRuleset
newCreateDataQualityRuleset :: Text -> Text -> CreateDataQualityRuleset
newCreateDataQualityRuleset Text
pName_ Text
pRuleset_ =
  CreateDataQualityRuleset'
    { $sel:clientToken:CreateDataQualityRuleset' :: Maybe Text
clientToken =
        forall a. Maybe a
Prelude.Nothing,
      $sel:description:CreateDataQualityRuleset' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:CreateDataQualityRuleset' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:targetTable:CreateDataQualityRuleset' :: Maybe DataQualityTargetTable
targetTable = forall a. Maybe a
Prelude.Nothing,
      $sel:name:CreateDataQualityRuleset' :: Text
name = Text
pName_,
      $sel:ruleset:CreateDataQualityRuleset' :: Text
ruleset = Text
pRuleset_
    }

-- | 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.
createDataQualityRuleset_clientToken :: Lens.Lens' CreateDataQualityRuleset (Prelude.Maybe Prelude.Text)
createDataQualityRuleset_clientToken :: Lens' CreateDataQualityRuleset (Maybe Text)
createDataQualityRuleset_clientToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDataQualityRuleset' {Maybe Text
clientToken :: Maybe Text
$sel:clientToken:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Maybe Text
clientToken} -> Maybe Text
clientToken) (\s :: CreateDataQualityRuleset
s@CreateDataQualityRuleset' {} Maybe Text
a -> CreateDataQualityRuleset
s {$sel:clientToken:CreateDataQualityRuleset' :: Maybe Text
clientToken = Maybe Text
a} :: CreateDataQualityRuleset)

-- | A description of the data quality ruleset.
createDataQualityRuleset_description :: Lens.Lens' CreateDataQualityRuleset (Prelude.Maybe Prelude.Text)
createDataQualityRuleset_description :: Lens' CreateDataQualityRuleset (Maybe Text)
createDataQualityRuleset_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDataQualityRuleset' {Maybe Text
description :: Maybe Text
$sel:description:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Maybe Text
description} -> Maybe Text
description) (\s :: CreateDataQualityRuleset
s@CreateDataQualityRuleset' {} Maybe Text
a -> CreateDataQualityRuleset
s {$sel:description:CreateDataQualityRuleset' :: Maybe Text
description = Maybe Text
a} :: CreateDataQualityRuleset)

-- | A list of tags applied to the data quality ruleset.
createDataQualityRuleset_tags :: Lens.Lens' CreateDataQualityRuleset (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
createDataQualityRuleset_tags :: Lens' CreateDataQualityRuleset (Maybe (HashMap Text Text))
createDataQualityRuleset_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDataQualityRuleset' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: CreateDataQualityRuleset
s@CreateDataQualityRuleset' {} Maybe (HashMap Text Text)
a -> CreateDataQualityRuleset
s {$sel:tags:CreateDataQualityRuleset' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: CreateDataQualityRuleset) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A target table associated with the data quality ruleset.
createDataQualityRuleset_targetTable :: Lens.Lens' CreateDataQualityRuleset (Prelude.Maybe DataQualityTargetTable)
createDataQualityRuleset_targetTable :: Lens' CreateDataQualityRuleset (Maybe DataQualityTargetTable)
createDataQualityRuleset_targetTable = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDataQualityRuleset' {Maybe DataQualityTargetTable
targetTable :: Maybe DataQualityTargetTable
$sel:targetTable:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Maybe DataQualityTargetTable
targetTable} -> Maybe DataQualityTargetTable
targetTable) (\s :: CreateDataQualityRuleset
s@CreateDataQualityRuleset' {} Maybe DataQualityTargetTable
a -> CreateDataQualityRuleset
s {$sel:targetTable:CreateDataQualityRuleset' :: Maybe DataQualityTargetTable
targetTable = Maybe DataQualityTargetTable
a} :: CreateDataQualityRuleset)

-- | A unique name for the data quality ruleset.
createDataQualityRuleset_name :: Lens.Lens' CreateDataQualityRuleset Prelude.Text
createDataQualityRuleset_name :: Lens' CreateDataQualityRuleset Text
createDataQualityRuleset_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDataQualityRuleset' {Text
name :: Text
$sel:name:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Text
name} -> Text
name) (\s :: CreateDataQualityRuleset
s@CreateDataQualityRuleset' {} Text
a -> CreateDataQualityRuleset
s {$sel:name:CreateDataQualityRuleset' :: Text
name = Text
a} :: CreateDataQualityRuleset)

-- | A Data Quality Definition Language (DQDL) ruleset. For more information,
-- see the Glue developer guide.
createDataQualityRuleset_ruleset :: Lens.Lens' CreateDataQualityRuleset Prelude.Text
createDataQualityRuleset_ruleset :: Lens' CreateDataQualityRuleset Text
createDataQualityRuleset_ruleset = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDataQualityRuleset' {Text
ruleset :: Text
$sel:ruleset:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Text
ruleset} -> Text
ruleset) (\s :: CreateDataQualityRuleset
s@CreateDataQualityRuleset' {} Text
a -> CreateDataQualityRuleset
s {$sel:ruleset:CreateDataQualityRuleset' :: Text
ruleset = Text
a} :: CreateDataQualityRuleset)

instance Core.AWSRequest CreateDataQualityRuleset where
  type
    AWSResponse CreateDataQualityRuleset =
      CreateDataQualityRulesetResponse
  request :: (Service -> Service)
-> CreateDataQualityRuleset -> Request CreateDataQualityRuleset
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 CreateDataQualityRuleset
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse CreateDataQualityRuleset)))
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 -> CreateDataQualityRulesetResponse
CreateDataQualityRulesetResponse'
            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
"Name")
            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 CreateDataQualityRuleset where
  hashWithSalt :: Int -> CreateDataQualityRuleset -> Int
hashWithSalt Int
_salt CreateDataQualityRuleset' {Maybe Text
Maybe (HashMap Text Text)
Maybe DataQualityTargetTable
Text
ruleset :: Text
name :: Text
targetTable :: Maybe DataQualityTargetTable
tags :: Maybe (HashMap Text Text)
description :: Maybe Text
clientToken :: Maybe Text
$sel:ruleset:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Text
$sel:name:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Text
$sel:targetTable:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Maybe DataQualityTargetTable
$sel:tags:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Maybe (HashMap Text Text)
$sel:description:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Maybe Text
$sel:clientToken:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> 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
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
tags
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DataQualityTargetTable
targetTable
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
ruleset

instance Prelude.NFData CreateDataQualityRuleset where
  rnf :: CreateDataQualityRuleset -> ()
rnf CreateDataQualityRuleset' {Maybe Text
Maybe (HashMap Text Text)
Maybe DataQualityTargetTable
Text
ruleset :: Text
name :: Text
targetTable :: Maybe DataQualityTargetTable
tags :: Maybe (HashMap Text Text)
description :: Maybe Text
clientToken :: Maybe Text
$sel:ruleset:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Text
$sel:name:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Text
$sel:targetTable:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Maybe DataQualityTargetTable
$sel:tags:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Maybe (HashMap Text Text)
$sel:description:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Maybe Text
$sel:clientToken:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> 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
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
tags
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DataQualityTargetTable
targetTable
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
ruleset

instance Data.ToHeaders CreateDataQualityRuleset where
  toHeaders :: CreateDataQualityRuleset -> 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.CreateDataQualityRuleset" ::
                          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 CreateDataQualityRuleset where
  toJSON :: CreateDataQualityRuleset -> Value
toJSON CreateDataQualityRuleset' {Maybe Text
Maybe (HashMap Text Text)
Maybe DataQualityTargetTable
Text
ruleset :: Text
name :: Text
targetTable :: Maybe DataQualityTargetTable
tags :: Maybe (HashMap Text Text)
description :: Maybe Text
clientToken :: Maybe Text
$sel:ruleset:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Text
$sel:name:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Text
$sel:targetTable:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Maybe DataQualityTargetTable
$sel:tags:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Maybe (HashMap Text Text)
$sel:description:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> Maybe Text
$sel:clientToken:CreateDataQualityRuleset' :: CreateDataQualityRuleset -> 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
"Description" 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
description,
            (Key
"Tags" 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 (HashMap Text Text)
tags,
            (Key
"TargetTable" 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 DataQualityTargetTable
targetTable,
            forall a. a -> Maybe a
Prelude.Just (Key
"Name" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
name),
            forall a. a -> Maybe a
Prelude.Just (Key
"Ruleset" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
ruleset)
          ]
      )

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

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

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

-- |
-- Create a value of 'CreateDataQualityRulesetResponse' 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:
--
-- 'name', 'createDataQualityRulesetResponse_name' - A unique name for the data quality ruleset.
--
-- 'httpStatus', 'createDataQualityRulesetResponse_httpStatus' - The response's http status code.
newCreateDataQualityRulesetResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateDataQualityRulesetResponse
newCreateDataQualityRulesetResponse :: Int -> CreateDataQualityRulesetResponse
newCreateDataQualityRulesetResponse Int
pHttpStatus_ =
  CreateDataQualityRulesetResponse'
    { $sel:name:CreateDataQualityRulesetResponse' :: Maybe Text
name =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateDataQualityRulesetResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | A unique name for the data quality ruleset.
createDataQualityRulesetResponse_name :: Lens.Lens' CreateDataQualityRulesetResponse (Prelude.Maybe Prelude.Text)
createDataQualityRulesetResponse_name :: Lens' CreateDataQualityRulesetResponse (Maybe Text)
createDataQualityRulesetResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateDataQualityRulesetResponse' {Maybe Text
name :: Maybe Text
$sel:name:CreateDataQualityRulesetResponse' :: CreateDataQualityRulesetResponse -> Maybe Text
name} -> Maybe Text
name) (\s :: CreateDataQualityRulesetResponse
s@CreateDataQualityRulesetResponse' {} Maybe Text
a -> CreateDataQualityRulesetResponse
s {$sel:name:CreateDataQualityRulesetResponse' :: Maybe Text
name = Maybe Text
a} :: CreateDataQualityRulesetResponse)

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

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