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

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.SageMaker.Types.BatchStrategy
import Amazonka.SageMaker.Types.TransformInput
import Amazonka.SageMaker.Types.TransformOutput
import Amazonka.SageMaker.Types.TransformResources

-- | Defines the input needed to run a transform job using the inference
-- specification specified in the algorithm.
--
-- /See:/ 'newTransformJobDefinition' smart constructor.
data TransformJobDefinition = TransformJobDefinition'
  { -- | A string that determines the number of records included in a single
    -- mini-batch.
    --
    -- @SingleRecord@ means only one record is used per mini-batch.
    -- @MultiRecord@ means a mini-batch is set to contain as many records that
    -- can fit within the @MaxPayloadInMB@ limit.
    TransformJobDefinition -> Maybe BatchStrategy
batchStrategy :: Prelude.Maybe BatchStrategy,
    -- | The environment variables to set in the Docker container. We support up
    -- to 16 key and values entries in the map.
    TransformJobDefinition -> Maybe (HashMap Text Text)
environment :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The maximum number of parallel requests that can be sent to each
    -- instance in a transform job. The default value is 1.
    TransformJobDefinition -> Maybe Natural
maxConcurrentTransforms :: Prelude.Maybe Prelude.Natural,
    -- | The maximum payload size allowed, in MB. A payload is the data portion
    -- of a record (without metadata).
    TransformJobDefinition -> Maybe Natural
maxPayloadInMB :: Prelude.Maybe Prelude.Natural,
    -- | A description of the input source and the way the transform job consumes
    -- it.
    TransformJobDefinition -> TransformInput
transformInput :: TransformInput,
    -- | Identifies the Amazon S3 location where you want Amazon SageMaker to
    -- save the results from the transform job.
    TransformJobDefinition -> TransformOutput
transformOutput :: TransformOutput,
    -- | Identifies the ML compute instances for the transform job.
    TransformJobDefinition -> TransformResources
transformResources :: TransformResources
  }
  deriving (TransformJobDefinition -> TransformJobDefinition -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TransformJobDefinition -> TransformJobDefinition -> Bool
$c/= :: TransformJobDefinition -> TransformJobDefinition -> Bool
== :: TransformJobDefinition -> TransformJobDefinition -> Bool
$c== :: TransformJobDefinition -> TransformJobDefinition -> Bool
Prelude.Eq, ReadPrec [TransformJobDefinition]
ReadPrec TransformJobDefinition
Int -> ReadS TransformJobDefinition
ReadS [TransformJobDefinition]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TransformJobDefinition]
$creadListPrec :: ReadPrec [TransformJobDefinition]
readPrec :: ReadPrec TransformJobDefinition
$creadPrec :: ReadPrec TransformJobDefinition
readList :: ReadS [TransformJobDefinition]
$creadList :: ReadS [TransformJobDefinition]
readsPrec :: Int -> ReadS TransformJobDefinition
$creadsPrec :: Int -> ReadS TransformJobDefinition
Prelude.Read, Int -> TransformJobDefinition -> ShowS
[TransformJobDefinition] -> ShowS
TransformJobDefinition -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TransformJobDefinition] -> ShowS
$cshowList :: [TransformJobDefinition] -> ShowS
show :: TransformJobDefinition -> String
$cshow :: TransformJobDefinition -> String
showsPrec :: Int -> TransformJobDefinition -> ShowS
$cshowsPrec :: Int -> TransformJobDefinition -> ShowS
Prelude.Show, forall x. Rep TransformJobDefinition x -> TransformJobDefinition
forall x. TransformJobDefinition -> Rep TransformJobDefinition x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep TransformJobDefinition x -> TransformJobDefinition
$cfrom :: forall x. TransformJobDefinition -> Rep TransformJobDefinition x
Prelude.Generic)

-- |
-- Create a value of 'TransformJobDefinition' 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:
--
-- 'batchStrategy', 'transformJobDefinition_batchStrategy' - A string that determines the number of records included in a single
-- mini-batch.
--
-- @SingleRecord@ means only one record is used per mini-batch.
-- @MultiRecord@ means a mini-batch is set to contain as many records that
-- can fit within the @MaxPayloadInMB@ limit.
--
-- 'environment', 'transformJobDefinition_environment' - The environment variables to set in the Docker container. We support up
-- to 16 key and values entries in the map.
--
-- 'maxConcurrentTransforms', 'transformJobDefinition_maxConcurrentTransforms' - The maximum number of parallel requests that can be sent to each
-- instance in a transform job. The default value is 1.
--
-- 'maxPayloadInMB', 'transformJobDefinition_maxPayloadInMB' - The maximum payload size allowed, in MB. A payload is the data portion
-- of a record (without metadata).
--
-- 'transformInput', 'transformJobDefinition_transformInput' - A description of the input source and the way the transform job consumes
-- it.
--
-- 'transformOutput', 'transformJobDefinition_transformOutput' - Identifies the Amazon S3 location where you want Amazon SageMaker to
-- save the results from the transform job.
--
-- 'transformResources', 'transformJobDefinition_transformResources' - Identifies the ML compute instances for the transform job.
newTransformJobDefinition ::
  -- | 'transformInput'
  TransformInput ->
  -- | 'transformOutput'
  TransformOutput ->
  -- | 'transformResources'
  TransformResources ->
  TransformJobDefinition
