{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.Glue.Types.TransformFilterCriteria
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Glue.Types.TransformFilterCriteria 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.SchemaColumn
import Amazonka.Glue.Types.TransformStatusType
import Amazonka.Glue.Types.TransformType
import qualified Amazonka.Prelude as Prelude

-- | The criteria used to filter the machine learning transforms.
--
-- /See:/ 'newTransformFilterCriteria' smart constructor.
data TransformFilterCriteria = TransformFilterCriteria'
  { -- | The time and date after which the transforms were created.
    TransformFilterCriteria -> Maybe POSIX
createdAfter :: Prelude.Maybe Data.POSIX,
    -- | The time and date before which the transforms were created.
    TransformFilterCriteria -> Maybe POSIX
createdBefore :: Prelude.Maybe Data.POSIX,
    -- | This value determines which version of Glue this machine learning
    -- transform is compatible with. Glue 1.0 is recommended for most
    -- customers. If the value is not set, the Glue compatibility defaults to
    -- Glue 0.9. For more information, see
    -- <https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions Glue Versions>
    -- in the developer guide.
    TransformFilterCriteria -> Maybe Text
glueVersion :: Prelude.Maybe Prelude.Text,
    -- | Filter on transforms last modified after this date.
    TransformFilterCriteria -> Maybe POSIX
lastModifiedAfter :: Prelude.Maybe Data.POSIX,
    -- | Filter on transforms last modified before this date.
    TransformFilterCriteria -> Maybe POSIX
lastModifiedBefore :: Prelude.Maybe Data.POSIX,
    -- | A unique transform name that is used to filter the machine learning
    -- transforms.
    TransformFilterCriteria -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | Filters on datasets with a specific schema. The @Map\<Column, Type>@
    -- object is an array of key-value pairs representing the schema this
    -- transform accepts, where @Column@ is the name of a column, and @Type@ is
    -- the type of the data such as an integer or string. Has an upper bound of
    -- 100 columns.
    TransformFilterCriteria -> Maybe [SchemaColumn]
schema :: Prelude.Maybe [SchemaColumn],
    -- | Filters the list of machine learning transforms by the last known status
    -- of the transforms (to indicate whether a transform can be used or not).
    -- One of \"NOT_READY\", \"READY\", or \"DELETING\".
    TransformFilterCriteria -> Maybe TransformStatusType
status :: Prelude.Maybe TransformStatusType,
    -- | The type of machine learning transform that is used to filter the
    -- machine learning transforms.
    TransformFilterCriteria -> Maybe TransformType
transformType :: Prelude.Maybe TransformType
  }
  deriving (TransformFilterCriteria -> TransformFilterCriteria -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TransformFilterCriteria -> TransformFilterCriteria -> Bool
$c/= :: TransformFilterCriteria -> TransformFilterCriteria -> Bool
== :: TransformFilterCriteria -> TransformFilterCriteria -> Bool
$c== :: TransformFilterCriteria -> TransformFilterCriteria -> Bool
Prelude.Eq, ReadPrec [TransformFilterCriteria]
ReadPrec TransformFilterCriteria
Int -> ReadS TransformFilterCriteria
ReadS [TransformFilterCriteria]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TransformFilterCriteria]
$creadListPrec :: ReadPrec [TransformFilterCriteria]
readPrec :: ReadPrec TransformFilterCriteria
$creadPrec :: ReadPrec TransformFilterCriteria
readList :: ReadS [TransformFilterCriteria]
$creadList :: ReadS [TransformFilterCriteria]
readsPrec :: Int -> ReadS TransformFilterCriteria
$creadsPrec :: Int -> ReadS TransformFilterCriteria
Prelude.Read, Int -> TransformFilterCriteria -> ShowS
[TransformFilterCriteria] -> ShowS
TransformFilterCriteria -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TransformFilterCriteria] -> ShowS
$cshowList :: [TransformFilterCriteria] -> ShowS
show :: TransformFilterCriteria -> String
$cshow :: TransformFilterCriteria -> String
showsPrec :: Int -> TransformFilterCriteria -> ShowS
$cshowsPrec :: Int -> TransformFilterCriteria -> ShowS
Prelude.Show, forall x. Rep TransformFilterCriteria x -> TransformFilterCriteria
forall x. TransformFilterCriteria -> Rep TransformFilterCriteria x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TransformFilterCriteria x -> TransformFilterCriteria
$cfrom :: forall x. TransformFilterCriteria -> Rep TransformFilterCriteria x
Prelude.Generic)

