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

import qualified Amazonka.Core as Core
import Amazonka.Glue.Types.ConnectionsList
import Amazonka.Glue.Types.ExecutionProperty
import Amazonka.Glue.Types.JobCommand
import Amazonka.Glue.Types.NotificationProperty
import Amazonka.Glue.Types.WorkerType
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Specifies information used to update an existing job definition. The
-- previous job definition is completely overwritten by this information.
--
-- /See:/ 'newJobUpdate' smart constructor.
data JobUpdate = JobUpdate'
  { -- | The number of workers of a defined @workerType@ that are allocated when
    -- a job runs.
    --
    -- The maximum number of workers you can define are 299 for @G.1X@, and 149
    -- for @G.2X@.
    JobUpdate -> Maybe Int
numberOfWorkers :: Prelude.Maybe Prelude.Int,
    -- | The @JobCommand@ that runs this job (required).
    JobUpdate -> Maybe JobCommand
command :: Prelude.Maybe JobCommand,
    -- | Specifies the configuration properties of a job notification.
    JobUpdate -> Maybe NotificationProperty
notificationProperty :: Prelude.Maybe NotificationProperty,
    -- | The connections used for this job.
    JobUpdate -> Maybe ConnectionsList
connections :: Prelude.Maybe ConnectionsList,
    -- | The type of predefined worker that is allocated when a job 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 maps to 1 DPU (4 vCPU, 16 GB
    --     of memory, 64 GB disk), and provides 1 executor per worker. We
    --     recommend this worker type for memory-intensive jobs.
    --
    -- -   For the @G.2X@ worker type, each worker maps to 2 DPU (8 vCPU, 32 GB
    --     of memory, 128 GB disk), and provides 1 executor per worker. We
    --     recommend this worker type for memory-intensive jobs.
    JobUpdate -> Maybe WorkerType
workerType :: Prelude.Maybe WorkerType,
    -- | The name of the @SecurityConfiguration@ structure to be used with this
    -- job.
    JobUpdate -> Maybe Text
securityConfiguration :: Prelude.Maybe Prelude.Text,
    -- | Glue version determines the versions of Apache Spark and Python that
    -- Glue supports. The Python version indicates the version supported for
    -- jobs of type Spark.
    --
    -- For more information about the available Glue versions and corresponding
    -- Spark and Python versions, see
    -- <https://docs.aws.amazon.com/glue/latest/dg/add-job.html Glue version>
    -- in the developer guide.
    JobUpdate -> Maybe Text
glueVersion :: Prelude.Maybe Prelude.Text,
    -- | Non-overridable arguments for this job, specified as name-value pairs.
    JobUpdate -> Maybe (HashMap Text Text)
nonOverridableArguments :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The name or Amazon Resource Name (ARN) of the IAM role associated with
    -- this job (required).
    JobUpdate -> Maybe Text
role' :: Prelude.Maybe Prelude.Text,
    -- | This field is reserved for future use.
    JobUpdate -> Maybe Text
logUri :: Prelude.Maybe Prelude.Text,
    -- | The maximum number of times to retry this job if it fails.
    JobUpdate -> Maybe Int
maxRetries :: Prelude.Maybe Prelude.Int,
    -- | An @ExecutionProperty@ specifying the maximum number of concurrent runs
    -- allowed for this job.
    JobUpdate -> Maybe ExecutionProperty
executionProperty :: Prelude.Maybe ExecutionProperty,
    -- | This field is deprecated. Use @MaxCapacity@ instead.
    --
    -- The number of Glue data processing units (DPUs) to allocate to this job.
    -- 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
    -- <https://aws.amazon.com/glue/pricing/ Glue pricing page>.
    JobUpdate -> Maybe Int
allocatedCapacity :: Prelude.Maybe Prelude.Int,
    -- | For Glue version 1.0 or earlier jobs, using the standard worker type,
    -- the number of Glue data processing units (DPUs) that can be allocated
    -- when this job runs. 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
    -- <https://aws.amazon.com/glue/pricing/ Glue pricing page>.
    --
    -- Do not set @Max Capacity@ if using @WorkerType@ and @NumberOfWorkers@.
    --
    -- The value that can be allocated for @MaxCapacity@ depends on whether you
    -- are running a Python shell job or an Apache Spark ETL job:
    --
    -- -   When you specify a Python shell job
    --     (@JobCommand.Name@=\"pythonshell\"), you can allocate either 0.0625
    --     or 1 DPU. The default is 0.0625 DPU.
    --
    -- -   When you specify an Apache Spark ETL job
    --     (@JobCommand.Name@=\"glueetl\") or Apache Spark streaming ETL job
    --     (@JobCommand.Name@=\"gluestreaming\"), you can allocate from 2 to
    --     100 DPUs. The default is 10 DPUs. This job type cannot have a
    --     fractional DPU allocation.
    --
    -- For Glue version 2.0 jobs, you cannot instead specify a
    -- @Maximum capacity@. Instead, you should specify a @Worker type@ and the
    -- @Number of workers@.
    JobUpdate -> Maybe Double
maxCapacity :: Prelude.Maybe Prelude.Double,
    -- | The job timeout in minutes. This is the maximum time that a job run can
    -- consume resources before it is terminated and enters @TIMEOUT@ status.
    -- The default is 2,880 minutes (48 hours).
    JobUpdate -> Maybe Natural
timeout :: Prelude.Maybe Prelude.Natural,
    -- | The default arguments for this job.
    --
    -- You can specify arguments here that your own job-execution script
    -- consumes, as well as arguments that Glue itself consumes.
    --
    -- For information about how to specify and consume your own Job arguments,
    -- see the
    -- <https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html Calling Glue APIs in Python>
    -- topic in the developer guide.
    --
    -- For information about the key-value pairs that Glue consumes to set up
    -- your job, see the
    -- <https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html Special Parameters Used by Glue>
    -- topic in the developer guide.
    JobUpdate -> Maybe (HashMap Text Text)
defaultArguments :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | Description of the job being defined.
    JobUpdate -> Maybe Text
description :: Prelude.Maybe Prelude.Text
  }
  deriving (JobUpdate -> JobUpdate -> Bool
(JobUpdate -> JobUpdate -> Bool)
-> (JobUpdate -> JobUpdate -> Bool) -> Eq JobUpdate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: JobUpdate -> JobUpdate -> Bool
$c/= :: JobUpdate -> JobUpdate -> Bool
== :: JobUpdate -> JobUpdate -> Bool
$c== :: JobUpdate -> JobUpdate -> Bool
Prelude.Eq, ReadPrec [JobUpdate]
ReadPrec JobUpdate
Int -> ReadS JobUpdate
ReadS [JobUpdate]
(Int -> ReadS JobUpdate)
-> ReadS [JobUpdate]
-> ReadPrec JobUpdate
-> ReadPrec [JobUpdate]
-> Read JobUpdate
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [JobUpdate]
$creadListPrec :: ReadPrec [JobUpdate]
readPrec :: ReadPrec JobUpdate
$creadPrec :: ReadPrec JobUpdate
readList :: ReadS [JobUpdate]
$creadList :: ReadS [JobUpdate]
readsPrec :: Int -> ReadS JobUpdate
$creadsPrec :: Int -> ReadS JobUpdate
Prelude.Read, Int -> JobUpdate -> ShowS
[JobUpdate] -> ShowS
JobUpdate -> String
(Int -> JobUpdate -> ShowS)
-> (JobUpdate -> String)
-> ([JobUpdate] -> ShowS)
-> Show JobUpdate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [JobUpdate] -> ShowS
$cshowList :: [JobUpdate] -> ShowS
show :: JobUpdate -> String
$cshow :: JobUpdate -> String
showsPrec :: Int -> JobUpdate -> ShowS
$cshowsPrec :: Int -> JobUpdate -> ShowS
Prelude.Show, (forall x. JobUpdate -> Rep JobUpdate x)
-> (forall x. Rep JobUpdate x -> JobUpdate) -> Generic JobUpdate
forall x. Rep JobUpdate x -> JobUpdate
forall x. JobUpdate -> Rep JobUpdate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep JobUpdate x -> JobUpdate
$cfrom :: forall x. JobUpdate -> Rep JobUpdate x
Prelude.Generic)

-- |
-- Create a value of 'JobUpdate' 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:
--
-- 'numberOfWorkers', 'jobUpdate_numberOfWorkers' - The number of workers of a defined @workerType@ that are allocated when
-- a job runs.
--
-- The maximum number of workers you can define are 299 for @G.1X@, and 149
-- for @G.2X@.
--
-- 'command', 'jobUpdate_command' - The @JobCommand@ that runs this job (required).
--
-- 'notificationProperty', 'jobUpdate_notificationProperty' - Specifies the configuration properties of a job notification.
--
-- 'connections', 'jobUpdate_connections' - The connections used for this job.
--
-- 'workerType', 'jobUpdate_workerType' - The type of predefined worker that is allocated when a job 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 maps to 1 DPU (4 vCPU, 16 GB
--     of memory, 64 GB disk), and provides 1 executor per worker. We
--     recommend this worker type for memory-intensive jobs.
--
-- -   For the @G.2X@ worker type, each worker maps to 2 DPU (8 vCPU, 32 GB
--     of memory, 128 GB disk), and provides 1 executor per worker. We
--     recommend this worker type for memory-intensive jobs.
--
-- 'securityConfiguration', 'jobUpdate_securityConfiguration' - The name of the @SecurityConfiguration@ structure to be used with this
-- job.
--
-- 'glueVersion', 'jobUpdate_glueVersion' - Glue version determines the versions of Apache Spark and Python that
-- Glue supports. The Python version indicates the version supported for
-- jobs of type Spark.
--
-- For more information about the available Glue versions and corresponding
-- Spark and Python versions, see
-- <https://docs.aws.amazon.com/glue/latest/dg/add-job.html Glue version>
-- in the developer guide.
--
-- 'nonOverridableArguments', 'jobUpdate_nonOverridableArguments' - Non-overridable arguments for this job, specified as name-value pairs.
--
-- 'role'', 'jobUpdate_role' - The name or Amazon Resource Name (ARN) of the IAM role associated with
-- this job (required).
--
-- 'logUri', 'jobUpdate_logUri' - This field is reserved for future use.
--
-- 'maxRetries', 'jobUpdate_maxRetries' - The maximum number of times to retry this job if it fails.
--
-- 'executionProperty', 'jobUpdate_executionProperty' - An @ExecutionProperty@ specifying the maximum number of concurrent runs
-- allowed for this job.
--
-- 'allocatedCapacity', 'jobUpdate_allocatedCapacity' - This field is deprecated. Use @MaxCapacity@ instead.
--
-- The number of Glue data processing units (DPUs) to allocate to this job.
-- 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
-- <https://aws.amazon.com/glue/pricing/ Glue pricing page>.
--
-- 'maxCapacity', 'jobUpdate_maxCapacity' - For Glue version 1.0 or earlier jobs, using the standard worker type,
-- the number of Glue data processing units (DPUs) that can be allocated
-- when this job runs. 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
-- <https://aws.amazon.com/glue/pricing/ Glue pricing page>.
--
-- Do not set @Max Capacity@ if using @WorkerType@ and @NumberOfWorkers@.
--
-- The value that can be allocated for @MaxCapacity@ depends on whether you
-- are running a Python shell job or an Apache Spark ETL job:
--
-- -   When you specify a Python shell job
--     (@JobCommand.Name@=\"pythonshell\"), you can allocate either 0.0625
--     or 1 DPU. The default is 0.0625 DPU.
--
-- -   When you specify an Apache Spark ETL job
--     (@JobCommand.Name@=\"glueetl\") or Apache Spark streaming ETL job
--     (@JobCommand.Name@=\"gluestreaming\"), you can allocate from 2 to
--     100 DPUs. The default is 10 DPUs. This job type cannot have a
--     fractional DPU allocation.
--
-- For Glue version 2.0 jobs, you cannot instead specify a
-- @Maximum capacity@. Instead, you should specify a @Worker type@ and the
-- @Number of workers@.
--
-- 'timeout', 'jobUpdate_timeout' - The job timeout in minutes. This is the maximum time that a job run can
-- consume resources before it is terminated and enters @TIMEOUT@ status.
-- The default is 2,880 minutes (48 hours).
--
-- 'defaultArguments', 'jobUpdate_defaultArguments' - The default arguments for this job.
--
-- You can specify arguments here that your own job-execution script
-- consumes, as well as arguments that Glue itself consumes.
--
-- For information about how to specify and consume your own Job arguments,
-- see the
-- <https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html Calling Glue APIs in Python>
-- topic in the developer guide.
--
-- For information about the key-value pairs that Glue consumes to set up
-- your job, see the
-- <https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html Special Parameters Used by Glue>
-- topic in the developer guide.
--
-- 'description', 'jobUpdate_description' - Description of the job being defined.
newJobUpdate ::
  JobUpdate
newJobUpdate :: JobUpdate
newJobUpdate =
  JobUpdate' :: Maybe Int
-> Maybe JobCommand
-> Maybe NotificationProperty
-> Maybe ConnectionsList
-> Maybe WorkerType
-> Maybe Text
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe ExecutionProperty
-> Maybe Int
-> Maybe Double
-> Maybe Natural
-> Maybe (HashMap Text Text)
-> Maybe Text
-> JobUpdate
JobUpdate'
    { $sel:numberOfWorkers:JobUpdate' :: Maybe Int
numberOfWorkers = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:command:JobUpdate' :: Maybe JobCommand
command = Maybe JobCommand
forall a. Maybe a
Prelude.Nothing,
      $sel:notificationProperty:JobUpdate' :: Maybe NotificationProperty
notificationProperty = Maybe NotificationProperty
forall a. Maybe a
Prelude.Nothing,
      $sel:connections:JobUpdate' :: Maybe ConnectionsList
connections = Maybe ConnectionsList
forall a. Maybe a
Prelude.Nothing,
      $sel:workerType:JobUpdate' :: Maybe WorkerType
workerType = Maybe WorkerType
forall a. Maybe a
Prelude.Nothing,
      $sel:securityConfiguration:JobUpdate' :: Maybe Text
securityConfiguration = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:glueVersion:JobUpdate' :: Maybe Text
glueVersion = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:nonOverridableArguments:JobUpdate' :: Maybe (HashMap Text Text)
nonOverridableArguments = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
      $sel:role':JobUpdate' :: Maybe Text
role' = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:logUri:JobUpdate' :: Maybe Text
logUri = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:maxRetries:JobUpdate' :: Maybe Int
maxRetries = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:executionProperty:JobUpdate' :: Maybe ExecutionProperty
executionProperty = Maybe ExecutionProperty
forall a. Maybe a
Prelude.Nothing,
      $sel:allocatedCapacity:JobUpdate' :: Maybe Int
allocatedCapacity = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:maxCapacity:JobUpdate' :: Maybe Double
maxCapacity = Maybe Double
forall a. Maybe a
Prelude.Nothing,
      $sel:timeout:JobUpdate' :: Maybe Natural
timeout = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:defaultArguments:JobUpdate' :: Maybe (HashMap Text Text)
defaultArguments = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
      $sel:description:JobUpdate' :: Maybe Text
description = Maybe Text
forall a. Maybe a
Prelude.Nothing
    }

-- | The number of workers of a defined @workerType@ that are allocated when
-- a job runs.
--
-- The maximum number of workers you can define are 299 for @G.1X@, and 149
-- for @G.2X@.
jobUpdate_numberOfWorkers :: Lens.Lens' JobUpdate (Prelude.Maybe Prelude.Int)
jobUpdate_numberOfWorkers :: (Maybe Int -> f (Maybe Int)) -> JobUpdate -> f JobUpdate
jobUpdate_numberOfWorkers = (JobUpdate -> Maybe Int)
-> (JobUpdate -> Maybe Int -> JobUpdate)
-> Lens JobUpdate JobUpdate (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe Int
numberOfWorkers :: Maybe Int
$sel:numberOfWorkers:JobUpdate' :: JobUpdate -> Maybe Int
numberOfWorkers} -> Maybe Int
numberOfWorkers) (\s :: JobUpdate
s@JobUpdate' {} Maybe Int
a -> JobUpdate
s {$sel:numberOfWorkers:JobUpdate' :: Maybe Int
numberOfWorkers = Maybe Int
a} :: JobUpdate)

-- | The @JobCommand@ that runs this job (required).
jobUpdate_command :: Lens.Lens' JobUpdate (Prelude.Maybe JobCommand)
jobUpdate_command :: (Maybe JobCommand -> f (Maybe JobCommand))
-> JobUpdate -> f JobUpdate
jobUpdate_command = (JobUpdate -> Maybe JobCommand)
-> (JobUpdate -> Maybe JobCommand -> JobUpdate)
-> Lens JobUpdate JobUpdate (Maybe JobCommand) (Maybe JobCommand)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe JobCommand
command :: Maybe JobCommand
$sel:command:JobUpdate' :: JobUpdate -> Maybe JobCommand
command} -> Maybe JobCommand
command) (\s :: JobUpdate
s@JobUpdate' {} Maybe JobCommand
a -> JobUpdate
s {$sel:command:JobUpdate' :: Maybe JobCommand
command = Maybe JobCommand
a} :: JobUpdate)

-- | Specifies the configuration properties of a job notification.
jobUpdate_notificationProperty :: Lens.Lens' JobUpdate (Prelude.Maybe NotificationProperty)
jobUpdate_notificationProperty :: (Maybe NotificationProperty -> f (Maybe NotificationProperty))
-> JobUpdate -> f JobUpdate
jobUpdate_notificationProperty = (JobUpdate -> Maybe NotificationProperty)
-> (JobUpdate -> Maybe NotificationProperty -> JobUpdate)
-> Lens
     JobUpdate
     JobUpdate
     (Maybe NotificationProperty)
     (Maybe NotificationProperty)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe NotificationProperty
notificationProperty :: Maybe NotificationProperty
$sel:notificationProperty:JobUpdate' :: JobUpdate -> Maybe NotificationProperty
notificationProperty} -> Maybe NotificationProperty
notificationProperty) (\s :: JobUpdate
s@JobUpdate' {} Maybe NotificationProperty
a -> JobUpdate
s {$sel:notificationProperty:JobUpdate' :: Maybe NotificationProperty
notificationProperty = Maybe NotificationProperty
a} :: JobUpdate)

-- | The connections used for this job.
jobUpdate_connections :: Lens.Lens' JobUpdate (Prelude.Maybe ConnectionsList)
jobUpdate_connections :: (Maybe ConnectionsList -> f (Maybe ConnectionsList))
-> JobUpdate -> f JobUpdate
jobUpdate_connections = (JobUpdate -> Maybe ConnectionsList)
-> (JobUpdate -> Maybe ConnectionsList -> JobUpdate)
-> Lens
     JobUpdate JobUpdate (Maybe ConnectionsList) (Maybe ConnectionsList)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe ConnectionsList
connections :: Maybe ConnectionsList
$sel:connections:JobUpdate' :: JobUpdate -> Maybe ConnectionsList
connections} -> Maybe ConnectionsList
connections) (\s :: JobUpdate
s@JobUpdate' {} Maybe ConnectionsList
a -> JobUpdate
s {$sel:connections:JobUpdate' :: Maybe ConnectionsList
connections = Maybe ConnectionsList
a} :: JobUpdate)

