{-# 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.ThirdPartyJobData
-- 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.CodePipeline.Types.ThirdPartyJobData 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.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | Represents information about the job data for a partner action.
--
-- /See:/ 'newThirdPartyJobData' smart constructor.
data ThirdPartyJobData = ThirdPartyJobData'
  { -- | Represents information about an action configuration.
    ThirdPartyJobData -> Maybe ActionConfiguration
actionConfiguration :: Prelude.Maybe ActionConfiguration,
    -- | Represents information about an action type.
    ThirdPartyJobData -> Maybe ActionTypeId
actionTypeId :: Prelude.Maybe ActionTypeId,
    -- | 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 artifact for the pipeline in AWS CodePipeline.
    ThirdPartyJobData -> Maybe (Sensitive AWSSessionCredentials)
artifactCredentials :: Prelude.Maybe (Data.Sensitive AWSSessionCredentials),
    -- | A system-generated token, such as a AWS CodeDeploy deployment ID, that a
    -- job requires to continue the job asynchronously.
    ThirdPartyJobData -> Maybe Text
continuationToken :: Prelude.Maybe Prelude.Text,
    -- | The encryption key used to encrypt and decrypt data in the artifact
    -- store for the pipeline, such as an AWS Key Management Service (AWS KMS)
    -- key. This is optional and might not be present.
    ThirdPartyJobData -> Maybe EncryptionKey
encryptionKey :: Prelude.Maybe EncryptionKey,
    -- | The name of the artifact that is worked on by the action, if any. This
    -- name might be system-generated, such as \"MyApp\", or it might be
    -- defined by the user when the action is created. The input artifact name
    -- must match the name of an output artifact generated by an action in an
    -- earlier action or stage of the pipeline.
    ThirdPartyJobData -> Maybe [Artifact]
inputArtifacts :: Prelude.Maybe [Artifact],
    -- | The name of the artifact that is the result of the action, if any. This
    -- name might be system-generated, such as \"MyBuiltApp\", or it might be
    -- defined by the user when the action is created.
    ThirdPartyJobData -> Maybe [Artifact]
outputArtifacts :: Prelude.Maybe [Artifact],
    -- | Represents information about a pipeline to a job worker.
    --
    -- Does not include @pipelineArn@ and @pipelineExecutionId@ for ThirdParty
    -- jobs.
    ThirdPartyJobData -> Maybe PipelineContext
pipelineContext :: Prelude.Maybe PipelineContext
  }
  deriving (ThirdPartyJobData -> ThirdPartyJobData -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ThirdPartyJobData -> ThirdPartyJobData -> Bool
$c/= :: ThirdPartyJobData -> ThirdPartyJobData -> Bool
== :: ThirdPartyJobData -> ThirdPartyJobData -> Bool
$c== :: ThirdPartyJobData -> ThirdPartyJobData -> Bool
Prelude.Eq, Int -> ThirdPartyJobData -> ShowS
[ThirdPartyJobData] -> ShowS
ThirdPartyJobData -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ThirdPartyJobData] -> ShowS
$cshowList :: [ThirdPartyJobData] -> ShowS
show :: ThirdPartyJobData -> String
$cshow :: ThirdPartyJobData -> String
showsPrec :: Int -> ThirdPartyJobData -> ShowS
$cshowsPrec :: Int -> ThirdPartyJobData -> ShowS
Prelude.Show, forall x. Rep ThirdPartyJobData x -> ThirdPartyJobData
forall x. ThirdPartyJobData -> Rep ThirdPartyJobData x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ThirdPartyJobData x -> ThirdPartyJobData
$cfrom :: forall x. ThirdPartyJobData -> Rep ThirdPartyJobData x
Prelude.Generic)

