{-# 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.CodeBuild.Types.BuildBatch
-- 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.CodeBuild.Types.BuildBatch where

import Amazonka.CodeBuild.Types.BuildArtifacts
import Amazonka.CodeBuild.Types.BuildBatchPhase
import Amazonka.CodeBuild.Types.BuildGroup
import Amazonka.CodeBuild.Types.LogsConfig
import Amazonka.CodeBuild.Types.ProjectBuildBatchConfig
import Amazonka.CodeBuild.Types.ProjectCache
import Amazonka.CodeBuild.Types.ProjectEnvironment
import Amazonka.CodeBuild.Types.ProjectFileSystemLocation
import Amazonka.CodeBuild.Types.ProjectSource
import Amazonka.CodeBuild.Types.ProjectSourceVersion
import Amazonka.CodeBuild.Types.StatusType
import Amazonka.CodeBuild.Types.VpcConfig
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Contains information about a batch build.
--
-- /See:/ 'newBuildBatch' smart constructor.
data BuildBatch = BuildBatch'
  { -- | An array of @BuildBatchPhase@ objects the specify the phases of the
    -- batch build.
    BuildBatch -> Maybe [BuildBatchPhase]
phases :: Prelude.Maybe [BuildBatchPhase],
    -- | An array of @BuildArtifacts@ objects the define the build artifacts for
    -- this batch build.
    BuildBatch -> Maybe [BuildArtifacts]
secondaryArtifacts :: Prelude.Maybe [BuildArtifacts],
    -- | Specifies the maximum amount of time, in minutes, that the build in a
    -- batch must be completed in.
    BuildBatch -> Maybe Int
buildTimeoutInMinutes :: Prelude.Maybe Prelude.Int,
    -- | Specifies if session debugging is enabled for this batch build. For more
    -- information, see
    -- <https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html Viewing a running build in Session Manager>.
    -- Batch session debugging is not supported for matrix batch builds.
    BuildBatch -> Maybe Bool
debugSessionEnabled :: Prelude.Maybe Prelude.Bool,
    -- | The ARN of the batch build.
    BuildBatch -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The date and time that the batch build started.
    BuildBatch -> Maybe POSIX
startTime :: Prelude.Maybe Core.POSIX,
    -- | A @BuildArtifacts@ object the defines the build artifacts for this batch
    -- build.
    BuildBatch -> Maybe BuildArtifacts
artifacts :: Prelude.Maybe BuildArtifacts,
    BuildBatch -> Maybe ProjectEnvironment
environment :: Prelude.Maybe ProjectEnvironment,
    -- | The entity that started the batch build. Valid values include:
    --
    -- -   If CodePipeline started the build, the pipeline\'s name (for
    --     example, @codepipeline\/my-demo-pipeline@).
    --
    -- -   If an IAM user started the build, the user\'s name.
    --
    -- -   If the Jenkins plugin for CodeBuild started the build, the string
    --     @CodeBuild-Jenkins-Plugin@.
    BuildBatch -> Maybe Text
initiator :: Prelude.Maybe Prelude.Text,
    -- | An array of @ProjectSourceVersion@ objects. Each @ProjectSourceVersion@
    -- must be one of:
    --
    -- -   For CodeCommit: the commit ID, branch, or Git tag to use.
    --
    -- -   For GitHub: the commit ID, pull request ID, branch name, or tag name
    --     that corresponds to the version of the source code you want to
    --     build. If a pull request ID is specified, it must use the format
    --     @pr\/pull-request-ID@ (for example, @pr\/25@). If a branch name is
    --     specified, the branch\'s HEAD commit ID is used. If not specified,
    --     the default branch\'s HEAD commit ID is used.
    --
    -- -   For Bitbucket: the commit ID, branch name, or tag name that
    --     corresponds to the version of the source code you want to build. If
    --     a branch name is specified, the branch\'s HEAD commit ID is used. If
    --     not specified, the default branch\'s HEAD commit ID is used.
    --
    -- -   For Amazon S3: the version ID of the object that represents the
    --     build input ZIP file to use.
    BuildBatch -> Maybe [ProjectSourceVersion]
secondarySourceVersions :: Prelude.Maybe [ProjectSourceVersion],
    -- | The status of the batch build.
    BuildBatch -> Maybe StatusType
buildBatchStatus :: Prelude.Maybe StatusType,
    -- | The current phase of the batch build.
    BuildBatch -> Maybe Text
currentPhase :: Prelude.Maybe Prelude.Text,
    -- | The number of the batch build. For each project, the @buildBatchNumber@
    -- of its first batch build is @1@. The @buildBatchNumber@ of each
    -- subsequent batch build is incremented by @1@. If a batch build is
    -- deleted, the @buildBatchNumber@ of other batch builds does not change.
    BuildBatch -> Maybe Integer
buildBatchNumber :: Prelude.Maybe Prelude.Integer,
    -- | Specifies the amount of time, in minutes, that the batch build is
    -- allowed to be queued before it times out.
    BuildBatch -> Maybe Int
queuedTimeoutInMinutes :: Prelude.Maybe Prelude.Int,
    BuildBatch -> Maybe ProjectCache
cache :: Prelude.Maybe ProjectCache,
    -- | An array of @ProjectSource@ objects that define the sources for the
    -- batch build.
    BuildBatch -> Maybe [ProjectSource]
secondarySources :: Prelude.Maybe [ProjectSource],
    -- | The identifier of the version of the source code to be built.
    BuildBatch -> Maybe Text
sourceVersion :: Prelude.Maybe Prelude.Text,
    -- | The identifier of the resolved version of this batch build\'s source
    -- code.
    --
    -- -   For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit
    --     ID.
    --
    -- -   For CodePipeline, the source revision provided by CodePipeline.
    --
    -- -   For Amazon S3, this does not apply.
    BuildBatch -> Maybe Text
resolvedSourceVersion :: Prelude.Maybe Prelude.Text,
    BuildBatch -> Maybe VpcConfig
vpcConfig :: Prelude.Maybe VpcConfig,
    -- | The date and time that the batch build ended.
    BuildBatch -> Maybe POSIX
endTime :: Prelude.Maybe Core.POSIX,
    -- | The name of the batch build project.
    BuildBatch -> Maybe Text
projectName :: Prelude.Maybe Prelude.Text,
    -- | An array of @BuildGroup@ objects that define the build groups for the
    -- batch build.
    BuildBatch -> Maybe [BuildGroup]
buildGroups :: Prelude.Maybe [BuildGroup],
    BuildBatch -> Maybe ProjectSource
source :: Prelude.Maybe ProjectSource,
    -- | The identifier of the batch build.
    BuildBatch -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
    -- | An array of @ProjectFileSystemLocation@ objects for the batch build
    -- project. A @ProjectFileSystemLocation@ object specifies the
    -- @identifier@, @location@, @mountOptions@, @mountPoint@, and @type@ of a
    -- file system created using Amazon Elastic File System.
    BuildBatch -> Maybe [ProjectFileSystemLocation]
fileSystemLocations :: Prelude.Maybe [ProjectFileSystemLocation],
    BuildBatch -> Maybe ProjectBuildBatchConfig
buildBatchConfig :: Prelude.Maybe ProjectBuildBatchConfig,
    -- | The Key Management Service customer master key (CMK) to be used for
    -- encrypting the batch build output artifacts.
    --
    -- You can use a cross-account KMS key to encrypt the build output
    -- artifacts if your service role has permission to that key.
    --
    -- You can specify either the Amazon Resource Name (ARN) of the CMK or, if
    -- available, the CMK\'s alias (using the format @alias\/\<alias-name>@).
    BuildBatch -> Maybe Text
encryptionKey :: Prelude.Maybe Prelude.Text,
    BuildBatch -> Maybe LogsConfig
logConfig :: Prelude.Maybe LogsConfig,
    -- | The name of a service role used for builds in the batch.
    BuildBatch -> Maybe Text
serviceRole :: Prelude.Maybe Prelude.Text,
    -- | Indicates if the batch build is complete.
    BuildBatch -> Maybe Bool
complete :: Prelude.Maybe Prelude.Bool
  }
  deriving (BuildBatch -> BuildBatch -> Bool
(BuildBatch -> BuildBatch -> Bool)
-> (BuildBatch -> BuildBatch -> Bool) -> Eq BuildBatch
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BuildBatch -> BuildBatch -> Bool
$c/= :: BuildBatch -> BuildBatch -> Bool
== :: BuildBatch -> BuildBatch -> Bool
$c== :: BuildBatch -> BuildBatch -> Bool
Prelude.Eq, ReadPrec [BuildBatch]
ReadPrec BuildBatch
Int -> ReadS BuildBatch
ReadS [BuildBatch]
(Int -> ReadS BuildBatch)
-> ReadS [BuildBatch]
-> ReadPrec BuildBatch
-> ReadPrec [BuildBatch]
-> Read BuildBatch
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [BuildBatch]
$creadListPrec :: ReadPrec [BuildBatch]
readPrec :: ReadPrec BuildBatch
$creadPrec :: ReadPrec BuildBatch
readList :: ReadS [BuildBatch]
$creadList :: ReadS [BuildBatch]
readsPrec :: Int -> ReadS BuildBatch
$creadsPrec :: Int -> ReadS BuildBatch
Prelude.Read, Int -> BuildBatch -> ShowS
[BuildBatch] -> ShowS
BuildBatch -> String
(Int -> BuildBatch -> ShowS)
-> (BuildBatch -> String)
-> ([BuildBatch] -> ShowS)
-> Show BuildBatch
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BuildBatch] -> ShowS
$cshowList :: [BuildBatch] -> ShowS
show :: BuildBatch -> String
$cshow :: BuildBatch -> String
showsPrec :: Int -> BuildBatch -> ShowS
$cshowsPrec :: Int -> BuildBatch -> ShowS
Prelude.Show, (forall x. BuildBatch -> Rep BuildBatch x)
-> (forall x. Rep BuildBatch x -> BuildBatch) -> Generic BuildBatch
forall x. Rep BuildBatch x -> BuildBatch
forall x. BuildBatch -> Rep BuildBatch x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep BuildBatch x -> BuildBatch
$cfrom :: forall x. BuildBatch -> Rep BuildBatch x
Prelude.Generic)

