{-# 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.MLTransform
-- 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.MLTransform 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.EvaluationMetrics
import Amazonka.Glue.Types.GlueTable
import Amazonka.Glue.Types.SchemaColumn
import Amazonka.Glue.Types.TransformEncryption
import Amazonka.Glue.Types.TransformParameters
import Amazonka.Glue.Types.TransformStatusType
import Amazonka.Glue.Types.WorkerType
import qualified Amazonka.Prelude as Prelude

-- | A structure for a machine learning transform.
--
-- /See:/ 'newMLTransform' smart constructor.
data MLTransform = MLTransform'
  { -- | A timestamp. The time and date that this machine learning transform was
    -- created.
    MLTransform -> Maybe POSIX
createdOn :: Prelude.Maybe Data.POSIX,
    -- | A user-defined, long-form description text for the machine learning
    -- transform. Descriptions are not guaranteed to be unique and can be
    -- changed at any time.
    MLTransform -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | An @EvaluationMetrics@ object. Evaluation metrics provide an estimate of
    -- the quality of your machine learning transform.
    MLTransform -> Maybe EvaluationMetrics
evaluationMetrics :: Prelude.Maybe EvaluationMetrics,
    -- | 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.
    MLTransform -> Maybe Text
glueVersion :: Prelude.Maybe Prelude.Text,
    -- | A list of Glue table definitions used by the transform.
    MLTransform -> Maybe [GlueTable]
inputRecordTables :: Prelude.Maybe [GlueTable],
    -- | A count identifier for the labeling files generated by Glue for this
    -- transform. As you create a better transform, you can iteratively
    -- download, label, and upload the labeling file.
    MLTransform -> Maybe Int
labelCount :: Prelude.Maybe Prelude.Int,
    -- | A timestamp. The last point in time when this machine learning transform
    -- was modified.
    MLTransform -> Maybe POSIX
lastModifiedOn :: Prelude.Maybe Data.POSIX,
    -- | The number of Glue data processing units (DPUs) that are allocated to
    -- task runs for this transform. You can allocate from 2 to 100 DPUs; the
    -- default is 10. A DPU is a relative measure of processing power that
    -- consists of 4 vCPUs of compute capacity and 16 GB of memory. For more
    -- information, see the
    -- <http://aws.amazon.com/glue/pricing/ Glue pricing page>.
    --
    -- @MaxCapacity@ is a mutually exclusive option with @NumberOfWorkers@ and
    -- @WorkerType@.
    --
    -- -   If either @NumberOfWorkers@ or @WorkerType@ is set, then
    --     @MaxCapacity@ cannot be set.
    --
    -- -   If @MaxCapacity@ is set then neither @NumberOfWorkers@ or
    --     @WorkerType@ can be set.
    --
    -- -   If @WorkerType@ is set, then @NumberOfWorkers@ is required (and vice
    --     versa).
    --
    -- -   @MaxCapacity@ and @NumberOfWorkers@ must both be at least 1.
    --
    -- When the @WorkerType@ field is set to a value other than @Standard@, the
    -- @MaxCapacity@ field is set automatically and becomes read-only.
    MLTransform -> Maybe Double
maxCapacity :: Prelude.Maybe Prelude.Double,
    -- | The maximum number of times to retry after an @MLTaskRun@ of the machine
    -- learning transform fails.
    MLTransform -> Maybe Int
maxRetries :: Prelude.Maybe Prelude.Int,
    -- | A user-defined name for the machine learning transform. Names are not
    -- guaranteed unique and can be changed at any time.
    MLTransform -> Maybe Text
name :: Prelude.Maybe Prelude.Text,
    -- | The number of workers of a defined @workerType@ that are allocated when
    -- a task of the transform runs.
    --
    -- If @WorkerType@ is set, then @NumberOfWorkers@ is required (and vice
    -- versa).
    MLTransform -> Maybe Int
numberOfWorkers :: Prelude.Maybe Prelude.Int,
    -- | A @TransformParameters@ object. You can use parameters to tune
    -- (customize) the behavior of the machine learning transform by specifying
    -- what data it learns from and your preference on various tradeoffs (such
    -- as precious vs. recall, or accuracy vs. cost).
    MLTransform -> Maybe TransformParameters
parameters :: Prelude.Maybe TransformParameters,
    -- | The name or Amazon Resource Name (ARN) of the IAM role with the required
    -- permissions. The required permissions include both Glue service role
    -- permissions to Glue resources, and Amazon S3 permissions required by the
    -- transform.
    --
    -- -   This role needs Glue service role permissions to allow access to
    --     resources in Glue. See
    --     <https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html Attach a Policy to IAM Users That Access Glue>.
    --
    -- -   This role needs permission to your Amazon Simple Storage Service
    --     (Amazon S3) sources, targets, temporary directory, scripts, and any
    --     libraries used by the task run for this transform.
    MLTransform -> Maybe Text
role' :: Prelude.Maybe Prelude.Text,
    -- | A map of key-value pairs representing the columns and data types that
    -- this transform can run against. Has an upper bound of 100 columns.
    MLTransform -> Maybe [SchemaColumn]
schema :: Prelude.Maybe [SchemaColumn],
    -- | The current status of the machine learning transform.
    MLTransform -> Maybe TransformStatusType
status :: Prelude.Maybe TransformStatusType,
    -- | The timeout in minutes of the machine learning transform.
    MLTransform -> Maybe Natural
timeout :: Prelude.Maybe Prelude.Natural,
    -- | The encryption-at-rest settings of the transform that apply to accessing
    -- user data. Machine learning transforms can access user data encrypted in
    -- Amazon S3 using KMS.
    MLTransform -> Maybe TransformEncryption
transformEncryption :: Prelude.Maybe TransformEncryption,
    -- | The unique transform ID that is generated for the machine learning
    -- transform. The ID is guaranteed to be unique and does not change.
    MLTransform -> Maybe Text
transformId :: Prelude.Maybe Prelude.Text,
    -- | The type of predefined worker that is allocated when a task of this
    -- transform runs. Accepts a value of Standard, G.1X, or G.2X.
    --
    -- -   For the @Standard@ worker type, each worker provides 4 vCPU, 16 GB
    --     of memory and a 50GB disk, and 2 executors per worker.
    --
    -- -   For the @G.1X@ worker type, each worker provides 4 vCPU, 16 GB of
    --     memory and a 64GB disk, and 1 executor per worker.
    --
    -- -   For the @G.2X@ worker type, each worker provides 8 vCPU, 32 GB of
    --     memory and a 128GB disk, and 1 executor per worker.
    --
    -- @MaxCapacity@ is a mutually exclusive option with @NumberOfWorkers@ and
    -- @WorkerType@.
    --
    -- -   If either @NumberOfWorkers@ or @WorkerType@ is set, then
    --     @MaxCapacity@ cannot be set.
    --
    -- -   If @MaxCapacity@ is set then neither @NumberOfWorkers@ or
    --     @WorkerType@ can be set.
    --
    -- -   If @WorkerType@ is set, then @NumberOfWorkers@ is required (and vice
    --     versa).
    --
    -- -   @MaxCapacity@ and @NumberOfWorkers@ must both be at least 1.
    MLTransform -> Maybe WorkerType
workerType :: Prelude.Maybe WorkerType
  }
  deriving (MLTransform -> MLTransform -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MLTransform -> MLTransform -> Bool
$c/= :: MLTransform -> MLTransform -> Bool
== :: MLTransform -> MLTransform -> Bool
$c== :: MLTransform -> MLTransform -> Bool
Prelude.Eq, ReadPrec [MLTransform]
ReadPrec MLTransform
Int -> ReadS MLTransform
ReadS [MLTransform]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [MLTransform]
$creadListPrec :: ReadPrec [MLTransform]
readPrec :: ReadPrec MLTransform
$creadPrec :: ReadPrec MLTransform
readList :: ReadS [MLTransform]
$creadList :: ReadS [MLTransform]
readsPrec :: Int -> ReadS MLTransform
$creadsPrec :: Int -> ReadS MLTransform
Prelude.Read, Int -> MLTransform -> ShowS
[MLTransform] -> ShowS
MLTransform -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MLTransform] -> ShowS
$cshowList :: [MLTransform] -> ShowS
show :: MLTransform -> String
$cshow :: MLTransform -> String
showsPrec :: Int -> MLTransform -> ShowS
$cshowsPrec :: Int -> MLTransform -> ShowS
Prelude.Show, forall x. Rep MLTransform x -> MLTransform
forall x. MLTransform -> Rep MLTransform x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep MLTransform x -> MLTransform
$cfrom :: forall x. MLTransform -> Rep MLTransform x
Prelude.Generic)