-- | The type of predefined worker that is allocated when a job 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 maps to 1 DPU (4 vCPU, 16 GB
--     of memory, 64 GB disk), and provides 1 executor per worker. We
--     recommend this worker type for memory-intensive jobs.
--
-- -   For the @G.2X@ worker type, each worker maps to 2 DPU (8 vCPU, 32 GB
--     of memory, 128 GB disk), and provides 1 executor per worker. We
--     recommend this worker type for memory-intensive jobs.
jobUpdate_workerType :: Lens.Lens' JobUpdate (Prelude.Maybe WorkerType)
jobUpdate_workerType :: (Maybe WorkerType -> f (Maybe WorkerType))
-> JobUpdate -> f JobUpdate
jobUpdate_workerType = (JobUpdate -> Maybe WorkerType)
-> (JobUpdate -> Maybe WorkerType -> JobUpdate)
-> Lens JobUpdate JobUpdate (Maybe WorkerType) (Maybe WorkerType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe WorkerType
workerType :: Maybe WorkerType
$sel:workerType:JobUpdate' :: JobUpdate -> Maybe WorkerType
workerType} -> Maybe WorkerType
workerType) (\s :: JobUpdate
s@JobUpdate' {} Maybe WorkerType
a -> JobUpdate
s {$sel:workerType:JobUpdate' :: Maybe WorkerType
workerType = Maybe WorkerType
a} :: JobUpdate)