-- |
-- Create a value of 'BuildBatch' 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:
--
-- 'phases', 'buildBatch_phases' - An array of @BuildBatchPhase@ objects the specify the phases of the
-- batch build.
--
-- 'secondaryArtifacts', 'buildBatch_secondaryArtifacts' - An array of @BuildArtifacts@ objects the define the build artifacts for
-- this batch build.
--
-- 'buildTimeoutInMinutes', 'buildBatch_buildTimeoutInMinutes' - Specifies the maximum amount of time, in minutes, that the build in a
-- batch must be completed in.
--
-- 'debugSessionEnabled', 'buildBatch_debugSessionEnabled' - Specifies if session debugging is enabled for this batch build. For more
-- information, see
-- <https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html Viewing a running build in Session Manager>.
-- Batch session debugging is not supported for matrix batch builds.
--
-- 'arn', 'buildBatch_arn' - The ARN of the batch build.
--
-- 'startTime', 'buildBatch_startTime' - The date and time that the batch build started.
--
-- 'artifacts', 'buildBatch_artifacts' - A @BuildArtifacts@ object the defines the build artifacts for this batch
-- build.
--
-- 'environment', 'buildBatch_environment' - Undocumented member.
--
-- 'initiator', 'buildBatch_initiator' - The entity that started the batch build. Valid values include:
--
-- -   If CodePipeline started the build, the pipeline\'s name (for
--     example, @codepipeline\/my-demo-pipeline@).
--
-- -   If an IAM user started the build, the user\'s name.
--
-- -   If the Jenkins plugin for CodeBuild started the build, the string
--     @CodeBuild-Jenkins-Plugin@.
--
-- 'secondarySourceVersions', 'buildBatch_secondarySourceVersions' - An array of @ProjectSourceVersion@ objects. Each @ProjectSourceVersion@
-- must be one of:
--
-- -   For CodeCommit: the commit ID, branch, or Git tag to use.
--
-- -   For GitHub: the commit ID, pull request ID, branch name, or tag name
--     that corresponds to the version of the source code you want to
--     build. If a pull request ID is specified, it must use the format
--     @pr\/pull-request-ID@ (for example, @pr\/25@). If a branch name is
--     specified, the branch\'s HEAD commit ID is used. If not specified,
--     the default branch\'s HEAD commit ID is used.
--
-- -   For Bitbucket: the commit ID, branch name, or tag name that
--     corresponds to the version of the source code you want to build. If
--     a branch name is specified, the branch\'s HEAD commit ID is used. If
--     not specified, the default branch\'s HEAD commit ID is used.
--
-- -   For Amazon S3: the version ID of the object that represents the
--     build input ZIP file to use.
--
-- 'buildBatchStatus', 'buildBatch_buildBatchStatus' - The status of the batch build.
--
-- 'currentPhase', 'buildBatch_currentPhase' - The current phase of the batch build.
--
-- 'buildBatchNumber', 'buildBatch_buildBatchNumber' - The number of the batch build. For each project, the @buildBatchNumber@
-- of its first batch build is @1@. The @buildBatchNumber@ of each
-- subsequent batch build is incremented by @1@. If a batch build is
-- deleted, the @buildBatchNumber@ of other batch builds does not change.
--
-- 'queuedTimeoutInMinutes', 'buildBatch_queuedTimeoutInMinutes' - Specifies the amount of time, in minutes, that the batch build is
-- allowed to be queued before it times out.
--
-- 'cache', 'buildBatch_cache' - Undocumented member.
--
-- 'secondarySources', 'buildBatch_secondarySources' - An array of @ProjectSource@ objects that define the sources for the
-- batch build.
--
-- 'sourceVersion', 'buildBatch_sourceVersion' - The identifier of the version of the source code to be built.
--
-- 'resolvedSourceVersion', 'buildBatch_resolvedSourceVersion' - The identifier of the resolved version of this batch build\'s source
-- code.
--
-- -   For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit
--     ID.
--
-- -   For CodePipeline, the source revision provided by CodePipeline.
--
-- -   For Amazon S3, this does not apply.
--
-- 'vpcConfig', 'buildBatch_vpcConfig' - Undocumented member.
--
-- 'endTime', 'buildBatch_endTime' - The date and time that the batch build ended.
--
-- 'projectName', 'buildBatch_projectName' - The name of the batch build project.
--
-- 'buildGroups', 'buildBatch_buildGroups' - An array of @BuildGroup@ objects that define the build groups for the
-- batch build.
--
-- 'source', 'buildBatch_source' - Undocumented member.
--
-- 'id', 'buildBatch_id' - The identifier of the batch build.
--
-- 'fileSystemLocations', 'buildBatch_fileSystemLocations' - An array of @ProjectFileSystemLocation@ objects for the batch build
-- project. A @ProjectFileSystemLocation@ object specifies the
-- @identifier@, @location@, @mountOptions@, @mountPoint@, and @type@ of a
-- file system created using Amazon Elastic File System.
--
-- 'buildBatchConfig', 'buildBatch_buildBatchConfig' - Undocumented member.
--
-- 'encryptionKey', 'buildBatch_encryptionKey' - The Key Management Service customer master key (CMK) to be used for
-- encrypting the batch build output artifacts.
--
-- You can use a cross-account KMS key to encrypt the build output
-- artifacts if your service role has permission to that key.
--
-- You can specify either the Amazon Resource Name (ARN) of the CMK or, if
-- available, the CMK\'s alias (using the format @alias\/\<alias-name>@).
--
-- 'logConfig', 'buildBatch_logConfig' - Undocumented member.
--
-- 'serviceRole', 'buildBatch_serviceRole' - The name of a service role used for builds in the batch.
--
-- 'complete', 'buildBatch_complete' - Indicates if the batch build is complete.
newBuildBatch ::
  BuildBatch
newBuildBatch :: BuildBatch
newBuildBatch =
  BuildBatch' :: Maybe [BuildBatchPhase]
