{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# 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.StartBuildBatch
-- 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)
--
-- Starts a batch build for a project.
module Amazonka.CodeBuild.StartBuildBatch
  ( -- * Creating a Request
    StartBuildBatch (..),
    newStartBuildBatch,

    -- * Request Lenses
    startBuildBatch_encryptionKeyOverride,
    startBuildBatch_sourceLocationOverride,
    startBuildBatch_buildBatchConfigOverride,
    startBuildBatch_environmentVariablesOverride,
    startBuildBatch_idempotencyToken,
    startBuildBatch_debugSessionEnabled,
    startBuildBatch_registryCredentialOverride,
    startBuildBatch_serviceRoleOverride,
    startBuildBatch_cacheOverride,
    startBuildBatch_queuedTimeoutInMinutesOverride,
    startBuildBatch_secondarySourcesOverride,
    startBuildBatch_gitCloneDepthOverride,
    startBuildBatch_imagePullCredentialsTypeOverride,
    startBuildBatch_logsConfigOverride,
    startBuildBatch_sourceAuthOverride,
    startBuildBatch_gitSubmodulesConfigOverride,
    startBuildBatch_environmentTypeOverride,
    startBuildBatch_certificateOverride,
    startBuildBatch_computeTypeOverride,
    startBuildBatch_reportBuildBatchStatusOverride,
    startBuildBatch_privilegedModeOverride,
    startBuildBatch_sourceVersion,
    startBuildBatch_buildspecOverride,
    startBuildBatch_secondarySourcesVersionOverride,
    startBuildBatch_insecureSslOverride,
    startBuildBatch_imageOverride,
    startBuildBatch_secondaryArtifactsOverride,
    startBuildBatch_buildTimeoutInMinutesOverride,
    startBuildBatch_artifactsOverride,
    startBuildBatch_sourceTypeOverride,
    startBuildBatch_projectName,

    -- * Destructuring the Response
    StartBuildBatchResponse (..),
    newStartBuildBatchResponse,

    -- * Response Lenses
    startBuildBatchResponse_buildBatch,
    startBuildBatchResponse_httpStatus,
  )
where

import Amazonka.CodeBuild.Types
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newStartBuildBatch' smart constructor.
data StartBuildBatch = StartBuildBatch'
  { -- | The Key Management Service customer master key (CMK) that overrides the
    -- one specified in the batch build project. The CMK key encrypts the 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>@).
    StartBuildBatch -> Maybe Text
encryptionKeyOverride :: Prelude.Maybe Prelude.Text,
    -- | A location that overrides, for this batch build, the source location
    -- defined in the batch build project.
    StartBuildBatch -> Maybe Text
sourceLocationOverride :: Prelude.Maybe Prelude.Text,
    -- | A @BuildBatchConfigOverride@ object that contains batch build
    -- configuration overrides.
    StartBuildBatch -> Maybe ProjectBuildBatchConfig
buildBatchConfigOverride :: Prelude.Maybe ProjectBuildBatchConfig,
    -- | An array of @EnvironmentVariable@ objects that override, or add to, the
    -- environment variables defined in the batch build project.
    StartBuildBatch -> Maybe [EnvironmentVariable]
environmentVariablesOverride :: Prelude.Maybe [EnvironmentVariable],
    -- | A unique, case sensitive identifier you provide to ensure the
    -- idempotency of the @StartBuildBatch@ request. The token is included in
    -- the @StartBuildBatch@ request and is valid for five minutes. If you
    -- repeat the @StartBuildBatch@ request with the same token, but change a
    -- parameter, CodeBuild returns a parameter mismatch error.
    StartBuildBatch -> Maybe Text
idempotencyToken :: Prelude.Maybe Prelude.Text,
    -- | 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.
    StartBuildBatch -> Maybe Bool
debugSessionEnabled :: Prelude.Maybe Prelude.Bool,
    -- | A @RegistryCredential@ object that overrides credentials for access to a
    -- private registry.
    StartBuildBatch -> Maybe RegistryCredential
registryCredentialOverride :: Prelude.Maybe RegistryCredential,
    -- | The name of a service role for this batch build that overrides the one
    -- specified in the batch build project.
    StartBuildBatch -> Maybe Text
serviceRoleOverride :: Prelude.Maybe Prelude.Text,
    -- | A @ProjectCache@ object that specifies cache overrides.
    StartBuildBatch -> Maybe ProjectCache
cacheOverride :: Prelude.Maybe ProjectCache,
    -- | The number of minutes a batch build is allowed to be queued before it
    -- times out.
    StartBuildBatch -> Maybe Natural
queuedTimeoutInMinutesOverride :: Prelude.Maybe Prelude.Natural,
    -- | An array of @ProjectSource@ objects that override the secondary sources
    -- defined in the batch build project.
    StartBuildBatch -> Maybe [ProjectSource]
secondarySourcesOverride :: Prelude.Maybe [ProjectSource],
    -- | The user-defined depth of history, with a minimum value of 0, that
    -- overrides, for this batch build only, any previous depth of history
    -- defined in the batch build project.
    StartBuildBatch -> Maybe Natural
gitCloneDepthOverride :: Prelude.Maybe Prelude.Natural,
    -- | The type of credentials CodeBuild uses to pull images in your batch
    -- build. There are two valid values:
    --
    -- [CODEBUILD]
    --     Specifies that CodeBuild uses its own credentials. This requires
    --     that you modify your ECR repository policy to trust CodeBuild\'s
    --     service principal.
    --
    -- [SERVICE_ROLE]
    --     Specifies that CodeBuild uses your build project\'s service role.
    --
    -- When using a cross-account or private registry image, you must use
    -- @SERVICE_ROLE@ credentials. When using an CodeBuild curated image, you
    -- must use @CODEBUILD@ credentials.
    StartBuildBatch -> Maybe ImagePullCredentialsType
imagePullCredentialsTypeOverride :: Prelude.Maybe ImagePullCredentialsType,
    -- | A @LogsConfig@ object that override the log settings defined in the
    -- batch build project.
    StartBuildBatch -> Maybe LogsConfig
logsConfigOverride :: Prelude.Maybe LogsConfig,
    -- | A @SourceAuth@ object that overrides the one defined in the batch build
    -- project. This override applies only if the build project\'s source is
    -- BitBucket or GitHub.
    StartBuildBatch -> Maybe SourceAuth
sourceAuthOverride :: Prelude.Maybe SourceAuth,
    -- | A @GitSubmodulesConfig@ object that overrides the Git submodules
    -- configuration for this batch build.
    StartBuildBatch -> Maybe GitSubmodulesConfig
gitSubmodulesConfigOverride :: Prelude.Maybe GitSubmodulesConfig,
    -- | A container type for this batch build that overrides the one specified
    -- in the batch build project.
    StartBuildBatch -> Maybe EnvironmentType
environmentTypeOverride :: Prelude.Maybe EnvironmentType,
    -- | The name of a certificate for this batch build that overrides the one
    -- specified in the batch build project.
    StartBuildBatch -> Maybe Text
certificateOverride :: Prelude.Maybe Prelude.Text,
    -- | The name of a compute type for this batch build that overrides the one
    -- specified in the batch build project.
    StartBuildBatch -> Maybe ComputeType
computeTypeOverride :: Prelude.Maybe ComputeType,
    -- | Set to @true@ to report to your source provider the status of a batch
    -- build\'s start and completion. If you use this option with a source
    -- provider other than GitHub, GitHub Enterprise, or Bitbucket, an
    -- @invalidInputException@ is thrown.
    --
    -- The status of a build triggered by a webhook is always reported to your
    -- source provider.
    StartBuildBatch -> Maybe Bool
reportBuildBatchStatusOverride :: Prelude.Maybe Prelude.Bool,
    -- | Enable this flag to override privileged mode in the batch build project.
    StartBuildBatch -> Maybe Bool
