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

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

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

-- | Defines the object schema located at @components.schemas.person@ in the specification.
--
-- This is an object representing a person associated with a Stripe account.
--
-- A platform cannot access a Standard or Express account\'s persons after the account starts onboarding, such as after generating an account link for the account.
-- See the [Standard onboarding](https:\/\/stripe.com\/docs\/connect\/standard-accounts) or [Express onboarding documentation](https:\/\/stripe.com\/docs\/connect\/express-accounts) for information about platform pre-filling and account onboarding steps.
--
-- Related guide: [Handling Identity Verification with the API](https:\/\/stripe.com\/docs\/connect\/identity-verification-api\#person-information).
data Person = Person
  { -- | account: The account the person is associated with.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Person -> Text
personAccount :: Data.Text.Internal.Text,
    -- | address:
    Person -> Maybe Address
personAddress :: (GHC.Maybe.Maybe Address),
    -- | address_kana
    Person -> Maybe PersonAddressKana'
personAddressKana :: (GHC.Maybe.Maybe PersonAddressKana'),
    -- | address_kanji
    Person -> Maybe PersonAddressKanji'
personAddressKanji :: (GHC.Maybe.Maybe PersonAddressKanji'),
    -- | created: Time at which the object was created. Measured in seconds since the Unix epoch.
    Person -> Int
personCreated :: GHC.Types.Int,
    -- | dob:
    Person -> Maybe LegalEntityDob
personDob :: (GHC.Maybe.Maybe LegalEntityDob),
    -- | email: The person\'s email address.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Person -> Maybe Text
personEmail :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | first_name: The person\'s first name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Person -> Maybe Text
personFirstName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | first_name_kana: The Kana variation of the person\'s first name (Japan only).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Person -> Maybe Text
personFirstNameKana :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | first_name_kanji: The Kanji variation of the person\'s first name (Japan only).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Person -> Maybe Text
personFirstNameKanji :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | gender: The person\'s gender (International regulations require either \"male\" or \"female\").
    Person -> Maybe Text
personGender :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | id: Unique identifier for the object.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Person -> Text
personId :: Data.Text.Internal.Text,
    -- | id_number_provided: Whether the person\'s \`id_number\` was provided.
    Person -> Maybe Bool
personIdNumberProvided :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | last_name: The person\'s last name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Person -> Maybe Text
personLastName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | last_name_kana: The Kana variation of the person\'s last name (Japan only).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Person -> Maybe Text
personLastNameKana :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | last_name_kanji: The Kanji variation of the person\'s last name (Japan only).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Person -> Maybe Text
personLastNameKanji :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | maiden_name: The person\'s maiden name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Person -> Maybe Text
personMaidenName :: (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.
    Person -> Maybe Object
personMetadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
    -- | nationality: The country where the person is a national.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Person -> Maybe Text
personNationality :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | phone: The person\'s phone number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    Person -> Maybe Text
personPhone :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | political_exposure: Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.
    Person -> Maybe PersonPoliticalExposure'
personPoliticalExposure :: (GHC.Maybe.Maybe PersonPoliticalExposure'),
    -- | relationship:
    Person -> Maybe PersonRelationship
personRelationship :: (GHC.Maybe.Maybe PersonRelationship),
    -- | requirements
    Person -> Maybe PersonRequirements'
personRequirements :: (GHC.Maybe.Maybe PersonRequirements'),
    -- | ssn_last_4_provided: Whether the last four digits of the person\'s Social Security number have been provided (U.S. only).
    Person -> Maybe Bool
personSsnLast_4Provided :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | verification:
    Person -> Maybe LegalEntityPersonVerification
personVerification :: (GHC.Maybe.Maybe LegalEntityPersonVerification)
  }
  deriving
    ( Int -> Person -> ShowS
[Person] -> ShowS
Person -> String
(Int -> Person -> ShowS)
-> (Person -> String) -> ([Person] -> ShowS) -> Show Person
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Person] -> ShowS
$cshowList :: [Person] -> ShowS
show :: Person -> String
$cshow :: Person -> String
showsPrec :: Int -> Person -> ShowS
$cshowsPrec :: Int -> Person -> ShowS
GHC.Show.Show,
      Person -> Person -> Bool
(Person -> Person -> Bool)
-> (Person -> Person -> Bool) -> Eq Person
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Person -> Person -> Bool
$c/= :: Person -> Person -> Bool
== :: Person -> Person -> Bool
$c== :: Person -> Person -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON Person where
  toJSON :: Person -> Value
toJSON Person
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"account" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Text
personAccount Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address" Text -> Maybe Address -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Address
personAddress Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_kana" Text -> Maybe PersonAddressKana' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe PersonAddressKana'
personAddressKana Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"address_kanji" Text -> Maybe PersonAddressKanji' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe PersonAddressKanji'
personAddressKanji Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"created" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Int
personCreated Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"dob" Text -> Maybe LegalEntityDob -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe LegalEntityDob
personDob Person
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..= Person -> Maybe Text
personEmail Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"first_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personFirstName Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"first_name_kana" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personFirstNameKana Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"first_name_kanji" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personFirstNameKanji Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"gender" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personGender Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"id" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Text
personId Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"id_number_provided" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Bool
personIdNumberProvided Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"last_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personLastName Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"last_name_kana" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personLastNameKana Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"last_name_kanji" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personLastNameKanji Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"maiden_name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personMaidenName Person
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..= Person -> Maybe Object
personMetadata Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"nationality" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personNationality Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"phone" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personPhone Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"political_exposure" Text -> Maybe PersonPoliticalExposure' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe PersonPoliticalExposure'
personPoliticalExposure Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"relationship" Text -> Maybe PersonRelationship -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe PersonRelationship
personRelationship Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"requirements" Text -> Maybe PersonRequirements' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe PersonRequirements'
personRequirements Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"ssn_last_4_provided" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Bool
personSsnLast_4Provided Person
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"verification" Text -> Maybe LegalEntityPersonVerification -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe LegalEntityPersonVerification
personVerification Person
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
"person" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: Person -> Encoding
toEncoding Person
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"account" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Text
personAccount Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address" Text -> Maybe Address -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Address
personAddress Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_kana" Text -> Maybe PersonAddressKana' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe PersonAddressKana'
personAddressKana Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"address_kanji" Text -> Maybe PersonAddressKanji' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe PersonAddressKanji'
personAddressKanji Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"created" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Int
personCreated Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"dob" Text -> Maybe LegalEntityDob -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe LegalEntityDob
personDob Person
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..= Person -> Maybe Text
personEmail Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"first_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personFirstName Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"first_name_kana" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personFirstNameKana Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"first_name_kanji" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personFirstNameKanji Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"gender" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personGender Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"id" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Text
personId Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"id_number_provided" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Bool
personIdNumberProvided Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"last_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personLastName Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"last_name_kana" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personLastNameKana Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"last_name_kanji" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personLastNameKanji Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"maiden_name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personMaidenName Person
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..= Person -> Maybe Object
personMetadata Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"nationality" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personNationality Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"phone" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Text
personPhone Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"political_exposure" Text -> Maybe PersonPoliticalExposure' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe PersonPoliticalExposure'
personPoliticalExposure Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"relationship" Text -> Maybe PersonRelationship -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe PersonRelationship
personRelationship Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"requirements" Text -> Maybe PersonRequirements' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe PersonRequirements'
personRequirements Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"ssn_last_4_provided" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe Bool
personSsnLast_4Provided Person
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"verification" Text -> Maybe LegalEntityPersonVerification -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Person -> Maybe LegalEntityPersonVerification
personVerification Person
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
"person"))))))))))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON Person where
  parseJSON :: Value -> Parser Person
