{-# 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.DataBrew.DescribeRuleset
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves detailed information about the ruleset.
module Amazonka.DataBrew.DescribeRuleset
  ( -- * Creating a Request
    DescribeRuleset (..),
    newDescribeRuleset,

    -- * Request Lenses
    describeRuleset_name,

    -- * Destructuring the Response
    DescribeRulesetResponse (..),
    newDescribeRulesetResponse,

    -- * Response Lenses
    describeRulesetResponse_createDate,
    describeRulesetResponse_createdBy,
    describeRulesetResponse_description,
    describeRulesetResponse_lastModifiedBy,
    describeRulesetResponse_lastModifiedDate,
    describeRulesetResponse_resourceArn,
    describeRulesetResponse_rules,
    describeRulesetResponse_tags,
    describeRulesetResponse_targetArn,
    describeRulesetResponse_httpStatus,
    describeRulesetResponse_name,
  )
where

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

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

-- |
-- Create a value of 'DescribeRuleset' 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', 'describeRuleset_name' - The name of the ruleset to be described.
newDescribeRuleset ::
  -- | 'name'
  Prelude.Text ->
  DescribeRuleset
newDescribeRuleset :: Text -> DescribeRuleset
newDescribeRuleset Text
pName_ =
  DescribeRuleset' {$sel:name:DescribeRuleset' :: Text
name = Text
pName_}

-- | The name of the ruleset to be described.
describeRuleset_name :: Lens.Lens' DescribeRuleset Prelude.Text
describeRuleset_name :: Lens' DescribeRuleset Text
describeRuleset_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRuleset' {Text
name :: Text
$sel:name:DescribeRuleset' :: DescribeRuleset -> Text
name} -> Text
name) (\s :: DescribeRuleset
s@DescribeRuleset' {} Text
a -> DescribeRuleset
s {$sel:name:DescribeRuleset' :: Text
name = Text
a} :: DescribeRuleset)

instance Core.AWSRequest DescribeRuleset where
  type
    AWSResponse DescribeRuleset =
      DescribeRulesetResponse
  request :: (Service -> Service) -> DescribeRuleset -> Request DescribeRuleset
request Service -> Service
overrides =
    forall a. ToRequest a => Service -> a -> Request a
Request.get (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeRuleset
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse DescribeRuleset)))
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 POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Maybe Text
-> Maybe (NonEmpty Rule)
-> Maybe (HashMap Text Text)
-> Maybe Text
-> Int
-> Text
-> DescribeRulesetResponse
DescribeRulesetResponse'
            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
"CreateDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"CreatedBy")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Description")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"LastModifiedBy")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"LastModifiedDate")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"ResourceArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Rules")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"Tags" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"TargetArn")
            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))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"Name")
      )

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

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

instance Data.ToHeaders DescribeRuleset where
  toHeaders :: DescribeRuleset -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToPath DescribeRuleset where
  toPath :: DescribeRuleset -> ByteString
toPath DescribeRuleset' {Text
name :: Text
$sel:name:DescribeRuleset' :: DescribeRuleset -> Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat [ByteString
"/rulesets/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
name]

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