-- |
-- Create a value of 'ThirdPartyJobData' 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:
--
-- 'actionConfiguration', 'thirdPartyJobData_actionConfiguration' - Represents information about an action configuration.
--
-- 'actionTypeId', 'thirdPartyJobData_actionTypeId' - Represents information about an action type.
--
-- 'artifactCredentials', 'thirdPartyJobData_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 artifact for the pipeline in AWS CodePipeline.
--
-- 'continuationToken', 'thirdPartyJobData_continuationToken' - A system-generated token, such as a AWS CodeDeploy deployment ID, that a
-- job requires to continue the job asynchronously.
--
-- 'encryptionKey', 'thirdPartyJobData_encryptionKey' - The encryption key used to encrypt and decrypt data in the artifact
-- store for the pipeline, such as an AWS Key Management Service (AWS KMS)
-- key. This is optional and might not be present.
--
-- 'inputArtifacts', 'thirdPartyJobData_inputArtifacts' - The name of the artifact that is worked on by the action, if any. This
-- name might be system-generated, such as \"MyApp\", or it might be
-- defined by the user when the action is created. The input artifact name
-- must match the name of an output artifact generated by an action in an
-- earlier action or stage of the pipeline.
--
-- 'outputArtifacts', 'thirdPartyJobData_outputArtifacts' - The name of the artifact that is the result of the action, if any. This
-- name might be system-generated, such as \"MyBuiltApp\", or it might be
-- defined by the user when the action is created.
--
-- 'pipelineContext', 'thirdPartyJobData_pipelineContext' - Represents information about a pipeline to a job worker.
--
-- Does not include @pipelineArn@ and @pipelineExecutionId@ for ThirdParty
-- jobs.
newThirdPartyJobData ::
  ThirdPartyJobData
newThirdPartyJobData :: ThirdPartyJobData
newThirdPartyJobData =
  ThirdPartyJobData'
    { $sel:actionConfiguration:ThirdPartyJobData' :: Maybe ActionConfiguration
actionConfiguration =
        forall a. Maybe a
Prelude.Nothing,
      $sel:actionTypeId:ThirdPartyJobData' :: Maybe ActionTypeId
actionTypeId = forall a. Maybe a
Prelude.Nothing,
      $sel:artifactCredentials:ThirdPartyJobData' :: Maybe (Sensitive AWSSessionCredentials)
artifactCredentials = forall a. Maybe a
Prelude.Nothing,
      $sel:continuationToken:ThirdPartyJobData' :: Maybe Text
continuationToken = forall a. Maybe a
Prelude.Nothing,
      $sel:encryptionKey:ThirdPartyJobData' :: Maybe EncryptionKey
encryptionKey = forall a. Maybe a
Prelude.Nothing,
      $sel:inputArtifacts:ThirdPartyJobData' :: Maybe [Artifact]
inputArtifacts = forall a. Maybe a
Prelude.Nothing,
      $sel:outputArtifacts:ThirdPartyJobData' :: Maybe [Artifact]
outputArtifacts = forall a. Maybe a
Prelude.Nothing,
      $sel:pipelineContext:ThirdPartyJobData' :: Maybe PipelineContext
pipelineContext = forall a. Maybe a
Prelude.Nothing
    }

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

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

-- | 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 artifact for the pipeline in AWS CodePipeline.
thirdPartyJobData_artifactCredentials :: Lens.Lens' ThirdPartyJobData (Prelude.Maybe AWSSessionCredentials)
thirdPartyJobData_artifactCredentials :: Lens' ThirdPartyJobData (Maybe AWSSessionCredentials)
thirdPartyJobData_artifactCredentials = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ThirdPartyJobData' {Maybe (Sensitive AWSSessionCredentials)
artifactCredentials :: Maybe (Sensitive AWSSessionCredentials)
$sel:artifactCredentials:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe (Sensitive AWSSessionCredentials)
artifactCredentials} -> Maybe (Sensitive AWSSessionCredentials)
artifactCredentials) (\s :: ThirdPartyJobData
s@ThirdPartyJobData' {} Maybe (Sensitive AWSSessionCredentials)
a -> ThirdPartyJobData
s {$sel:artifactCredentials:ThirdPartyJobData' :: Maybe (Sensitive AWSSessionCredentials)
artifactCredentials = Maybe (Sensitive AWSSessionCredentials)
a} :: ThirdPartyJobData) 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 a. Iso' (Sensitive a) a
Data._Sensitive

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

