{-# 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.CreateUnreferencedMergeCommit
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Creates an unreferenced commit that represents the result of merging two
-- branches using a specified merge strategy. This can help you determine
-- the outcome of a potential merge. This API cannot be used with the
-- fast-forward merge strategy because that strategy does not create a
-- merge commit.
--
-- This unreferenced merge commit can only be accessed using the GetCommit
-- API or through git commands such as git fetch. To retrieve this commit,
-- you must specify its commit ID or otherwise reference it.
module Amazonka.CodeCommit.CreateUnreferencedMergeCommit
  ( -- * Creating a Request
    CreateUnreferencedMergeCommit (..),
    newCreateUnreferencedMergeCommit,

    -- * Request Lenses
    createUnreferencedMergeCommit_authorName,
    createUnreferencedMergeCommit_commitMessage,
    createUnreferencedMergeCommit_conflictDetailLevel,
    createUnreferencedMergeCommit_conflictResolution,
    createUnreferencedMergeCommit_conflictResolutionStrategy,
    createUnreferencedMergeCommit_email,
    createUnreferencedMergeCommit_keepEmptyFolders,
    createUnreferencedMergeCommit_repositoryName,
    createUnreferencedMergeCommit_sourceCommitSpecifier,
    createUnreferencedMergeCommit_destinationCommitSpecifier,
    createUnreferencedMergeCommit_mergeOption,

    -- * Destructuring the Response
    CreateUnreferencedMergeCommitResponse (..),
    newCreateUnreferencedMergeCommitResponse,

    -- * Response Lenses
    createUnreferencedMergeCommitResponse_commitId,
    createUnreferencedMergeCommitResponse_treeId,
    createUnreferencedMergeCommitResponse_httpStatus,
  )
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:/ 'newCreateUnreferencedMergeCommit' smart constructor.
data CreateUnreferencedMergeCommit = CreateUnreferencedMergeCommit'
  { -- | The name of the author who created the unreferenced commit. This
    -- information is used as both the author and committer for the commit.
    CreateUnreferencedMergeCommit -> Maybe Text
authorName :: Prelude.Maybe Prelude.Text,
    -- | The commit message for the unreferenced commit.
    CreateUnreferencedMergeCommit -> Maybe Text
commitMessage :: Prelude.Maybe Prelude.Text,
    -- | 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.
    CreateUnreferencedMergeCommit -> Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel :: Prelude.Maybe ConflictDetailLevelTypeEnum,
    -- | If AUTOMERGE is the conflict resolution strategy, a list of inputs to
    -- use when resolving conflicts during a merge.
    CreateUnreferencedMergeCommit -> Maybe ConflictResolution
conflictResolution :: Prelude.Maybe ConflictResolution,
    -- | 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.
    CreateUnreferencedMergeCommit
-> Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy :: Prelude.Maybe ConflictResolutionStrategyTypeEnum,
    -- | The email address for the person who created the unreferenced commit.
    CreateUnreferencedMergeCommit -> Maybe Text
email :: Prelude.Maybe Prelude.Text,
    -- | If the commit contains deletions, whether to keep a folder or folder
    -- structure if the changes leave the folders empty. If this is specified
    -- as true, a .gitkeep file is created for empty folders. The default is
    -- false.
    CreateUnreferencedMergeCommit -> Maybe Bool
keepEmptyFolders :: Prelude.Maybe Prelude.Bool,
    -- | The name of the repository where you want to create the unreferenced
    -- merge commit.
    CreateUnreferencedMergeCommit -> 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).
    CreateUnreferencedMergeCommit -> Text
sourceCommitSpecifier :: 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).
    CreateUnreferencedMergeCommit -> Text
destinationCommitSpecifier :: Prelude.Text,
    -- | The merge option or strategy you want to use to merge the code.
    CreateUnreferencedMergeCommit -> MergeOptionTypeEnum
