{-# 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.SageMaker.Types.TransformJob
-- 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.SageMaker.Types.TransformJob where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.SageMaker.Types.BatchStrategy
import Amazonka.SageMaker.Types.DataProcessing
import Amazonka.SageMaker.Types.ExperimentConfig
import Amazonka.SageMaker.Types.ModelClientConfig
import Amazonka.SageMaker.Types.Tag
import Amazonka.SageMaker.Types.TransformInput
import Amazonka.SageMaker.Types.TransformJobStatus
import Amazonka.SageMaker.Types.TransformOutput
import Amazonka.SageMaker.Types.TransformResources

-- | A batch transform job. For information about SageMaker batch transform,
-- see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html Use Batch Transform>.
--
-- /See:/ 'newTransformJob' smart constructor.
data TransformJob = TransformJob'
  { -- | A timestamp that shows when the transform Job was created.
    TransformJob -> Maybe POSIX
creationTime :: Prelude.Maybe Core.POSIX,
    -- | The Amazon Resource Name (ARN) of the labeling job that created the
    -- transform job.
    TransformJob -> Maybe Text
labelingJobArn :: Prelude.Maybe Prelude.Text,
    -- | The name of the transform job.
    TransformJob -> Maybe Text
transformJobName :: Prelude.Maybe Prelude.Text,
    -- | If the transform job failed, the reason it failed.
    TransformJob -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    TransformJob -> Maybe ModelClientConfig
modelClientConfig :: Prelude.Maybe ModelClientConfig,
    -- | Specifies the number of records to include in a mini-batch for an HTTP
    -- inference request. A record is a single unit of input data that
    -- inference can be made on. For example, a single line in a CSV file is a
    -- record.
    TransformJob -> Maybe BatchStrategy
batchStrategy :: Prelude.Maybe BatchStrategy,
    -- | The maximum allowed size of the payload, in MB. A payload is the data
    -- portion of a record (without metadata). The value in @MaxPayloadInMB@
    -- must be greater than, or equal to, the size of a single record. To
    -- estimate the size of a record in MB, divide the size of your dataset by
    -- the number of records. To ensure that the records fit within the maximum
    -- payload size, we recommend using a slightly larger value. The default
    -- value is 6 MB. For cases where the payload might be arbitrarily large
    -- and is transmitted using HTTP chunked encoding, set the value to 0. This
    -- feature works only in supported algorithms. Currently, SageMaker
    -- built-in algorithms do not support HTTP chunked encoding.
    TransformJob -> Maybe Natural
maxPayloadInMB :: Prelude.Maybe Prelude.Natural,
    -- | The environment variables to set in the Docker container. We support up
    -- to 16 key and values entries in the map.
    TransformJob -> Maybe (HashMap Text Text)
environment :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    TransformJob -> Maybe TransformResources
transformResources :: Prelude.Maybe TransformResources,
    -- | The name of the model associated with the transform job.
    TransformJob -> Maybe Text
modelName :: Prelude.Maybe Prelude.Text,
    TransformJob -> Maybe ExperimentConfig
experimentConfig :: Prelude.Maybe ExperimentConfig,
    -- | Indicates when the transform job has been completed, or has stopped or
    -- failed. You are billed for the time interval between this time and the
    -- value of @TransformStartTime@.
    TransformJob -> Maybe POSIX
transformEndTime :: Prelude.Maybe Core.POSIX,
    -- | Indicates when the transform job starts on ML instances. You are billed
    -- for the time interval between this time and the value of
    -- @TransformEndTime@.
    TransformJob -> Maybe POSIX
transformStartTime :: Prelude.Maybe Core.POSIX,
    -- | The Amazon Resource Name (ARN) of the AutoML job that created the
    -- transform job.
    TransformJob -> Maybe Text
autoMLJobArn :: Prelude.Maybe Prelude.Text,
    -- | The status of the transform job.
    --
    -- Transform job statuses are:
    --
    -- -   @InProgress@ - The job is in progress.
    --
    -- -   @Completed@ - The job has completed.
    --
    -- -   @Failed@ - The transform job has failed. To see the reason for the
    --     failure, see the @FailureReason@ field in the response to a
    --     @DescribeTransformJob@ call.
    --
    -- -   @Stopping@ - The transform job is stopping.
    --
    -- -   @Stopped@ - The transform job has stopped.
    TransformJob -> Maybe TransformJobStatus
transformJobStatus :: Prelude.Maybe TransformJobStatus,
    TransformJob -> Maybe TransformInput
transformInput :: Prelude.Maybe TransformInput,
    -- | The maximum number of parallel requests that can be sent to each
    -- instance in a transform job. If @MaxConcurrentTransforms@ is set to 0 or
    -- left unset, SageMaker checks the optional execution-parameters to
    -- determine the settings for your chosen algorithm. If the
    -- execution-parameters endpoint is not enabled, the default value is 1.
    -- For built-in algorithms, you don\'t need to set a value for
    -- @MaxConcurrentTransforms@.
    TransformJob -> Maybe Natural
maxConcurrentTransforms :: Prelude.Maybe Prelude.Natural,
    TransformJob -> Maybe TransformOutput
transformOutput :: Prelude.Maybe TransformOutput,
    TransformJob -> Maybe DataProcessing
dataProcessing :: Prelude.Maybe DataProcessing,
    -- | The Amazon Resource Name (ARN) of the transform job.
    TransformJob -> Maybe Text
transformJobArn :: Prelude.Maybe Prelude.Text,
    -- | A list of tags associated with the transform job.
    TransformJob -> Maybe [Tag]
tags :: Prelude.Maybe [Tag]
  }
  deriving (TransformJob -> TransformJob -> Bool
(TransformJob -> TransformJob -> Bool)
-> (TransformJob -> TransformJob -> Bool) -> Eq TransformJob
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TransformJob -> TransformJob -> Bool
$c/= :: TransformJob -> TransformJob -> Bool
== :: TransformJob -> TransformJob -> Bool
$c== :: TransformJob -> TransformJob -> Bool
Prelude.Eq, ReadPrec [TransformJob]
ReadPrec TransformJob
Int -> ReadS TransformJob
ReadS [TransformJob]
(Int -> ReadS TransformJob)
-> ReadS [TransformJob]
-> ReadPrec TransformJob
-> ReadPrec [TransformJob]
-> Read TransformJob
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TransformJob]
$creadListPrec :: ReadPrec [TransformJob]
readPrec :: ReadPrec TransformJob
$creadPrec :: ReadPrec TransformJob
readList :: ReadS [TransformJob]
$creadList :: ReadS [TransformJob]
readsPrec :: Int -> ReadS TransformJob
$creadsPrec :: Int -> ReadS TransformJob
Prelude.Read, Int -> TransformJob -> ShowS
[TransformJob] -> ShowS
TransformJob -> String
(Int -> TransformJob -> ShowS)
-> (TransformJob -> String)
-> ([TransformJob] -> ShowS)
-> Show TransformJob
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TransformJob] -> ShowS
$cshowList :: [TransformJob] -> ShowS
show :: TransformJob -> String
$cshow :: TransformJob -> String
showsPrec :: Int -> TransformJob -> ShowS
$cshowsPrec :: Int -> TransformJob -> ShowS
Prelude.Show, (forall x. TransformJob -> Rep TransformJob x)
-> (forall x. Rep TransformJob x -> TransformJob)
-> Generic TransformJob
forall x. Rep TransformJob x -> TransformJob
forall x. TransformJob -> Rep TransformJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TransformJob x -> TransformJob
$cfrom :: forall x. TransformJob -> Rep TransformJob x
Prelude.Generic)