-- |
-- Create a value of 'TransformFilterCriteria' 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:
--
-- 'createdAfter', 'transformFilterCriteria_createdAfter' - The time and date after which the transforms were created.
--
-- 'createdBefore', 'transformFilterCriteria_createdBefore' - The time and date before which the transforms were created.
--
-- 'glueVersion', 'transformFilterCriteria_glueVersion' - This value determines which version of Glue this machine learning
-- transform is compatible with. Glue 1.0 is recommended for most
-- customers. If the value is not set, the Glue compatibility defaults to
-- Glue 0.9. For more information, see
-- <https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions Glue Versions>
-- in the developer guide.
--
-- 'lastModifiedAfter', 'transformFilterCriteria_lastModifiedAfter' - Filter on transforms last modified after this date.
--
-- 'lastModifiedBefore', 'transformFilterCriteria_lastModifiedBefore' - Filter on transforms last modified before this date.
--
-- 'name', 'transformFilterCriteria_name' - A unique transform name that is used to filter the machine learning
-- transforms.
--
-- 'schema', 'transformFilterCriteria_schema' - Filters on datasets with a specific schema. The @Map\<Column, Type>@
-- object is an array of key-value pairs representing the schema this
-- transform accepts, where @Column@ is the name of a column, and @Type@ is
-- the type of the data such as an integer or string. Has an upper bound of
-- 100 columns.
--
-- 'status', 'transformFilterCriteria_status' - Filters the list of machine learning transforms by the last known status
-- of the transforms (to indicate whether a transform can be used or not).
-- One of \"NOT_READY\", \"READY\", or \"DELETING\".
--
-- 'transformType', 'transformFilterCriteria_transformType' - The type of machine learning transform that is used to filter the
-- machine learning transforms.
newTransformFilterCriteria ::
  TransformFilterCriteria
newTransformFilterCriteria :: TransformFilterCriteria
newTransformFilterCriteria =
  TransformFilterCriteria'
    { $sel:createdAfter:TransformFilterCriteria' :: Maybe POSIX
createdAfter =
        forall a. Maybe a
Prelude.Nothing,
      $sel:createdBefore:TransformFilterCriteria' :: Maybe POSIX
createdBefore = forall a. Maybe a
Prelude.Nothing,
      $sel:glueVersion:TransformFilterCriteria' :: Maybe Text
glueVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedAfter:TransformFilterCriteria' :: Maybe POSIX
lastModifiedAfter = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedBefore:TransformFilterCriteria' :: Maybe POSIX
lastModifiedBefore = forall a. Maybe a
Prelude.Nothing,
      $sel:name:TransformFilterCriteria' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:schema:TransformFilterCriteria' :: Maybe [SchemaColumn]
schema = forall a. Maybe a
Prelude.Nothing,
      $sel:status:TransformFilterCriteria' :: Maybe TransformStatusType
status = forall a. Maybe a
Prelude.Nothing,
      $sel:transformType:TransformFilterCriteria' :: Maybe TransformType
transformType = forall a. Maybe a
Prelude.Nothing
    }