-- |
-- Create a value of 'MLTransform' 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:
--
-- 'createdOn', 'mLTransform_createdOn' - A timestamp. The time and date that this machine learning transform was
-- created.
--
-- 'description', 'mLTransform_description' - A user-defined, long-form description text for the machine learning
-- transform. Descriptions are not guaranteed to be unique and can be
-- changed at any time.
--
-- 'evaluationMetrics', 'mLTransform_evaluationMetrics' - An @EvaluationMetrics@ object. Evaluation metrics provide an estimate of
-- the quality of your machine learning transform.
--
-- 'glueVersion', 'mLTransform_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.
--
-- 'inputRecordTables', 'mLTransform_inputRecordTables' - A list of Glue table definitions used by the transform.
--
-- 'labelCount', 'mLTransform_labelCount' - A count identifier for the labeling files generated by Glue for this
-- transform. As you create a better transform, you can iteratively
-- download, label, and upload the labeling file.
--
-- 'lastModifiedOn', 'mLTransform_lastModifiedOn' - A timestamp. The last point in time when this machine learning transform
-- was modified.
--
-- 'maxCapacity', 'mLTransform_maxCapacity' - The number of Glue data processing units (DPUs) that are allocated to
-- task runs for this transform. You can allocate from 2 to 100 DPUs; the
-- default is 10. A DPU is a relative measure of processing power that
-- consists of 4 vCPUs of compute capacity and 16 GB of memory. For more
-- information, see the
-- <http://aws.amazon.com/glue/pricing/ Glue pricing page>.
--
-- @MaxCapacity@ is a mutually exclusive option with @NumberOfWorkers@ and
-- @WorkerType@.
--
-- -   If either @NumberOfWorkers@ or @WorkerType@ is set, then
--     @MaxCapacity@ cannot be set.
--
-- -   If @MaxCapacity@ is set then neither @NumberOfWorkers@ or
--     @WorkerType@ can be set.
--
-- -   If @WorkerType@ is set, then @NumberOfWorkers@ is required (and vice
--     versa).
--
-- -   @MaxCapacity@ and @NumberOfWorkers@ must both be at least 1.
--
-- When the @WorkerType@ field is set to a value other than @Standard@, the
-- @MaxCapacity@ field is set automatically and becomes read-only.
--
-- 'maxRetries', 'mLTransform_maxRetries' - The maximum number of times to retry after an @MLTaskRun@ of the machine
-- learning transform fails.
--
-- 'name', 'mLTransform_name' - A user-defined name for the machine learning transform. Names are not
-- guaranteed unique and can be changed at any time.
--
-- 'numberOfWorkers', 'mLTransform_numberOfWorkers' - The number of workers of a defined @workerType@ that are allocated when
-- a task of the transform runs.
--
-- If @WorkerType@ is set, then @NumberOfWorkers@ is required (and vice
-- versa).
--
-- 'parameters', 'mLTransform_parameters' - A @TransformParameters@ object. You can use parameters to tune
-- (customize) the behavior of the machine learning transform by specifying
-- what data it learns from and your preference on various tradeoffs (such
-- as precious vs. recall, or accuracy vs. cost).
--
-- 'role'', 'mLTransform_role' - The name or Amazon Resource Name (ARN) of the IAM role with the required
-- permissions. The required permissions include both Glue service role
-- permissions to Glue resources, and Amazon S3 permissions required by the
-- transform.
--
-- -   This role needs Glue service role permissions to allow access to
--     resources in Glue. See
--     <https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html Attach a Policy to IAM Users That Access Glue>.
--
-- -   This role needs permission to your Amazon Simple Storage Service
--     (Amazon S3) sources, targets, temporary directory, scripts, and any
--     libraries used by the task run for this transform.
--
-- 'schema', 'mLTransform_schema' - A map of key-value pairs representing the columns and data types that
-- this transform can run against. Has an upper bound of 100 columns.
--
-- 'status', 'mLTransform_status' - The current status of the machine learning transform.
--
-- 'timeout', 'mLTransform_timeout' - The timeout in minutes of the machine learning transform.
--
-- 'transformEncryption', 'mLTransform_transformEncryption' - The encryption-at-rest settings of the transform that apply to accessing
-- user data. Machine learning transforms can access user data encrypted in
-- Amazon S3 using KMS.
--
-- 'transformId', 'mLTransform_transformId' - The unique transform ID that is generated for the machine learning
-- transform. The ID is guaranteed to be unique and does not change.
--
-- 'workerType', 'mLTransform_workerType' - The type of predefined worker that is allocated when a task of this
-- transform runs. Accepts a value of Standard, G.1X, or G.2X.
--
-- -   For the @Standard@ worker type, each worker provides 4 vCPU, 16 GB
--     of memory and a 50GB disk, and 2 executors per worker.
--
-- -   For the @G.1X@ worker type, each worker provides 4 vCPU, 16 GB of
--     memory and a 64GB disk, and 1 executor per worker.
--
-- -   For the @G.2X@ worker type, each worker provides 8 vCPU, 32 GB of
--     memory and a 128GB disk, and 1 executor per worker.
--
-- @MaxCapacity@ is a mutually exclusive option with @NumberOfWorkers@ and
-- @WorkerType@.
--
-- -   If either @NumberOfWorkers@ or @WorkerType@ is set, then
--     @MaxCapacity@ cannot be set.
--
-- -   If @MaxCapacity@ is set then neither @NumberOfWorkers@ or
--     @WorkerType@ can be set.
--
-- -   If @WorkerType@ is set, then @NumberOfWorkers@ is required (and vice
--     versa).
--
-- -   @MaxCapacity@ and @NumberOfWorkers@ must both be at least 1.
newMLTransform ::
  MLTransform