mergeOption :: MergeOptionTypeEnum
  }
  deriving (CreateUnreferencedMergeCommit
-> CreateUnreferencedMergeCommit -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateUnreferencedMergeCommit
-> CreateUnreferencedMergeCommit -> Bool
$c/= :: CreateUnreferencedMergeCommit
-> CreateUnreferencedMergeCommit -> Bool
== :: CreateUnreferencedMergeCommit
-> CreateUnreferencedMergeCommit -> Bool
$c== :: CreateUnreferencedMergeCommit
-> CreateUnreferencedMergeCommit -> Bool
Prelude.Eq, ReadPrec [CreateUnreferencedMergeCommit]
ReadPrec CreateUnreferencedMergeCommit
Int -> ReadS CreateUnreferencedMergeCommit
ReadS [CreateUnreferencedMergeCommit]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateUnreferencedMergeCommit]
$creadListPrec :: ReadPrec [CreateUnreferencedMergeCommit]
readPrec :: ReadPrec CreateUnreferencedMergeCommit
$creadPrec :: ReadPrec CreateUnreferencedMergeCommit
readList :: ReadS [CreateUnreferencedMergeCommit]
$creadList :: ReadS [CreateUnreferencedMergeCommit]
readsPrec :: Int -> ReadS CreateUnreferencedMergeCommit
$creadsPrec :: Int -> ReadS CreateUnreferencedMergeCommit
Prelude.Read, Int -> CreateUnreferencedMergeCommit -> ShowS
[CreateUnreferencedMergeCommit] -> ShowS
CreateUnreferencedMergeCommit -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateUnreferencedMergeCommit] -> ShowS
$cshowList :: [CreateUnreferencedMergeCommit] -> ShowS
show :: CreateUnreferencedMergeCommit -> String
$cshow :: CreateUnreferencedMergeCommit -> String
showsPrec :: Int -> CreateUnreferencedMergeCommit -> ShowS
$cshowsPrec :: Int -> CreateUnreferencedMergeCommit -> ShowS
Prelude.Show, forall x.
Rep CreateUnreferencedMergeCommit x
-> CreateUnreferencedMergeCommit
forall x.
CreateUnreferencedMergeCommit
-> Rep CreateUnreferencedMergeCommit x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateUnreferencedMergeCommit x
-> CreateUnreferencedMergeCommit
$cfrom :: forall x.
CreateUnreferencedMergeCommit
-> Rep CreateUnreferencedMergeCommit x
Prelude.Generic)

-- |
-- Create a value of 'CreateUnreferencedMergeCommit' 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:
--
-- 'authorName', 'createUnreferencedMergeCommit_authorName' - The name of the author who created the unreferenced commit. This
-- information is used as both the author and committer for the commit.
--
-- 'commitMessage', 'createUnreferencedMergeCommit_commitMessage' - The commit message for the unreferenced commit.
--
-- 'conflictDetailLevel', 'createUnreferencedMergeCommit_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.
--
-- 'conflictResolution', 'createUnreferencedMergeCommit_conflictResolution' - If AUTOMERGE is the conflict resolution strategy, a list of inputs to
-- use when resolving conflicts during a merge.
--
-- 'conflictResolutionStrategy', 'createUnreferencedMergeCommit_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.
--
-- 'email', 'createUnreferencedMergeCommit_email' - The email address for the person who created the unreferenced commit.
--
-- 'keepEmptyFolders', 'createUnreferencedMergeCommit_keepEmptyFolders' - If the commit contains deletions, whether to keep a folder or folder
-- structure if the changes leave the folders empty. If this is specified
-- as true, a .gitkeep file is created for empty folders. The default is
-- false.
--
-- 'repositoryName', 'createUnreferencedMergeCommit_repositoryName' - The name of the repository where you want to create the unreferenced
-- merge commit.
--
-- 'sourceCommitSpecifier', 'createUnreferencedMergeCommit_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).
--
-- 'destinationCommitSpecifier', 'createUnreferencedMergeCommit_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).
--
-- 'mergeOption', 'createUnreferencedMergeCommit_mergeOption' - The merge option or strategy you want to use to merge the code.
newCreateUnreferencedMergeCommit ::
  -- | 'repositoryName'
  Prelude.Text ->
  -- | 'sourceCommitSpecifier'
  Prelude.Text ->
  -- | 'destinationCommitSpecifier'
  Prelude.Text ->
  -- | 'mergeOption'
  MergeOptionTypeEnum ->
  CreateUnreferencedMergeCommit