-> Maybe [BuildArtifacts]
-> Maybe Int
-> Maybe Bool
-> Maybe Text
-> Maybe POSIX
-> Maybe BuildArtifacts
-> Maybe ProjectEnvironment
-> Maybe Text
-> Maybe [ProjectSourceVersion]
-> Maybe StatusType
-> Maybe Text
-> Maybe Integer
-> Maybe Int
-> Maybe ProjectCache
-> Maybe [ProjectSource]
-> Maybe Text
-> Maybe Text
-> Maybe VpcConfig
-> Maybe POSIX
-> Maybe Text
-> Maybe [BuildGroup]
-> Maybe ProjectSource
-> Maybe Text
-> Maybe [ProjectFileSystemLocation]
-> Maybe ProjectBuildBatchConfig
-> Maybe Text
-> Maybe LogsConfig
-> Maybe Text
-> Maybe Bool
-> BuildBatch
BuildBatch'
    { $sel:phases:BuildBatch' :: Maybe [BuildBatchPhase]
phases = Maybe [BuildBatchPhase]
forall a. Maybe a
Prelude.Nothing,
      $sel:secondaryArtifacts:BuildBatch' :: Maybe [BuildArtifacts]
secondaryArtifacts = Maybe [BuildArtifacts]
forall a. Maybe a
Prelude.Nothing,
      $sel:buildTimeoutInMinutes:BuildBatch' :: Maybe Int
buildTimeoutInMinutes = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:debugSessionEnabled:BuildBatch' :: Maybe Bool
debugSessionEnabled = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:arn:BuildBatch' :: Maybe Text
arn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:startTime:BuildBatch' :: Maybe POSIX
startTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:artifacts:BuildBatch' :: Maybe BuildArtifacts
artifacts = Maybe BuildArtifacts
forall a. Maybe a
Prelude.Nothing,
      $sel:environment:BuildBatch' :: Maybe ProjectEnvironment
environment = Maybe ProjectEnvironment
forall a. Maybe a
Prelude.Nothing,
      $sel:initiator:BuildBatch' :: Maybe Text
initiator = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:secondarySourceVersions:BuildBatch' :: Maybe [ProjectSourceVersion]
secondarySourceVersions = Maybe [ProjectSourceVersion]
forall a. Maybe a
Prelude.Nothing,
      $sel:buildBatchStatus:BuildBatch' :: Maybe StatusType
buildBatchStatus = Maybe StatusType
forall a. Maybe a
Prelude.Nothing,
      $sel:currentPhase:BuildBatch' :: Maybe Text
currentPhase = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:buildBatchNumber:BuildBatch' :: Maybe Integer
buildBatchNumber = Maybe Integer
forall a. Maybe a
Prelude.Nothing,
      $sel:queuedTimeoutInMinutes:BuildBatch' :: Maybe Int
queuedTimeoutInMinutes = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:cache:BuildBatch' :: Maybe ProjectCache
cache = Maybe ProjectCache
forall a. Maybe a
Prelude.Nothing,
      $sel:secondarySources:BuildBatch' :: Maybe [ProjectSource]
secondarySources = Maybe [ProjectSource]
forall a. Maybe a
Prelude.Nothing,
      $sel:sourceVersion:BuildBatch' :: Maybe Text
sourceVersion = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:resolvedSourceVersion:BuildBatch' :: Maybe Text
resolvedSourceVersion = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:vpcConfig:BuildBatch' :: Maybe VpcConfig
vpcConfig = Maybe VpcConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:endTime:BuildBatch' :: Maybe POSIX
endTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:projectName:BuildBatch' :: Maybe Text
projectName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:buildGroups:BuildBatch' :: Maybe [BuildGroup]
buildGroups = Maybe [BuildGroup]
forall a. Maybe a
Prelude.Nothing,
      $sel:source:BuildBatch' :: Maybe ProjectSource
source = Maybe ProjectSource
forall a. Maybe a
Prelude.Nothing,
      $sel:id:BuildBatch' :: Maybe Text
id = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:fileSystemLocations:BuildBatch' :: Maybe [ProjectFileSystemLocation]
fileSystemLocations = Maybe [ProjectFileSystemLocation]
forall a. Maybe a
Prelude.Nothing,
      $sel:buildBatchConfig:BuildBatch' :: Maybe ProjectBuildBatchConfig
buildBatchConfig = Maybe ProjectBuildBatchConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:encryptionKey:BuildBatch' :: Maybe Text
encryptionKey = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:logConfig:BuildBatch' :: Maybe LogsConfig
logConfig = Maybe LogsConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:serviceRole:BuildBatch' :: Maybe Text
serviceRole = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:complete:BuildBatch' :: Maybe Bool
complete = Maybe Bool
forall a. Maybe a
Prelude.Nothing
    }

-- | An array of @BuildBatchPhase@ objects the specify the phases of the
-- batch build.
buildBatch_phases :: Lens.Lens' BuildBatch (Prelude.Maybe [BuildBatchPhase])
buildBatch_phases :: (Maybe [BuildBatchPhase] -> f (Maybe [BuildBatchPhase]))
-> BuildBatch -> f BuildBatch
buildBatch_phases = (BuildBatch -> Maybe [BuildBatchPhase])
-> (BuildBatch -> Maybe [BuildBatchPhase] -> BuildBatch)
-> Lens
     BuildBatch
     BuildBatch
     (Maybe [BuildBatchPhase])
     (Maybe [BuildBatchPhase])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe [BuildBatchPhase]
phases :: Maybe [BuildBatchPhase]
$sel:phases:BuildBatch' :: BuildBatch -> Maybe [BuildBatchPhase]
phases} -> Maybe [BuildBatchPhase]
phases) (\s :: BuildBatch
s@BuildBatch' {} Maybe [BuildBatchPhase]
a -> BuildBatch
s {$sel:phases:BuildBatch' :: Maybe [BuildBatchPhase]
phases = Maybe [BuildBatchPhase]
a} :: BuildBatch) ((Maybe [BuildBatchPhase] -> f (Maybe [BuildBatchPhase]))
 -> BuildBatch -> f BuildBatch)
-> ((Maybe [BuildBatchPhase] -> f (Maybe [BuildBatchPhase]))
    -> Maybe [BuildBatchPhase] -> f (Maybe [BuildBatchPhase]))
-> (Maybe [BuildBatchPhase] -> f (Maybe [BuildBatchPhase]))
-> BuildBatch
-> f BuildBatch
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [BuildBatchPhase]
  [BuildBatchPhase]
  [BuildBatchPhase]
  [BuildBatchPhase]
-> Iso
     (Maybe [BuildBatchPhase])
     (Maybe [BuildBatchPhase])
     (Maybe [BuildBatchPhase])
     (Maybe [BuildBatchPhase])
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
  [BuildBatchPhase]
  [BuildBatchPhase]
  [BuildBatchPhase]
  [BuildBatchPhase]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | An array of @BuildArtifacts@ objects the define the build artifacts for
-- this batch build.
buildBatch_secondaryArtifacts :: Lens.Lens' BuildBatch (Prelude.Maybe [BuildArtifacts])
buildBatch_secondaryArtifacts :: (Maybe [BuildArtifacts] -> f (Maybe [BuildArtifacts]))
-> BuildBatch -> f BuildBatch
buildBatch_secondaryArtifacts = (BuildBatch -> Maybe [BuildArtifacts])
-> (BuildBatch -> Maybe [BuildArtifacts] -> BuildBatch)
-> Lens
     BuildBatch
     BuildBatch
     (Maybe [BuildArtifacts])
     (Maybe [BuildArtifacts])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe [BuildArtifacts]
secondaryArtifacts :: Maybe [BuildArtifacts]
$sel:secondaryArtifacts:BuildBatch' :: BuildBatch -> Maybe [BuildArtifacts]
secondaryArtifacts} -> Maybe [BuildArtifacts]
secondaryArtifacts) (\s :: BuildBatch
s@BuildBatch' {} Maybe [BuildArtifacts]
a -> BuildBatch
s {$sel:secondaryArtifacts:BuildBatch' :: Maybe [BuildArtifacts]
secondaryArtifacts = Maybe [BuildArtifacts]
a} :: BuildBatch) ((Maybe [BuildArtifacts] -> f (Maybe [BuildArtifacts]))
 -> BuildBatch -> f BuildBatch)
-> ((Maybe [BuildArtifacts] -> f (Maybe [BuildArtifacts]))
    -> Maybe [BuildArtifacts] -> f (Maybe [BuildArtifacts]))
-> (Maybe [BuildArtifacts] -> f (Maybe [BuildArtifacts]))
-> BuildBatch
-> f BuildBatch
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [BuildArtifacts] [BuildArtifacts] [BuildArtifacts] [BuildArtifacts]
-> Iso
     (Maybe [BuildArtifacts])
     (Maybe [BuildArtifacts])
     (Maybe [BuildArtifacts])
     (Maybe [BuildArtifacts])
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
  [BuildArtifacts] [BuildArtifacts] [BuildArtifacts] [BuildArtifacts]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Specifies the maximum amount of time, in minutes, that the build in a
-- batch must be completed in.
buildBatch_buildTimeoutInMinutes :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Int)
buildBatch_buildTimeoutInMinutes :: (Maybe Int -> f (Maybe Int)) -> BuildBatch -> f BuildBatch
buildBatch_buildTimeoutInMinutes = (BuildBatch -> Maybe Int)
-> (BuildBatch -> Maybe Int -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Int
buildTimeoutInMinutes :: Maybe Int
$sel:buildTimeoutInMinutes:BuildBatch' :: BuildBatch -> Maybe Int
buildTimeoutInMinutes} -> Maybe Int
buildTimeoutInMinutes) (\s :: BuildBatch
s@BuildBatch' {} Maybe Int
a -> BuildBatch
s {$sel:buildTimeoutInMinutes:BuildBatch' :: Maybe Int
buildTimeoutInMinutes = Maybe Int
a} :: BuildBatch)

