{-# 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 personAccount :: Data.Text.Internal.Text, -- | address: personAddress :: (GHC.Maybe.Maybe Address), -- | address_kana personAddressKana :: (GHC.Maybe.Maybe PersonAddressKana'), -- | address_kanji personAddressKanji :: (GHC.Maybe.Maybe PersonAddressKanji'), -- | created: Time at which the object was created. Measured in seconds since the Unix epoch. personCreated :: GHC.Types.Int, -- | dob: personDob :: (GHC.Maybe.Maybe LegalEntityDob), -- | email: The person\'s email address. -- -- Constraints: -- -- * Maximum length of 5000 personEmail :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | first_name: The person\'s first name. -- -- Constraints: -- -- * Maximum length of 5000 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 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 personFirstNameKanji :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | gender: The person\'s gender (International regulations require either \"male\" or \"female\"). personGender :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | id: Unique identifier for the object. -- -- Constraints: -- -- * Maximum length of 5000 personId :: Data.Text.Internal.Text, -- | id_number_provided: Whether the person\'s \`id_number\` was provided. personIdNumberProvided :: (GHC.Maybe.Maybe GHC.Types.Bool), -- | last_name: The person\'s last name. -- -- Constraints: -- -- * Maximum length of 5000 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 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 personLastNameKanji :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | maiden_name: The person\'s maiden name. -- -- Constraints: -- -- * Maximum length of 5000 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. personMetadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object), -- | nationality: The country where the person is a national. -- -- Constraints: -- -- * Maximum length of 5000 personNationality :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | phone: The person\'s phone number. -- -- Constraints: -- -- * Maximum length of 5000 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. personPoliticalExposure :: (GHC.Maybe.Maybe PersonPoliticalExposure'), -- | relationship: personRelationship :: (GHC.Maybe.Maybe PersonRelationship), -- | requirements 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). personSsnLast_4Provided :: (GHC.Maybe.Maybe GHC.Types.Bool), -- | verification: personVerification :: (GHC.Maybe.Maybe LegalEntityPersonVerification) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON Person where toJSON obj = Data.Aeson.Types.Internal.object ("account" Data.Aeson.Types.ToJSON..= personAccount obj : "address" Data.Aeson.Types.ToJSON..= personAddress obj : "address_kana" Data.Aeson.Types.ToJSON..= personAddressKana obj : "address_kanji" Data.Aeson.Types.ToJSON..= personAddressKanji obj : "created" Data.Aeson.Types.ToJSON..= personCreated obj : "dob" Data.Aeson.Types.ToJSON..= personDob obj : "email" Data.Aeson.Types.ToJSON..= personEmail obj : "first_name" Data.Aeson.Types.ToJSON..= personFirstName obj : "first_name_kana" Data.Aeson.Types.ToJSON..= personFirstNameKana obj : "first_name_kanji" Data.Aeson.Types.ToJSON..= personFirstNameKanji obj : "gender" Data.Aeson.Types.ToJSON..= personGender obj : "id" Data.Aeson.Types.ToJSON..= personId obj : "id_number_provided" Data.Aeson.Types.ToJSON..= personIdNumberProvided obj : "last_name" Data.Aeson.Types.ToJSON..= personLastName obj : "last_name_kana" Data.Aeson.Types.ToJSON..= personLastNameKana obj : "last_name_kanji" Data.Aeson.Types.ToJSON..= personLastNameKanji obj : "maiden_name" Data.Aeson.Types.ToJSON..= personMaidenName obj : "metadata" Data.Aeson.Types.ToJSON..= personMetadata obj : "nationality" Data.Aeson.Types.ToJSON..= personNationality obj : "phone" Data.Aeson.Types.ToJSON..= personPhone obj : "political_exposure" Data.Aeson.Types.ToJSON..= personPoliticalExposure obj : "relationship" Data.Aeson.Types.ToJSON..= personRelationship obj : "requirements" Data.Aeson.Types.ToJSON..= personRequirements obj : "ssn_last_4_provided" Data.Aeson.Types.ToJSON..= personSsnLast_4Provided obj : "verification" Data.Aeson.Types.ToJSON..= personVerification obj : "object" Data.Aeson.Types.ToJSON..= Data.Aeson.Types.Internal.String "person" : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("account" Data.Aeson.Types.ToJSON..= personAccount obj) GHC.Base.<> (("address" Data.Aeson.Types.ToJSON..= personAddress obj) GHC.Base.<> (("address_kana" Data.Aeson.Types.ToJSON..= personAddressKana obj) GHC.Base.<> (("address_kanji" Data.Aeson.Types.ToJSON..= personAddressKanji obj) GHC.Base.<> (("created" Data.Aeson.Types.ToJSON..= personCreated obj) GHC.Base.<> (("dob" Data.Aeson.Types.ToJSON..= personDob obj) GHC.Base.<> (("email" Data.Aeson.Types.ToJSON..= personEmail obj) GHC.Base.<> (("first_name" Data.Aeson.Types.ToJSON..= personFirstName obj) GHC.Base.<> (("first_name_kana" Data.Aeson.Types.ToJSON..= personFirstNameKana obj) GHC.Base.<> (("first_name_kanji" Data.Aeson.Types.ToJSON..= personFirstNameKanji obj) GHC.Base.<> (("gender" Data.Aeson.Types.ToJSON..= personGender obj) GHC.Base.<> (("id" Data.Aeson.Types.ToJSON..= personId obj) GHC.Base.<> (("id_number_provided" Data.Aeson.Types.ToJSON..= personIdNumberProvided obj) GHC.Base.<> (("last_name" Data.Aeson.Types.ToJSON..= personLastName obj) GHC.Base.<> (("last_name_kana" Data.Aeson.Types.ToJSON..= personLastNameKana obj) GHC.Base.<> (("last_name_kanji" Data.Aeson.Types.ToJSON..= personLastNameKanji obj) GHC.Base.<> (("maiden_name" Data.Aeson.Types.ToJSON..= personMaidenName obj) GHC.Base.<> (("metadata" Data.Aeson.Types.ToJSON..= personMetadata obj) GHC.Base.<> (("nationality" Data.Aeson.Types.ToJSON..= personNationality obj) GHC.Base.<> (("phone" Data.Aeson.Types.ToJSON..= personPhone obj) GHC.Base.<> (("political_exposure" Data.Aeson.Types.ToJSON..= personPoliticalExposure obj) GHC.Base.<> (("relationship" Data.Aeson.Types.ToJSON..= personRelationship obj) GHC.Base.<> (("requirements" Data.Aeson.Types.ToJSON..= personRequirements obj) GHC.Base.<> (("ssn_last_4_provided" Data.Aeson.Types.ToJSON..= personSsnLast_4Provided obj) GHC.Base.<> (("verification" Data.Aeson.Types.ToJSON..= personVerification obj) GHC.Base.<> ("object" Data.Aeson.Types.ToJSON..= Data.Aeson.Types.Internal.String "person")))))))))))))))))))))))))) instance Data.Aeson.Types.FromJSON.FromJSON Person where parseJSON = Data.Aeson.Types.FromJSON.withObject "Person" (\obj -> ((((((((((((((((((((((((GHC.Base.pure Person GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "account")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_kana")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "address_kanji")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "created")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "dob")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "email")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "first_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "first_name_kana")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "first_name_kanji")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "gender")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "id")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "id_number_provided")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last_name_kana")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "last_name_kanji")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "maiden_name")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "metadata")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "nationality")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "phone")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "political_exposure")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "relationship")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "requirements")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "ssn_last_4_provided")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "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 personAccount personCreated personId = Person { personAccount = personAccount, personAddress = GHC.Maybe.Nothing, personAddressKana = GHC.Maybe.Nothing, personAddressKanji = GHC.Maybe.Nothing, personCreated = personCreated, personDob = GHC.Maybe.Nothing, personEmail = GHC.Maybe.Nothing, personFirstName = GHC.Maybe.Nothing, personFirstNameKana = GHC.Maybe.Nothing, personFirstNameKanji = GHC.Maybe.Nothing, personGender = GHC.Maybe.Nothing, personId = personId, personIdNumberProvided = GHC.Maybe.Nothing, personLastName = GHC.Maybe.Nothing, personLastNameKana = GHC.Maybe.Nothing, personLastNameKanji = GHC.Maybe.Nothing, personMaidenName = GHC.Maybe.Nothing, personMetadata = GHC.Maybe.Nothing, personNationality = GHC.Maybe.Nothing, personPhone = GHC.Maybe.Nothing, personPoliticalExposure = GHC.Maybe.Nothing, personRelationship = GHC.Maybe.Nothing, personRequirements = GHC.Maybe.Nothing, personSsnLast_4Provided = GHC.Maybe.Nothing, personVerification = 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'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'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | line1: Block\/Building number. -- -- Constraints: -- -- * Maximum length of 5000 personAddressKana'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | line2: Building details. -- -- Constraints: -- -- * Maximum length of 5000 personAddressKana'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | postal_code: ZIP or postal code. -- -- Constraints: -- -- * Maximum length of 5000 personAddressKana'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | state: Prefecture. -- -- Constraints: -- -- * Maximum length of 5000 personAddressKana'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | town: Town\/cho-me. -- -- Constraints: -- -- * Maximum length of 5000 personAddressKana'Town :: (GHC.Maybe.Maybe Data.Text.Internal.Text) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PersonAddressKana' where toJSON obj = Data.Aeson.Types.Internal.object ("city" Data.Aeson.Types.ToJSON..= personAddressKana'City obj : "country" Data.Aeson.Types.ToJSON..= personAddressKana'Country obj : "line1" Data.Aeson.Types.ToJSON..= personAddressKana'Line1 obj : "line2" Data.Aeson.Types.ToJSON..= personAddressKana'Line2 obj : "postal_code" Data.Aeson.Types.ToJSON..= personAddressKana'PostalCode obj : "state" Data.Aeson.Types.ToJSON..= personAddressKana'State obj : "town" Data.Aeson.Types.ToJSON..= personAddressKana'Town obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("city" Data.Aeson.Types.ToJSON..= personAddressKana'City obj) GHC.Base.<> (("country" Data.Aeson.Types.ToJSON..= personAddressKana'Country obj) GHC.Base.<> (("line1" Data.Aeson.Types.ToJSON..= personAddressKana'Line1 obj) GHC.Base.<> (("line2" Data.Aeson.Types.ToJSON..= personAddressKana'Line2 obj) GHC.Base.<> (("postal_code" Data.Aeson.Types.ToJSON..= personAddressKana'PostalCode obj) GHC.Base.<> (("state" Data.Aeson.Types.ToJSON..= personAddressKana'State obj) GHC.Base.<> ("town" Data.Aeson.Types.ToJSON..= personAddressKana'Town obj))))))) instance Data.Aeson.Types.FromJSON.FromJSON PersonAddressKana' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PersonAddressKana'" (\obj -> ((((((GHC.Base.pure PersonAddressKana' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "town")) -- | Create a new 'PersonAddressKana'' with all required fields. mkPersonAddressKana' :: PersonAddressKana' mkPersonAddressKana' = PersonAddressKana' { personAddressKana'City = GHC.Maybe.Nothing, personAddressKana'Country = GHC.Maybe.Nothing, personAddressKana'Line1 = GHC.Maybe.Nothing, personAddressKana'Line2 = GHC.Maybe.Nothing, personAddressKana'PostalCode = GHC.Maybe.Nothing, personAddressKana'State = GHC.Maybe.Nothing, personAddressKana'Town = 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'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'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | line1: Block\/Building number. -- -- Constraints: -- -- * Maximum length of 5000 personAddressKanji'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | line2: Building details. -- -- Constraints: -- -- * Maximum length of 5000 personAddressKanji'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | postal_code: ZIP or postal code. -- -- Constraints: -- -- * Maximum length of 5000 personAddressKanji'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | state: Prefecture. -- -- Constraints: -- -- * Maximum length of 5000 personAddressKanji'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | town: Town\/cho-me. -- -- Constraints: -- -- * Maximum length of 5000 personAddressKanji'Town :: (GHC.Maybe.Maybe Data.Text.Internal.Text) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PersonAddressKanji' where toJSON obj = Data.Aeson.Types.Internal.object ("city" Data.Aeson.Types.ToJSON..= personAddressKanji'City obj : "country" Data.Aeson.Types.ToJSON..= personAddressKanji'Country obj : "line1" Data.Aeson.Types.ToJSON..= personAddressKanji'Line1 obj : "line2" Data.Aeson.Types.ToJSON..= personAddressKanji'Line2 obj : "postal_code" Data.Aeson.Types.ToJSON..= personAddressKanji'PostalCode obj : "state" Data.Aeson.Types.ToJSON..= personAddressKanji'State obj : "town" Data.Aeson.Types.ToJSON..= personAddressKanji'Town obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("city" Data.Aeson.Types.ToJSON..= personAddressKanji'City obj) GHC.Base.<> (("country" Data.Aeson.Types.ToJSON..= personAddressKanji'Country obj) GHC.Base.<> (("line1" Data.Aeson.Types.ToJSON..= personAddressKanji'Line1 obj) GHC.Base.<> (("line2" Data.Aeson.Types.ToJSON..= personAddressKanji'Line2 obj) GHC.Base.<> (("postal_code" Data.Aeson.Types.ToJSON..= personAddressKanji'PostalCode obj) GHC.Base.<> (("state" Data.Aeson.Types.ToJSON..= personAddressKanji'State obj) GHC.Base.<> ("town" Data.Aeson.Types.ToJSON..= personAddressKanji'Town obj))))))) instance Data.Aeson.Types.FromJSON.FromJSON PersonAddressKanji' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PersonAddressKanji'" (\obj -> ((((((GHC.Base.pure PersonAddressKanji' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "city")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "country")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line1")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "line2")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "postal_code")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "state")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "town")) -- | Create a new 'PersonAddressKanji'' with all required fields. mkPersonAddressKanji' :: PersonAddressKanji' mkPersonAddressKanji' = PersonAddressKanji' { personAddressKanji'City = GHC.Maybe.Nothing, personAddressKanji'Country = GHC.Maybe.Nothing, personAddressKanji'Line1 = GHC.Maybe.Nothing, personAddressKanji'Line2 = GHC.Maybe.Nothing, personAddressKanji'PostalCode = GHC.Maybe.Nothing, personAddressKanji'State = GHC.Maybe.Nothing, personAddressKanji'Town = 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 (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON PersonPoliticalExposure' where toJSON (PersonPoliticalExposure'Other val) = val toJSON (PersonPoliticalExposure'Typed val) = Data.Aeson.Types.ToJSON.toJSON val toJSON (PersonPoliticalExposure'EnumExisting) = "existing" toJSON (PersonPoliticalExposure'EnumNone) = "none" instance Data.Aeson.Types.FromJSON.FromJSON PersonPoliticalExposure' where parseJSON val = GHC.Base.pure ( if | val GHC.Classes.== "existing" -> PersonPoliticalExposure'EnumExisting | val GHC.Classes.== "none" -> PersonPoliticalExposure'EnumNone | GHC.Base.otherwise -> PersonPoliticalExposure'Other 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'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'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'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'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'PendingVerification :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON PersonRequirements' where toJSON obj = Data.Aeson.Types.Internal.object ("currently_due" Data.Aeson.Types.ToJSON..= personRequirements'CurrentlyDue obj : "errors" Data.Aeson.Types.ToJSON..= personRequirements'Errors obj : "eventually_due" Data.Aeson.Types.ToJSON..= personRequirements'EventuallyDue obj : "past_due" Data.Aeson.Types.ToJSON..= personRequirements'PastDue obj : "pending_verification" Data.Aeson.Types.ToJSON..= personRequirements'PendingVerification obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("currently_due" Data.Aeson.Types.ToJSON..= personRequirements'CurrentlyDue obj) GHC.Base.<> (("errors" Data.Aeson.Types.ToJSON..= personRequirements'Errors obj) GHC.Base.<> (("eventually_due" Data.Aeson.Types.ToJSON..= personRequirements'EventuallyDue obj) GHC.Base.<> (("past_due" Data.Aeson.Types.ToJSON..= personRequirements'PastDue obj) GHC.Base.<> ("pending_verification" Data.Aeson.Types.ToJSON..= personRequirements'PendingVerification obj))))) instance Data.Aeson.Types.FromJSON.FromJSON PersonRequirements' where parseJSON = Data.Aeson.Types.FromJSON.withObject "PersonRequirements'" (\obj -> ((((GHC.Base.pure PersonRequirements' GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "currently_due")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "errors")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "eventually_due")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "past_due")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "pending_verification")) -- | Create a new 'PersonRequirements'' with all required fields. mkPersonRequirements' :: PersonRequirements' mkPersonRequirements' = PersonRequirements' { personRequirements'CurrentlyDue = GHC.Maybe.Nothing, personRequirements'Errors = GHC.Maybe.Nothing, personRequirements'EventuallyDue = GHC.Maybe.Nothing, personRequirements'PastDue = GHC.Maybe.Nothing, personRequirements'PendingVerification = GHC.Maybe.Nothing }