{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.Glue.Types.EvaluateDataQuality 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.DQResultsPublishingOptions
import Amazonka.Glue.Types.DQStopJobOnFailureOptions
import Amazonka.Glue.Types.DQTransformOutput
import qualified Amazonka.Prelude as Prelude
data EvaluateDataQuality = EvaluateDataQuality'
{
EvaluateDataQuality -> Maybe DQTransformOutput
output :: Prelude.Maybe DQTransformOutput,
EvaluateDataQuality -> Maybe DQResultsPublishingOptions
publishingOptions :: Prelude.Maybe DQResultsPublishingOptions,
EvaluateDataQuality -> Maybe DQStopJobOnFailureOptions
stopJobOnFailureOptions :: Prelude.Maybe DQStopJobOnFailureOptions,
EvaluateDataQuality -> Text
name :: Prelude.Text,
EvaluateDataQuality -> NonEmpty Text
inputs :: Prelude.NonEmpty Prelude.Text,
EvaluateDataQuality -> Text
ruleset :: Prelude.Text
}
deriving (EvaluateDataQuality -> EvaluateDataQuality -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EvaluateDataQuality -> EvaluateDataQuality -> Bool
$c/= :: EvaluateDataQuality -> EvaluateDataQuality -> Bool
== :: EvaluateDataQuality -> EvaluateDataQuality -> Bool
$c== :: EvaluateDataQuality -> EvaluateDataQuality -> Bool
Prelude.Eq, ReadPrec [EvaluateDataQuality]
ReadPrec EvaluateDataQuality
Int -> ReadS EvaluateDataQuality
ReadS [EvaluateDataQuality]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [EvaluateDataQuality]
$creadListPrec :: ReadPrec [EvaluateDataQuality]
readPrec :: ReadPrec EvaluateDataQuality
$creadPrec :: ReadPrec EvaluateDataQuality
readList :: ReadS [EvaluateDataQuality]
$creadList :: ReadS [EvaluateDataQuality]
readsPrec :: Int -> ReadS EvaluateDataQuality
$creadsPrec :: Int -> ReadS EvaluateDataQuality
Prelude.Read, Int -> EvaluateDataQuality -> ShowS
[EvaluateDataQuality] -> ShowS
EvaluateDataQuality -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EvaluateDataQuality] -> ShowS
$cshowList :: [EvaluateDataQuality] -> ShowS
show :: EvaluateDataQuality -> String
$cshow :: EvaluateDataQuality -> String
showsPrec :: Int -> EvaluateDataQuality -> ShowS
$cshowsPrec :: Int -> EvaluateDataQuality -> ShowS
Prelude.Show, forall x. Rep EvaluateDataQuality x -> EvaluateDataQuality
forall x. EvaluateDataQuality -> Rep EvaluateDataQuality x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep EvaluateDataQuality x -> EvaluateDataQuality
$cfrom :: forall x. EvaluateDataQuality -> Rep EvaluateDataQuality x
Prelude.Generic)
newEvaluateDataQuality ::
Prelude.Text ->
Prelude.NonEmpty Prelude.Text ->
Prelude.Text ->
EvaluateDataQuality
newEvaluateDataQuality :: Text -> NonEmpty Text -> Text -> EvaluateDataQuality
newEvaluateDataQuality Text
pName_ NonEmpty Text
pInputs_ Text
pRuleset_ =
EvaluateDataQuality'
{ $sel:output:EvaluateDataQuality' :: Maybe DQTransformOutput
output = forall a. Maybe a
Prelude.Nothing,
$sel:publishingOptions:EvaluateDataQuality' :: Maybe DQResultsPublishingOptions
publishingOptions = forall a. Maybe a
Prelude.Nothing,
$sel:stopJobOnFailureOptions:EvaluateDataQuality' :: Maybe DQStopJobOnFailureOptions
stopJobOnFailureOptions = forall a. Maybe a
Prelude.Nothing,
$sel:name:EvaluateDataQuality' :: Text
name = Text
pName_,
$sel:inputs:EvaluateDataQuality' :: NonEmpty Text
inputs = forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced forall t b. AReview t b -> b -> t
Lens.# NonEmpty Text
pInputs_,
$sel:ruleset:EvaluateDataQuality' :: Text
ruleset = Text
pRuleset_
}
evaluateDataQuality_output :: Lens.Lens' EvaluateDataQuality (Prelude.Maybe DQTransformOutput)
evaluateDataQuality_output :: Lens' EvaluateDataQuality (Maybe DQTransformOutput)
evaluateDataQuality_output = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EvaluateDataQuality' {Maybe DQTransformOutput
output :: Maybe DQTransformOutput
$sel:output:EvaluateDataQuality' :: EvaluateDataQuality -> Maybe DQTransformOutput
output} -> Maybe DQTransformOutput
output) (\s :: EvaluateDataQuality
s@EvaluateDataQuality' {} Maybe DQTransformOutput
a -> EvaluateDataQuality
s {$sel:output:EvaluateDataQuality' :: Maybe DQTransformOutput
output = Maybe DQTransformOutput
a} :: EvaluateDataQuality)
evaluateDataQuality_publishingOptions :: Lens.Lens' EvaluateDataQuality (Prelude.Maybe DQResultsPublishingOptions)
evaluateDataQuality_publishingOptions :: Lens' EvaluateDataQuality (Maybe DQResultsPublishingOptions)
evaluateDataQuality_publishingOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EvaluateDataQuality' {Maybe DQResultsPublishingOptions
publishingOptions :: Maybe DQResultsPublishingOptions
$sel:publishingOptions:EvaluateDataQuality' :: EvaluateDataQuality -> Maybe DQResultsPublishingOptions
publishingOptions} -> Maybe DQResultsPublishingOptions
publishingOptions) (\s :: EvaluateDataQuality
s@EvaluateDataQuality' {} Maybe DQResultsPublishingOptions
a -> EvaluateDataQuality
s {$sel:publishingOptions:EvaluateDataQuality' :: Maybe DQResultsPublishingOptions
publishingOptions = Maybe DQResultsPublishingOptions
a} :: EvaluateDataQuality)
evaluateDataQuality_stopJobOnFailureOptions :: Lens.Lens' EvaluateDataQuality (Prelude.Maybe DQStopJobOnFailureOptions)
evaluateDataQuality_stopJobOnFailureOptions :: Lens' EvaluateDataQuality (Maybe DQStopJobOnFailureOptions)
evaluateDataQuality_stopJobOnFailureOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EvaluateDataQuality' {Maybe DQStopJobOnFailureOptions
stopJobOnFailureOptions :: Maybe DQStopJobOnFailureOptions
$sel:stopJobOnFailureOptions:EvaluateDataQuality' :: EvaluateDataQuality -> Maybe DQStopJobOnFailureOptions
stopJobOnFailureOptions} -> Maybe DQStopJobOnFailureOptions
stopJobOnFailureOptions) (\s :: EvaluateDataQuality
s@EvaluateDataQuality' {} Maybe DQStopJobOnFailureOptions
a -> EvaluateDataQuality
s {$sel:stopJobOnFailureOptions:EvaluateDataQuality' :: Maybe DQStopJobOnFailureOptions
stopJobOnFailureOptions = Maybe DQStopJobOnFailureOptions
a} :: EvaluateDataQuality)
evaluateDataQuality_name :: Lens.Lens' EvaluateDataQuality Prelude.Text
evaluateDataQuality_name :: Lens' EvaluateDataQuality Text
evaluateDataQuality_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EvaluateDataQuality' {Text
name :: Text
$sel:name:EvaluateDataQuality' :: EvaluateDataQuality -> Text
name} -> Text
name) (\s :: EvaluateDataQuality
s@EvaluateDataQuality' {} Text
a -> EvaluateDataQuality
s {$sel:name:EvaluateDataQuality' :: Text
name = Text
a} :: EvaluateDataQuality)
evaluateDataQuality_inputs :: Lens.Lens' EvaluateDataQuality (Prelude.NonEmpty Prelude.Text)
evaluateDataQuality_inputs :: Lens' EvaluateDataQuality (NonEmpty Text)
evaluateDataQuality_inputs = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EvaluateDataQuality' {NonEmpty Text
inputs :: NonEmpty Text
$sel:inputs:EvaluateDataQuality' :: EvaluateDataQuality -> NonEmpty Text
inputs} -> NonEmpty Text
inputs) (\s :: EvaluateDataQuality
s@EvaluateDataQuality' {} NonEmpty Text
a -> EvaluateDataQuality
s {$sel:inputs:EvaluateDataQuality' :: NonEmpty Text
inputs = NonEmpty Text
a} :: EvaluateDataQuality) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
evaluateDataQuality_ruleset :: Lens.Lens' EvaluateDataQuality Prelude.Text
evaluateDataQuality_ruleset :: Lens' EvaluateDataQuality Text
evaluateDataQuality_ruleset = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EvaluateDataQuality' {Text
ruleset :: Text
$sel:ruleset:EvaluateDataQuality' :: EvaluateDataQuality -> Text
ruleset} -> Text
ruleset) (\s :: EvaluateDataQuality
s@EvaluateDataQuality' {} Text
a -> EvaluateDataQuality
s {$sel:ruleset:EvaluateDataQuality' :: Text
ruleset = Text
a} :: EvaluateDataQuality)
instance Data.FromJSON EvaluateDataQuality where
parseJSON :: Value -> Parser EvaluateDataQuality
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"EvaluateDataQuality"
( \Object
x ->
Maybe DQTransformOutput
-> Maybe DQResultsPublishingOptions
-> Maybe DQStopJobOnFailureOptions
-> Text
-> NonEmpty Text
-> Text
-> EvaluateDataQuality
EvaluateDataQuality'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Output")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"PublishingOptions")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StopJobOnFailureOptions")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"Name")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"Inputs")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"Ruleset")
)
instance Prelude.Hashable EvaluateDataQuality where
hashWithSalt :: Int -> EvaluateDataQuality -> Int
hashWithSalt Int
_salt EvaluateDataQuality' {Maybe DQResultsPublishingOptions
Maybe DQStopJobOnFailureOptions
Maybe DQTransformOutput
NonEmpty Text
Text
ruleset :: Text
inputs :: NonEmpty Text
name :: Text
stopJobOnFailureOptions :: Maybe DQStopJobOnFailureOptions
publishingOptions :: Maybe DQResultsPublishingOptions
output :: Maybe DQTransformOutput
$sel:ruleset:EvaluateDataQuality' :: EvaluateDataQuality -> Text
$sel:inputs:EvaluateDataQuality' :: EvaluateDataQuality -> NonEmpty Text
$sel:name:EvaluateDataQuality' :: EvaluateDataQuality -> Text
$sel:stopJobOnFailureOptions:EvaluateDataQuality' :: EvaluateDataQuality -> Maybe DQStopJobOnFailureOptions
$sel:publishingOptions:EvaluateDataQuality' :: EvaluateDataQuality -> Maybe DQResultsPublishingOptions
$sel:output:EvaluateDataQuality' :: EvaluateDataQuality -> Maybe DQTransformOutput
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DQTransformOutput
output
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DQResultsPublishingOptions
publishingOptions
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DQStopJobOnFailureOptions
stopJobOnFailureOptions
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
name
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` NonEmpty Text
inputs
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
ruleset
instance Prelude.NFData EvaluateDataQuality where
rnf :: EvaluateDataQuality -> ()
rnf EvaluateDataQuality' {Maybe DQResultsPublishingOptions
Maybe DQStopJobOnFailureOptions
Maybe DQTransformOutput
NonEmpty Text
Text
ruleset :: Text
inputs :: NonEmpty Text
name :: Text
stopJobOnFailureOptions :: Maybe DQStopJobOnFailureOptions
publishingOptions :: Maybe DQResultsPublishingOptions
output :: Maybe DQTransformOutput
$sel:ruleset:EvaluateDataQuality' :: EvaluateDataQuality -> Text
$sel:inputs:EvaluateDataQuality' :: EvaluateDataQuality -> NonEmpty Text
$sel:name:EvaluateDataQuality' :: EvaluateDataQuality -> Text
$sel:stopJobOnFailureOptions:EvaluateDataQuality' :: EvaluateDataQuality -> Maybe DQStopJobOnFailureOptions
$sel:publishingOptions:EvaluateDataQuality' :: EvaluateDataQuality -> Maybe DQResultsPublishingOptions
$sel:output:EvaluateDataQuality' :: EvaluateDataQuality -> Maybe DQTransformOutput
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe DQTransformOutput
output
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DQResultsPublishingOptions
publishingOptions
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DQStopJobOnFailureOptions
stopJobOnFailureOptions
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 NonEmpty Text
inputs
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
ruleset
instance Data.ToJSON EvaluateDataQuality where
toJSON :: EvaluateDataQuality -> Value
toJSON EvaluateDataQuality' {Maybe DQResultsPublishingOptions
Maybe DQStopJobOnFailureOptions
Maybe DQTransformOutput
NonEmpty Text
Text
ruleset :: Text
inputs :: NonEmpty Text
name :: Text
stopJobOnFailureOptions :: Maybe DQStopJobOnFailureOptions
publishingOptions :: Maybe DQResultsPublishingOptions
output :: Maybe DQTransformOutput
$sel:ruleset:EvaluateDataQuality' :: EvaluateDataQuality -> Text
$sel:inputs:EvaluateDataQuality' :: EvaluateDataQuality -> NonEmpty Text
$sel:name:EvaluateDataQuality' :: EvaluateDataQuality -> Text
$sel:stopJobOnFailureOptions:EvaluateDataQuality' :: EvaluateDataQuality -> Maybe DQStopJobOnFailureOptions
$sel:publishingOptions:EvaluateDataQuality' :: EvaluateDataQuality -> Maybe DQResultsPublishingOptions
$sel:output:EvaluateDataQuality' :: EvaluateDataQuality -> Maybe DQTransformOutput
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"Output" 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 DQTransformOutput
output,
(Key
"PublishingOptions" 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 DQResultsPublishingOptions
publishingOptions,
(Key
"StopJobOnFailureOptions" 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 DQStopJobOnFailureOptions
stopJobOnFailureOptions,
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
"Inputs" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= NonEmpty Text
inputs),
forall a. a -> Maybe a
Prelude.Just (Key
"Ruleset" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
ruleset)
]
)