{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.CodeCommit.Types.ConflictMetadata
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.CodeCommit.Types.ConflictMetadata where

import Amazonka.CodeCommit.Types.FileModes
import Amazonka.CodeCommit.Types.FileSizes
import Amazonka.CodeCommit.Types.IsBinaryFile
import Amazonka.CodeCommit.Types.MergeOperations
import Amazonka.CodeCommit.Types.ObjectTypes
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Information about the metadata for a conflict in a merge operation.
--
-- /See:/ 'newConflictMetadata' smart constructor.
data ConflictMetadata = ConflictMetadata'
  { -- | The number of conflicts, including both hunk conflicts and metadata
    -- conflicts.
    ConflictMetadata -> Maybe Int
numberOfConflicts :: Prelude.Maybe Prelude.Int,
    -- | A boolean value indicating whether there are conflicts in the content of
    -- a file.
    ConflictMetadata -> Maybe Bool
contentConflict :: Prelude.Maybe Prelude.Bool,
    -- | The file sizes of the file in the source, destination, and base of the
    -- merge.
    ConflictMetadata -> Maybe FileSizes
fileSizes :: Prelude.Maybe FileSizes,
    -- | The path of the file that contains conflicts.
    ConflictMetadata -> Maybe Text
filePath :: Prelude.Maybe Prelude.Text,
    -- | A boolean value (true or false) indicating whether the file is binary or
    -- textual in the source, destination, and base of the merge.
    ConflictMetadata -> Maybe IsBinaryFile
isBinaryFile :: Prelude.Maybe IsBinaryFile,
    -- | A boolean value indicating whether there are conflicts in the file mode
    -- of a file.
    ConflictMetadata -> Maybe Bool
fileModeConflict :: Prelude.Maybe Prelude.Bool,
    -- | A boolean value (true or false) indicating whether there are conflicts
    -- between the branches in the object type of a file, folder, or submodule.
    ConflictMetadata -> Maybe Bool
objectTypeConflict :: Prelude.Maybe Prelude.Bool,
    -- | Whether an add, modify, or delete operation caused the conflict between
    -- the source and destination of the merge.
    ConflictMetadata -> Maybe MergeOperations
mergeOperations :: Prelude.Maybe MergeOperations,
    -- | Information about any object type conflicts in a merge operation.
    ConflictMetadata -> Maybe ObjectTypes
objectTypes :: Prelude.Maybe ObjectTypes,
    -- | The file modes of the file in the source, destination, and base of the
    -- merge.
    ConflictMetadata -> Maybe FileModes
fileModes :: Prelude.Maybe FileModes
  }
  deriving (ConflictMetadata -> ConflictMetadata -> Bool
(ConflictMetadata -> ConflictMetadata -> Bool)
-> (ConflictMetadata -> ConflictMetadata -> Bool)
-> Eq ConflictMetadata
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ConflictMetadata -> ConflictMetadata -> Bool
$c/= :: ConflictMetadata -> ConflictMetadata -> Bool
== :: ConflictMetadata -> ConflictMetadata -> Bool
$c== :: ConflictMetadata -> ConflictMetadata -> Bool
Prelude.Eq, ReadPrec [ConflictMetadata]
ReadPrec ConflictMetadata
Int -> ReadS ConflictMetadata
ReadS [ConflictMetadata]
(Int -> ReadS ConflictMetadata)
-> ReadS [ConflictMetadata]
-> ReadPrec ConflictMetadata
-> ReadPrec [ConflictMetadata]
-> Read ConflictMetadata
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ConflictMetadata]
$creadListPrec :: ReadPrec [ConflictMetadata]
readPrec :: ReadPrec ConflictMetadata
$creadPrec :: ReadPrec ConflictMetadata
readList :: ReadS [ConflictMetadata]
$creadList :: ReadS [ConflictMetadata]
readsPrec :: Int -> ReadS ConflictMetadata
$creadsPrec :: Int -> ReadS ConflictMetadata
Prelude.Read, Int -> ConflictMetadata -> ShowS
[ConflictMetadata] -> ShowS
ConflictMetadata -> String
(Int -> ConflictMetadata -> ShowS)
-> (ConflictMetadata -> String)
-> ([ConflictMetadata] -> ShowS)
-> Show ConflictMetadata
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ConflictMetadata] -> ShowS
$cshowList :: [ConflictMetadata] -> ShowS
show :: ConflictMetadata -> String
$cshow :: ConflictMetadata -> String
showsPrec :: Int -> ConflictMetadata -> ShowS
$cshowsPrec :: Int -> ConflictMetadata -> ShowS
Prelude.Show, (forall x. ConflictMetadata -> Rep ConflictMetadata x)
-> (forall x. Rep ConflictMetadata x -> ConflictMetadata)
-> Generic ConflictMetadata
forall x. Rep ConflictMetadata x -> ConflictMetadata
forall x. ConflictMetadata -> Rep ConflictMetadata x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ConflictMetadata x -> ConflictMetadata
$cfrom :: forall x. ConflictMetadata -> Rep ConflictMetadata x
Prelude.Generic)