newMLTransform :: MLTransform
newMLTransform =
  MLTransform'
    { $sel:createdOn:MLTransform' :: Maybe POSIX
createdOn = forall a. Maybe a
Prelude.Nothing,
      $sel:description:MLTransform' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:evaluationMetrics:MLTransform' :: Maybe EvaluationMetrics
evaluationMetrics = forall a. Maybe a
Prelude.Nothing,
      $sel:glueVersion:MLTransform' :: Maybe Text
glueVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:inputRecordTables:MLTransform' :: Maybe [GlueTable]
inputRecordTables = forall a. Maybe a
Prelude.Nothing,
      $sel:labelCount:MLTransform' :: Maybe Int
labelCount = forall a. Maybe a
Prelude.Nothing,
      $sel:lastModifiedOn:MLTransform' :: Maybe POSIX
lastModifiedOn = forall a. Maybe a
Prelude.Nothing,
      $sel:maxCapacity:MLTransform' :: Maybe Double
maxCapacity = forall a. Maybe a
Prelude.Nothing,
      $sel:maxRetries:MLTransform' :: Maybe Int
maxRetries = forall a. Maybe a
Prelude.Nothing,
      $sel:name:MLTransform' :: Maybe Text
name = forall a. Maybe a
Prelude.Nothing,
      $sel:numberOfWorkers:MLTransform' :: Maybe Int
numberOfWorkers = forall a. Maybe a
Prelude.Nothing,
      $sel:parameters:MLTransform' :: Maybe TransformParameters
parameters = forall a. Maybe a
Prelude.Nothing,
      $sel:role':MLTransform' :: Maybe Text
role' = forall a. Maybe a
Prelude.Nothing,
      $sel:schema:MLTransform' :: Maybe [SchemaColumn]
schema = forall a. Maybe a
Prelude.Nothing,
      $sel:status:MLTransform' :: Maybe TransformStatusType
status = forall a. Maybe a
Prelude.Nothing,
      $sel:timeout:MLTransform' :: Maybe Natural
timeout = forall a. Maybe a
Prelude.Nothing,
      $sel:transformEncryption:MLTransform' :: Maybe TransformEncryption
transformEncryption = forall a. Maybe a
Prelude.Nothing,
      $sel:transformId:MLTransform' :: Maybe Text
transformId = forall a. Maybe a
Prelude.Nothing,
      $sel:workerType:MLTransform' :: Maybe WorkerType
workerType = forall a. Maybe a
Prelude.Nothing
    }