newCreateUnreferencedMergeCommit :: Text
-> Text
-> Text
-> MergeOptionTypeEnum
-> CreateUnreferencedMergeCommit
newCreateUnreferencedMergeCommit
  Text
pRepositoryName_
  Text
pSourceCommitSpecifier_
  Text
pDestinationCommitSpecifier_
  MergeOptionTypeEnum
pMergeOption_ =
    CreateUnreferencedMergeCommit'
      { $sel:authorName:CreateUnreferencedMergeCommit' :: Maybe Text
authorName =
          forall a. Maybe a
Prelude.Nothing,
        $sel:commitMessage:CreateUnreferencedMergeCommit' :: Maybe Text
commitMessage = forall a. Maybe a
Prelude.Nothing,
        $sel:conflictDetailLevel:CreateUnreferencedMergeCommit' :: Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel = forall a. Maybe a
Prelude.Nothing,
        $sel:conflictResolution:CreateUnreferencedMergeCommit' :: Maybe ConflictResolution
conflictResolution = forall a. Maybe a
Prelude.Nothing,
        $sel:conflictResolutionStrategy:CreateUnreferencedMergeCommit' :: Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy = forall a. Maybe a
Prelude.Nothing,
        $sel:email:CreateUnreferencedMergeCommit' :: Maybe Text
email = forall a. Maybe a
Prelude.Nothing,
        $sel:keepEmptyFolders:CreateUnreferencedMergeCommit' :: Maybe Bool
keepEmptyFolders = forall a. Maybe a
Prelude.Nothing,
        $sel:repositoryName:CreateUnreferencedMergeCommit' :: Text
repositoryName = Text
pRepositoryName_,
        $sel:sourceCommitSpecifier:CreateUnreferencedMergeCommit' :: Text
sourceCommitSpecifier =
          Text
pSourceCommitSpecifier_,
        $sel:destinationCommitSpecifier:CreateUnreferencedMergeCommit' :: Text
destinationCommitSpecifier =
          Text
pDestinationCommitSpecifier_,
        $sel:mergeOption:CreateUnreferencedMergeCommit' :: MergeOptionTypeEnum
mergeOption = MergeOptionTypeEnum
pMergeOption_
      }

-- | The name of the author who created the unreferenced commit. This
-- information is used as both the author and committer for the commit.
createUnreferencedMergeCommit_authorName :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe Prelude.Text)
createUnreferencedMergeCommit_authorName :: Lens' CreateUnreferencedMergeCommit (Maybe Text)
createUnreferencedMergeCommit_authorName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUnreferencedMergeCommit' {Maybe Text
authorName :: Maybe Text
$sel:authorName:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Text
authorName} -> Maybe Text
authorName) (\s :: CreateUnreferencedMergeCommit
s@CreateUnreferencedMergeCommit' {} Maybe Text
a -> CreateUnreferencedMergeCommit
s {$sel:authorName:CreateUnreferencedMergeCommit' :: Maybe Text
authorName = Maybe Text
a} :: CreateUnreferencedMergeCommit)

-- | The commit message for the unreferenced commit.
createUnreferencedMergeCommit_commitMessage :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe Prelude.Text)
createUnreferencedMergeCommit_commitMessage :: Lens' CreateUnreferencedMergeCommit (Maybe Text)
createUnreferencedMergeCommit_commitMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUnreferencedMergeCommit' {Maybe Text
commitMessage :: Maybe Text
$sel:commitMessage:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Text
commitMessage} -> Maybe Text
commitMessage) (\s :: CreateUnreferencedMergeCommit
s@CreateUnreferencedMergeCommit' {} Maybe Text
a -> CreateUnreferencedMergeCommit
s {$sel:commitMessage:CreateUnreferencedMergeCommit' :: Maybe Text
commitMessage = Maybe Text
a} :: CreateUnreferencedMergeCommit)