-- |
-- Create a value of 'ConflictMetadata' 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:
--
-- 'numberOfConflicts', 'conflictMetadata_numberOfConflicts' - The number of conflicts, including both hunk conflicts and metadata
-- conflicts.
--
-- 'contentConflict', 'conflictMetadata_contentConflict' - A boolean value indicating whether there are conflicts in the content of
-- a file.
--
-- 'fileSizes', 'conflictMetadata_fileSizes' - The file sizes of the file in the source, destination, and base of the
-- merge.
--
-- 'filePath', 'conflictMetadata_filePath' - The path of the file that contains conflicts.
--
-- 'isBinaryFile', 'conflictMetadata_isBinaryFile' - A boolean value (true or false) indicating whether the file is binary or
-- textual in the source, destination, and base of the merge.
--
-- 'fileModeConflict', 'conflictMetadata_fileModeConflict' - A boolean value indicating whether there are conflicts in the file mode
-- of a file.
--
-- 'objectTypeConflict', 'conflictMetadata_objectTypeConflict' - A boolean value (true or false) indicating whether there are conflicts
-- between the branches in the object type of a file, folder, or submodule.
--
-- 'mergeOperations', 'conflictMetadata_mergeOperations' - Whether an add, modify, or delete operation caused the conflict between
-- the source and destination of the merge.
--
-- 'objectTypes', 'conflictMetadata_objectTypes' - Information about any object type conflicts in a merge operation.
--
-- 'fileModes', 'conflictMetadata_fileModes' - The file modes of the file in the source, destination, and base of the
-- merge.
newConflictMetadata ::
  ConflictMetadata
newConflictMetadata :: ConflictMetadata
newConflictMetadata =
  ConflictMetadata' :: Maybe Int
-> Maybe Bool
-> Maybe FileSizes
-> Maybe Text
-> Maybe IsBinaryFile
-> Maybe Bool
-> Maybe Bool
-> Maybe MergeOperations
-> Maybe ObjectTypes
-> Maybe FileModes
-> ConflictMetadata
ConflictMetadata'
    { $sel:numberOfConflicts:ConflictMetadata' :: Maybe Int
numberOfConflicts =
        Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:contentConflict:ConflictMetadata' :: Maybe Bool
contentConflict = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:fileSizes:ConflictMetadata' :: Maybe FileSizes
fileSizes = Maybe FileSizes
forall a. Maybe a
Prelude.Nothing,
      $sel:filePath:ConflictMetadata' :: Maybe Text
filePath = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:isBinaryFile:ConflictMetadata' :: Maybe IsBinaryFile
isBinaryFile = Maybe IsBinaryFile
forall a. Maybe a
Prelude.Nothing,
      $sel:fileModeConflict:ConflictMetadata' :: Maybe Bool
fileModeConflict = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:objectTypeConflict:ConflictMetadata' :: Maybe Bool
objectTypeConflict = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:mergeOperations:ConflictMetadata' :: Maybe MergeOperations
mergeOperations = Maybe MergeOperations
forall a. Maybe a
Prelude.Nothing,
      $sel:objectTypes:ConflictMetadata' :: Maybe ObjectTypes
objectTypes = Maybe ObjectTypes
forall a. Maybe a
Prelude.Nothing,
      $sel:fileModes:ConflictMetadata' :: Maybe FileModes
fileModes = Maybe FileModes
forall a. Maybe a
Prelude.Nothing
    }