privilegedModeOverride :: Prelude.Maybe Prelude.Bool,
    -- | The version of the batch build input to be built, for this build only.
    -- If not specified, the latest version is used. If specified, the contents
    -- depends on the source provider:
    --
    -- [CodeCommit]
    --     The commit ID, branch, or Git tag to use.
    --
    -- [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.
    --
    -- [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.
    --
    -- [Amazon S3]
    --     The version ID of the object that represents the build input ZIP
    --     file to use.
    --
    -- If @sourceVersion@ is specified at the project level, then this
    -- @sourceVersion@ (at the build level) takes precedence.
    --
    -- For more information, see
    -- <https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html Source Version Sample with CodeBuild>
    -- in the /CodeBuild User Guide/.
    StartBuildBatch -> Maybe Text
sourceVersion :: Prelude.Maybe Prelude.Text,
    -- | A buildspec file declaration that overrides, for this build only, the
    -- latest one already defined in the build project.
    --
    -- If this value is set, it can be either an inline buildspec definition,
    -- the path to an alternate buildspec file relative to the value of the
    -- built-in @CODEBUILD_SRC_DIR@ environment variable, or the path to an S3
    -- bucket. The bucket must be in the same Amazon Web Services Region as the
    -- build project. Specify the buildspec file using its ARN (for example,
    -- @arn:aws:s3:::my-codebuild-sample2\/buildspec.yml@). If this value is
    -- not provided or is set to an empty string, the source code must contain
    -- a buildspec file in its root directory. For more information, see
    -- <https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-name-storage Buildspec File Name and Storage Location>.
    StartBuildBatch -> Maybe Text
buildspecOverride :: Prelude.Maybe Prelude.Text,
    -- | An array of @ProjectSourceVersion@ objects that override the secondary
    -- source versions in the batch build project.
    StartBuildBatch -> Maybe [ProjectSourceVersion]
secondarySourcesVersionOverride :: Prelude.Maybe [ProjectSourceVersion],
    -- | Enable this flag to override the insecure SSL setting that is specified
    -- in the batch build project. The insecure SSL setting determines whether
    -- to ignore SSL warnings while connecting to the project source code. This
    -- override applies only if the build\'s source is GitHub Enterprise.
    StartBuildBatch -> Maybe Bool
insecureSslOverride :: Prelude.Maybe Prelude.Bool,
    -- | The name of an image for this batch build that overrides the one
    -- specified in the batch build project.
    StartBuildBatch -> Maybe Text
imageOverride :: Prelude.Maybe Prelude.Text,
    -- | An array of @ProjectArtifacts@ objects that override the secondary
    -- artifacts defined in the batch build project.
    StartBuildBatch -> Maybe [ProjectArtifacts]
secondaryArtifactsOverride :: Prelude.Maybe [ProjectArtifacts],
    -- | Overrides the build timeout specified in the batch build project.
    StartBuildBatch -> Maybe Natural
buildTimeoutInMinutesOverride :: Prelude.Maybe Prelude.Natural,
    -- | An array of @ProjectArtifacts@ objects that contains information about
    -- the build output artifact overrides for the build project.
    StartBuildBatch -> Maybe ProjectArtifacts
artifactsOverride :: Prelude.Maybe ProjectArtifacts,
    -- | The source input type that overrides the source input defined in the
    -- batch build project.
    StartBuildBatch -> Maybe SourceType
sourceTypeOverride :: Prelude.Maybe SourceType,
    -- | The name of the project.
    StartBuildBatch -> Text
projectName :: Prelude.Text
  }
  deriving (StartBuildBatch -> StartBuildBatch -> Bool
(StartBuildBatch -> StartBuildBatch -> Bool)
-> (StartBuildBatch -> StartBuildBatch -> Bool)
-> Eq StartBuildBatch
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartBuildBatch -> StartBuildBatch -> Bool
$c/= :: StartBuildBatch -> StartBuildBatch -> Bool
== :: StartBuildBatch -> StartBuildBatch -> Bool
$c== :: StartBuildBatch -> StartBuildBatch -> Bool
Prelude.Eq, ReadPrec [StartBuildBatch]
ReadPrec StartBuildBatch
Int -> ReadS StartBuildBatch
ReadS [StartBuildBatch]
(Int -> ReadS StartBuildBatch)
-> ReadS [StartBuildBatch]
-> ReadPrec StartBuildBatch
-> ReadPrec [StartBuildBatch]
-> Read StartBuildBatch
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartBuildBatch]
$creadListPrec :: ReadPrec [StartBuildBatch]
readPrec :: ReadPrec StartBuildBatch
$creadPrec :: ReadPrec StartBuildBatch
readList :: ReadS [StartBuildBatch]
$creadList :: ReadS [StartBuildBatch]
readsPrec :: Int -> ReadS StartBuildBatch
$creadsPrec :: Int -> ReadS StartBuildBatch
Prelude.Read, Int -> StartBuildBatch -> ShowS
[StartBuildBatch] -> ShowS
StartBuildBatch -> String
(Int -> StartBuildBatch -> ShowS)
-> (StartBuildBatch -> String)
-> ([StartBuildBatch] -> ShowS)
-> Show StartBuildBatch
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartBuildBatch] -> ShowS
$cshowList :: [StartBuildBatch] -> ShowS
show :: StartBuildBatch -> String
$cshow :: StartBuildBatch -> String
showsPrec :: Int -> StartBuildBatch -> ShowS
$cshowsPrec :: Int -> StartBuildBatch -> ShowS
Prelude.Show, (forall x. StartBuildBatch -> Rep StartBuildBatch x)
-> (forall x. Rep StartBuildBatch x -> StartBuildBatch)
-> Generic StartBuildBatch
forall x. Rep StartBuildBatch x -> StartBuildBatch
forall x. StartBuildBatch -> Rep StartBuildBatch x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StartBuildBatch x -> StartBuildBatch
$cfrom :: forall x. StartBuildBatch -> Rep StartBuildBatch x
Prelude.Generic)

