{-# 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.CodeCommit.BatchDescribeMergeConflicts
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Returns information about one or more merge conflicts in the attempted
-- merge of two commit specifiers using the squash or three-way merge
-- strategy.
module Amazonka.CodeCommit.BatchDescribeMergeConflicts
  ( -- * Creating a Request
    BatchDescribeMergeConflicts (..),
    newBatchDescribeMergeConflicts,

    -- * Request Lenses
    batchDescribeMergeConflicts_conflictDetailLevel,
    batchDescribeMergeConflicts_conflictResolutionStrategy,
    batchDescribeMergeConflicts_filePaths,
    batchDescribeMergeConflicts_maxConflictFiles,
    batchDescribeMergeConflicts_maxMergeHunks,
    batchDescribeMergeConflicts_nextToken,
    batchDescribeMergeConflicts_repositoryName,
    batchDescribeMergeConflicts_destinationCommitSpecifier,
    batchDescribeMergeConflicts_sourceCommitSpecifier,
    batchDescribeMergeConflicts_mergeOption,

    -- * Destructuring the Response
    BatchDescribeMergeConflictsResponse (..),
    newBatchDescribeMergeConflictsResponse,

    -- * Response Lenses
    batchDescribeMergeConflictsResponse_baseCommitId,
    batchDescribeMergeConflictsResponse_errors,
    batchDescribeMergeConflictsResponse_nextToken,
    batchDescribeMergeConflictsResponse_httpStatus,
    batchDescribeMergeConflictsResponse_conflicts,
    batchDescribeMergeConflictsResponse_destinationCommitId,
    batchDescribeMergeConflictsResponse_sourceCommitId,
  )
where

import Amazonka.CodeCommit.Types
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newBatchDescribeMergeConflicts' smart constructor.
data BatchDescribeMergeConflicts = BatchDescribeMergeConflicts'
  { -- | The level of conflict detail to use. If unspecified, the default
    -- FILE_LEVEL is used, which returns a not-mergeable result if the same
    -- file has differences in both branches. If LINE_LEVEL is specified, a
    -- conflict is considered not mergeable if the same file in both branches
    -- has differences on the same line.
    BatchDescribeMergeConflicts -> Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel :: Prelude.Maybe ConflictDetailLevelTypeEnum,
    -- | Specifies which branch to use when resolving conflicts, or whether to
    -- attempt automatically merging two versions of a file. The default is
    -- NONE, which requires any conflicts to be resolved manually before the
    -- merge operation is successful.
    BatchDescribeMergeConflicts
-> Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy :: Prelude.Maybe ConflictResolutionStrategyTypeEnum,
    -- | The path of the target files used to describe the conflicts. If not
    -- specified, the default is all conflict files.
    BatchDescribeMergeConflicts -> Maybe [Text]
filePaths :: Prelude.Maybe [Prelude.Text],
    -- | The maximum number of files to include in the output.
    BatchDescribeMergeConflicts -> Maybe Int
maxConflictFiles :: Prelude.Maybe Prelude.Int,
    -- | The maximum number of merge hunks to include in the output.
    BatchDescribeMergeConflicts -> Maybe Int
maxMergeHunks :: Prelude.Maybe Prelude.Int,
    -- | An enumeration token that, when provided in a request, returns the next
    -- batch of the results.
    BatchDescribeMergeConflicts -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The name of the repository that contains the merge conflicts you want to
    -- review.
    BatchDescribeMergeConflicts -> Text
repositoryName :: Prelude.Text,
    -- | The branch, tag, HEAD, or other fully qualified reference used to
    -- identify a commit (for example, a branch name or a full commit ID).
    BatchDescribeMergeConflicts -> Text
destinationCommitSpecifier :: Prelude.Text,
    -- | The branch, tag, HEAD, or other fully qualified reference used to
    -- identify a commit (for example, a branch name or a full commit ID).
    BatchDescribeMergeConflicts -> Text
sourceCommitSpecifier :: Prelude.Text,
    -- | The merge option or strategy you want to use to merge the code.
    BatchDescribeMergeConflicts -> MergeOptionTypeEnum
mergeOption :: MergeOptionTypeEnum
  }
  deriving (BatchDescribeMergeConflicts -> BatchDescribeMergeConflicts -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BatchDescribeMergeConflicts -> BatchDescribeMergeConflicts -> Bool
$c/= :: BatchDescribeMergeConflicts -> BatchDescribeMergeConflicts -> Bool
== :: BatchDescribeMergeConflicts -> BatchDescribeMergeConflicts -> Bool
$c== :: BatchDescribeMergeConflicts -> BatchDescribeMergeConflicts -> Bool
Prelude.Eq, ReadPrec [BatchDescribeMergeConflicts]
ReadPrec BatchDescribeMergeConflicts
Int -> ReadS BatchDescribeMergeConflicts
ReadS [BatchDescribeMergeConflicts]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [BatchDescribeMergeConflicts]
$creadListPrec :: ReadPrec [BatchDescribeMergeConflicts]
readPrec :: ReadPrec BatchDescribeMergeConflicts
$creadPrec :: ReadPrec BatchDescribeMergeConflicts
readList :: ReadS [BatchDescribeMergeConflicts]
$creadList :: ReadS [BatchDescribeMergeConflicts]
readsPrec :: Int -> ReadS BatchDescribeMergeConflicts
$creadsPrec :: Int -> ReadS BatchDescribeMergeConflicts
Prelude.Read, Int -> BatchDescribeMergeConflicts -> ShowS
[BatchDescribeMergeConflicts] -> ShowS
BatchDescribeMergeConflicts -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BatchDescribeMergeConflicts] -> ShowS
$cshowList :: [BatchDescribeMergeConflicts] -> ShowS
show :: BatchDescribeMergeConflicts -> String
$cshow :: BatchDescribeMergeConflicts -> String
showsPrec :: Int -> BatchDescribeMergeConflicts -> ShowS
$cshowsPrec :: Int -> BatchDescribeMergeConflicts -> ShowS
Prelude.Show, forall x.
Rep BatchDescribeMergeConflicts x -> BatchDescribeMergeConflicts
forall x.
BatchDescribeMergeConflicts -> Rep BatchDescribeMergeConflicts x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep BatchDescribeMergeConflicts x -> BatchDescribeMergeConflicts
$cfrom :: forall x.
BatchDescribeMergeConflicts -> Rep BatchDescribeMergeConflicts x
Prelude.Generic)