-- | The number of conflicts, including both hunk conflicts and metadata
-- conflicts.
conflictMetadata_numberOfConflicts :: Lens.Lens' ConflictMetadata (Prelude.Maybe Prelude.Int)
conflictMetadata_numberOfConflicts :: (Maybe Int -> f (Maybe Int))
-> ConflictMetadata -> f ConflictMetadata
conflictMetadata_numberOfConflicts = (ConflictMetadata -> Maybe Int)
-> (ConflictMetadata -> Maybe Int -> ConflictMetadata)
-> Lens ConflictMetadata ConflictMetadata (Maybe Int) (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConflictMetadata' {Maybe Int
numberOfConflicts :: Maybe Int
$sel:numberOfConflicts:ConflictMetadata' :: ConflictMetadata -> Maybe Int
numberOfConflicts} -> Maybe Int
numberOfConflicts) (\s :: ConflictMetadata
s@ConflictMetadata' {} Maybe Int
a -> ConflictMetadata
s {$sel:numberOfConflicts:ConflictMetadata' :: Maybe Int
numberOfConflicts = Maybe Int
a} :: ConflictMetadata)

-- | A boolean value indicating whether there are conflicts in the content of
-- a file.
conflictMetadata_contentConflict :: Lens.Lens' ConflictMetadata (Prelude.Maybe Prelude.Bool)
conflictMetadata_contentConflict :: (Maybe Bool -> f (Maybe Bool))
-> ConflictMetadata -> f ConflictMetadata
conflictMetadata_contentConflict = (ConflictMetadata -> Maybe Bool)
-> (ConflictMetadata -> Maybe Bool -> ConflictMetadata)
-> Lens ConflictMetadata ConflictMetadata (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConflictMetadata' {Maybe Bool
contentConflict :: Maybe Bool
$sel:contentConflict:ConflictMetadata' :: ConflictMetadata -> Maybe Bool
contentConflict} -> Maybe Bool
contentConflict) (\s :: ConflictMetadata
s@ConflictMetadata' {} Maybe Bool
a -> ConflictMetadata
s {$sel:contentConflict:ConflictMetadata' :: Maybe Bool
contentConflict = Maybe Bool
a} :: ConflictMetadata)

-- | The file sizes of the file in the source, destination, and base of the
-- merge.
conflictMetadata_fileSizes :: Lens.Lens' ConflictMetadata (Prelude.Maybe FileSizes)
conflictMetadata_fileSizes :: (Maybe FileSizes -> f (Maybe FileSizes))
-> ConflictMetadata -> f ConflictMetadata
conflictMetadata_fileSizes = (ConflictMetadata -> Maybe FileSizes)
-> (ConflictMetadata -> Maybe FileSizes -> ConflictMetadata)
-> Lens
     ConflictMetadata
     ConflictMetadata
     (Maybe FileSizes)
     (Maybe FileSizes)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConflictMetadata' {Maybe FileSizes
fileSizes :: Maybe FileSizes
$sel:fileSizes:ConflictMetadata' :: ConflictMetadata -> Maybe FileSizes
fileSizes} -> Maybe FileSizes
fileSizes) (\s :: ConflictMetadata
s@ConflictMetadata' {} Maybe FileSizes
a -> ConflictMetadata
s {$sel:fileSizes:ConflictMetadata' :: Maybe FileSizes
fileSizes = Maybe FileSizes
a} :: ConflictMetadata)

-- | The path of the file that contains conflicts.
conflictMetadata_filePath :: Lens.Lens' ConflictMetadata (Prelude.Maybe Prelude.Text)
conflictMetadata_filePath :: (Maybe Text -> f (Maybe Text))
-> ConflictMetadata -> f ConflictMetadata
conflictMetadata_filePath = (ConflictMetadata -> Maybe Text)
-> (ConflictMetadata -> Maybe Text -> ConflictMetadata)
-> Lens ConflictMetadata ConflictMetadata (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConflictMetadata' {Maybe Text
filePath :: Maybe Text
$sel:filePath:ConflictMetadata' :: ConflictMetadata -> Maybe Text
filePath} -> Maybe Text
filePath) (\s :: ConflictMetadata
s@ConflictMetadata' {} Maybe Text
a -> ConflictMetadata
s {$sel:filePath:ConflictMetadata' :: Maybe Text
filePath = Maybe Text
a} :: ConflictMetadata)