-- |
-- Create a value of 'StartBuildBatch' 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:
--
-- 'encryptionKeyOverride', 'startBuildBatch_encryptionKeyOverride' - The Key Management Service customer master key (CMK) that overrides the
-- one specified in the batch build project. The CMK key encrypts the 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>@).
--
-- 'sourceLocationOverride', 'startBuildBatch_sourceLocationOverride' - A location that overrides, for this batch build, the source location
-- defined in the batch build project.
--
-- 'buildBatchConfigOverride', 'startBuildBatch_buildBatchConfigOverride' - A @BuildBatchConfigOverride@ object that contains batch build
-- configuration overrides.
--
-- 'environmentVariablesOverride', 'startBuildBatch_environmentVariablesOverride' - An array of @EnvironmentVariable@ objects that override, or add to, the
-- environment variables defined in the batch build project.
--
-- 'idempotencyToken', 'startBuildBatch_idempotencyToken' - A unique, case sensitive identifier you provide to ensure the
-- idempotency of the @StartBuildBatch@ request. The token is included in
-- the @StartBuildBatch@ request and is valid for five minutes. If you
-- repeat the @StartBuildBatch@ request with the same token, but change a
-- parameter, CodeBuild returns a parameter mismatch error.
--
-- 'debugSessionEnabled', 'startBuildBatch_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.
--
-- 'registryCredentialOverride', 'startBuildBatch_registryCredentialOverride' - A @RegistryCredential@ object that overrides credentials for access to a
-- private registry.
--
-- 'serviceRoleOverride', 'startBuildBatch_serviceRoleOverride' - The name of a service role for this batch build that overrides the one
-- specified in the batch build project.
--
-- 'cacheOverride', 'startBuildBatch_cacheOverride' - A @ProjectCache@ object that specifies cache overrides.
--
-- 'queuedTimeoutInMinutesOverride', 'startBuildBatch_queuedTimeoutInMinutesOverride' - The number of minutes a batch build is allowed to be queued before it
-- times out.
--
-- 'secondarySourcesOverride', 'startBuildBatch_secondarySourcesOverride' - An array of @ProjectSource@ objects that override the secondary sources
-- defined in the batch build project.
--
-- 'gitCloneDepthOverride', 'startBuildBatch_gitCloneDepthOverride' - The user-defined depth of history, with a minimum value of 0, that
-- overrides, for this batch build only, any previous depth of history
-- defined in the batch build project.
--
-- 'imagePullCredentialsTypeOverride', 'startBuildBatch_imagePullCredentialsTypeOverride' - The type of credentials CodeBuild uses to pull images in your batch
-- build. There are two valid values:
--
-- [CODEBUILD]
--     Specifies that CodeBuild uses its own credentials. This requires
--     that you modify your ECR repository policy to trust CodeBuild\'s
--     service principal.
--
-- [SERVICE_ROLE]
--     Specifies that CodeBuild uses your build project\'s service role.
--
-- When using a cross-account or private registry image, you must use
-- @SERVICE_ROLE@ credentials. When using an CodeBuild curated image, you
-- must use @CODEBUILD@ credentials.
--
-- 'logsConfigOverride', 'startBuildBatch_logsConfigOverride' - A @LogsConfig@ object that override the log settings defined in the
-- batch build project.
--
-- 'sourceAuthOverride', 'startBuildBatch_sourceAuthOverride' - A @SourceAuth@ object that overrides the one defined in the batch build
-- project. This override applies only if the build project\'s source is
-- BitBucket or GitHub.
--
-- 'gitSubmodulesConfigOverride', 'startBuildBatch_gitSubmodulesConfigOverride' - A @GitSubmodulesConfig@ object that overrides the Git submodules
-- configuration for this batch build.
--
-- 'environmentTypeOverride', 'startBuildBatch_environmentTypeOverride' - A container type for this batch build that overrides the one specified
-- in the batch build project.
--
-- 'certificateOverride', 'startBuildBatch_certificateOverride' - The name of a certificate for this batch build that overrides the one
-- specified in the batch build project.
--
-- 'computeTypeOverride', 'startBuildBatch_computeTypeOverride' - The name of a compute type for this batch build that overrides the one
-- specified in the batch build project.
--
-- 'reportBuildBatchStatusOverride', 'startBuildBatch_reportBuildBatchStatusOverride' - Set to @true@ to report to your source provider the status of a batch
-- build\'s start and completion. If you use this option with a source
-- provider other than GitHub, GitHub Enterprise, or Bitbucket, an
-- @invalidInputException@ is thrown.
--
-- The status of a build triggered by a webhook is always reported to your
-- source provider.
--
-- 'privilegedModeOverride', 'startBuildBatch_privilegedModeOverride' - Enable this flag to override privileged mode in the batch build project.
--
-- 'sourceVersion', 'startBuildBatch_sourceVersion' - The version of the batch build input to be built, for this build only.
-- If not specified, the latest version is used. If specified, the contents
-- depends on the source provider:
--
-- [CodeCommit]
--     The commit ID, branch, or Git tag to use.
--
-- [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.
--
-- [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.
--
-- [Amazon S3]
--     The version ID of the object that represents the build input ZIP
--     file to use.
--
-- If @sourceVersion@ is specified at the project level, then this
-- @sourceVersion@ (at the build level) takes precedence.
--
-- For more information, see
-- <https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html Source Version Sample with CodeBuild>
-- in the /CodeBuild User Guide/.
--
-- 'buildspecOverride', 'startBuildBatch_buildspecOverride' - A buildspec file declaration that overrides, for this build only, the
-- latest one already defined in the build project.
--
-- If this value is set, it can be either an inline buildspec definition,
-- the path to an alternate buildspec file relative to the value of the
-- built-in @CODEBUILD_SRC_DIR@ environment variable, or the path to an S3
-- bucket. The bucket must be in the same Amazon Web Services Region as the
-- build project. Specify the buildspec file using its ARN (for example,
-- @arn:aws:s3:::my-codebuild-sample2\/buildspec.yml@). If this value is
-- not provided or is set to an empty string, the source code must contain
-- a buildspec file in its root directory. For more information, see
-- <https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-name-storage Buildspec File Name and Storage Location>.
--
-- 'secondarySourcesVersionOverride', 'startBuildBatch_secondarySourcesVersionOverride' - An array of @ProjectSourceVersion@ objects that override the secondary
-- source versions in the batch build project.
--
-- 'insecureSslOverride', 'startBuildBatch_insecureSslOverride' - Enable this flag to override the insecure SSL setting that is specified
-- in the batch build project. The insecure SSL setting determines whether
-- to ignore SSL warnings while connecting to the project source code. This
-- override applies only if the build\'s source is GitHub Enterprise.
--
-- 'imageOverride', 'startBuildBatch_imageOverride' - The name of an image for this batch build that overrides the one
-- specified in the batch build project.
--
-- 'secondaryArtifactsOverride', 'startBuildBatch_secondaryArtifactsOverride' - An array of @ProjectArtifacts@ objects that override the secondary
-- artifacts defined in the batch build project.
--
-- 'buildTimeoutInMinutesOverride', 'startBuildBatch_buildTimeoutInMinutesOverride' - Overrides the build timeout specified in the batch build project.
--
-- 'artifactsOverride', 'startBuildBatch_artifactsOverride' - An array of @ProjectArtifacts@ objects that contains information about
-- the build output artifact overrides for the build project.
--
-- 'sourceTypeOverride', 'startBuildBatch_sourceTypeOverride' - The source input type that overrides the source input defined in the
-- batch build project.
--
-- 'projectName', 'startBuildBatch_projectName' - The name of the project.
newStartBuildBatch ::
  -- | 'projectName'
  Prelude.Text ->
  StartBuildBatch
newStartBuildBatch :: Text -> StartBuildBatch
newStartBuildBatch Text
pProjectName_ =
  StartBuildBatch' :: Maybe Text
-> Maybe Text
-> Maybe ProjectBuildBatchConfig
-> Maybe [EnvironmentVariable]
-> Maybe Text
-> Maybe Bool
-> Maybe RegistryCredential
-> Maybe Text
-> Maybe ProjectCache
-> Maybe Natural
-> Maybe [ProjectSource]
-> Maybe Natural
-> Maybe ImagePullCredentialsType
-> Maybe LogsConfig
-> Maybe SourceAuth
-> Maybe GitSubmodulesConfig
-> Maybe EnvironmentType
-> Maybe Text
-> Maybe ComputeType
-> Maybe Bool
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe [ProjectSourceVersion]
-> Maybe Bool
-> Maybe Text
-> Maybe [ProjectArtifacts]
-> Maybe Natural
-> Maybe ProjectArtifacts
-> Maybe SourceType
-> Text
-> StartBuildBatch
StartBuildBatch'
    { $sel:encryptionKeyOverride:StartBuildBatch' :: Maybe Text
encryptionKeyOverride =
        Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:sourceLocationOverride:StartBuildBatch' :: Maybe Text
sourceLocationOverride = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:buildBatchConfigOverride:StartBuildBatch' :: Maybe ProjectBuildBatchConfig
buildBatchConfigOverride = Maybe ProjectBuildBatchConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:environmentVariablesOverride:StartBuildBatch' :: Maybe [EnvironmentVariable]
environmentVariablesOverride = Maybe [EnvironmentVariable]
forall a. Maybe a
Prelude.Nothing,
      $sel:idempotencyToken:StartBuildBatch' :: Maybe Text
idempotencyToken = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:debugSessionEnabled:StartBuildBatch' :: Maybe Bool
debugSessionEnabled = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:registryCredentialOverride:StartBuildBatch' :: Maybe RegistryCredential
registryCredentialOverride = Maybe RegistryCredential
forall a. Maybe a
Prelude.Nothing,
      $sel:serviceRoleOverride:StartBuildBatch' :: Maybe Text
serviceRoleOverride = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:cacheOverride:StartBuildBatch' :: Maybe ProjectCache
cacheOverride = Maybe ProjectCache
forall a. Maybe a
Prelude.Nothing,
      $sel:queuedTimeoutInMinutesOverride:StartBuildBatch' :: Maybe Natural
queuedTimeoutInMinutesOverride = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:secondarySourcesOverride:StartBuildBatch' :: Maybe [ProjectSource]
secondarySourcesOverride = Maybe [ProjectSource]
forall a. Maybe a
Prelude.Nothing,
      $sel:gitCloneDepthOverride:StartBuildBatch' :: Maybe Natural
gitCloneDepthOverride = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:imagePullCredentialsTypeOverride:StartBuildBatch' :: Maybe ImagePullCredentialsType
imagePullCredentialsTypeOverride = Maybe ImagePullCredentialsType
forall a. Maybe a
Prelude.Nothing,
      $sel:logsConfigOverride:StartBuildBatch' :: Maybe LogsConfig
logsConfigOverride = Maybe LogsConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:sourceAuthOverride:StartBuildBatch' :: Maybe SourceAuth
sourceAuthOverride = Maybe SourceAuth
forall a. Maybe a
Prelude.Nothing,
      $sel:gitSubmodulesConfigOverride:StartBuildBatch' :: Maybe GitSubmodulesConfig
gitSubmodulesConfigOverride = Maybe GitSubmodulesConfig
forall a. Maybe a
Prelude.Nothing,
      $sel:environmentTypeOverride:StartBuildBatch' :: Maybe EnvironmentType
environmentTypeOverride = Maybe EnvironmentType
forall a. Maybe a
Prelude.Nothing,
      $sel:certificateOverride:StartBuildBatch' :: Maybe Text
certificateOverride = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:computeTypeOverride:StartBuildBatch' :: Maybe ComputeType
computeTypeOverride = Maybe ComputeType
forall a. Maybe a
Prelude.Nothing,
      $sel:reportBuildBatchStatusOverride:StartBuildBatch' :: Maybe Bool
reportBuildBatchStatusOverride = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:privilegedModeOverride:StartBuildBatch' :: Maybe Bool
privilegedModeOverride = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:sourceVersion:StartBuildBatch' :: Maybe Text
sourceVersion = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:buildspecOverride:StartBuildBatch' :: Maybe Text
buildspecOverride = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:secondarySourcesVersionOverride:StartBuildBatch' :: Maybe [ProjectSourceVersion]
secondarySourcesVersionOverride = Maybe [ProjectSourceVersion]
forall a. Maybe a
Prelude.Nothing,
      $sel:insecureSslOverride:StartBuildBatch' :: Maybe Bool
insecureSslOverride = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:imageOverride:StartBuildBatch' :: Maybe Text
imageOverride = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:secondaryArtifactsOverride:StartBuildBatch' :: Maybe [ProjectArtifacts]
secondaryArtifactsOverride = Maybe [ProjectArtifacts]
forall a. Maybe a
Prelude.Nothing,
      $sel:buildTimeoutInMinutesOverride:StartBuildBatch' :: Maybe Natural
buildTimeoutInMinutesOverride = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:artifactsOverride:StartBuildBatch' :: Maybe ProjectArtifacts
artifactsOverride = Maybe ProjectArtifacts
forall a. Maybe a
Prelude.Nothing,
      $sel:sourceTypeOverride:StartBuildBatch' :: Maybe SourceType
sourceTypeOverride = Maybe SourceType
forall a. Maybe a
Prelude.Nothing,
      $sel:projectName:StartBuildBatch' :: Text
projectName = Text
pProjectName_
    }

-- | The Key Management Service customer master key (CMK) that overrides the
-- one specified in the batch build project. The CMK key encrypts the 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>@).
startBuildBatch_encryptionKeyOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Text)
startBuildBatch_encryptionKeyOverride :: (Maybe Text -> f (Maybe Text))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_encryptionKeyOverride = (StartBuildBatch -> Maybe Text)
-> (StartBuildBatch -> Maybe Text -> StartBuildBatch)
-> Lens StartBuildBatch StartBuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Text
encryptionKeyOverride :: Maybe Text
$sel:encryptionKeyOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Text
encryptionKeyOverride} -> Maybe Text
encryptionKeyOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Text
a -> StartBuildBatch
s {$sel:encryptionKeyOverride:StartBuildBatch' :: Maybe Text
encryptionKeyOverride = Maybe Text
a} :: StartBuildBatch)

-- | A location that overrides, for this batch build, the source location
-- defined in the batch build project.
startBuildBatch_sourceLocationOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Text)
startBuildBatch_sourceLocationOverride :: (Maybe Text -> f (Maybe Text))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_sourceLocationOverride = (StartBuildBatch -> Maybe Text)
-> (StartBuildBatch -> Maybe Text -> StartBuildBatch)
-> Lens StartBuildBatch StartBuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Text
sourceLocationOverride :: Maybe Text
$sel:sourceLocationOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Text
sourceLocationOverride} -> Maybe Text
sourceLocationOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Text
a -> StartBuildBatch
s {$sel:sourceLocationOverride:StartBuildBatch' :: Maybe Text
sourceLocationOverride = Maybe Text
a} :: StartBuildBatch)

-- | A @BuildBatchConfigOverride@ object that contains batch build
-- configuration overrides.
startBuildBatch_buildBatchConfigOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe ProjectBuildBatchConfig)
startBuildBatch_buildBatchConfigOverride :: (Maybe ProjectBuildBatchConfig
 -> f (Maybe ProjectBuildBatchConfig))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_buildBatchConfigOverride = (StartBuildBatch -> Maybe ProjectBuildBatchConfig)