-- | The name of the @SecurityConfiguration@ structure to be used with this
-- job.
jobUpdate_securityConfiguration :: Lens.Lens' JobUpdate (Prelude.Maybe Prelude.Text)
jobUpdate_securityConfiguration :: (Maybe Text -> f (Maybe Text)) -> JobUpdate -> f JobUpdate
jobUpdate_securityConfiguration = (JobUpdate -> Maybe Text)
-> (JobUpdate -> Maybe Text -> JobUpdate)
-> Lens JobUpdate JobUpdate (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe Text
securityConfiguration :: Maybe Text
$sel:securityConfiguration:JobUpdate' :: JobUpdate -> Maybe Text
securityConfiguration} -> Maybe Text
securityConfiguration) (\s :: JobUpdate
s@JobUpdate' {} Maybe Text
a -> JobUpdate
s {$sel:securityConfiguration:JobUpdate' :: Maybe Text
securityConfiguration = Maybe Text
a} :: JobUpdate)

-- | Glue version determines the versions of Apache Spark and Python that
-- Glue supports. The Python version indicates the version supported for
-- jobs of type Spark.
--
-- For more information about the available Glue versions and corresponding
-- Spark and Python versions, see
-- <https://docs.aws.amazon.com/glue/latest/dg/add-job.html Glue version>
-- in the developer guide.
jobUpdate_glueVersion :: Lens.Lens' JobUpdate (Prelude.Maybe Prelude.Text)
jobUpdate_glueVersion :: (Maybe Text -> f (Maybe Text)) -> JobUpdate -> f JobUpdate
jobUpdate_glueVersion = (JobUpdate -> Maybe Text)
-> (JobUpdate -> Maybe Text -> JobUpdate)
-> Lens JobUpdate JobUpdate (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe Text
glueVersion :: Maybe Text
$sel:glueVersion:JobUpdate' :: JobUpdate -> Maybe Text
glueVersion} -> Maybe Text
glueVersion) (\s :: JobUpdate
s@JobUpdate' {} Maybe Text
a -> JobUpdate
s {$sel:glueVersion:JobUpdate' :: Maybe Text
glueVersion = Maybe Text
a} :: JobUpdate)