parseJSON = String -> (Object -> Parser Person) -> Value -> Parser Person
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"Person" (\Object
obj -> (((((((((((((((((((((((((Text
 -> Maybe Address
 -> Maybe PersonAddressKana'
 -> Maybe PersonAddressKanji'
 -> Int
 -> Maybe LegalEntityDob
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Text
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Object
 -> Maybe Text
 -> Maybe Text
 -> Maybe PersonPoliticalExposure'
 -> Maybe PersonRelationship
 -> Maybe PersonRequirements'
 -> Maybe Bool
 -> Maybe LegalEntityPersonVerification
 -> Person)
-> Parser
     (Text
      -> Maybe Address
      -> Maybe PersonAddressKana'
      -> Maybe PersonAddressKanji'
      -> Int
      -> Maybe LegalEntityDob
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> Maybe Address
-> Maybe PersonAddressKana'
-> Maybe PersonAddressKanji'
-> Int
-> Maybe LegalEntityDob
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Object
-> Maybe Text
-> Maybe Text
-> Maybe PersonPoliticalExposure'
-> Maybe PersonRelationship
-> Maybe PersonRequirements'
-> Maybe Bool
-> Maybe LegalEntityPersonVerification
-> Person
Person Parser
  (Text
   -> Maybe Address
   -> Maybe PersonAddressKana'
   -> Maybe PersonAddressKanji'
   -> Int
   -> Maybe LegalEntityDob
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser Text
-> Parser
     (Maybe Address
      -> Maybe PersonAddressKana'
      -> Maybe PersonAddressKanji'
      -> Int
      -> Maybe LegalEntityDob
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
"account")) Parser
  (Maybe Address
   -> Maybe PersonAddressKana'
   -> Maybe PersonAddressKanji'
   -> Int
   -> Maybe LegalEntityDob
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Address)
-> Parser
     (Maybe PersonAddressKana'
      -> Maybe PersonAddressKanji'
      -> Int
      -> Maybe LegalEntityDob
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Address)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address")) Parser
  (Maybe PersonAddressKana'
   -> Maybe PersonAddressKanji'
   -> Int
   -> Maybe LegalEntityDob
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe PersonAddressKana')
-> Parser
     (Maybe PersonAddressKanji'
      -> Int
      -> Maybe LegalEntityDob
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PersonAddressKana')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_kana")) Parser
  (Maybe PersonAddressKanji'
   -> Int
   -> Maybe LegalEntityDob
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe PersonAddressKanji')
-> Parser
     (Int
      -> Maybe LegalEntityDob
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PersonAddressKanji')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address_kanji")) Parser
  (Int
   -> Maybe LegalEntityDob
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser Int
-> Parser
     (Maybe LegalEntityDob
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"created")) Parser
  (Maybe LegalEntityDob
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe LegalEntityDob)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe LegalEntityDob)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"dob")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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 Text
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
"first_name")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
"first_name_kana")) Parser
  (Maybe Text
   -> Maybe Text
   -> Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
"first_name_kanji")) Parser
  (Maybe Text
   -> Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Text)
-> Parser
     (Text
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
"gender")) Parser
  (Text
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser Text
-> Parser
     (Maybe Bool
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
"id")) Parser
  (Maybe Bool
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Bool)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
"id_number_provided")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
"last_name")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
"last_name_kana")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
"last_name_kanji")) Parser
  (Maybe Text
   -> Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Text)
-> Parser
     (Maybe Object
      -> Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
"maiden_name")) Parser
  (Maybe Object
   -> Maybe Text
   -> Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Object)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
"nationality")) Parser
  (Maybe Text
   -> Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe Text)
-> Parser
     (Maybe PersonPoliticalExposure'
      -> Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
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
"phone")) Parser
  (Maybe PersonPoliticalExposure'
   -> Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe PersonPoliticalExposure')
-> Parser
     (Maybe PersonRelationship
      -> Maybe PersonRequirements'
      -> Maybe Bool
      -> Maybe LegalEntityPersonVerification
      -> Person)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PersonPoliticalExposure')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"political_exposure")) Parser
  (Maybe PersonRelationship
   -> Maybe PersonRequirements'
   -> Maybe Bool
   -> Maybe LegalEntityPersonVerification
   -> Person)
-> Parser (Maybe PersonRelationship)
-> Parser
     (Maybe PersonRequirements'
      -> Maybe Bool -> Maybe LegalEntityPersonVerification -> Person)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PersonRelationship)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"relationship")) Parser
  (Maybe PersonRequirements'
   -> Maybe Bool -> Maybe LegalEntityPersonVerification -> Person)
-> Parser (Maybe PersonRequirements')
-> Parser
     (Maybe Bool -> Maybe LegalEntityPersonVerification -> Person)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PersonRequirements')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"requirements")) Parser
  (Maybe Bool -> Maybe LegalEntityPersonVerification -> Person)
-> Parser (Maybe Bool)
-> Parser (Maybe LegalEntityPersonVerification -> Person)
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
"ssn_last_4_provided")) Parser (Maybe LegalEntityPersonVerification -> Person)
-> Parser (Maybe LegalEntityPersonVerification) -> Parser Person
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe LegalEntityPersonVerification)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"verification"))

-- | Create a new 'Person' with all required fields.
mkPerson ::
  -- | 'personAccount'
  Data.Text.Internal.Text ->
  -- | 'personCreated'
  GHC.Types.Int ->
  -- | 'personId'
  Data.Text.Internal.Text ->
  Person
mkPerson :: Text -> Int -> Text -> Person
mkPerson Text
personAccount Int
personCreated Text
personId =
  Person :: Text
-> Maybe Address
-> Maybe PersonAddressKana'
-> Maybe PersonAddressKanji'
-> Int
-> Maybe LegalEntityDob
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Object
-> Maybe Text
-> Maybe Text
-> Maybe PersonPoliticalExposure'
-> Maybe PersonRelationship
-> Maybe PersonRequirements'
-> Maybe Bool
-> Maybe LegalEntityPersonVerification
-> Person
Person
    { personAccount :: Text
personAccount = Text
personAccount,
      personAddress :: Maybe Address
personAddress = Maybe Address
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKana :: Maybe PersonAddressKana'
personAddressKana = Maybe PersonAddressKana'
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKanji :: Maybe PersonAddressKanji'
personAddressKanji = Maybe PersonAddressKanji'
forall a. Maybe a
GHC.Maybe.Nothing,
      personCreated :: Int
personCreated = Int
personCreated,
      personDob :: Maybe LegalEntityDob
personDob = Maybe LegalEntityDob
forall a. Maybe a
GHC.Maybe.Nothing,
      personEmail :: Maybe Text
personEmail = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personFirstName :: Maybe Text
personFirstName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personFirstNameKana :: Maybe Text
personFirstNameKana = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personFirstNameKanji :: Maybe Text
personFirstNameKanji = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personGender :: Maybe Text
personGender = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personId :: Text
personId = Text
personId,
      personIdNumberProvided :: Maybe Bool
personIdNumberProvided = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      personLastName :: Maybe Text
personLastName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personLastNameKana :: Maybe Text
personLastNameKana = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personLastNameKanji :: Maybe Text
personLastNameKanji = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personMaidenName :: Maybe Text
personMaidenName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personMetadata :: Maybe Object
personMetadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
      personNationality :: Maybe Text
personNationality = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personPhone :: Maybe Text
personPhone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personPoliticalExposure :: Maybe PersonPoliticalExposure'
personPoliticalExposure = Maybe PersonPoliticalExposure'
forall a. Maybe a
GHC.Maybe.Nothing,
      personRelationship :: Maybe PersonRelationship
personRelationship = Maybe PersonRelationship
forall a. Maybe a
GHC.Maybe.Nothing,
      personRequirements :: Maybe PersonRequirements'
personRequirements = Maybe PersonRequirements'
forall a. Maybe a
GHC.Maybe.Nothing,
      personSsnLast_4Provided :: Maybe Bool
personSsnLast_4Provided = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      personVerification :: Maybe LegalEntityPersonVerification
personVerification = Maybe LegalEntityPersonVerification
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @components.schemas.person.properties.address_kana.anyOf@ in the specification.
data PersonAddressKana' = PersonAddressKana'
  { -- | city: City\/Ward.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKana' -> Maybe Text
personAddressKana'City :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKana' -> Maybe Text
personAddressKana'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line1: Block\/Building number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKana' -> Maybe Text
personAddressKana'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line2: Building details.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKana' -> Maybe Text
personAddressKana'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKana' -> Maybe Text
personAddressKana'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state: Prefecture.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKana' -> Maybe Text
personAddressKana'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | town: Town\/cho-me.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKana' -> Maybe Text
personAddressKana'Town :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PersonAddressKana' -> ShowS
[PersonAddressKana'] -> ShowS
PersonAddressKana' -> String
(Int -> PersonAddressKana' -> ShowS)
-> (PersonAddressKana' -> String)
-> ([PersonAddressKana'] -> ShowS)
-> Show PersonAddressKana'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PersonAddressKana'] -> ShowS
$cshowList :: [PersonAddressKana'] -> ShowS
show :: PersonAddressKana' -> String
$cshow :: PersonAddressKana' -> String
showsPrec :: Int -> PersonAddressKana' -> ShowS
$cshowsPrec :: Int -> PersonAddressKana' -> ShowS
GHC.Show.Show,
      PersonAddressKana' -> PersonAddressKana' -> Bool
(PersonAddressKana' -> PersonAddressKana' -> Bool)
-> (PersonAddressKana' -> PersonAddressKana' -> Bool)
-> Eq PersonAddressKana'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PersonAddressKana' -> PersonAddressKana' -> Bool
$c/= :: PersonAddressKana' -> PersonAddressKana' -> Bool
== :: PersonAddressKana' -> PersonAddressKana' -> Bool
$c== :: PersonAddressKana' -> PersonAddressKana' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PersonAddressKana' where
  toJSON :: PersonAddressKana' -> Value
toJSON PersonAddressKana'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"city" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKana' -> Maybe Text
personAddressKana'City PersonAddressKana'
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..= PersonAddressKana' -> Maybe Text
personAddressKana'Country PersonAddressKana'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line1" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKana' -> Maybe Text
personAddressKana'Line1 PersonAddressKana'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line2" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKana' -> Maybe Text
personAddressKana'Line2 PersonAddressKana'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"postal_code" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKana' -> Maybe Text
personAddressKana'PostalCode PersonAddressKana'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"state" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKana' -> Maybe Text
personAddressKana'State PersonAddressKana'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"town" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKana' -> Maybe Text
personAddressKana'Town PersonAddressKana'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PersonAddressKana' -> Encoding
toEncoding PersonAddressKana'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"city" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKana' -> Maybe Text
personAddressKana'City PersonAddressKana'
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..= PersonAddressKana' -> Maybe Text
personAddressKana'Country PersonAddressKana'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line1" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKana' -> Maybe Text
personAddressKana'Line1 PersonAddressKana'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line2" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKana' -> Maybe Text
personAddressKana'Line2 PersonAddressKana'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"postal_code" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKana' -> Maybe Text
personAddressKana'PostalCode PersonAddressKana'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"state" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKana' -> Maybe Text
personAddressKana'State PersonAddressKana'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"town" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKana' -> Maybe Text
personAddressKana'Town PersonAddressKana'
obj)))))))

instance Data.Aeson.Types.FromJSON.FromJSON PersonAddressKana' where
  parseJSON :: Value -> Parser PersonAddressKana'
parseJSON = String
-> (Object -> Parser PersonAddressKana')
-> Value
-> Parser PersonAddressKana'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PersonAddressKana'" (\Object
obj -> (((((((Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> PersonAddressKana')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PersonAddressKana')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PersonAddressKana'
PersonAddressKana' Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PersonAddressKana')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PersonAddressKana')
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
"city")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PersonAddressKana')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PersonAddressKana')
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 Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PersonAddressKana')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> Maybe Text -> PersonAddressKana')
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
"line1")) Parser
  (Maybe Text
   -> Maybe Text -> Maybe Text -> Maybe Text -> PersonAddressKana')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> Maybe Text -> PersonAddressKana')
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
"line2")) Parser
  (Maybe Text -> Maybe Text -> Maybe Text -> PersonAddressKana')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> PersonAddressKana')
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
"postal_code")) Parser (Maybe Text -> Maybe Text -> PersonAddressKana')
-> Parser (Maybe Text) -> Parser (Maybe Text -> PersonAddressKana')
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
"state")) Parser (Maybe Text -> PersonAddressKana')
-> Parser (Maybe Text) -> Parser PersonAddressKana'
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
"town"))

-- | Create a new 'PersonAddressKana'' with all required fields.
mkPersonAddressKana' :: PersonAddressKana'
mkPersonAddressKana' :: PersonAddressKana'
mkPersonAddressKana' =
  PersonAddressKana' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PersonAddressKana'
PersonAddressKana'
    { personAddressKana'City :: Maybe Text
personAddressKana'City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKana'Country :: Maybe Text
personAddressKana'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKana'Line1 :: Maybe Text
personAddressKana'Line1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKana'Line2 :: Maybe Text
personAddressKana'Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKana'PostalCode :: Maybe Text
personAddressKana'PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKana'State :: Maybe Text
personAddressKana'State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKana'Town :: Maybe Text
personAddressKana'Town = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @components.schemas.person.properties.address_kanji.anyOf@ in the specification.
data PersonAddressKanji' = PersonAddressKanji'
  { -- | city: City\/Ward.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKanji' -> Maybe Text
personAddressKanji'City :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | country: Two-letter country code ([ISO 3166-1 alpha-2](https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2)).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKanji' -> Maybe Text
personAddressKanji'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line1: Block\/Building number.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKanji' -> Maybe Text
personAddressKanji'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line2: Building details.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKanji' -> Maybe Text
personAddressKanji'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKanji' -> Maybe Text
personAddressKanji'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state: Prefecture.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKanji' -> Maybe Text
personAddressKanji'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | town: Town\/cho-me.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PersonAddressKanji' -> Maybe Text
personAddressKanji'Town :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> PersonAddressKanji' -> ShowS
[PersonAddressKanji'] -> ShowS
PersonAddressKanji' -> String
(Int -> PersonAddressKanji' -> ShowS)
-> (PersonAddressKanji' -> String)
-> ([PersonAddressKanji'] -> ShowS)
-> Show PersonAddressKanji'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PersonAddressKanji'] -> ShowS
$cshowList :: [PersonAddressKanji'] -> ShowS
show :: PersonAddressKanji' -> String
$cshow :: PersonAddressKanji' -> String
showsPrec :: Int -> PersonAddressKanji' -> ShowS
$cshowsPrec :: Int -> PersonAddressKanji' -> ShowS
GHC.Show.Show,
      PersonAddressKanji' -> PersonAddressKanji' -> Bool
(PersonAddressKanji' -> PersonAddressKanji' -> Bool)
-> (PersonAddressKanji' -> PersonAddressKanji' -> Bool)
-> Eq PersonAddressKanji'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PersonAddressKanji' -> PersonAddressKanji' -> Bool
$c/= :: PersonAddressKanji' -> PersonAddressKanji' -> Bool
== :: PersonAddressKanji' -> PersonAddressKanji' -> Bool
$c== :: PersonAddressKanji' -> PersonAddressKanji' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PersonAddressKanji' where
  toJSON :: PersonAddressKanji' -> Value
toJSON PersonAddressKanji'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"city" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKanji' -> Maybe Text
personAddressKanji'City PersonAddressKanji'
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..= PersonAddressKanji' -> Maybe Text
personAddressKanji'Country PersonAddressKanji'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line1" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKanji' -> Maybe Text
personAddressKanji'Line1 PersonAddressKanji'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"line2" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKanji' -> Maybe Text
personAddressKanji'Line2 PersonAddressKanji'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"postal_code" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKanji' -> Maybe Text
personAddressKanji'PostalCode PersonAddressKanji'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"state" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKanji' -> Maybe Text
personAddressKanji'State PersonAddressKanji'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"town" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKanji' -> Maybe Text
personAddressKanji'Town PersonAddressKanji'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PersonAddressKanji' -> Encoding
toEncoding PersonAddressKanji'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"city" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKanji' -> Maybe Text
personAddressKanji'City PersonAddressKanji'
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..= PersonAddressKanji' -> Maybe Text
personAddressKanji'Country PersonAddressKanji'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line1" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKanji' -> Maybe Text
personAddressKanji'Line1 PersonAddressKanji'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"line2" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKanji' -> Maybe Text
personAddressKanji'Line2 PersonAddressKanji'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"postal_code" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKanji' -> Maybe Text
personAddressKanji'PostalCode PersonAddressKanji'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"state" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKanji' -> Maybe Text
personAddressKanji'State PersonAddressKanji'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"town" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonAddressKanji' -> Maybe Text
personAddressKanji'Town PersonAddressKanji'
obj)))))))

instance Data.Aeson.Types.FromJSON.FromJSON PersonAddressKanji' where
  parseJSON :: Value -> Parser PersonAddressKanji'
parseJSON = String
-> (Object -> Parser PersonAddressKanji')
-> Value
-> Parser PersonAddressKanji'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PersonAddressKanji'" (\Object
obj -> (((((((Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> Maybe Text
 -> PersonAddressKanji')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PersonAddressKanji')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PersonAddressKanji'
PersonAddressKanji' Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PersonAddressKanji')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PersonAddressKanji')
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
"city")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PersonAddressKanji')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> Maybe Text
      -> PersonAddressKanji')
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 Text
   -> Maybe Text
   -> Maybe Text
   -> Maybe Text
   -> PersonAddressKanji')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe Text -> Maybe Text -> Maybe Text -> PersonAddressKanji')
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
"line1")) Parser
  (Maybe Text
   -> Maybe Text -> Maybe Text -> Maybe Text -> PersonAddressKanji')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text -> Maybe Text -> Maybe Text -> PersonAddressKanji')
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
"line2")) Parser
  (Maybe Text -> Maybe Text -> Maybe Text -> PersonAddressKanji')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> PersonAddressKanji')
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
"postal_code")) Parser (Maybe Text -> Maybe Text -> PersonAddressKanji')
-> Parser (Maybe Text)
-> Parser (Maybe Text -> PersonAddressKanji')
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
"state")) Parser (Maybe Text -> PersonAddressKanji')
-> Parser (Maybe Text) -> Parser PersonAddressKanji'
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
"town"))

-- | Create a new 'PersonAddressKanji'' with all required fields.
mkPersonAddressKanji' :: PersonAddressKanji'
mkPersonAddressKanji' :: PersonAddressKanji'
mkPersonAddressKanji' =
  PersonAddressKanji' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> PersonAddressKanji'
PersonAddressKanji'
    { personAddressKanji'City :: Maybe Text
personAddressKanji'City = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKanji'Country :: Maybe Text
personAddressKanji'Country = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKanji'Line1 :: Maybe Text
personAddressKanji'Line1 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKanji'Line2 :: Maybe Text
personAddressKanji'Line2 = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKanji'PostalCode :: Maybe Text
personAddressKanji'PostalCode = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKanji'State :: Maybe Text
personAddressKanji'State = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      personAddressKanji'Town :: Maybe Text
personAddressKanji'Town = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @components.schemas.person.properties.political_exposure@ in the specification.
--
-- Indicates if the person or any of their representatives, family members, or other closely related persons, declares that they hold or have held an important public job or function, in any jurisdiction.
data PersonPoliticalExposure'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PersonPoliticalExposure'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.
    PersonPoliticalExposure'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"existing"@
    PersonPoliticalExposure'EnumExisting
  | -- | Represents the JSON value @"none"@
    PersonPoliticalExposure'EnumNone
  deriving (Int -> PersonPoliticalExposure' -> ShowS
[PersonPoliticalExposure'] -> ShowS
PersonPoliticalExposure' -> String
(Int -> PersonPoliticalExposure' -> ShowS)
-> (PersonPoliticalExposure' -> String)
-> ([PersonPoliticalExposure'] -> ShowS)
-> Show PersonPoliticalExposure'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PersonPoliticalExposure'] -> ShowS
$cshowList :: [PersonPoliticalExposure'] -> ShowS
show :: PersonPoliticalExposure' -> String
$cshow :: PersonPoliticalExposure' -> String
showsPrec :: Int -> PersonPoliticalExposure' -> ShowS
$cshowsPrec :: Int -> PersonPoliticalExposure' -> ShowS
GHC.Show.Show, PersonPoliticalExposure' -> PersonPoliticalExposure' -> Bool
(PersonPoliticalExposure' -> PersonPoliticalExposure' -> Bool)
-> (PersonPoliticalExposure' -> PersonPoliticalExposure' -> Bool)
-> Eq PersonPoliticalExposure'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PersonPoliticalExposure' -> PersonPoliticalExposure' -> Bool
$c/= :: PersonPoliticalExposure' -> PersonPoliticalExposure' -> Bool
== :: PersonPoliticalExposure' -> PersonPoliticalExposure' -> Bool
$c== :: PersonPoliticalExposure' -> PersonPoliticalExposure' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PersonPoliticalExposure' where
  toJSON :: PersonPoliticalExposure' -> Value
toJSON (PersonPoliticalExposure'Other Value
val) = Value
val
  toJSON (PersonPoliticalExposure'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PersonPoliticalExposure'
PersonPoliticalExposure'EnumExisting) = Value
"existing"
  toJSON (PersonPoliticalExposure'
PersonPoliticalExposure'EnumNone) = Value
"none"

instance Data.Aeson.Types.FromJSON.FromJSON PersonPoliticalExposure' where
  parseJSON :: Value -> Parser PersonPoliticalExposure'
parseJSON Value
val =
    PersonPoliticalExposure' -> Parser PersonPoliticalExposure'
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
"existing" -> PersonPoliticalExposure'
PersonPoliticalExposure'EnumExisting
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"none" -> PersonPoliticalExposure'
PersonPoliticalExposure'EnumNone
            | Bool
GHC.Base.otherwise -> Value -> PersonPoliticalExposure'
PersonPoliticalExposure'Other Value
val
      )

-- | Defines the object schema located at @components.schemas.person.properties.requirements.anyOf@ in the specification.
data PersonRequirements' = PersonRequirements'
  { -- | currently_due: Fields that need to be collected to keep the person\'s account enabled. If not collected by the account\'s \`current_deadline\`, these fields appear in \`past_due\` as well, and the account is disabled.
    PersonRequirements' -> Maybe [Text]
personRequirements'CurrentlyDue :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | errors: Fields that are \`currently_due\` and need to be collected again because validation or verification failed.
    PersonRequirements' -> Maybe [AccountRequirementsError]
personRequirements'Errors :: (GHC.Maybe.Maybe ([AccountRequirementsError])),
    -- | eventually_due: Fields that need to be collected assuming all volume thresholds are reached. As they become required, they appear in \`currently_due\` as well, and the account\'s \`current_deadline\` becomes set.
    PersonRequirements' -> Maybe [Text]
personRequirements'EventuallyDue :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | past_due: Fields that weren\'t collected by the account\'s \`current_deadline\`. These fields need to be collected to enable the person\'s account.
    PersonRequirements' -> Maybe [Text]
personRequirements'PastDue :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | pending_verification: Fields that may become required depending on the results of verification or review. Will be an empty array unless an asynchronous verification is pending. If verification fails, these fields move to \`eventually_due\`, \`currently_due\`, or \`past_due\`.
    PersonRequirements' -> Maybe [Text]
personRequirements'PendingVerification :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text]))
  }
  deriving
    ( Int -> PersonRequirements' -> ShowS
[PersonRequirements'] -> ShowS
PersonRequirements' -> String
(Int -> PersonRequirements' -> ShowS)
-> (PersonRequirements' -> String)
-> ([PersonRequirements'] -> ShowS)
-> Show PersonRequirements'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PersonRequirements'] -> ShowS
$cshowList :: [PersonRequirements'] -> ShowS
show :: PersonRequirements' -> String
$cshow :: PersonRequirements' -> String
showsPrec :: Int -> PersonRequirements' -> ShowS
$cshowsPrec :: Int -> PersonRequirements' -> ShowS
GHC.Show.Show,
      PersonRequirements' -> PersonRequirements' -> Bool
(PersonRequirements' -> PersonRequirements' -> Bool)
-> (PersonRequirements' -> PersonRequirements' -> Bool)
-> Eq PersonRequirements'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PersonRequirements' -> PersonRequirements' -> Bool
$c/= :: PersonRequirements' -> PersonRequirements' -> Bool
== :: PersonRequirements' -> PersonRequirements' -> Bool
$c== :: PersonRequirements' -> PersonRequirements' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PersonRequirements' where
  toJSON :: PersonRequirements' -> Value
toJSON PersonRequirements'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"currently_due" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonRequirements' -> Maybe [Text]
personRequirements'CurrentlyDue PersonRequirements'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"errors" Text -> Maybe [AccountRequirementsError] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonRequirements' -> Maybe [AccountRequirementsError]
personRequirements'Errors PersonRequirements'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"eventually_due" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonRequirements' -> Maybe [Text]
personRequirements'EventuallyDue PersonRequirements'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"past_due" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonRequirements' -> Maybe [Text]
personRequirements'PastDue PersonRequirements'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"pending_verification" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonRequirements' -> Maybe [Text]
personRequirements'PendingVerification PersonRequirements'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PersonRequirements' -> Encoding
toEncoding PersonRequirements'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"currently_due" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonRequirements' -> Maybe [Text]
personRequirements'CurrentlyDue PersonRequirements'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"errors" Text -> Maybe [AccountRequirementsError] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonRequirements' -> Maybe [AccountRequirementsError]
personRequirements'Errors PersonRequirements'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"eventually_due" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonRequirements' -> Maybe [Text]
personRequirements'EventuallyDue PersonRequirements'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"past_due" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonRequirements' -> Maybe [Text]
personRequirements'PastDue PersonRequirements'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"pending_verification" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PersonRequirements' -> Maybe [Text]
personRequirements'PendingVerification PersonRequirements'
obj)))))

instance Data.Aeson.Types.FromJSON.FromJSON PersonRequirements' where
  parseJSON :: Value -> Parser PersonRequirements'
parseJSON = String
-> (Object -> Parser PersonRequirements')
-> Value
-> Parser PersonRequirements'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PersonRequirements'" (\Object
obj -> (((((Maybe [Text]
 -> Maybe [AccountRequirementsError]
 -> Maybe [Text]
 -> Maybe [Text]
 -> Maybe [Text]
 -> PersonRequirements')
-> Parser
     (Maybe [Text]
      -> Maybe [AccountRequirementsError]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> PersonRequirements')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe [Text]
-> Maybe [AccountRequirementsError]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> PersonRequirements'
PersonRequirements' Parser
  (Maybe [Text]
   -> Maybe [AccountRequirementsError]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> PersonRequirements')
-> Parser (Maybe [Text])
-> Parser
     (Maybe [AccountRequirementsError]
      -> Maybe [Text]
      -> Maybe [Text]
      -> Maybe [Text]
      -> PersonRequirements')
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
"currently_due")) Parser
  (Maybe [AccountRequirementsError]
   -> Maybe [Text]
   -> Maybe [Text]
   -> Maybe [Text]
   -> PersonRequirements')
-> Parser (Maybe [AccountRequirementsError])
-> Parser
     (Maybe [Text]
      -> Maybe [Text] -> Maybe [Text] -> PersonRequirements')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe [AccountRequirementsError])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"errors")) Parser
  (Maybe [Text]
   -> Maybe [Text] -> Maybe [Text] -> PersonRequirements')
-> Parser (Maybe [Text])
-> Parser (Maybe [Text] -> Maybe [Text] -> PersonRequirements')
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
"eventually_due")) Parser (Maybe [Text] -> Maybe [Text] -> PersonRequirements')
-> Parser (Maybe [Text])
-> Parser (Maybe [Text] -> PersonRequirements')
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
"past_due")) Parser (Maybe [Text] -> PersonRequirements')
-> Parser (Maybe [Text]) -> Parser PersonRequirements'
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
"pending_verification"))

-- | Create a new 'PersonRequirements'' with all required fields.
mkPersonRequirements' :: PersonRequirements'
mkPersonRequirements' :: PersonRequirements'
mkPersonRequirements' =
  PersonRequirements' :: Maybe [Text]
-> Maybe [AccountRequirementsError]
-> Maybe [Text]
-> Maybe [Text]
-> Maybe [Text]
-> PersonRequirements'
PersonRequirements'
    { personRequirements'CurrentlyDue :: Maybe [Text]
personRequirements'CurrentlyDue = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      personRequirements'Errors :: Maybe [AccountRequirementsError]
personRequirements'Errors = Maybe [AccountRequirementsError]
forall a. Maybe a
GHC.Maybe.Nothing,
      personRequirements'EventuallyDue :: Maybe [Text]
personRequirements'EventuallyDue = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      personRequirements'PastDue :: Maybe [Text]
personRequirements'PastDue = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      personRequirements'PendingVerification :: Maybe [Text]
personRequirements'PendingVerification = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing
    }