{-# 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-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Glue.Types.TransformFilterCriteria where

import qualified Amazonka.Core as Core
import Amazonka.Glue.Types.SchemaColumn
import Amazonka.Glue.Types.TransformStatusType
import Amazonka.Glue.Types.TransformType
import qualified Amazonka.Lens as Lens
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 Core.POSIX,
    -- | 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,
    -- | Filter on transforms last modified after this date.
    TransformFilterCriteria -> Maybe POSIX
lastModifiedAfter :: Prelude.Maybe Core.POSIX,
    -- | Filter on transforms last modified before this date.
    TransformFilterCriteria -> Maybe POSIX
lastModifiedBefore :: Prelude.Maybe Core.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,
    -- | 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],
    -- | The type of machine learning transform that is used to filter the
    -- machine learning transforms.
    TransformFilterCriteria -> Maybe TransformType
transformType :: Prelude.Maybe TransformType,
    -- | A unique transform name that is used to filter the machine learning
    -- transforms.
    TransformFilterCriteria -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The time and date before which the transforms were created.
    TransformFilterCriteria -> Maybe POSIX
createdBefore :: Prelude.Maybe Core.POSIX
  }
  deriving (TransformFilterCriteria -> TransformFilterCriteria -> Bool
(TransformFilterCriteria -> TransformFilterCriteria -> Bool)
-> (TransformFilterCriteria -> TransformFilterCriteria -> Bool)
-> Eq TransformFilterCriteria
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]
(Int -> ReadS TransformFilterCriteria)
-> ReadS [TransformFilterCriteria]
-> ReadPrec TransformFilterCriteria
-> ReadPrec [TransformFilterCriteria]
-> Read 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
(Int -> TransformFilterCriteria -> ShowS)
-> (TransformFilterCriteria -> String)
-> ([TransformFilterCriteria] -> ShowS)
-> Show TransformFilterCriteria
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.
 TransformFilterCriteria -> Rep TransformFilterCriteria x)
-> (forall x.
    Rep TransformFilterCriteria x -> TransformFilterCriteria)
-> Generic TransformFilterCriteria
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.
--
-- '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\".
--
-- 'lastModifiedAfter', 'transformFilterCriteria_lastModifiedAfter' - Filter on transforms last modified after this date.
--
-- 'lastModifiedBefore', 'transformFilterCriteria_lastModifiedBefore' - Filter on transforms last modified before this date.
--
-- '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.
--
-- '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.
--
-- 'transformType', 'transformFilterCriteria_transformType' - The type of machine learning transform that is used to filter the
-- machine learning transforms.
--
-- 'name', 'transformFilterCriteria_name' - A unique transform name that is used to filter the machine learning
-- transforms.
--
-- 'createdBefore', 'transformFilterCriteria_createdBefore' - The time and date before which the transforms were created.
newTransformFilterCriteria ::
  TransformFilterCriteria
newTransformFilterCriteria :: TransformFilterCriteria
newTransformFilterCriteria =
  TransformFilterCriteria' :: Maybe POSIX
-> Maybe TransformStatusType
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe [SchemaColumn]
-> Maybe TransformType
-> Maybe Text
-> Maybe POSIX
-> TransformFilterCriteria
TransformFilterCriteria'
    { $sel:createdAfter:TransformFilterCriteria' :: Maybe POSIX
createdAfter =
        Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:status:TransformFilterCriteria' :: Maybe TransformStatusType
status = Maybe TransformStatusType
forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedAfter:TransformFilterCriteria' :: Maybe POSIX
lastModifiedAfter = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedBefore:TransformFilterCriteria' :: Maybe POSIX
lastModifiedBefore = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:glueVersion:TransformFilterCriteria' :: Maybe Text
glueVersion = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:schema:TransformFilterCriteria' :: Maybe [SchemaColumn]
schema = Maybe [SchemaColumn]
forall a. Maybe a
Prelude.Nothing,
      $sel:transformType:TransformFilterCriteria' :: Maybe TransformType
transformType = Maybe TransformType
forall a. Maybe a
Prelude.Nothing,
      $sel:name:TransformFilterCriteria' :: Maybe Text
name = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:createdBefore:TransformFilterCriteria' :: Maybe POSIX
createdBefore = Maybe POSIX
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 :: (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformFilterCriteria -> f TransformFilterCriteria
transformFilterCriteria_createdAfter = (TransformFilterCriteria -> Maybe POSIX)
-> (TransformFilterCriteria
    -> Maybe POSIX -> TransformFilterCriteria)
-> Lens
     TransformFilterCriteria
     TransformFilterCriteria
     (Maybe POSIX)
     (Maybe POSIX)
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) ((Maybe POSIX -> f (Maybe POSIX))
 -> TransformFilterCriteria -> f TransformFilterCriteria)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformFilterCriteria
-> f TransformFilterCriteria
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | 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 :: (Maybe TransformStatusType -> f (Maybe TransformStatusType))
-> TransformFilterCriteria -> f TransformFilterCriteria
transformFilterCriteria_status = (TransformFilterCriteria -> Maybe TransformStatusType)
-> (TransformFilterCriteria
    -> Maybe TransformStatusType -> TransformFilterCriteria)
-> Lens
     TransformFilterCriteria
     TransformFilterCriteria
     (Maybe TransformStatusType)
     (Maybe TransformStatusType)
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)