-- | Non-overridable arguments for this job, specified as name-value pairs.
jobUpdate_nonOverridableArguments :: Lens.Lens' JobUpdate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
jobUpdate_nonOverridableArguments :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> JobUpdate -> f JobUpdate
jobUpdate_nonOverridableArguments = (JobUpdate -> Maybe (HashMap Text Text))
-> (JobUpdate -> Maybe (HashMap Text Text) -> JobUpdate)
-> Lens
     JobUpdate
     JobUpdate
     (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 (\JobUpdate' {Maybe (HashMap Text Text)
nonOverridableArguments :: Maybe (HashMap Text Text)
$sel:nonOverridableArguments:JobUpdate' :: JobUpdate -> Maybe (HashMap Text Text)
nonOverridableArguments} -> Maybe (HashMap Text Text)
nonOverridableArguments) (\s :: JobUpdate
s@JobUpdate' {} Maybe (HashMap Text Text)
a -> JobUpdate
s {$sel:nonOverridableArguments:JobUpdate' :: Maybe (HashMap Text Text)
nonOverridableArguments = Maybe (HashMap Text Text)
a} :: JobUpdate) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> JobUpdate -> f JobUpdate)
-> ((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)))
-> JobUpdate
-> f JobUpdate
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

-- | The name or Amazon Resource Name (ARN) of the IAM role associated with
-- this job (required).
jobUpdate_role :: Lens.Lens' JobUpdate (Prelude.Maybe Prelude.Text)
jobUpdate_role :: (Maybe Text -> f (Maybe Text)) -> JobUpdate -> f JobUpdate
jobUpdate_role = (JobUpdate -> Maybe Text)
-> (JobUpdate -> Maybe Text -> JobUpdate)
-> Lens JobUpdate JobUpdate (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe Text
role' :: Maybe Text
$sel:role':JobUpdate' :: JobUpdate -> Maybe Text
role'} -> Maybe Text
role') (\s :: JobUpdate
s@JobUpdate' {} Maybe Text
a -> JobUpdate
s {$sel:role':JobUpdate' :: Maybe Text
role' = Maybe Text
a} :: JobUpdate)