-- |
-- Create a value of 'TransformJob' 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:
--
-- 'creationTime', 'transformJob_creationTime' - A timestamp that shows when the transform Job was created.
--
-- 'labelingJobArn', 'transformJob_labelingJobArn' - The Amazon Resource Name (ARN) of the labeling job that created the
-- transform job.
--
-- 'transformJobName', 'transformJob_transformJobName' - The name of the transform job.
--
-- 'failureReason', 'transformJob_failureReason' - If the transform job failed, the reason it failed.
--
-- 'modelClientConfig', 'transformJob_modelClientConfig' - Undocumented member.
--
-- 'batchStrategy', 'transformJob_batchStrategy' - Specifies the number of records to include in a mini-batch for an HTTP
-- inference request. A record is a single unit of input data that
-- inference can be made on. For example, a single line in a CSV file is a
-- record.
--
-- 'maxPayloadInMB', 'transformJob_maxPayloadInMB' - The maximum allowed size of the payload, in MB. A payload is the data
-- portion of a record (without metadata). The value in @MaxPayloadInMB@
-- must be greater than, or equal to, the size of a single record. To
-- estimate the size of a record in MB, divide the size of your dataset by
-- the number of records. To ensure that the records fit within the maximum
-- payload size, we recommend using a slightly larger value. The default
-- value is 6 MB. For cases where the payload might be arbitrarily large
-- and is transmitted using HTTP chunked encoding, set the value to 0. This
-- feature works only in supported algorithms. Currently, SageMaker
-- built-in algorithms do not support HTTP chunked encoding.
--
-- 'environment', 'transformJob_environment' - The environment variables to set in the Docker container. We support up
-- to 16 key and values entries in the map.
--
-- 'transformResources', 'transformJob_transformResources' - Undocumented member.
--
-- 'modelName', 'transformJob_modelName' - The name of the model associated with the transform job.
--
-- 'experimentConfig', 'transformJob_experimentConfig' - Undocumented member.
--
-- 'transformEndTime', 'transformJob_transformEndTime' - Indicates when the transform job has been completed, or has stopped or
-- failed. You are billed for the time interval between this time and the
-- value of @TransformStartTime@.
--
-- 'transformStartTime', 'transformJob_transformStartTime' - Indicates when the transform job starts on ML instances. You are billed
-- for the time interval between this time and the value of
-- @TransformEndTime@.
--
-- 'autoMLJobArn', 'transformJob_autoMLJobArn' - The Amazon Resource Name (ARN) of the AutoML job that created the
-- transform job.
--
-- 'transformJobStatus', 'transformJob_transformJobStatus' - The status of the transform job.
--
-- Transform job statuses are:
--
-- -   @InProgress@ - The job is in progress.
--
-- -   @Completed@ - The job has completed.
--
-- -   @Failed@ - The transform job has failed. To see the reason for the
--     failure, see the @FailureReason@ field in the response to a
--     @DescribeTransformJob@ call.
--
-- -   @Stopping@ - The transform job is stopping.
--
-- -   @Stopped@ - The transform job has stopped.
--
-- 'transformInput', 'transformJob_transformInput' - Undocumented member.
--
-- 'maxConcurrentTransforms', 'transformJob_maxConcurrentTransforms' - The maximum number of parallel requests that can be sent to each
-- instance in a transform job. If @MaxConcurrentTransforms@ is set to 0 or
-- left unset, SageMaker checks the optional execution-parameters to
-- determine the settings for your chosen algorithm. If the
-- execution-parameters endpoint is not enabled, the default value is 1.
-- For built-in algorithms, you don\'t need to set a value for
-- @MaxConcurrentTransforms@.
--
-- 'transformOutput', 'transformJob_transformOutput' - Undocumented member.
--
-- 'dataProcessing', 'transformJob_dataProcessing' - Undocumented member.
--
-- 'transformJobArn', 'transformJob_transformJobArn' - The Amazon Resource Name (ARN) of the transform job.
--
-- 'tags', 'transformJob_tags' - A list of tags associated with the transform job.
newTransformJob ::
  TransformJob
