{-# 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.Pipes.Types.PipeTargetBatchJobParameters
-- 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.Pipes.Types.PipeTargetBatchJobParameters where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Pipes.Types.BatchArrayProperties
import Amazonka.Pipes.Types.BatchContainerOverrides
import Amazonka.Pipes.Types.BatchJobDependency
import Amazonka.Pipes.Types.BatchRetryStrategy
import qualified Amazonka.Prelude as Prelude

-- | The parameters for using an Batch job as a target.
--
-- /See:/ 'newPipeTargetBatchJobParameters' smart constructor.
data PipeTargetBatchJobParameters = PipeTargetBatchJobParameters'
  { -- | The array properties for the submitted job, such as the size of the
    -- array. The array size can be between 2 and 10,000. If you specify array
    -- properties for a job, it becomes an array job. This parameter is used
    -- only if the target is an Batch job.
    PipeTargetBatchJobParameters -> Maybe BatchArrayProperties
arrayProperties :: Prelude.Maybe BatchArrayProperties,
    -- | The overrides that are sent to a container.
    PipeTargetBatchJobParameters -> Maybe BatchContainerOverrides
containerOverrides :: Prelude.Maybe BatchContainerOverrides,
    -- | A list of dependencies for the job. A job can depend upon a maximum of
    -- 20 jobs. You can specify a @SEQUENTIAL@ type dependency without
    -- specifying a job ID for array jobs so that each child array job
    -- completes sequentially, starting at index 0. You can also specify an
    -- @N_TO_N@ type dependency with a job ID for array jobs. In that case,
    -- each index child of this job must wait for the corresponding index child
    -- of each dependency to complete before it can begin.
    PipeTargetBatchJobParameters -> Maybe [BatchJobDependency]
dependsOn :: Prelude.Maybe [BatchJobDependency],
    -- | Additional parameters passed to the job that replace parameter
    -- substitution placeholders that are set in the job definition. Parameters
    -- are specified as a key and value pair mapping. Parameters included here
    -- override any corresponding parameter defaults from the job definition.
    PipeTargetBatchJobParameters -> Maybe (HashMap Text Text)
parameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The retry strategy to use for failed jobs. When a retry strategy is
    -- specified here, it overrides the retry strategy defined in the job
    -- definition.
    PipeTargetBatchJobParameters -> Maybe BatchRetryStrategy
retryStrategy :: Prelude.Maybe BatchRetryStrategy,
    -- | The job definition used by this job. This value can be one of @name@,
    -- @name:revision@, or the Amazon Resource Name (ARN) for the job
    -- definition. If name is specified without a revision then the latest
    -- active revision is used.
    PipeTargetBatchJobParameters -> Text
jobDefinition :: Prelude.Text,
    -- | The name of the job. It can be up to 128 letters long. The first
    -- character must be alphanumeric, can contain uppercase and lowercase
    -- letters, numbers, hyphens (-), and underscores (_).
    PipeTargetBatchJobParameters -> Text
jobName :: Prelude.Text
  }
  deriving (PipeTargetBatchJobParameters
-> PipeTargetBatchJobParameters -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PipeTargetBatchJobParameters
-> PipeTargetBatchJobParameters -> Bool
$c/= :: PipeTargetBatchJobParameters
-> PipeTargetBatchJobParameters -> Bool
== :: PipeTargetBatchJobParameters
-> PipeTargetBatchJobParameters -> Bool
$c== :: PipeTargetBatchJobParameters
-> PipeTargetBatchJobParameters -> Bool
Prelude.Eq, ReadPrec [PipeTargetBatchJobParameters]
ReadPrec PipeTargetBatchJobParameters
Int -> ReadS PipeTargetBatchJobParameters
ReadS [PipeTargetBatchJobParameters]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [PipeTargetBatchJobParameters]
$creadListPrec :: ReadPrec [PipeTargetBatchJobParameters]
readPrec :: ReadPrec PipeTargetBatchJobParameters
$creadPrec :: ReadPrec PipeTargetBatchJobParameters
readList :: ReadS [PipeTargetBatchJobParameters]
$creadList :: ReadS [PipeTargetBatchJobParameters]
readsPrec :: Int -> ReadS PipeTargetBatchJobParameters
$creadsPrec :: Int -> ReadS PipeTargetBatchJobParameters
Prelude.Read, Int -> PipeTargetBatchJobParameters -> ShowS
[PipeTargetBatchJobParameters] -> ShowS
PipeTargetBatchJobParameters -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PipeTargetBatchJobParameters] -> ShowS
$cshowList :: [PipeTargetBatchJobParameters] -> ShowS
show :: PipeTargetBatchJobParameters -> String
$cshow :: PipeTargetBatchJobParameters -> String
showsPrec :: Int -> PipeTargetBatchJobParameters -> ShowS
$cshowsPrec :: Int -> PipeTargetBatchJobParameters -> ShowS
Prelude.Show, forall x.
Rep PipeTargetBatchJobParameters x -> PipeTargetBatchJobParameters
forall x.
PipeTargetBatchJobParameters -> Rep PipeTargetBatchJobParameters x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep PipeTargetBatchJobParameters x -> PipeTargetBatchJobParameters
$cfrom :: forall x.
PipeTargetBatchJobParameters -> Rep PipeTargetBatchJobParameters x
Prelude.Generic)