newTransformJobDefinition :: TransformInput
-> TransformOutput -> TransformResources -> TransformJobDefinition
newTransformJobDefinition
  TransformInput
pTransformInput_
  TransformOutput
pTransformOutput_
  TransformResources
pTransformResources_ =
    TransformJobDefinition'
      { $sel:batchStrategy:TransformJobDefinition' :: Maybe BatchStrategy
batchStrategy =
          forall a. Maybe a
Prelude.Nothing,
        $sel:environment:TransformJobDefinition' :: Maybe (HashMap Text Text)
environment = forall a. Maybe a
Prelude.Nothing,
        $sel:maxConcurrentTransforms:TransformJobDefinition' :: Maybe Natural
maxConcurrentTransforms = forall a. Maybe a
Prelude.Nothing,
        $sel:maxPayloadInMB:TransformJobDefinition' :: Maybe Natural
maxPayloadInMB = forall a. Maybe a
Prelude.Nothing,
        $sel:transformInput:TransformJobDefinition' :: TransformInput
transformInput = TransformInput
pTransformInput_,
        $sel:transformOutput:TransformJobDefinition' :: TransformOutput
transformOutput = TransformOutput
pTransformOutput_,
        $sel:transformResources:TransformJobDefinition' :: TransformResources
transformResources = TransformResources
pTransformResources_
      }

-- | A string that determines the number of records included in a single
-- mini-batch.
--
-- @SingleRecord@ means only one record is used per mini-batch.
-- @MultiRecord@ means a mini-batch is set to contain as many records that
-- can fit within the @MaxPayloadInMB@ limit.
transformJobDefinition_batchStrategy :: Lens.Lens' TransformJobDefinition (Prelude.Maybe BatchStrategy)
transformJobDefinition_batchStrategy :: Lens' TransformJobDefinition (Maybe BatchStrategy)
transformJobDefinition_batchStrategy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJobDefinition' {Maybe BatchStrategy
batchStrategy :: Maybe BatchStrategy
$sel:batchStrategy:TransformJobDefinition' :: TransformJobDefinition -> Maybe BatchStrategy
batchStrategy} -> Maybe BatchStrategy
batchStrategy) (\s :: TransformJobDefinition
s@TransformJobDefinition' {} Maybe BatchStrategy
a -> TransformJobDefinition
s {$sel:batchStrategy:TransformJobDefinition' :: Maybe BatchStrategy
batchStrategy = Maybe BatchStrategy
a} :: TransformJobDefinition)

-- | The environment variables to set in the Docker container. We support up
-- to 16 key and values entries in the map.
transformJobDefinition_environment :: Lens.Lens' TransformJobDefinition (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
transformJobDefinition_environment :: Lens' TransformJobDefinition (Maybe (HashMap Text Text))
transformJobDefinition_environment = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJobDefinition' {Maybe (HashMap Text Text)
environment :: Maybe (HashMap Text Text)
$sel:environment:TransformJobDefinition' :: TransformJobDefinition -> Maybe (HashMap Text Text)
environment} -> Maybe (HashMap Text Text)
environment) (\s :: TransformJobDefinition
s@TransformJobDefinition' {} Maybe (HashMap Text Text)
a -> TransformJobDefinition
s {$sel:environment:TransformJobDefinition' :: Maybe (HashMap Text Text)
environment = Maybe (HashMap Text Text)
a} :: TransformJobDefinition) 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 maximum number of parallel requests that can be sent to each
-- instance in a transform job. The default value is 1.
transformJobDefinition_maxConcurrentTransforms :: Lens.Lens' TransformJobDefinition (Prelude.Maybe Prelude.Natural)
transformJobDefinition_maxConcurrentTransforms :: Lens' TransformJobDefinition (Maybe Natural)
transformJobDefinition_maxConcurrentTransforms = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJobDefinition' {Maybe Natural
maxConcurrentTransforms :: Maybe Natural
$sel:maxConcurrentTransforms:TransformJobDefinition' :: TransformJobDefinition -> Maybe Natural
maxConcurrentTransforms} -> Maybe Natural
maxConcurrentTransforms) (\s :: TransformJobDefinition
s@TransformJobDefinition' {} Maybe Natural
a -> TransformJobDefinition
s {$sel:maxConcurrentTransforms:TransformJobDefinition' :: Maybe Natural
maxConcurrentTransforms = Maybe Natural
a} :: TransformJobDefinition)