-- | 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.
createUnreferencedMergeCommit_conflictDetailLevel :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe ConflictDetailLevelTypeEnum)
createUnreferencedMergeCommit_conflictDetailLevel :: Lens'
  CreateUnreferencedMergeCommit (Maybe ConflictDetailLevelTypeEnum)
createUnreferencedMergeCommit_conflictDetailLevel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUnreferencedMergeCommit' {Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel :: Maybe ConflictDetailLevelTypeEnum
$sel:conflictDetailLevel:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel} -> Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel) (\s :: CreateUnreferencedMergeCommit
s@CreateUnreferencedMergeCommit' {} Maybe ConflictDetailLevelTypeEnum
a -> CreateUnreferencedMergeCommit
s {$sel:conflictDetailLevel:CreateUnreferencedMergeCommit' :: Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel = Maybe ConflictDetailLevelTypeEnum
a} :: CreateUnreferencedMergeCommit)

-- | If AUTOMERGE is the conflict resolution strategy, a list of inputs to
-- use when resolving conflicts during a merge.
createUnreferencedMergeCommit_conflictResolution :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe ConflictResolution)
createUnreferencedMergeCommit_conflictResolution :: Lens' CreateUnreferencedMergeCommit (Maybe ConflictResolution)
createUnreferencedMergeCommit_conflictResolution = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUnreferencedMergeCommit' {Maybe ConflictResolution
conflictResolution :: Maybe ConflictResolution
$sel:conflictResolution:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe ConflictResolution
conflictResolution} -> Maybe ConflictResolution
conflictResolution) (\s :: CreateUnreferencedMergeCommit
s@CreateUnreferencedMergeCommit' {} Maybe ConflictResolution
a -> CreateUnreferencedMergeCommit
s {$sel:conflictResolution:CreateUnreferencedMergeCommit' :: Maybe ConflictResolution
conflictResolution = Maybe ConflictResolution
a} :: CreateUnreferencedMergeCommit)

-- | 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.
createUnreferencedMergeCommit_conflictResolutionStrategy :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe ConflictResolutionStrategyTypeEnum)
createUnreferencedMergeCommit_conflictResolutionStrategy :: Lens'
  CreateUnreferencedMergeCommit
  (Maybe ConflictResolutionStrategyTypeEnum)
createUnreferencedMergeCommit_conflictResolutionStrategy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUnreferencedMergeCommit' {Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy :: Maybe ConflictResolutionStrategyTypeEnum
$sel:conflictResolutionStrategy:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit
-> Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy} -> Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy) (\s :: CreateUnreferencedMergeCommit
s@CreateUnreferencedMergeCommit' {} Maybe ConflictResolutionStrategyTypeEnum
a -> CreateUnreferencedMergeCommit
s {$sel:conflictResolutionStrategy:CreateUnreferencedMergeCommit' :: Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy = Maybe ConflictResolutionStrategyTypeEnum
a} :: CreateUnreferencedMergeCommit)

-- | The email address for the person who created the unreferenced commit.
createUnreferencedMergeCommit_email :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe Prelude.Text)
createUnreferencedMergeCommit_email :: Lens' CreateUnreferencedMergeCommit (Maybe Text)
createUnreferencedMergeCommit_email = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUnreferencedMergeCommit' {Maybe Text
email :: Maybe Text
$sel:email:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Text
email} -> Maybe Text
email) (\s :: CreateUnreferencedMergeCommit
s@CreateUnreferencedMergeCommit' {} Maybe Text
a -> CreateUnreferencedMergeCommit
s {$sel:email:CreateUnreferencedMergeCommit' :: Maybe Text
email = Maybe Text
a} :: CreateUnreferencedMergeCommit)

