{-# LANGUAGE ExplicitForAll #-}
{-# 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 different functions to run the operation getRecipientsId
module StripeAPI.Operations.GetRecipientsId where

import qualified Control.Monad.Fail
import qualified Control.Monad.Trans.Reader
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.Either
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 Data.Vector
import qualified GHC.Base
import qualified GHC.Classes
import qualified GHC.Int
import qualified GHC.Show
import qualified GHC.Types
import qualified Network.HTTP.Client
import qualified Network.HTTP.Client as Network.HTTP.Client.Request
import qualified Network.HTTP.Client as Network.HTTP.Client.Types
import qualified Network.HTTP.Simple
import qualified Network.HTTP.Types
import qualified Network.HTTP.Types as Network.HTTP.Types.Status
import qualified Network.HTTP.Types as Network.HTTP.Types.URI
import qualified StripeAPI.Common
import StripeAPI.Types
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | > GET /v1/recipients/{id}
--
-- \<p>Retrieves the details of an existing recipient. You need only supply the unique recipient identifier that was returned upon recipient creation.\<\/p>
getRecipientsId ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | Contains all available parameters of this operation (query and path parameters)
  GetRecipientsIdParameters ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.StripeT m (Network.HTTP.Client.Types.Response GetRecipientsIdResponse)
getRecipientsId :: GetRecipientsIdParameters
-> StripeT m (Response GetRecipientsIdResponse)
getRecipientsId GetRecipientsIdParameters
parameters =
  (Response ByteString -> Response GetRecipientsIdResponse)
-> StripeT m (Response ByteString)
-> StripeT m (Response GetRecipientsIdResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
    ( \Response ByteString
response_0 ->
        (ByteString -> GetRecipientsIdResponse)
-> Response ByteString -> Response GetRecipientsIdResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
          ( (String -> GetRecipientsIdResponse)
-> (GetRecipientsIdResponse -> GetRecipientsIdResponse)
-> Either String GetRecipientsIdResponse
-> GetRecipientsIdResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String -> GetRecipientsIdResponse
GetRecipientsIdResponseError GetRecipientsIdResponse -> GetRecipientsIdResponse
forall a. a -> a
GHC.Base.id
              (Either String GetRecipientsIdResponse -> GetRecipientsIdResponse)
-> (ByteString -> Either String GetRecipientsIdResponse)
-> ByteString
-> GetRecipientsIdResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. ( \Response ByteString
response ByteString
body ->
                             if
                                 | (\Status
status_1 -> Status -> Int
Network.HTTP.Types.Status.statusCode Status
status_1 Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Int
200) (Response ByteString -> Status
forall body. Response body -> Status
Network.HTTP.Client.Types.responseStatus Response ByteString
response) ->
                                   GetRecipientsIdResponseBody200 -> GetRecipientsIdResponse
GetRecipientsIdResponse200
                                     (GetRecipientsIdResponseBody200 -> GetRecipientsIdResponse)
-> Either String GetRecipientsIdResponseBody200
-> Either String GetRecipientsIdResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String GetRecipientsIdResponseBody200
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                          Data.Either.Either
                                                            GHC.Base.String
                                                            GetRecipientsIdResponseBody200
                                                      )
                                 | Bool -> Status -> Bool
forall a b. a -> b -> a
GHC.Base.const Bool
GHC.Types.True (Response ByteString -> Status
forall body. Response body -> Status
Network.HTTP.Client.Types.responseStatus Response ByteString
response) ->
                                   Error -> GetRecipientsIdResponse
GetRecipientsIdResponseDefault
                                     (Error -> GetRecipientsIdResponse)
-> Either String Error -> Either String GetRecipientsIdResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String Error
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                          Data.Either.Either
                                                            GHC.Base.String
                                                            Error
                                                      )
                                 | Bool
GHC.Base.otherwise -> String -> Either String GetRecipientsIdResponse
forall a b. a -> Either a b
Data.Either.Left String
"Missing default response type"
                         )
                Response ByteString
response_0
          )
          Response ByteString
response_0
    )
    (Text -> Text -> [QueryParameter] -> StripeT m (Response ByteString)
forall (m :: * -> *).
MonadHTTP m =>
Text -> Text -> [QueryParameter] -> StripeT m (Response ByteString)
StripeAPI.Common.doCallWithConfigurationM (Text -> Text
Data.Text.toUpper (Text -> Text) -> Text -> Text
forall a b. (a -> b) -> a -> b
GHC.Base.$ String -> Text
Data.Text.pack String
"GET") (String -> Text
Data.Text.pack (String
"/v1/recipients/" String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ (ByteString -> String
Data.ByteString.Char8.unpack (Bool -> ByteString -> ByteString
Network.HTTP.Types.URI.urlEncode Bool
GHC.Types.True (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ (String -> ByteString
Data.ByteString.Char8.pack (String -> ByteString) -> String -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ Text -> String
forall a. StringifyModel a => a -> String
StripeAPI.Common.stringifyModel (GetRecipientsIdParameters -> Text
getRecipientsIdParametersPathId GetRecipientsIdParameters
parameters))) String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ String
""))) [Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"expand") ([Text] -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON ([Text] -> Value) -> Maybe [Text] -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetRecipientsIdParameters -> Maybe [Text]
getRecipientsIdParametersQueryExpand GetRecipientsIdParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True])

-- | Defines the object schema located at @paths.\/v1\/recipients\/{id}.GET.parameters@ in the specification.
data GetRecipientsIdParameters = GetRecipientsIdParameters
  { -- | pathId: Represents the parameter named \'id\'
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdParameters -> Text
getRecipientsIdParametersPathId :: Data.Text.Internal.Text,
    -- | queryExpand: Represents the parameter named \'expand\'
    --
    -- Specifies which fields in the response should be expanded.
    GetRecipientsIdParameters -> Maybe [Text]
getRecipientsIdParametersQueryExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text]))
  }
  deriving
    ( Int -> GetRecipientsIdParameters -> String -> String
[GetRecipientsIdParameters] -> String -> String
GetRecipientsIdParameters -> String
(Int -> GetRecipientsIdParameters -> String -> String)
-> (GetRecipientsIdParameters -> String)
-> ([GetRecipientsIdParameters] -> String -> String)
-> Show GetRecipientsIdParameters
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [GetRecipientsIdParameters] -> String -> String
$cshowList :: [GetRecipientsIdParameters] -> String -> String
show :: GetRecipientsIdParameters -> String
$cshow :: GetRecipientsIdParameters -> String
showsPrec :: Int -> GetRecipientsIdParameters -> String -> String
$cshowsPrec :: Int -> GetRecipientsIdParameters -> String -> String
GHC.Show.Show,
      GetRecipientsIdParameters -> GetRecipientsIdParameters -> Bool
(GetRecipientsIdParameters -> GetRecipientsIdParameters -> Bool)
-> (GetRecipientsIdParameters -> GetRecipientsIdParameters -> Bool)
-> Eq GetRecipientsIdParameters
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRecipientsIdParameters -> GetRecipientsIdParameters -> Bool
$c/= :: GetRecipientsIdParameters -> GetRecipientsIdParameters -> Bool
== :: GetRecipientsIdParameters -> GetRecipientsIdParameters -> Bool
$c== :: GetRecipientsIdParameters -> GetRecipientsIdParameters -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetRecipientsIdParameters where
  toJSON :: GetRecipientsIdParameters -> Value
toJSON GetRecipientsIdParameters
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"pathId" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdParameters -> Text
getRecipientsIdParametersPathId GetRecipientsIdParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryExpand" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdParameters -> Maybe [Text]
getRecipientsIdParametersQueryExpand GetRecipientsIdParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetRecipientsIdParameters -> Encoding
toEncoding GetRecipientsIdParameters
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"pathId" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdParameters -> Text
getRecipientsIdParametersPathId GetRecipientsIdParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"queryExpand" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdParameters -> Maybe [Text]
getRecipientsIdParametersQueryExpand GetRecipientsIdParameters
obj))

