{-# 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 IssuingDisputeServiceNotAsDescribedEvidence
module StripeAPI.Types.IssuingDisputeServiceNotAsDescribedEvidence 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_service_not_as_described_evidence@ in the specification.
data IssuingDisputeServiceNotAsDescribedEvidence = IssuingDisputeServiceNotAsDescribedEvidence
  { -- | additional_documentation: (ID of a [file upload](https:\/\/stripe.com\/docs\/guides\/file-upload)) Additional documentation supporting the dispute.
    IssuingDisputeServiceNotAsDescribedEvidence
-> Maybe
     IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
issuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation :: (GHC.Maybe.Maybe IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants),
    -- | canceled_at: Date when order was canceled.
    IssuingDisputeServiceNotAsDescribedEvidence -> Maybe Int
issuingDisputeServiceNotAsDescribedEvidenceCanceledAt :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | cancellation_reason: Reason for canceling the order.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    IssuingDisputeServiceNotAsDescribedEvidence -> Maybe Text
issuingDisputeServiceNotAsDescribedEvidenceCancellationReason :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | explanation: Explanation of why the cardholder is disputing this transaction.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    IssuingDisputeServiceNotAsDescribedEvidence -> Maybe Text
issuingDisputeServiceNotAsDescribedEvidenceExplanation :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | received_at: Date when the product was received.
    IssuingDisputeServiceNotAsDescribedEvidence -> Maybe Int
issuingDisputeServiceNotAsDescribedEvidenceReceivedAt :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int -> IssuingDisputeServiceNotAsDescribedEvidence -> ShowS
[IssuingDisputeServiceNotAsDescribedEvidence] -> ShowS
IssuingDisputeServiceNotAsDescribedEvidence -> String
(Int -> IssuingDisputeServiceNotAsDescribedEvidence -> ShowS)
-> (IssuingDisputeServiceNotAsDescribedEvidence -> String)
-> ([IssuingDisputeServiceNotAsDescribedEvidence] -> ShowS)
-> Show IssuingDisputeServiceNotAsDescribedEvidence
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IssuingDisputeServiceNotAsDescribedEvidence] -> ShowS
$cshowList :: [IssuingDisputeServiceNotAsDescribedEvidence] -> ShowS
show :: IssuingDisputeServiceNotAsDescribedEvidence -> String
$cshow :: IssuingDisputeServiceNotAsDescribedEvidence -> String
showsPrec :: Int -> IssuingDisputeServiceNotAsDescribedEvidence -> ShowS
$cshowsPrec :: Int -> IssuingDisputeServiceNotAsDescribedEvidence -> ShowS
GHC.Show.Show,
      IssuingDisputeServiceNotAsDescribedEvidence
-> IssuingDisputeServiceNotAsDescribedEvidence -> Bool
(IssuingDisputeServiceNotAsDescribedEvidence
 -> IssuingDisputeServiceNotAsDescribedEvidence -> Bool)
-> (IssuingDisputeServiceNotAsDescribedEvidence
    -> IssuingDisputeServiceNotAsDescribedEvidence -> Bool)
-> Eq IssuingDisputeServiceNotAsDescribedEvidence
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IssuingDisputeServiceNotAsDescribedEvidence
-> IssuingDisputeServiceNotAsDescribedEvidence -> Bool
$c/= :: IssuingDisputeServiceNotAsDescribedEvidence
-> IssuingDisputeServiceNotAsDescribedEvidence -> Bool
== :: IssuingDisputeServiceNotAsDescribedEvidence
-> IssuingDisputeServiceNotAsDescribedEvidence -> Bool
$c== :: IssuingDisputeServiceNotAsDescribedEvidence
-> IssuingDisputeServiceNotAsDescribedEvidence -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON IssuingDisputeServiceNotAsDescribedEvidence where
  toJSON :: IssuingDisputeServiceNotAsDescribedEvidence -> Value
toJSON IssuingDisputeServiceNotAsDescribedEvidence
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"additional_documentation" Text
-> Maybe
     IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeServiceNotAsDescribedEvidence
-> Maybe
     IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
issuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation IssuingDisputeServiceNotAsDescribedEvidence
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"canceled_at" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeServiceNotAsDescribedEvidence -> Maybe Int
issuingDisputeServiceNotAsDescribedEvidenceCanceledAt IssuingDisputeServiceNotAsDescribedEvidence
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"cancellation_reason" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeServiceNotAsDescribedEvidence -> Maybe Text
issuingDisputeServiceNotAsDescribedEvidenceCancellationReason IssuingDisputeServiceNotAsDescribedEvidence
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..= IssuingDisputeServiceNotAsDescribedEvidence -> Maybe Text
issuingDisputeServiceNotAsDescribedEvidenceExplanation IssuingDisputeServiceNotAsDescribedEvidence
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"received_at" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeServiceNotAsDescribedEvidence -> Maybe Int
issuingDisputeServiceNotAsDescribedEvidenceReceivedAt IssuingDisputeServiceNotAsDescribedEvidence
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: IssuingDisputeServiceNotAsDescribedEvidence -> Encoding
toEncoding IssuingDisputeServiceNotAsDescribedEvidence
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"additional_documentation" Text
-> Maybe
     IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeServiceNotAsDescribedEvidence
-> Maybe
     IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
issuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation IssuingDisputeServiceNotAsDescribedEvidence
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"canceled_at" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeServiceNotAsDescribedEvidence -> Maybe Int
issuingDisputeServiceNotAsDescribedEvidenceCanceledAt IssuingDisputeServiceNotAsDescribedEvidence
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"cancellation_reason" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeServiceNotAsDescribedEvidence -> Maybe Text
issuingDisputeServiceNotAsDescribedEvidenceCancellationReason IssuingDisputeServiceNotAsDescribedEvidence
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..= IssuingDisputeServiceNotAsDescribedEvidence -> Maybe Text
issuingDisputeServiceNotAsDescribedEvidenceExplanation IssuingDisputeServiceNotAsDescribedEvidence
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"received_at" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= IssuingDisputeServiceNotAsDescribedEvidence -> Maybe Int
issuingDisputeServiceNotAsDescribedEvidenceReceivedAt IssuingDisputeServiceNotAsDescribedEvidence
obj)))))

instance Data.Aeson.Types.FromJSON.FromJSON IssuingDisputeServiceNotAsDescribedEvidence where
  parseJSON :: Value -> Parser IssuingDisputeServiceNotAsDescribedEvidence
parseJSON = String
-> (Object -> Parser IssuingDisputeServiceNotAsDescribedEvidence)
-> Value
-> Parser IssuingDisputeServiceNotAsDescribedEvidence
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"IssuingDisputeServiceNotAsDescribedEvidence" (\Object
obj -> (((((Maybe
   IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> Maybe Int
 -> IssuingDisputeServiceNotAsDescribedEvidence)
-> Parser
     (Maybe
        IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> IssuingDisputeServiceNotAsDescribedEvidence)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> IssuingDisputeServiceNotAsDescribedEvidence
IssuingDisputeServiceNotAsDescribedEvidence Parser
  (Maybe
     IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> IssuingDisputeServiceNotAsDescribedEvidence)
-> Parser
     (Maybe
        IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants)
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> IssuingDisputeServiceNotAsDescribedEvidence)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"additional_documentation")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> IssuingDisputeServiceNotAsDescribedEvidence)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Int
      -> IssuingDisputeServiceNotAsDescribedEvidence)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"canceled_at")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Int
   -> IssuingDisputeServiceNotAsDescribedEvidence)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Int -> IssuingDisputeServiceNotAsDescribedEvidence)
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
"cancellation_reason")) Parser
  (Maybe Text
   -> Maybe Int -> IssuingDisputeServiceNotAsDescribedEvidence)
-> Parser (Maybe Text)
-> Parser
     (Maybe Int -> IssuingDisputeServiceNotAsDescribedEvidence)
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 Int -> IssuingDisputeServiceNotAsDescribedEvidence)
-> Parser (Maybe Int)
-> Parser IssuingDisputeServiceNotAsDescribedEvidence
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"received_at"))

-- | Create a new 'IssuingDisputeServiceNotAsDescribedEvidence' with all required fields.
mkIssuingDisputeServiceNotAsDescribedEvidence :: IssuingDisputeServiceNotAsDescribedEvidence
mkIssuingDisputeServiceNotAsDescribedEvidence :: IssuingDisputeServiceNotAsDescribedEvidence
mkIssuingDisputeServiceNotAsDescribedEvidence =
  IssuingDisputeServiceNotAsDescribedEvidence :: Maybe
  IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> IssuingDisputeServiceNotAsDescribedEvidence
IssuingDisputeServiceNotAsDescribedEvidence
    { issuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation :: Maybe
  IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
issuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation = Maybe
  IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      issuingDisputeServiceNotAsDescribedEvidenceCanceledAt :: Maybe Int
issuingDisputeServiceNotAsDescribedEvidenceCanceledAt = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      issuingDisputeServiceNotAsDescribedEvidenceCancellationReason :: Maybe Text
issuingDisputeServiceNotAsDescribedEvidenceCancellationReason = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      issuingDisputeServiceNotAsDescribedEvidenceExplanation :: Maybe Text
issuingDisputeServiceNotAsDescribedEvidenceExplanation = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      issuingDisputeServiceNotAsDescribedEvidenceReceivedAt :: Maybe Int
issuingDisputeServiceNotAsDescribedEvidenceReceivedAt = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @components.schemas.issuing_dispute_service_not_as_described_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 IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
  = IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Text Data.Text.Internal.Text
  | IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'File File
  deriving (Int
-> IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> ShowS
[IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants]
-> ShowS
IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> String
(Int
 -> IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
 -> ShowS)
-> (IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
    -> String)
-> ([IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants]
    -> ShowS)
-> Show
     IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants]
-> ShowS
$cshowList :: [IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants]
-> ShowS
show :: IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> String
$cshow :: IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> String
showsPrec :: Int
-> IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> ShowS
$cshowsPrec :: Int
-> IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> ShowS
GHC.Show.Show, IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> Bool
(IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
 -> IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
 -> Bool)
-> (IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
    -> IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
    -> Bool)
-> Eq
     IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> Bool
$c/= :: IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> Bool
== :: IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> Bool
$c== :: IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> IssuingDisputeServiceNotAsDescribedEvidenceAdditionalDocumentation'Variants
-> Bool
GHC.Classes.Eq)

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

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