-- | Specifies if session debugging is enabled for this batch build. For more
-- information, see
-- <https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html Viewing a running build in Session Manager>.
-- Batch session debugging is not supported for matrix batch builds.
buildBatch_debugSessionEnabled :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Bool)
buildBatch_debugSessionEnabled :: (Maybe Bool -> f (Maybe Bool)) -> BuildBatch -> f BuildBatch
buildBatch_debugSessionEnabled = (BuildBatch -> Maybe Bool)
-> (BuildBatch -> Maybe Bool -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Bool
debugSessionEnabled :: Maybe Bool
$sel:debugSessionEnabled:BuildBatch' :: BuildBatch -> Maybe Bool
debugSessionEnabled} -> Maybe Bool
debugSessionEnabled) (\s :: BuildBatch
s@BuildBatch' {} Maybe Bool
a -> BuildBatch
s {$sel:debugSessionEnabled:BuildBatch' :: Maybe Bool
debugSessionEnabled = Maybe Bool
a} :: BuildBatch)

-- | The ARN of the batch build.
buildBatch_arn :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Text)
buildBatch_arn :: (Maybe Text -> f (Maybe Text)) -> BuildBatch -> f BuildBatch
buildBatch_arn = (BuildBatch -> Maybe Text)
-> (BuildBatch -> Maybe Text -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Text
arn :: Maybe Text
$sel:arn:BuildBatch' :: BuildBatch -> Maybe Text
arn} -> Maybe Text
arn) (\s :: BuildBatch
s@BuildBatch' {} Maybe Text
a -> BuildBatch
s {$sel:arn:BuildBatch' :: Maybe Text
arn = Maybe Text
a} :: BuildBatch)

-- | The date and time that the batch build started.
buildBatch_startTime :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.UTCTime)
buildBatch_startTime :: (Maybe UTCTime -> f (Maybe UTCTime)) -> BuildBatch -> f BuildBatch
buildBatch_startTime = (BuildBatch -> Maybe POSIX)
-> (BuildBatch -> Maybe POSIX -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe POSIX
startTime :: Maybe POSIX
$sel:startTime:BuildBatch' :: BuildBatch -> Maybe POSIX
startTime} -> Maybe POSIX
startTime) (\s :: BuildBatch
s@BuildBatch' {} Maybe POSIX
a -> BuildBatch
s {$sel:startTime:BuildBatch' :: Maybe POSIX
startTime = Maybe POSIX
a} :: BuildBatch) ((Maybe POSIX -> f (Maybe POSIX)) -> BuildBatch -> f BuildBatch)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> BuildBatch
-> f BuildBatch
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | A @BuildArtifacts@ object the defines the build artifacts for this batch
-- build.
buildBatch_artifacts :: Lens.Lens' BuildBatch (Prelude.Maybe BuildArtifacts)
buildBatch_artifacts :: (Maybe BuildArtifacts -> f (Maybe BuildArtifacts))
-> BuildBatch -> f BuildBatch
buildBatch_artifacts = (BuildBatch -> Maybe BuildArtifacts)
-> (BuildBatch -> Maybe BuildArtifacts -> BuildBatch)
-> Lens
     BuildBatch BuildBatch (Maybe BuildArtifacts) (Maybe BuildArtifacts)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe BuildArtifacts
artifacts :: Maybe BuildArtifacts
$sel:artifacts:BuildBatch' :: BuildBatch -> Maybe BuildArtifacts
artifacts} -> Maybe BuildArtifacts
artifacts) (\s :: BuildBatch
s@BuildBatch' {} Maybe BuildArtifacts
a -> BuildBatch
s {$sel:artifacts:BuildBatch' :: Maybe BuildArtifacts
artifacts = Maybe BuildArtifacts
a} :: BuildBatch)

-- | Undocumented member.
buildBatch_environment :: Lens.Lens' BuildBatch (Prelude.Maybe ProjectEnvironment)
buildBatch_environment :: (Maybe ProjectEnvironment -> f (Maybe ProjectEnvironment))
-> BuildBatch -> f BuildBatch
buildBatch_environment = (BuildBatch -> Maybe ProjectEnvironment)
-> (BuildBatch -> Maybe ProjectEnvironment -> BuildBatch)
-> Lens
     BuildBatch
     BuildBatch
     (Maybe ProjectEnvironment)
     (Maybe ProjectEnvironment)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe ProjectEnvironment
environment :: Maybe ProjectEnvironment
$sel:environment:BuildBatch' :: BuildBatch -> Maybe ProjectEnvironment
environment} -> Maybe ProjectEnvironment
environment) (\s :: BuildBatch
s@BuildBatch' {} Maybe ProjectEnvironment
a -> BuildBatch
s {$sel:environment:BuildBatch' :: Maybe ProjectEnvironment
environment = Maybe ProjectEnvironment
a} :: BuildBatch)

-- | The entity that started the batch build. Valid values include:
--
-- -   If CodePipeline started the build, the pipeline\'s name (for
--     example, @codepipeline\/my-demo-pipeline@).
--
-- -   If an IAM user started the build, the user\'s name.
--
-- -   If the Jenkins plugin for CodeBuild started the build, the string
--     @CodeBuild-Jenkins-Plugin@.
buildBatch_initiator :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Text)
buildBatch_initiator :: (Maybe Text -> f (Maybe Text)) -> BuildBatch -> f BuildBatch
buildBatch_initiator = (BuildBatch -> Maybe Text)
-> (BuildBatch -> Maybe Text -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Text
initiator :: Maybe Text
$sel:initiator:BuildBatch' :: BuildBatch -> Maybe Text
initiator} -> Maybe Text
initiator) (\s :: BuildBatch
s@BuildBatch' {} Maybe Text
a -> BuildBatch
s {$sel:initiator:BuildBatch' :: Maybe Text
initiator = Maybe Text
a} :: BuildBatch)

-- | An array of @ProjectSourceVersion@ objects. Each @ProjectSourceVersion@
-- must be one of:
--
-- -   For CodeCommit: the commit ID, branch, or Git tag to use.
--
-- -   For GitHub: the commit ID, pull request ID, branch name, or tag name
--     that corresponds to the version of the source code you want to
--     build. If a pull request ID is specified, it must use the format
--     @pr\/pull-request-ID@ (for example, @pr\/25@). If a branch name is
--     specified, the branch\'s HEAD commit ID is used. If not specified,
--     the default branch\'s HEAD commit ID is used.
--
-- -   For Bitbucket: the commit ID, branch name, or tag name that
--     corresponds to the version of the source code you want to build. If
--     a branch name is specified, the branch\'s HEAD commit ID is used. If
--     not specified, the default branch\'s HEAD commit ID is used.
--
-- -   For Amazon S3: the version ID of the object that represents the
--     build input ZIP file to use.
buildBatch_secondarySourceVersions :: Lens.Lens' BuildBatch (Prelude.Maybe [ProjectSourceVersion])
buildBatch_secondarySourceVersions :: (Maybe [ProjectSourceVersion] -> f (Maybe [ProjectSourceVersion]))
-> BuildBatch -> f BuildBatch
buildBatch_secondarySourceVersions = (BuildBatch -> Maybe [ProjectSourceVersion])
-> (BuildBatch -> Maybe [ProjectSourceVersion] -> BuildBatch)
-> Lens
     BuildBatch
     BuildBatch
     (Maybe [ProjectSourceVersion])
     (Maybe [ProjectSourceVersion])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe [ProjectSourceVersion]
secondarySourceVersions :: Maybe [ProjectSourceVersion]
$sel:secondarySourceVersions:BuildBatch' :: BuildBatch -> Maybe [ProjectSourceVersion]
secondarySourceVersions} -> Maybe [ProjectSourceVersion]
secondarySourceVersions) (\s :: BuildBatch
s@BuildBatch' {} Maybe [ProjectSourceVersion]
a -> BuildBatch
s {$sel:secondarySourceVersions:BuildBatch' :: Maybe [ProjectSourceVersion]
secondarySourceVersions = Maybe [ProjectSourceVersion]
a} :: BuildBatch) ((Maybe [ProjectSourceVersion] -> f (Maybe [ProjectSourceVersion]))
 -> BuildBatch -> f BuildBatch)
-> ((Maybe [ProjectSourceVersion]
     -> f (Maybe [ProjectSourceVersion]))
    -> Maybe [ProjectSourceVersion]
    -> f (Maybe [ProjectSourceVersion]))
-> (Maybe [ProjectSourceVersion]
    -> f (Maybe [ProjectSourceVersion]))
-> BuildBatch
-> f BuildBatch
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ProjectSourceVersion]
  [ProjectSourceVersion]
  [ProjectSourceVersion]
  [ProjectSourceVersion]
-> Iso
     (Maybe [ProjectSourceVersion])
     (Maybe [ProjectSourceVersion])
     (Maybe [ProjectSourceVersion])
     (Maybe [ProjectSourceVersion])
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
  [ProjectSourceVersion]
  [ProjectSourceVersion]
  [ProjectSourceVersion]
  [ProjectSourceVersion]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The status of the batch build.
buildBatch_buildBatchStatus :: Lens.Lens' BuildBatch (Prelude.Maybe StatusType)
buildBatch_buildBatchStatus :: (Maybe StatusType -> f (Maybe StatusType))
-> BuildBatch -> f BuildBatch
buildBatch_buildBatchStatus = (BuildBatch -> Maybe StatusType)
-> (BuildBatch -> Maybe StatusType -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe StatusType) (Maybe StatusType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe StatusType
buildBatchStatus :: Maybe StatusType
$sel:buildBatchStatus:BuildBatch' :: BuildBatch -> Maybe StatusType
buildBatchStatus} -> Maybe StatusType
buildBatchStatus) (\s :: BuildBatch
s@BuildBatch' {} Maybe StatusType
a -> BuildBatch
s {$sel:buildBatchStatus:BuildBatch' :: Maybe StatusType
buildBatchStatus = Maybe StatusType
a} :: BuildBatch)

-- | The current phase of the batch build.
buildBatch_currentPhase :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Text)
buildBatch_currentPhase :: (Maybe Text -> f (Maybe Text)) -> BuildBatch -> f BuildBatch
buildBatch_currentPhase = (BuildBatch -> Maybe Text)
-> (BuildBatch -> Maybe Text -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Text
currentPhase :: Maybe Text
$sel:currentPhase:BuildBatch' :: BuildBatch -> Maybe Text
currentPhase} -> Maybe Text
currentPhase) (\s :: BuildBatch
s@BuildBatch' {} Maybe Text
a -> BuildBatch
s {$sel:currentPhase:BuildBatch' :: Maybe Text
currentPhase = Maybe Text
a} :: BuildBatch)

-- | The number of the batch build. For each project, the @buildBatchNumber@
-- of its first batch build is @1@. The @buildBatchNumber@ of each
-- subsequent batch build is incremented by @1@. If a batch build is
-- deleted, the @buildBatchNumber@ of other batch builds does not change.
buildBatch_buildBatchNumber :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Integer)
buildBatch_buildBatchNumber :: (Maybe Integer -> f (Maybe Integer)) -> BuildBatch -> f BuildBatch
buildBatch_buildBatchNumber = (BuildBatch -> Maybe Integer)
-> (BuildBatch -> Maybe Integer -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Integer) (Maybe Integer)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Integer
buildBatchNumber :: Maybe Integer
$sel:buildBatchNumber:BuildBatch' :: BuildBatch -> Maybe Integer
buildBatchNumber} -> Maybe Integer
buildBatchNumber) (\s :: BuildBatch
s@BuildBatch' {} Maybe Integer
a -> BuildBatch
s {$sel:buildBatchNumber:BuildBatch' :: Maybe Integer
buildBatchNumber = Maybe Integer
a} :: BuildBatch)

-- | Specifies the amount of time, in minutes, that the batch build is
-- allowed to be queued before it times out.
buildBatch_queuedTimeoutInMinutes :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Int)
buildBatch_queuedTimeoutInMinutes :: (Maybe Int -> f (Maybe Int)) -> BuildBatch -> f BuildBatch
buildBatch_queuedTimeoutInMinutes = (BuildBatch -> Maybe Int)
-> (BuildBatch -> Maybe Int -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Int
queuedTimeoutInMinutes :: Maybe Int
$sel:queuedTimeoutInMinutes:BuildBatch' :: BuildBatch -> Maybe Int
queuedTimeoutInMinutes} -> Maybe Int
queuedTimeoutInMinutes) (\s :: BuildBatch
s@BuildBatch' {} Maybe Int
a -> BuildBatch
s {$sel:queuedTimeoutInMinutes:BuildBatch' :: Maybe Int
queuedTimeoutInMinutes = Maybe Int
a} :: BuildBatch)

-- | Undocumented member.
buildBatch_cache :: Lens.Lens' BuildBatch (Prelude.Maybe ProjectCache)
buildBatch_cache :: (Maybe ProjectCache -> f (Maybe ProjectCache))
-> BuildBatch -> f BuildBatch
buildBatch_cache = (BuildBatch -> Maybe ProjectCache)
-> (BuildBatch -> Maybe ProjectCache -> BuildBatch)
-> Lens
     BuildBatch BuildBatch (Maybe ProjectCache) (Maybe ProjectCache)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe ProjectCache
cache :: Maybe ProjectCache
$sel:cache:BuildBatch' :: BuildBatch -> Maybe ProjectCache
cache} -> Maybe ProjectCache
cache) (\s :: BuildBatch
s@BuildBatch' {} Maybe ProjectCache
a -> BuildBatch
s {$sel:cache:BuildBatch' :: Maybe ProjectCache
cache = Maybe ProjectCache
a} :: BuildBatch)

-- | An array of @ProjectSource@ objects that define the sources for the
-- batch build.
buildBatch_secondarySources :: Lens.Lens' BuildBatch (Prelude.Maybe [ProjectSource])
buildBatch_secondarySources :: (Maybe [ProjectSource] -> f (Maybe [ProjectSource]))
-> BuildBatch -> f BuildBatch
buildBatch_secondarySources = (BuildBatch -> Maybe [ProjectSource])
-> (BuildBatch -> Maybe [ProjectSource] -> BuildBatch)
-> Lens
     BuildBatch
     BuildBatch
     (Maybe [ProjectSource])
     (Maybe [ProjectSource])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe [ProjectSource]
secondarySources :: Maybe [ProjectSource]
$sel:secondarySources:BuildBatch' :: BuildBatch -> Maybe [ProjectSource]
secondarySources} -> Maybe [ProjectSource]
secondarySources) (\s :: BuildBatch
s@BuildBatch' {} Maybe [ProjectSource]
a -> BuildBatch
s {$sel:secondarySources:BuildBatch' :: Maybe [ProjectSource]
secondarySources = Maybe [ProjectSource]
a} :: BuildBatch) ((Maybe [ProjectSource] -> f (Maybe [ProjectSource]))
 -> BuildBatch -> f BuildBatch)
-> ((Maybe [ProjectSource] -> f (Maybe [ProjectSource]))
    -> Maybe [ProjectSource] -> f (Maybe [ProjectSource]))
-> (Maybe [ProjectSource] -> f (Maybe [ProjectSource]))
-> BuildBatch
-> f BuildBatch
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ProjectSource] [ProjectSource] [ProjectSource] [ProjectSource]
-> Iso
     (Maybe [ProjectSource])
     (Maybe [ProjectSource])
     (Maybe [ProjectSource])
     (Maybe [ProjectSource])
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
  [ProjectSource] [ProjectSource] [ProjectSource] [ProjectSource]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The identifier of the version of the source code to be built.
buildBatch_sourceVersion :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Text)
buildBatch_sourceVersion :: (Maybe Text -> f (Maybe Text)) -> BuildBatch -> f BuildBatch
buildBatch_sourceVersion = (BuildBatch -> Maybe Text)
-> (BuildBatch -> Maybe Text -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Text
sourceVersion :: Maybe Text
$sel:sourceVersion:BuildBatch' :: BuildBatch -> Maybe Text
sourceVersion} -> Maybe Text
sourceVersion) (\s :: BuildBatch
s@BuildBatch' {} Maybe Text
a -> BuildBatch
s {$sel:sourceVersion:BuildBatch' :: Maybe Text
sourceVersion = Maybe Text
a} :: BuildBatch)