instance Data.Aeson.Types.FromJSON.FromJSON GetRecipientsIdParameters where
  parseJSON :: Value -> Parser GetRecipientsIdParameters
parseJSON = String
-> (Object -> Parser GetRecipientsIdParameters)
-> Value
-> Parser GetRecipientsIdParameters
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetRecipientsIdParameters" (\Object
obj -> ((Text -> Maybe [Text] -> GetRecipientsIdParameters)
-> Parser (Text -> Maybe [Text] -> GetRecipientsIdParameters)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text -> Maybe [Text] -> GetRecipientsIdParameters
GetRecipientsIdParameters Parser (Text -> Maybe [Text] -> GetRecipientsIdParameters)
-> Parser Text
-> Parser (Maybe [Text] -> GetRecipientsIdParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"pathId")) Parser (Maybe [Text] -> GetRecipientsIdParameters)
-> Parser (Maybe [Text]) -> Parser GetRecipientsIdParameters
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
"queryExpand"))

-- | Create a new 'GetRecipientsIdParameters' with all required fields.
mkGetRecipientsIdParameters ::
  -- | 'getRecipientsIdParametersPathId'
  Data.Text.Internal.Text ->
  GetRecipientsIdParameters
mkGetRecipientsIdParameters :: Text -> GetRecipientsIdParameters
mkGetRecipientsIdParameters Text
getRecipientsIdParametersPathId =
  GetRecipientsIdParameters :: Text -> Maybe [Text] -> GetRecipientsIdParameters