-- | Filter on transforms last modified after this date.
transformFilterCriteria_lastModifiedAfter :: Lens.Lens' TransformFilterCriteria (Prelude.Maybe Prelude.UTCTime)
transformFilterCriteria_lastModifiedAfter :: (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformFilterCriteria -> f TransformFilterCriteria
transformFilterCriteria_lastModifiedAfter = (TransformFilterCriteria -> Maybe POSIX)
-> (TransformFilterCriteria
    -> Maybe POSIX -> TransformFilterCriteria)
-> Lens
     TransformFilterCriteria
     TransformFilterCriteria
     (Maybe POSIX)
     (Maybe POSIX)
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) ((Maybe POSIX -> f (Maybe POSIX))
 -> TransformFilterCriteria -> f TransformFilterCriteria)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformFilterCriteria
-> f TransformFilterCriteria
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Filter on transforms last modified before this date.
transformFilterCriteria_lastModifiedBefore :: Lens.Lens' TransformFilterCriteria (Prelude.Maybe Prelude.UTCTime)
transformFilterCriteria_lastModifiedBefore :: (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformFilterCriteria -> f TransformFilterCriteria
transformFilterCriteria_lastModifiedBefore = (TransformFilterCriteria -> Maybe POSIX)
-> (TransformFilterCriteria
    -> Maybe POSIX -> TransformFilterCriteria)
-> Lens
     TransformFilterCriteria
     TransformFilterCriteria
     (Maybe POSIX)
     (Maybe POSIX)
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) ((Maybe POSIX -> f (Maybe POSIX))
 -> TransformFilterCriteria -> f TransformFilterCriteria)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformFilterCriteria
-> f TransformFilterCriteria
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._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 :: (Maybe Text -> f (Maybe Text))
-> TransformFilterCriteria -> f TransformFilterCriteria
transformFilterCriteria_glueVersion = (TransformFilterCriteria -> Maybe Text)
-> (TransformFilterCriteria
    -> Maybe Text -> TransformFilterCriteria)
-> Lens
     TransformFilterCriteria
     TransformFilterCriteria
     (Maybe Text)
     (Maybe Text)
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)

-- | 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 :: (Maybe [SchemaColumn] -> f (Maybe [SchemaColumn]))
-> TransformFilterCriteria -> f TransformFilterCriteria
transformFilterCriteria_schema = (TransformFilterCriteria -> Maybe [SchemaColumn])
-> (TransformFilterCriteria
    -> Maybe [SchemaColumn] -> TransformFilterCriteria)
-> Lens
     TransformFilterCriteria
     TransformFilterCriteria
     (Maybe [SchemaColumn])
     (Maybe [SchemaColumn])
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) ((Maybe [SchemaColumn] -> f (Maybe [SchemaColumn]))
 -> TransformFilterCriteria -> f TransformFilterCriteria)
-> ((Maybe [SchemaColumn] -> f (Maybe [SchemaColumn]))
    -> Maybe [SchemaColumn] -> f (Maybe [SchemaColumn]))