-- | The identifier of the resolved version of this batch build\'s source
-- code.
--
-- -   For CodeCommit, GitHub, GitHub Enterprise, and BitBucket, the commit
--     ID.
--
-- -   For CodePipeline, the source revision provided by CodePipeline.
--
-- -   For Amazon S3, this does not apply.
buildBatch_resolvedSourceVersion :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Text)
buildBatch_resolvedSourceVersion :: (Maybe Text -> f (Maybe Text)) -> BuildBatch -> f BuildBatch
buildBatch_resolvedSourceVersion = (BuildBatch -> Maybe Text)
-> (BuildBatch -> Maybe Text -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Text
resolvedSourceVersion :: Maybe Text
$sel:resolvedSourceVersion:BuildBatch' :: BuildBatch -> Maybe Text
resolvedSourceVersion} -> Maybe Text
resolvedSourceVersion) (\s :: BuildBatch
s@BuildBatch' {} Maybe Text
a -> BuildBatch
s {$sel:resolvedSourceVersion:BuildBatch' :: Maybe Text
resolvedSourceVersion = Maybe Text
a} :: BuildBatch)

-- | Undocumented member.
buildBatch_vpcConfig :: Lens.Lens' BuildBatch (Prelude.Maybe VpcConfig)
buildBatch_vpcConfig :: (Maybe VpcConfig -> f (Maybe VpcConfig))
-> BuildBatch -> f BuildBatch
buildBatch_vpcConfig = (BuildBatch -> Maybe VpcConfig)
-> (BuildBatch -> Maybe VpcConfig -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe VpcConfig) (Maybe VpcConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe VpcConfig
vpcConfig :: Maybe VpcConfig
$sel:vpcConfig:BuildBatch' :: BuildBatch -> Maybe VpcConfig
vpcConfig} -> Maybe VpcConfig
vpcConfig) (\s :: BuildBatch
s@BuildBatch' {} Maybe VpcConfig
a -> BuildBatch
s {$sel:vpcConfig:BuildBatch' :: Maybe VpcConfig
vpcConfig = Maybe VpcConfig
a} :: BuildBatch)

-- | The date and time that the batch build ended.
buildBatch_endTime :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.UTCTime)
buildBatch_endTime :: (Maybe UTCTime -> f (Maybe UTCTime)) -> BuildBatch -> f BuildBatch
buildBatch_endTime = (BuildBatch -> Maybe POSIX)
-> (BuildBatch -> Maybe POSIX -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe POSIX
endTime :: Maybe POSIX
$sel:endTime:BuildBatch' :: BuildBatch -> Maybe POSIX
endTime} -> Maybe POSIX
endTime) (\s :: BuildBatch
s@BuildBatch' {} Maybe POSIX
a -> BuildBatch
s {$sel:endTime:BuildBatch' :: Maybe POSIX
endTime = Maybe POSIX
a} :: BuildBatch) ((Maybe POSIX -> f (Maybe POSIX)) -> BuildBatch -> f BuildBatch)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> BuildBatch
-> f BuildBatch
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The name of the batch build project.
buildBatch_projectName :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Text)
buildBatch_projectName :: (Maybe Text -> f (Maybe Text)) -> BuildBatch -> f BuildBatch
buildBatch_projectName = (BuildBatch -> Maybe Text)
-> (BuildBatch -> Maybe Text -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Text
projectName :: Maybe Text
$sel:projectName:BuildBatch' :: BuildBatch -> Maybe Text
projectName} -> Maybe Text
projectName) (\s :: BuildBatch
s@BuildBatch' {} Maybe Text
a -> BuildBatch
s {$sel:projectName:BuildBatch' :: Maybe Text
projectName = Maybe Text
a} :: BuildBatch)

-- | An array of @BuildGroup@ objects that define the build groups for the
-- batch build.
buildBatch_buildGroups :: Lens.Lens' BuildBatch (Prelude.Maybe [BuildGroup])
buildBatch_buildGroups :: (Maybe [BuildGroup] -> f (Maybe [BuildGroup]))
-> BuildBatch -> f BuildBatch
buildBatch_buildGroups = (BuildBatch -> Maybe [BuildGroup])
-> (BuildBatch -> Maybe [BuildGroup] -> BuildBatch)
-> Lens
     BuildBatch BuildBatch (Maybe [BuildGroup]) (Maybe [BuildGroup])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe [BuildGroup]
buildGroups :: Maybe [BuildGroup]
$sel:buildGroups:BuildBatch' :: BuildBatch -> Maybe [BuildGroup]
buildGroups} -> Maybe [BuildGroup]
buildGroups) (\s :: BuildBatch
s@BuildBatch' {} Maybe [BuildGroup]
a -> BuildBatch
s {$sel:buildGroups:BuildBatch' :: Maybe [BuildGroup]
buildGroups = Maybe [BuildGroup]
a} :: BuildBatch) ((Maybe [BuildGroup] -> f (Maybe [BuildGroup]))
 -> BuildBatch -> f BuildBatch)
-> ((Maybe [BuildGroup] -> f (Maybe [BuildGroup]))
    -> Maybe [BuildGroup] -> f (Maybe [BuildGroup]))
-> (Maybe [BuildGroup] -> f (Maybe [BuildGroup]))
-> BuildBatch
-> f BuildBatch
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [BuildGroup] [BuildGroup] [BuildGroup] [BuildGroup]
-> Iso
     (Maybe [BuildGroup])
     (Maybe [BuildGroup])
     (Maybe [BuildGroup])
     (Maybe [BuildGroup])
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 [BuildGroup] [BuildGroup] [BuildGroup] [BuildGroup]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Undocumented member.
buildBatch_source :: Lens.Lens' BuildBatch (Prelude.Maybe ProjectSource)
buildBatch_source :: (Maybe ProjectSource -> f (Maybe ProjectSource))
-> BuildBatch -> f BuildBatch
buildBatch_source = (BuildBatch -> Maybe ProjectSource)
-> (BuildBatch -> Maybe ProjectSource -> BuildBatch)
-> Lens
     BuildBatch BuildBatch (Maybe ProjectSource) (Maybe ProjectSource)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe ProjectSource
source :: Maybe ProjectSource
$sel:source:BuildBatch' :: BuildBatch -> Maybe ProjectSource
source} -> Maybe ProjectSource
source) (\s :: BuildBatch
s@BuildBatch' {} Maybe ProjectSource
a -> BuildBatch
s {$sel:source:BuildBatch' :: Maybe ProjectSource
source = Maybe ProjectSource
a} :: BuildBatch)

-- | The identifier of the batch build.
buildBatch_id :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Text)
buildBatch_id :: (Maybe Text -> f (Maybe Text)) -> BuildBatch -> f BuildBatch
buildBatch_id = (BuildBatch -> Maybe Text)
-> (BuildBatch -> Maybe Text -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Text
id :: Maybe Text
$sel:id:BuildBatch' :: BuildBatch -> Maybe Text
id} -> Maybe Text
id) (\s :: BuildBatch
s@BuildBatch' {} Maybe Text
a -> BuildBatch
s {$sel:id:BuildBatch' :: Maybe Text
id = Maybe Text
a} :: BuildBatch)

-- | An array of @ProjectFileSystemLocation@ objects for the batch build
-- project. A @ProjectFileSystemLocation@ object specifies the
-- @identifier@, @location@, @mountOptions@, @mountPoint@, and @type@ of a
-- file system created using Amazon Elastic File System.
buildBatch_fileSystemLocations :: Lens.Lens' BuildBatch (Prelude.Maybe [ProjectFileSystemLocation])
buildBatch_fileSystemLocations :: (Maybe [ProjectFileSystemLocation]
 -> f (Maybe [ProjectFileSystemLocation]))
-> BuildBatch -> f BuildBatch
buildBatch_fileSystemLocations = (BuildBatch -> Maybe [ProjectFileSystemLocation])
-> (BuildBatch -> Maybe [ProjectFileSystemLocation] -> BuildBatch)
-> Lens
     BuildBatch
     BuildBatch
     (Maybe [ProjectFileSystemLocation])
     (Maybe [ProjectFileSystemLocation])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe [ProjectFileSystemLocation]
fileSystemLocations :: Maybe [ProjectFileSystemLocation]
$sel:fileSystemLocations:BuildBatch' :: BuildBatch -> Maybe [ProjectFileSystemLocation]
fileSystemLocations} -> Maybe [ProjectFileSystemLocation]
fileSystemLocations) (\s :: BuildBatch
s@BuildBatch' {} Maybe [ProjectFileSystemLocation]
a -> BuildBatch
s {$sel:fileSystemLocations:BuildBatch' :: Maybe [ProjectFileSystemLocation]
fileSystemLocations = Maybe [ProjectFileSystemLocation]
a} :: BuildBatch) ((Maybe [ProjectFileSystemLocation]
  -> f (Maybe [ProjectFileSystemLocation]))
 -> BuildBatch -> f BuildBatch)
