{-# 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 BillingDetails
module StripeAPI.Types.BillingDetails 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.Address
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | Defines the object schema located at @components.schemas.billing_details@ in the specification.
data BillingDetails = BillingDetails
  { -- | address: Billing address.
    BillingDetails -> Maybe BillingDetailsAddress'
billingDetailsAddress :: (GHC.Maybe.Maybe BillingDetailsAddress'),
    -- | email: Email address.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    BillingDetails -> Maybe Text
billingDetailsEmail :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | name: Full name.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    BillingDetails -> Maybe Text
billingDetailsName :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | phone: Billing phone number (including extension).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    BillingDetails -> Maybe Text
billingDetailsPhone :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> BillingDetails -> ShowS
[BillingDetails] -> ShowS
BillingDetails -> String
(Int -> BillingDetails -> ShowS)
-> (BillingDetails -> String)
-> ([BillingDetails] -> ShowS)
-> Show BillingDetails
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BillingDetails] -> ShowS
$cshowList :: [BillingDetails] -> ShowS
show :: BillingDetails -> String
$cshow :: BillingDetails -> String
showsPrec :: Int -> BillingDetails -> ShowS
$cshowsPrec :: Int -> BillingDetails -> ShowS
GHC.Show.Show,
      BillingDetails -> BillingDetails -> Bool
(BillingDetails -> BillingDetails -> Bool)
-> (BillingDetails -> BillingDetails -> Bool) -> Eq BillingDetails
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BillingDetails -> BillingDetails -> Bool
$c/= :: BillingDetails -> BillingDetails -> Bool
== :: BillingDetails -> BillingDetails -> Bool
$c== :: BillingDetails -> BillingDetails -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON BillingDetails where
  toJSON :: BillingDetails -> Value
toJSON BillingDetails
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"address" Text -> Maybe BillingDetailsAddress' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= BillingDetails -> Maybe BillingDetailsAddress'
billingDetailsAddress BillingDetails
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..= BillingDetails -> Maybe Text
billingDetailsEmail BillingDetails
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"name" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= BillingDetails -> Maybe Text
billingDetailsName BillingDetails
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..= BillingDetails -> Maybe Text
billingDetailsPhone BillingDetails
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: BillingDetails -> Encoding
toEncoding BillingDetails
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"address" Text -> Maybe BillingDetailsAddress' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= BillingDetails -> Maybe BillingDetailsAddress'
billingDetailsAddress BillingDetails
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..= BillingDetails -> Maybe Text
billingDetailsEmail BillingDetails
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"name" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= BillingDetails -> Maybe Text
billingDetailsName BillingDetails
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..= BillingDetails -> Maybe Text
billingDetailsPhone BillingDetails
obj))))

instance Data.Aeson.Types.FromJSON.FromJSON BillingDetails where
  parseJSON :: Value -> Parser BillingDetails
parseJSON = String
-> (Object -> Parser BillingDetails)
-> Value
-> Parser BillingDetails
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"BillingDetails" (\Object
obj -> ((((Maybe BillingDetailsAddress'
 -> Maybe Text -> Maybe Text -> Maybe Text -> BillingDetails)
-> Parser
     (Maybe BillingDetailsAddress'
      -> Maybe Text -> Maybe Text -> Maybe Text -> BillingDetails)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe BillingDetailsAddress'
-> Maybe Text -> Maybe Text -> Maybe Text -> BillingDetails
BillingDetails Parser
  (Maybe BillingDetailsAddress'
   -> Maybe Text -> Maybe Text -> Maybe Text -> BillingDetails)
-> Parser (Maybe BillingDetailsAddress')
-> Parser
     (Maybe Text -> Maybe Text -> Maybe Text -> BillingDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe BillingDetailsAddress')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"address")) Parser (Maybe Text -> Maybe Text -> Maybe Text -> BillingDetails)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> BillingDetails)
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 -> BillingDetails)
-> Parser (Maybe Text) -> Parser (Maybe Text -> BillingDetails)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"name")) Parser (Maybe Text -> BillingDetails)
-> Parser (Maybe Text) -> Parser BillingDetails
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"))

-- | Create a new 'BillingDetails' with all required fields.
mkBillingDetails :: BillingDetails
mkBillingDetails :: BillingDetails
mkBillingDetails =
  BillingDetails :: Maybe BillingDetailsAddress'
-> Maybe Text -> Maybe Text -> Maybe Text -> BillingDetails
BillingDetails
    { billingDetailsAddress :: Maybe BillingDetailsAddress'
billingDetailsAddress = Maybe BillingDetailsAddress'
forall a. Maybe a
GHC.Maybe.Nothing,
      billingDetailsEmail :: Maybe Text
billingDetailsEmail = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      billingDetailsName :: Maybe Text
billingDetailsName = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      billingDetailsPhone :: Maybe Text
billingDetailsPhone = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @components.schemas.billing_details.properties.address.anyOf@ in the specification.
--
-- Billing address.
data BillingDetailsAddress' = BillingDetailsAddress'
  { -- | city: City, district, suburb, town, or village.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'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
    BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'Country :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line1: Address line 1 (e.g., street, PO Box, or company name).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'Line1 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | line2: Address line 2 (e.g., apartment, suite, unit, or building).
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'Line2 :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | postal_code: ZIP or postal code.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'PostalCode :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | state: State, county, province, or region.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'State :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> BillingDetailsAddress' -> ShowS
[BillingDetailsAddress'] -> ShowS
BillingDetailsAddress' -> String
(Int -> BillingDetailsAddress' -> ShowS)
-> (BillingDetailsAddress' -> String)
-> ([BillingDetailsAddress'] -> ShowS)
-> Show BillingDetailsAddress'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BillingDetailsAddress'] -> ShowS
$cshowList :: [BillingDetailsAddress'] -> ShowS
show :: BillingDetailsAddress' -> String
$cshow :: BillingDetailsAddress' -> String
showsPrec :: Int -> BillingDetailsAddress' -> ShowS
$cshowsPrec :: Int -> BillingDetailsAddress' -> ShowS
GHC.Show.Show,
      BillingDetailsAddress' -> BillingDetailsAddress' -> Bool
(BillingDetailsAddress' -> BillingDetailsAddress' -> Bool)
-> (BillingDetailsAddress' -> BillingDetailsAddress' -> Bool)
-> Eq BillingDetailsAddress'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BillingDetailsAddress' -> BillingDetailsAddress' -> Bool
$c/= :: BillingDetailsAddress' -> BillingDetailsAddress' -> Bool
== :: BillingDetailsAddress' -> BillingDetailsAddress' -> Bool
$c== :: BillingDetailsAddress' -> BillingDetailsAddress' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON BillingDetailsAddress' where
  toJSON :: BillingDetailsAddress' -> Value
toJSON BillingDetailsAddress'
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..= BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'City BillingDetailsAddress'
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..= BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'Country BillingDetailsAddress'
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..= BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'Line1 BillingDetailsAddress'
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..= BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'Line2 BillingDetailsAddress'
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..= BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'PostalCode BillingDetailsAddress'
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..= BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'State BillingDetailsAddress'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: BillingDetailsAddress' -> Encoding
toEncoding BillingDetailsAddress'
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..= BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'City BillingDetailsAddress'
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..= BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'Country BillingDetailsAddress'
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..= BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'Line1 BillingDetailsAddress'
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..= BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'Line2 BillingDetailsAddress'
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..= BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'PostalCode BillingDetailsAddress'
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..= BillingDetailsAddress' -> Maybe Text
billingDetailsAddress'State BillingDetailsAddress'
obj))))))

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

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