-- | A timestamp. The time and date that this machine learning transform was
-- created.
mLTransform_createdOn :: Lens.Lens' MLTransform (Prelude.Maybe Prelude.UTCTime)
mLTransform_createdOn :: Lens' MLTransform (Maybe UTCTime)
mLTransform_createdOn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe POSIX
createdOn :: Maybe POSIX
$sel:createdOn:MLTransform' :: MLTransform -> Maybe POSIX
createdOn} -> Maybe POSIX
createdOn) (\s :: MLTransform
s@MLTransform' {} Maybe POSIX
a -> MLTransform
s {$sel:createdOn:MLTransform' :: Maybe POSIX
createdOn = Maybe POSIX
a} :: MLTransform) 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 user-defined, long-form description text for the machine learning
-- transform. Descriptions are not guaranteed to be unique and can be
-- changed at any time.
mLTransform_description :: Lens.Lens' MLTransform (Prelude.Maybe Prelude.Text)
mLTransform_description :: Lens' MLTransform (Maybe Text)
mLTransform_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe Text
description :: Maybe Text
$sel:description:MLTransform' :: MLTransform -> Maybe Text
description} -> Maybe Text
description) (\s :: MLTransform
s@MLTransform' {} Maybe Text
a -> MLTransform
s {$sel:description:MLTransform' :: Maybe Text
description = Maybe Text
a} :: MLTransform)

-- | An @EvaluationMetrics@ object. Evaluation metrics provide an estimate of
-- the quality of your machine learning transform.
mLTransform_evaluationMetrics :: Lens.Lens' MLTransform (Prelude.Maybe EvaluationMetrics)
mLTransform_evaluationMetrics :: Lens' MLTransform (Maybe EvaluationMetrics)
mLTransform_evaluationMetrics = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe EvaluationMetrics
evaluationMetrics :: Maybe EvaluationMetrics
$sel:evaluationMetrics:MLTransform' :: MLTransform -> Maybe EvaluationMetrics
evaluationMetrics} -> Maybe EvaluationMetrics
evaluationMetrics) (\s :: MLTransform
s@MLTransform' {} Maybe EvaluationMetrics
a -> MLTransform
s {$sel:evaluationMetrics:MLTransform' :: Maybe EvaluationMetrics
evaluationMetrics = Maybe EvaluationMetrics
a} :: MLTransform)

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

-- | A list of Glue table definitions used by the transform.
mLTransform_inputRecordTables :: Lens.Lens' MLTransform (Prelude.Maybe [GlueTable])
mLTransform_inputRecordTables :: Lens' MLTransform (Maybe [GlueTable])
mLTransform_inputRecordTables = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe [GlueTable]
inputRecordTables :: Maybe [GlueTable]
$sel:inputRecordTables:MLTransform' :: MLTransform -> Maybe [GlueTable]
inputRecordTables} -> Maybe [GlueTable]
inputRecordTables) (\s :: MLTransform
s@MLTransform' {} Maybe [GlueTable]
a -> MLTransform
s {$sel:inputRecordTables:MLTransform' :: Maybe [GlueTable]
inputRecordTables = Maybe [GlueTable]
a} :: MLTransform) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A count identifier for the labeling files generated by Glue for this
-- transform. As you create a better transform, you can iteratively
-- download, label, and upload the labeling file.
mLTransform_labelCount :: Lens.Lens' MLTransform (Prelude.Maybe Prelude.Int)
mLTransform_labelCount :: Lens' MLTransform (Maybe Int)
mLTransform_labelCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe Int
labelCount :: Maybe Int
$sel:labelCount:MLTransform' :: MLTransform -> Maybe Int
labelCount} -> Maybe Int
labelCount) (\s :: MLTransform
s@MLTransform' {} Maybe Int
a -> MLTransform
s {$sel:labelCount:MLTransform' :: Maybe Int
labelCount = Maybe Int
a} :: MLTransform)