-- | If the commit contains deletions, whether to keep a folder or folder
-- structure if the changes leave the folders empty. If this is specified
-- as true, a .gitkeep file is created for empty folders. The default is
-- false.
createUnreferencedMergeCommit_keepEmptyFolders :: Lens.Lens' CreateUnreferencedMergeCommit (Prelude.Maybe Prelude.Bool)
createUnreferencedMergeCommit_keepEmptyFolders :: Lens' CreateUnreferencedMergeCommit (Maybe Bool)
createUnreferencedMergeCommit_keepEmptyFolders = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUnreferencedMergeCommit' {Maybe Bool
keepEmptyFolders :: Maybe Bool
$sel:keepEmptyFolders:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Bool
keepEmptyFolders} -> Maybe Bool
keepEmptyFolders) (\s :: CreateUnreferencedMergeCommit
s@CreateUnreferencedMergeCommit' {} Maybe Bool
a -> CreateUnreferencedMergeCommit
s {$sel:keepEmptyFolders:CreateUnreferencedMergeCommit' :: Maybe Bool
keepEmptyFolders = Maybe Bool
a} :: CreateUnreferencedMergeCommit)

-- | The name of the repository where you want to create the unreferenced
-- merge commit.
createUnreferencedMergeCommit_repositoryName :: Lens.Lens' CreateUnreferencedMergeCommit Prelude.Text
createUnreferencedMergeCommit_repositoryName :: Lens' CreateUnreferencedMergeCommit Text
createUnreferencedMergeCommit_repositoryName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUnreferencedMergeCommit' {Text
repositoryName :: Text
$sel:repositoryName:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Text
repositoryName} -> Text
repositoryName) (\s :: CreateUnreferencedMergeCommit
s@CreateUnreferencedMergeCommit' {} Text
a -> CreateUnreferencedMergeCommit
s {$sel:repositoryName:CreateUnreferencedMergeCommit' :: Text
repositoryName = Text
a} :: CreateUnreferencedMergeCommit)

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

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

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

instance
  Core.AWSRequest
    CreateUnreferencedMergeCommit
  where
  type
    AWSResponse CreateUnreferencedMergeCommit =
      CreateUnreferencedMergeCommitResponse
  request :: (Service -> Service)
-> CreateUnreferencedMergeCommit
-> Request CreateUnreferencedMergeCommit
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 CreateUnreferencedMergeCommit
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse CreateUnreferencedMergeCommit)))
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 Text -> Int -> CreateUnreferencedMergeCommitResponse
CreateUnreferencedMergeCommitResponse'
            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
"commitId")
            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
"treeId")
            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))
      )

instance
  Prelude.Hashable
    CreateUnreferencedMergeCommit
  where
  hashWithSalt :: Int -> CreateUnreferencedMergeCommit -> Int