newTransformJob :: TransformJob
newTransformJob =
  TransformJob' :: Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe ModelClientConfig
-> Maybe BatchStrategy
-> Maybe Natural
-> Maybe (HashMap Text Text)
-> Maybe TransformResources
-> Maybe Text
-> Maybe ExperimentConfig
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe TransformJobStatus
-> Maybe TransformInput
-> Maybe Natural
-> Maybe TransformOutput
-> Maybe DataProcessing
-> Maybe Text
-> Maybe [Tag]
-> TransformJob
TransformJob'
    { $sel:creationTime:TransformJob' :: Maybe POSIX
creationTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:labelingJobArn:TransformJob' :: Maybe Text
labelingJobArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:transformJobName:TransformJob' :: Maybe Text
transformJobName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:failureReason:TransformJob' :: Maybe Text
failureReason = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:modelClientConfig:TransformJob' :: Maybe ModelClientConfig
modelClientConfig = Maybe ModelClientConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:batchStrategy:TransformJob' :: Maybe BatchStrategy
batchStrategy = Maybe BatchStrategy
forall a. Maybe a
Prelude.Nothing,
      $sel:maxPayloadInMB:TransformJob' :: Maybe Natural
maxPayloadInMB = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:environment:TransformJob' :: Maybe (HashMap Text Text)
environment = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
      $sel:transformResources:TransformJob' :: Maybe TransformResources
transformResources = Maybe TransformResources
forall a. Maybe a
Prelude.Nothing,
      $sel:modelName:TransformJob' :: Maybe Text
modelName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:experimentConfig:TransformJob' :: Maybe ExperimentConfig
experimentConfig = Maybe ExperimentConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:transformEndTime:TransformJob' :: Maybe POSIX
transformEndTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:transformStartTime:TransformJob' :: Maybe POSIX
transformStartTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:autoMLJobArn:TransformJob' :: Maybe Text
autoMLJobArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:transformJobStatus:TransformJob' :: Maybe TransformJobStatus
transformJobStatus = Maybe TransformJobStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:transformInput:TransformJob' :: Maybe TransformInput
transformInput = Maybe TransformInput
forall a. Maybe a
Prelude.Nothing,
      $sel:maxConcurrentTransforms:TransformJob' :: Maybe Natural
maxConcurrentTransforms = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:transformOutput:TransformJob' :: Maybe TransformOutput
transformOutput = Maybe TransformOutput
forall a. Maybe a
Prelude.Nothing,
      $sel:dataProcessing:TransformJob' :: Maybe DataProcessing
dataProcessing = Maybe DataProcessing
forall a. Maybe a
Prelude.Nothing,
      $sel:transformJobArn:TransformJob' :: Maybe Text
transformJobArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:tags:TransformJob' :: Maybe [Tag]
tags = Maybe [Tag]
forall a. Maybe a
Prelude.Nothing
    }

-- | A timestamp that shows when the transform Job was created.
transformJob_creationTime :: Lens.Lens' TransformJob (Prelude.Maybe Prelude.UTCTime)
transformJob_creationTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformJob -> f TransformJob
transformJob_creationTime = (TransformJob -> Maybe POSIX)
-> (TransformJob -> Maybe POSIX -> TransformJob)
-> Lens TransformJob TransformJob (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:TransformJob' :: TransformJob -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: TransformJob
s@TransformJob' {} Maybe POSIX
a -> TransformJob
s {$sel:creationTime:TransformJob' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: TransformJob) ((Maybe POSIX -> f (Maybe POSIX))
 -> TransformJob -> f TransformJob)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformJob
-> f TransformJob
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

-- | The Amazon Resource Name (ARN) of the labeling job that created the
-- transform job.
transformJob_labelingJobArn :: Lens.Lens' TransformJob (Prelude.Maybe Prelude.Text)
transformJob_labelingJobArn :: (Maybe Text -> f (Maybe Text)) -> TransformJob -> f TransformJob
transformJob_labelingJobArn = (TransformJob -> Maybe Text)
-> (TransformJob -> Maybe Text -> TransformJob)
-> Lens TransformJob TransformJob (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe Text
labelingJobArn :: Maybe Text
$sel:labelingJobArn:TransformJob' :: TransformJob -> Maybe Text
labelingJobArn} -> Maybe Text
labelingJobArn) (\s :: TransformJob
s@TransformJob' {} Maybe Text
a -> TransformJob
s {$sel:labelingJobArn:TransformJob' :: Maybe Text
labelingJobArn = Maybe Text
a} :: TransformJob)

-- | The name of the transform job.
transformJob_transformJobName :: Lens.Lens' TransformJob (Prelude.Maybe Prelude.Text)
transformJob_transformJobName :: (Maybe Text -> f (Maybe Text)) -> TransformJob -> f TransformJob
transformJob_transformJobName = (TransformJob -> Maybe Text)
-> (TransformJob -> Maybe Text -> TransformJob)
-> Lens TransformJob TransformJob (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe Text
transformJobName :: Maybe Text
$sel:transformJobName:TransformJob' :: TransformJob -> Maybe Text
transformJobName} -> Maybe Text
transformJobName) (\s :: TransformJob
s@TransformJob' {} Maybe Text
a -> TransformJob
s {$sel:transformJobName:TransformJob' :: Maybe Text
transformJobName = Maybe Text
a} :: TransformJob)

-- | If the transform job failed, the reason it failed.
transformJob_failureReason :: Lens.Lens' TransformJob (Prelude.Maybe Prelude.Text)
transformJob_failureReason :: (Maybe Text -> f (Maybe Text)) -> TransformJob -> f TransformJob
transformJob_failureReason = (TransformJob -> Maybe Text)
-> (TransformJob -> Maybe Text -> TransformJob)
-> Lens TransformJob TransformJob (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe Text
failureReason :: Maybe Text
$sel:failureReason:TransformJob' :: TransformJob -> Maybe Text
failureReason} -> Maybe Text
failureReason) (\s :: TransformJob
s@TransformJob' {} Maybe Text
a -> TransformJob
s {$sel:failureReason:TransformJob' :: Maybe Text
failureReason = Maybe Text
a} :: TransformJob)

-- | Undocumented member.
transformJob_modelClientConfig :: Lens.Lens' TransformJob (Prelude.Maybe ModelClientConfig)
transformJob_modelClientConfig :: (Maybe ModelClientConfig -> f (Maybe ModelClientConfig))
-> TransformJob -> f TransformJob
transformJob_modelClientConfig = (TransformJob -> Maybe ModelClientConfig)
-> (TransformJob -> Maybe ModelClientConfig -> TransformJob)
-> Lens
     TransformJob
     TransformJob
     (Maybe ModelClientConfig)
     (Maybe ModelClientConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe ModelClientConfig
modelClientConfig :: Maybe ModelClientConfig
$sel:modelClientConfig:TransformJob' :: TransformJob -> Maybe ModelClientConfig
modelClientConfig} -> Maybe ModelClientConfig
modelClientConfig) (\s :: TransformJob
s@TransformJob' {} Maybe ModelClientConfig
a -> TransformJob
s {$sel:modelClientConfig:TransformJob' :: Maybe ModelClientConfig
modelClientConfig = Maybe ModelClientConfig
a} :: TransformJob)

-- | Specifies the number of records to include in a mini-batch for an HTTP
-- inference request. A record is a single unit of input data that
-- inference can be made on. For example, a single line in a CSV file is a
-- record.
transformJob_batchStrategy :: Lens.Lens' TransformJob (Prelude.Maybe BatchStrategy)
transformJob_batchStrategy :: (Maybe BatchStrategy -> f (Maybe BatchStrategy))
-> TransformJob -> f TransformJob
transformJob_batchStrategy = (TransformJob -> Maybe BatchStrategy)
-> (TransformJob -> Maybe BatchStrategy -> TransformJob)
-> Lens
     TransformJob
     TransformJob
     (Maybe BatchStrategy)
     (Maybe BatchStrategy)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe BatchStrategy
batchStrategy :: Maybe BatchStrategy
$sel:batchStrategy:TransformJob' :: TransformJob -> Maybe BatchStrategy
batchStrategy} -> Maybe BatchStrategy
batchStrategy) (\s :: TransformJob
s@TransformJob' {} Maybe BatchStrategy
a -> TransformJob
s {$sel:batchStrategy:TransformJob' :: Maybe BatchStrategy
batchStrategy = Maybe BatchStrategy
a} :: TransformJob)

-- | The maximum allowed size of the payload, in MB. A payload is the data
-- portion of a record (without metadata). The value in @MaxPayloadInMB@
-- must be greater than, or equal to, the size of a single record. To
-- estimate the size of a record in MB, divide the size of your dataset by
-- the number of records. To ensure that the records fit within the maximum
-- payload size, we recommend using a slightly larger value. The default
-- value is 6 MB. For cases where the payload might be arbitrarily large
-- and is transmitted using HTTP chunked encoding, set the value to 0. This
-- feature works only in supported algorithms. Currently, SageMaker
-- built-in algorithms do not support HTTP chunked encoding.
transformJob_maxPayloadInMB :: Lens.Lens' TransformJob (Prelude.Maybe Prelude.Natural)
transformJob_maxPayloadInMB :: (Maybe Natural -> f (Maybe Natural))
-> TransformJob -> f TransformJob
transformJob_maxPayloadInMB = (TransformJob -> Maybe Natural)
-> (TransformJob -> Maybe Natural -> TransformJob)
-> Lens TransformJob TransformJob (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe Natural
maxPayloadInMB :: Maybe Natural
$sel:maxPayloadInMB:TransformJob' :: TransformJob -> Maybe Natural
maxPayloadInMB} -> Maybe Natural
maxPayloadInMB) (\s :: TransformJob
s@TransformJob' {} Maybe Natural
a -> TransformJob
s {$sel:maxPayloadInMB:TransformJob' :: Maybe Natural
maxPayloadInMB = Maybe Natural
a} :: TransformJob)