-> (StartBuildBatch
    -> Maybe ProjectBuildBatchConfig -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe ProjectBuildBatchConfig)
     (Maybe ProjectBuildBatchConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe ProjectBuildBatchConfig
buildBatchConfigOverride :: Maybe ProjectBuildBatchConfig
$sel:buildBatchConfigOverride:StartBuildBatch' :: StartBuildBatch -> Maybe ProjectBuildBatchConfig
buildBatchConfigOverride} -> Maybe ProjectBuildBatchConfig
buildBatchConfigOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe ProjectBuildBatchConfig
a -> StartBuildBatch
s {$sel:buildBatchConfigOverride:StartBuildBatch' :: Maybe ProjectBuildBatchConfig
buildBatchConfigOverride = Maybe ProjectBuildBatchConfig
a} :: StartBuildBatch)

-- | An array of @EnvironmentVariable@ objects that override, or add to, the
-- environment variables defined in the batch build project.
startBuildBatch_environmentVariablesOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe [EnvironmentVariable])
startBuildBatch_environmentVariablesOverride :: (Maybe [EnvironmentVariable] -> f (Maybe [EnvironmentVariable]))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_environmentVariablesOverride = (StartBuildBatch -> Maybe [EnvironmentVariable])
-> (StartBuildBatch
    -> Maybe [EnvironmentVariable] -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe [EnvironmentVariable])
     (Maybe [EnvironmentVariable])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe [EnvironmentVariable]
environmentVariablesOverride :: Maybe [EnvironmentVariable]
$sel:environmentVariablesOverride:StartBuildBatch' :: StartBuildBatch -> Maybe [EnvironmentVariable]
environmentVariablesOverride} -> Maybe [EnvironmentVariable]
environmentVariablesOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe [EnvironmentVariable]
a -> StartBuildBatch
s {$sel:environmentVariablesOverride:StartBuildBatch' :: Maybe [EnvironmentVariable]
environmentVariablesOverride = Maybe [EnvironmentVariable]
a} :: StartBuildBatch) ((Maybe [EnvironmentVariable] -> f (Maybe [EnvironmentVariable]))
 -> StartBuildBatch -> f StartBuildBatch)
-> ((Maybe [EnvironmentVariable]
     -> f (Maybe [EnvironmentVariable]))
    -> Maybe [EnvironmentVariable] -> f (Maybe [EnvironmentVariable]))
-> (Maybe [EnvironmentVariable] -> f (Maybe [EnvironmentVariable]))
-> StartBuildBatch
-> f StartBuildBatch
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [EnvironmentVariable]
  [EnvironmentVariable]
  [EnvironmentVariable]
  [EnvironmentVariable]
-> Iso
     (Maybe [EnvironmentVariable])
     (Maybe [EnvironmentVariable])
     (Maybe [EnvironmentVariable])
     (Maybe [EnvironmentVariable])
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
  [EnvironmentVariable]
  [EnvironmentVariable]
  [EnvironmentVariable]
  [EnvironmentVariable]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A unique, case sensitive identifier you provide to ensure the
-- idempotency of the @StartBuildBatch@ request. The token is included in
-- the @StartBuildBatch@ request and is valid for five minutes. If you
-- repeat the @StartBuildBatch@ request with the same token, but change a
-- parameter, CodeBuild returns a parameter mismatch error.
startBuildBatch_idempotencyToken :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Text)
startBuildBatch_idempotencyToken :: (Maybe Text -> f (Maybe Text))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_idempotencyToken = (StartBuildBatch -> Maybe Text)
-> (StartBuildBatch -> Maybe Text -> StartBuildBatch)
-> Lens StartBuildBatch StartBuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Text
idempotencyToken :: Maybe Text
$sel:idempotencyToken:StartBuildBatch' :: StartBuildBatch -> Maybe Text
idempotencyToken} -> Maybe Text
idempotencyToken) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Text
a -> StartBuildBatch
s {$sel:idempotencyToken:StartBuildBatch' :: Maybe Text
idempotencyToken = Maybe Text
a} :: StartBuildBatch)

-- | 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.
startBuildBatch_debugSessionEnabled :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Bool)
startBuildBatch_debugSessionEnabled :: (Maybe Bool -> f (Maybe Bool))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_debugSessionEnabled = (StartBuildBatch -> Maybe Bool)
-> (StartBuildBatch -> Maybe Bool -> StartBuildBatch)
-> Lens StartBuildBatch StartBuildBatch (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Bool
debugSessionEnabled :: Maybe Bool
$sel:debugSessionEnabled:StartBuildBatch' :: StartBuildBatch -> Maybe Bool
debugSessionEnabled} -> Maybe Bool
debugSessionEnabled) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Bool
a -> StartBuildBatch
s {$sel:debugSessionEnabled:StartBuildBatch' :: Maybe Bool
debugSessionEnabled = Maybe Bool
a} :: StartBuildBatch)

-- | A @RegistryCredential@ object that overrides credentials for access to a
-- private registry.
startBuildBatch_registryCredentialOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe RegistryCredential)
startBuildBatch_registryCredentialOverride :: (Maybe RegistryCredential -> f (Maybe RegistryCredential))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_registryCredentialOverride = (StartBuildBatch -> Maybe RegistryCredential)
-> (StartBuildBatch -> Maybe RegistryCredential -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe RegistryCredential)
     (Maybe RegistryCredential)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe RegistryCredential
registryCredentialOverride :: Maybe RegistryCredential
$sel:registryCredentialOverride:StartBuildBatch' :: StartBuildBatch -> Maybe RegistryCredential
registryCredentialOverride} -> Maybe RegistryCredential
registryCredentialOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe RegistryCredential
a -> StartBuildBatch
s {$sel:registryCredentialOverride:StartBuildBatch' :: Maybe RegistryCredential
registryCredentialOverride = Maybe RegistryCredential
a} :: StartBuildBatch)

-- | The name of a service role for this batch build that overrides the one
-- specified in the batch build project.
startBuildBatch_serviceRoleOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Text)
startBuildBatch_serviceRoleOverride :: (Maybe Text -> f (Maybe Text))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_serviceRoleOverride = (StartBuildBatch -> Maybe Text)
-> (StartBuildBatch -> Maybe Text -> StartBuildBatch)
-> Lens StartBuildBatch StartBuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Text
serviceRoleOverride :: Maybe Text
$sel:serviceRoleOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Text
serviceRoleOverride} -> Maybe Text
serviceRoleOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Text
a -> StartBuildBatch
s {$sel:serviceRoleOverride:StartBuildBatch' :: Maybe Text
serviceRoleOverride = Maybe Text
a} :: StartBuildBatch)

-- | A @ProjectCache@ object that specifies cache overrides.
startBuildBatch_cacheOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe ProjectCache)
startBuildBatch_cacheOverride :: (Maybe ProjectCache -> f (Maybe ProjectCache))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_cacheOverride = (StartBuildBatch -> Maybe ProjectCache)
-> (StartBuildBatch -> Maybe ProjectCache -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe ProjectCache)
     (Maybe ProjectCache)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe ProjectCache
cacheOverride :: Maybe ProjectCache
$sel:cacheOverride:StartBuildBatch' :: StartBuildBatch -> Maybe ProjectCache
cacheOverride} -> Maybe ProjectCache
cacheOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe ProjectCache
a -> StartBuildBatch
s {$sel:cacheOverride:StartBuildBatch' :: Maybe ProjectCache
cacheOverride = Maybe ProjectCache
a} :: StartBuildBatch)

-- | The number of minutes a batch build is allowed to be queued before it
-- times out.
startBuildBatch_queuedTimeoutInMinutesOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Natural)
startBuildBatch_queuedTimeoutInMinutesOverride :: (Maybe Natural -> f (Maybe Natural))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_queuedTimeoutInMinutesOverride = (StartBuildBatch -> Maybe Natural)
-> (StartBuildBatch -> Maybe Natural -> StartBuildBatch)
-> Lens
     StartBuildBatch StartBuildBatch (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Natural
queuedTimeoutInMinutesOverride :: Maybe Natural
$sel:queuedTimeoutInMinutesOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Natural
queuedTimeoutInMinutesOverride} -> Maybe Natural
queuedTimeoutInMinutesOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Natural
a -> StartBuildBatch
s {$sel:queuedTimeoutInMinutesOverride:StartBuildBatch' :: Maybe Natural
queuedTimeoutInMinutesOverride = Maybe Natural
a} :: StartBuildBatch)

-- | An array of @ProjectSource@ objects that override the secondary sources
-- defined in the batch build project.
startBuildBatch_secondarySourcesOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe [ProjectSource])
startBuildBatch_secondarySourcesOverride :: (Maybe [ProjectSource] -> f (Maybe [ProjectSource]))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_secondarySourcesOverride = (StartBuildBatch -> Maybe [ProjectSource])
-> (StartBuildBatch -> Maybe [ProjectSource] -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe [ProjectSource])
     (Maybe [ProjectSource])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe [ProjectSource]
secondarySourcesOverride :: Maybe [ProjectSource]
$sel:secondarySourcesOverride:StartBuildBatch' :: StartBuildBatch -> Maybe [ProjectSource]
secondarySourcesOverride} -> Maybe [ProjectSource]
secondarySourcesOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe [ProjectSource]
a -> StartBuildBatch
s {$sel:secondarySourcesOverride:StartBuildBatch' :: Maybe [ProjectSource]
secondarySourcesOverride = Maybe [ProjectSource]
a} :: StartBuildBatch) ((Maybe [ProjectSource] -> f (Maybe [ProjectSource]))
 -> StartBuildBatch -> f StartBuildBatch)
-> ((Maybe [ProjectSource] -> f (Maybe [ProjectSource]))
    -> Maybe [ProjectSource] -> f (Maybe [ProjectSource]))