hashWithSalt Int
_salt CreateUnreferencedMergeCommit' {Maybe Bool
Maybe Text
Maybe ConflictDetailLevelTypeEnum
Maybe ConflictResolutionStrategyTypeEnum
Maybe ConflictResolution
Text
MergeOptionTypeEnum
mergeOption :: MergeOptionTypeEnum
destinationCommitSpecifier :: Text
sourceCommitSpecifier :: Text
repositoryName :: Text
keepEmptyFolders :: Maybe Bool
email :: Maybe Text
conflictResolutionStrategy :: Maybe ConflictResolutionStrategyTypeEnum
conflictResolution :: Maybe ConflictResolution
conflictDetailLevel :: Maybe ConflictDetailLevelTypeEnum
commitMessage :: Maybe Text
authorName :: Maybe Text
$sel:mergeOption:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> MergeOptionTypeEnum
$sel:destinationCommitSpecifier:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Text
$sel:sourceCommitSpecifier:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Text
$sel:repositoryName:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Text
$sel:keepEmptyFolders:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Bool
$sel:email:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Text
$sel:conflictResolutionStrategy:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit
-> Maybe ConflictResolutionStrategyTypeEnum
$sel:conflictResolution:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe ConflictResolution
$sel:conflictDetailLevel:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe ConflictDetailLevelTypeEnum
$sel:commitMessage:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Text
$sel:authorName:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
authorName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
commitMessage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ConflictDetailLevelTypeEnum
conflictDetailLevel
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ConflictResolution
conflictResolution
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ConflictResolutionStrategyTypeEnum
conflictResolutionStrategy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
email
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
keepEmptyFolders
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
repositoryName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
sourceCommitSpecifier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
destinationCommitSpecifier
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` MergeOptionTypeEnum
mergeOption

instance Prelude.NFData CreateUnreferencedMergeCommit where
  rnf :: CreateUnreferencedMergeCommit -> ()
rnf CreateUnreferencedMergeCommit' {Maybe Bool
Maybe Text
Maybe ConflictDetailLevelTypeEnum
Maybe ConflictResolutionStrategyTypeEnum
Maybe ConflictResolution
Text
MergeOptionTypeEnum
mergeOption :: MergeOptionTypeEnum
destinationCommitSpecifier :: Text
sourceCommitSpecifier :: Text
repositoryName :: Text
keepEmptyFolders :: Maybe Bool
email :: Maybe Text
conflictResolutionStrategy :: Maybe ConflictResolutionStrategyTypeEnum
conflictResolution :: Maybe ConflictResolution
conflictDetailLevel :: Maybe ConflictDetailLevelTypeEnum
commitMessage :: Maybe Text
authorName :: Maybe Text
$sel:mergeOption:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> MergeOptionTypeEnum
$sel:destinationCommitSpecifier:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Text
$sel:sourceCommitSpecifier:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Text
$sel:repositoryName:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Text
$sel:keepEmptyFolders:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Bool
$sel:email:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Text
$sel:conflictResolutionStrategy:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit
-> Maybe ConflictResolutionStrategyTypeEnum
$sel:conflictResolution:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe ConflictResolution
$sel:conflictDetailLevel:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe ConflictDetailLevelTypeEnum
$sel:commitMessage:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Text
$sel:authorName:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
authorName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
commitMessage
      seq :: forall a b. a -> b -> b
`Prelude.seq` 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 ConflictResolution
conflictResolution
      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
email
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
keepEmptyFolders
      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
sourceCommitSpecifier
      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 MergeOptionTypeEnum
mergeOption

instance Data.ToHeaders CreateUnreferencedMergeCommit where
  toHeaders :: CreateUnreferencedMergeCommit -> 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.CreateUnreferencedMergeCommit" ::
                          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 CreateUnreferencedMergeCommit where
  toJSON :: CreateUnreferencedMergeCommit -> Value
toJSON CreateUnreferencedMergeCommit' {Maybe Bool
Maybe Text
Maybe ConflictDetailLevelTypeEnum
Maybe ConflictResolutionStrategyTypeEnum
Maybe ConflictResolution
Text
MergeOptionTypeEnum
mergeOption :: MergeOptionTypeEnum
destinationCommitSpecifier :: Text
sourceCommitSpecifier :: Text
repositoryName :: Text
keepEmptyFolders :: Maybe Bool
email :: Maybe Text
conflictResolutionStrategy :: Maybe ConflictResolutionStrategyTypeEnum
conflictResolution :: Maybe ConflictResolution
conflictDetailLevel :: Maybe ConflictDetailLevelTypeEnum
commitMessage :: Maybe Text
authorName :: Maybe Text
$sel:mergeOption:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> MergeOptionTypeEnum
$sel:destinationCommitSpecifier:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Text
$sel:sourceCommitSpecifier:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Text
$sel:repositoryName:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Text
$sel:keepEmptyFolders:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Bool
$sel:email:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Text
$sel:conflictResolutionStrategy:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit
-> Maybe ConflictResolutionStrategyTypeEnum
$sel:conflictResolution:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe ConflictResolution
$sel:conflictDetailLevel:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe ConflictDetailLevelTypeEnum
$sel:commitMessage:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Text
$sel:authorName:CreateUnreferencedMergeCommit' :: CreateUnreferencedMergeCommit -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"authorName" 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
authorName,
            (Key
"commitMessage" 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
commitMessage,
            (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
"conflictResolution" 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 ConflictResolution
conflictResolution,
            (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
"email" 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
email,
            (Key
"keepEmptyFolders" 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 Bool
keepEmptyFolders,
            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
"sourceCommitSpecifier"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
sourceCommitSpecifier
              ),
            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
"mergeOption" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= MergeOptionTypeEnum
mergeOption)
          ]
      )

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

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

-- | /See:/ 'newCreateUnreferencedMergeCommitResponse' smart constructor.
data CreateUnreferencedMergeCommitResponse = CreateUnreferencedMergeCommitResponse'
  { -- | The full commit ID of the commit that contains your merge results.
    CreateUnreferencedMergeCommitResponse -> Maybe Text
commitId :: Prelude.Maybe Prelude.Text,
    -- | The full SHA-1 pointer of the tree information for the commit that
    -- contains the merge results.
    CreateUnreferencedMergeCommitResponse -> Maybe Text
treeId :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    CreateUnreferencedMergeCommitResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (CreateUnreferencedMergeCommitResponse
-> CreateUnreferencedMergeCommitResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CreateUnreferencedMergeCommitResponse
-> CreateUnreferencedMergeCommitResponse -> Bool
$c/= :: CreateUnreferencedMergeCommitResponse
-> CreateUnreferencedMergeCommitResponse -> Bool
== :: CreateUnreferencedMergeCommitResponse
-> CreateUnreferencedMergeCommitResponse -> Bool
$c== :: CreateUnreferencedMergeCommitResponse
-> CreateUnreferencedMergeCommitResponse -> Bool
Prelude.Eq, ReadPrec [CreateUnreferencedMergeCommitResponse]
ReadPrec CreateUnreferencedMergeCommitResponse
Int -> ReadS CreateUnreferencedMergeCommitResponse
ReadS [CreateUnreferencedMergeCommitResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CreateUnreferencedMergeCommitResponse]
$creadListPrec :: ReadPrec [CreateUnreferencedMergeCommitResponse]
readPrec :: ReadPrec CreateUnreferencedMergeCommitResponse
$creadPrec :: ReadPrec CreateUnreferencedMergeCommitResponse
readList :: ReadS [CreateUnreferencedMergeCommitResponse]
$creadList :: ReadS [CreateUnreferencedMergeCommitResponse]
readsPrec :: Int -> ReadS CreateUnreferencedMergeCommitResponse
$creadsPrec :: Int -> ReadS CreateUnreferencedMergeCommitResponse
Prelude.Read, Int -> CreateUnreferencedMergeCommitResponse -> ShowS
[CreateUnreferencedMergeCommitResponse] -> ShowS
CreateUnreferencedMergeCommitResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CreateUnreferencedMergeCommitResponse] -> ShowS
$cshowList :: [CreateUnreferencedMergeCommitResponse] -> ShowS
show :: CreateUnreferencedMergeCommitResponse -> String
$cshow :: CreateUnreferencedMergeCommitResponse -> String
showsPrec :: Int -> CreateUnreferencedMergeCommitResponse -> ShowS
$cshowsPrec :: Int -> CreateUnreferencedMergeCommitResponse -> ShowS
Prelude.Show, forall x.
Rep CreateUnreferencedMergeCommitResponse x
-> CreateUnreferencedMergeCommitResponse
forall x.
CreateUnreferencedMergeCommitResponse
-> Rep CreateUnreferencedMergeCommitResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep CreateUnreferencedMergeCommitResponse x
-> CreateUnreferencedMergeCommitResponse
$cfrom :: forall x.
CreateUnreferencedMergeCommitResponse
-> Rep CreateUnreferencedMergeCommitResponse x
Prelude.Generic)

-- |
-- Create a value of 'CreateUnreferencedMergeCommitResponse' 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:
--
-- 'commitId', 'createUnreferencedMergeCommitResponse_commitId' - The full commit ID of the commit that contains your merge results.
--
-- 'treeId', 'createUnreferencedMergeCommitResponse_treeId' - The full SHA-1 pointer of the tree information for the commit that
-- contains the merge results.
--
-- 'httpStatus', 'createUnreferencedMergeCommitResponse_httpStatus' - The response's http status code.
newCreateUnreferencedMergeCommitResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  CreateUnreferencedMergeCommitResponse
newCreateUnreferencedMergeCommitResponse :: Int -> CreateUnreferencedMergeCommitResponse
newCreateUnreferencedMergeCommitResponse Int
pHttpStatus_ =
  CreateUnreferencedMergeCommitResponse'
    { $sel:commitId:CreateUnreferencedMergeCommitResponse' :: Maybe Text
commitId =
        forall a. Maybe a
Prelude.Nothing,
      $sel:treeId:CreateUnreferencedMergeCommitResponse' :: Maybe Text
treeId = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:CreateUnreferencedMergeCommitResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The full commit ID of the commit that contains your merge results.
createUnreferencedMergeCommitResponse_commitId :: Lens.Lens' CreateUnreferencedMergeCommitResponse (Prelude.Maybe Prelude.Text)
createUnreferencedMergeCommitResponse_commitId :: Lens' CreateUnreferencedMergeCommitResponse (Maybe Text)
createUnreferencedMergeCommitResponse_commitId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUnreferencedMergeCommitResponse' {Maybe Text
commitId :: Maybe Text
$sel:commitId:CreateUnreferencedMergeCommitResponse' :: CreateUnreferencedMergeCommitResponse -> Maybe Text
commitId} -> Maybe Text
commitId) (\s :: CreateUnreferencedMergeCommitResponse
s@CreateUnreferencedMergeCommitResponse' {} Maybe Text
a -> CreateUnreferencedMergeCommitResponse
s {$sel:commitId:CreateUnreferencedMergeCommitResponse' :: Maybe Text
commitId = Maybe Text
a} :: CreateUnreferencedMergeCommitResponse)

-- | The full SHA-1 pointer of the tree information for the commit that
-- contains the merge results.
createUnreferencedMergeCommitResponse_treeId :: Lens.Lens' CreateUnreferencedMergeCommitResponse (Prelude.Maybe Prelude.Text)
createUnreferencedMergeCommitResponse_treeId :: Lens' CreateUnreferencedMergeCommitResponse (Maybe Text)
createUnreferencedMergeCommitResponse_treeId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CreateUnreferencedMergeCommitResponse' {Maybe Text
treeId :: Maybe Text
$sel:treeId:CreateUnreferencedMergeCommitResponse' :: CreateUnreferencedMergeCommitResponse -> Maybe Text
treeId} -> Maybe Text
treeId) (\s :: CreateUnreferencedMergeCommitResponse
s@CreateUnreferencedMergeCommitResponse' {} Maybe Text
a -> CreateUnreferencedMergeCommitResponse
s {$sel:treeId:CreateUnreferencedMergeCommitResponse' :: Maybe Text
treeId = Maybe Text
a} :: CreateUnreferencedMergeCommitResponse)

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

instance
  Prelude.NFData
    CreateUnreferencedMergeCommitResponse
  where
  rnf :: CreateUnreferencedMergeCommitResponse -> ()
rnf CreateUnreferencedMergeCommitResponse' {Int
Maybe Text
httpStatus :: Int
treeId :: Maybe Text
commitId :: Maybe Text
$sel:httpStatus:CreateUnreferencedMergeCommitResponse' :: CreateUnreferencedMergeCommitResponse -> Int
$sel:treeId:CreateUnreferencedMergeCommitResponse' :: CreateUnreferencedMergeCommitResponse -> Maybe Text
$sel:commitId:CreateUnreferencedMergeCommitResponse' :: CreateUnreferencedMergeCommitResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
commitId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
treeId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus