{-# 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.CodePipeline.Types.JobData
-- 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.CodePipeline.Types.JobData where

import Amazonka.CodePipeline.Types.AWSSessionCredentials
import Amazonka.CodePipeline.Types.ActionConfiguration
import Amazonka.CodePipeline.Types.ActionTypeId
import Amazonka.CodePipeline.Types.Artifact
import Amazonka.CodePipeline.Types.EncryptionKey
import Amazonka.CodePipeline.Types.PipelineContext
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Represents other information about a job required for a job worker to
-- complete the job.
--
-- /See:/ 'newJobData' smart constructor.
data JobData = JobData'
  { -- | A system-generated token, such as a AWS CodeDeploy deployment ID,
    -- required by a job to continue the job asynchronously.
    JobData -> Maybe Text
continuationToken :: Prelude.Maybe Prelude.Text,
    -- | The output of the job.
    JobData -> Maybe [Artifact]
outputArtifacts :: Prelude.Maybe [Artifact],
    -- | Represents an AWS session credentials object. These credentials are
    -- temporary credentials that are issued by AWS Secure Token Service (STS).
    -- They can be used to access input and output artifacts in the S3 bucket
    -- used to store artifacts for the pipeline in AWS CodePipeline.
    JobData -> Maybe (Sensitive AWSSessionCredentials)
artifactCredentials :: Prelude.Maybe (Core.Sensitive AWSSessionCredentials),
    -- | Represents information about a pipeline to a job worker.
    --
    -- Includes @pipelineArn@ and @pipelineExecutionId@ for custom jobs.
    JobData -> Maybe PipelineContext
pipelineContext :: Prelude.Maybe PipelineContext,
    -- | Represents information about the key used to encrypt data in the
    -- artifact store, such as an AWS Key Management Service (AWS KMS) key.
    JobData -> Maybe EncryptionKey
encryptionKey :: Prelude.Maybe EncryptionKey,
    -- | Represents information about an action type.
    JobData -> Maybe ActionTypeId
actionTypeId :: Prelude.Maybe ActionTypeId,
    -- | The artifact supplied to the job.
    JobData -> Maybe [Artifact]
inputArtifacts :: Prelude.Maybe [Artifact],
    -- | Represents information about an action configuration.
    JobData -> Maybe ActionConfiguration
actionConfiguration :: Prelude.Maybe ActionConfiguration
  }
  deriving (JobData -> JobData -> Bool
(JobData -> JobData -> Bool)
-> (JobData -> JobData -> Bool) -> Eq JobData
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: JobData -> JobData -> Bool
$c/= :: JobData -> JobData -> Bool
== :: JobData -> JobData -> Bool
$c== :: JobData -> JobData -> Bool
Prelude.Eq, Int -> JobData -> ShowS
[JobData] -> ShowS
JobData -> String
(Int -> JobData -> ShowS)
-> (JobData -> String) -> ([JobData] -> ShowS) -> Show JobData
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [JobData] -> ShowS
$cshowList :: [JobData] -> ShowS
show :: JobData -> String
$cshow :: JobData -> String
showsPrec :: Int -> JobData -> ShowS
$cshowsPrec :: Int -> JobData -> ShowS
Prelude.Show, (forall x. JobData -> Rep JobData x)
-> (forall x. Rep JobData x -> JobData) -> Generic JobData
forall x. Rep JobData x -> JobData
forall x. JobData -> Rep JobData x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep JobData x -> JobData
$cfrom :: forall x. JobData -> Rep JobData x
Prelude.Generic)

-- |
-- Create a value of 'JobData' 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:
--
-- 'continuationToken', 'jobData_continuationToken' - A system-generated token, such as a AWS CodeDeploy deployment ID,
-- required by a job to continue the job asynchronously.
--
-- 'outputArtifacts', 'jobData_outputArtifacts' - The output of the job.
--
-- 'artifactCredentials', 'jobData_artifactCredentials' - Represents an AWS session credentials object. These credentials are
-- temporary credentials that are issued by AWS Secure Token Service (STS).
-- They can be used to access input and output artifacts in the S3 bucket
-- used to store artifacts for the pipeline in AWS CodePipeline.
--
-- 'pipelineContext', 'jobData_pipelineContext' - Represents information about a pipeline to a job worker.
--
-- Includes @pipelineArn@ and @pipelineExecutionId@ for custom jobs.
--
-- 'encryptionKey', 'jobData_encryptionKey' - Represents information about the key used to encrypt data in the
-- artifact store, such as an AWS Key Management Service (AWS KMS) key.
--
-- 'actionTypeId', 'jobData_actionTypeId' - Represents information about an action type.
--
-- 'inputArtifacts', 'jobData_inputArtifacts' - The artifact supplied to the job.
--
-- 'actionConfiguration', 'jobData_actionConfiguration' - Represents information about an action configuration.
newJobData ::
  JobData
newJobData :: JobData
newJobData =
  JobData' :: Maybe Text
-> Maybe [Artifact]
-> Maybe (Sensitive AWSSessionCredentials)
-> Maybe PipelineContext
-> Maybe EncryptionKey
-> Maybe ActionTypeId
-> Maybe [Artifact]
-> Maybe ActionConfiguration
-> JobData
JobData'
    { $sel:continuationToken:JobData' :: Maybe Text
continuationToken = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:outputArtifacts:JobData' :: Maybe [Artifact]
outputArtifacts = Maybe [Artifact]
forall a. Maybe a
Prelude.Nothing,
      $sel:artifactCredentials:JobData' :: Maybe (Sensitive AWSSessionCredentials)
artifactCredentials = Maybe (Sensitive AWSSessionCredentials)
forall a. Maybe a
Prelude.Nothing,
      $sel:pipelineContext:JobData' :: Maybe PipelineContext
pipelineContext = Maybe PipelineContext
forall a. Maybe a
Prelude.Nothing,
      $sel:encryptionKey:JobData' :: Maybe EncryptionKey
encryptionKey = Maybe EncryptionKey
forall a. Maybe a
Prelude.Nothing,
      $sel:actionTypeId:JobData' :: Maybe ActionTypeId
actionTypeId = Maybe ActionTypeId
forall a. Maybe a
Prelude.Nothing,
      $sel:inputArtifacts:JobData' :: Maybe [Artifact]
inputArtifacts = Maybe [Artifact]
forall a. Maybe a
Prelude.Nothing,
      $sel:actionConfiguration:JobData' :: Maybe ActionConfiguration
actionConfiguration = Maybe ActionConfiguration
forall a. Maybe a
Prelude.Nothing
    }

-- | A system-generated token, such as a AWS CodeDeploy deployment ID,
-- required by a job to continue the job asynchronously.
jobData_continuationToken :: Lens.Lens' JobData (Prelude.Maybe Prelude.Text)
jobData_continuationToken :: (Maybe Text -> f (Maybe Text)) -> JobData -> f JobData
jobData_continuationToken = (JobData -> Maybe Text)
-> (JobData -> Maybe Text -> JobData)
-> Lens JobData JobData (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobData' {Maybe Text
continuationToken :: Maybe Text
$sel:continuationToken:JobData' :: JobData -> Maybe Text
continuationToken} -> Maybe Text
continuationToken) (\s :: JobData
s@JobData' {} Maybe Text
a -> JobData
s {$sel:continuationToken:JobData' :: Maybe Text
continuationToken = Maybe Text
a} :: JobData)