-> (Maybe [ProjectSource] -> f (Maybe [ProjectSource]))
-> StartBuildBatch
-> f StartBuildBatch
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 user-defined depth of history, with a minimum value of 0, that
-- overrides, for this batch build only, any previous depth of history
-- defined in the batch build project.
startBuildBatch_gitCloneDepthOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Natural)
startBuildBatch_gitCloneDepthOverride :: (Maybe Natural -> f (Maybe Natural))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_gitCloneDepthOverride = (StartBuildBatch -> Maybe Natural)
-> (StartBuildBatch -> Maybe Natural -> StartBuildBatch)
-> Lens
     StartBuildBatch StartBuildBatch (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Natural
gitCloneDepthOverride :: Maybe Natural
$sel:gitCloneDepthOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Natural
gitCloneDepthOverride} -> Maybe Natural
gitCloneDepthOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Natural
a -> StartBuildBatch
s {$sel:gitCloneDepthOverride:StartBuildBatch' :: Maybe Natural
gitCloneDepthOverride = Maybe Natural
a} :: StartBuildBatch)

-- | The type of credentials CodeBuild uses to pull images in your batch
-- build. There are two valid values:
--
-- [CODEBUILD]
--     Specifies that CodeBuild uses its own credentials. This requires
--     that you modify your ECR repository policy to trust CodeBuild\'s
--     service principal.
--
-- [SERVICE_ROLE]
--     Specifies that CodeBuild uses your build project\'s service role.
--
-- When using a cross-account or private registry image, you must use
-- @SERVICE_ROLE@ credentials. When using an CodeBuild curated image, you
-- must use @CODEBUILD@ credentials.
startBuildBatch_imagePullCredentialsTypeOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe ImagePullCredentialsType)
startBuildBatch_imagePullCredentialsTypeOverride :: (Maybe ImagePullCredentialsType
 -> f (Maybe ImagePullCredentialsType))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_imagePullCredentialsTypeOverride = (StartBuildBatch -> Maybe ImagePullCredentialsType)
-> (StartBuildBatch
    -> Maybe ImagePullCredentialsType -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe ImagePullCredentialsType)
     (Maybe ImagePullCredentialsType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe ImagePullCredentialsType
imagePullCredentialsTypeOverride :: Maybe ImagePullCredentialsType
$sel:imagePullCredentialsTypeOverride:StartBuildBatch' :: StartBuildBatch -> Maybe ImagePullCredentialsType
imagePullCredentialsTypeOverride} -> Maybe ImagePullCredentialsType
imagePullCredentialsTypeOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe ImagePullCredentialsType
a -> StartBuildBatch
s {$sel:imagePullCredentialsTypeOverride:StartBuildBatch' :: Maybe ImagePullCredentialsType
imagePullCredentialsTypeOverride = Maybe ImagePullCredentialsType
a} :: StartBuildBatch)

-- | A @LogsConfig@ object that override the log settings defined in the
-- batch build project.
startBuildBatch_logsConfigOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe LogsConfig)
startBuildBatch_logsConfigOverride :: (Maybe LogsConfig -> f (Maybe LogsConfig))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_logsConfigOverride = (StartBuildBatch -> Maybe LogsConfig)
-> (StartBuildBatch -> Maybe LogsConfig -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe LogsConfig)
     (Maybe LogsConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe LogsConfig
logsConfigOverride :: Maybe LogsConfig
$sel:logsConfigOverride:StartBuildBatch' :: StartBuildBatch -> Maybe LogsConfig
logsConfigOverride} -> Maybe LogsConfig
logsConfigOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe LogsConfig
a -> StartBuildBatch
s {$sel:logsConfigOverride:StartBuildBatch' :: Maybe LogsConfig
logsConfigOverride = Maybe LogsConfig
a} :: StartBuildBatch)

-- | A @SourceAuth@ object that overrides the one defined in the batch build
-- project. This override applies only if the build project\'s source is
-- BitBucket or GitHub.
startBuildBatch_sourceAuthOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe SourceAuth)
startBuildBatch_sourceAuthOverride :: (Maybe SourceAuth -> f (Maybe SourceAuth))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_sourceAuthOverride = (StartBuildBatch -> Maybe SourceAuth)
-> (StartBuildBatch -> Maybe SourceAuth -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe SourceAuth)
     (Maybe SourceAuth)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe SourceAuth
sourceAuthOverride :: Maybe SourceAuth
$sel:sourceAuthOverride:StartBuildBatch' :: StartBuildBatch -> Maybe SourceAuth
sourceAuthOverride} -> Maybe SourceAuth
sourceAuthOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe SourceAuth
a -> StartBuildBatch
s {$sel:sourceAuthOverride:StartBuildBatch' :: Maybe SourceAuth
sourceAuthOverride = Maybe SourceAuth
a} :: StartBuildBatch)

-- | A @GitSubmodulesConfig@ object that overrides the Git submodules
-- configuration for this batch build.
startBuildBatch_gitSubmodulesConfigOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe GitSubmodulesConfig)
startBuildBatch_gitSubmodulesConfigOverride :: (Maybe GitSubmodulesConfig -> f (Maybe GitSubmodulesConfig))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_gitSubmodulesConfigOverride = (StartBuildBatch -> Maybe GitSubmodulesConfig)
-> (StartBuildBatch
    -> Maybe GitSubmodulesConfig -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe GitSubmodulesConfig)
     (Maybe GitSubmodulesConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe GitSubmodulesConfig
gitSubmodulesConfigOverride :: Maybe GitSubmodulesConfig
$sel:gitSubmodulesConfigOverride:StartBuildBatch' :: StartBuildBatch -> Maybe GitSubmodulesConfig
gitSubmodulesConfigOverride} -> Maybe GitSubmodulesConfig
gitSubmodulesConfigOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe GitSubmodulesConfig
a -> StartBuildBatch
s {$sel:gitSubmodulesConfigOverride:StartBuildBatch' :: Maybe GitSubmodulesConfig
gitSubmodulesConfigOverride = Maybe GitSubmodulesConfig
a} :: StartBuildBatch)

-- | A container type for this batch build that overrides the one specified
-- in the batch build project.
startBuildBatch_environmentTypeOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe EnvironmentType)
startBuildBatch_environmentTypeOverride :: (Maybe EnvironmentType -> f (Maybe EnvironmentType))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_environmentTypeOverride = (StartBuildBatch -> Maybe EnvironmentType)
-> (StartBuildBatch -> Maybe EnvironmentType -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe EnvironmentType)
     (Maybe EnvironmentType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe EnvironmentType
environmentTypeOverride :: Maybe EnvironmentType
$sel:environmentTypeOverride:StartBuildBatch' :: StartBuildBatch -> Maybe EnvironmentType
environmentTypeOverride} -> Maybe EnvironmentType
environmentTypeOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe EnvironmentType
a -> StartBuildBatch
s {$sel:environmentTypeOverride:StartBuildBatch' :: Maybe EnvironmentType
environmentTypeOverride = Maybe EnvironmentType
a} :: StartBuildBatch)

-- | The name of a certificate for this batch build that overrides the one
-- specified in the batch build project.
startBuildBatch_certificateOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Text)
startBuildBatch_certificateOverride :: (Maybe Text -> f (Maybe Text))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_certificateOverride = (StartBuildBatch -> Maybe Text)
-> (StartBuildBatch -> Maybe Text -> StartBuildBatch)
-> Lens StartBuildBatch StartBuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Text
certificateOverride :: Maybe Text
$sel:certificateOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Text
certificateOverride} -> Maybe Text
certificateOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Text
a -> StartBuildBatch
s {$sel:certificateOverride:StartBuildBatch' :: Maybe Text
certificateOverride = Maybe Text
a} :: StartBuildBatch)

-- | The name of a compute type for this batch build that overrides the one
-- specified in the batch build project.
startBuildBatch_computeTypeOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe ComputeType)
startBuildBatch_computeTypeOverride :: (Maybe ComputeType -> f (Maybe ComputeType))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_computeTypeOverride = (StartBuildBatch -> Maybe ComputeType)
-> (StartBuildBatch -> Maybe ComputeType -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe ComputeType)
     (Maybe ComputeType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe ComputeType
computeTypeOverride :: Maybe ComputeType
$sel:computeTypeOverride:StartBuildBatch' :: StartBuildBatch -> Maybe ComputeType
computeTypeOverride} -> Maybe ComputeType
computeTypeOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe ComputeType
a -> StartBuildBatch
s {$sel:computeTypeOverride:StartBuildBatch' :: Maybe ComputeType
computeTypeOverride = Maybe ComputeType
a} :: StartBuildBatch)

-- | Set to @true@ to report to your source provider the status of a batch
-- build\'s start and completion. If you use this option with a source
-- provider other than GitHub, GitHub Enterprise, or Bitbucket, an
-- @invalidInputException@ is thrown.
--
-- The status of a build triggered by a webhook is always reported to your
-- source provider.
startBuildBatch_reportBuildBatchStatusOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Bool)
startBuildBatch_reportBuildBatchStatusOverride :: (Maybe Bool -> f (Maybe Bool))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_reportBuildBatchStatusOverride = (StartBuildBatch -> Maybe Bool)
-> (StartBuildBatch -> Maybe Bool -> StartBuildBatch)
-> Lens StartBuildBatch StartBuildBatch (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Bool
reportBuildBatchStatusOverride :: Maybe Bool
$sel:reportBuildBatchStatusOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Bool
reportBuildBatchStatusOverride} -> Maybe Bool
reportBuildBatchStatusOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Bool
a -> StartBuildBatch
s {$sel:reportBuildBatchStatusOverride:StartBuildBatch' :: Maybe Bool
reportBuildBatchStatusOverride = Maybe Bool
a} :: StartBuildBatch)