-- | The environment variables to set in the Docker container. We support up
-- to 16 key and values entries in the map.
transformJob_environment :: Lens.Lens' TransformJob (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
transformJob_environment :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> TransformJob -> f TransformJob
transformJob_environment = (TransformJob -> Maybe (HashMap Text Text))
-> (TransformJob -> Maybe (HashMap Text Text) -> TransformJob)
-> Lens
     TransformJob
     TransformJob
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe (HashMap Text Text)
environment :: Maybe (HashMap Text Text)
$sel:environment:TransformJob' :: TransformJob -> Maybe (HashMap Text Text)
environment} -> Maybe (HashMap Text Text)
environment) (\s :: TransformJob
s@TransformJob' {} Maybe (HashMap Text Text)
a -> TransformJob
s {$sel:environment:TransformJob' :: Maybe (HashMap Text Text)
environment = Maybe (HashMap Text Text)
a} :: TransformJob) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> TransformJob -> f TransformJob)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
    -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> TransformJob
-> f TransformJob
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
-> Iso
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
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
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Undocumented member.
transformJob_transformResources :: Lens.Lens' TransformJob (Prelude.Maybe TransformResources)
transformJob_transformResources :: (Maybe TransformResources -> f (Maybe TransformResources))
-> TransformJob -> f TransformJob
transformJob_transformResources = (TransformJob -> Maybe TransformResources)
-> (TransformJob -> Maybe TransformResources -> TransformJob)
-> Lens
     TransformJob
     TransformJob
     (Maybe TransformResources)
     (Maybe TransformResources)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe TransformResources
transformResources :: Maybe TransformResources
$sel:transformResources:TransformJob' :: TransformJob -> Maybe TransformResources
transformResources} -> Maybe TransformResources
transformResources) (\s :: TransformJob
s@TransformJob' {} Maybe TransformResources
a -> TransformJob
s {$sel:transformResources:TransformJob' :: Maybe TransformResources
transformResources = Maybe TransformResources
a} :: TransformJob)

-- | The name of the model associated with the transform job.
transformJob_modelName :: Lens.Lens' TransformJob (Prelude.Maybe Prelude.Text)
transformJob_modelName :: (Maybe Text -> f (Maybe Text)) -> TransformJob -> f TransformJob
transformJob_modelName = (TransformJob -> Maybe Text)
-> (TransformJob -> Maybe Text -> TransformJob)
-> Lens TransformJob TransformJob (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe Text
modelName :: Maybe Text
$sel:modelName:TransformJob' :: TransformJob -> Maybe Text
modelName} -> Maybe Text
modelName) (\s :: TransformJob
s@TransformJob' {} Maybe Text
a -> TransformJob
s {$sel:modelName:TransformJob' :: Maybe Text
modelName = Maybe Text
a} :: TransformJob)

-- | Undocumented member.
transformJob_experimentConfig :: Lens.Lens' TransformJob (Prelude.Maybe ExperimentConfig)
transformJob_experimentConfig :: (Maybe ExperimentConfig -> f (Maybe ExperimentConfig))
-> TransformJob -> f TransformJob
transformJob_experimentConfig = (TransformJob -> Maybe ExperimentConfig)
-> (TransformJob -> Maybe ExperimentConfig -> TransformJob)
-> Lens
     TransformJob
     TransformJob
     (Maybe ExperimentConfig)
     (Maybe ExperimentConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe ExperimentConfig
experimentConfig :: Maybe ExperimentConfig
$sel:experimentConfig:TransformJob' :: TransformJob -> Maybe ExperimentConfig
experimentConfig} -> Maybe ExperimentConfig
experimentConfig) (\s :: TransformJob
s@TransformJob' {} Maybe ExperimentConfig
a -> TransformJob
s {$sel:experimentConfig:TransformJob' :: Maybe ExperimentConfig
experimentConfig = Maybe ExperimentConfig
a} :: TransformJob)

-- | Indicates when the transform job has been completed, or has stopped or
-- failed. You are billed for the time interval between this time and the
-- value of @TransformStartTime@.
transformJob_transformEndTime :: Lens.Lens' TransformJob (Prelude.Maybe Prelude.UTCTime)
transformJob_transformEndTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformJob -> f TransformJob
transformJob_transformEndTime = (TransformJob -> Maybe POSIX)
-> (TransformJob -> Maybe POSIX -> TransformJob)
-> Lens TransformJob TransformJob (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe POSIX
transformEndTime :: Maybe POSIX
$sel:transformEndTime:TransformJob' :: TransformJob -> Maybe POSIX
transformEndTime} -> Maybe POSIX
transformEndTime) (\s :: TransformJob
s@TransformJob' {} Maybe POSIX
a -> TransformJob
s {$sel:transformEndTime:TransformJob' :: Maybe POSIX
transformEndTime = Maybe POSIX
a} :: TransformJob) ((Maybe POSIX -> f (Maybe POSIX))
 -> TransformJob -> f TransformJob)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformJob
-> f TransformJob
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