-- | A boolean value (true or false) indicating whether the file is binary or
-- textual in the source, destination, and base of the merge.
conflictMetadata_isBinaryFile :: Lens.Lens' ConflictMetadata (Prelude.Maybe IsBinaryFile)
conflictMetadata_isBinaryFile :: (Maybe IsBinaryFile -> f (Maybe IsBinaryFile))
-> ConflictMetadata -> f ConflictMetadata
conflictMetadata_isBinaryFile = (ConflictMetadata -> Maybe IsBinaryFile)
-> (ConflictMetadata -> Maybe IsBinaryFile -> ConflictMetadata)
-> Lens
     ConflictMetadata
     ConflictMetadata
     (Maybe IsBinaryFile)
     (Maybe IsBinaryFile)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConflictMetadata' {Maybe IsBinaryFile
isBinaryFile :: Maybe IsBinaryFile
$sel:isBinaryFile:ConflictMetadata' :: ConflictMetadata -> Maybe IsBinaryFile
isBinaryFile} -> Maybe IsBinaryFile
isBinaryFile) (\s :: ConflictMetadata
s@ConflictMetadata' {} Maybe IsBinaryFile
a -> ConflictMetadata
s {$sel:isBinaryFile:ConflictMetadata' :: Maybe IsBinaryFile
isBinaryFile = Maybe IsBinaryFile
a} :: ConflictMetadata)

-- | A boolean value indicating whether there are conflicts in the file mode
-- of a file.
conflictMetadata_fileModeConflict :: Lens.Lens' ConflictMetadata (Prelude.Maybe Prelude.Bool)
conflictMetadata_fileModeConflict :: (Maybe Bool -> f (Maybe Bool))
-> ConflictMetadata -> f ConflictMetadata
conflictMetadata_fileModeConflict = (ConflictMetadata -> Maybe Bool)
-> (ConflictMetadata -> Maybe Bool -> ConflictMetadata)
-> Lens ConflictMetadata ConflictMetadata (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConflictMetadata' {Maybe Bool
fileModeConflict :: Maybe Bool
$sel:fileModeConflict:ConflictMetadata' :: ConflictMetadata -> Maybe Bool
fileModeConflict} -> Maybe Bool
fileModeConflict) (\s :: ConflictMetadata
s@ConflictMetadata' {} Maybe Bool
a -> ConflictMetadata
s {$sel:fileModeConflict:ConflictMetadata' :: Maybe Bool
fileModeConflict = Maybe Bool
a} :: ConflictMetadata)

-- | A boolean value (true or false) indicating whether there are conflicts
-- between the branches in the object type of a file, folder, or submodule.
conflictMetadata_objectTypeConflict :: Lens.Lens' ConflictMetadata (Prelude.Maybe Prelude.Bool)
conflictMetadata_objectTypeConflict :: (Maybe Bool -> f (Maybe Bool))
-> ConflictMetadata -> f ConflictMetadata
conflictMetadata_objectTypeConflict = (ConflictMetadata -> Maybe Bool)
-> (ConflictMetadata -> Maybe Bool -> ConflictMetadata)
-> Lens ConflictMetadata ConflictMetadata (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConflictMetadata' {Maybe Bool
objectTypeConflict :: Maybe Bool
$sel:objectTypeConflict:ConflictMetadata' :: ConflictMetadata -> Maybe Bool
objectTypeConflict} -> Maybe Bool
objectTypeConflict) (\s :: ConflictMetadata
s@ConflictMetadata' {} Maybe Bool
a -> ConflictMetadata
s {$sel:objectTypeConflict:ConflictMetadata' :: Maybe Bool
objectTypeConflict = Maybe Bool
a} :: ConflictMetadata)

-- | Whether an add, modify, or delete operation caused the conflict between
-- the source and destination of the merge.
conflictMetadata_mergeOperations :: Lens.Lens' ConflictMetadata (Prelude.Maybe MergeOperations)
conflictMetadata_mergeOperations :: (Maybe MergeOperations -> f (Maybe MergeOperations))
-> ConflictMetadata -> f ConflictMetadata
conflictMetadata_mergeOperations = (ConflictMetadata -> Maybe MergeOperations)
-> (ConflictMetadata -> Maybe MergeOperations -> ConflictMetadata)
-> Lens
     ConflictMetadata
     ConflictMetadata
     (Maybe MergeOperations)
     (Maybe MergeOperations)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConflictMetadata' {Maybe MergeOperations
mergeOperations :: Maybe MergeOperations
$sel:mergeOperations:ConflictMetadata' :: ConflictMetadata -> Maybe MergeOperations
mergeOperations} -> Maybe MergeOperations
mergeOperations) (\s :: ConflictMetadata
s@ConflictMetadata' {} Maybe MergeOperations
a -> ConflictMetadata
s {$sel:mergeOperations:ConflictMetadata' :: Maybe MergeOperations
mergeOperations = Maybe MergeOperations
a} :: ConflictMetadata)

-- | Information about any object type conflicts in a merge operation.
conflictMetadata_objectTypes :: Lens.Lens' ConflictMetadata (Prelude.Maybe ObjectTypes)
conflictMetadata_objectTypes :: (Maybe ObjectTypes -> f (Maybe ObjectTypes))
-> ConflictMetadata -> f ConflictMetadata
conflictMetadata_objectTypes = (ConflictMetadata -> Maybe ObjectTypes)
-> (ConflictMetadata -> Maybe ObjectTypes -> ConflictMetadata)
-> Lens
     ConflictMetadata
     ConflictMetadata
     (Maybe ObjectTypes)
     (Maybe ObjectTypes)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConflictMetadata' {Maybe ObjectTypes
objectTypes :: Maybe ObjectTypes
$sel:objectTypes:ConflictMetadata' :: ConflictMetadata -> Maybe ObjectTypes
objectTypes} -> Maybe ObjectTypes
objectTypes) (\s :: ConflictMetadata
s@ConflictMetadata' {} Maybe ObjectTypes
a -> ConflictMetadata
s {$sel:objectTypes:ConflictMetadata' :: Maybe ObjectTypes
objectTypes = Maybe ObjectTypes
a} :: ConflictMetadata)

-- | The file modes of the file in the source, destination, and base of the
-- merge.
conflictMetadata_fileModes :: Lens.Lens' ConflictMetadata (Prelude.Maybe FileModes)
conflictMetadata_fileModes :: (Maybe FileModes -> f (Maybe FileModes))
-> ConflictMetadata -> f ConflictMetadata
conflictMetadata_fileModes = (ConflictMetadata -> Maybe FileModes)
-> (ConflictMetadata -> Maybe FileModes -> ConflictMetadata)
-> Lens
     ConflictMetadata
     ConflictMetadata
     (Maybe FileModes)
     (Maybe FileModes)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ConflictMetadata' {Maybe FileModes
fileModes :: Maybe FileModes
$sel:fileModes:ConflictMetadata' :: ConflictMetadata -> Maybe FileModes
fileModes} -> Maybe FileModes
fileModes) (\s :: ConflictMetadata
s@ConflictMetadata' {} Maybe FileModes
a -> ConflictMetadata
s {$sel:fileModes:ConflictMetadata' :: Maybe FileModes
fileModes = Maybe FileModes
a} :: ConflictMetadata)

instance Core.FromJSON ConflictMetadata where
  parseJSON :: Value -> Parser ConflictMetadata
parseJSON =
    String