-- | The output of the job.
jobData_outputArtifacts :: Lens.Lens' JobData (Prelude.Maybe [Artifact])
jobData_outputArtifacts :: (Maybe [Artifact] -> f (Maybe [Artifact])) -> JobData -> f JobData
jobData_outputArtifacts = (JobData -> Maybe [Artifact])
-> (JobData -> Maybe [Artifact] -> JobData)
-> Lens JobData JobData (Maybe [Artifact]) (Maybe [Artifact])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobData' {Maybe [Artifact]
outputArtifacts :: Maybe [Artifact]
$sel:outputArtifacts:JobData' :: JobData -> Maybe [Artifact]
outputArtifacts} -> Maybe [Artifact]
outputArtifacts) (\s :: JobData
s@JobData' {} Maybe [Artifact]
a -> JobData
s {$sel:outputArtifacts:JobData' :: Maybe [Artifact]
outputArtifacts = Maybe [Artifact]
a} :: JobData) ((Maybe [Artifact] -> f (Maybe [Artifact]))
 -> JobData -> f JobData)
-> ((Maybe [Artifact] -> f (Maybe [Artifact]))
    -> Maybe [Artifact] -> f (Maybe [Artifact]))
-> (Maybe [Artifact] -> f (Maybe [Artifact]))
-> JobData
-> f JobData
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Artifact] [Artifact] [Artifact] [Artifact]
-> Iso
     (Maybe [Artifact])
     (Maybe [Artifact])
     (Maybe [Artifact])
     (Maybe [Artifact])
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 [Artifact] [Artifact] [Artifact] [Artifact]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Represents an AWS session credentials object. These credentials are
-- temporary credentials that are issued by AWS Secure Token Service (STS).
-- They can be used to access input and output artifacts in the S3 bucket
-- used to store artifacts for the pipeline in AWS CodePipeline.
jobData_artifactCredentials :: Lens.Lens' JobData (Prelude.Maybe AWSSessionCredentials)
jobData_artifactCredentials :: (Maybe AWSSessionCredentials -> f (Maybe AWSSessionCredentials))
-> JobData -> f JobData
jobData_artifactCredentials = (JobData -> Maybe (Sensitive AWSSessionCredentials))
-> (JobData -> Maybe (Sensitive AWSSessionCredentials) -> JobData)
-> Lens
     JobData
     JobData
     (Maybe (Sensitive AWSSessionCredentials))
     (Maybe (Sensitive AWSSessionCredentials))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobData' {Maybe (Sensitive AWSSessionCredentials)
artifactCredentials :: Maybe (Sensitive AWSSessionCredentials)
$sel:artifactCredentials:JobData' :: JobData -> Maybe (Sensitive AWSSessionCredentials)
artifactCredentials} -> Maybe (Sensitive AWSSessionCredentials)
artifactCredentials) (\s :: JobData
s@JobData' {} Maybe (Sensitive AWSSessionCredentials)
a -> JobData
s {$sel:artifactCredentials:JobData' :: Maybe (Sensitive AWSSessionCredentials)
artifactCredentials = Maybe (Sensitive AWSSessionCredentials)
a} :: JobData) ((Maybe (Sensitive AWSSessionCredentials)
  -> f (Maybe (Sensitive AWSSessionCredentials)))
 -> JobData -> f JobData)
-> ((Maybe AWSSessionCredentials
     -> f (Maybe AWSSessionCredentials))
    -> Maybe (Sensitive AWSSessionCredentials)
    -> f (Maybe (Sensitive AWSSessionCredentials)))
-> (Maybe AWSSessionCredentials -> f (Maybe AWSSessionCredentials))
-> JobData
-> f JobData
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (Sensitive AWSSessionCredentials)
  (Sensitive AWSSessionCredentials)
  AWSSessionCredentials
  AWSSessionCredentials
-> Iso
     (Maybe (Sensitive AWSSessionCredentials))
     (Maybe (Sensitive AWSSessionCredentials))
     (Maybe AWSSessionCredentials)
     (Maybe AWSSessionCredentials)
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
  (Sensitive AWSSessionCredentials)
  (Sensitive AWSSessionCredentials)
  AWSSessionCredentials
  AWSSessionCredentials
forall a. Iso' (Sensitive a) a
Core._Sensitive

-- | Represents information about a pipeline to a job worker.
--
-- Includes @pipelineArn@ and @pipelineExecutionId@ for custom jobs.
jobData_pipelineContext :: Lens.Lens' JobData (Prelude.Maybe PipelineContext)
jobData_pipelineContext :: (Maybe PipelineContext -> f (Maybe PipelineContext))
-> JobData -> f JobData
jobData_pipelineContext = (JobData -> Maybe PipelineContext)
-> (JobData -> Maybe PipelineContext -> JobData)
-> Lens
     JobData JobData (Maybe PipelineContext) (Maybe PipelineContext)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobData' {Maybe PipelineContext
pipelineContext :: Maybe PipelineContext
$sel:pipelineContext:JobData' :: JobData -> Maybe PipelineContext
pipelineContext} -> Maybe PipelineContext
pipelineContext) (\s :: JobData
s@JobData' {} Maybe PipelineContext
a -> JobData
s {$sel:pipelineContext:JobData' :: Maybe PipelineContext
pipelineContext = Maybe PipelineContext
a} :: JobData)