-- | Indicates when the transform job starts on ML instances. You are billed
-- for the time interval between this time and the value of
-- @TransformEndTime@.
transformJob_transformStartTime :: Lens.Lens' TransformJob (Prelude.Maybe Prelude.UTCTime)
transformJob_transformStartTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformJob -> f TransformJob
transformJob_transformStartTime = (TransformJob -> Maybe POSIX)
-> (TransformJob -> Maybe POSIX -> TransformJob)
-> Lens TransformJob TransformJob (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe POSIX
transformStartTime :: Maybe POSIX
$sel:transformStartTime:TransformJob' :: TransformJob -> Maybe POSIX
transformStartTime} -> Maybe POSIX
transformStartTime) (\s :: TransformJob
s@TransformJob' {} Maybe POSIX
a -> TransformJob
s {$sel:transformStartTime:TransformJob' :: Maybe POSIX
transformStartTime = Maybe POSIX
a} :: TransformJob) ((Maybe POSIX -> f (Maybe POSIX))
 -> TransformJob -> f TransformJob)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> TransformJob
-> f TransformJob
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

-- | The Amazon Resource Name (ARN) of the AutoML job that created the
-- transform job.
transformJob_autoMLJobArn :: Lens.Lens' TransformJob (Prelude.Maybe Prelude.Text)
transformJob_autoMLJobArn :: (Maybe Text -> f (Maybe Text)) -> TransformJob -> f TransformJob
transformJob_autoMLJobArn = (TransformJob -> Maybe Text)
-> (TransformJob -> Maybe Text -> TransformJob)
-> Lens TransformJob TransformJob (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe Text
autoMLJobArn :: Maybe Text
$sel:autoMLJobArn:TransformJob' :: TransformJob -> Maybe Text
autoMLJobArn} -> Maybe Text
autoMLJobArn) (\s :: TransformJob
s@TransformJob' {} Maybe Text
a -> TransformJob
s {$sel:autoMLJobArn:TransformJob' :: Maybe Text
autoMLJobArn = Maybe Text
a} :: TransformJob)

-- | The status of the transform job.
--
-- Transform job statuses are:
--
-- -   @InProgress@ - The job is in progress.
--
-- -   @Completed@ - The job has completed.
--
-- -   @Failed@ - The transform job has failed. To see the reason for the
--     failure, see the @FailureReason@ field in the response to a
--     @DescribeTransformJob@ call.
--
-- -   @Stopping@ - The transform job is stopping.
--
-- -   @Stopped@ - The transform job has stopped.
transformJob_transformJobStatus :: Lens.Lens' TransformJob (Prelude.Maybe TransformJobStatus)
transformJob_transformJobStatus :: (Maybe TransformJobStatus -> f (Maybe TransformJobStatus))
-> TransformJob -> f TransformJob
transformJob_transformJobStatus = (TransformJob -> Maybe TransformJobStatus)
-> (TransformJob -> Maybe TransformJobStatus -> TransformJob)
-> Lens
     TransformJob
     TransformJob
     (Maybe TransformJobStatus)
     (Maybe TransformJobStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe TransformJobStatus
transformJobStatus :: Maybe TransformJobStatus
$sel:transformJobStatus:TransformJob' :: TransformJob -> Maybe TransformJobStatus
transformJobStatus} -> Maybe TransformJobStatus
transformJobStatus) (\s :: TransformJob
s@TransformJob' {} Maybe TransformJobStatus
a -> TransformJob
s {$sel:transformJobStatus:TransformJob' :: Maybe TransformJobStatus
transformJobStatus = Maybe TransformJobStatus
a} :: TransformJob)

-- | Undocumented member.
transformJob_transformInput :: Lens.Lens' TransformJob (Prelude.Maybe TransformInput)
transformJob_transformInput :: (Maybe TransformInput -> f (Maybe TransformInput))
-> TransformJob -> f TransformJob
transformJob_transformInput = (TransformJob -> Maybe TransformInput)
-> (TransformJob -> Maybe TransformInput -> TransformJob)
-> Lens
     TransformJob
     TransformJob
     (Maybe TransformInput)
     (Maybe TransformInput)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe TransformInput
transformInput :: Maybe TransformInput
$sel:transformInput:TransformJob' :: TransformJob -> Maybe TransformInput
transformInput} -> Maybe TransformInput
transformInput) (\s :: TransformJob
s@TransformJob' {} Maybe TransformInput
a -> TransformJob
s {$sel:transformInput:TransformJob' :: Maybe TransformInput
transformInput = Maybe TransformInput
a} :: TransformJob)

-- | The maximum number of parallel requests that can be sent to each
-- instance in a transform job. If @MaxConcurrentTransforms@ is set to 0 or
-- left unset, SageMaker checks the optional execution-parameters to
-- determine the settings for your chosen algorithm. If the
-- execution-parameters endpoint is not enabled, the default value is 1.
-- For built-in algorithms, you don\'t need to set a value for
-- @MaxConcurrentTransforms@.
transformJob_maxConcurrentTransforms :: Lens.Lens' TransformJob (Prelude.Maybe Prelude.Natural)
transformJob_maxConcurrentTransforms :: (Maybe Natural -> f (Maybe Natural))
-> TransformJob -> f TransformJob
transformJob_maxConcurrentTransforms = (TransformJob -> Maybe Natural)
-> (TransformJob -> Maybe Natural -> TransformJob)
-> Lens TransformJob TransformJob (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe Natural
maxConcurrentTransforms :: Maybe Natural
$sel:maxConcurrentTransforms:TransformJob' :: TransformJob -> Maybe Natural
maxConcurrentTransforms} -> Maybe Natural
maxConcurrentTransforms) (\s :: TransformJob
s@TransformJob' {} Maybe Natural
a -> TransformJob
s {$sel:maxConcurrentTransforms:TransformJob' :: Maybe Natural
maxConcurrentTransforms = Maybe Natural
a} :: TransformJob)

