{-# LANGUAGE MultiWayIf #-}
-- CHANGE WITH CAUTION: This is a generated code file generated by https://github.com/Haskell-OpenAPI-Code-Generator/Haskell-OpenAPI-Client-Code-Generator.
{-# LANGUAGE OverloadedStrings #-}

-- | Contains the types generated from the schema IssuingDisputeDuplicateEvidence
module StripeAPI.Types.IssuingDisputeDuplicateEvidence where

import qualified Control.Monad.Fail
import qualified Data.Aeson
import qualified Data.Aeson as Data.Aeson.Encoding.Internal
import qualified Data.Aeson as Data.Aeson.Types
import qualified Data.Aeson as Data.Aeson.Types.FromJSON
import qualified Data.Aeson as Data.Aeson.Types.Internal
import qualified Data.Aeson as Data.Aeson.Types.ToJSON
import qualified Data.ByteString.Char8
import qualified Data.ByteString.Char8 as Data.ByteString.Internal
import qualified Data.Functor
import qualified Data.Scientific
import qualified Data.Text
import qualified Data.Text.Internal
import qualified Data.Time.Calendar as Data.Time.Calendar.Days
import qualified Data.Time.LocalTime as Data.Time.LocalTime.Internal.ZonedTime
import qualified GHC.Base
import qualified GHC.Classes
import qualified GHC.Int
import qualified GHC.Show
import qualified GHC.Types
import qualified StripeAPI.Common
import StripeAPI.TypeAlias
import {-# SOURCE #-} StripeAPI.Types.File
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | Defines the object schema located at @components.schemas.issuing_dispute_duplicate_evidence@ in the specification.
data IssuingDisputeDuplicateEvidence = IssuingDisputeDuplicateEvidence
  { -- | additional_documentation: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional documentation supporting the dispute.
    IssuingDisputeDuplicateEvidence
-> Maybe
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
issuingDisputeDuplicateEvidenceAdditionalDocumentation :: (GHC.Maybe.Maybe IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants),
    -- | card_statement: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Copy of the card statement showing that the product had already been paid for.
    IssuingDisputeDuplicateEvidence
-> Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
issuingDisputeDuplicateEvidenceCardStatement :: (GHC.Maybe.Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants),
    -- | cash_receipt: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Copy of the receipt showing that the product had been paid for in cash.
    IssuingDisputeDuplicateEvidence
-> Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
issuingDisputeDuplicateEvidenceCashReceipt :: (GHC.Maybe.Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants),
    -- | check_image: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Image of the front and back of the check that was used to pay for the product.
    IssuingDisputeDuplicateEvidence
-> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
issuingDisputeDuplicateEvidenceCheckImage :: (GHC.Maybe.Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants),
    -- | explanation: Explanation of why the cardholder is disputing this transaction.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    IssuingDisputeDuplicateEvidence -> Maybe Text
issuingDisputeDuplicateEvidenceExplanation :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | original_transaction: Transaction (e.g., ipi_...) that the disputed transaction is a duplicate of. Of the two or more transactions that are copies of each other, this is original undisputed one.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    IssuingDisputeDuplicateEvidence -> Maybe Text
issuingDisputeDuplicateEvidenceOriginalTransaction :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> IssuingDisputeDuplicateEvidence -> ShowS
[IssuingDisputeDuplicateEvidence] -> ShowS
IssuingDisputeDuplicateEvidence -> String
(Int -> IssuingDisputeDuplicateEvidence -> ShowS)
-> (IssuingDisputeDuplicateEvidence -> String)
-> ([IssuingDisputeDuplicateEvidence] -> ShowS)
-> Show IssuingDisputeDuplicateEvidence
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IssuingDisputeDuplicateEvidence] -> ShowS
$cshowList :: [IssuingDisputeDuplicateEvidence] -> ShowS
show :: IssuingDisputeDuplicateEvidence -> String
$cshow :: IssuingDisputeDuplicateEvidence -> String
showsPrec :: Int -> IssuingDisputeDuplicateEvidence -> ShowS
$cshowsPrec :: Int -> IssuingDisputeDuplicateEvidence -> ShowS
GHC.Show.Show,
      IssuingDisputeDuplicateEvidence
-> IssuingDisputeDuplicateEvidence -> Bool
(IssuingDisputeDuplicateEvidence
 -> IssuingDisputeDuplicateEvidence -> Bool)
-> (IssuingDisputeDuplicateEvidence
    -> IssuingDisputeDuplicateEvidence -> Bool)
-> Eq IssuingDisputeDuplicateEvidence
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IssuingDisputeDuplicateEvidence
-> IssuingDisputeDuplicateEvidence -> Bool
$c/= :: IssuingDisputeDuplicateEvidence
-> IssuingDisputeDuplicateEvidence -> Bool
== :: IssuingDisputeDuplicateEvidence
-> IssuingDisputeDuplicateEvidence -> Bool
$c== :: IssuingDisputeDuplicateEvidence
-> IssuingDisputeDuplicateEvidence -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON IssuingDisputeDuplicateEvidence where
  toJSON :: IssuingDisputeDuplicateEvidence -> Value
toJSON IssuingDisputeDuplicateEvidence
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"additional_documentation" Text
-> Maybe
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeDuplicateEvidence
-> Maybe
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
issuingDisputeDuplicateEvidenceAdditionalDocumentation IssuingDisputeDuplicateEvidence
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"card_statement" Text
-> Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeDuplicateEvidence
-> Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
issuingDisputeDuplicateEvidenceCardStatement IssuingDisputeDuplicateEvidence
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"cash_receipt" Text
-> Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeDuplicateEvidence
-> Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
issuingDisputeDuplicateEvidenceCashReceipt IssuingDisputeDuplicateEvidence
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"check_image" Text
-> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeDuplicateEvidence
-> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
issuingDisputeDuplicateEvidenceCheckImage IssuingDisputeDuplicateEvidence
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"explanation" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeDuplicateEvidence -> Maybe Text
issuingDisputeDuplicateEvidenceExplanation IssuingDisputeDuplicateEvidence
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"original_transaction" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeDuplicateEvidence -> Maybe Text
issuingDisputeDuplicateEvidenceOriginalTransaction IssuingDisputeDuplicateEvidence
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: IssuingDisputeDuplicateEvidence -> Encoding
toEncoding IssuingDisputeDuplicateEvidence
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"additional_documentation" Text
-> Maybe
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeDuplicateEvidence
-> Maybe
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
issuingDisputeDuplicateEvidenceAdditionalDocumentation IssuingDisputeDuplicateEvidence
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"card_statement" Text
-> Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeDuplicateEvidence
-> Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
issuingDisputeDuplicateEvidenceCardStatement IssuingDisputeDuplicateEvidence
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"cash_receipt" Text
-> Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeDuplicateEvidence
-> Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
issuingDisputeDuplicateEvidenceCashReceipt IssuingDisputeDuplicateEvidence
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"check_image" Text
-> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeDuplicateEvidence
-> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
issuingDisputeDuplicateEvidenceCheckImage IssuingDisputeDuplicateEvidence
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"explanation" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeDuplicateEvidence -> Maybe Text
issuingDisputeDuplicateEvidenceExplanation IssuingDisputeDuplicateEvidence
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"original_transaction" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeDuplicateEvidence -> Maybe Text
issuingDisputeDuplicateEvidenceOriginalTransaction IssuingDisputeDuplicateEvidence
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeDuplicateEvidence where
  parseJSON :: Value -> Parser IssuingDisputeDuplicateEvidence
parseJSON = String
-> (Object -> Parser IssuingDisputeDuplicateEvidence)
-> Value
-> Parser IssuingDisputeDuplicateEvidence
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"IssuingDisputeDuplicateEvidence" (\Object
obj -> ((((((Maybe
   IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
 -> Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
 -> Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
 -> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
 -> Maybe Text
 -> Maybe Text
 -> IssuingDisputeDuplicateEvidence)
-> Parser
     (Maybe
        IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
      -> Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
      -> Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
      -> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
      -> Maybe Text
      -> Maybe Text
      -> IssuingDisputeDuplicateEvidence)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
-> Maybe Text
-> Maybe Text
-> IssuingDisputeDuplicateEvidence
IssuingDisputeDuplicateEvidence Parser
  (Maybe
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
   -> Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
   -> Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
   -> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
   -> Maybe Text
   -> Maybe Text
   -> IssuingDisputeDuplicateEvidence)
-> Parser
     (Maybe
        IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants)
-> Parser
     (Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
      -> Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
      -> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
      -> Maybe Text
      -> Maybe Text
      -> IssuingDisputeDuplicateEvidence)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"additional_documentation")) Parser
  (Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
   -> Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
   -> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
   -> Maybe Text
   -> Maybe Text
   -> IssuingDisputeDuplicateEvidence)
-> Parser
     (Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants)
-> Parser
     (Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
      -> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
      -> Maybe Text
      -> Maybe Text
      -> IssuingDisputeDuplicateEvidence)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"card_statement")) Parser
  (Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
   -> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
   -> Maybe Text
   -> Maybe Text
   -> IssuingDisputeDuplicateEvidence)
-> Parser
     (Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants)
-> Parser
     (Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
      -> Maybe Text -> Maybe Text -> IssuingDisputeDuplicateEvidence)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"cash_receipt")) Parser
  (Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
   -> Maybe Text -> Maybe Text -> IssuingDisputeDuplicateEvidence)
-> Parser
     (Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants)
-> Parser
     (Maybe Text -> Maybe Text -> IssuingDisputeDuplicateEvidence)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"check_image")) Parser
  (Maybe Text -> Maybe Text -> IssuingDisputeDuplicateEvidence)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> IssuingDisputeDuplicateEvidence)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"explanation")) Parser (Maybe Text -> IssuingDisputeDuplicateEvidence)