-- |
-- Create a value of 'BatchDescribeMergeConflicts' 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:
--
-- 'conflictDetailLevel', 'batchDescribeMergeConflicts_conflictDetailLevel' - The level of conflict detail to use. If unspecified, the default
-- FILE_LEVEL is used, which returns a not-mergeable result if the same
-- file has differences in both branches. If LINE_LEVEL is specified, a
-- conflict is considered not mergeable if the same file in both branches
-- has differences on the same line.
--
-- 'conflictResolutionStrategy', 'batchDescribeMergeConflicts_conflictResolutionStrategy' - Specifies which branch to use when resolving conflicts, or whether to
-- attempt automatically merging two versions of a file. The default is
-- NONE, which requires any conflicts to be resolved manually before the
-- merge operation is successful.
--
-- 'filePaths', 'batchDescribeMergeConflicts_filePaths' - The path of the target files used to describe the conflicts. If not
-- specified, the default is all conflict files.
--
-- 'maxConflictFiles', 'batchDescribeMergeConflicts_maxConflictFiles' - The maximum number of files to include in the output.
--
-- 'maxMergeHunks', 'batchDescribeMergeConflicts_maxMergeHunks' - The maximum number of merge hunks to include in the output.
--
-- 'nextToken', 'batchDescribeMergeConflicts_nextToken' - An enumeration token that, when provided in a request, returns the next
-- batch of the results.
--
-- 'repositoryName', 'batchDescribeMergeConflicts_repositoryName' - The name of the repository that contains the merge conflicts you want to
-- review.
--
-- 'destinationCommitSpecifier', 'batchDescribeMergeConflicts_destinationCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
-- identify a commit (for example, a branch name or a full commit ID).
--
-- 'sourceCommitSpecifier', 'batchDescribeMergeConflicts_sourceCommitSpecifier' - The branch, tag, HEAD, or other fully qualified reference used to
-- identify a commit (for example, a branch name or a full commit ID).
--
-- 'mergeOption', 'batchDescribeMergeConflicts_mergeOption' - The merge option or strategy you want to use to merge the code.
newBatchDescribeMergeConflicts ::
  -- | 'repositoryName'
  Prelude.Text ->
  -- | 'destinationCommitSpecifier'
  Prelude.Text ->
  -- | 'sourceCommitSpecifier'
  Prelude.Text ->
  -- | 'mergeOption'
  MergeOptionTypeEnum ->
  BatchDescribeMergeConflicts
newBatchDescribeMergeConflicts :: Text
-> Text
-> Text
-> MergeOptionTypeEnum
-> BatchDescribeMergeConflicts
newBatchDescribeMergeConflicts
  Text
pRepositoryName_
  Text
pDestinationCommitSpecifier_
  Text
pSourceCommitSpecifier_
  MergeOptionTypeEnum
pMergeOption_ =
    BatchDescribeMergeConflicts'
      { $sel:conflictDetailLevel:BatchDescribeMergeConflicts' :: Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel =
          forall a. Maybe a
Prelude.Nothing,
        $sel:conflictResolutionStrategy:BatchDescribeMergeConflicts' :: Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy = forall a. Maybe a
Prelude.Nothing,
        $sel:filePaths:BatchDescribeMergeConflicts' :: Maybe [Text]
filePaths = forall a. Maybe a
Prelude.Nothing,
        $sel:maxConflictFiles:BatchDescribeMergeConflicts' :: Maybe Int
maxConflictFiles = forall a. Maybe a
Prelude.Nothing,
        $sel:maxMergeHunks:BatchDescribeMergeConflicts' :: Maybe Int
maxMergeHunks = forall a. Maybe a
Prelude.Nothing,
        $sel:nextToken:BatchDescribeMergeConflicts' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
        $sel:repositoryName:BatchDescribeMergeConflicts' :: Text
repositoryName = Text
pRepositoryName_,
        $sel:destinationCommitSpecifier:BatchDescribeMergeConflicts' :: Text
destinationCommitSpecifier =
          Text
pDestinationCommitSpecifier_,
        $sel:sourceCommitSpecifier:BatchDescribeMergeConflicts' :: Text
sourceCommitSpecifier =
          Text
pSourceCommitSpecifier_,
        $sel:mergeOption:BatchDescribeMergeConflicts' :: MergeOptionTypeEnum
mergeOption = MergeOptionTypeEnum
pMergeOption_
      }