-> (Maybe [SchemaColumn] -> f (Maybe [SchemaColumn]))
-> TransformFilterCriteria
-> f TransformFilterCriteria
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [SchemaColumn] [SchemaColumn] [SchemaColumn] [SchemaColumn]
-> Iso
     (Maybe [SchemaColumn])
     (Maybe [SchemaColumn])
     (Maybe [SchemaColumn])
     (Maybe [SchemaColumn])
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 AnIso [SchemaColumn] [SchemaColumn] [SchemaColumn] [SchemaColumn]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | 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 :: (Maybe TransformType -> f (Maybe TransformType))
-> TransformFilterCriteria -> f TransformFilterCriteria
transformFilterCriteria_transformType = (TransformFilterCriteria -> Maybe TransformType)
-> (TransformFilterCriteria
    -> Maybe TransformType -> TransformFilterCriteria)
-> Lens
     TransformFilterCriteria
     TransformFilterCriteria
     (Maybe TransformType)
     (Maybe 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)

-- | A unique transform name that is used to filter the machine learning
-- transforms.
transformFilterCriteria_name :: Lens.Lens' TransformFilterCriteria (Prelude.Maybe Prelude.Text)
transformFilterCriteria_name :: (Maybe Text -> f (Maybe Text))
-> TransformFilterCriteria -> f TransformFilterCriteria
transformFilterCriteria_name = (TransformFilterCriteria -> Maybe Text)
-> (TransformFilterCriteria
    -> Maybe Text -> TransformFilterCriteria)
-> Lens
     TransformFilterCriteria
     TransformFilterCriteria
     (Maybe Text)
     (Maybe Text)
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)

-- | The time and date before which the transforms were created.
transformFilterCriteria_createdBefore :: Lens.Lens' TransformFilterCriteria (Prelude.Maybe Prelude.UTCTime)
transformFilterCriteria_createdBefore :: (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformFilterCriteria -> f TransformFilterCriteria
transformFilterCriteria_createdBefore = (TransformFilterCriteria -> Maybe POSIX)
-> (TransformFilterCriteria
    -> Maybe POSIX -> TransformFilterCriteria)
-> Lens
     TransformFilterCriteria
     TransformFilterCriteria
     (Maybe POSIX)
     (Maybe POSIX)
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) ((Maybe POSIX -> f (Maybe POSIX))
 -> TransformFilterCriteria -> f TransformFilterCriteria)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformFilterCriteria
-> f TransformFilterCriteria
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

instance Prelude.Hashable TransformFilterCriteria

instance Prelude.NFData TransformFilterCriteria

instance Core.ToJSON TransformFilterCriteria where
  toJSON :: TransformFilterCriteria -> Value
toJSON TransformFilterCriteria' {Maybe [SchemaColumn]
Maybe Text
Maybe POSIX
Maybe TransformStatusType
Maybe TransformType
createdBefore :: Maybe POSIX
name :: Maybe Text
transformType :: Maybe TransformType
schema :: Maybe [SchemaColumn]
glueVersion :: Maybe Text
lastModifiedBefore :: Maybe POSIX
lastModifiedAfter :: Maybe POSIX
status :: Maybe TransformStatusType
createdAfter :: Maybe POSIX
$sel:createdBefore:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
$sel:name:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe Text
$sel:transformType:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe TransformType
$sel:schema:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe [SchemaColumn]
$sel:glueVersion:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe Text
$sel:lastModifiedBefore:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
$sel:lastModifiedAfter:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
$sel:status:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe TransformStatusType
$sel:createdAfter:TransformFilterCriteria' :: TransformFilterCriteria -> Maybe POSIX
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"CreatedAfter" Text -> POSIX -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (POSIX -> Pair) -> Maybe POSIX -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe POSIX
createdAfter,
            (Text
"Status" Text -> TransformStatusType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (TransformStatusType -> Pair)
-> Maybe TransformStatusType -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TransformStatusType
status,
            (Text
"LastModifiedAfter" Text -> POSIX -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (POSIX -> Pair) -> Maybe POSIX -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe POSIX
lastModifiedAfter,
            (Text
"LastModifiedBefore" Text -> POSIX -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (POSIX -> Pair) -> Maybe POSIX -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe POSIX
lastModifiedBefore,
            (Text
"GlueVersion" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
glueVersion,
            (Text
"Schema" Text -> [SchemaColumn] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([SchemaColumn] -> Pair) -> Maybe [SchemaColumn] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [SchemaColumn]
schema,
            (Text
"TransformType" Text -> TransformType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (TransformType -> Pair) -> Maybe TransformType -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TransformType
transformType,
            (Text
"Name" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
name,
            (Text
"CreatedBefore" Text -> POSIX -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (POSIX -> Pair) -> Maybe POSIX -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe POSIX
createdBefore
          ]
      )