-- | The maximum payload size allowed, in MB. A payload is the data portion
-- of a record (without metadata).
transformJobDefinition_maxPayloadInMB :: Lens.Lens' TransformJobDefinition (Prelude.Maybe Prelude.Natural)
transformJobDefinition_maxPayloadInMB :: Lens' TransformJobDefinition (Maybe Natural)
transformJobDefinition_maxPayloadInMB = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJobDefinition' {Maybe Natural
maxPayloadInMB :: Maybe Natural
$sel:maxPayloadInMB:TransformJobDefinition' :: TransformJobDefinition -> Maybe Natural
maxPayloadInMB} -> Maybe Natural
maxPayloadInMB) (\s :: TransformJobDefinition
s@TransformJobDefinition' {} Maybe Natural
a -> TransformJobDefinition
s {$sel:maxPayloadInMB:TransformJobDefinition' :: Maybe Natural
maxPayloadInMB = Maybe Natural
a} :: TransformJobDefinition)

-- | A description of the input source and the way the transform job consumes
-- it.
transformJobDefinition_transformInput :: Lens.Lens' TransformJobDefinition TransformInput
transformJobDefinition_transformInput :: Lens' TransformJobDefinition TransformInput
transformJobDefinition_transformInput = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJobDefinition' {TransformInput
transformInput :: TransformInput
$sel:transformInput:TransformJobDefinition' :: TransformJobDefinition -> TransformInput
transformInput} -> TransformInput
transformInput) (\s :: TransformJobDefinition
s@TransformJobDefinition' {} TransformInput
a -> TransformJobDefinition
s {$sel:transformInput:TransformJobDefinition' :: TransformInput
transformInput = TransformInput
a} :: TransformJobDefinition)

-- | Identifies the Amazon S3 location where you want Amazon SageMaker to
-- save the results from the transform job.
transformJobDefinition_transformOutput :: Lens.Lens' TransformJobDefinition TransformOutput
transformJobDefinition_transformOutput :: Lens' TransformJobDefinition TransformOutput
transformJobDefinition_transformOutput = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJobDefinition' {TransformOutput
transformOutput :: TransformOutput
$sel:transformOutput:TransformJobDefinition' :: TransformJobDefinition -> TransformOutput
transformOutput} -> TransformOutput
transformOutput) (\s :: TransformJobDefinition
s@TransformJobDefinition' {} TransformOutput
a -> TransformJobDefinition
s {$sel:transformOutput:TransformJobDefinition' :: TransformOutput
transformOutput = TransformOutput
a} :: TransformJobDefinition)

-- | Identifies the ML compute instances for the transform job.
transformJobDefinition_transformResources :: Lens.Lens' TransformJobDefinition TransformResources
transformJobDefinition_transformResources :: Lens' TransformJobDefinition TransformResources
transformJobDefinition_transformResources = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TransformJobDefinition' {TransformResources
transformResources :: TransformResources
$sel:transformResources:TransformJobDefinition' :: TransformJobDefinition -> TransformResources
transformResources} -> TransformResources
transformResources) (\s :: TransformJobDefinition
s@TransformJobDefinition' {} TransformResources
a -> TransformJobDefinition
s {$sel:transformResources:TransformJobDefinition' :: TransformResources
transformResources = TransformResources
a} :: TransformJobDefinition)

instance Data.FromJSON TransformJobDefinition where
  parseJSON :: Value -> Parser TransformJobDefinition
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"TransformJobDefinition"
      ( \Object
x ->
          Maybe BatchStrategy
-> Maybe (HashMap Text Text)
-> Maybe Natural
-> Maybe Natural
-> TransformInput
-> TransformOutput
-> TransformResources
-> TransformJobDefinition
TransformJobDefinition'
            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
"BatchStrategy")
            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
"Environment" 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
"MaxConcurrentTransforms")
            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
"MaxPayloadInMB")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"TransformInput")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"TransformOutput")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"TransformResources")
      )

instance Prelude.Hashable TransformJobDefinition where
  hashWithSalt :: Int -> TransformJobDefinition -> Int