-- | The level of conflict detail to use. If unspecified, the default
-- FILE_LEVEL is used, which returns a not-mergeable result if the same
-- file has differences in both branches. If LINE_LEVEL is specified, a
-- conflict is considered not mergeable if the same file in both branches
-- has differences on the same line.
batchDescribeMergeConflicts_conflictDetailLevel :: Lens.Lens' BatchDescribeMergeConflicts (Prelude.Maybe ConflictDetailLevelTypeEnum)
batchDescribeMergeConflicts_conflictDetailLevel :: Lens'
  BatchDescribeMergeConflicts (Maybe ConflictDetailLevelTypeEnum)
batchDescribeMergeConflicts_conflictDetailLevel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflicts' {Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel :: Maybe ConflictDetailLevelTypeEnum
$sel:conflictDetailLevel:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel} -> Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel) (\s :: BatchDescribeMergeConflicts
s@BatchDescribeMergeConflicts' {} Maybe ConflictDetailLevelTypeEnum
a -> BatchDescribeMergeConflicts
s {$sel:conflictDetailLevel:BatchDescribeMergeConflicts' :: Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel = Maybe ConflictDetailLevelTypeEnum
a} :: BatchDescribeMergeConflicts)

-- | Specifies which branch to use when resolving conflicts, or whether to
-- attempt automatically merging two versions of a file. The default is
-- NONE, which requires any conflicts to be resolved manually before the
-- merge operation is successful.
batchDescribeMergeConflicts_conflictResolutionStrategy :: Lens.Lens' BatchDescribeMergeConflicts (Prelude.Maybe ConflictResolutionStrategyTypeEnum)
batchDescribeMergeConflicts_conflictResolutionStrategy :: Lens'
  BatchDescribeMergeConflicts
  (Maybe ConflictResolutionStrategyTypeEnum)
batchDescribeMergeConflicts_conflictResolutionStrategy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflicts' {Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy :: Maybe ConflictResolutionStrategyTypeEnum
$sel:conflictResolutionStrategy:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts
-> Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy} -> Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy) (\s :: BatchDescribeMergeConflicts
s@BatchDescribeMergeConflicts' {} Maybe ConflictResolutionStrategyTypeEnum
a -> BatchDescribeMergeConflicts
s {$sel:conflictResolutionStrategy:BatchDescribeMergeConflicts' :: Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy = Maybe ConflictResolutionStrategyTypeEnum
a} :: BatchDescribeMergeConflicts)

-- | The path of the target files used to describe the conflicts. If not
-- specified, the default is all conflict files.
batchDescribeMergeConflicts_filePaths :: Lens.Lens' BatchDescribeMergeConflicts (Prelude.Maybe [Prelude.Text])
batchDescribeMergeConflicts_filePaths :: Lens' BatchDescribeMergeConflicts (Maybe [Text])
batchDescribeMergeConflicts_filePaths = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflicts' {Maybe [Text]
filePaths :: Maybe [Text]
$sel:filePaths:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe [Text]
filePaths} -> Maybe [Text]
filePaths) (\s :: BatchDescribeMergeConflicts
s@BatchDescribeMergeConflicts' {} Maybe [Text]
a -> BatchDescribeMergeConflicts
s {$sel:filePaths:BatchDescribeMergeConflicts' :: Maybe [Text]
filePaths = Maybe [Text]
a} :: BatchDescribeMergeConflicts) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The maximum number of files to include in the output.
batchDescribeMergeConflicts_maxConflictFiles :: Lens.Lens' BatchDescribeMergeConflicts (Prelude.Maybe Prelude.Int)
batchDescribeMergeConflicts_maxConflictFiles :: Lens' BatchDescribeMergeConflicts (Maybe Int)
batchDescribeMergeConflicts_maxConflictFiles = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflicts' {Maybe Int
maxConflictFiles :: Maybe Int
$sel:maxConflictFiles:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe Int
maxConflictFiles} -> Maybe Int
maxConflictFiles) (\s :: BatchDescribeMergeConflicts
s@BatchDescribeMergeConflicts' {} Maybe Int
a -> BatchDescribeMergeConflicts
s {$sel:maxConflictFiles:BatchDescribeMergeConflicts' :: Maybe Int
maxConflictFiles = Maybe Int
a} :: BatchDescribeMergeConflicts)

-- | The maximum number of merge hunks to include in the output.
batchDescribeMergeConflicts_maxMergeHunks :: Lens.Lens' BatchDescribeMergeConflicts (Prelude.Maybe Prelude.Int)
batchDescribeMergeConflicts_maxMergeHunks :: Lens' BatchDescribeMergeConflicts (Maybe Int)
batchDescribeMergeConflicts_maxMergeHunks = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflicts' {Maybe Int
maxMergeHunks :: Maybe Int
$sel:maxMergeHunks:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe Int
maxMergeHunks} -> Maybe Int
maxMergeHunks) (\s :: BatchDescribeMergeConflicts
s@BatchDescribeMergeConflicts' {} Maybe Int
a -> BatchDescribeMergeConflicts
s {$sel:maxMergeHunks:BatchDescribeMergeConflicts' :: Maybe Int
maxMergeHunks = Maybe Int
a} :: BatchDescribeMergeConflicts)