-- | The encryption key used to encrypt and decrypt data in the artifact
-- store for the pipeline, such as an AWS Key Management Service (AWS KMS)
-- key. This is optional and might not be present.
thirdPartyJobData_encryptionKey :: Lens.Lens' ThirdPartyJobData (Prelude.Maybe EncryptionKey)
thirdPartyJobData_encryptionKey :: Lens' ThirdPartyJobData (Maybe EncryptionKey)
thirdPartyJobData_encryptionKey = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ThirdPartyJobData' {Maybe EncryptionKey
encryptionKey :: Maybe EncryptionKey
$sel:encryptionKey:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe EncryptionKey
encryptionKey} -> Maybe EncryptionKey
encryptionKey) (\s :: ThirdPartyJobData
s@ThirdPartyJobData' {} Maybe EncryptionKey
a -> ThirdPartyJobData
s {$sel:encryptionKey:ThirdPartyJobData' :: Maybe EncryptionKey
encryptionKey = Maybe EncryptionKey
a} :: ThirdPartyJobData)

-- | The name of the artifact that is worked on by the action, if any. This
-- name might be system-generated, such as \"MyApp\", or it might be
-- defined by the user when the action is created. The input artifact name
-- must match the name of an output artifact generated by an action in an
-- earlier action or stage of the pipeline.
thirdPartyJobData_inputArtifacts :: Lens.Lens' ThirdPartyJobData (Prelude.Maybe [Artifact])
thirdPartyJobData_inputArtifacts :: Lens' ThirdPartyJobData (Maybe [Artifact])
thirdPartyJobData_inputArtifacts = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ThirdPartyJobData' {Maybe [Artifact]
inputArtifacts :: Maybe [Artifact]
$sel:inputArtifacts:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe [Artifact]
inputArtifacts} -> Maybe [Artifact]
inputArtifacts) (\s :: ThirdPartyJobData
s@ThirdPartyJobData' {} Maybe [Artifact]
a -> ThirdPartyJobData
s {$sel:inputArtifacts:ThirdPartyJobData' :: Maybe [Artifact]
inputArtifacts = Maybe [Artifact]
a} :: ThirdPartyJobData) 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 name of the artifact that is the result of the action, if any. This
-- name might be system-generated, such as \"MyBuiltApp\", or it might be
-- defined by the user when the action is created.
thirdPartyJobData_outputArtifacts :: Lens.Lens' ThirdPartyJobData (Prelude.Maybe [Artifact])
thirdPartyJobData_outputArtifacts :: Lens' ThirdPartyJobData (Maybe [Artifact])
thirdPartyJobData_outputArtifacts = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ThirdPartyJobData' {Maybe [Artifact]
outputArtifacts :: Maybe [Artifact]
$sel:outputArtifacts:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe [Artifact]
outputArtifacts} -> Maybe [Artifact]
outputArtifacts) (\s :: ThirdPartyJobData
s@ThirdPartyJobData' {} Maybe [Artifact]
a -> ThirdPartyJobData
s {$sel:outputArtifacts:ThirdPartyJobData' :: Maybe [Artifact]
outputArtifacts = Maybe [Artifact]
a} :: ThirdPartyJobData) 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

-- | Represents information about a pipeline to a job worker.
--
-- Does not include @pipelineArn@ and @pipelineExecutionId@ for ThirdParty
-- jobs.
thirdPartyJobData_pipelineContext :: Lens.Lens' ThirdPartyJobData (Prelude.Maybe PipelineContext)
thirdPartyJobData_pipelineContext :: Lens' ThirdPartyJobData (Maybe PipelineContext)
thirdPartyJobData_pipelineContext = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ThirdPartyJobData' {Maybe PipelineContext
pipelineContext :: Maybe PipelineContext
$sel:pipelineContext:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe PipelineContext
pipelineContext} -> Maybe PipelineContext
pipelineContext) (\s :: ThirdPartyJobData
s@ThirdPartyJobData' {} Maybe PipelineContext
a -> ThirdPartyJobData
s {$sel:pipelineContext:ThirdPartyJobData' :: Maybe PipelineContext
pipelineContext = Maybe PipelineContext
a} :: ThirdPartyJobData)