-> (Object -> Parser ConflictMetadata)
-> Value
-> Parser ConflictMetadata
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"ConflictMetadata"
      ( \Object
x ->
          Maybe Int
-> Maybe Bool
-> Maybe FileSizes
-> Maybe Text
-> Maybe IsBinaryFile
-> Maybe Bool
-> Maybe Bool
-> Maybe MergeOperations
-> Maybe ObjectTypes
-> Maybe FileModes
-> ConflictMetadata
ConflictMetadata'
            (Maybe Int
 -> Maybe Bool
 -> Maybe FileSizes
 -> Maybe Text
 -> Maybe IsBinaryFile
 -> Maybe Bool
 -> Maybe Bool
 -> Maybe MergeOperations
 -> Maybe ObjectTypes
 -> Maybe FileModes
 -> ConflictMetadata)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> Maybe FileSizes
      -> Maybe Text
      -> Maybe IsBinaryFile
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe MergeOperations
      -> Maybe ObjectTypes
      -> Maybe FileModes
      -> ConflictMetadata)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"numberOfConflicts")
            Parser
  (Maybe Bool
   -> Maybe FileSizes
   -> Maybe Text
   -> Maybe IsBinaryFile
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe MergeOperations
   -> Maybe ObjectTypes
   -> Maybe FileModes
   -> ConflictMetadata)
-> Parser (Maybe Bool)
-> Parser
     (Maybe FileSizes
      -> Maybe Text
      -> Maybe IsBinaryFile
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe MergeOperations
      -> Maybe ObjectTypes
      -> Maybe FileModes
      -> ConflictMetadata)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"contentConflict")
            Parser
  (Maybe FileSizes
   -> Maybe Text
   -> Maybe IsBinaryFile
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe MergeOperations
   -> Maybe ObjectTypes
   -> Maybe FileModes
   -> ConflictMetadata)
-> Parser (Maybe FileSizes)
-> Parser
     (Maybe Text
      -> Maybe IsBinaryFile
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe MergeOperations
      -> Maybe ObjectTypes
      -> Maybe FileModes
      -> ConflictMetadata)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe FileSizes)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"fileSizes")
            Parser
  (Maybe Text
   -> Maybe IsBinaryFile
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe MergeOperations
   -> Maybe ObjectTypes
   -> Maybe FileModes
   -> ConflictMetadata)
-> Parser (Maybe Text)
-> Parser
     (Maybe IsBinaryFile
      -> Maybe Bool
      -> Maybe Bool
      -> Maybe MergeOperations
      -> Maybe ObjectTypes
      -> Maybe FileModes
      -> ConflictMetadata)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"filePath")
            Parser
  (Maybe IsBinaryFile
   -> Maybe Bool
   -> Maybe Bool
   -> Maybe MergeOperations
   -> Maybe ObjectTypes
   -> Maybe FileModes
   -> ConflictMetadata)
-> Parser (Maybe IsBinaryFile)
-> Parser
     (Maybe Bool
      -> Maybe Bool
      -> Maybe MergeOperations
      -> Maybe ObjectTypes
      -> Maybe FileModes
      -> ConflictMetadata)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe IsBinaryFile)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"isBinaryFile")
            Parser
  (Maybe Bool
   -> Maybe Bool
   -> Maybe MergeOperations
   -> Maybe ObjectTypes
   -> Maybe FileModes
   -> ConflictMetadata)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Bool
      -> Maybe MergeOperations
      -> Maybe ObjectTypes
      -> Maybe FileModes
      -> ConflictMetadata)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"fileModeConflict")
            Parser
  (Maybe Bool
   -> Maybe MergeOperations
   -> Maybe ObjectTypes
   -> Maybe FileModes
   -> ConflictMetadata)
-> Parser (Maybe Bool)
-> Parser
     (Maybe MergeOperations
      -> Maybe ObjectTypes -> Maybe FileModes -> ConflictMetadata)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"objectTypeConflict")
            Parser
  (Maybe MergeOperations
   -> Maybe ObjectTypes -> Maybe FileModes -> ConflictMetadata)
-> Parser (Maybe MergeOperations)
-> Parser
     (Maybe ObjectTypes -> Maybe FileModes -> ConflictMetadata)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe MergeOperations)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"mergeOperations")
            Parser (Maybe ObjectTypes -> Maybe FileModes -> ConflictMetadata)
-> Parser (Maybe ObjectTypes)
-> Parser (Maybe FileModes -> ConflictMetadata)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ObjectTypes)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"objectTypes")
            Parser (Maybe FileModes -> ConflictMetadata)
-> Parser (Maybe FileModes) -> Parser ConflictMetadata
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe FileModes)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"fileModes")
      )

instance Prelude.Hashable ConflictMetadata

instance Prelude.NFData ConflictMetadata