-- |
-- Create a value of 'PipeTargetBatchJobParameters' 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:
--
-- 'arrayProperties', 'pipeTargetBatchJobParameters_arrayProperties' - The array properties for the submitted job, such as the size of the
-- array. The array size can be between 2 and 10,000. If you specify array
-- properties for a job, it becomes an array job. This parameter is used
-- only if the target is an Batch job.
--
-- 'containerOverrides', 'pipeTargetBatchJobParameters_containerOverrides' - The overrides that are sent to a container.
--
-- 'dependsOn', 'pipeTargetBatchJobParameters_dependsOn' - A list of dependencies for the job. A job can depend upon a maximum of
-- 20 jobs. You can specify a @SEQUENTIAL@ type dependency without
-- specifying a job ID for array jobs so that each child array job
-- completes sequentially, starting at index 0. You can also specify an
-- @N_TO_N@ type dependency with a job ID for array jobs. In that case,
-- each index child of this job must wait for the corresponding index child
-- of each dependency to complete before it can begin.
--
-- 'parameters', 'pipeTargetBatchJobParameters_parameters' - Additional parameters passed to the job that replace parameter
-- substitution placeholders that are set in the job definition. Parameters
-- are specified as a key and value pair mapping. Parameters included here
-- override any corresponding parameter defaults from the job definition.
--
-- 'retryStrategy', 'pipeTargetBatchJobParameters_retryStrategy' - The retry strategy to use for failed jobs. When a retry strategy is
-- specified here, it overrides the retry strategy defined in the job
-- definition.
--
-- 'jobDefinition', 'pipeTargetBatchJobParameters_jobDefinition' - The job definition used by this job. This value can be one of @name@,
-- @name:revision@, or the Amazon Resource Name (ARN) for the job
-- definition. If name is specified without a revision then the latest
-- active revision is used.
--
-- 'jobName', 'pipeTargetBatchJobParameters_jobName' - The name of the job. It can be up to 128 letters long. The first
-- character must be alphanumeric, can contain uppercase and lowercase
-- letters, numbers, hyphens (-), and underscores (_).
newPipeTargetBatchJobParameters ::
  -- | 'jobDefinition'
  Prelude.Text ->
  -- | 'jobName'
  Prelude.Text ->
  PipeTargetBatchJobParameters
newPipeTargetBatchJobParameters :: Text -> Text -> PipeTargetBatchJobParameters
newPipeTargetBatchJobParameters
  Text
pJobDefinition_
  Text
pJobName_ =
    PipeTargetBatchJobParameters'
      { $sel:arrayProperties:PipeTargetBatchJobParameters' :: Maybe BatchArrayProperties
arrayProperties =
          forall a. Maybe a
Prelude.Nothing,
        $sel:containerOverrides:PipeTargetBatchJobParameters' :: Maybe BatchContainerOverrides
containerOverrides = forall a. Maybe a
Prelude.Nothing,
        $sel:dependsOn:PipeTargetBatchJobParameters' :: Maybe [BatchJobDependency]
dependsOn = forall a. Maybe a
Prelude.Nothing,
        $sel:parameters:PipeTargetBatchJobParameters' :: Maybe (HashMap Text Text)
parameters = forall a. Maybe a
Prelude.Nothing,
        $sel:retryStrategy:PipeTargetBatchJobParameters' :: Maybe BatchRetryStrategy
retryStrategy = forall a. Maybe a
Prelude.Nothing,
        $sel:jobDefinition:PipeTargetBatchJobParameters' :: Text
jobDefinition = Text
pJobDefinition_,
        $sel:jobName:PipeTargetBatchJobParameters' :: Text
jobName = Text
pJobName_
      }

-- | The array properties for the submitted job, such as the size of the
-- array. The array size can be between 2 and 10,000. If you specify array
-- properties for a job, it becomes an array job. This parameter is used
-- only if the target is an Batch job.
pipeTargetBatchJobParameters_arrayProperties :: Lens.Lens' PipeTargetBatchJobParameters (Prelude.Maybe BatchArrayProperties)
pipeTargetBatchJobParameters_arrayProperties :: Lens' PipeTargetBatchJobParameters (Maybe BatchArrayProperties)
pipeTargetBatchJobParameters_arrayProperties = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipeTargetBatchJobParameters' {Maybe BatchArrayProperties
arrayProperties :: Maybe BatchArrayProperties
$sel:arrayProperties:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe BatchArrayProperties
arrayProperties} -> Maybe BatchArrayProperties
arrayProperties) (\s :: PipeTargetBatchJobParameters
s@PipeTargetBatchJobParameters' {} Maybe BatchArrayProperties
a -> PipeTargetBatchJobParameters
s {$sel:arrayProperties:PipeTargetBatchJobParameters' :: Maybe BatchArrayProperties
arrayProperties = Maybe BatchArrayProperties
a} :: PipeTargetBatchJobParameters)

-- | The overrides that are sent to a container.
pipeTargetBatchJobParameters_containerOverrides :: Lens.Lens' PipeTargetBatchJobParameters (Prelude.Maybe BatchContainerOverrides)
pipeTargetBatchJobParameters_containerOverrides :: Lens' PipeTargetBatchJobParameters (Maybe BatchContainerOverrides)
pipeTargetBatchJobParameters_containerOverrides = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipeTargetBatchJobParameters' {Maybe BatchContainerOverrides
containerOverrides :: Maybe BatchContainerOverrides
$sel:containerOverrides:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe BatchContainerOverrides
containerOverrides} -> Maybe BatchContainerOverrides
containerOverrides) (\s :: PipeTargetBatchJobParameters
s@PipeTargetBatchJobParameters' {} Maybe BatchContainerOverrides
a -> PipeTargetBatchJobParameters
s {$sel:containerOverrides:PipeTargetBatchJobParameters' :: Maybe BatchContainerOverrides
containerOverrides = Maybe BatchContainerOverrides
a} :: PipeTargetBatchJobParameters)

-- | A list of dependencies for the job. A job can depend upon a maximum of
-- 20 jobs. You can specify a @SEQUENTIAL@ type dependency without
-- specifying a job ID for array jobs so that each child array job
-- completes sequentially, starting at index 0. You can also specify an
-- @N_TO_N@ type dependency with a job ID for array jobs. In that case,
-- each index child of this job must wait for the corresponding index child
-- of each dependency to complete before it can begin.
pipeTargetBatchJobParameters_dependsOn :: Lens.Lens' PipeTargetBatchJobParameters (Prelude.Maybe [BatchJobDependency])
pipeTargetBatchJobParameters_dependsOn :: Lens' PipeTargetBatchJobParameters (Maybe [BatchJobDependency])
pipeTargetBatchJobParameters_dependsOn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipeTargetBatchJobParameters' {Maybe [BatchJobDependency]
dependsOn :: Maybe [BatchJobDependency]
$sel:dependsOn:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe [BatchJobDependency]
dependsOn} -> Maybe [BatchJobDependency]
dependsOn) (\s :: PipeTargetBatchJobParameters
s@PipeTargetBatchJobParameters' {} Maybe [BatchJobDependency]
a -> PipeTargetBatchJobParameters
s {$sel:dependsOn:PipeTargetBatchJobParameters' :: Maybe [BatchJobDependency]
dependsOn = Maybe [BatchJobDependency]
a} :: PipeTargetBatchJobParameters) 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