-- | This field is reserved for future use.
jobUpdate_logUri :: Lens.Lens' JobUpdate (Prelude.Maybe Prelude.Text)
jobUpdate_logUri :: (Maybe Text -> f (Maybe Text)) -> JobUpdate -> f JobUpdate
jobUpdate_logUri = (JobUpdate -> Maybe Text)
-> (JobUpdate -> Maybe Text -> JobUpdate)
-> Lens JobUpdate JobUpdate (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe Text
logUri :: Maybe Text
$sel:logUri:JobUpdate' :: JobUpdate -> Maybe Text
logUri} -> Maybe Text
logUri) (\s :: JobUpdate
s@JobUpdate' {} Maybe Text
a -> JobUpdate
s {$sel:logUri:JobUpdate' :: Maybe Text
logUri = Maybe Text
a} :: JobUpdate)

-- | The maximum number of times to retry this job if it fails.
jobUpdate_maxRetries :: Lens.Lens' JobUpdate (Prelude.Maybe Prelude.Int)
jobUpdate_maxRetries :: (Maybe Int -> f (Maybe Int)) -> JobUpdate -> f JobUpdate
jobUpdate_maxRetries = (JobUpdate -> Maybe Int)
-> (JobUpdate -> Maybe Int -> JobUpdate)
-> Lens JobUpdate JobUpdate (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe Int
maxRetries :: Maybe Int
$sel:maxRetries:JobUpdate' :: JobUpdate -> Maybe Int
maxRetries} -> Maybe Int
maxRetries) (\s :: JobUpdate
s@JobUpdate' {} Maybe Int
a -> JobUpdate
s {$sel:maxRetries:JobUpdate' :: Maybe Int
maxRetries = Maybe Int
a} :: JobUpdate)