-- | /See:/ 'newDescribeRulesetResponse' smart constructor.
data DescribeRulesetResponse = DescribeRulesetResponse'
  { -- | The date and time that the ruleset was created.
    DescribeRulesetResponse -> Maybe POSIX
createDate :: Prelude.Maybe Data.POSIX,
    -- | The Amazon Resource Name (ARN) of the user who created the ruleset.
    DescribeRulesetResponse -> Maybe Text
createdBy :: Prelude.Maybe Prelude.Text,
    -- | The description of the ruleset.
    DescribeRulesetResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the user who last modified the
    -- ruleset.
    DescribeRulesetResponse -> Maybe Text
lastModifiedBy :: Prelude.Maybe Prelude.Text,
    -- | The modification date and time of the ruleset.
    DescribeRulesetResponse -> Maybe POSIX
lastModifiedDate :: Prelude.Maybe Data.POSIX,
    -- | The Amazon Resource Name (ARN) for the ruleset.
    DescribeRulesetResponse -> Maybe Text
resourceArn :: Prelude.Maybe Prelude.Text,
    -- | A list of rules that are defined with the ruleset. A rule includes one
    -- or more checks to be validated on a DataBrew dataset.
    DescribeRulesetResponse -> Maybe (NonEmpty Rule)
rules :: Prelude.Maybe (Prelude.NonEmpty Rule),
    -- | Metadata tags that have been applied to the ruleset.
    DescribeRulesetResponse -> Maybe (HashMap Text Text)
tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset
    -- is associated with.
    DescribeRulesetResponse -> Maybe Text
targetArn :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeRulesetResponse -> Int
httpStatus :: Prelude.Int,
    -- | The name of the ruleset.
    DescribeRulesetResponse -> Text
name :: Prelude.Text
  }
  deriving (DescribeRulesetResponse -> DescribeRulesetResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeRulesetResponse -> DescribeRulesetResponse -> Bool
$c/= :: DescribeRulesetResponse -> DescribeRulesetResponse -> Bool
== :: DescribeRulesetResponse -> DescribeRulesetResponse -> Bool
$c== :: DescribeRulesetResponse -> DescribeRulesetResponse -> Bool
Prelude.Eq, ReadPrec [DescribeRulesetResponse]
ReadPrec DescribeRulesetResponse
Int -> ReadS DescribeRulesetResponse
ReadS [DescribeRulesetResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeRulesetResponse]
$creadListPrec :: ReadPrec [DescribeRulesetResponse]
readPrec :: ReadPrec DescribeRulesetResponse
$creadPrec :: ReadPrec DescribeRulesetResponse
readList :: ReadS [DescribeRulesetResponse]
$creadList :: ReadS [DescribeRulesetResponse]
readsPrec :: Int -> ReadS DescribeRulesetResponse
$creadsPrec :: Int -> ReadS DescribeRulesetResponse
Prelude.Read, Int -> DescribeRulesetResponse -> ShowS
[DescribeRulesetResponse] -> ShowS
DescribeRulesetResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeRulesetResponse] -> ShowS
$cshowList :: [DescribeRulesetResponse] -> ShowS
show :: DescribeRulesetResponse -> String
$cshow :: DescribeRulesetResponse -> String
showsPrec :: Int -> DescribeRulesetResponse -> ShowS
$cshowsPrec :: Int -> DescribeRulesetResponse -> ShowS
Prelude.Show, forall x. Rep DescribeRulesetResponse x -> DescribeRulesetResponse
forall x. DescribeRulesetResponse -> Rep DescribeRulesetResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeRulesetResponse x -> DescribeRulesetResponse
$cfrom :: forall x. DescribeRulesetResponse -> Rep DescribeRulesetResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeRulesetResponse' 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:
--
-- 'createDate', 'describeRulesetResponse_createDate' - The date and time that the ruleset was created.
--
-- 'createdBy', 'describeRulesetResponse_createdBy' - The Amazon Resource Name (ARN) of the user who created the ruleset.
--
-- 'description', 'describeRulesetResponse_description' - The description of the ruleset.
--
-- 'lastModifiedBy', 'describeRulesetResponse_lastModifiedBy' - The Amazon Resource Name (ARN) of the user who last modified the
-- ruleset.
--
-- 'lastModifiedDate', 'describeRulesetResponse_lastModifiedDate' - The modification date and time of the ruleset.
--
-- 'resourceArn', 'describeRulesetResponse_resourceArn' - The Amazon Resource Name (ARN) for the ruleset.
--
-- 'rules', 'describeRulesetResponse_rules' - A list of rules that are defined with the ruleset. A rule includes one
-- or more checks to be validated on a DataBrew dataset.
--
-- 'tags', 'describeRulesetResponse_tags' - Metadata tags that have been applied to the ruleset.
--
-- 'targetArn', 'describeRulesetResponse_targetArn' - The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset
-- is associated with.
--
-- 'httpStatus', 'describeRulesetResponse_httpStatus' - The response's http status code.
--
-- 'name', 'describeRulesetResponse_name' - The name of the ruleset.
newDescribeRulesetResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'name'
  Prelude.Text ->
  DescribeRulesetResponse
newDescribeRulesetResponse :: Int -> Text -> DescribeRulesetResponse
newDescribeRulesetResponse Int
pHttpStatus_ Text
pName_ =
  DescribeRulesetResponse'
    { $sel:createDate:DescribeRulesetResponse' :: Maybe POSIX
createDate =
        forall a. Maybe a
Prelude.Nothing,
      $sel:createdBy:DescribeRulesetResponse' :: Maybe Text
createdBy = forall a. Maybe a
Prelude.Nothing,
      $sel:description:DescribeRulesetResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedBy:DescribeRulesetResponse' :: Maybe Text
lastModifiedBy = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedDate:DescribeRulesetResponse' :: Maybe POSIX
lastModifiedDate = forall a. Maybe a
Prelude.Nothing,
      $sel:resourceArn:DescribeRulesetResponse' :: Maybe Text
resourceArn = forall a. Maybe a
Prelude.Nothing,
      $sel:rules:DescribeRulesetResponse' :: Maybe (NonEmpty Rule)
rules = forall a. Maybe a
Prelude.Nothing,
      $sel:tags:DescribeRulesetResponse' :: Maybe (HashMap Text Text)
tags = forall a. Maybe a
Prelude.Nothing,
      $sel:targetArn:DescribeRulesetResponse' :: Maybe Text
targetArn = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:DescribeRulesetResponse' :: Int
httpStatus = Int
pHttpStatus_,
      $sel:name:DescribeRulesetResponse' :: Text
name = Text
pName_
    }