-- | The time and date after which the transforms were created.
transformFilterCriteria_createdAfter :: Lens.Lens' TransformFilterCriteria (Prelude.Maybe Prelude.UTCTime)
transformFilterCriteria_createdAfter :: Lens' TransformFilterCriteria (Maybe UTCTime)
transformFilterCriteria_createdAfter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformFilterCriteria' {Maybe POSIX
createdAfter :: Maybe POSIX
$sel:createdAfter:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
createdAfter} -> Maybe POSIX
createdAfter) (\s :: TransformFilterCriteria
s@TransformFilterCriteria' {} Maybe POSIX
a -> TransformFilterCriteria
s {$sel:createdAfter:TransformFilterCriteria' :: Maybe POSIX
createdAfter = Maybe POSIX
a} :: TransformFilterCriteria) 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 time and date before which the transforms were created.
transformFilterCriteria_createdBefore :: Lens.Lens' TransformFilterCriteria (Prelude.Maybe Prelude.UTCTime)
transformFilterCriteria_createdBefore :: Lens' TransformFilterCriteria (Maybe UTCTime)
transformFilterCriteria_createdBefore = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformFilterCriteria' {Maybe POSIX
createdBefore :: Maybe POSIX
$sel:createdBefore:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
createdBefore} -> Maybe POSIX
createdBefore) (\s :: TransformFilterCriteria
s@TransformFilterCriteria' {} Maybe POSIX
a -> TransformFilterCriteria
s {$sel:createdBefore:TransformFilterCriteria' :: Maybe POSIX
createdBefore = Maybe POSIX
a} :: TransformFilterCriteria) 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

-- | This value determines which version of Glue this machine learning
-- transform is compatible with. Glue 1.0 is recommended for most
-- customers. If the value is not set, the Glue compatibility defaults to
-- Glue 0.9. For more information, see
-- <https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions Glue Versions>
-- in the developer guide.
transformFilterCriteria_glueVersion :: Lens.Lens' TransformFilterCriteria (Prelude.Maybe Prelude.Text)
transformFilterCriteria_glueVersion :: Lens' TransformFilterCriteria (Maybe Text)
transformFilterCriteria_glueVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformFilterCriteria' {Maybe Text
glueVersion :: Maybe Text
$sel:glueVersion:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe Text
glueVersion} -> Maybe Text
glueVersion) (\s :: TransformFilterCriteria
s@TransformFilterCriteria' {} Maybe Text
a -> TransformFilterCriteria
s {$sel:glueVersion:TransformFilterCriteria' :: Maybe Text
glueVersion = Maybe Text
a} :: TransformFilterCriteria)

-- | Filter on transforms last modified after this date.
transformFilterCriteria_lastModifiedAfter :: Lens.Lens' TransformFilterCriteria (Prelude.Maybe Prelude.UTCTime)
transformFilterCriteria_lastModifiedAfter :: Lens' TransformFilterCriteria (Maybe UTCTime)
transformFilterCriteria_lastModifiedAfter = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformFilterCriteria' {Maybe POSIX
lastModifiedAfter :: Maybe POSIX
$sel:lastModifiedAfter:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
lastModifiedAfter} -> Maybe POSIX
lastModifiedAfter) (\s :: TransformFilterCriteria
s@TransformFilterCriteria' {} Maybe POSIX
a -> TransformFilterCriteria
s {$sel:lastModifiedAfter:TransformFilterCriteria' :: Maybe POSIX
lastModifiedAfter = Maybe POSIX
a} :: TransformFilterCriteria) 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

-- | Filter on transforms last modified before this date.
transformFilterCriteria_lastModifiedBefore :: Lens.Lens' TransformFilterCriteria (Prelude.Maybe Prelude.UTCTime)
transformFilterCriteria_lastModifiedBefore :: Lens' TransformFilterCriteria (Maybe UTCTime)
transformFilterCriteria_lastModifiedBefore = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformFilterCriteria' {Maybe POSIX
lastModifiedBefore :: Maybe POSIX
$sel:lastModifiedBefore:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
lastModifiedBefore} -> Maybe POSIX
lastModifiedBefore) (\s :: TransformFilterCriteria
s@TransformFilterCriteria' {} Maybe POSIX
a -> TransformFilterCriteria
s {$sel:lastModifiedBefore:TransformFilterCriteria' :: Maybe POSIX
lastModifiedBefore = Maybe POSIX
a} :: TransformFilterCriteria) 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