-> ((Maybe [ProjectFileSystemLocation]
     -> f (Maybe [ProjectFileSystemLocation]))
    -> Maybe [ProjectFileSystemLocation]
    -> f (Maybe [ProjectFileSystemLocation]))
-> (Maybe [ProjectFileSystemLocation]
    -> f (Maybe [ProjectFileSystemLocation]))
-> BuildBatch
-> f BuildBatch
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ProjectFileSystemLocation]
  [ProjectFileSystemLocation]
  [ProjectFileSystemLocation]
  [ProjectFileSystemLocation]
-> Iso
     (Maybe [ProjectFileSystemLocation])
     (Maybe [ProjectFileSystemLocation])
     (Maybe [ProjectFileSystemLocation])
     (Maybe [ProjectFileSystemLocation])
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
  [ProjectFileSystemLocation]
  [ProjectFileSystemLocation]
  [ProjectFileSystemLocation]
  [ProjectFileSystemLocation]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Undocumented member.
buildBatch_buildBatchConfig :: Lens.Lens' BuildBatch (Prelude.Maybe ProjectBuildBatchConfig)
buildBatch_buildBatchConfig :: (Maybe ProjectBuildBatchConfig
 -> f (Maybe ProjectBuildBatchConfig))
-> BuildBatch -> f BuildBatch
buildBatch_buildBatchConfig = (BuildBatch -> Maybe ProjectBuildBatchConfig)
-> (BuildBatch -> Maybe ProjectBuildBatchConfig -> BuildBatch)
-> Lens
     BuildBatch
     BuildBatch
     (Maybe ProjectBuildBatchConfig)
     (Maybe ProjectBuildBatchConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe ProjectBuildBatchConfig
buildBatchConfig :: Maybe ProjectBuildBatchConfig
$sel:buildBatchConfig:BuildBatch' :: BuildBatch -> Maybe ProjectBuildBatchConfig
buildBatchConfig} -> Maybe ProjectBuildBatchConfig
buildBatchConfig) (\s :: BuildBatch
s@BuildBatch' {} Maybe ProjectBuildBatchConfig
a -> BuildBatch
s {$sel:buildBatchConfig:BuildBatch' :: Maybe ProjectBuildBatchConfig
buildBatchConfig = Maybe ProjectBuildBatchConfig
a} :: BuildBatch)

-- | The Key Management Service customer master key (CMK) to be used for
-- encrypting the batch build output artifacts.
--
-- You can use a cross-account KMS key to encrypt the build output
-- artifacts if your service role has permission to that key.
--
-- You can specify either the Amazon Resource Name (ARN) of the CMK or, if
-- available, the CMK\'s alias (using the format @alias\/\<alias-name>@).
buildBatch_encryptionKey :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Text)
buildBatch_encryptionKey :: (Maybe Text -> f (Maybe Text)) -> BuildBatch -> f BuildBatch
buildBatch_encryptionKey = (BuildBatch -> Maybe Text)
-> (BuildBatch -> Maybe Text -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Text
encryptionKey :: Maybe Text
$sel:encryptionKey:BuildBatch' :: BuildBatch -> Maybe Text
encryptionKey} -> Maybe Text
encryptionKey) (\s :: BuildBatch
s@BuildBatch' {} Maybe Text
a -> BuildBatch
s {$sel:encryptionKey:BuildBatch' :: Maybe Text
encryptionKey = Maybe Text
a} :: BuildBatch)

-- | Undocumented member.
buildBatch_logConfig :: Lens.Lens' BuildBatch (Prelude.Maybe LogsConfig)
buildBatch_logConfig :: (Maybe LogsConfig -> f (Maybe LogsConfig))
-> BuildBatch -> f BuildBatch
buildBatch_logConfig = (BuildBatch -> Maybe LogsConfig)
-> (BuildBatch -> Maybe LogsConfig -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe LogsConfig) (Maybe LogsConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe LogsConfig
logConfig :: Maybe LogsConfig
$sel:logConfig:BuildBatch' :: BuildBatch -> Maybe LogsConfig
logConfig} -> Maybe LogsConfig
logConfig) (\s :: BuildBatch
s@BuildBatch' {} Maybe LogsConfig
a -> BuildBatch
s {$sel:logConfig:BuildBatch' :: Maybe LogsConfig
logConfig = Maybe LogsConfig
a} :: BuildBatch)

-- | The name of a service role used for builds in the batch.
buildBatch_serviceRole :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Text)
buildBatch_serviceRole :: (Maybe Text -> f (Maybe Text)) -> BuildBatch -> f BuildBatch
buildBatch_serviceRole = (BuildBatch -> Maybe Text)
-> (BuildBatch -> Maybe Text -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Text
serviceRole :: Maybe Text
$sel:serviceRole:BuildBatch' :: BuildBatch -> Maybe Text
serviceRole} -> Maybe Text
serviceRole) (\s :: BuildBatch
s@BuildBatch' {} Maybe Text
a -> BuildBatch
s {$sel:serviceRole:BuildBatch' :: Maybe Text
serviceRole = Maybe Text
a} :: BuildBatch)

-- | Indicates if the batch build is complete.
buildBatch_complete :: Lens.Lens' BuildBatch (Prelude.Maybe Prelude.Bool)
buildBatch_complete :: (Maybe Bool -> f (Maybe Bool)) -> BuildBatch -> f BuildBatch
buildBatch_complete = (BuildBatch -> Maybe Bool)
-> (BuildBatch -> Maybe Bool -> BuildBatch)
-> Lens BuildBatch BuildBatch (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BuildBatch' {Maybe Bool
complete :: Maybe Bool
$sel:complete:BuildBatch' :: BuildBatch -> Maybe Bool
complete} -> Maybe Bool
complete) (\s :: BuildBatch
s@BuildBatch' {} Maybe Bool
a -> BuildBatch
s {$sel:complete:BuildBatch' :: Maybe Bool
complete = Maybe Bool
a} :: BuildBatch)

instance Core.FromJSON BuildBatch where
  parseJSON :: Value -> Parser BuildBatch
parseJSON =
    String