-- | The date and time that the ruleset was created.
describeRulesetResponse_createDate :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.UTCTime)
describeRulesetResponse_createDate :: Lens' DescribeRulesetResponse (Maybe UTCTime)
describeRulesetResponse_createDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRulesetResponse' {Maybe POSIX
createDate :: Maybe POSIX
$sel:createDate:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe POSIX
createDate} -> Maybe POSIX
createDate) (\s :: DescribeRulesetResponse
s@DescribeRulesetResponse' {} Maybe POSIX
a -> DescribeRulesetResponse
s {$sel:createDate:DescribeRulesetResponse' :: Maybe POSIX
createDate = Maybe POSIX
a} :: DescribeRulesetResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The Amazon Resource Name (ARN) of the user who created the ruleset.
describeRulesetResponse_createdBy :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.Text)
describeRulesetResponse_createdBy :: Lens' DescribeRulesetResponse (Maybe Text)
describeRulesetResponse_createdBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRulesetResponse' {Maybe Text
createdBy :: Maybe Text
$sel:createdBy:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe Text
createdBy} -> Maybe Text
createdBy) (\s :: DescribeRulesetResponse
s@DescribeRulesetResponse' {} Maybe Text
a -> DescribeRulesetResponse
s {$sel:createdBy:DescribeRulesetResponse' :: Maybe Text
createdBy = Maybe Text
a} :: DescribeRulesetResponse)

-- | The description of the ruleset.
describeRulesetResponse_description :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.Text)
describeRulesetResponse_description :: Lens' DescribeRulesetResponse (Maybe Text)
describeRulesetResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRulesetResponse' {Maybe Text
description :: Maybe Text
$sel:description:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: DescribeRulesetResponse
s@DescribeRulesetResponse' {} Maybe Text
a -> DescribeRulesetResponse
s {$sel:description:DescribeRulesetResponse' :: Maybe Text
description = Maybe Text
a} :: DescribeRulesetResponse)

-- | The Amazon Resource Name (ARN) of the user who last modified the
-- ruleset.
describeRulesetResponse_lastModifiedBy :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.Text)
describeRulesetResponse_lastModifiedBy :: Lens' DescribeRulesetResponse (Maybe Text)
describeRulesetResponse_lastModifiedBy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRulesetResponse' {Maybe Text
lastModifiedBy :: Maybe Text
$sel:lastModifiedBy:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe Text
lastModifiedBy} -> Maybe Text
lastModifiedBy) (\s :: DescribeRulesetResponse
s@DescribeRulesetResponse' {} Maybe Text
a -> DescribeRulesetResponse
s {$sel:lastModifiedBy:DescribeRulesetResponse' :: Maybe Text
lastModifiedBy = Maybe Text
a} :: DescribeRulesetResponse)

-- | The modification date and time of the ruleset.
describeRulesetResponse_lastModifiedDate :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.UTCTime)
describeRulesetResponse_lastModifiedDate :: Lens' DescribeRulesetResponse (Maybe UTCTime)
describeRulesetResponse_lastModifiedDate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRulesetResponse' {Maybe POSIX
lastModifiedDate :: Maybe POSIX
$sel:lastModifiedDate:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe POSIX
lastModifiedDate} -> Maybe POSIX
lastModifiedDate) (\s :: DescribeRulesetResponse
s@DescribeRulesetResponse' {} Maybe POSIX
a -> DescribeRulesetResponse
s {$sel:lastModifiedDate:DescribeRulesetResponse' :: Maybe POSIX
lastModifiedDate = Maybe POSIX
a} :: DescribeRulesetResponse) 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 (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The Amazon Resource Name (ARN) for the ruleset.
describeRulesetResponse_resourceArn :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.Text)
describeRulesetResponse_resourceArn :: Lens' DescribeRulesetResponse (Maybe Text)
describeRulesetResponse_resourceArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRulesetResponse' {Maybe Text
resourceArn :: Maybe Text
$sel:resourceArn:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe Text
resourceArn} -> Maybe Text
resourceArn) (\s :: DescribeRulesetResponse
s@DescribeRulesetResponse' {} Maybe Text
a -> DescribeRulesetResponse
s {$sel:resourceArn:DescribeRulesetResponse' :: Maybe Text
resourceArn = Maybe Text
a} :: DescribeRulesetResponse)