-- | A unique transform name that is used to filter the machine learning
-- transforms.
transformFilterCriteria_name :: Lens.Lens' TransformFilterCriteria (Prelude.Maybe Prelude.Text)
transformFilterCriteria_name :: Lens' TransformFilterCriteria (Maybe Text)
transformFilterCriteria_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformFilterCriteria' {Maybe Text
name :: Maybe Text
$sel:name:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe Text
name} -> Maybe Text
name) (\s :: TransformFilterCriteria
s@TransformFilterCriteria' {} Maybe Text
a -> TransformFilterCriteria
s {$sel:name:TransformFilterCriteria' :: Maybe Text
name = Maybe Text
a} :: TransformFilterCriteria)

-- | Filters on datasets with a specific schema. The @Map\<Column, Type>@
-- object is an array of key-value pairs representing the schema this
-- transform accepts, where @Column@ is the name of a column, and @Type@ is
-- the type of the data such as an integer or string. Has an upper bound of
-- 100 columns.
transformFilterCriteria_schema :: Lens.Lens' TransformFilterCriteria (Prelude.Maybe [SchemaColumn])
transformFilterCriteria_schema :: Lens' TransformFilterCriteria (Maybe [SchemaColumn])
transformFilterCriteria_schema = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformFilterCriteria' {Maybe [SchemaColumn]
schema :: Maybe [SchemaColumn]
$sel:schema:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe [SchemaColumn]
schema} -> Maybe [SchemaColumn]
schema) (\s :: TransformFilterCriteria
s@TransformFilterCriteria' {} Maybe [SchemaColumn]
a -> TransformFilterCriteria
s {$sel:schema:TransformFilterCriteria' :: Maybe [SchemaColumn]
schema = Maybe [SchemaColumn]
a} :: TransformFilterCriteria) 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

-- | Filters the list of machine learning transforms by the last known status
-- of the transforms (to indicate whether a transform can be used or not).
-- One of \"NOT_READY\", \"READY\", or \"DELETING\".
transformFilterCriteria_status :: Lens.Lens' TransformFilterCriteria (Prelude.Maybe TransformStatusType)
transformFilterCriteria_status :: Lens' TransformFilterCriteria (Maybe TransformStatusType)
transformFilterCriteria_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformFilterCriteria' {Maybe TransformStatusType
status :: Maybe TransformStatusType
$sel:status:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe TransformStatusType
status} -> Maybe TransformStatusType
status) (\s :: TransformFilterCriteria
s@TransformFilterCriteria' {} Maybe TransformStatusType
a -> TransformFilterCriteria
s {$sel:status:TransformFilterCriteria' :: Maybe TransformStatusType
status = Maybe TransformStatusType
a} :: TransformFilterCriteria)

-- | The type of machine learning transform that is used to filter the
-- machine learning transforms.
transformFilterCriteria_transformType :: Lens.Lens' TransformFilterCriteria (Prelude.Maybe TransformType)
transformFilterCriteria_transformType :: Lens' TransformFilterCriteria (Maybe TransformType)
transformFilterCriteria_transformType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformFilterCriteria' {Maybe TransformType
transformType :: Maybe TransformType
$sel:transformType:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe TransformType
transformType} -> Maybe TransformType
transformType) (\s :: TransformFilterCriteria
s@TransformFilterCriteria' {} Maybe TransformType
a -> TransformFilterCriteria
s {$sel:transformType:TransformFilterCriteria' :: Maybe TransformType
transformType = Maybe TransformType
a} :: TransformFilterCriteria)