-- | Enable this flag to override privileged mode in the batch build project.
startBuildBatch_privilegedModeOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Bool)
startBuildBatch_privilegedModeOverride :: (Maybe Bool -> f (Maybe Bool))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_privilegedModeOverride = (StartBuildBatch -> Maybe Bool)
-> (StartBuildBatch -> Maybe Bool -> StartBuildBatch)
-> Lens StartBuildBatch StartBuildBatch (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Bool
privilegedModeOverride :: Maybe Bool
$sel:privilegedModeOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Bool
privilegedModeOverride} -> Maybe Bool
privilegedModeOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Bool
a -> StartBuildBatch
s {$sel:privilegedModeOverride:StartBuildBatch' :: Maybe Bool
privilegedModeOverride = Maybe Bool
a} :: StartBuildBatch)

-- | The version of the batch build input to be built, for this build only.
-- If not specified, the latest version is used. If specified, the contents
-- depends on the source provider:
--
-- [CodeCommit]
--     The commit ID, branch, or Git tag to use.
--
-- [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.
--
-- [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.
--
-- [Amazon S3]
--     The version ID of the object that represents the build input ZIP
--     file to use.
--
-- If @sourceVersion@ is specified at the project level, then this
-- @sourceVersion@ (at the build level) takes precedence.
--
-- For more information, see
-- <https://docs.aws.amazon.com/codebuild/latest/userguide/sample-source-version.html Source Version Sample with CodeBuild>
-- in the /CodeBuild User Guide/.
startBuildBatch_sourceVersion :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Text)
startBuildBatch_sourceVersion :: (Maybe Text -> f (Maybe Text))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_sourceVersion = (StartBuildBatch -> Maybe Text)
-> (StartBuildBatch -> Maybe Text -> StartBuildBatch)
-> Lens StartBuildBatch StartBuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Text
sourceVersion :: Maybe Text
$sel:sourceVersion:StartBuildBatch' :: StartBuildBatch -> Maybe Text
sourceVersion} -> Maybe Text
sourceVersion) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Text
a -> StartBuildBatch
s {$sel:sourceVersion:StartBuildBatch' :: Maybe Text
sourceVersion = Maybe Text
a} :: StartBuildBatch)

-- | A buildspec file declaration that overrides, for this build only, the
-- latest one already defined in the build project.
--
-- If this value is set, it can be either an inline buildspec definition,
-- the path to an alternate buildspec file relative to the value of the
-- built-in @CODEBUILD_SRC_DIR@ environment variable, or the path to an S3
-- bucket. The bucket must be in the same Amazon Web Services Region as the
-- build project. Specify the buildspec file using its ARN (for example,
-- @arn:aws:s3:::my-codebuild-sample2\/buildspec.yml@). If this value is
-- not provided or is set to an empty string, the source code must contain
-- a buildspec file in its root directory. For more information, see
-- <https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec-ref-name-storage Buildspec File Name and Storage Location>.
startBuildBatch_buildspecOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Text)
startBuildBatch_buildspecOverride :: (Maybe Text -> f (Maybe Text))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_buildspecOverride = (StartBuildBatch -> Maybe Text)
-> (StartBuildBatch -> Maybe Text -> StartBuildBatch)
-> Lens StartBuildBatch StartBuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Text
buildspecOverride :: Maybe Text
$sel:buildspecOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Text
buildspecOverride} -> Maybe Text
buildspecOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Text
a -> StartBuildBatch
s {$sel:buildspecOverride:StartBuildBatch' :: Maybe Text
buildspecOverride = Maybe Text
a} :: StartBuildBatch)

-- | An array of @ProjectSourceVersion@ objects that override the secondary
-- source versions in the batch build project.
startBuildBatch_secondarySourcesVersionOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe [ProjectSourceVersion])
startBuildBatch_secondarySourcesVersionOverride :: (Maybe [ProjectSourceVersion] -> f (Maybe [ProjectSourceVersion]))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_secondarySourcesVersionOverride = (StartBuildBatch -> Maybe [ProjectSourceVersion])
-> (StartBuildBatch
    -> Maybe [ProjectSourceVersion] -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe [ProjectSourceVersion])
     (Maybe [ProjectSourceVersion])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe [ProjectSourceVersion]
secondarySourcesVersionOverride :: Maybe [ProjectSourceVersion]
$sel:secondarySourcesVersionOverride:StartBuildBatch' :: StartBuildBatch -> Maybe [ProjectSourceVersion]
secondarySourcesVersionOverride} -> Maybe [ProjectSourceVersion]
secondarySourcesVersionOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe [ProjectSourceVersion]
a -> StartBuildBatch
s {$sel:secondarySourcesVersionOverride:StartBuildBatch' :: Maybe [ProjectSourceVersion]
secondarySourcesVersionOverride = Maybe [ProjectSourceVersion]
a} :: StartBuildBatch) ((Maybe [ProjectSourceVersion] -> f (Maybe [ProjectSourceVersion]))
 -> StartBuildBatch -> f StartBuildBatch)
-> ((Maybe [ProjectSourceVersion]
     -> f (Maybe [ProjectSourceVersion]))
    -> Maybe [ProjectSourceVersion]
    -> f (Maybe [ProjectSourceVersion]))
-> (Maybe [ProjectSourceVersion]
    -> f (Maybe [ProjectSourceVersion]))
-> StartBuildBatch
-> f StartBuildBatch
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

-- | Enable this flag to override the insecure SSL setting that is specified
-- in the batch build project. The insecure SSL setting determines whether
-- to ignore SSL warnings while connecting to the project source code. This
-- override applies only if the build\'s source is GitHub Enterprise.
startBuildBatch_insecureSslOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Bool)
startBuildBatch_insecureSslOverride :: (Maybe Bool -> f (Maybe Bool))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_insecureSslOverride = (StartBuildBatch -> Maybe Bool)
-> (StartBuildBatch -> Maybe Bool -> StartBuildBatch)
-> Lens StartBuildBatch StartBuildBatch (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Bool
insecureSslOverride :: Maybe Bool
$sel:insecureSslOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Bool
insecureSslOverride} -> Maybe Bool
insecureSslOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Bool
a -> StartBuildBatch
s {$sel:insecureSslOverride:StartBuildBatch' :: Maybe Bool
insecureSslOverride = Maybe Bool
a} :: StartBuildBatch)

-- | The name of an image for this batch build that overrides the one
-- specified in the batch build project.
startBuildBatch_imageOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Text)
startBuildBatch_imageOverride :: (Maybe Text -> f (Maybe Text))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_imageOverride = (StartBuildBatch -> Maybe Text)
-> (StartBuildBatch -> Maybe Text -> StartBuildBatch)
-> Lens StartBuildBatch StartBuildBatch (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Text
imageOverride :: Maybe Text
$sel:imageOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Text
imageOverride} -> Maybe Text
imageOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Text
a -> StartBuildBatch
s {$sel:imageOverride:StartBuildBatch' :: Maybe Text
imageOverride = Maybe Text
a} :: StartBuildBatch)

-- | An array of @ProjectArtifacts@ objects that override the secondary
-- artifacts defined in the batch build project.
startBuildBatch_secondaryArtifactsOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe [ProjectArtifacts])
startBuildBatch_secondaryArtifactsOverride :: (Maybe [ProjectArtifacts] -> f (Maybe [ProjectArtifacts]))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_secondaryArtifactsOverride = (StartBuildBatch -> Maybe [ProjectArtifacts])
-> (StartBuildBatch -> Maybe [ProjectArtifacts] -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe [ProjectArtifacts])
     (Maybe [ProjectArtifacts])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe [ProjectArtifacts]
secondaryArtifactsOverride :: Maybe [ProjectArtifacts]
$sel:secondaryArtifactsOverride:StartBuildBatch' :: StartBuildBatch -> Maybe [ProjectArtifacts]
secondaryArtifactsOverride} -> Maybe [ProjectArtifacts]
secondaryArtifactsOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe [ProjectArtifacts]
a -> StartBuildBatch
s {$sel:secondaryArtifactsOverride:StartBuildBatch' :: Maybe [ProjectArtifacts]
secondaryArtifactsOverride = Maybe [ProjectArtifacts]
a} :: StartBuildBatch) ((Maybe [ProjectArtifacts] -> f (Maybe [ProjectArtifacts]))
 -> StartBuildBatch -> f StartBuildBatch)
-> ((Maybe [ProjectArtifacts] -> f (Maybe [ProjectArtifacts]))
    -> Maybe [ProjectArtifacts] -> f (Maybe [ProjectArtifacts]))
-> (Maybe [ProjectArtifacts] -> f (Maybe [ProjectArtifacts]))
-> StartBuildBatch
-> f StartBuildBatch
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ProjectArtifacts]
  [ProjectArtifacts]
  [ProjectArtifacts]
  [ProjectArtifacts]
-> Iso
     (Maybe [ProjectArtifacts])
     (Maybe [ProjectArtifacts])
     (Maybe [ProjectArtifacts])
     (Maybe [ProjectArtifacts])
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
  [ProjectArtifacts]
  [ProjectArtifacts]
  [ProjectArtifacts]
  [ProjectArtifacts]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Overrides the build timeout specified in the batch build project.
startBuildBatch_buildTimeoutInMinutesOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe Prelude.Natural)
startBuildBatch_buildTimeoutInMinutesOverride :: (Maybe Natural -> f (Maybe Natural))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_buildTimeoutInMinutesOverride = (StartBuildBatch -> Maybe Natural)
-> (StartBuildBatch -> Maybe Natural -> StartBuildBatch)
-> Lens
     StartBuildBatch StartBuildBatch (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe Natural
buildTimeoutInMinutesOverride :: Maybe Natural
$sel:buildTimeoutInMinutesOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Natural
buildTimeoutInMinutesOverride} -> Maybe Natural
buildTimeoutInMinutesOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe Natural
a -> StartBuildBatch
s {$sel:buildTimeoutInMinutesOverride:StartBuildBatch' :: Maybe Natural
buildTimeoutInMinutesOverride = Maybe Natural
a} :: StartBuildBatch)