-- | Additional parameters passed to the job that replace parameter
-- substitution placeholders that are set in the job definition. Parameters
-- are specified as a key and value pair mapping. Parameters included here
-- override any corresponding parameter defaults from the job definition.
pipeTargetBatchJobParameters_parameters :: Lens.Lens' PipeTargetBatchJobParameters (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
pipeTargetBatchJobParameters_parameters :: Lens' PipeTargetBatchJobParameters (Maybe (HashMap Text Text))
pipeTargetBatchJobParameters_parameters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipeTargetBatchJobParameters' {Maybe (HashMap Text Text)
parameters :: Maybe (HashMap Text Text)
$sel:parameters:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe (HashMap Text Text)
parameters} -> Maybe (HashMap Text Text)
parameters) (\s :: PipeTargetBatchJobParameters
s@PipeTargetBatchJobParameters' {} Maybe (HashMap Text Text)
a -> PipeTargetBatchJobParameters
s {$sel:parameters:PipeTargetBatchJobParameters' :: Maybe (HashMap Text Text)
parameters = Maybe (HashMap Text Text)
a} :: PipeTargetBatchJobParameters) 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 retry strategy to use for failed jobs. When a retry strategy is
-- specified here, it overrides the retry strategy defined in the job
-- definition.
pipeTargetBatchJobParameters_retryStrategy :: Lens.Lens' PipeTargetBatchJobParameters (Prelude.Maybe BatchRetryStrategy)
pipeTargetBatchJobParameters_retryStrategy :: Lens' PipeTargetBatchJobParameters (Maybe BatchRetryStrategy)
pipeTargetBatchJobParameters_retryStrategy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipeTargetBatchJobParameters' {Maybe BatchRetryStrategy
retryStrategy :: Maybe BatchRetryStrategy
$sel:retryStrategy:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe BatchRetryStrategy
retryStrategy} -> Maybe BatchRetryStrategy
retryStrategy) (\s :: PipeTargetBatchJobParameters
s@PipeTargetBatchJobParameters' {} Maybe BatchRetryStrategy
a -> PipeTargetBatchJobParameters
s {$sel:retryStrategy:PipeTargetBatchJobParameters' :: Maybe BatchRetryStrategy
retryStrategy = Maybe BatchRetryStrategy
a} :: PipeTargetBatchJobParameters)

-- | The job definition used by this job. This value can be one of @name@,
-- @name:revision@, or the Amazon Resource Name (ARN) for the job
-- definition. If name is specified without a revision then the latest
-- active revision is used.
pipeTargetBatchJobParameters_jobDefinition :: Lens.Lens' PipeTargetBatchJobParameters Prelude.Text
pipeTargetBatchJobParameters_jobDefinition :: Lens' PipeTargetBatchJobParameters Text
pipeTargetBatchJobParameters_jobDefinition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipeTargetBatchJobParameters' {Text
jobDefinition :: Text
$sel:jobDefinition:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Text
jobDefinition} -> Text
jobDefinition) (\s :: PipeTargetBatchJobParameters
s@PipeTargetBatchJobParameters' {} Text
a -> PipeTargetBatchJobParameters
s {$sel:jobDefinition:PipeTargetBatchJobParameters' :: Text
jobDefinition = Text
a} :: PipeTargetBatchJobParameters)

-- | The name of the job. It can be up to 128 letters long. The first
-- character must be alphanumeric, can contain uppercase and lowercase
-- letters, numbers, hyphens (-), and underscores (_).
pipeTargetBatchJobParameters_jobName :: Lens.Lens' PipeTargetBatchJobParameters Prelude.Text
pipeTargetBatchJobParameters_jobName :: Lens' PipeTargetBatchJobParameters Text
pipeTargetBatchJobParameters_jobName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\PipeTargetBatchJobParameters' {Text
jobName :: Text
$sel:jobName:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Text
jobName} -> Text
jobName) (\s :: PipeTargetBatchJobParameters
s@PipeTargetBatchJobParameters' {} Text
a -> PipeTargetBatchJobParameters
s {$sel:jobName:PipeTargetBatchJobParameters' :: Text
jobName = Text
a} :: PipeTargetBatchJobParameters)

instance Data.FromJSON PipeTargetBatchJobParameters where
  parseJSON :: Value -> Parser PipeTargetBatchJobParameters
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"PipeTargetBatchJobParameters"
      ( \Object
x ->
          Maybe BatchArrayProperties
-> Maybe BatchContainerOverrides
-> Maybe [BatchJobDependency]
-> Maybe (HashMap Text Text)
-> Maybe BatchRetryStrategy
-> Text
-> Text
-> PipeTargetBatchJobParameters
PipeTargetBatchJobParameters'
            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
"ArrayProperties")
            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
"ContainerOverrides")
            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
"DependsOn" 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
"Parameters" 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
"RetryStrategy")
            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
"JobDefinition")
            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
"JobName")
      )