-- | An enumeration token that, when provided in a request, returns the next
-- batch of the results.
batchDescribeMergeConflicts_nextToken :: Lens.Lens' BatchDescribeMergeConflicts (Prelude.Maybe Prelude.Text)
batchDescribeMergeConflicts_nextToken :: Lens' BatchDescribeMergeConflicts (Maybe Text)
batchDescribeMergeConflicts_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflicts' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: BatchDescribeMergeConflicts
s@BatchDescribeMergeConflicts' {} Maybe Text
a -> BatchDescribeMergeConflicts
s {$sel:nextToken:BatchDescribeMergeConflicts' :: Maybe Text
nextToken = Maybe Text
a} :: BatchDescribeMergeConflicts)

-- | The name of the repository that contains the merge conflicts you want to
-- review.
batchDescribeMergeConflicts_repositoryName :: Lens.Lens' BatchDescribeMergeConflicts Prelude.Text
batchDescribeMergeConflicts_repositoryName :: Lens' BatchDescribeMergeConflicts Text
batchDescribeMergeConflicts_repositoryName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflicts' {Text
repositoryName :: Text
$sel:repositoryName:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Text
repositoryName} -> Text
repositoryName) (\s :: BatchDescribeMergeConflicts
s@BatchDescribeMergeConflicts' {} Text
a -> BatchDescribeMergeConflicts
s {$sel:repositoryName:BatchDescribeMergeConflicts' :: Text
repositoryName = Text
a} :: BatchDescribeMergeConflicts)

-- | The branch, tag, HEAD, or other fully qualified reference used to
-- identify a commit (for example, a branch name or a full commit ID).
batchDescribeMergeConflicts_destinationCommitSpecifier :: Lens.Lens' BatchDescribeMergeConflicts Prelude.Text
batchDescribeMergeConflicts_destinationCommitSpecifier :: Lens' BatchDescribeMergeConflicts Text
batchDescribeMergeConflicts_destinationCommitSpecifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflicts' {Text
destinationCommitSpecifier :: Text
$sel:destinationCommitSpecifier:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Text
destinationCommitSpecifier} -> Text
destinationCommitSpecifier) (\s :: BatchDescribeMergeConflicts
s@BatchDescribeMergeConflicts' {} Text
a -> BatchDescribeMergeConflicts
s {$sel:destinationCommitSpecifier:BatchDescribeMergeConflicts' :: Text
destinationCommitSpecifier = Text
a} :: BatchDescribeMergeConflicts)

-- | The branch, tag, HEAD, or other fully qualified reference used to
-- identify a commit (for example, a branch name or a full commit ID).
batchDescribeMergeConflicts_sourceCommitSpecifier :: Lens.Lens' BatchDescribeMergeConflicts Prelude.Text
batchDescribeMergeConflicts_sourceCommitSpecifier :: Lens' BatchDescribeMergeConflicts Text
batchDescribeMergeConflicts_sourceCommitSpecifier = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflicts' {Text
sourceCommitSpecifier :: Text
$sel:sourceCommitSpecifier:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Text
sourceCommitSpecifier} -> Text
sourceCommitSpecifier) (\s :: BatchDescribeMergeConflicts
s@BatchDescribeMergeConflicts' {} Text
a -> BatchDescribeMergeConflicts
s {$sel:sourceCommitSpecifier:BatchDescribeMergeConflicts' :: Text
sourceCommitSpecifier = Text
a} :: BatchDescribeMergeConflicts)

-- | The merge option or strategy you want to use to merge the code.
batchDescribeMergeConflicts_mergeOption :: Lens.Lens' BatchDescribeMergeConflicts MergeOptionTypeEnum
batchDescribeMergeConflicts_mergeOption :: Lens' BatchDescribeMergeConflicts MergeOptionTypeEnum
batchDescribeMergeConflicts_mergeOption = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflicts' {MergeOptionTypeEnum
mergeOption :: MergeOptionTypeEnum
$sel:mergeOption:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> MergeOptionTypeEnum
mergeOption} -> MergeOptionTypeEnum
mergeOption) (\s :: BatchDescribeMergeConflicts
s@BatchDescribeMergeConflicts' {} MergeOptionTypeEnum
a -> BatchDescribeMergeConflicts
s {$sel:mergeOption:BatchDescribeMergeConflicts' :: MergeOptionTypeEnum
mergeOption = MergeOptionTypeEnum
a} :: BatchDescribeMergeConflicts)

instance Core.AWSRequest BatchDescribeMergeConflicts where
  type
    AWSResponse BatchDescribeMergeConflicts =
      BatchDescribeMergeConflictsResponse
  request :: (Service -> Service)
-> BatchDescribeMergeConflicts
-> Request BatchDescribeMergeConflicts
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy BatchDescribeMergeConflicts
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse BatchDescribeMergeConflicts)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe [BatchDescribeMergeConflictsError]
-> Maybe Text
-> Int
-> [Conflict]
-> Text
-> Text
-> BatchDescribeMergeConflictsResponse
BatchDescribeMergeConflictsResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"baseCommitId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"errors" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"nextToken")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"conflicts" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ forall a. Monoid a => a
Prelude.mempty)
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"destinationCommitId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"sourceCommitId")
      )