-> Parser (Maybe Text) -> Parser IssuingDisputeDuplicateEvidence
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"original_transaction"))

-- | Create a new 'IssuingDisputeDuplicateEvidence' with all required fields.
mkIssuingDisputeDuplicateEvidence :: IssuingDisputeDuplicateEvidence
mkIssuingDisputeDuplicateEvidence :: IssuingDisputeDuplicateEvidence
mkIssuingDisputeDuplicateEvidence =
  IssuingDisputeDuplicateEvidence :: Maybe
  IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
-> Maybe Text
-> Maybe Text
-> IssuingDisputeDuplicateEvidence
IssuingDisputeDuplicateEvidence
    { issuingDisputeDuplicateEvidenceAdditionalDocumentation :: Maybe
  IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
issuingDisputeDuplicateEvidenceAdditionalDocumentation = Maybe
  IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      issuingDisputeDuplicateEvidenceCardStatement :: Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
issuingDisputeDuplicateEvidenceCardStatement = Maybe IssuingDisputeDuplicateEvidenceCardStatement'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      issuingDisputeDuplicateEvidenceCashReceipt :: Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
issuingDisputeDuplicateEvidenceCashReceipt = Maybe IssuingDisputeDuplicateEvidenceCashReceipt'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      issuingDisputeDuplicateEvidenceCheckImage :: Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
issuingDisputeDuplicateEvidenceCheckImage = Maybe IssuingDisputeDuplicateEvidenceCheckImage'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      issuingDisputeDuplicateEvidenceExplanation :: Maybe Text
issuingDisputeDuplicateEvidenceExplanation = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      issuingDisputeDuplicateEvidenceOriginalTransaction :: Maybe Text
issuingDisputeDuplicateEvidenceOriginalTransaction = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @components.schemas.issuing_dispute_duplicate_evidence.properties.additional_documentation.anyOf@ in the specification.
--
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional documentation supporting the dispute.
data IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
  = IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Text Data.Text.Internal.Text
  | IssuingDisputeDuplicateEvidenceAdditionalDocumentation'File File
  deriving (Int
-> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> ShowS
[IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants]
-> ShowS
IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> String
(Int
 -> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
 -> ShowS)
-> (IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
    -> String)
-> ([IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants]
    -> ShowS)
-> Show
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants]
-> ShowS
$cshowList :: [IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants]
-> ShowS
show :: IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> String
$cshow :: IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> String
showsPrec :: Int
-> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> ShowS
$cshowsPrec :: Int
-> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> ShowS
GHC.Show.Show, IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Bool
(IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
 -> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
 -> Bool)
-> (IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
    -> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
    -> Bool)
-> Eq
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Bool
$c/= :: IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Bool
== :: IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Bool
$c== :: IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants where
  toJSON :: IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Value
toJSON (IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (IssuingDisputeDuplicateEvidenceAdditionalDocumentation'File File
a) = File -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON File
a

instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants where
  parseJSON :: Value
-> Parser
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
parseJSON Value
val = case (Text
-> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Text (Text
 -> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants)
-> Result Text
-> Result
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Result
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Result
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((File
-> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
IssuingDisputeDuplicateEvidenceAdditionalDocumentation'File (File
 -> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants)
-> Result File
-> Result
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result File
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Result
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Result
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
    Data.Aeson.Types.Internal.Success IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
a -> IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
-> Parser
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     IssuingDisputeDuplicateEvidenceAdditionalDocumentation'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the oneOf schema located at @components.schemas.issuing_dispute_duplicate_evidence.properties.card_statement.anyOf@ in the specification.
--
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Copy of the card statement showing that the product had already been paid for.
data IssuingDisputeDuplicateEvidenceCardStatement'Variants
  = IssuingDisputeDuplicateEvidenceCardStatement'Text Data.Text.Internal.Text
  | IssuingDisputeDuplicateEvidenceCardStatement'File File
  deriving (Int
-> IssuingDisputeDuplicateEvidenceCardStatement'Variants -> ShowS
[IssuingDisputeDuplicateEvidenceCardStatement'Variants] -> ShowS
IssuingDisputeDuplicateEvidenceCardStatement'Variants -> String
(Int
 -> IssuingDisputeDuplicateEvidenceCardStatement'Variants -> ShowS)
-> (IssuingDisputeDuplicateEvidenceCardStatement'Variants
    -> String)
-> ([IssuingDisputeDuplicateEvidenceCardStatement'Variants]
    -> ShowS)
-> Show IssuingDisputeDuplicateEvidenceCardStatement'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IssuingDisputeDuplicateEvidenceCardStatement'Variants] -> ShowS
$cshowList :: [IssuingDisputeDuplicateEvidenceCardStatement'Variants] -> ShowS
show :: IssuingDisputeDuplicateEvidenceCardStatement'Variants -> String
$cshow :: IssuingDisputeDuplicateEvidenceCardStatement'Variants -> String
showsPrec :: Int
-> IssuingDisputeDuplicateEvidenceCardStatement'Variants -> ShowS
$cshowsPrec :: Int
-> IssuingDisputeDuplicateEvidenceCardStatement'Variants -> ShowS
GHC.Show.Show, IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> IssuingDisputeDuplicateEvidenceCardStatement'Variants -> Bool
(IssuingDisputeDuplicateEvidenceCardStatement'Variants
 -> IssuingDisputeDuplicateEvidenceCardStatement'Variants -> Bool)
-> (IssuingDisputeDuplicateEvidenceCardStatement'Variants
    -> IssuingDisputeDuplicateEvidenceCardStatement'Variants -> Bool)
-> Eq IssuingDisputeDuplicateEvidenceCardStatement'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> IssuingDisputeDuplicateEvidenceCardStatement'Variants -> Bool
$c/= :: IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> IssuingDisputeDuplicateEvidenceCardStatement'Variants -> Bool
== :: IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> IssuingDisputeDuplicateEvidenceCardStatement'Variants -> Bool
$c== :: IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> IssuingDisputeDuplicateEvidenceCardStatement'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON IssuingDisputeDuplicateEvidenceCardStatement'Variants where
  toJSON :: IssuingDisputeDuplicateEvidenceCardStatement'Variants -> Value
toJSON (IssuingDisputeDuplicateEvidenceCardStatement'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (IssuingDisputeDuplicateEvidenceCardStatement'File File
a) = File -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON File
a

instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeDuplicateEvidenceCardStatement'Variants where
  parseJSON :: Value
-> Parser IssuingDisputeDuplicateEvidenceCardStatement'Variants
parseJSON Value
val = case (Text -> IssuingDisputeDuplicateEvidenceCardStatement'Variants
IssuingDisputeDuplicateEvidenceCardStatement'Text (Text -> IssuingDisputeDuplicateEvidenceCardStatement'Variants)
-> Result Text
-> Result IssuingDisputeDuplicateEvidenceCardStatement'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> Result IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> Result IssuingDisputeDuplicateEvidenceCardStatement'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((File -> IssuingDisputeDuplicateEvidenceCardStatement'Variants
IssuingDisputeDuplicateEvidenceCardStatement'File (File -> IssuingDisputeDuplicateEvidenceCardStatement'Variants)
-> Result File
-> Result IssuingDisputeDuplicateEvidenceCardStatement'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result File
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> Result IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> Result IssuingDisputeDuplicateEvidenceCardStatement'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result IssuingDisputeDuplicateEvidenceCardStatement'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
    Data.Aeson.Types.Internal.Success IssuingDisputeDuplicateEvidenceCardStatement'Variants
a -> IssuingDisputeDuplicateEvidenceCardStatement'Variants
-> Parser IssuingDisputeDuplicateEvidenceCardStatement'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure IssuingDisputeDuplicateEvidenceCardStatement'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String
-> Parser IssuingDisputeDuplicateEvidenceCardStatement'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the oneOf schema located at @components.schemas.issuing_dispute_duplicate_evidence.properties.cash_receipt.anyOf@ in the specification.
--
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Copy of the receipt showing that the product had been paid for in cash.
data IssuingDisputeDuplicateEvidenceCashReceipt'Variants
  = IssuingDisputeDuplicateEvidenceCashReceipt'Text Data.Text.Internal.Text
  | IssuingDisputeDuplicateEvidenceCashReceipt'File File
  deriving (Int -> IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> ShowS
[IssuingDisputeDuplicateEvidenceCashReceipt'Variants] -> ShowS
IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> String
(Int
 -> IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> ShowS)
-> (IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> String)
-> ([IssuingDisputeDuplicateEvidenceCashReceipt'Variants] -> ShowS)
-> Show IssuingDisputeDuplicateEvidenceCashReceipt'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IssuingDisputeDuplicateEvidenceCashReceipt'Variants] -> ShowS
$cshowList :: [IssuingDisputeDuplicateEvidenceCashReceipt'Variants] -> ShowS
show :: IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> String
$cshow :: IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> String
showsPrec :: Int -> IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> ShowS
$cshowsPrec :: Int -> IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> ShowS
GHC.Show.Show, IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> Bool
(IssuingDisputeDuplicateEvidenceCashReceipt'Variants
 -> IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> Bool)
-> (IssuingDisputeDuplicateEvidenceCashReceipt'Variants
    -> IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> Bool)
-> Eq IssuingDisputeDuplicateEvidenceCashReceipt'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> Bool
$c/= :: IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> Bool
== :: IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> Bool
$c== :: IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON IssuingDisputeDuplicateEvidenceCashReceipt'Variants where
  toJSON :: IssuingDisputeDuplicateEvidenceCashReceipt'Variants -> Value
toJSON (IssuingDisputeDuplicateEvidenceCashReceipt'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (IssuingDisputeDuplicateEvidenceCashReceipt'File File
a) = File -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON File
a

instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeDuplicateEvidenceCashReceipt'Variants where
  parseJSON :: Value -> Parser IssuingDisputeDuplicateEvidenceCashReceipt'Variants
parseJSON Value
val = case (Text -> IssuingDisputeDuplicateEvidenceCashReceipt'Variants
IssuingDisputeDuplicateEvidenceCashReceipt'Text (Text -> IssuingDisputeDuplicateEvidenceCashReceipt'Variants)
-> Result Text
-> Result IssuingDisputeDuplicateEvidenceCashReceipt'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> Result IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> Result IssuingDisputeDuplicateEvidenceCashReceipt'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((File -> IssuingDisputeDuplicateEvidenceCashReceipt'Variants
IssuingDisputeDuplicateEvidenceCashReceipt'File (File -> IssuingDisputeDuplicateEvidenceCashReceipt'Variants)
-> Result File
-> Result IssuingDisputeDuplicateEvidenceCashReceipt'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result File
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> Result IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> Result IssuingDisputeDuplicateEvidenceCashReceipt'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result IssuingDisputeDuplicateEvidenceCashReceipt'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
    Data.Aeson.Types.Internal.Success IssuingDisputeDuplicateEvidenceCashReceipt'Variants
a -> IssuingDisputeDuplicateEvidenceCashReceipt'Variants
-> Parser IssuingDisputeDuplicateEvidenceCashReceipt'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure IssuingDisputeDuplicateEvidenceCashReceipt'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String
-> Parser IssuingDisputeDuplicateEvidenceCashReceipt'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the oneOf schema located at @components.schemas.issuing_dispute_duplicate_evidence.properties.check_image.anyOf@ in the specification.
--
-- (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Image of the front and back of the check that was used to pay for the product.
data IssuingDisputeDuplicateEvidenceCheckImage'Variants
  = IssuingDisputeDuplicateEvidenceCheckImage'Text Data.Text.Internal.Text
  | IssuingDisputeDuplicateEvidenceCheckImage'File File
  deriving (Int -> IssuingDisputeDuplicateEvidenceCheckImage'Variants -> ShowS
[IssuingDisputeDuplicateEvidenceCheckImage'Variants] -> ShowS
IssuingDisputeDuplicateEvidenceCheckImage'Variants -> String
(Int
 -> IssuingDisputeDuplicateEvidenceCheckImage'Variants -> ShowS)
-> (IssuingDisputeDuplicateEvidenceCheckImage'Variants -> String)
-> ([IssuingDisputeDuplicateEvidenceCheckImage'Variants] -> ShowS)
-> Show IssuingDisputeDuplicateEvidenceCheckImage'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IssuingDisputeDuplicateEvidenceCheckImage'Variants] -> ShowS
$cshowList :: [IssuingDisputeDuplicateEvidenceCheckImage'Variants] -> ShowS
show :: IssuingDisputeDuplicateEvidenceCheckImage'Variants -> String
$cshow :: IssuingDisputeDuplicateEvidenceCheckImage'Variants -> String
showsPrec :: Int -> IssuingDisputeDuplicateEvidenceCheckImage'Variants -> ShowS
$cshowsPrec :: Int -> IssuingDisputeDuplicateEvidenceCheckImage'Variants -> ShowS
GHC.Show.Show, IssuingDisputeDuplicateEvidenceCheckImage'Variants
-> IssuingDisputeDuplicateEvidenceCheckImage'Variants -> Bool
(IssuingDisputeDuplicateEvidenceCheckImage'Variants
 -> IssuingDisputeDuplicateEvidenceCheckImage'Variants -> Bool)
-> (IssuingDisputeDuplicateEvidenceCheckImage'Variants
    -> IssuingDisputeDuplicateEvidenceCheckImage'Variants -> Bool)
-> Eq IssuingDisputeDuplicateEvidenceCheckImage'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IssuingDisputeDuplicateEvidenceCheckImage'Variants
-> IssuingDisputeDuplicateEvidenceCheckImage'Variants -> Bool
$c/= :: IssuingDisputeDuplicateEvidenceCheckImage'Variants
-> IssuingDisputeDuplicateEvidenceCheckImage'Variants -> Bool
== :: IssuingDisputeDuplicateEvidenceCheckImage'Variants
-> IssuingDisputeDuplicateEvidenceCheckImage'Variants -> Bool
$c== :: IssuingDisputeDuplicateEvidenceCheckImage'Variants
-> IssuingDisputeDuplicateEvidenceCheckImage'Variants -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON IssuingDisputeDuplicateEvidenceCheckImage'Variants where
  toJSON :: IssuingDisputeDuplicateEvidenceCheckImage'Variants -> Value
toJSON (IssuingDisputeDuplicateEvidenceCheckImage'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
  toJSON (IssuingDisputeDuplicateEvidenceCheckImage'File File
a) = File -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON File
a

instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeDuplicateEvidenceCheckImage'Variants where
  parseJSON :: Value -> Parser IssuingDisputeDuplicateEvidenceCheckImage'Variants
parseJSON Value
val = case (Text -> IssuingDisputeDuplicateEvidenceCheckImage'Variants
IssuingDisputeDuplicateEvidenceCheckImage'Text (Text -> IssuingDisputeDuplicateEvidenceCheckImage'Variants)
-> Result Text
-> Result IssuingDisputeDuplicateEvidenceCheckImage'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result IssuingDisputeDuplicateEvidenceCheckImage'Variants
-> Result IssuingDisputeDuplicateEvidenceCheckImage'Variants
-> Result IssuingDisputeDuplicateEvidenceCheckImage'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((File -> IssuingDisputeDuplicateEvidenceCheckImage'Variants
IssuingDisputeDuplicateEvidenceCheckImage'File (File -> IssuingDisputeDuplicateEvidenceCheckImage'Variants)
-> Result File
-> Result IssuingDisputeDuplicateEvidenceCheckImage'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result File
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result IssuingDisputeDuplicateEvidenceCheckImage'Variants
-> Result IssuingDisputeDuplicateEvidenceCheckImage'Variants
-> Result IssuingDisputeDuplicateEvidenceCheckImage'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result IssuingDisputeDuplicateEvidenceCheckImage'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched") of
    Data.Aeson.Types.Internal.Success IssuingDisputeDuplicateEvidenceCheckImage'Variants
a -> IssuingDisputeDuplicateEvidenceCheckImage'Variants
-> Parser IssuingDisputeDuplicateEvidenceCheckImage'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure IssuingDisputeDuplicateEvidenceCheckImage'Variants
a
    Data.Aeson.Types.Internal.Error String
a -> String -> Parser IssuingDisputeDuplicateEvidenceCheckImage'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a