-- | A list of rules that are defined with the ruleset. A rule includes one
-- or more checks to be validated on a DataBrew dataset.
describeRulesetResponse_rules :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe (Prelude.NonEmpty Rule))
describeRulesetResponse_rules :: Lens' DescribeRulesetResponse (Maybe (NonEmpty Rule))
describeRulesetResponse_rules = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRulesetResponse' {Maybe (NonEmpty Rule)
rules :: Maybe (NonEmpty Rule)
$sel:rules:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe (NonEmpty Rule)
rules} -> Maybe (NonEmpty Rule)
rules) (\s :: DescribeRulesetResponse
s@DescribeRulesetResponse' {} Maybe (NonEmpty Rule)
a -> DescribeRulesetResponse
s {$sel:rules:DescribeRulesetResponse' :: Maybe (NonEmpty Rule)
rules = Maybe (NonEmpty Rule)
a} :: DescribeRulesetResponse) 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

-- | Metadata tags that have been applied to the ruleset.
describeRulesetResponse_tags :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeRulesetResponse_tags :: Lens' DescribeRulesetResponse (Maybe (HashMap Text Text))
describeRulesetResponse_tags = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRulesetResponse' {Maybe (HashMap Text Text)
tags :: Maybe (HashMap Text Text)
$sel:tags:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe (HashMap Text Text)
tags} -> Maybe (HashMap Text Text)
tags) (\s :: DescribeRulesetResponse
s@DescribeRulesetResponse' {} Maybe (HashMap Text Text)
a -> DescribeRulesetResponse
s {$sel:tags:DescribeRulesetResponse' :: Maybe (HashMap Text Text)
tags = Maybe (HashMap Text Text)
a} :: DescribeRulesetResponse) 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

-- | The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset
-- is associated with.
describeRulesetResponse_targetArn :: Lens.Lens' DescribeRulesetResponse (Prelude.Maybe Prelude.Text)
describeRulesetResponse_targetArn :: Lens' DescribeRulesetResponse (Maybe Text)
describeRulesetResponse_targetArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRulesetResponse' {Maybe Text
targetArn :: Maybe Text
$sel:targetArn:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe Text
targetArn} -> Maybe Text
targetArn) (\s :: DescribeRulesetResponse
s@DescribeRulesetResponse' {} Maybe Text
a -> DescribeRulesetResponse
s {$sel:targetArn:DescribeRulesetResponse' :: Maybe Text
targetArn = Maybe Text
a} :: DescribeRulesetResponse)

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

-- | The name of the ruleset.
describeRulesetResponse_name :: Lens.Lens' DescribeRulesetResponse Prelude.Text
describeRulesetResponse_name :: Lens' DescribeRulesetResponse Text
describeRulesetResponse_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeRulesetResponse' {Text
name :: Text
$sel:name:DescribeRulesetResponse' :: DescribeRulesetResponse -> Text
name} -> Text
name) (\s :: DescribeRulesetResponse
s@DescribeRulesetResponse' {} Text
a -> DescribeRulesetResponse
s {$sel:name:DescribeRulesetResponse' :: Text
name = Text
a} :: DescribeRulesetResponse)

instance Prelude.NFData DescribeRulesetResponse where
  rnf :: DescribeRulesetResponse -> ()
rnf DescribeRulesetResponse' {Int
Maybe (NonEmpty Rule)
Maybe Text
Maybe (HashMap Text Text)
Maybe POSIX
Text
name :: Text
httpStatus :: Int
targetArn :: Maybe Text
tags :: Maybe (HashMap Text Text)
rules :: Maybe (NonEmpty Rule)
resourceArn :: Maybe Text
lastModifiedDate :: Maybe POSIX
lastModifiedBy :: Maybe Text
description :: Maybe Text
createdBy :: Maybe Text
createDate :: Maybe POSIX
$sel:name:DescribeRulesetResponse' :: DescribeRulesetResponse -> Text
$sel:httpStatus:DescribeRulesetResponse' :: DescribeRulesetResponse -> Int
$sel:targetArn:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe Text
$sel:tags:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe (HashMap Text Text)
$sel:rules:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe (NonEmpty Rule)
$sel:resourceArn:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe Text
$sel:lastModifiedDate:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe POSIX
$sel:lastModifiedBy:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe Text
$sel:description:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe Text
$sel:createdBy:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe Text
$sel:createDate:DescribeRulesetResponse' :: DescribeRulesetResponse -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
createdBy
      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 Text
lastModifiedBy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedDate
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
resourceArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty Rule)
rules
      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 Text
targetArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
name