-- | Represents information about the key used to encrypt data in the
-- artifact store, such as an AWS Key Management Service (AWS KMS) key.
jobData_encryptionKey :: Lens.Lens' JobData (Prelude.Maybe EncryptionKey)
jobData_encryptionKey :: (Maybe EncryptionKey -> f (Maybe EncryptionKey))
-> JobData -> f JobData
jobData_encryptionKey = (JobData -> Maybe EncryptionKey)
-> (JobData -> Maybe EncryptionKey -> JobData)
-> Lens JobData JobData (Maybe EncryptionKey) (Maybe EncryptionKey)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobData' {Maybe EncryptionKey
encryptionKey :: Maybe EncryptionKey
$sel:encryptionKey:JobData' :: JobData -> Maybe EncryptionKey
encryptionKey} -> Maybe EncryptionKey
encryptionKey) (\s :: JobData
s@JobData' {} Maybe EncryptionKey
a -> JobData
s {$sel:encryptionKey:JobData' :: Maybe EncryptionKey
encryptionKey = Maybe EncryptionKey
a} :: JobData)

-- | Represents information about an action type.
jobData_actionTypeId :: Lens.Lens' JobData (Prelude.Maybe ActionTypeId)
jobData_actionTypeId :: (Maybe ActionTypeId -> f (Maybe ActionTypeId))
-> JobData -> f JobData
jobData_actionTypeId = (JobData -> Maybe ActionTypeId)
-> (JobData -> Maybe ActionTypeId -> JobData)
-> Lens JobData JobData (Maybe ActionTypeId) (Maybe ActionTypeId)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobData' {Maybe ActionTypeId
actionTypeId :: Maybe ActionTypeId
$sel:actionTypeId:JobData' :: JobData -> Maybe ActionTypeId
actionTypeId} -> Maybe ActionTypeId
actionTypeId) (\s :: JobData
s@JobData' {} Maybe ActionTypeId
a -> JobData
s {$sel:actionTypeId:JobData' :: Maybe ActionTypeId
actionTypeId = Maybe ActionTypeId
a} :: JobData)

-- | The artifact supplied to the job.
jobData_inputArtifacts :: Lens.Lens' JobData (Prelude.Maybe [Artifact])
jobData_inputArtifacts :: (Maybe [Artifact] -> f (Maybe [Artifact])) -> JobData -> f JobData
jobData_inputArtifacts = (JobData -> Maybe [Artifact])
-> (JobData -> Maybe [Artifact] -> JobData)
-> Lens JobData JobData (Maybe [Artifact]) (Maybe [Artifact])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobData' {Maybe [Artifact]
inputArtifacts :: Maybe [Artifact]
$sel:inputArtifacts:JobData' :: JobData -> Maybe [Artifact]
inputArtifacts} -> Maybe [Artifact]
inputArtifacts) (\s :: JobData
s@JobData' {} Maybe [Artifact]
a -> JobData
s {$sel:inputArtifacts:JobData' :: Maybe [Artifact]
inputArtifacts = Maybe [Artifact]
a} :: JobData) ((Maybe [Artifact] -> f (Maybe [Artifact]))
 -> JobData -> f JobData)
-> ((Maybe [Artifact] -> f (Maybe [Artifact]))
    -> Maybe [Artifact] -> f (Maybe [Artifact]))
-> (Maybe [Artifact] -> f (Maybe [Artifact]))
-> JobData
-> f JobData
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Artifact] [Artifact] [Artifact] [Artifact]
-> Iso
     (Maybe [Artifact])
     (Maybe [Artifact])
     (Maybe [Artifact])
     (Maybe [Artifact])
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 [Artifact] [Artifact] [Artifact] [Artifact]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Represents information about an action configuration.
jobData_actionConfiguration :: Lens.Lens' JobData (Prelude.Maybe ActionConfiguration)
jobData_actionConfiguration :: (Maybe ActionConfiguration -> f (Maybe ActionConfiguration))
-> JobData -> f JobData
jobData_actionConfiguration = (JobData -> Maybe ActionConfiguration)
-> (JobData -> Maybe ActionConfiguration -> JobData)
-> Lens
     JobData
     JobData
     (Maybe ActionConfiguration)
     (Maybe ActionConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\JobData' {Maybe ActionConfiguration
actionConfiguration :: Maybe ActionConfiguration
$sel:actionConfiguration:JobData' :: JobData -> Maybe ActionConfiguration
actionConfiguration} -> Maybe ActionConfiguration
actionConfiguration) (\s :: JobData
s@JobData' {} Maybe ActionConfiguration
a -> JobData
s {$sel:actionConfiguration:JobData' :: Maybe ActionConfiguration
actionConfiguration = Maybe ActionConfiguration
a} :: JobData)

instance Core.FromJSON JobData where
  parseJSON :: Value -> Parser JobData