-- | An @ExecutionProperty@ specifying the maximum number of concurrent runs
-- allowed for this job.
jobUpdate_executionProperty :: Lens.Lens' JobUpdate (Prelude.Maybe ExecutionProperty)
jobUpdate_executionProperty :: (Maybe ExecutionProperty -> f (Maybe ExecutionProperty))
-> JobUpdate -> f JobUpdate
jobUpdate_executionProperty = (JobUpdate -> Maybe ExecutionProperty)
-> (JobUpdate -> Maybe ExecutionProperty -> JobUpdate)
-> Lens
     JobUpdate
     JobUpdate
     (Maybe ExecutionProperty)
     (Maybe ExecutionProperty)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe ExecutionProperty
executionProperty :: Maybe ExecutionProperty
$sel:executionProperty:JobUpdate' :: JobUpdate -> Maybe ExecutionProperty
executionProperty} -> Maybe ExecutionProperty
executionProperty) (\s :: JobUpdate
s@JobUpdate' {} Maybe ExecutionProperty
a -> JobUpdate
s {$sel:executionProperty:JobUpdate' :: Maybe ExecutionProperty
executionProperty = Maybe ExecutionProperty
a} :: JobUpdate)

-- | This field is deprecated. Use @MaxCapacity@ instead.
--
-- The number of Glue data processing units (DPUs) to allocate to this job.
-- 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
-- <https://aws.amazon.com/glue/pricing/ Glue pricing page>.
jobUpdate_allocatedCapacity :: Lens.Lens' JobUpdate (Prelude.Maybe Prelude.Int)
jobUpdate_allocatedCapacity :: (Maybe Int -> f (Maybe Int)) -> JobUpdate -> f JobUpdate
jobUpdate_allocatedCapacity = (JobUpdate -> Maybe Int)
-> (JobUpdate -> Maybe Int -> JobUpdate)
-> Lens JobUpdate JobUpdate (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe Int
allocatedCapacity :: Maybe Int
$sel:allocatedCapacity:JobUpdate' :: JobUpdate -> Maybe Int
allocatedCapacity} -> Maybe Int
allocatedCapacity) (\s :: JobUpdate
s@JobUpdate' {} Maybe Int
a -> JobUpdate
s {$sel:allocatedCapacity:JobUpdate' :: Maybe Int
allocatedCapacity = Maybe Int
a} :: JobUpdate)