-- | An array of @ProjectArtifacts@ objects that contains information about
-- the build output artifact overrides for the build project.
startBuildBatch_artifactsOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe ProjectArtifacts)
startBuildBatch_artifactsOverride :: (Maybe ProjectArtifacts -> f (Maybe ProjectArtifacts))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_artifactsOverride = (StartBuildBatch -> Maybe ProjectArtifacts)
-> (StartBuildBatch -> Maybe ProjectArtifacts -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe ProjectArtifacts)
     (Maybe ProjectArtifacts)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe ProjectArtifacts
artifactsOverride :: Maybe ProjectArtifacts
$sel:artifactsOverride:StartBuildBatch' :: StartBuildBatch -> Maybe ProjectArtifacts
artifactsOverride} -> Maybe ProjectArtifacts
artifactsOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe ProjectArtifacts
a -> StartBuildBatch
s {$sel:artifactsOverride:StartBuildBatch' :: Maybe ProjectArtifacts
artifactsOverride = Maybe ProjectArtifacts
a} :: StartBuildBatch)

-- | The source input type that overrides the source input defined in the
-- batch build project.
startBuildBatch_sourceTypeOverride :: Lens.Lens' StartBuildBatch (Prelude.Maybe SourceType)
startBuildBatch_sourceTypeOverride :: (Maybe SourceType -> f (Maybe SourceType))
-> StartBuildBatch -> f StartBuildBatch
startBuildBatch_sourceTypeOverride = (StartBuildBatch -> Maybe SourceType)
-> (StartBuildBatch -> Maybe SourceType -> StartBuildBatch)
-> Lens
     StartBuildBatch
     StartBuildBatch
     (Maybe SourceType)
     (Maybe SourceType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatch' {Maybe SourceType
sourceTypeOverride :: Maybe SourceType
$sel:sourceTypeOverride:StartBuildBatch' :: StartBuildBatch -> Maybe SourceType
sourceTypeOverride} -> Maybe SourceType
sourceTypeOverride) (\s :: StartBuildBatch
s@StartBuildBatch' {} Maybe SourceType
a -> StartBuildBatch
s {$sel:sourceTypeOverride:StartBuildBatch' :: Maybe SourceType
sourceTypeOverride = Maybe SourceType
a} :: StartBuildBatch)

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

instance Core.AWSRequest StartBuildBatch where
  type
    AWSResponse StartBuildBatch =
      StartBuildBatchResponse
  request :: StartBuildBatch -> Request StartBuildBatch
request = Service -> StartBuildBatch -> Request StartBuildBatch
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy StartBuildBatch
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse StartBuildBatch)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse StartBuildBatch))
-> Logger
-> Service
-> Proxy StartBuildBatch
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse StartBuildBatch)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe BuildBatch -> Int -> StartBuildBatchResponse
StartBuildBatchResponse'
            (Maybe BuildBatch -> Int -> StartBuildBatchResponse)
-> Either String (Maybe BuildBatch)
-> Either String (Int -> StartBuildBatchResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe BuildBatch)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"buildBatch")
            Either String (Int -> StartBuildBatchResponse)
-> Either String Int -> Either String StartBuildBatchResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable StartBuildBatch

instance Prelude.NFData StartBuildBatch

instance Core.ToHeaders StartBuildBatch where
  toHeaders :: StartBuildBatch -> ResponseHeaders
toHeaders =
    ResponseHeaders -> StartBuildBatch -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"CodeBuild_20161006.StartBuildBatch" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Core.ToJSON StartBuildBatch where
  toJSON :: StartBuildBatch -> Value