instance Prelude.Hashable BatchDescribeMergeConflicts where
  hashWithSalt :: Int -> BatchDescribeMergeConflicts -> Int
hashWithSalt Int
_salt BatchDescribeMergeConflicts' {Maybe Int
Maybe [Text]
Maybe Text
Maybe ConflictDetailLevelTypeEnum
Maybe ConflictResolutionStrategyTypeEnum
Text
MergeOptionTypeEnum
mergeOption :: MergeOptionTypeEnum
sourceCommitSpecifier :: Text
destinationCommitSpecifier :: Text
repositoryName :: Text
nextToken :: Maybe Text
maxMergeHunks :: Maybe Int
maxConflictFiles :: Maybe Int
filePaths :: Maybe [Text]
conflictResolutionStrategy :: Maybe ConflictResolutionStrategyTypeEnum
conflictDetailLevel :: Maybe ConflictDetailLevelTypeEnum
$sel:mergeOption:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> MergeOptionTypeEnum
$sel:sourceCommitSpecifier:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Text
$sel:destinationCommitSpecifier:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Text
$sel:repositoryName:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Text
$sel:nextToken:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe Text
$sel:maxMergeHunks:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe Int
$sel:maxConflictFiles:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe Int
$sel:filePaths:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe [Text]
$sel:conflictResolutionStrategy:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts
-> Maybe ConflictResolutionStrategyTypeEnum
$sel:conflictDetailLevel:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe ConflictDetailLevelTypeEnum
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [Text]
filePaths
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxConflictFiles
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
maxMergeHunks
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
nextToken
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
repositoryName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
destinationCommitSpecifier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
sourceCommitSpecifier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` MergeOptionTypeEnum
mergeOption

instance Prelude.NFData BatchDescribeMergeConflicts where
  rnf :: BatchDescribeMergeConflicts -> ()
rnf BatchDescribeMergeConflicts' {Maybe Int
Maybe [Text]
Maybe Text
Maybe ConflictDetailLevelTypeEnum
Maybe ConflictResolutionStrategyTypeEnum
Text
MergeOptionTypeEnum
mergeOption :: MergeOptionTypeEnum
sourceCommitSpecifier :: Text
destinationCommitSpecifier :: Text
repositoryName :: Text
nextToken :: Maybe Text
maxMergeHunks :: Maybe Int
maxConflictFiles :: Maybe Int
filePaths :: Maybe [Text]
conflictResolutionStrategy :: Maybe ConflictResolutionStrategyTypeEnum
conflictDetailLevel :: Maybe ConflictDetailLevelTypeEnum
$sel:mergeOption:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> MergeOptionTypeEnum
$sel:sourceCommitSpecifier:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Text
$sel:destinationCommitSpecifier:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Text
$sel:repositoryName:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Text
$sel:nextToken:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe Text
$sel:maxMergeHunks:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe Int
$sel:maxConflictFiles:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe Int
$sel:filePaths:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe [Text]
$sel:conflictResolutionStrategy:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts
-> Maybe ConflictResolutionStrategyTypeEnum
$sel:conflictDetailLevel:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe ConflictDetailLevelTypeEnum
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
filePaths
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxConflictFiles
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
maxMergeHunks
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
repositoryName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
destinationCommitSpecifier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
sourceCommitSpecifier
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf MergeOptionTypeEnum
mergeOption

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

instance Data.ToJSON BatchDescribeMergeConflicts where
  toJSON :: BatchDescribeMergeConflicts -> Value
toJSON BatchDescribeMergeConflicts' {Maybe Int
Maybe [Text]
Maybe Text
Maybe ConflictDetailLevelTypeEnum
Maybe ConflictResolutionStrategyTypeEnum
Text
MergeOptionTypeEnum
mergeOption :: MergeOptionTypeEnum
sourceCommitSpecifier :: Text
destinationCommitSpecifier :: Text
repositoryName :: Text
nextToken :: Maybe Text
maxMergeHunks :: Maybe Int
maxConflictFiles :: Maybe Int
filePaths :: Maybe [Text]
conflictResolutionStrategy :: Maybe ConflictResolutionStrategyTypeEnum
conflictDetailLevel :: Maybe ConflictDetailLevelTypeEnum
$sel:mergeOption:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> MergeOptionTypeEnum
$sel:sourceCommitSpecifier:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Text
$sel:destinationCommitSpecifier:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Text
$sel:repositoryName:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Text
$sel:nextToken:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe Text
$sel:maxMergeHunks:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe Int
$sel:maxConflictFiles:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe Int
$sel:filePaths:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe [Text]
$sel:conflictResolutionStrategy:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts
-> Maybe ConflictResolutionStrategyTypeEnum
$sel:conflictDetailLevel:BatchDescribeMergeConflicts' :: BatchDescribeMergeConflicts -> Maybe ConflictDetailLevelTypeEnum
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"conflictDetailLevel" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel,
            (Key
"conflictResolutionStrategy" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy,
            (Key
"filePaths" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
filePaths,
            (Key
"maxConflictFiles" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
maxConflictFiles,
            (Key
"maxMergeHunks" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
maxMergeHunks,
            (Key
"nextToken" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
nextToken,
            forall a. a -> Maybe a
Prelude.Just
              (Key
"repositoryName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
repositoryName),
            forall a. a -> Maybe a
Prelude.Just
              ( Key
"destinationCommitSpecifier"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
destinationCommitSpecifier
              ),
            forall a. a -> Maybe a
Prelude.Just
              ( Key
"sourceCommitSpecifier"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
sourceCommitSpecifier
              ),
            forall a. a -> Maybe a
Prelude.Just (Key
"mergeOption" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= MergeOptionTypeEnum
mergeOption)
          ]
      )

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

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

-- | /See:/ 'newBatchDescribeMergeConflictsResponse' smart constructor.
data BatchDescribeMergeConflictsResponse = BatchDescribeMergeConflictsResponse'
  { -- | The commit ID of the merge base.
    BatchDescribeMergeConflictsResponse -> Maybe Text
baseCommitId :: Prelude.Maybe Prelude.Text,
    -- | A list of any errors returned while describing the merge conflicts for
    -- each file.
    BatchDescribeMergeConflictsResponse
-> Maybe [BatchDescribeMergeConflictsError]
errors :: Prelude.Maybe [BatchDescribeMergeConflictsError],
    -- | An enumeration token that can be used in a request to return the next
    -- batch of the results.
    BatchDescribeMergeConflictsResponse -> Maybe Text
nextToken :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    BatchDescribeMergeConflictsResponse -> Int
httpStatus :: Prelude.Int,
    -- | A list of conflicts for each file, including the conflict metadata and
    -- the hunks of the differences between the files.
    BatchDescribeMergeConflictsResponse -> [Conflict]
conflicts :: [Conflict],
    -- | The commit ID of the destination commit specifier that was used in the
    -- merge evaluation.
    BatchDescribeMergeConflictsResponse -> Text
destinationCommitId :: Prelude.Text,
    -- | The commit ID of the source commit specifier that was used in the merge
    -- evaluation.
    BatchDescribeMergeConflictsResponse -> Text
sourceCommitId :: Prelude.Text
  }
  deriving (BatchDescribeMergeConflictsResponse
-> BatchDescribeMergeConflictsResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BatchDescribeMergeConflictsResponse
-> BatchDescribeMergeConflictsResponse -> Bool
$c/= :: BatchDescribeMergeConflictsResponse
-> BatchDescribeMergeConflictsResponse -> Bool
== :: BatchDescribeMergeConflictsResponse
-> BatchDescribeMergeConflictsResponse -> Bool
$c== :: BatchDescribeMergeConflictsResponse
-> BatchDescribeMergeConflictsResponse -> Bool
Prelude.Eq, ReadPrec [BatchDescribeMergeConflictsResponse]
ReadPrec BatchDescribeMergeConflictsResponse
Int -> ReadS BatchDescribeMergeConflictsResponse
ReadS [BatchDescribeMergeConflictsResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [BatchDescribeMergeConflictsResponse]
$creadListPrec :: ReadPrec [BatchDescribeMergeConflictsResponse]
readPrec :: ReadPrec BatchDescribeMergeConflictsResponse
$creadPrec :: ReadPrec BatchDescribeMergeConflictsResponse
readList :: ReadS [BatchDescribeMergeConflictsResponse]
$creadList :: ReadS [BatchDescribeMergeConflictsResponse]
readsPrec :: Int -> ReadS BatchDescribeMergeConflictsResponse
$creadsPrec :: Int -> ReadS BatchDescribeMergeConflictsResponse
Prelude.Read, Int -> BatchDescribeMergeConflictsResponse -> ShowS
[BatchDescribeMergeConflictsResponse] -> ShowS
BatchDescribeMergeConflictsResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BatchDescribeMergeConflictsResponse] -> ShowS
$cshowList :: [BatchDescribeMergeConflictsResponse] -> ShowS
show :: BatchDescribeMergeConflictsResponse -> String
$cshow :: BatchDescribeMergeConflictsResponse -> String
showsPrec :: Int -> BatchDescribeMergeConflictsResponse -> ShowS
$cshowsPrec :: Int -> BatchDescribeMergeConflictsResponse -> ShowS
Prelude.Show, forall x.
Rep BatchDescribeMergeConflictsResponse x
-> BatchDescribeMergeConflictsResponse
forall x.
BatchDescribeMergeConflictsResponse
-> Rep BatchDescribeMergeConflictsResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep BatchDescribeMergeConflictsResponse x
-> BatchDescribeMergeConflictsResponse
$cfrom :: forall x.
BatchDescribeMergeConflictsResponse
-> Rep BatchDescribeMergeConflictsResponse x
Prelude.Generic)

-- |
-- Create a value of 'BatchDescribeMergeConflictsResponse' 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:
--
-- 'baseCommitId', 'batchDescribeMergeConflictsResponse_baseCommitId' - The commit ID of the merge base.
--
-- 'errors', 'batchDescribeMergeConflictsResponse_errors' - A list of any errors returned while describing the merge conflicts for
-- each file.
--
-- 'nextToken', 'batchDescribeMergeConflictsResponse_nextToken' - An enumeration token that can be used in a request to return the next
-- batch of the results.
--
-- 'httpStatus', 'batchDescribeMergeConflictsResponse_httpStatus' - The response's http status code.
--
-- 'conflicts', 'batchDescribeMergeConflictsResponse_conflicts' - A list of conflicts for each file, including the conflict metadata and
-- the hunks of the differences between the files.
--
-- 'destinationCommitId', 'batchDescribeMergeConflictsResponse_destinationCommitId' - The commit ID of the destination commit specifier that was used in the
-- merge evaluation.
--
-- 'sourceCommitId', 'batchDescribeMergeConflictsResponse_sourceCommitId' - The commit ID of the source commit specifier that was used in the merge
-- evaluation.
newBatchDescribeMergeConflictsResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'destinationCommitId'
  Prelude.Text ->
  -- | 'sourceCommitId'
  Prelude.Text ->
  BatchDescribeMergeConflictsResponse
newBatchDescribeMergeConflictsResponse :: Int -> Text -> Text -> BatchDescribeMergeConflictsResponse
newBatchDescribeMergeConflictsResponse
  Int
pHttpStatus_
  Text
pDestinationCommitId_
  Text
pSourceCommitId_ =
    BatchDescribeMergeConflictsResponse'
      { $sel:baseCommitId:BatchDescribeMergeConflictsResponse' :: Maybe Text
baseCommitId =
          forall a. Maybe a
Prelude.Nothing,
        $sel:errors:BatchDescribeMergeConflictsResponse' :: Maybe [BatchDescribeMergeConflictsError]
errors = forall a. Maybe a
Prelude.Nothing,
        $sel:nextToken:BatchDescribeMergeConflictsResponse' :: Maybe Text
nextToken = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:BatchDescribeMergeConflictsResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:conflicts:BatchDescribeMergeConflictsResponse' :: [Conflict]
conflicts = forall a. Monoid a => a
Prelude.mempty,
        $sel:destinationCommitId:BatchDescribeMergeConflictsResponse' :: Text
destinationCommitId =
          Text
pDestinationCommitId_,
        $sel:sourceCommitId:BatchDescribeMergeConflictsResponse' :: Text
sourceCommitId = Text
pSourceCommitId_
      }

-- | The commit ID of the merge base.
batchDescribeMergeConflictsResponse_baseCommitId :: Lens.Lens' BatchDescribeMergeConflictsResponse (Prelude.Maybe Prelude.Text)
batchDescribeMergeConflictsResponse_baseCommitId :: Lens' BatchDescribeMergeConflictsResponse (Maybe Text)
batchDescribeMergeConflictsResponse_baseCommitId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflictsResponse' {Maybe Text
baseCommitId :: Maybe Text
$sel:baseCommitId:BatchDescribeMergeConflictsResponse' :: BatchDescribeMergeConflictsResponse -> Maybe Text
baseCommitId} -> Maybe Text
baseCommitId) (\s :: BatchDescribeMergeConflictsResponse
s@BatchDescribeMergeConflictsResponse' {} Maybe Text
a -> BatchDescribeMergeConflictsResponse
s {$sel:baseCommitId:BatchDescribeMergeConflictsResponse' :: Maybe Text
baseCommitId = Maybe Text
a} :: BatchDescribeMergeConflictsResponse)

-- | A list of any errors returned while describing the merge conflicts for
-- each file.
batchDescribeMergeConflictsResponse_errors :: Lens.Lens' BatchDescribeMergeConflictsResponse (Prelude.Maybe [BatchDescribeMergeConflictsError])
batchDescribeMergeConflictsResponse_errors :: Lens'
  BatchDescribeMergeConflictsResponse
  (Maybe [BatchDescribeMergeConflictsError])
batchDescribeMergeConflictsResponse_errors = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflictsResponse' {Maybe [BatchDescribeMergeConflictsError]
errors :: Maybe [BatchDescribeMergeConflictsError]
$sel:errors:BatchDescribeMergeConflictsResponse' :: BatchDescribeMergeConflictsResponse
-> Maybe [BatchDescribeMergeConflictsError]
errors} -> Maybe [BatchDescribeMergeConflictsError]
errors) (\s :: BatchDescribeMergeConflictsResponse
s@BatchDescribeMergeConflictsResponse' {} Maybe [BatchDescribeMergeConflictsError]
a -> BatchDescribeMergeConflictsResponse
s {$sel:errors:BatchDescribeMergeConflictsResponse' :: Maybe [BatchDescribeMergeConflictsError]
errors = Maybe [BatchDescribeMergeConflictsError]
a} :: BatchDescribeMergeConflictsResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | An enumeration token that can be used in a request to return the next
-- batch of the results.
batchDescribeMergeConflictsResponse_nextToken :: Lens.Lens' BatchDescribeMergeConflictsResponse (Prelude.Maybe Prelude.Text)
batchDescribeMergeConflictsResponse_nextToken :: Lens' BatchDescribeMergeConflictsResponse (Maybe Text)
batchDescribeMergeConflictsResponse_nextToken = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflictsResponse' {Maybe Text
nextToken :: Maybe Text
$sel:nextToken:BatchDescribeMergeConflictsResponse' :: BatchDescribeMergeConflictsResponse -> Maybe Text
nextToken} -> Maybe Text
nextToken) (\s :: BatchDescribeMergeConflictsResponse
s@BatchDescribeMergeConflictsResponse' {} Maybe Text
a -> BatchDescribeMergeConflictsResponse
s {$sel:nextToken:BatchDescribeMergeConflictsResponse' :: Maybe Text
nextToken = Maybe Text
a} :: BatchDescribeMergeConflictsResponse)

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

-- | A list of conflicts for each file, including the conflict metadata and
-- the hunks of the differences between the files.
batchDescribeMergeConflictsResponse_conflicts :: Lens.Lens' BatchDescribeMergeConflictsResponse [Conflict]
batchDescribeMergeConflictsResponse_conflicts :: Lens' BatchDescribeMergeConflictsResponse [Conflict]
batchDescribeMergeConflictsResponse_conflicts = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflictsResponse' {[Conflict]
conflicts :: [Conflict]
$sel:conflicts:BatchDescribeMergeConflictsResponse' :: BatchDescribeMergeConflictsResponse -> [Conflict]
conflicts} -> [Conflict]
conflicts) (\s :: BatchDescribeMergeConflictsResponse
s@BatchDescribeMergeConflictsResponse' {} [Conflict]
a -> BatchDescribeMergeConflictsResponse
s {$sel:conflicts:BatchDescribeMergeConflictsResponse' :: [Conflict]
conflicts = [Conflict]
a} :: BatchDescribeMergeConflictsResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The commit ID of the destination commit specifier that was used in the
-- merge evaluation.
batchDescribeMergeConflictsResponse_destinationCommitId :: Lens.Lens' BatchDescribeMergeConflictsResponse Prelude.Text
batchDescribeMergeConflictsResponse_destinationCommitId :: Lens' BatchDescribeMergeConflictsResponse Text
batchDescribeMergeConflictsResponse_destinationCommitId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflictsResponse' {Text
destinationCommitId :: Text
$sel:destinationCommitId:BatchDescribeMergeConflictsResponse' :: BatchDescribeMergeConflictsResponse -> Text
destinationCommitId} -> Text
destinationCommitId) (\s :: BatchDescribeMergeConflictsResponse
s@BatchDescribeMergeConflictsResponse' {} Text
a -> BatchDescribeMergeConflictsResponse
s {$sel:destinationCommitId:BatchDescribeMergeConflictsResponse' :: Text
destinationCommitId = Text
a} :: BatchDescribeMergeConflictsResponse)

-- | The commit ID of the source commit specifier that was used in the merge
-- evaluation.
batchDescribeMergeConflictsResponse_sourceCommitId :: Lens.Lens' BatchDescribeMergeConflictsResponse Prelude.Text
batchDescribeMergeConflictsResponse_sourceCommitId :: Lens' BatchDescribeMergeConflictsResponse Text
batchDescribeMergeConflictsResponse_sourceCommitId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\BatchDescribeMergeConflictsResponse' {Text
sourceCommitId :: Text
$sel:sourceCommitId:BatchDescribeMergeConflictsResponse' :: BatchDescribeMergeConflictsResponse -> Text
sourceCommitId} -> Text
sourceCommitId) (\s :: BatchDescribeMergeConflictsResponse
s@BatchDescribeMergeConflictsResponse' {} Text
a -> BatchDescribeMergeConflictsResponse
s {$sel:sourceCommitId:BatchDescribeMergeConflictsResponse' :: Text
sourceCommitId = Text
a} :: BatchDescribeMergeConflictsResponse)

instance
  Prelude.NFData
    BatchDescribeMergeConflictsResponse
  where
  rnf :: BatchDescribeMergeConflictsResponse -> ()
rnf BatchDescribeMergeConflictsResponse' {Int
[Conflict]
Maybe [BatchDescribeMergeConflictsError]
Maybe Text
Text
sourceCommitId :: Text
destinationCommitId :: Text
conflicts :: [Conflict]
httpStatus :: Int
nextToken :: Maybe Text
errors :: Maybe [BatchDescribeMergeConflictsError]
baseCommitId :: Maybe Text
$sel:sourceCommitId:BatchDescribeMergeConflictsResponse' :: BatchDescribeMergeConflictsResponse -> Text
$sel:destinationCommitId:BatchDescribeMergeConflictsResponse' :: BatchDescribeMergeConflictsResponse -> Text
$sel:conflicts:BatchDescribeMergeConflictsResponse' :: BatchDescribeMergeConflictsResponse -> [Conflict]
$sel:httpStatus:BatchDescribeMergeConflictsResponse' :: BatchDescribeMergeConflictsResponse -> Int
$sel:nextToken:BatchDescribeMergeConflictsResponse' :: BatchDescribeMergeConflictsResponse -> Maybe Text
$sel:errors:BatchDescribeMergeConflictsResponse' :: BatchDescribeMergeConflictsResponse
-> Maybe [BatchDescribeMergeConflictsError]
$sel:baseCommitId:BatchDescribeMergeConflictsResponse' :: BatchDescribeMergeConflictsResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
baseCommitId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [BatchDescribeMergeConflictsError]
errors
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
nextToken
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf [Conflict]
conflicts
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
destinationCommitId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
sourceCommitId