-- | Undocumented member.
transformJob_transformOutput :: Lens.Lens' TransformJob (Prelude.Maybe TransformOutput)
transformJob_transformOutput :: (Maybe TransformOutput -> f (Maybe TransformOutput))
-> TransformJob -> f TransformJob
transformJob_transformOutput = (TransformJob -> Maybe TransformOutput)
-> (TransformJob -> Maybe TransformOutput -> TransformJob)
-> Lens
     TransformJob
     TransformJob
     (Maybe TransformOutput)
     (Maybe TransformOutput)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe TransformOutput
transformOutput :: Maybe TransformOutput
$sel:transformOutput:TransformJob' :: TransformJob -> Maybe TransformOutput
transformOutput} -> Maybe TransformOutput
transformOutput) (\s :: TransformJob
s@TransformJob' {} Maybe TransformOutput
a -> TransformJob
s {$sel:transformOutput:TransformJob' :: Maybe TransformOutput
transformOutput = Maybe TransformOutput
a} :: TransformJob)

-- | Undocumented member.
transformJob_dataProcessing :: Lens.Lens' TransformJob (Prelude.Maybe DataProcessing)
transformJob_dataProcessing :: (Maybe DataProcessing -> f (Maybe DataProcessing))
-> TransformJob -> f TransformJob
transformJob_dataProcessing = (TransformJob -> Maybe DataProcessing)
-> (TransformJob -> Maybe DataProcessing -> TransformJob)
-> Lens
     TransformJob
     TransformJob
     (Maybe DataProcessing)
     (Maybe DataProcessing)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe DataProcessing
dataProcessing :: Maybe DataProcessing
$sel:dataProcessing:TransformJob' :: TransformJob -> Maybe DataProcessing
dataProcessing} -> Maybe DataProcessing
dataProcessing) (\s :: TransformJob
s@TransformJob' {} Maybe DataProcessing
a -> TransformJob
s {$sel:dataProcessing:TransformJob' :: Maybe DataProcessing
dataProcessing = Maybe DataProcessing
a} :: TransformJob)

-- | The Amazon Resource Name (ARN) of the transform job.
transformJob_transformJobArn :: Lens.Lens' TransformJob (Prelude.Maybe Prelude.Text)
transformJob_transformJobArn :: (Maybe Text -> f (Maybe Text)) -> TransformJob -> f TransformJob
transformJob_transformJobArn = (TransformJob -> Maybe Text)
-> (TransformJob -> Maybe Text -> TransformJob)
-> Lens TransformJob TransformJob (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe Text
transformJobArn :: Maybe Text
$sel:transformJobArn:TransformJob' :: TransformJob -> Maybe Text
transformJobArn} -> Maybe Text
transformJobArn) (\s :: TransformJob
s@TransformJob' {} Maybe Text
a -> TransformJob
s {$sel:transformJobArn:TransformJob' :: Maybe Text
transformJobArn = Maybe Text
a} :: TransformJob)

-- | A list of tags associated with the transform job.
transformJob_tags :: Lens.Lens' TransformJob (Prelude.Maybe [Tag])
transformJob_tags :: (Maybe [Tag] -> f (Maybe [Tag])) -> TransformJob -> f TransformJob
transformJob_tags = (TransformJob -> Maybe [Tag])
-> (TransformJob -> Maybe [Tag] -> TransformJob)
-> Lens TransformJob TransformJob (Maybe [Tag]) (Maybe [Tag])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJob' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:TransformJob' :: TransformJob -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: TransformJob
s@TransformJob' {} Maybe [Tag]
a -> TransformJob
s {$sel:tags:TransformJob' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: TransformJob) ((Maybe [Tag] -> f (Maybe [Tag]))
 -> TransformJob -> f TransformJob)
-> ((Maybe [Tag] -> f (Maybe [Tag]))
    -> Maybe [Tag] -> f (Maybe [Tag]))
-> (Maybe [Tag] -> f (Maybe [Tag]))
-> TransformJob
-> f TransformJob
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Tag] [Tag] [Tag] [Tag]
-> Iso (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag])
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 [Tag] [Tag] [Tag] [Tag]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

instance Core.FromJSON TransformJob where
  parseJSON :: Value -> Parser TransformJob
parseJSON =
    String