instance Data.FromJSON ThirdPartyJobData where
  parseJSON :: Value -> Parser ThirdPartyJobData
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ThirdPartyJobData"
      ( \Object
x ->
          Maybe ActionConfiguration
-> Maybe ActionTypeId
-> Maybe (Sensitive AWSSessionCredentials)
-> Maybe Text
-> Maybe EncryptionKey
-> Maybe [Artifact]
-> Maybe [Artifact]
-> Maybe PipelineContext
-> ThirdPartyJobData
ThirdPartyJobData'
            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
"actionConfiguration")
            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
"actionTypeId")
            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
"artifactCredentials")
            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
"continuationToken")
            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
"encryptionKey")
            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
"inputArtifacts" 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
"outputArtifacts"
                            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
"pipelineContext")
      )

instance Prelude.Hashable ThirdPartyJobData where
  hashWithSalt :: Int -> ThirdPartyJobData -> Int
hashWithSalt Int
_salt ThirdPartyJobData' {Maybe [Artifact]
Maybe Text
Maybe (Sensitive AWSSessionCredentials)
Maybe ActionConfiguration
Maybe ActionTypeId
Maybe EncryptionKey
Maybe PipelineContext
pipelineContext :: Maybe PipelineContext
outputArtifacts :: Maybe [Artifact]
inputArtifacts :: Maybe [Artifact]
encryptionKey :: Maybe EncryptionKey
continuationToken :: Maybe Text
artifactCredentials :: Maybe (Sensitive AWSSessionCredentials)
actionTypeId :: Maybe ActionTypeId
actionConfiguration :: Maybe ActionConfiguration
$sel:pipelineContext:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe PipelineContext
$sel:outputArtifacts:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe [Artifact]
$sel:inputArtifacts:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe [Artifact]
$sel:encryptionKey:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe EncryptionKey
$sel:continuationToken:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe Text
$sel:artifactCredentials:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe (Sensitive AWSSessionCredentials)
$sel:actionTypeId:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe ActionTypeId
$sel:actionConfiguration:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe ActionConfiguration
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ActionConfiguration
actionConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ActionTypeId
actionTypeId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (Sensitive AWSSessionCredentials)
artifactCredentials
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
continuationToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EncryptionKey
encryptionKey
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Artifact]
inputArtifacts
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Artifact]
outputArtifacts
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe PipelineContext
pipelineContext

instance Prelude.NFData ThirdPartyJobData where
  rnf :: ThirdPartyJobData -> ()
rnf ThirdPartyJobData' {Maybe [Artifact]
Maybe Text
Maybe (Sensitive AWSSessionCredentials)
Maybe ActionConfiguration
Maybe ActionTypeId
Maybe EncryptionKey
Maybe PipelineContext
pipelineContext :: Maybe PipelineContext
outputArtifacts :: Maybe [Artifact]
inputArtifacts :: Maybe [Artifact]
encryptionKey :: Maybe EncryptionKey
continuationToken :: Maybe Text
artifactCredentials :: Maybe (Sensitive AWSSessionCredentials)
actionTypeId :: Maybe ActionTypeId
actionConfiguration :: Maybe ActionConfiguration
$sel:pipelineContext:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe PipelineContext
$sel:outputArtifacts:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe [Artifact]
$sel:inputArtifacts:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe [Artifact]
$sel:encryptionKey:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe EncryptionKey
$sel:continuationToken:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe Text
$sel:artifactCredentials:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe (Sensitive AWSSessionCredentials)
$sel:actionTypeId:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe ActionTypeId
$sel:actionConfiguration:ThirdPartyJobData' :: ThirdPartyJobData -> Maybe ActionConfiguration
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ActionConfiguration
actionConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ActionTypeId
actionTypeId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (Sensitive AWSSessionCredentials)
artifactCredentials
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
continuationToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EncryptionKey
encryptionKey
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Artifact]
inputArtifacts
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Artifact]
outputArtifacts
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe PipelineContext
pipelineContext