-- | A timestamp. The last point in time when this machine learning transform
-- was modified.
mLTransform_lastModifiedOn :: Lens.Lens' MLTransform (Prelude.Maybe Prelude.UTCTime)
mLTransform_lastModifiedOn :: Lens' MLTransform (Maybe UTCTime)
mLTransform_lastModifiedOn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe POSIX
lastModifiedOn :: Maybe POSIX
$sel:lastModifiedOn:MLTransform' :: MLTransform -> Maybe POSIX
lastModifiedOn} -> Maybe POSIX
lastModifiedOn) (\s :: MLTransform
s@MLTransform' {} Maybe POSIX
a -> MLTransform
s {$sel:lastModifiedOn:MLTransform' :: Maybe POSIX
lastModifiedOn = Maybe POSIX
a} :: MLTransform) 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 number of Glue data processing units (DPUs) that are allocated to
-- task runs for this transform. You can allocate from 2 to 100 DPUs; the
-- default is 10. A DPU is a relative measure of processing power that
-- consists of 4 vCPUs of compute capacity and 16 GB of memory. For more
-- information, see the
-- <http://aws.amazon.com/glue/pricing/ Glue pricing page>.
--
-- @MaxCapacity@ is a mutually exclusive option with @NumberOfWorkers@ and
-- @WorkerType@.
--
-- -   If either @NumberOfWorkers@ or @WorkerType@ is set, then
--     @MaxCapacity@ cannot be set.
--
-- -   If @MaxCapacity@ is set then neither @NumberOfWorkers@ or
--     @WorkerType@ can be set.
--
-- -   If @WorkerType@ is set, then @NumberOfWorkers@ is required (and vice
--     versa).
--
-- -   @MaxCapacity@ and @NumberOfWorkers@ must both be at least 1.
--
-- When the @WorkerType@ field is set to a value other than @Standard@, the
-- @MaxCapacity@ field is set automatically and becomes read-only.
mLTransform_maxCapacity :: Lens.Lens' MLTransform (Prelude.Maybe Prelude.Double)
mLTransform_maxCapacity :: Lens' MLTransform (Maybe Double)
mLTransform_maxCapacity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe Double
maxCapacity :: Maybe Double
$sel:maxCapacity:MLTransform' :: MLTransform -> Maybe Double
maxCapacity} -> Maybe Double
maxCapacity) (\s :: MLTransform
s@MLTransform' {} Maybe Double
a -> MLTransform
s {$sel:maxCapacity:MLTransform' :: Maybe Double
maxCapacity = Maybe Double
a} :: MLTransform)

-- | The maximum number of times to retry after an @MLTaskRun@ of the machine
-- learning transform fails.
mLTransform_maxRetries :: Lens.Lens' MLTransform (Prelude.Maybe Prelude.Int)
mLTransform_maxRetries :: Lens' MLTransform (Maybe Int)
mLTransform_maxRetries = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe Int
maxRetries :: Maybe Int
$sel:maxRetries:MLTransform' :: MLTransform -> Maybe Int
maxRetries} -> Maybe Int
maxRetries) (\s :: MLTransform
s@MLTransform' {} Maybe Int
a -> MLTransform
s {$sel:maxRetries:MLTransform' :: Maybe Int
maxRetries = Maybe Int
a} :: MLTransform)

-- | A user-defined name for the machine learning transform. Names are not
-- guaranteed unique and can be changed at any time.
mLTransform_name :: Lens.Lens' MLTransform (Prelude.Maybe Prelude.Text)
mLTransform_name :: Lens' MLTransform (Maybe Text)
mLTransform_name = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe Text
name :: Maybe Text
$sel:name:MLTransform' :: MLTransform -> Maybe Text
name} -> Maybe Text
name) (\s :: MLTransform
s@MLTransform' {} Maybe Text
a -> MLTransform
s {$sel:name:MLTransform' :: Maybe Text
name = Maybe Text
a} :: MLTransform)

-- | The number of workers of a defined @workerType@ that are allocated when
-- a task of the transform runs.
--
-- If @WorkerType@ is set, then @NumberOfWorkers@ is required (and vice
-- versa).
mLTransform_numberOfWorkers :: Lens.Lens' MLTransform (Prelude.Maybe Prelude.Int)
mLTransform_numberOfWorkers :: Lens' MLTransform (Maybe Int)
mLTransform_numberOfWorkers = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe Int
numberOfWorkers :: Maybe Int
$sel:numberOfWorkers:MLTransform' :: MLTransform -> Maybe Int
numberOfWorkers} -> Maybe Int
numberOfWorkers) (\s :: MLTransform
s@MLTransform' {} Maybe Int
a -> MLTransform
s {$sel:numberOfWorkers:MLTransform' :: Maybe Int
numberOfWorkers = Maybe Int
a} :: MLTransform)