toJSON StartBuildBatch' {Maybe Bool
Maybe Natural
Maybe [EnvironmentVariable]
Maybe [ProjectArtifacts]
Maybe [ProjectSourceVersion]
Maybe [ProjectSource]
Maybe Text
Maybe ComputeType
Maybe EnvironmentType
Maybe GitSubmodulesConfig
Maybe ImagePullCredentialsType
Maybe ProjectArtifacts
Maybe ProjectBuildBatchConfig
Maybe ProjectCache
Maybe RegistryCredential
Maybe LogsConfig
Maybe SourceAuth
Maybe SourceType
Text
projectName :: Text
sourceTypeOverride :: Maybe SourceType
artifactsOverride :: Maybe ProjectArtifacts
buildTimeoutInMinutesOverride :: Maybe Natural
secondaryArtifactsOverride :: Maybe [ProjectArtifacts]
imageOverride :: Maybe Text
insecureSslOverride :: Maybe Bool
secondarySourcesVersionOverride :: Maybe [ProjectSourceVersion]
buildspecOverride :: Maybe Text
sourceVersion :: Maybe Text
privilegedModeOverride :: Maybe Bool
reportBuildBatchStatusOverride :: Maybe Bool
computeTypeOverride :: Maybe ComputeType
certificateOverride :: Maybe Text
environmentTypeOverride :: Maybe EnvironmentType
gitSubmodulesConfigOverride :: Maybe GitSubmodulesConfig
sourceAuthOverride :: Maybe SourceAuth
logsConfigOverride :: Maybe LogsConfig
imagePullCredentialsTypeOverride :: Maybe ImagePullCredentialsType
gitCloneDepthOverride :: Maybe Natural
secondarySourcesOverride :: Maybe [ProjectSource]
queuedTimeoutInMinutesOverride :: Maybe Natural
cacheOverride :: Maybe ProjectCache
serviceRoleOverride :: Maybe Text
registryCredentialOverride :: Maybe RegistryCredential
debugSessionEnabled :: Maybe Bool
idempotencyToken :: Maybe Text
environmentVariablesOverride :: Maybe [EnvironmentVariable]
buildBatchConfigOverride :: Maybe ProjectBuildBatchConfig
sourceLocationOverride :: Maybe Text
encryptionKeyOverride :: Maybe Text
$sel:projectName:StartBuildBatch' :: StartBuildBatch -> Text
$sel:sourceTypeOverride:StartBuildBatch' :: StartBuildBatch -> Maybe SourceType
$sel:artifactsOverride:StartBuildBatch' :: StartBuildBatch -> Maybe ProjectArtifacts
$sel:buildTimeoutInMinutesOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Natural
$sel:secondaryArtifactsOverride:StartBuildBatch' :: StartBuildBatch -> Maybe [ProjectArtifacts]
$sel:imageOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Text
$sel:insecureSslOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Bool
$sel:secondarySourcesVersionOverride:StartBuildBatch' :: StartBuildBatch -> Maybe [ProjectSourceVersion]
$sel:buildspecOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Text
$sel:sourceVersion:StartBuildBatch' :: StartBuildBatch -> Maybe Text
$sel:privilegedModeOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Bool
$sel:reportBuildBatchStatusOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Bool
$sel:computeTypeOverride:StartBuildBatch' :: StartBuildBatch -> Maybe ComputeType
$sel:certificateOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Text
$sel:environmentTypeOverride:StartBuildBatch' :: StartBuildBatch -> Maybe EnvironmentType
$sel:gitSubmodulesConfigOverride:StartBuildBatch' :: StartBuildBatch -> Maybe GitSubmodulesConfig
$sel:sourceAuthOverride:StartBuildBatch' :: StartBuildBatch -> Maybe SourceAuth
$sel:logsConfigOverride:StartBuildBatch' :: StartBuildBatch -> Maybe LogsConfig
$sel:imagePullCredentialsTypeOverride:StartBuildBatch' :: StartBuildBatch -> Maybe ImagePullCredentialsType
$sel:gitCloneDepthOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Natural
$sel:secondarySourcesOverride:StartBuildBatch' :: StartBuildBatch -> Maybe [ProjectSource]
$sel:queuedTimeoutInMinutesOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Natural
$sel:cacheOverride:StartBuildBatch' :: StartBuildBatch -> Maybe ProjectCache
$sel:serviceRoleOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Text
$sel:registryCredentialOverride:StartBuildBatch' :: StartBuildBatch -> Maybe RegistryCredential
$sel:debugSessionEnabled:StartBuildBatch' :: StartBuildBatch -> Maybe Bool
$sel:idempotencyToken:StartBuildBatch' :: StartBuildBatch -> Maybe Text
$sel:environmentVariablesOverride:StartBuildBatch' :: StartBuildBatch -> Maybe [EnvironmentVariable]
$sel:buildBatchConfigOverride:StartBuildBatch' :: StartBuildBatch -> Maybe ProjectBuildBatchConfig
$sel:sourceLocationOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Text
$sel:encryptionKeyOverride:StartBuildBatch' :: StartBuildBatch -> Maybe Text
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"encryptionKeyOverride" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
encryptionKeyOverride,
            (Text
"sourceLocationOverride" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
sourceLocationOverride,
            (Text
"buildBatchConfigOverride" Text -> ProjectBuildBatchConfig -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (ProjectBuildBatchConfig -> Pair)
-> Maybe ProjectBuildBatchConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ProjectBuildBatchConfig
buildBatchConfigOverride,
            (Text
"environmentVariablesOverride" Text -> [EnvironmentVariable] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([EnvironmentVariable] -> Pair)
-> Maybe [EnvironmentVariable] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [EnvironmentVariable]
environmentVariablesOverride,
            (Text
"idempotencyToken" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
idempotencyToken,
            (Text
"debugSessionEnabled" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
debugSessionEnabled,
            (Text
"registryCredentialOverride" Text -> RegistryCredential -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (RegistryCredential -> Pair)
-> Maybe RegistryCredential -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe RegistryCredential
registryCredentialOverride,
            (Text
"serviceRoleOverride" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
serviceRoleOverride,
            (Text
"cacheOverride" Text -> ProjectCache -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (ProjectCache -> Pair) -> Maybe ProjectCache -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ProjectCache
cacheOverride,
            (Text
"queuedTimeoutInMinutesOverride" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
queuedTimeoutInMinutesOverride,
            (Text
"secondarySourcesOverride" Text -> [ProjectSource] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([ProjectSource] -> Pair) -> Maybe [ProjectSource] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ProjectSource]
secondarySourcesOverride,
            (Text
"gitCloneDepthOverride" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
gitCloneDepthOverride,
            (Text
"imagePullCredentialsTypeOverride" Text -> ImagePullCredentialsType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (ImagePullCredentialsType -> Pair)
-> Maybe ImagePullCredentialsType -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ImagePullCredentialsType
imagePullCredentialsTypeOverride,
            (Text
"logsConfigOverride" Text -> LogsConfig -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (LogsConfig -> Pair) -> Maybe LogsConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe LogsConfig
logsConfigOverride,
            (Text
"sourceAuthOverride" Text -> SourceAuth -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (SourceAuth -> Pair) -> Maybe SourceAuth -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SourceAuth
sourceAuthOverride,
            (Text
"gitSubmodulesConfigOverride" Text -> GitSubmodulesConfig -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (GitSubmodulesConfig -> Pair)
-> Maybe GitSubmodulesConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GitSubmodulesConfig
gitSubmodulesConfigOverride,
            (Text
"environmentTypeOverride" Text -> EnvironmentType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (EnvironmentType -> Pair) -> Maybe EnvironmentType -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe EnvironmentType
environmentTypeOverride,
            (Text
"certificateOverride" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
certificateOverride,
            (Text
"computeTypeOverride" Text -> ComputeType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (ComputeType -> Pair) -> Maybe ComputeType -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ComputeType
computeTypeOverride,
            (Text
"reportBuildBatchStatusOverride" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
reportBuildBatchStatusOverride,
            (Text
"privilegedModeOverride" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
privilegedModeOverride,
            (Text
"sourceVersion" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
sourceVersion,
            (Text
"buildspecOverride" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
buildspecOverride,
            (Text
"secondarySourcesVersionOverride" Text -> [ProjectSourceVersion] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([ProjectSourceVersion] -> Pair)
-> Maybe [ProjectSourceVersion] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ProjectSourceVersion]
secondarySourcesVersionOverride,
            (Text
"insecureSslOverride" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
insecureSslOverride,
            (Text
"imageOverride" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
imageOverride,
            (Text
"secondaryArtifactsOverride" Text -> [ProjectArtifacts] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([ProjectArtifacts] -> Pair)
-> Maybe [ProjectArtifacts] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ProjectArtifacts]
secondaryArtifactsOverride,
            (Text
"buildTimeoutInMinutesOverride" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
buildTimeoutInMinutesOverride,
            (Text
"artifactsOverride" Text -> ProjectArtifacts -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (ProjectArtifacts -> Pair) -> Maybe ProjectArtifacts -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ProjectArtifacts
artifactsOverride,
            (Text
"sourceTypeOverride" Text -> SourceType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (SourceType -> Pair) -> Maybe SourceType -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SourceType
sourceTypeOverride,
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"projectName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
projectName)
          ]
      )

instance Core.ToPath StartBuildBatch where
  toPath :: StartBuildBatch -> ByteString
toPath = ByteString -> StartBuildBatch -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Core.ToQuery StartBuildBatch where
  toQuery :: StartBuildBatch -> QueryString
toQuery = QueryString -> StartBuildBatch -> QueryString
forall a b. a -> b -> a
Prelude.const QueryString
forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newStartBuildBatchResponse' smart constructor.
data StartBuildBatchResponse = StartBuildBatchResponse'
  { -- | A @BuildBatch@ object that contains information about the batch build.
    StartBuildBatchResponse -> Maybe BuildBatch
buildBatch :: Prelude.Maybe BuildBatch,
    -- | The response's http status code.
    StartBuildBatchResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (StartBuildBatchResponse -> StartBuildBatchResponse -> Bool
(StartBuildBatchResponse -> StartBuildBatchResponse -> Bool)
-> (StartBuildBatchResponse -> StartBuildBatchResponse -> Bool)
-> Eq StartBuildBatchResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StartBuildBatchResponse -> StartBuildBatchResponse -> Bool
$c/= :: StartBuildBatchResponse -> StartBuildBatchResponse -> Bool
== :: StartBuildBatchResponse -> StartBuildBatchResponse -> Bool
$c== :: StartBuildBatchResponse -> StartBuildBatchResponse -> Bool
Prelude.Eq, ReadPrec [StartBuildBatchResponse]
ReadPrec StartBuildBatchResponse
Int -> ReadS StartBuildBatchResponse
ReadS [StartBuildBatchResponse]
(Int -> ReadS StartBuildBatchResponse)
-> ReadS [StartBuildBatchResponse]
-> ReadPrec StartBuildBatchResponse
-> ReadPrec [StartBuildBatchResponse]
-> Read StartBuildBatchResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StartBuildBatchResponse]
$creadListPrec :: ReadPrec [StartBuildBatchResponse]
readPrec :: ReadPrec StartBuildBatchResponse
$creadPrec :: ReadPrec StartBuildBatchResponse
readList :: ReadS [StartBuildBatchResponse]
$creadList :: ReadS [StartBuildBatchResponse]
readsPrec :: Int -> ReadS StartBuildBatchResponse
$creadsPrec :: Int -> ReadS StartBuildBatchResponse
Prelude.Read, Int -> StartBuildBatchResponse -> ShowS
[StartBuildBatchResponse] -> ShowS
StartBuildBatchResponse -> String
(Int -> StartBuildBatchResponse -> ShowS)
-> (StartBuildBatchResponse -> String)
-> ([StartBuildBatchResponse] -> ShowS)
-> Show StartBuildBatchResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StartBuildBatchResponse] -> ShowS
$cshowList :: [StartBuildBatchResponse] -> ShowS
show :: StartBuildBatchResponse -> String
$cshow :: StartBuildBatchResponse -> String
showsPrec :: Int -> StartBuildBatchResponse -> ShowS
$cshowsPrec :: Int -> StartBuildBatchResponse -> ShowS
Prelude.Show, (forall x.
 StartBuildBatchResponse -> Rep StartBuildBatchResponse x)
-> (forall x.
    Rep StartBuildBatchResponse x -> StartBuildBatchResponse)
-> Generic StartBuildBatchResponse
forall x. Rep StartBuildBatchResponse x -> StartBuildBatchResponse
forall x. StartBuildBatchResponse -> Rep StartBuildBatchResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep StartBuildBatchResponse x -> StartBuildBatchResponse
$cfrom :: forall x. StartBuildBatchResponse -> Rep StartBuildBatchResponse x
Prelude.Generic)

-- |
-- Create a value of 'StartBuildBatchResponse' 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:
--
-- 'buildBatch', 'startBuildBatchResponse_buildBatch' - A @BuildBatch@ object that contains information about the batch build.
--
-- 'httpStatus', 'startBuildBatchResponse_httpStatus' - The response's http status code.
newStartBuildBatchResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  StartBuildBatchResponse
newStartBuildBatchResponse :: Int -> StartBuildBatchResponse
newStartBuildBatchResponse Int
pHttpStatus_ =
  StartBuildBatchResponse' :: Maybe BuildBatch -> Int -> StartBuildBatchResponse
StartBuildBatchResponse'
    { $sel:buildBatch:StartBuildBatchResponse' :: Maybe BuildBatch
buildBatch =
        Maybe BuildBatch
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:StartBuildBatchResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | A @BuildBatch@ object that contains information about the batch build.
startBuildBatchResponse_buildBatch :: Lens.Lens' StartBuildBatchResponse (Prelude.Maybe BuildBatch)
startBuildBatchResponse_buildBatch :: (Maybe BuildBatch -> f (Maybe BuildBatch))
-> StartBuildBatchResponse -> f StartBuildBatchResponse
startBuildBatchResponse_buildBatch = (StartBuildBatchResponse -> Maybe BuildBatch)
-> (StartBuildBatchResponse
    -> Maybe BuildBatch -> StartBuildBatchResponse)
-> Lens
     StartBuildBatchResponse
     StartBuildBatchResponse
     (Maybe BuildBatch)
     (Maybe BuildBatch)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatchResponse' {Maybe BuildBatch
buildBatch :: Maybe BuildBatch
$sel:buildBatch:StartBuildBatchResponse' :: StartBuildBatchResponse -> Maybe BuildBatch
buildBatch} -> Maybe BuildBatch
buildBatch) (\s :: StartBuildBatchResponse
s@StartBuildBatchResponse' {} Maybe BuildBatch
a -> StartBuildBatchResponse
s {$sel:buildBatch:StartBuildBatchResponse' :: Maybe BuildBatch
buildBatch = Maybe BuildBatch
a} :: StartBuildBatchResponse)

-- | The response's http status code.
startBuildBatchResponse_httpStatus :: Lens.Lens' StartBuildBatchResponse Prelude.Int
startBuildBatchResponse_httpStatus :: (Int -> f Int)
-> StartBuildBatchResponse -> f StartBuildBatchResponse
startBuildBatchResponse_httpStatus = (StartBuildBatchResponse -> Int)
-> (StartBuildBatchResponse -> Int -> StartBuildBatchResponse)
-> Lens StartBuildBatchResponse StartBuildBatchResponse Int Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\StartBuildBatchResponse' {Int
httpStatus :: Int
$sel:httpStatus:StartBuildBatchResponse' :: StartBuildBatchResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: StartBuildBatchResponse
s@StartBuildBatchResponse' {} Int
a -> StartBuildBatchResponse
s {$sel:httpStatus:StartBuildBatchResponse' :: Int
httpStatus = Int
a} :: StartBuildBatchResponse)

instance Prelude.NFData StartBuildBatchResponse