-- | For Glue version 1.0 or earlier jobs, using the standard worker type,
-- the number of Glue data processing units (DPUs) that can be allocated
-- when this job runs. 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
-- <https://aws.amazon.com/glue/pricing/ Glue pricing page>.
--
-- Do not set @Max Capacity@ if using @WorkerType@ and @NumberOfWorkers@.
--
-- The value that can be allocated for @MaxCapacity@ depends on whether you
-- are running a Python shell job or an Apache Spark ETL job:
--
-- -   When you specify a Python shell job
--     (@JobCommand.Name@=\"pythonshell\"), you can allocate either 0.0625
--     or 1 DPU. The default is 0.0625 DPU.
--
-- -   When you specify an Apache Spark ETL job
--     (@JobCommand.Name@=\"glueetl\") or Apache Spark streaming ETL job
--     (@JobCommand.Name@=\"gluestreaming\"), you can allocate from 2 to
--     100 DPUs. The default is 10 DPUs. This job type cannot have a
--     fractional DPU allocation.
--
-- For Glue version 2.0 jobs, you cannot instead specify a
-- @Maximum capacity@. Instead, you should specify a @Worker type@ and the
-- @Number of workers@.
jobUpdate_maxCapacity :: Lens.Lens' JobUpdate (Prelude.Maybe Prelude.Double)
jobUpdate_maxCapacity :: (Maybe Double -> f (Maybe Double)) -> JobUpdate -> f JobUpdate
jobUpdate_maxCapacity = (JobUpdate -> Maybe Double)
-> (JobUpdate -> Maybe Double -> JobUpdate)
-> Lens JobUpdate JobUpdate (Maybe Double) (Maybe Double)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe Double
maxCapacity :: Maybe Double
$sel:maxCapacity:JobUpdate' :: JobUpdate -> Maybe Double
maxCapacity} -> Maybe Double
maxCapacity) (\s :: JobUpdate
s@JobUpdate' {} Maybe Double
a -> JobUpdate
s {$sel:maxCapacity:JobUpdate' :: Maybe Double
maxCapacity = Maybe Double
a} :: JobUpdate)

-- | The job timeout in minutes. This is the maximum time that a job run can
-- consume resources before it is terminated and enters @TIMEOUT@ status.
-- The default is 2,880 minutes (48 hours).
jobUpdate_timeout :: Lens.Lens' JobUpdate (Prelude.Maybe Prelude.Natural)
jobUpdate_timeout :: (Maybe Natural -> f (Maybe Natural)) -> JobUpdate -> f JobUpdate
jobUpdate_timeout = (JobUpdate -> Maybe Natural)
-> (JobUpdate -> Maybe Natural -> JobUpdate)
-> Lens JobUpdate JobUpdate (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe Natural
timeout :: Maybe Natural
$sel:timeout:JobUpdate' :: JobUpdate -> Maybe Natural
timeout} -> Maybe Natural
timeout) (\s :: JobUpdate
s@JobUpdate' {} Maybe Natural
a -> JobUpdate
s {$sel:timeout:JobUpdate' :: Maybe Natural
timeout = Maybe Natural
a} :: JobUpdate)

-- | The default arguments for this job.
--
-- You can specify arguments here that your own job-execution script
-- consumes, as well as arguments that Glue itself consumes.
--
-- For information about how to specify and consume your own Job arguments,
-- see the
-- <https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html Calling Glue APIs in Python>
-- topic in the developer guide.
--
-- For information about the key-value pairs that Glue consumes to set up
-- your job, see the
-- <https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html Special Parameters Used by Glue>
-- topic in the developer guide.
jobUpdate_defaultArguments :: Lens.Lens' JobUpdate (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
jobUpdate_defaultArguments :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> JobUpdate -> f JobUpdate
jobUpdate_defaultArguments = (JobUpdate -> Maybe (HashMap Text Text))
-> (JobUpdate -> Maybe (HashMap Text Text) -> JobUpdate)
-> Lens
     JobUpdate
     JobUpdate
     (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 (\JobUpdate' {Maybe (HashMap Text Text)
defaultArguments :: Maybe (HashMap Text Text)
$sel:defaultArguments:JobUpdate' :: JobUpdate -> Maybe (HashMap Text Text)
defaultArguments} -> Maybe (HashMap Text Text)
defaultArguments) (\s :: JobUpdate
s@JobUpdate' {} Maybe (HashMap Text Text)
a -> JobUpdate
s {$sel:defaultArguments:JobUpdate' :: Maybe (HashMap Text Text)
defaultArguments = Maybe (HashMap Text Text)
a} :: JobUpdate) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> JobUpdate -> f JobUpdate)
-> ((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)))
-> JobUpdate
-> f JobUpdate
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