-- | A @TransformParameters@ object. You can use parameters to tune
-- (customize) the behavior of the machine learning transform by specifying
-- what data it learns from and your preference on various tradeoffs (such
-- as precious vs. recall, or accuracy vs. cost).
mLTransform_parameters :: Lens.Lens' MLTransform (Prelude.Maybe TransformParameters)
mLTransform_parameters :: Lens' MLTransform (Maybe TransformParameters)
mLTransform_parameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe TransformParameters
parameters :: Maybe TransformParameters
$sel:parameters:MLTransform' :: MLTransform -> Maybe TransformParameters
parameters} -> Maybe TransformParameters
parameters) (\s :: MLTransform
s@MLTransform' {} Maybe TransformParameters
a -> MLTransform
s {$sel:parameters:MLTransform' :: Maybe TransformParameters
parameters = Maybe TransformParameters
a} :: MLTransform)

-- | The name or Amazon Resource Name (ARN) of the IAM role with the required
-- permissions. The required permissions include both Glue service role
-- permissions to Glue resources, and Amazon S3 permissions required by the
-- transform.
--
-- -   This role needs Glue service role permissions to allow access to
--     resources in Glue. See
--     <https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html Attach a Policy to IAM Users That Access Glue>.
--
-- -   This role needs permission to your Amazon Simple Storage Service
--     (Amazon S3) sources, targets, temporary directory, scripts, and any
--     libraries used by the task run for this transform.
mLTransform_role :: Lens.Lens' MLTransform (Prelude.Maybe Prelude.Text)
mLTransform_role :: Lens' MLTransform (Maybe Text)
mLTransform_role = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe Text
role' :: Maybe Text
$sel:role':MLTransform' :: MLTransform -> Maybe Text
role'} -> Maybe Text
role') (\s :: MLTransform
s@MLTransform' {} Maybe Text
a -> MLTransform
s {$sel:role':MLTransform' :: Maybe Text
role' = Maybe Text
a} :: MLTransform)

-- | A map of key-value pairs representing the columns and data types that
-- this transform can run against. Has an upper bound of 100 columns.
mLTransform_schema :: Lens.Lens' MLTransform (Prelude.Maybe [SchemaColumn])
mLTransform_schema :: Lens' MLTransform (Maybe [SchemaColumn])
mLTransform_schema = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe [SchemaColumn]
schema :: Maybe [SchemaColumn]
$sel:schema:MLTransform' :: MLTransform -> Maybe [SchemaColumn]
schema} -> Maybe [SchemaColumn]
schema) (\s :: MLTransform
s@MLTransform' {} Maybe [SchemaColumn]
a -> MLTransform
s {$sel:schema:MLTransform' :: Maybe [SchemaColumn]
schema = Maybe [SchemaColumn]
a} :: MLTransform) 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 current status of the machine learning transform.
mLTransform_status :: Lens.Lens' MLTransform (Prelude.Maybe TransformStatusType)
mLTransform_status :: Lens' MLTransform (Maybe TransformStatusType)
mLTransform_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe TransformStatusType
status :: Maybe TransformStatusType
$sel:status:MLTransform' :: MLTransform -> Maybe TransformStatusType
status} -> Maybe TransformStatusType
status) (\s :: MLTransform
s@MLTransform' {} Maybe TransformStatusType
a -> MLTransform
s {$sel:status:MLTransform' :: Maybe TransformStatusType
status = Maybe TransformStatusType
a} :: MLTransform)

-- | The timeout in minutes of the machine learning transform.
mLTransform_timeout :: Lens.Lens' MLTransform (Prelude.Maybe Prelude.Natural)
mLTransform_timeout :: Lens' MLTransform (Maybe Natural)
mLTransform_timeout = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe Natural
timeout :: Maybe Natural
$sel:timeout:MLTransform' :: MLTransform -> Maybe Natural
timeout} -> Maybe Natural
timeout) (\s :: MLTransform
s@MLTransform' {} Maybe Natural
a -> MLTransform
s {$sel:timeout:MLTransform' :: Maybe Natural
timeout = Maybe Natural
a} :: MLTransform)

-- | The encryption-at-rest settings of the transform that apply to accessing
-- user data. Machine learning transforms can access user data encrypted in
-- Amazon S3 using KMS.
mLTransform_transformEncryption :: Lens.Lens' MLTransform (Prelude.Maybe TransformEncryption)
mLTransform_transformEncryption :: Lens' MLTransform (Maybe TransformEncryption)
mLTransform_transformEncryption = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe TransformEncryption
transformEncryption :: Maybe TransformEncryption
$sel:transformEncryption:MLTransform' :: MLTransform -> Maybe TransformEncryption
transformEncryption} -> Maybe TransformEncryption
transformEncryption) (\s :: MLTransform
s@MLTransform' {} Maybe TransformEncryption
a -> MLTransform
s {$sel:transformEncryption:MLTransform' :: Maybe TransformEncryption
transformEncryption = Maybe TransformEncryption
a} :: MLTransform)