hashWithSalt Int
_salt TransformJobDefinition' {Maybe Natural
Maybe (HashMap Text Text)
Maybe BatchStrategy
TransformOutput
TransformResources
TransformInput
transformResources :: TransformResources
transformOutput :: TransformOutput
transformInput :: TransformInput
maxPayloadInMB :: Maybe Natural
maxConcurrentTransforms :: Maybe Natural
environment :: Maybe (HashMap Text Text)
batchStrategy :: Maybe BatchStrategy
$sel:transformResources:TransformJobDefinition' :: TransformJobDefinition -> TransformResources
$sel:transformOutput:TransformJobDefinition' :: TransformJobDefinition -> TransformOutput
$sel:transformInput:TransformJobDefinition' :: TransformJobDefinition -> TransformInput
$sel:maxPayloadInMB:TransformJobDefinition' :: TransformJobDefinition -> Maybe Natural
$sel:maxConcurrentTransforms:TransformJobDefinition' :: TransformJobDefinition -> Maybe Natural
$sel:environment:TransformJobDefinition' :: TransformJobDefinition -> Maybe (HashMap Text Text)
$sel:batchStrategy:TransformJobDefinition' :: TransformJobDefinition -> Maybe BatchStrategy
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BatchStrategy
batchStrategy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
environment
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxConcurrentTransforms
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
maxPayloadInMB
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` TransformInput
transformInput
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` TransformOutput
transformOutput
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` TransformResources
transformResources

instance Prelude.NFData TransformJobDefinition where
  rnf :: TransformJobDefinition -> ()
rnf TransformJobDefinition' {Maybe Natural
Maybe (HashMap Text Text)
Maybe BatchStrategy
TransformOutput
TransformResources
TransformInput
transformResources :: TransformResources
transformOutput :: TransformOutput
transformInput :: TransformInput
maxPayloadInMB :: Maybe Natural
maxConcurrentTransforms :: Maybe Natural
environment :: Maybe (HashMap Text Text)
batchStrategy :: Maybe BatchStrategy
$sel:transformResources:TransformJobDefinition' :: TransformJobDefinition -> TransformResources
$sel:transformOutput:TransformJobDefinition' :: TransformJobDefinition -> TransformOutput
$sel:transformInput:TransformJobDefinition' :: TransformJobDefinition -> TransformInput
$sel:maxPayloadInMB:TransformJobDefinition' :: TransformJobDefinition -> Maybe Natural
$sel:maxConcurrentTransforms:TransformJobDefinition' :: TransformJobDefinition -> Maybe Natural
$sel:environment:TransformJobDefinition' :: TransformJobDefinition -> Maybe (HashMap Text Text)
$sel:batchStrategy:TransformJobDefinition' :: TransformJobDefinition -> Maybe BatchStrategy
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe BatchStrategy
batchStrategy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
environment
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxConcurrentTransforms
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
maxPayloadInMB
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf TransformInput
transformInput
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf TransformOutput
transformOutput
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf TransformResources
transformResources

instance Data.ToJSON TransformJobDefinition where
  toJSON :: TransformJobDefinition -> Value
toJSON TransformJobDefinition' {Maybe Natural
Maybe (HashMap Text Text)
Maybe BatchStrategy
TransformOutput
TransformResources
TransformInput
transformResources :: TransformResources
transformOutput :: TransformOutput
transformInput :: TransformInput
maxPayloadInMB :: Maybe Natural
maxConcurrentTransforms :: Maybe Natural
environment :: Maybe (HashMap Text Text)
batchStrategy :: Maybe BatchStrategy
$sel:transformResources:TransformJobDefinition' :: TransformJobDefinition -> TransformResources
$sel:transformOutput:TransformJobDefinition' :: TransformJobDefinition -> TransformOutput
$sel:transformInput:TransformJobDefinition' :: TransformJobDefinition -> TransformInput
$sel:maxPayloadInMB:TransformJobDefinition' :: TransformJobDefinition -> Maybe Natural
$sel:maxConcurrentTransforms:TransformJobDefinition' :: TransformJobDefinition -> Maybe Natural
$sel:environment:TransformJobDefinition' :: TransformJobDefinition -> Maybe (HashMap Text Text)
$sel:batchStrategy:TransformJobDefinition' :: TransformJobDefinition -> Maybe BatchStrategy
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"BatchStrategy" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe BatchStrategy
batchStrategy,
            (Key
"Environment" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text Text)
environment,
            (Key
"MaxConcurrentTransforms" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
maxConcurrentTransforms,
            (Key
"MaxPayloadInMB" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
maxPayloadInMB,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"TransformInput" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= TransformInput
transformInput),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"TransformOutput" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= TransformOutput
transformOutput),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"TransformResources" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= TransformResources
transformResources)
          ]
      )