-- | Description of the job being defined.
jobUpdate_description :: Lens.Lens' JobUpdate (Prelude.Maybe Prelude.Text)
jobUpdate_description :: (Maybe Text -> f (Maybe Text)) -> JobUpdate -> f JobUpdate
jobUpdate_description = (JobUpdate -> Maybe Text)
-> (JobUpdate -> Maybe Text -> JobUpdate)
-> Lens JobUpdate JobUpdate (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobUpdate' {Maybe Text
description :: Maybe Text
$sel:description:JobUpdate' :: JobUpdate -> Maybe Text
description} -> Maybe Text
description) (\s :: JobUpdate
s@JobUpdate' {} Maybe Text
a -> JobUpdate
s {$sel:description:JobUpdate' :: Maybe Text
description = Maybe Text
a} :: JobUpdate)

instance Prelude.Hashable JobUpdate

instance Prelude.NFData JobUpdate

instance Core.ToJSON JobUpdate where
  toJSON :: JobUpdate -> Value
toJSON JobUpdate' {Maybe Double
Maybe Int
Maybe Natural
Maybe Text
Maybe (HashMap Text Text)
Maybe ConnectionsList
Maybe ExecutionProperty
Maybe JobCommand
Maybe NotificationProperty
Maybe WorkerType
description :: Maybe Text
defaultArguments :: Maybe (HashMap Text Text)
timeout :: Maybe Natural
maxCapacity :: Maybe Double
allocatedCapacity :: Maybe Int
executionProperty :: Maybe ExecutionProperty
maxRetries :: Maybe Int
logUri :: Maybe Text
role' :: Maybe Text
nonOverridableArguments :: Maybe (HashMap Text Text)
glueVersion :: Maybe Text
securityConfiguration :: Maybe Text
workerType :: Maybe WorkerType
connections :: Maybe ConnectionsList
notificationProperty :: Maybe NotificationProperty
command :: Maybe JobCommand
numberOfWorkers :: Maybe Int
$sel:description:JobUpdate' :: JobUpdate -> Maybe Text
$sel:defaultArguments:JobUpdate' :: JobUpdate -> Maybe (HashMap Text Text)
$sel:timeout:JobUpdate' :: JobUpdate -> Maybe Natural
$sel:maxCapacity:JobUpdate' :: JobUpdate -> Maybe Double
$sel:allocatedCapacity:JobUpdate' :: JobUpdate -> Maybe Int
$sel:executionProperty:JobUpdate' :: JobUpdate -> Maybe ExecutionProperty
$sel:maxRetries:JobUpdate' :: JobUpdate -> Maybe Int
$sel:logUri:JobUpdate' :: JobUpdate -> Maybe Text
$sel:role':JobUpdate' :: JobUpdate -> Maybe Text
$sel:nonOverridableArguments:JobUpdate' :: JobUpdate -> Maybe (HashMap Text Text)
$sel:glueVersion:JobUpdate' :: JobUpdate -> Maybe Text
$sel:securityConfiguration:JobUpdate' :: JobUpdate -> Maybe Text
$sel:workerType:JobUpdate' :: JobUpdate -> Maybe WorkerType
$sel:connections:JobUpdate' :: JobUpdate -> Maybe ConnectionsList
$sel:notificationProperty:JobUpdate' :: JobUpdate -> Maybe NotificationProperty
$sel:command:JobUpdate' :: JobUpdate -> Maybe JobCommand
$sel:numberOfWorkers:JobUpdate' :: JobUpdate -> Maybe Int
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"NumberOfWorkers" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
numberOfWorkers,
            (Text
"Command" Text -> JobCommand -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (JobCommand -> Pair) -> Maybe JobCommand -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe JobCommand
command,
            (Text
"NotificationProperty" Text -> NotificationProperty -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (NotificationProperty -> Pair)
-> Maybe NotificationProperty -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe NotificationProperty
notificationProperty,
            (Text
"Connections" Text -> ConnectionsList -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (ConnectionsList -> Pair) -> Maybe ConnectionsList -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ConnectionsList
connections,
            (Text
"WorkerType" Text -> WorkerType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (WorkerType -> Pair) -> Maybe WorkerType -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe WorkerType
workerType,
            (Text
"SecurityConfiguration" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
securityConfiguration,
            (Text
"GlueVersion" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
glueVersion,
            (Text
"NonOverridableArguments" Text -> HashMap Text Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HashMap Text Text -> Pair)
-> Maybe (HashMap Text Text) -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text Text)
nonOverridableArguments,
            (Text
"Role" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
role',
            (Text
"LogUri" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
logUri,
            (Text
"MaxRetries" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
maxRetries,
            (Text
"ExecutionProperty" Text -> ExecutionProperty -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (ExecutionProperty -> Pair)
-> Maybe ExecutionProperty -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ExecutionProperty
executionProperty,
            (Text
"AllocatedCapacity" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
allocatedCapacity,
            (Text
"MaxCapacity" Text -> Double -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Double -> Pair) -> Maybe Double -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Double
maxCapacity,
            (Text
"Timeout" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
timeout,
            (Text
"DefaultArguments" Text -> HashMap Text Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HashMap Text Text -> Pair)
-> Maybe (HashMap Text Text) -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe (HashMap Text Text)
defaultArguments,
            (Text
"Description" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
description
          ]
      )