-- | The unique transform ID that is generated for the machine learning
-- transform. The ID is guaranteed to be unique and does not change.
mLTransform_transformId :: Lens.Lens' MLTransform (Prelude.Maybe Prelude.Text)
mLTransform_transformId :: Lens' MLTransform (Maybe Text)
mLTransform_transformId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe Text
transformId :: Maybe Text
$sel:transformId:MLTransform' :: MLTransform -> Maybe Text
transformId} -> Maybe Text
transformId) (\s :: MLTransform
s@MLTransform' {} Maybe Text
a -> MLTransform
s {$sel:transformId:MLTransform' :: Maybe Text
transformId = Maybe Text
a} :: MLTransform)

-- | The type of predefined worker that is allocated when a task of this
-- transform runs. Accepts a value of Standard, G.1X, or G.2X.
--
-- -   For the @Standard@ worker type, each worker provides 4 vCPU, 16 GB
--     of memory and a 50GB disk, and 2 executors per worker.
--
-- -   For the @G.1X@ worker type, each worker provides 4 vCPU, 16 GB of
--     memory and a 64GB disk, and 1 executor per worker.
--
-- -   For the @G.2X@ worker type, each worker provides 8 vCPU, 32 GB of
--     memory and a 128GB disk, and 1 executor per worker.
--
-- @MaxCapacity@ is a mutually exclusive option with @NumberOfWorkers@ and
-- @WorkerType@.
--
-- -   If either @NumberOfWorkers@ or @WorkerType@ is set, then
--     @MaxCapacity@ cannot be set.
--
-- -   If @MaxCapacity@ is set then neither @NumberOfWorkers@ or
--     @WorkerType@ can be set.
--
-- -   If @WorkerType@ is set, then @NumberOfWorkers@ is required (and vice
--     versa).
--
-- -   @MaxCapacity@ and @NumberOfWorkers@ must both be at least 1.
mLTransform_workerType :: Lens.Lens' MLTransform (Prelude.Maybe WorkerType)
mLTransform_workerType :: Lens' MLTransform (Maybe WorkerType)
mLTransform_workerType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\MLTransform' {Maybe WorkerType
workerType :: Maybe WorkerType
$sel:workerType:MLTransform' :: MLTransform -> Maybe WorkerType
workerType} -> Maybe WorkerType
workerType) (\s :: MLTransform
s@MLTransform' {} Maybe WorkerType
a -> MLTransform
s {$sel:workerType:MLTransform' :: Maybe WorkerType
workerType = Maybe WorkerType
a} :: MLTransform)

instance Data.FromJSON MLTransform where
  parseJSON :: Value -> Parser MLTransform
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"MLTransform"
      ( \Object
x ->
          Maybe POSIX
-> Maybe Text
-> Maybe EvaluationMetrics
-> Maybe Text
-> Maybe [GlueTable]
-> Maybe Int
-> Maybe POSIX
-> Maybe Double
-> Maybe Int
-> Maybe Text
-> Maybe Int
-> Maybe TransformParameters
-> Maybe Text
-> Maybe [SchemaColumn]
-> Maybe TransformStatusType
-> Maybe Natural
-> Maybe TransformEncryption
-> Maybe Text
-> Maybe WorkerType
-> MLTransform
MLTransform'
            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
"CreatedOn")
            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
"Description")
            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
"EvaluationMetrics")
            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
"GlueVersion")
            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
"InputRecordTables"
                            forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"LabelCount")
            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
"LastModifiedOn")
            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
"MaxCapacity")
            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
"MaxRetries")
            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
"Name")
            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
"NumberOfWorkers")
            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
"Parameters")
            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
"Role")
            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
"Schema" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= 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 -> Parser (Maybe a)
Data..:? Key
"Status")
            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
"Timeout")
            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
"TransformEncryption")
            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
"TransformId")
            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
"WorkerType")
      )

instance Prelude.Hashable MLTransform where
  hashWithSalt :: Int -> MLTransform -> Int