GetRecipientsIdParameters
    { getRecipientsIdParametersPathId :: Text
getRecipientsIdParametersPathId = Text
getRecipientsIdParametersPathId,
      getRecipientsIdParametersQueryExpand :: Maybe [Text]
getRecipientsIdParametersQueryExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Represents a response of the operation 'getRecipientsId'.
--
-- The response constructor is chosen by the status code of the response. If no case matches (no specific case for the response code, no range case, no default case), 'GetRecipientsIdResponseError' is used.
data GetRecipientsIdResponse
  = -- | Means either no matching case available or a parse error
    GetRecipientsIdResponseError GHC.Base.String
  | -- | Successful response.
    GetRecipientsIdResponse200 GetRecipientsIdResponseBody200
  | -- | Error response.
    GetRecipientsIdResponseDefault Error
  deriving (Int -> GetRecipientsIdResponse -> String -> String
[GetRecipientsIdResponse] -> String -> String
GetRecipientsIdResponse -> String
(Int -> GetRecipientsIdResponse -> String -> String)
-> (GetRecipientsIdResponse -> String)
-> ([GetRecipientsIdResponse] -> String -> String)
-> Show GetRecipientsIdResponse
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [GetRecipientsIdResponse] -> String -> String
$cshowList :: [GetRecipientsIdResponse] -> String -> String
show :: GetRecipientsIdResponse -> String
$cshow :: GetRecipientsIdResponse -> String
showsPrec :: Int -> GetRecipientsIdResponse -> String -> String
$cshowsPrec :: Int -> GetRecipientsIdResponse -> String -> String
GHC.Show.Show, GetRecipientsIdResponse -> GetRecipientsIdResponse -> Bool
(GetRecipientsIdResponse -> GetRecipientsIdResponse -> Bool)
-> (GetRecipientsIdResponse -> GetRecipientsIdResponse -> Bool)
-> Eq GetRecipientsIdResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRecipientsIdResponse -> GetRecipientsIdResponse -> Bool
$c/= :: GetRecipientsIdResponse -> GetRecipientsIdResponse -> Bool
== :: GetRecipientsIdResponse -> GetRecipientsIdResponse -> Bool
$c== :: GetRecipientsIdResponse -> GetRecipientsIdResponse -> Bool
GHC.Classes.Eq)

-- | Defines the object schema located at @paths.\/v1\/recipients\/{id}.GET.responses.200.content.application\/json.schema.anyOf@ in the specification.
data GetRecipientsIdResponseBody200 = GetRecipientsIdResponseBody200
  { -- | active_account: Hash describing the current account on the recipient, if there is one.
    GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200ActiveAccount'
getRecipientsIdResponseBody200ActiveAccount :: (GHC.Maybe.Maybe GetRecipientsIdResponseBody200ActiveAccount'),
    -- | cards:
    GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200Cards'
getRecipientsIdResponseBody200Cards :: (GHC.Maybe.Maybe GetRecipientsIdResponseBody200Cards'),
    -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
    GetRecipientsIdResponseBody200 -> Maybe Int
getRecipientsIdResponseBody200Created :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | default_card: The default card to use for creating transfers to this recipient.
    GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
getRecipientsIdResponseBody200DefaultCard :: (GHC.Maybe.Maybe GetRecipientsIdResponseBody200DefaultCard'Variants),
    -- | description: An arbitrary string attached to the object. Often useful for displaying to users.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Description :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | email
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Email :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | id: Unique identifier for the object.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Id :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | livemode: Has the value \`true\` if the object exists in live mode or the value \`false\` if the object exists in test mode.
    GetRecipientsIdResponseBody200 -> Maybe Bool
getRecipientsIdResponseBody200Livemode :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    GetRecipientsIdResponseBody200 -> Maybe Object
getRecipientsIdResponseBody200Metadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | migrated_to: The ID of the [Custom account](https:\/\/stripe.com\/docs\/connect\/custom-accounts) this recipient was migrated to. If set, the recipient can no longer be updated, nor can transfers be made to it: use the Custom account instead.
    GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
getRecipientsIdResponseBody200MigratedTo :: (GHC.Maybe.Maybe GetRecipientsIdResponseBody200MigratedTo'Variants),
    -- | name: Full, legal name of the recipient.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Name :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | rolled_back_from
    GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
getRecipientsIdResponseBody200RolledBackFrom :: (GHC.Maybe.Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants),
    -- | type: Type of the recipient, one of \`individual\` or \`corporation\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Type :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> GetRecipientsIdResponseBody200 -> String -> String
[GetRecipientsIdResponseBody200] -> String -> String
GetRecipientsIdResponseBody200 -> String
(Int -> GetRecipientsIdResponseBody200 -> String -> String)
-> (GetRecipientsIdResponseBody200 -> String)
-> ([GetRecipientsIdResponseBody200] -> String -> String)
-> Show GetRecipientsIdResponseBody200
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [GetRecipientsIdResponseBody200] -> String -> String
$cshowList :: [GetRecipientsIdResponseBody200] -> String -> String
show :: GetRecipientsIdResponseBody200 -> String
$cshow :: GetRecipientsIdResponseBody200 -> String
showsPrec :: Int -> GetRecipientsIdResponseBody200 -> String -> String
$cshowsPrec :: Int -> GetRecipientsIdResponseBody200 -> String -> String
GHC.Show.Show,
      GetRecipientsIdResponseBody200
-> GetRecipientsIdResponseBody200 -> Bool
(GetRecipientsIdResponseBody200
 -> GetRecipientsIdResponseBody200 -> Bool)
-> (GetRecipientsIdResponseBody200
    -> GetRecipientsIdResponseBody200 -> Bool)
-> Eq GetRecipientsIdResponseBody200
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRecipientsIdResponseBody200
-> GetRecipientsIdResponseBody200 -> Bool
$c/= :: GetRecipientsIdResponseBody200
-> GetRecipientsIdResponseBody200 -> Bool
== :: GetRecipientsIdResponseBody200
-> GetRecipientsIdResponseBody200 -> Bool
$c== :: GetRecipientsIdResponseBody200
-> GetRecipientsIdResponseBody200 -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetRecipientsIdResponseBody200 where
  toJSON :: GetRecipientsIdResponseBody200 -> Value
toJSON GetRecipientsIdResponseBody200
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"active_account" Text -> Maybe GetRecipientsIdResponseBody200ActiveAccount' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200ActiveAccount'
getRecipientsIdResponseBody200ActiveAccount GetRecipientsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"cards" Text -> Maybe GetRecipientsIdResponseBody200Cards' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200Cards'
getRecipientsIdResponseBody200Cards GetRecipientsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"created" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Int
getRecipientsIdResponseBody200Created GetRecipientsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_card" Text
-> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
getRecipientsIdResponseBody200DefaultCard GetRecipientsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"description" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Description GetRecipientsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"email" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Email GetRecipientsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"id" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Id GetRecipientsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"livemode" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Bool
getRecipientsIdResponseBody200Livemode GetRecipientsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Object
getRecipientsIdResponseBody200Metadata GetRecipientsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"migrated_to" Text
-> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
getRecipientsIdResponseBody200MigratedTo GetRecipientsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Name GetRecipientsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"rolled_back_from" Text
-> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
getRecipientsIdResponseBody200RolledBackFrom GetRecipientsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"type" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Type GetRecipientsIdResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"deleted" Text -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Bool -> Value
Data.Aeson.Types.Internal.Bool Bool
GHC.Types.True Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"recipient" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetRecipientsIdResponseBody200 -> Encoding
toEncoding GetRecipientsIdResponseBody200
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"active_account" Text
-> Maybe GetRecipientsIdResponseBody200ActiveAccount' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200ActiveAccount'
getRecipientsIdResponseBody200ActiveAccount GetRecipientsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"cards" Text -> Maybe GetRecipientsIdResponseBody200Cards' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200Cards'
getRecipientsIdResponseBody200Cards GetRecipientsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"created" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Int
getRecipientsIdResponseBody200Created GetRecipientsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_card" Text
-> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
getRecipientsIdResponseBody200DefaultCard GetRecipientsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"description" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Description GetRecipientsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"email" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Email GetRecipientsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"id" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Id GetRecipientsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"livemode" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Bool
getRecipientsIdResponseBody200Livemode GetRecipientsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Object
getRecipientsIdResponseBody200Metadata GetRecipientsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"migrated_to" Text
-> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
getRecipientsIdResponseBody200MigratedTo GetRecipientsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Name GetRecipientsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"rolled_back_from" Text
-> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200
-> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
getRecipientsIdResponseBody200RolledBackFrom GetRecipientsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"type" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200 -> Maybe Text
getRecipientsIdResponseBody200Type GetRecipientsIdResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"deleted" Text -> Value -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Bool -> Value
Data.Aeson.Types.Internal.Bool Bool
GHC.Types.True) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"object" Text -> Value -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"recipient")))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON GetRecipientsIdResponseBody200 where
  parseJSON :: Value -> Parser GetRecipientsIdResponseBody200
parseJSON = String
-> (Object -> Parser GetRecipientsIdResponseBody200)
-> Value
-> Parser GetRecipientsIdResponseBody200
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetRecipientsIdResponseBody200" (\Object
obj -> (((((((((((((Maybe GetRecipientsIdResponseBody200ActiveAccount'
 -> Maybe GetRecipientsIdResponseBody200Cards'
 -> Maybe Int
 -> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Bool
 -> Maybe Object
 -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
 -> Maybe Text
 -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
 -> Maybe Text
 -> GetRecipientsIdResponseBody200)
-> Parser
     (Maybe GetRecipientsIdResponseBody200ActiveAccount'
      -> Maybe GetRecipientsIdResponseBody200Cards'
      -> Maybe Int
      -> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
      -> Maybe Text
      -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
      -> Maybe Text
      -> GetRecipientsIdResponseBody200)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe GetRecipientsIdResponseBody200ActiveAccount'
-> Maybe GetRecipientsIdResponseBody200Cards'
-> Maybe Int
-> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Object
-> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
-> Maybe Text
-> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
-> Maybe Text
-> GetRecipientsIdResponseBody200
GetRecipientsIdResponseBody200 Parser
  (Maybe GetRecipientsIdResponseBody200ActiveAccount'
   -> Maybe GetRecipientsIdResponseBody200Cards'
   -> Maybe Int
   -> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
   -> Maybe Text
   -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
   -> Maybe Text
   -> GetRecipientsIdResponseBody200)
-> Parser (Maybe GetRecipientsIdResponseBody200ActiveAccount')
-> Parser
     (Maybe GetRecipientsIdResponseBody200Cards'
      -> Maybe Int
      -> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
      -> Maybe Text
      -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
      -> Maybe Text
      -> GetRecipientsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe GetRecipientsIdResponseBody200ActiveAccount')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"active_account")) Parser
  (Maybe GetRecipientsIdResponseBody200Cards'
   -> Maybe Int
   -> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
   -> Maybe Text
   -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
   -> Maybe Text
   -> GetRecipientsIdResponseBody200)
-> Parser (Maybe GetRecipientsIdResponseBody200Cards')
-> Parser
     (Maybe Int
      -> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
      -> Maybe Text
      -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
      -> Maybe Text
      -> GetRecipientsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text -> Parser (Maybe GetRecipientsIdResponseBody200Cards')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"cards")) Parser
  (Maybe Int
   -> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
   -> Maybe Text
   -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
   -> Maybe Text
   -> GetRecipientsIdResponseBody200)
-> Parser (Maybe Int)
-> Parser
     (Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
      -> Maybe Text
      -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
      -> Maybe Text
      -> GetRecipientsIdResponseBody200)
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
"created")) Parser
  (Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
   -> Maybe Text
   -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
   -> Maybe Text
   -> GetRecipientsIdResponseBody200)
-> Parser
     (Maybe GetRecipientsIdResponseBody200DefaultCard'Variants)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
      -> Maybe Text
      -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
      -> Maybe Text
      -> GetRecipientsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe GetRecipientsIdResponseBody200DefaultCard'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_card")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
   -> Maybe Text
   -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
   -> Maybe Text
   -> GetRecipientsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
      -> Maybe Text
      -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
      -> Maybe Text
      -> GetRecipientsIdResponseBody200)
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
"description")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
   -> Maybe Text
   -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
   -> Maybe Text
   -> GetRecipientsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Bool
      -> Maybe Object
      -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
      -> Maybe Text
      -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
      -> Maybe Text
      -> GetRecipientsIdResponseBody200)
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
"email")) Parser
  (Maybe Text
   -> Maybe Bool
   -> Maybe Object
   -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
   -> Maybe Text
   -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
   -> Maybe Text
   -> GetRecipientsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe Bool
      -> Maybe Object
      -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
      -> Maybe Text
      -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
      -> Maybe Text
      -> GetRecipientsIdResponseBody200)
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
"id")) Parser
  (Maybe Bool
   -> Maybe Object
   -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
   -> Maybe Text
   -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
   -> Maybe Text
   -> GetRecipientsIdResponseBody200)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Object
      -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
      -> Maybe Text
      -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
      -> Maybe Text
      -> GetRecipientsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"livemode")) Parser
  (Maybe Object
   -> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
   -> Maybe Text
   -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
   -> Maybe Text
   -> GetRecipientsIdResponseBody200)
-> Parser (Maybe Object)
-> Parser
     (Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
      -> Maybe Text
      -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
      -> Maybe Text
      -> GetRecipientsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Object)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
   -> Maybe Text
   -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
   -> Maybe Text
   -> GetRecipientsIdResponseBody200)
-> Parser (Maybe GetRecipientsIdResponseBody200MigratedTo'Variants)
-> Parser
     (Maybe Text
      -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
      -> Maybe Text
      -> GetRecipientsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe GetRecipientsIdResponseBody200MigratedTo'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"migrated_to")) Parser
  (Maybe Text
   -> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
   -> Maybe Text
   -> GetRecipientsIdResponseBody200)
-> Parser (Maybe Text)
-> Parser
     (Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
      -> Maybe Text -> GetRecipientsIdResponseBody200)
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
"name")) Parser
  (Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
   -> Maybe Text -> GetRecipientsIdResponseBody200)
-> Parser
     (Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants)
-> Parser (Maybe Text -> GetRecipientsIdResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"rolled_back_from")) Parser (Maybe Text -> GetRecipientsIdResponseBody200)
-> Parser (Maybe Text) -> Parser GetRecipientsIdResponseBody200
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
"type"))

-- | Create a new 'GetRecipientsIdResponseBody200' with all required fields.
mkGetRecipientsIdResponseBody200 :: GetRecipientsIdResponseBody200
mkGetRecipientsIdResponseBody200 :: GetRecipientsIdResponseBody200
mkGetRecipientsIdResponseBody200 =
  GetRecipientsIdResponseBody200 :: Maybe GetRecipientsIdResponseBody200ActiveAccount'
-> Maybe GetRecipientsIdResponseBody200Cards'
-> Maybe Int
-> Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Bool
-> Maybe Object
-> Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
-> Maybe Text
-> Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
-> Maybe Text
-> GetRecipientsIdResponseBody200
GetRecipientsIdResponseBody200
    { getRecipientsIdResponseBody200ActiveAccount :: Maybe GetRecipientsIdResponseBody200ActiveAccount'
getRecipientsIdResponseBody200ActiveAccount = Maybe GetRecipientsIdResponseBody200ActiveAccount'
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200Cards :: Maybe GetRecipientsIdResponseBody200Cards'
getRecipientsIdResponseBody200Cards = Maybe GetRecipientsIdResponseBody200Cards'
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200Created :: Maybe Int
getRecipientsIdResponseBody200Created = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200DefaultCard :: Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
getRecipientsIdResponseBody200DefaultCard = Maybe GetRecipientsIdResponseBody200DefaultCard'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200Description :: Maybe Text
getRecipientsIdResponseBody200Description = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200Email :: Maybe Text
getRecipientsIdResponseBody200Email = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200Id :: Maybe Text
getRecipientsIdResponseBody200Id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200Livemode :: Maybe Bool
getRecipientsIdResponseBody200Livemode = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200Metadata :: Maybe Object
getRecipientsIdResponseBody200Metadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200MigratedTo :: Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
getRecipientsIdResponseBody200MigratedTo = Maybe GetRecipientsIdResponseBody200MigratedTo'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200Name :: Maybe Text
getRecipientsIdResponseBody200Name = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200RolledBackFrom :: Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
getRecipientsIdResponseBody200RolledBackFrom = Maybe GetRecipientsIdResponseBody200RolledBackFrom'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200Type :: Maybe Text
getRecipientsIdResponseBody200Type = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/recipients\/{id}.GET.responses.200.content.application\/json.schema.anyOf.properties.active_account.anyOf@ in the specification.
--
-- Hash describing the current account on the recipient, if there is one.
data GetRecipientsIdResponseBody200ActiveAccount' = GetRecipientsIdResponseBody200ActiveAccount'
  { -- | account: The ID of the account that the bank account is associated with.
    GetRecipientsIdResponseBody200ActiveAccount'
-> Maybe
     GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
getRecipientsIdResponseBody200ActiveAccount'Account :: (GHC.Maybe.Maybe GetRecipientsIdResponseBody200ActiveAccount'Account'Variants),
    -- | account_holder_name: The name of the person or business that owns the bank account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'AccountHolderName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | account_holder_type: The type of entity that holds the account. This can be either \`individual\` or \`company\`.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'AccountHolderType :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | available_payout_methods: A set of available payout methods for this bank account. Only values from this set should be passed as the \`method\` when creating a payout.
    GetRecipientsIdResponseBody200ActiveAccount'
-> Maybe
     [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
getRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods :: (GHC.Maybe.Maybe ([GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'])),
    -- | bank_name: Name of the bank associated with the routing number (e.g., \`WELLS FARGO\`).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'BankName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | country: Two-letter ISO code representing the country the bank account is located in.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | currency: Three-letter [ISO code for the currency](https:\/\/stripe.com\/docs\/payouts) paid out to the bank account.
    GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Currency :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | customer: The ID of the customer that the bank account is associated with.
    GetRecipientsIdResponseBody200ActiveAccount'
-> Maybe
     GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
getRecipientsIdResponseBody200ActiveAccount'Customer :: (GHC.Maybe.Maybe GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants),
    -- | default_for_currency: Whether this bank account is the default external account for its currency.
    GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Bool
getRecipientsIdResponseBody200ActiveAccount'DefaultForCurrency :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | fingerprint: Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Fingerprint :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | id: Unique identifier for the object.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Id :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | last4: The last four digits of the bank account number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Last4 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
    GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Object
getRecipientsIdResponseBody200ActiveAccount'Metadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | routing_number: The routing transit number for the bank account.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'RoutingNumber :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | status: For bank accounts, possible values are \`new\`, \`validated\`, \`verified\`, \`verification_failed\`, or \`errored\`. A bank account that hasn\'t had any activity or validation performed is \`new\`. If Stripe can determine that the bank account exists, its status will be \`validated\`. Note that there often isn’t enough information to know (e.g., for smaller credit unions), and the validation is not always run. If customer bank account verification has succeeded, the bank account status will be \`verified\`. If the verification failed for any reason, such as microdeposit failure, the status will be \`verification_failed\`. If a transfer sent to this bank account fails, we\'ll set the status to \`errored\` and will not continue to send transfers until the bank details are updated.
    --
    -- For external accounts, possible values are \`new\` and \`errored\`. Validations aren\'t run against external accounts because they\'re only used for payouts. This means the other statuses don\'t apply. If a transfer fails, the status is set to \`errored\` and transfers are stopped until account details are updated.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Status :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> GetRecipientsIdResponseBody200ActiveAccount' -> String -> String
[GetRecipientsIdResponseBody200ActiveAccount'] -> String -> String
GetRecipientsIdResponseBody200ActiveAccount' -> String
(Int
 -> GetRecipientsIdResponseBody200ActiveAccount'
 -> String
 -> String)
-> (GetRecipientsIdResponseBody200ActiveAccount' -> String)
-> ([GetRecipientsIdResponseBody200ActiveAccount']
    -> String -> String)
-> Show GetRecipientsIdResponseBody200ActiveAccount'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [GetRecipientsIdResponseBody200ActiveAccount'] -> String -> String
$cshowList :: [GetRecipientsIdResponseBody200ActiveAccount'] -> String -> String
show :: GetRecipientsIdResponseBody200ActiveAccount' -> String
$cshow :: GetRecipientsIdResponseBody200ActiveAccount' -> String
showsPrec :: Int
-> GetRecipientsIdResponseBody200ActiveAccount' -> String -> String
$cshowsPrec :: Int
-> GetRecipientsIdResponseBody200ActiveAccount' -> String -> String
GHC.Show.Show,
      GetRecipientsIdResponseBody200ActiveAccount'
-> GetRecipientsIdResponseBody200ActiveAccount' -> Bool
(GetRecipientsIdResponseBody200ActiveAccount'
 -> GetRecipientsIdResponseBody200ActiveAccount' -> Bool)
-> (GetRecipientsIdResponseBody200ActiveAccount'
    -> GetRecipientsIdResponseBody200ActiveAccount' -> Bool)
-> Eq GetRecipientsIdResponseBody200ActiveAccount'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRecipientsIdResponseBody200ActiveAccount'
-> GetRecipientsIdResponseBody200ActiveAccount' -> Bool
$c/= :: GetRecipientsIdResponseBody200ActiveAccount'
-> GetRecipientsIdResponseBody200ActiveAccount' -> Bool
== :: GetRecipientsIdResponseBody200ActiveAccount'
-> GetRecipientsIdResponseBody200ActiveAccount' -> Bool
$c== :: GetRecipientsIdResponseBody200ActiveAccount'
-> GetRecipientsIdResponseBody200ActiveAccount' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetRecipientsIdResponseBody200ActiveAccount' where
  toJSON :: GetRecipientsIdResponseBody200ActiveAccount' -> Value
toJSON GetRecipientsIdResponseBody200ActiveAccount'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"account" Text
-> Maybe
     GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount'
-> Maybe
     GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
getRecipientsIdResponseBody200ActiveAccount'Account GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"account_holder_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'AccountHolderName GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"account_holder_type" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'AccountHolderType GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"available_payout_methods" Text
-> Maybe
     [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount'
-> Maybe
     [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
getRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"bank_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'BankName GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"country" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Country GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"currency" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Currency GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"customer" Text
-> Maybe
     GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount'
-> Maybe
     GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
getRecipientsIdResponseBody200ActiveAccount'Customer GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_for_currency" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Bool
getRecipientsIdResponseBody200ActiveAccount'DefaultForCurrency GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"fingerprint" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Fingerprint GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"id" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Id GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"last4" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Last4 GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text -> Maybe Object -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Object
getRecipientsIdResponseBody200ActiveAccount'Metadata GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"routing_number" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'RoutingNumber GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"status" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Status GetRecipientsIdResponseBody200ActiveAccount'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"bank_account" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetRecipientsIdResponseBody200ActiveAccount' -> Encoding
toEncoding GetRecipientsIdResponseBody200ActiveAccount'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"account" Text
-> Maybe
     GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount'
-> Maybe
     GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
getRecipientsIdResponseBody200ActiveAccount'Account GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"account_holder_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'AccountHolderName GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"account_holder_type" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'AccountHolderType GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"available_payout_methods" Text
-> Maybe
     [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount'
-> Maybe
     [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
getRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"bank_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'BankName GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"country" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Country GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"currency" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Currency GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"customer" Text
-> Maybe
     GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount'
-> Maybe
     GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
getRecipientsIdResponseBody200ActiveAccount'Customer GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_for_currency" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Bool
getRecipientsIdResponseBody200ActiveAccount'DefaultForCurrency GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"fingerprint" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Fingerprint GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"id" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Id GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"last4" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Last4 GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text -> Maybe Object -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Object
getRecipientsIdResponseBody200ActiveAccount'Metadata GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"routing_number" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'RoutingNumber GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"status" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200ActiveAccount' -> Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Status GetRecipientsIdResponseBody200ActiveAccount'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"object" Text -> Value -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"bank_account"))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON GetRecipientsIdResponseBody200ActiveAccount' where
  parseJSON :: Value -> Parser GetRecipientsIdResponseBody200ActiveAccount'
parseJSON = String
-> (Object -> Parser GetRecipientsIdResponseBody200ActiveAccount')
-> Value
-> Parser GetRecipientsIdResponseBody200ActiveAccount'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetRecipientsIdResponseBody200ActiveAccount'" (\Object
obj -> (((((((((((((((Maybe GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
 -> Maybe Text
 -> Maybe Text
 -> Maybe
      [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe
      GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Object
 -> Maybe Text
 -> Maybe Text
 -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser
     (Maybe GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> GetRecipientsIdResponseBody200ActiveAccount')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> Maybe Text
-> Maybe Text
-> Maybe
     [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe
     GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Object
-> Maybe Text
-> Maybe Text
-> GetRecipientsIdResponseBody200ActiveAccount'
GetRecipientsIdResponseBody200ActiveAccount' Parser
  (Maybe GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser
     (Maybe
        GetRecipientsIdResponseBody200ActiveAccount'Account'Variants)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe
           [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> GetRecipientsIdResponseBody200ActiveAccount')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetRecipientsIdResponseBody200ActiveAccount'Account'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"account")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe
        [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe
           [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> GetRecipientsIdResponseBody200ActiveAccount')
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
"account_holder_name")) Parser
  (Maybe Text
   -> Maybe
        [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser (Maybe Text)
-> Parser
     (Maybe
        [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> GetRecipientsIdResponseBody200ActiveAccount')
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
"account_holder_type")) Parser
  (Maybe
     [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser
     (Maybe
        [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'])
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> GetRecipientsIdResponseBody200ActiveAccount')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"available_payout_methods")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe
           GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> GetRecipientsIdResponseBody200ActiveAccount')
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
"bank_name")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe
        GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe
           GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> GetRecipientsIdResponseBody200ActiveAccount')
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
"country")) Parser
  (Maybe Text
   -> Maybe
        GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser (Maybe Text)
-> Parser
     (Maybe
        GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> GetRecipientsIdResponseBody200ActiveAccount')
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
"currency")) Parser
  (Maybe
     GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser
     (Maybe
        GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants)
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> GetRecipientsIdResponseBody200ActiveAccount')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"customer")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> GetRecipientsIdResponseBody200ActiveAccount')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_for_currency")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> GetRecipientsIdResponseBody200ActiveAccount')
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
"fingerprint")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> GetRecipientsIdResponseBody200ActiveAccount')
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
"id")) Parser
  (Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser (Maybe Text)
-> Parser
     (Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> GetRecipientsIdResponseBody200ActiveAccount')
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
"last4")) Parser
  (Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser (Maybe Object)
-> Parser
     (Maybe Text
      -> Maybe Text -> GetRecipientsIdResponseBody200ActiveAccount')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Object)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe Text
   -> Maybe Text -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> GetRecipientsIdResponseBody200ActiveAccount')
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
"routing_number")) Parser (Maybe Text -> GetRecipientsIdResponseBody200ActiveAccount')
-> Parser (Maybe Text)
-> Parser GetRecipientsIdResponseBody200ActiveAccount'
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
"status"))

-- | Create a new 'GetRecipientsIdResponseBody200ActiveAccount'' with all required fields.
mkGetRecipientsIdResponseBody200ActiveAccount' :: GetRecipientsIdResponseBody200ActiveAccount'
mkGetRecipientsIdResponseBody200ActiveAccount' :: GetRecipientsIdResponseBody200ActiveAccount'
mkGetRecipientsIdResponseBody200ActiveAccount' =
  GetRecipientsIdResponseBody200ActiveAccount' :: Maybe GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> Maybe Text
-> Maybe Text
-> Maybe
     [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe
     GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Object
-> Maybe Text
-> Maybe Text
-> GetRecipientsIdResponseBody200ActiveAccount'
GetRecipientsIdResponseBody200ActiveAccount'
    { getRecipientsIdResponseBody200ActiveAccount'Account :: Maybe GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
getRecipientsIdResponseBody200ActiveAccount'Account = Maybe GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'AccountHolderName :: Maybe Text
getRecipientsIdResponseBody200ActiveAccount'AccountHolderName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'AccountHolderType :: Maybe Text
getRecipientsIdResponseBody200ActiveAccount'AccountHolderType = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods :: Maybe
  [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
getRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods = Maybe
  [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'BankName :: Maybe Text
getRecipientsIdResponseBody200ActiveAccount'BankName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'Country :: Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'Currency :: Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Currency = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'Customer :: Maybe GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
getRecipientsIdResponseBody200ActiveAccount'Customer = Maybe GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'DefaultForCurrency :: Maybe Bool
getRecipientsIdResponseBody200ActiveAccount'DefaultForCurrency = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'Fingerprint :: Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Fingerprint = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'Id :: Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Id = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'Last4 :: Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Last4 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'Metadata :: Maybe Object
getRecipientsIdResponseBody200ActiveAccount'Metadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'RoutingNumber :: Maybe Text
getRecipientsIdResponseBody200ActiveAccount'RoutingNumber = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRecipientsIdResponseBody200ActiveAccount'Status :: Maybe Text
getRecipientsIdResponseBody200ActiveAccount'Status = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/recipients\/{id}.GET.responses.200.content.application\/json.schema.anyOf.properties.active_account.anyOf.properties.account.anyOf@ in the specification.
--
-- The ID of the account that the bank account is associated with.
data GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
  = GetRecipientsIdResponseBody200ActiveAccount'Account'Text Data.Text.Internal.Text
  | GetRecipientsIdResponseBody200ActiveAccount'Account'Account Account
  deriving (Int
-> GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> String
-> String
[GetRecipientsIdResponseBody200ActiveAccount'Account'Variants]
-> String -> String
GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> String
(Int
 -> GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
 -> String
 -> String)
-> (GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
    -> String)
-> ([GetRecipientsIdResponseBody200ActiveAccount'Account'Variants]
    -> String -> String)
-> Show
     GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [GetRecipientsIdResponseBody200ActiveAccount'Account'Variants]
-> String -> String
$cshowList :: [GetRecipientsIdResponseBody200ActiveAccount'Account'Variants]
-> String -> String
show :: GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> String
$cshow :: GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> String
showsPrec :: Int
-> GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> String
-> String
$cshowsPrec :: Int
-> GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> String
-> String
GHC.Show.Show, GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> Bool
(GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
 -> GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
 -> Bool)
-> (GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
    -> GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
    -> Bool)
-> Eq GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> Bool
$c/= :: GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> Bool
== :: GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> Bool
$c== :: GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> GetRecipientsIdResponseBody200ActiveAccount'Account'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the enum schema located at @paths.\/v1\/recipients\/{id}.GET.responses.200.content.application\/json.schema.anyOf.properties.active_account.anyOf.properties.available_payout_methods.items@ in the specification.
data GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"instant"@
    GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'EnumInstant
  | -- | Represents the JSON value @"standard"@
    GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'EnumStandard
  deriving (Int
-> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> String
-> String
[GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
-> String -> String
GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> String
(Int
 -> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
 -> String
 -> String)
-> (GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
    -> String)
-> ([GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
    -> String -> String)
-> Show
     GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
-> String -> String
$cshowList :: [GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods']
-> String -> String
show :: GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> String
$cshow :: GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> String
showsPrec :: Int
-> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> String
-> String
$cshowsPrec :: Int
-> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> String
-> String
GHC.Show.Show, GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> Bool
(GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
 -> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
 -> Bool)
-> (GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
    -> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
    -> Bool)
-> Eq
     GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> Bool
$c/= :: GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> Bool
== :: GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> Bool
$c== :: GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods' where
  toJSON :: GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> Value
toJSON (GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'Other Value
val) = Value
val
  toJSON (GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'EnumInstant) = Value
"instant"
  toJSON (GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'EnumStandard) = Value
"standard"

instance Data.Aeson.Types.FromJSON.FromJSON GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods' where
  parseJSON :: Value
-> Parser
     GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
parseJSON Value
val =
    GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
-> Parser
     GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"instant" -> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'EnumInstant
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"standard" -> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'EnumStandard
            | Bool
GHC.Base.otherwise -> Value
-> GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'
GetRecipientsIdResponseBody200ActiveAccount'AvailablePayoutMethods'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/recipients\/{id}.GET.responses.200.content.application\/json.schema.anyOf.properties.active_account.anyOf.properties.customer.anyOf@ in the specification.
--
-- The ID of the customer that the bank account is associated with.
data GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
  = GetRecipientsIdResponseBody200ActiveAccount'Customer'Text Data.Text.Internal.Text
  | GetRecipientsIdResponseBody200ActiveAccount'Customer'Customer Customer
  | GetRecipientsIdResponseBody200ActiveAccount'Customer'DeletedCustomer DeletedCustomer
  deriving (Int
-> GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> String
-> String
[GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants]
-> String -> String
GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> String
(Int
 -> GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
 -> String
 -> String)
-> (GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
    -> String)
-> ([GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants]
    -> String -> String)
-> Show
     GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants]
-> String -> String
$cshowList :: [GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants]
-> String -> String
show :: GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> String
$cshow :: GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> String
showsPrec :: Int
-> GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> String
-> String
$cshowsPrec :: Int
-> GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> String
-> String
GHC.Show.Show, GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> Bool
(GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
 -> GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
 -> Bool)
-> (GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
    -> GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
    -> Bool)
-> Eq GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> Bool
$c/= :: GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> Bool
== :: GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> Bool
$c== :: GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> GetRecipientsIdResponseBody200ActiveAccount'Customer'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/recipients\/{id}.GET.responses.200.content.application\/json.schema.anyOf.properties.cards@ in the specification.
data GetRecipientsIdResponseBody200Cards' = GetRecipientsIdResponseBody200Cards'
  { -- | data
    GetRecipientsIdResponseBody200Cards' -> [Card]
getRecipientsIdResponseBody200Cards'Data :: ([Card]),
    -- | has_more: True if this list has another page of items after this one that can be fetched.
    GetRecipientsIdResponseBody200Cards' -> Bool
getRecipientsIdResponseBody200Cards'HasMore :: GHC.Types.Bool,
    -- | url: The URL where this list can be accessed.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRecipientsIdResponseBody200Cards' -> Text
getRecipientsIdResponseBody200Cards'Url :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> GetRecipientsIdResponseBody200Cards' -> String -> String
[GetRecipientsIdResponseBody200Cards'] -> String -> String
GetRecipientsIdResponseBody200Cards' -> String
(Int -> GetRecipientsIdResponseBody200Cards' -> String -> String)
-> (GetRecipientsIdResponseBody200Cards' -> String)
-> ([GetRecipientsIdResponseBody200Cards'] -> String -> String)
-> Show GetRecipientsIdResponseBody200Cards'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [GetRecipientsIdResponseBody200Cards'] -> String -> String
$cshowList :: [GetRecipientsIdResponseBody200Cards'] -> String -> String
show :: GetRecipientsIdResponseBody200Cards' -> String
$cshow :: GetRecipientsIdResponseBody200Cards' -> String
showsPrec :: Int -> GetRecipientsIdResponseBody200Cards' -> String -> String
$cshowsPrec :: Int -> GetRecipientsIdResponseBody200Cards' -> String -> String
GHC.Show.Show,
      GetRecipientsIdResponseBody200Cards'
-> GetRecipientsIdResponseBody200Cards' -> Bool
(GetRecipientsIdResponseBody200Cards'
 -> GetRecipientsIdResponseBody200Cards' -> Bool)
-> (GetRecipientsIdResponseBody200Cards'
    -> GetRecipientsIdResponseBody200Cards' -> Bool)
-> Eq GetRecipientsIdResponseBody200Cards'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRecipientsIdResponseBody200Cards'
-> GetRecipientsIdResponseBody200Cards' -> Bool
$c/= :: GetRecipientsIdResponseBody200Cards'
-> GetRecipientsIdResponseBody200Cards' -> Bool
== :: GetRecipientsIdResponseBody200Cards'
-> GetRecipientsIdResponseBody200Cards' -> Bool
$c== :: GetRecipientsIdResponseBody200Cards'
-> GetRecipientsIdResponseBody200Cards' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetRecipientsIdResponseBody200Cards' where
  toJSON :: GetRecipientsIdResponseBody200Cards' -> Value
toJSON GetRecipientsIdResponseBody200Cards'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"data" Text -> [Card] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200Cards' -> [Card]
getRecipientsIdResponseBody200Cards'Data GetRecipientsIdResponseBody200Cards'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"has_more" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200Cards' -> Bool
getRecipientsIdResponseBody200Cards'HasMore GetRecipientsIdResponseBody200Cards'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"url" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200Cards' -> Text
getRecipientsIdResponseBody200Cards'Url GetRecipientsIdResponseBody200Cards'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"list" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetRecipientsIdResponseBody200Cards' -> Encoding
toEncoding GetRecipientsIdResponseBody200Cards'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"data" Text -> [Card] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200Cards' -> [Card]
getRecipientsIdResponseBody200Cards'Data GetRecipientsIdResponseBody200Cards'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"has_more" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200Cards' -> Bool
getRecipientsIdResponseBody200Cards'HasMore GetRecipientsIdResponseBody200Cards'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"url" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRecipientsIdResponseBody200Cards' -> Text
getRecipientsIdResponseBody200Cards'Url GetRecipientsIdResponseBody200Cards'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"object" Text -> Value -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"list"))))

instance Data.Aeson.Types.FromJSON.FromJSON GetRecipientsIdResponseBody200Cards' where
  parseJSON :: Value -> Parser GetRecipientsIdResponseBody200Cards'
parseJSON = String
-> (Object -> Parser GetRecipientsIdResponseBody200Cards')
-> Value
-> Parser GetRecipientsIdResponseBody200Cards'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetRecipientsIdResponseBody200Cards'" (\Object
obj -> ((([Card] -> Bool -> Text -> GetRecipientsIdResponseBody200Cards')
-> Parser
     ([Card] -> Bool -> Text -> GetRecipientsIdResponseBody200Cards')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure [Card] -> Bool -> Text -> GetRecipientsIdResponseBody200Cards'
GetRecipientsIdResponseBody200Cards' Parser
  ([Card] -> Bool -> Text -> GetRecipientsIdResponseBody200Cards')
-> Parser [Card]
-> Parser (Bool -> Text -> GetRecipientsIdResponseBody200Cards')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser [Card]
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"data")) Parser (Bool -> Text -> GetRecipientsIdResponseBody200Cards')
-> Parser Bool
-> Parser (Text -> GetRecipientsIdResponseBody200Cards')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"has_more")) Parser (Text -> GetRecipientsIdResponseBody200Cards')
-> Parser Text -> Parser GetRecipientsIdResponseBody200Cards'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"url"))

-- | Create a new 'GetRecipientsIdResponseBody200Cards'' with all required fields.
mkGetRecipientsIdResponseBody200Cards' ::
  -- | 'getRecipientsIdResponseBody200Cards'Data'
  [Card] ->
  -- | 'getRecipientsIdResponseBody200Cards'HasMore'
  GHC.Types.Bool ->
  -- | 'getRecipientsIdResponseBody200Cards'Url'
  Data.Text.Internal.Text ->
  GetRecipientsIdResponseBody200Cards'
mkGetRecipientsIdResponseBody200Cards' :: [Card] -> Bool -> Text -> GetRecipientsIdResponseBody200Cards'
mkGetRecipientsIdResponseBody200Cards' [Card]
getRecipientsIdResponseBody200Cards'Data Bool
getRecipientsIdResponseBody200Cards'HasMore Text
getRecipientsIdResponseBody200Cards'Url =
  GetRecipientsIdResponseBody200Cards' :: [Card] -> Bool -> Text -> GetRecipientsIdResponseBody200Cards'
GetRecipientsIdResponseBody200Cards'
    { getRecipientsIdResponseBody200Cards'Data :: [Card]
getRecipientsIdResponseBody200Cards'Data = [Card]
getRecipientsIdResponseBody200Cards'Data,
      getRecipientsIdResponseBody200Cards'HasMore :: Bool
getRecipientsIdResponseBody200Cards'HasMore = Bool
getRecipientsIdResponseBody200Cards'HasMore,
      getRecipientsIdResponseBody200Cards'Url :: Text
getRecipientsIdResponseBody200Cards'Url = Text
getRecipientsIdResponseBody200Cards'Url
    }

-- | Defines the oneOf schema located at @paths.\/v1\/recipients\/{id}.GET.responses.200.content.application\/json.schema.anyOf.properties.default_card.anyOf@ in the specification.
--
-- The default card to use for creating transfers to this recipient.
data GetRecipientsIdResponseBody200DefaultCard'Variants
  = GetRecipientsIdResponseBody200DefaultCard'Text Data.Text.Internal.Text
  | GetRecipientsIdResponseBody200DefaultCard'Card Card
  deriving (Int
-> GetRecipientsIdResponseBody200DefaultCard'Variants
-> String
-> String
[GetRecipientsIdResponseBody200DefaultCard'Variants]
-> String -> String
GetRecipientsIdResponseBody200DefaultCard'Variants -> String
(Int
 -> GetRecipientsIdResponseBody200DefaultCard'Variants
 -> String
 -> String)
-> (GetRecipientsIdResponseBody200DefaultCard'Variants -> String)
-> ([GetRecipientsIdResponseBody200DefaultCard'Variants]
    -> String -> String)
-> Show GetRecipientsIdResponseBody200DefaultCard'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [GetRecipientsIdResponseBody200DefaultCard'Variants]
-> String -> String
$cshowList :: [GetRecipientsIdResponseBody200DefaultCard'Variants]
-> String -> String
show :: GetRecipientsIdResponseBody200DefaultCard'Variants -> String
$cshow :: GetRecipientsIdResponseBody200DefaultCard'Variants -> String
showsPrec :: Int
-> GetRecipientsIdResponseBody200DefaultCard'Variants
-> String
-> String
$cshowsPrec :: Int
-> GetRecipientsIdResponseBody200DefaultCard'Variants
-> String
-> String
GHC.Show.Show, GetRecipientsIdResponseBody200DefaultCard'Variants
-> GetRecipientsIdResponseBody200DefaultCard'Variants -> Bool
(GetRecipientsIdResponseBody200DefaultCard'Variants
 -> GetRecipientsIdResponseBody200DefaultCard'Variants -> Bool)
-> (GetRecipientsIdResponseBody200DefaultCard'Variants
    -> GetRecipientsIdResponseBody200DefaultCard'Variants -> Bool)
-> Eq GetRecipientsIdResponseBody200DefaultCard'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRecipientsIdResponseBody200DefaultCard'Variants
-> GetRecipientsIdResponseBody200DefaultCard'Variants -> Bool
$c/= :: GetRecipientsIdResponseBody200DefaultCard'Variants
-> GetRecipientsIdResponseBody200DefaultCard'Variants -> Bool
== :: GetRecipientsIdResponseBody200DefaultCard'Variants
-> GetRecipientsIdResponseBody200DefaultCard'Variants -> Bool
$c== :: GetRecipientsIdResponseBody200DefaultCard'Variants
-> GetRecipientsIdResponseBody200DefaultCard'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the oneOf schema located at @paths.\/v1\/recipients\/{id}.GET.responses.200.content.application\/json.schema.anyOf.properties.migrated_to.anyOf@ in the specification.
--
-- The ID of the [Custom account](https:\/\/stripe.com\/docs\/connect\/custom-accounts) this recipient was migrated to. If set, the recipient can no longer be updated, nor can transfers be made to it: use the Custom account instead.
data GetRecipientsIdResponseBody200MigratedTo'Variants
  = GetRecipientsIdResponseBody200MigratedTo'Text Data.Text.Internal.Text
  | GetRecipientsIdResponseBody200MigratedTo'Account Account
  deriving (Int
-> GetRecipientsIdResponseBody200MigratedTo'Variants
-> String
-> String
[GetRecipientsIdResponseBody200MigratedTo'Variants]
-> String -> String
GetRecipientsIdResponseBody200MigratedTo'Variants -> String
(Int
 -> GetRecipientsIdResponseBody200MigratedTo'Variants
 -> String
 -> String)
-> (GetRecipientsIdResponseBody200MigratedTo'Variants -> String)
-> ([GetRecipientsIdResponseBody200MigratedTo'Variants]
    -> String -> String)
-> Show GetRecipientsIdResponseBody200MigratedTo'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [GetRecipientsIdResponseBody200MigratedTo'Variants]
-> String -> String
$cshowList :: [GetRecipientsIdResponseBody200MigratedTo'Variants]
-> String -> String
show :: GetRecipientsIdResponseBody200MigratedTo'Variants -> String
$cshow :: GetRecipientsIdResponseBody200MigratedTo'Variants -> String
showsPrec :: Int
-> GetRecipientsIdResponseBody200MigratedTo'Variants
-> String
-> String
$cshowsPrec :: Int
-> GetRecipientsIdResponseBody200MigratedTo'Variants
-> String
-> String
GHC.Show.Show, GetRecipientsIdResponseBody200MigratedTo'Variants
-> GetRecipientsIdResponseBody200MigratedTo'Variants -> Bool
(GetRecipientsIdResponseBody200MigratedTo'Variants
 -> GetRecipientsIdResponseBody200MigratedTo'Variants -> Bool)
-> (GetRecipientsIdResponseBody200MigratedTo'Variants
    -> GetRecipientsIdResponseBody200MigratedTo'Variants -> Bool)
-> Eq GetRecipientsIdResponseBody200MigratedTo'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRecipientsIdResponseBody200MigratedTo'Variants
-> GetRecipientsIdResponseBody200MigratedTo'Variants -> Bool
$c/= :: GetRecipientsIdResponseBody200MigratedTo'Variants
-> GetRecipientsIdResponseBody200MigratedTo'Variants -> Bool
== :: GetRecipientsIdResponseBody200MigratedTo'Variants
-> GetRecipientsIdResponseBody200MigratedTo'Variants -> Bool
$c== :: GetRecipientsIdResponseBody200MigratedTo'Variants
-> GetRecipientsIdResponseBody200MigratedTo'Variants -> Bool
GHC.Classes.Eq)

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

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

-- | Defines the oneOf schema located at @paths.\/v1\/recipients\/{id}.GET.responses.200.content.application\/json.schema.anyOf.properties.rolled_back_from.anyOf@ in the specification.
data GetRecipientsIdResponseBody200RolledBackFrom'Variants
  = GetRecipientsIdResponseBody200RolledBackFrom'Text Data.Text.Internal.Text
  | GetRecipientsIdResponseBody200RolledBackFrom'Account Account
  deriving (Int
-> GetRecipientsIdResponseBody200RolledBackFrom'Variants
-> String
-> String
[GetRecipientsIdResponseBody200RolledBackFrom'Variants]
-> String -> String
GetRecipientsIdResponseBody200RolledBackFrom'Variants -> String
(Int
 -> GetRecipientsIdResponseBody200RolledBackFrom'Variants
 -> String
 -> String)
-> (GetRecipientsIdResponseBody200RolledBackFrom'Variants
    -> String)
-> ([GetRecipientsIdResponseBody200RolledBackFrom'Variants]
    -> String -> String)
-> Show GetRecipientsIdResponseBody200RolledBackFrom'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [GetRecipientsIdResponseBody200RolledBackFrom'Variants]
-> String -> String
$cshowList :: [GetRecipientsIdResponseBody200RolledBackFrom'Variants]
-> String -> String
show :: GetRecipientsIdResponseBody200RolledBackFrom'Variants -> String
$cshow :: GetRecipientsIdResponseBody200RolledBackFrom'Variants -> String
showsPrec :: Int
-> GetRecipientsIdResponseBody200RolledBackFrom'Variants
-> String
-> String
$cshowsPrec :: Int
-> GetRecipientsIdResponseBody200RolledBackFrom'Variants
-> String
-> String
GHC.Show.Show, GetRecipientsIdResponseBody200RolledBackFrom'Variants
-> GetRecipientsIdResponseBody200RolledBackFrom'Variants -> Bool
(GetRecipientsIdResponseBody200RolledBackFrom'Variants
 -> GetRecipientsIdResponseBody200RolledBackFrom'Variants -> Bool)
-> (GetRecipientsIdResponseBody200RolledBackFrom'Variants
    -> GetRecipientsIdResponseBody200RolledBackFrom'Variants -> Bool)
-> Eq GetRecipientsIdResponseBody200RolledBackFrom'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRecipientsIdResponseBody200RolledBackFrom'Variants
-> GetRecipientsIdResponseBody200RolledBackFrom'Variants -> Bool
$c/= :: GetRecipientsIdResponseBody200RolledBackFrom'Variants
-> GetRecipientsIdResponseBody200RolledBackFrom'Variants -> Bool
== :: GetRecipientsIdResponseBody200RolledBackFrom'Variants
-> GetRecipientsIdResponseBody200RolledBackFrom'Variants -> Bool
$c== :: GetRecipientsIdResponseBody200RolledBackFrom'Variants
-> GetRecipientsIdResponseBody200RolledBackFrom'Variants -> Bool
GHC.Classes.Eq)

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

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