instance Prelude.Hashable TransformFilterCriteria where
  hashWithSalt :: Int -> TransformFilterCriteria -> Int
hashWithSalt Int
_salt TransformFilterCriteria' {Maybe [SchemaColumn]
Maybe Text
Maybe POSIX
Maybe TransformStatusType
Maybe TransformType
transformType :: Maybe TransformType
status :: Maybe TransformStatusType
schema :: Maybe [SchemaColumn]
name :: Maybe Text
lastModifiedBefore :: Maybe POSIX
lastModifiedAfter :: Maybe POSIX
glueVersion :: Maybe Text
createdBefore :: Maybe POSIX
createdAfter :: Maybe POSIX
$sel:transformType:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe TransformType
$sel:status:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe TransformStatusType
$sel:schema:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe [SchemaColumn]
$sel:name:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe Text
$sel:lastModifiedBefore:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
$sel:lastModifiedAfter:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
$sel:glueVersion:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe Text
$sel:createdBefore:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
$sel:createdAfter:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
createdAfter
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
createdBefore
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
glueVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastModifiedAfter
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastModifiedBefore
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [SchemaColumn]
schema
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TransformStatusType
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TransformType
transformType

instance Prelude.NFData TransformFilterCriteria where
  rnf :: TransformFilterCriteria -> ()
rnf TransformFilterCriteria' {Maybe [SchemaColumn]
Maybe Text
Maybe POSIX
Maybe TransformStatusType
Maybe TransformType
transformType :: Maybe TransformType
status :: Maybe TransformStatusType
schema :: Maybe [SchemaColumn]
name :: Maybe Text
lastModifiedBefore :: Maybe POSIX
lastModifiedAfter :: Maybe POSIX
glueVersion :: Maybe Text
createdBefore :: Maybe POSIX
createdAfter :: Maybe POSIX
$sel:transformType:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe TransformType
$sel:status:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe TransformStatusType
$sel:schema:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe [SchemaColumn]
$sel:name:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe Text
$sel:lastModifiedBefore:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
$sel:lastModifiedAfter:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
$sel:glueVersion:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe Text
$sel:createdBefore:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
$sel:createdAfter:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdAfter
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdBefore
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
glueVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedAfter
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedBefore
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 Maybe [SchemaColumn]
schema
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TransformStatusType
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TransformType
transformType

instance Data.ToJSON TransformFilterCriteria where
  toJSON :: TransformFilterCriteria -> Value
toJSON TransformFilterCriteria' {Maybe [SchemaColumn]
Maybe Text
Maybe POSIX
Maybe TransformStatusType
Maybe TransformType
transformType :: Maybe TransformType
status :: Maybe TransformStatusType
schema :: Maybe [SchemaColumn]
name :: Maybe Text
lastModifiedBefore :: Maybe POSIX
lastModifiedAfter :: Maybe POSIX
glueVersion :: Maybe Text
createdBefore :: Maybe POSIX
createdAfter :: Maybe POSIX
$sel:transformType:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe TransformType
$sel:status:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe TransformStatusType
$sel:schema:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe [SchemaColumn]
$sel:name:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe Text
$sel:lastModifiedBefore:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
$sel:lastModifiedAfter:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
$sel:glueVersion:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe Text
$sel:createdBefore:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
$sel:createdAfter:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"CreatedAfter" 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 POSIX
createdAfter,
            (Key
"CreatedBefore" 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 POSIX
createdBefore,
            (Key
"GlueVersion" 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
glueVersion,
            (Key
"LastModifiedAfter" 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 POSIX
lastModifiedAfter,
            (Key
"LastModifiedBefore" 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 POSIX
lastModifiedBefore,
            (Key
"Name" 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
name,
            (Key
"Schema" 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 [SchemaColumn]
schema,
            (Key
"Status" 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 TransformStatusType
status,
            (Key
"TransformType" 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 TransformType
transformType
          ]
      )