parseJSON =
    String -> (Object -> Parser JobData) -> Value -> Parser JobData
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"JobData"
      ( \Object
x ->
          Maybe Text
-> Maybe [Artifact]
-> Maybe (Sensitive AWSSessionCredentials)
-> Maybe PipelineContext
-> Maybe EncryptionKey
-> Maybe ActionTypeId
-> Maybe [Artifact]
-> Maybe ActionConfiguration
-> JobData
JobData'
            (Maybe Text
 -> Maybe [Artifact]
 -> Maybe (Sensitive AWSSessionCredentials)
 -> Maybe PipelineContext
 -> Maybe EncryptionKey
 -> Maybe ActionTypeId
 -> Maybe [Artifact]
 -> Maybe ActionConfiguration
 -> JobData)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Artifact]
      -> Maybe (Sensitive AWSSessionCredentials)
      -> Maybe PipelineContext
      -> Maybe EncryptionKey
      -> Maybe ActionTypeId
      -> Maybe [Artifact]
      -> Maybe ActionConfiguration
      -> JobData)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"continuationToken")
            Parser
  (Maybe [Artifact]
   -> Maybe (Sensitive AWSSessionCredentials)
   -> Maybe PipelineContext
   -> Maybe EncryptionKey
   -> Maybe ActionTypeId
   -> Maybe [Artifact]
   -> Maybe ActionConfiguration
   -> JobData)
-> Parser (Maybe [Artifact])
-> Parser
     (Maybe (Sensitive AWSSessionCredentials)
      -> Maybe PipelineContext
      -> Maybe EncryptionKey
      -> Maybe ActionTypeId
      -> Maybe [Artifact]
      -> Maybe ActionConfiguration
      -> JobData)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [Artifact]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"outputArtifacts"
                            Parser (Maybe (Maybe [Artifact]))
-> Maybe [Artifact] -> Parser (Maybe [Artifact])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Artifact]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe (Sensitive AWSSessionCredentials)
   -> Maybe PipelineContext
   -> Maybe EncryptionKey
   -> Maybe ActionTypeId
   -> Maybe [Artifact]
   -> Maybe ActionConfiguration
   -> JobData)
-> Parser (Maybe (Sensitive AWSSessionCredentials))
-> Parser
     (Maybe PipelineContext
      -> Maybe EncryptionKey
      -> Maybe ActionTypeId
      -> Maybe [Artifact]
      -> Maybe ActionConfiguration
      -> JobData)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Sensitive AWSSessionCredentials))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"artifactCredentials")
            Parser
  (Maybe PipelineContext
   -> Maybe EncryptionKey
   -> Maybe ActionTypeId
   -> Maybe [Artifact]
   -> Maybe ActionConfiguration
   -> JobData)
-> Parser (Maybe PipelineContext)
-> Parser
     (Maybe EncryptionKey
      -> Maybe ActionTypeId
      -> Maybe [Artifact]
      -> Maybe ActionConfiguration
      -> JobData)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe PipelineContext)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"pipelineContext")
            Parser
  (Maybe EncryptionKey
   -> Maybe ActionTypeId
   -> Maybe [Artifact]
   -> Maybe ActionConfiguration
   -> JobData)
-> Parser (Maybe EncryptionKey)
-> Parser
     (Maybe ActionTypeId
      -> Maybe [Artifact] -> Maybe ActionConfiguration -> JobData)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe EncryptionKey)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"encryptionKey")
            Parser
  (Maybe ActionTypeId
   -> Maybe [Artifact] -> Maybe ActionConfiguration -> JobData)
-> Parser (Maybe ActionTypeId)
-> Parser
     (Maybe [Artifact] -> Maybe ActionConfiguration -> JobData)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ActionTypeId)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"actionTypeId")
            Parser (Maybe [Artifact] -> Maybe ActionConfiguration -> JobData)
-> Parser (Maybe [Artifact])
-> Parser (Maybe ActionConfiguration -> JobData)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [Artifact]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"inputArtifacts" Parser (Maybe (Maybe [Artifact]))
-> Maybe [Artifact] -> Parser (Maybe [Artifact])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Artifact]
forall a. Monoid a => a
Prelude.mempty)
            Parser (Maybe ActionConfiguration -> JobData)
-> Parser (Maybe ActionConfiguration) -> Parser JobData
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ActionConfiguration)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"actionConfiguration")
      )

instance Prelude.Hashable JobData

instance Prelude.NFData JobData