-> (Object -> Parser TransformJob) -> Value -> Parser TransformJob
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"TransformJob"
      ( \Object
x ->
          Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe ModelClientConfig
-> Maybe BatchStrategy
-> Maybe Natural
-> Maybe (HashMap Text Text)
-> Maybe TransformResources
-> Maybe Text
-> Maybe ExperimentConfig
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe TransformJobStatus
-> Maybe TransformInput
-> Maybe Natural
-> Maybe TransformOutput
-> Maybe DataProcessing
-> Maybe Text
-> Maybe [Tag]
-> TransformJob
TransformJob'
            (Maybe POSIX
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe ModelClientConfig
 -> Maybe BatchStrategy
 -> Maybe Natural
 -> Maybe (HashMap Text Text)
 -> Maybe TransformResources
 -> Maybe Text
 -> Maybe ExperimentConfig
 -> Maybe POSIX
 -> Maybe POSIX
 -> Maybe Text
 -> Maybe TransformJobStatus
 -> Maybe TransformInput
 -> Maybe Natural
 -> Maybe TransformOutput
 -> Maybe DataProcessing
 -> Maybe Text
 -> Maybe [Tag]
 -> TransformJob)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe ModelClientConfig
      -> Maybe BatchStrategy
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe TransformResources
      -> Maybe Text
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"CreationTime")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe ModelClientConfig
   -> Maybe BatchStrategy
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe TransformResources
   -> Maybe Text
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe ModelClientConfig
      -> Maybe BatchStrategy
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe TransformResources
      -> Maybe Text
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"LabelingJobArn")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe ModelClientConfig
   -> Maybe BatchStrategy
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe TransformResources
   -> Maybe Text
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe ModelClientConfig
      -> Maybe BatchStrategy
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe TransformResources
      -> Maybe Text
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TransformJobName")
            Parser
  (Maybe Text
   -> Maybe ModelClientConfig
   -> Maybe BatchStrategy
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe TransformResources
   -> Maybe Text
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe Text)
-> Parser
     (Maybe ModelClientConfig
      -> Maybe BatchStrategy
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe TransformResources
      -> Maybe Text
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"FailureReason")
            Parser
  (Maybe ModelClientConfig
   -> Maybe BatchStrategy
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe TransformResources
   -> Maybe Text
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe ModelClientConfig)
-> Parser
     (Maybe BatchStrategy
      -> Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe TransformResources
      -> Maybe Text
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ModelClientConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ModelClientConfig")
            Parser
  (Maybe BatchStrategy
   -> Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe TransformResources
   -> Maybe Text
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe BatchStrategy)
-> Parser
     (Maybe Natural
      -> Maybe (HashMap Text Text)
      -> Maybe TransformResources
      -> Maybe Text
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BatchStrategy)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"BatchStrategy")
            Parser
  (Maybe Natural
   -> Maybe (HashMap Text Text)
   -> Maybe TransformResources
   -> Maybe Text
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe Natural)
-> Parser
     (Maybe (HashMap Text Text)
      -> Maybe TransformResources
      -> Maybe Text
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"MaxPayloadInMB")
            Parser
  (Maybe (HashMap Text Text)
   -> Maybe TransformResources
   -> Maybe Text
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe (HashMap Text Text))
-> Parser
     (Maybe TransformResources
      -> Maybe Text
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe (HashMap Text Text)))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Environment" Parser (Maybe (Maybe (HashMap Text Text)))
-> Maybe (HashMap Text Text) -> Parser (Maybe (HashMap Text Text))
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe (HashMap Text Text)
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe TransformResources
   -> Maybe Text
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe TransformResources)
-> Parser
     (Maybe Text
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe TransformResources)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TransformResources")
            Parser
  (Maybe Text
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe Text)
-> Parser
     (Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ModelName")
            Parser
  (Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe ExperimentConfig)
-> Parser
     (Maybe POSIX
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ExperimentConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ExperimentConfig")
            Parser
  (Maybe POSIX
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe POSIX
      -> Maybe Text
      -> Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TransformEndTime")
            Parser
  (Maybe POSIX
   -> Maybe Text
   -> Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe Text
      -> Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TransformStartTime")
            Parser
  (Maybe Text
   -> Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe Text)
-> Parser
     (Maybe TransformJobStatus
      -> Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"AutoMLJobArn")
            Parser
  (Maybe TransformJobStatus
   -> Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe TransformJobStatus)
-> Parser
     (Maybe TransformInput
      -> Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe TransformJobStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TransformJobStatus")
            Parser
  (Maybe TransformInput
   -> Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe TransformInput)
-> Parser
     (Maybe Natural
      -> Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe TransformInput)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TransformInput")
            Parser
  (Maybe Natural
   -> Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe Natural)
-> Parser
     (Maybe TransformOutput
      -> Maybe DataProcessing
      -> Maybe Text
      -> Maybe [Tag]
      -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"MaxConcurrentTransforms")
            Parser
  (Maybe TransformOutput
   -> Maybe DataProcessing
   -> Maybe Text
   -> Maybe [Tag]
   -> TransformJob)
-> Parser (Maybe TransformOutput)
-> Parser
     (Maybe DataProcessing -> Maybe Text -> Maybe [Tag] -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe TransformOutput)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TransformOutput")
            Parser
  (Maybe DataProcessing -> Maybe Text -> Maybe [Tag] -> TransformJob)
-> Parser (Maybe DataProcessing)
-> Parser (Maybe Text -> Maybe [Tag] -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DataProcessing)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"DataProcessing")
            Parser (Maybe Text -> Maybe [Tag] -> TransformJob)
-> Parser (Maybe Text) -> Parser (Maybe [Tag] -> TransformJob)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"TransformJobArn")
            Parser (Maybe [Tag] -> TransformJob)
-> Parser (Maybe [Tag]) -> Parser TransformJob
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [Tag]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"Tags" Parser (Maybe (Maybe [Tag])) -> Maybe [Tag] -> Parser (Maybe [Tag])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Tag]
forall a. Monoid a => a
Prelude.mempty)
      )

instance Prelude.Hashable TransformJob

instance Prelude.NFData TransformJob