-> (Object -> Parser BuildBatch) -> Value -> Parser BuildBatch
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"BuildBatch"
      ( \Object
x ->
          Maybe [BuildBatchPhase]
-> Maybe [BuildArtifacts]
-> Maybe Int
-> Maybe Bool
-> Maybe Text
-> Maybe POSIX
-> Maybe BuildArtifacts
-> Maybe ProjectEnvironment
-> Maybe Text
-> Maybe [ProjectSourceVersion]
-> Maybe StatusType
-> Maybe Text
-> Maybe Integer
-> Maybe Int
-> Maybe ProjectCache
-> Maybe [ProjectSource]
-> Maybe Text
-> Maybe Text
-> Maybe VpcConfig
-> Maybe POSIX
-> Maybe Text
-> Maybe [BuildGroup]
-> Maybe ProjectSource
-> Maybe Text
-> Maybe [ProjectFileSystemLocation]
-> Maybe ProjectBuildBatchConfig
-> Maybe Text
-> Maybe LogsConfig
-> Maybe Text
-> Maybe Bool
-> BuildBatch
BuildBatch'
            (Maybe [BuildBatchPhase]
 -> Maybe [BuildArtifacts]
 -> Maybe Int
 -> Maybe Bool
 -> Maybe Text
 -> Maybe POSIX
 -> Maybe BuildArtifacts
 -> Maybe ProjectEnvironment
 -> Maybe Text
 -> Maybe [ProjectSourceVersion]
 -> Maybe StatusType
 -> Maybe Text
 -> Maybe Integer
 -> Maybe Int
 -> Maybe ProjectCache
 -> Maybe [ProjectSource]
 -> Maybe Text
 -> Maybe Text
 -> Maybe VpcConfig
 -> Maybe POSIX
 -> Maybe Text
 -> Maybe [BuildGroup]
 -> Maybe ProjectSource
 -> Maybe Text
 -> Maybe [ProjectFileSystemLocation]
 -> Maybe ProjectBuildBatchConfig
 -> Maybe Text
 -> Maybe LogsConfig
 -> Maybe Text
 -> Maybe Bool
 -> BuildBatch)
-> Parser (Maybe [BuildBatchPhase])
-> Parser
     (Maybe [BuildArtifacts]
      -> Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe BuildArtifacts
      -> Maybe ProjectEnvironment
      -> Maybe Text
      -> Maybe [ProjectSourceVersion]
      -> Maybe StatusType
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe (Maybe [BuildBatchPhase]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"phases" Parser (Maybe (Maybe [BuildBatchPhase]))
-> Maybe [BuildBatchPhase] -> Parser (Maybe [BuildBatchPhase])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [BuildBatchPhase]
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe [BuildArtifacts]
   -> Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe BuildArtifacts
   -> Maybe ProjectEnvironment
   -> Maybe Text
   -> Maybe [ProjectSourceVersion]
   -> Maybe StatusType
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe [BuildArtifacts])
-> Parser
     (Maybe Int
      -> Maybe Bool
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe BuildArtifacts
      -> Maybe ProjectEnvironment
      -> Maybe Text
      -> Maybe [ProjectSourceVersion]
      -> Maybe StatusType
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [BuildArtifacts]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"secondaryArtifacts"
                            Parser (Maybe (Maybe [BuildArtifacts]))
-> Maybe [BuildArtifacts] -> Parser (Maybe [BuildArtifacts])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [BuildArtifacts]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Int
   -> Maybe Bool
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe BuildArtifacts
   -> Maybe ProjectEnvironment
   -> Maybe Text
   -> Maybe [ProjectSourceVersion]
   -> Maybe StatusType
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe POSIX
      -> Maybe BuildArtifacts
      -> Maybe ProjectEnvironment
      -> Maybe Text
      -> Maybe [ProjectSourceVersion]
      -> Maybe StatusType
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"buildTimeoutInMinutes")
            Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe POSIX
   -> Maybe BuildArtifacts
   -> Maybe ProjectEnvironment
   -> Maybe Text
   -> Maybe [ProjectSourceVersion]
   -> Maybe StatusType
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe POSIX
      -> Maybe BuildArtifacts
      -> Maybe ProjectEnvironment
      -> Maybe Text
      -> Maybe [ProjectSourceVersion]
      -> Maybe StatusType
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"debugSessionEnabled")
            Parser
  (Maybe Text
   -> Maybe POSIX
   -> Maybe BuildArtifacts
   -> Maybe ProjectEnvironment
   -> Maybe Text
   -> Maybe [ProjectSourceVersion]
   -> Maybe StatusType
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe Text)
-> Parser
     (Maybe POSIX
      -> Maybe BuildArtifacts
      -> Maybe ProjectEnvironment
      -> Maybe Text
      -> Maybe [ProjectSourceVersion]
      -> Maybe StatusType
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => 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
"arn")
            Parser
  (Maybe POSIX
   -> Maybe BuildArtifacts
   -> Maybe ProjectEnvironment
   -> Maybe Text
   -> Maybe [ProjectSourceVersion]
   -> Maybe StatusType
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe BuildArtifacts
      -> Maybe ProjectEnvironment
      -> Maybe Text
      -> Maybe [ProjectSourceVersion]
      -> Maybe StatusType
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"startTime")
            Parser
  (Maybe BuildArtifacts
   -> Maybe ProjectEnvironment
   -> Maybe Text
   -> Maybe [ProjectSourceVersion]
   -> Maybe StatusType
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe BuildArtifacts)
-> Parser
     (Maybe ProjectEnvironment
      -> Maybe Text
      -> Maybe [ProjectSourceVersion]
      -> Maybe StatusType
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BuildArtifacts)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"artifacts")
            Parser
  (Maybe ProjectEnvironment
   -> Maybe Text
   -> Maybe [ProjectSourceVersion]
   -> Maybe StatusType
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe ProjectEnvironment)
-> Parser
     (Maybe Text
      -> Maybe [ProjectSourceVersion]
      -> Maybe StatusType
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ProjectEnvironment)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"environment")
            Parser
  (Maybe Text
   -> Maybe [ProjectSourceVersion]
   -> Maybe StatusType
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe Text)
-> Parser
     (Maybe [ProjectSourceVersion]
      -> Maybe StatusType
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => 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
"initiator")
            Parser
  (Maybe [ProjectSourceVersion]
   -> Maybe StatusType
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe [ProjectSourceVersion])
-> Parser
     (Maybe StatusType
      -> Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [ProjectSourceVersion]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"secondarySourceVersions"
                            Parser (Maybe (Maybe [ProjectSourceVersion]))
-> Maybe [ProjectSourceVersion]
-> Parser (Maybe [ProjectSourceVersion])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [ProjectSourceVersion]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe StatusType
   -> Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe StatusType)
-> Parser
     (Maybe Text
      -> Maybe Integer
      -> Maybe Int
      -> Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe StatusType)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"buildBatchStatus")
            Parser
  (Maybe Text
   -> Maybe Integer
   -> Maybe Int
   -> Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe Text)
-> Parser
     (Maybe Integer
      -> Maybe Int
      -> Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => 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
"currentPhase")
            Parser
  (Maybe Integer
   -> Maybe Int
   -> Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe Integer)
-> Parser
     (Maybe Int
      -> Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"buildBatchNumber")
            Parser
  (Maybe Int
   -> Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe Int)
-> Parser
     (Maybe ProjectCache
      -> Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"queuedTimeoutInMinutes")
            Parser
  (Maybe ProjectCache
   -> Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe ProjectCache)
-> Parser
     (Maybe [ProjectSource]
      -> Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ProjectCache)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"cache")
            Parser
  (Maybe [ProjectSource]
   -> Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe [ProjectSource])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [ProjectSource]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"secondarySources"
                            Parser (Maybe (Maybe [ProjectSource]))
-> Maybe [ProjectSource] -> Parser (Maybe [ProjectSource])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [ProjectSource]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => 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
"sourceVersion")
            Parser
  (Maybe Text
   -> Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe Text)
-> Parser
     (Maybe VpcConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => 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
"resolvedSourceVersion")
            Parser
  (Maybe VpcConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe VpcConfig)
-> Parser
     (Maybe POSIX
      -> Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe VpcConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"vpcConfig")
            Parser
  (Maybe POSIX
   -> Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe Text
      -> Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"endTime")
            Parser
  (Maybe Text
   -> Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe Text)
-> Parser
     (Maybe [BuildGroup]
      -> Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => 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
"projectName")
            Parser
  (Maybe [BuildGroup]
   -> Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe [BuildGroup])
-> Parser
     (Maybe ProjectSource
      -> Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [BuildGroup]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"buildGroups" Parser (Maybe (Maybe [BuildGroup]))
-> Maybe [BuildGroup] -> Parser (Maybe [BuildGroup])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [BuildGroup]
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe ProjectSource
   -> Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe ProjectSource)
-> Parser
     (Maybe Text
      -> Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ProjectSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"source")
            Parser
  (Maybe Text
   -> Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe Text)
-> Parser
     (Maybe [ProjectFileSystemLocation]
      -> Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => 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
"id")
            Parser
  (Maybe [ProjectFileSystemLocation]
   -> Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe [ProjectFileSystemLocation])
-> Parser
     (Maybe ProjectBuildBatchConfig
      -> Maybe Text
      -> Maybe LogsConfig
      -> Maybe Text
      -> Maybe Bool
      -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text -> Parser (Maybe (Maybe [ProjectFileSystemLocation]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"fileSystemLocations"
                            Parser (Maybe (Maybe [ProjectFileSystemLocation]))
-> Maybe [ProjectFileSystemLocation]
-> Parser (Maybe [ProjectFileSystemLocation])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [ProjectFileSystemLocation]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe ProjectBuildBatchConfig
   -> Maybe Text
   -> Maybe LogsConfig
   -> Maybe Text
   -> Maybe Bool
   -> BuildBatch)
-> Parser (Maybe ProjectBuildBatchConfig)
-> Parser
     (Maybe Text
      -> Maybe LogsConfig -> Maybe Text -> Maybe Bool -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ProjectBuildBatchConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"buildBatchConfig")
            Parser
  (Maybe Text
   -> Maybe LogsConfig -> Maybe Text -> Maybe Bool -> BuildBatch)
-> Parser (Maybe Text)
-> Parser
     (Maybe LogsConfig -> Maybe Text -> Maybe Bool -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => 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
"encryptionKey")
            Parser (Maybe LogsConfig -> Maybe Text -> Maybe Bool -> BuildBatch)
-> Parser (Maybe LogsConfig)
-> Parser (Maybe Text -> Maybe Bool -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe LogsConfig)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"logConfig")
            Parser (Maybe Text -> Maybe Bool -> BuildBatch)
-> Parser (Maybe Text) -> Parser (Maybe Bool -> BuildBatch)
forall (f :: * -> *) a b. Applicative f => 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
"serviceRole")
            Parser (Maybe Bool -> BuildBatch)
-> Parser (Maybe Bool) -> Parser BuildBatch
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"complete")
      )

instance Prelude.Hashable BuildBatch

instance Prelude.NFData BuildBatch