hashWithSalt Int
_salt MLTransform' {Maybe Double
Maybe Int
Maybe Natural
Maybe [GlueTable]
Maybe [SchemaColumn]
Maybe Text
Maybe POSIX
Maybe TransformEncryption
Maybe TransformStatusType
Maybe TransformParameters
Maybe EvaluationMetrics
Maybe WorkerType
workerType :: Maybe WorkerType
transformId :: Maybe Text
transformEncryption :: Maybe TransformEncryption
timeout :: Maybe Natural
status :: Maybe TransformStatusType
schema :: Maybe [SchemaColumn]
role' :: Maybe Text
parameters :: Maybe TransformParameters
numberOfWorkers :: Maybe Int
name :: Maybe Text
maxRetries :: Maybe Int
maxCapacity :: Maybe Double
lastModifiedOn :: Maybe POSIX
labelCount :: Maybe Int
inputRecordTables :: Maybe [GlueTable]
glueVersion :: Maybe Text
evaluationMetrics :: Maybe EvaluationMetrics
description :: Maybe Text
createdOn :: Maybe POSIX
$sel:workerType:MLTransform' :: MLTransform -> Maybe WorkerType
$sel:transformId:MLTransform' :: MLTransform -> Maybe Text
$sel:transformEncryption:MLTransform' :: MLTransform -> Maybe TransformEncryption
$sel:timeout:MLTransform' :: MLTransform -> Maybe Natural
$sel:status:MLTransform' :: MLTransform -> Maybe TransformStatusType
$sel:schema:MLTransform' :: MLTransform -> Maybe [SchemaColumn]
$sel:role':MLTransform' :: MLTransform -> Maybe Text
$sel:parameters:MLTransform' :: MLTransform -> Maybe TransformParameters
$sel:numberOfWorkers:MLTransform' :: MLTransform -> Maybe Int
$sel:name:MLTransform' :: MLTransform -> Maybe Text
$sel:maxRetries:MLTransform' :: MLTransform -> Maybe Int
$sel:maxCapacity:MLTransform' :: MLTransform -> Maybe Double
$sel:lastModifiedOn:MLTransform' :: MLTransform -> Maybe POSIX
$sel:labelCount:MLTransform' :: MLTransform -> Maybe Int
$sel:inputRecordTables:MLTransform' :: MLTransform -> Maybe [GlueTable]
$sel:glueVersion:MLTransform' :: MLTransform -> Maybe Text
$sel:evaluationMetrics:MLTransform' :: MLTransform -> Maybe EvaluationMetrics
$sel:description:MLTransform' :: MLTransform -> Maybe Text
$sel:createdOn:MLTransform' :: MLTransform -> Maybe POSIX
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
createdOn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
description
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EvaluationMetrics
evaluationMetrics
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
glueVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [GlueTable]
inputRecordTables
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
labelCount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
lastModifiedOn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
maxCapacity
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxRetries
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
name
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
numberOfWorkers
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TransformParameters
parameters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
role'
      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 Natural
timeout
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TransformEncryption
transformEncryption
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
transformId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WorkerType
workerType

instance Prelude.NFData MLTransform where
  rnf :: MLTransform -> ()
rnf MLTransform' {Maybe Double
Maybe Int
Maybe Natural
Maybe [GlueTable]
Maybe [SchemaColumn]
Maybe Text
Maybe POSIX
Maybe TransformEncryption
Maybe TransformStatusType
Maybe TransformParameters
Maybe EvaluationMetrics
Maybe WorkerType
workerType :: Maybe WorkerType
transformId :: Maybe Text
transformEncryption :: Maybe TransformEncryption
timeout :: Maybe Natural
status :: Maybe TransformStatusType
schema :: Maybe [SchemaColumn]
role' :: Maybe Text
parameters :: Maybe TransformParameters
numberOfWorkers :: Maybe Int
name :: Maybe Text
maxRetries :: Maybe Int
maxCapacity :: Maybe Double
lastModifiedOn :: Maybe POSIX
labelCount :: Maybe Int
inputRecordTables :: Maybe [GlueTable]
glueVersion :: Maybe Text
evaluationMetrics :: Maybe EvaluationMetrics
description :: Maybe Text
createdOn :: Maybe POSIX
$sel:workerType:MLTransform' :: MLTransform -> Maybe WorkerType
$sel:transformId:MLTransform' :: MLTransform -> Maybe Text
$sel:transformEncryption:MLTransform' :: MLTransform -> Maybe TransformEncryption
$sel:timeout:MLTransform' :: MLTransform -> Maybe Natural
$sel:status:MLTransform' :: MLTransform -> Maybe TransformStatusType
$sel:schema:MLTransform' :: MLTransform -> Maybe [SchemaColumn]
$sel:role':MLTransform' :: MLTransform -> Maybe Text
$sel:parameters:MLTransform' :: MLTransform -> Maybe TransformParameters
$sel:numberOfWorkers:MLTransform' :: MLTransform -> Maybe Int
$sel:name:MLTransform' :: MLTransform -> Maybe Text
$sel:maxRetries:MLTransform' :: MLTransform -> Maybe Int
$sel:maxCapacity:MLTransform' :: MLTransform -> Maybe Double
$sel:lastModifiedOn:MLTransform' :: MLTransform -> Maybe POSIX
$sel:labelCount:MLTransform' :: MLTransform -> Maybe Int
$sel:inputRecordTables:MLTransform' :: MLTransform -> Maybe [GlueTable]
$sel:glueVersion:MLTransform' :: MLTransform -> Maybe Text
$sel:evaluationMetrics:MLTransform' :: MLTransform -> Maybe EvaluationMetrics
$sel:description:MLTransform' :: MLTransform -> Maybe Text
$sel:createdOn:MLTransform' :: MLTransform -> Maybe POSIX
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdOn
      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 EvaluationMetrics
evaluationMetrics
      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 [GlueTable]
inputRecordTables
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
labelCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedOn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Double
maxCapacity
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxRetries
      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 Int
numberOfWorkers
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TransformParameters
parameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
role'
      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 Natural
timeout
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TransformEncryption
transformEncryption
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
transformId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WorkerType
workerType