instance
  Prelude.Hashable
    PipeTargetBatchJobParameters
  where
  hashWithSalt :: Int -> PipeTargetBatchJobParameters -> Int
hashWithSalt Int
_salt PipeTargetBatchJobParameters' {Maybe [BatchJobDependency]
Maybe (HashMap Text Text)
Maybe BatchArrayProperties
Maybe BatchContainerOverrides
Maybe BatchRetryStrategy
Text
jobName :: Text
jobDefinition :: Text
retryStrategy :: Maybe BatchRetryStrategy
parameters :: Maybe (HashMap Text Text)
dependsOn :: Maybe [BatchJobDependency]
containerOverrides :: Maybe BatchContainerOverrides
arrayProperties :: Maybe BatchArrayProperties
$sel:jobName:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Text
$sel:jobDefinition:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Text
$sel:retryStrategy:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe BatchRetryStrategy
$sel:parameters:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe (HashMap Text Text)
$sel:dependsOn:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe [BatchJobDependency]
$sel:containerOverrides:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe BatchContainerOverrides
$sel:arrayProperties:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe BatchArrayProperties
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BatchArrayProperties
arrayProperties
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BatchContainerOverrides
containerOverrides
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [BatchJobDependency]
dependsOn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (HashMap Text Text)
parameters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BatchRetryStrategy
retryStrategy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
jobDefinition
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
jobName

instance Prelude.NFData PipeTargetBatchJobParameters where
  rnf :: PipeTargetBatchJobParameters -> ()
rnf PipeTargetBatchJobParameters' {Maybe [BatchJobDependency]
Maybe (HashMap Text Text)
Maybe BatchArrayProperties
Maybe BatchContainerOverrides
Maybe BatchRetryStrategy
Text
jobName :: Text
jobDefinition :: Text
retryStrategy :: Maybe BatchRetryStrategy
parameters :: Maybe (HashMap Text Text)
dependsOn :: Maybe [BatchJobDependency]
containerOverrides :: Maybe BatchContainerOverrides
arrayProperties :: Maybe BatchArrayProperties
$sel:jobName:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Text
$sel:jobDefinition:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Text
$sel:retryStrategy:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe BatchRetryStrategy
$sel:parameters:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe (HashMap Text Text)
$sel:dependsOn:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe [BatchJobDependency]
$sel:containerOverrides:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe BatchContainerOverrides
$sel:arrayProperties:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe BatchArrayProperties
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe BatchArrayProperties
arrayProperties
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BatchContainerOverrides
containerOverrides
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [BatchJobDependency]
dependsOn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (HashMap Text Text)
parameters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BatchRetryStrategy
retryStrategy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
jobDefinition
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
jobName

instance Data.ToJSON PipeTargetBatchJobParameters where
  toJSON :: PipeTargetBatchJobParameters -> Value
toJSON PipeTargetBatchJobParameters' {Maybe [BatchJobDependency]
Maybe (HashMap Text Text)
Maybe BatchArrayProperties
Maybe BatchContainerOverrides
Maybe BatchRetryStrategy
Text
jobName :: Text
jobDefinition :: Text
retryStrategy :: Maybe BatchRetryStrategy
parameters :: Maybe (HashMap Text Text)
dependsOn :: Maybe [BatchJobDependency]
containerOverrides :: Maybe BatchContainerOverrides
arrayProperties :: Maybe BatchArrayProperties
$sel:jobName:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Text
$sel:jobDefinition:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Text
$sel:retryStrategy:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe BatchRetryStrategy
$sel:parameters:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe (HashMap Text Text)
$sel:dependsOn:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe [BatchJobDependency]
$sel:containerOverrides:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe BatchContainerOverrides
$sel:arrayProperties:PipeTargetBatchJobParameters' :: PipeTargetBatchJobParameters -> Maybe BatchArrayProperties
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"ArrayProperties" 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 BatchArrayProperties
arrayProperties,
            (Key
"ContainerOverrides" 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 BatchContainerOverrides
containerOverrides,
            (Key
"DependsOn" 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 [BatchJobDependency]
dependsOn,
            (Key
"Parameters" 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)
parameters,
            (Key
"RetryStrategy" 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 BatchRetryStrategy
retryStrategy,
            forall a. a -> Maybe a
Prelude.Just (Key
"JobDefinition" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
jobDefinition),
            forall a. a -> Maybe a
Prelude.Just (Key
"JobName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
jobName)
          ]
      )