{-# LANGUAGE MultiWayIf #-}
{-# LANGUAGE OverloadedStrings #-}
module StripeAPI.Types.Plan 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.DeletedProduct
import {-# SOURCE #-} StripeAPI.Types.PlanTier
import {-# SOURCE #-} StripeAPI.Types.Product
import {-# SOURCE #-} StripeAPI.Types.TransformUsage
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe
data Plan = Plan
{
Plan -> Bool
planActive :: GHC.Types.Bool,
Plan -> Maybe PlanAggregateUsage'
planAggregateUsage :: (GHC.Maybe.Maybe PlanAggregateUsage'),
Plan -> Maybe Int
planAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
Plan -> Maybe Text
planAmountDecimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
Plan -> PlanBillingScheme'
planBillingScheme :: PlanBillingScheme',
Plan -> Int
planCreated :: GHC.Types.Int,
Plan -> Text
planCurrency :: Data.Text.Internal.Text,
Plan -> Text
planId :: Data.Text.Internal.Text,
Plan -> PlanInterval'
planInterval :: PlanInterval',
Plan -> Int
planIntervalCount :: GHC.Types.Int,
Plan -> Bool
planLivemode :: GHC.Types.Bool,
Plan -> Maybe Object
planMetadata :: (GHC.Maybe.Maybe Data.Aeson.Types.Internal.Object),
Plan -> Maybe Text
planNickname :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
Plan -> Maybe PlanProduct'Variants
planProduct :: (GHC.Maybe.Maybe PlanProduct'Variants),
Plan -> Maybe [PlanTier]
planTiers :: (GHC.Maybe.Maybe ([PlanTier])),
Plan -> Maybe PlanTiersMode'
planTiersMode :: (GHC.Maybe.Maybe PlanTiersMode'),
Plan -> Maybe PlanTransformUsage'
planTransformUsage :: (GHC.Maybe.Maybe PlanTransformUsage'),
Plan -> Maybe Int
planTrialPeriodDays :: (GHC.Maybe.Maybe GHC.Types.Int),
Plan -> PlanUsageType'
planUsageType :: PlanUsageType'
}
deriving
( Int -> Plan -> ShowS
[Plan] -> ShowS
Plan -> String
(Int -> Plan -> ShowS)
-> (Plan -> String) -> ([Plan] -> ShowS) -> Show Plan
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Plan] -> ShowS
$cshowList :: [Plan] -> ShowS
show :: Plan -> String
$cshow :: Plan -> String
showsPrec :: Int -> Plan -> ShowS
$cshowsPrec :: Int -> Plan -> ShowS
GHC.Show.Show,
Plan -> Plan -> Bool
(Plan -> Plan -> Bool) -> (Plan -> Plan -> Bool) -> Eq Plan
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Plan -> Plan -> Bool
$c/= :: Plan -> Plan -> Bool
== :: Plan -> Plan -> Bool
$c== :: Plan -> Plan -> Bool
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON Plan where
toJSON :: Plan -> Value
toJSON Plan
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"active" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Bool
planActive Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"aggregate_usage" Text -> Maybe PlanAggregateUsage' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe PlanAggregateUsage'
planAggregateUsage Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe Int
planAmount Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"amount_decimal" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe Text
planAmountDecimal Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"billing_scheme" Text -> PlanBillingScheme' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> PlanBillingScheme'
planBillingScheme Plan
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..= Plan -> Int
planCreated Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"currency" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Text
planCurrency Plan
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..= Plan -> Text
planId Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"interval" Text -> PlanInterval' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> PlanInterval'
planInterval Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"interval_count" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Int
planIntervalCount Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"livemode" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Bool
planLivemode Plan
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..= Plan -> Maybe Object
planMetadata Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"nickname" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe Text
planNickname Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"product" Text -> Maybe PlanProduct'Variants -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe PlanProduct'Variants
planProduct Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tiers" Text -> Maybe [PlanTier] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe [PlanTier]
planTiers Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tiers_mode" Text -> Maybe PlanTiersMode' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe PlanTiersMode'
planTiersMode Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"transform_usage" Text -> Maybe PlanTransformUsage' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe PlanTransformUsage'
planTransformUsage Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"trial_period_days" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe Int
planTrialPeriodDays Plan
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"usage_type" Text -> PlanUsageType' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> PlanUsageType'
planUsageType Plan
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
"plan" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
toEncoding :: Plan -> Encoding
toEncoding Plan
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"active" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Bool
planActive Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"aggregate_usage" Text -> Maybe PlanAggregateUsage' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe PlanAggregateUsage'
planAggregateUsage Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe Int
planAmount Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"amount_decimal" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe Text
planAmountDecimal Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"billing_scheme" Text -> PlanBillingScheme' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> PlanBillingScheme'
planBillingScheme Plan
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..= Plan -> Int
planCreated Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"currency" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Text
planCurrency Plan
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..= Plan -> Text
planId Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"interval" Text -> PlanInterval' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> PlanInterval'
planInterval Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"interval_count" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Int
planIntervalCount Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"livemode" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Bool
planLivemode Plan
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..= Plan -> Maybe Object
planMetadata Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"nickname" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe Text
planNickname Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"product" Text -> Maybe PlanProduct'Variants -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe PlanProduct'Variants
planProduct Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tiers" Text -> Maybe [PlanTier] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe [PlanTier]
planTiers Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tiers_mode" Text -> Maybe PlanTiersMode' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe PlanTiersMode'
planTiersMode Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"transform_usage" Text -> Maybe PlanTransformUsage' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe PlanTransformUsage'
planTransformUsage Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"trial_period_days" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> Maybe Int
planTrialPeriodDays Plan
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"usage_type" Text -> PlanUsageType' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Plan -> PlanUsageType'
planUsageType Plan
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
"plan"))))))))))))))))))))
instance Data.Aeson.Types.FromJSON.FromJSON Plan where
parseJSON :: Value -> Parser Plan
parseJSON = String -> (Object -> Parser Plan) -> Value -> Parser Plan
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"Plan" (\Object
obj -> (((((((((((((((((((Bool
-> Maybe PlanAggregateUsage'
-> Maybe Int
-> Maybe Text
-> PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser
(Bool
-> Maybe PlanAggregateUsage'
-> Maybe Int
-> Maybe Text
-> PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Bool
-> Maybe PlanAggregateUsage'
-> Maybe Int
-> Maybe Text
-> PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan
Plan Parser
(Bool
-> Maybe PlanAggregateUsage'
-> Maybe Int
-> Maybe Text
-> PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser Bool
-> Parser
(Maybe PlanAggregateUsage'
-> Maybe Int
-> Maybe Text
-> PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"active")) Parser
(Maybe PlanAggregateUsage'
-> Maybe Int
-> Maybe Text
-> PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser (Maybe PlanAggregateUsage')
-> Parser
(Maybe Int
-> Maybe Text
-> PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PlanAggregateUsage')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"aggregate_usage")) Parser
(Maybe Int
-> Maybe Text
-> PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser (Maybe Int)
-> Parser
(Maybe Text
-> PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount")) Parser
(Maybe Text
-> PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser (Maybe Text)
-> Parser
(PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
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
"amount_decimal")) Parser
(PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser PlanBillingScheme'
-> Parser
(Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser PlanBillingScheme'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"billing_scheme")) Parser
(Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser Int
-> Parser
(Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
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
(Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser Text
-> Parser
(Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
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
"currency")) Parser
(Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser Text
-> Parser
(PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
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
(PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser PlanInterval'
-> Parser
(Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser PlanInterval'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"interval")) Parser
(Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser Int
-> Parser
(Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
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
"interval_count")) Parser
(Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser Bool
-> Parser
(Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"livemode")) Parser
(Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser (Maybe Object)
-> Parser
(Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
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 PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser (Maybe Text)
-> Parser
(Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
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
"nickname")) Parser
(Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser (Maybe PlanProduct'Variants)
-> Parser
(Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PlanProduct'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"product")) Parser
(Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser (Maybe [PlanTier])
-> Parser
(Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe [PlanTier])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tiers")) Parser
(Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan)
-> Parser (Maybe PlanTiersMode')
-> Parser
(Maybe PlanTransformUsage' -> Maybe Int -> PlanUsageType' -> Plan)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PlanTiersMode')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tiers_mode")) Parser
(Maybe PlanTransformUsage' -> Maybe Int -> PlanUsageType' -> Plan)
-> Parser (Maybe PlanTransformUsage')
-> Parser (Maybe Int -> PlanUsageType' -> Plan)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PlanTransformUsage')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"transform_usage")) Parser (Maybe Int -> PlanUsageType' -> Plan)
-> Parser (Maybe Int) -> Parser (PlanUsageType' -> Plan)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"trial_period_days")) Parser (PlanUsageType' -> Plan)
-> Parser PlanUsageType' -> Parser Plan
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser PlanUsageType'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"usage_type"))
mkPlan ::
GHC.Types.Bool ->
PlanBillingScheme' ->
GHC.Types.Int ->
Data.Text.Internal.Text ->
Data.Text.Internal.Text ->
PlanInterval' ->
GHC.Types.Int ->
GHC.Types.Bool ->
PlanUsageType' ->
Plan
mkPlan :: Bool
-> PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> PlanUsageType'
-> Plan
mkPlan Bool
planActive PlanBillingScheme'
planBillingScheme Int
planCreated Text
planCurrency Text
planId PlanInterval'
planInterval Int
planIntervalCount Bool
planLivemode PlanUsageType'
planUsageType =
Plan :: Bool
-> Maybe PlanAggregateUsage'
-> Maybe Int
-> Maybe Text
-> PlanBillingScheme'
-> Int
-> Text
-> Text
-> PlanInterval'
-> Int
-> Bool
-> Maybe Object
-> Maybe Text
-> Maybe PlanProduct'Variants
-> Maybe [PlanTier]
-> Maybe PlanTiersMode'
-> Maybe PlanTransformUsage'
-> Maybe Int
-> PlanUsageType'
-> Plan
Plan
{ planActive :: Bool
planActive = Bool
planActive,
planAggregateUsage :: Maybe PlanAggregateUsage'
planAggregateUsage = Maybe PlanAggregateUsage'
forall a. Maybe a
GHC.Maybe.Nothing,
planAmount :: Maybe Int
planAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
planAmountDecimal :: Maybe Text
planAmountDecimal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
planBillingScheme :: PlanBillingScheme'
planBillingScheme = PlanBillingScheme'
planBillingScheme,
planCreated :: Int
planCreated = Int
planCreated,
planCurrency :: Text
planCurrency = Text
planCurrency,
planId :: Text
planId = Text
planId,
planInterval :: PlanInterval'
planInterval = PlanInterval'
planInterval,
planIntervalCount :: Int
planIntervalCount = Int
planIntervalCount,
planLivemode :: Bool
planLivemode = Bool
planLivemode,
planMetadata :: Maybe Object
planMetadata = Maybe Object
forall a. Maybe a
GHC.Maybe.Nothing,
planNickname :: Maybe Text
planNickname = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
planProduct :: Maybe PlanProduct'Variants
planProduct = Maybe PlanProduct'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
planTiers :: Maybe [PlanTier]
planTiers = Maybe [PlanTier]
forall a. Maybe a
GHC.Maybe.Nothing,
planTiersMode :: Maybe PlanTiersMode'
planTiersMode = Maybe PlanTiersMode'
forall a. Maybe a
GHC.Maybe.Nothing,
planTransformUsage :: Maybe PlanTransformUsage'
planTransformUsage = Maybe PlanTransformUsage'
forall a. Maybe a
GHC.Maybe.Nothing,
planTrialPeriodDays :: Maybe Int
planTrialPeriodDays = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
planUsageType :: PlanUsageType'
planUsageType = PlanUsageType'
planUsageType
}
data PlanAggregateUsage'
=
PlanAggregateUsage'Other Data.Aeson.Types.Internal.Value
|
PlanAggregateUsage'Typed Data.Text.Internal.Text
|
PlanAggregateUsage'EnumLastDuringPeriod
|
PlanAggregateUsage'EnumLastEver
|
PlanAggregateUsage'EnumMax
|
PlanAggregateUsage'EnumSum
deriving (Int -> PlanAggregateUsage' -> ShowS
[PlanAggregateUsage'] -> ShowS
PlanAggregateUsage' -> String
(Int -> PlanAggregateUsage' -> ShowS)
-> (PlanAggregateUsage' -> String)
-> ([PlanAggregateUsage'] -> ShowS)
-> Show PlanAggregateUsage'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PlanAggregateUsage'] -> ShowS
$cshowList :: [PlanAggregateUsage'] -> ShowS
show :: PlanAggregateUsage' -> String
$cshow :: PlanAggregateUsage' -> String
showsPrec :: Int -> PlanAggregateUsage' -> ShowS
$cshowsPrec :: Int -> PlanAggregateUsage' -> ShowS
GHC.Show.Show, PlanAggregateUsage' -> PlanAggregateUsage' -> Bool
(PlanAggregateUsage' -> PlanAggregateUsage' -> Bool)
-> (PlanAggregateUsage' -> PlanAggregateUsage' -> Bool)
-> Eq PlanAggregateUsage'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PlanAggregateUsage' -> PlanAggregateUsage' -> Bool
$c/= :: PlanAggregateUsage' -> PlanAggregateUsage' -> Bool
== :: PlanAggregateUsage' -> PlanAggregateUsage' -> Bool
$c== :: PlanAggregateUsage' -> PlanAggregateUsage' -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PlanAggregateUsage' where
toJSON :: PlanAggregateUsage' -> Value
toJSON (PlanAggregateUsage'Other Value
val) = Value
val
toJSON (PlanAggregateUsage'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
toJSON (PlanAggregateUsage'
PlanAggregateUsage'EnumLastDuringPeriod) = Value
"last_during_period"
toJSON (PlanAggregateUsage'
PlanAggregateUsage'EnumLastEver) = Value
"last_ever"
toJSON (PlanAggregateUsage'
PlanAggregateUsage'EnumMax) = Value
"max"
toJSON (PlanAggregateUsage'
PlanAggregateUsage'EnumSum) = Value
"sum"
instance Data.Aeson.Types.FromJSON.FromJSON PlanAggregateUsage' where
parseJSON :: Value -> Parser PlanAggregateUsage'
parseJSON Value
val =
PlanAggregateUsage' -> Parser PlanAggregateUsage'
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
"last_during_period" -> PlanAggregateUsage'
PlanAggregateUsage'EnumLastDuringPeriod
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"last_ever" -> PlanAggregateUsage'
PlanAggregateUsage'EnumLastEver
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"max" -> PlanAggregateUsage'
PlanAggregateUsage'EnumMax
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"sum" -> PlanAggregateUsage'
PlanAggregateUsage'EnumSum
| Bool
GHC.Base.otherwise -> Value -> PlanAggregateUsage'
PlanAggregateUsage'Other Value
val
)
data PlanBillingScheme'
=
PlanBillingScheme'Other Data.Aeson.Types.Internal.Value
|
PlanBillingScheme'Typed Data.Text.Internal.Text
|
PlanBillingScheme'EnumPerUnit
|
PlanBillingScheme'EnumTiered
deriving (Int -> PlanBillingScheme' -> ShowS
[PlanBillingScheme'] -> ShowS
PlanBillingScheme' -> String
(Int -> PlanBillingScheme' -> ShowS)
-> (PlanBillingScheme' -> String)
-> ([PlanBillingScheme'] -> ShowS)
-> Show PlanBillingScheme'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PlanBillingScheme'] -> ShowS
$cshowList :: [PlanBillingScheme'] -> ShowS
show :: PlanBillingScheme' -> String
$cshow :: PlanBillingScheme' -> String
showsPrec :: Int -> PlanBillingScheme' -> ShowS
$cshowsPrec :: Int -> PlanBillingScheme' -> ShowS
GHC.Show.Show, PlanBillingScheme' -> PlanBillingScheme' -> Bool
(PlanBillingScheme' -> PlanBillingScheme' -> Bool)
-> (PlanBillingScheme' -> PlanBillingScheme' -> Bool)
-> Eq PlanBillingScheme'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PlanBillingScheme' -> PlanBillingScheme' -> Bool
$c/= :: PlanBillingScheme' -> PlanBillingScheme' -> Bool
== :: PlanBillingScheme' -> PlanBillingScheme' -> Bool
$c== :: PlanBillingScheme' -> PlanBillingScheme' -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PlanBillingScheme' where
toJSON :: PlanBillingScheme' -> Value
toJSON (PlanBillingScheme'Other Value
val) = Value
val
toJSON (PlanBillingScheme'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
toJSON (PlanBillingScheme'
PlanBillingScheme'EnumPerUnit) = Value
"per_unit"
toJSON (PlanBillingScheme'
PlanBillingScheme'EnumTiered) = Value
"tiered"
instance Data.Aeson.Types.FromJSON.FromJSON PlanBillingScheme' where
parseJSON :: Value -> Parser PlanBillingScheme'
parseJSON Value
val =
PlanBillingScheme' -> Parser PlanBillingScheme'
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
"per_unit" -> PlanBillingScheme'
PlanBillingScheme'EnumPerUnit
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"tiered" -> PlanBillingScheme'
PlanBillingScheme'EnumTiered
| Bool
GHC.Base.otherwise -> Value -> PlanBillingScheme'
PlanBillingScheme'Other Value
val
)
data PlanInterval'
=
PlanInterval'Other Data.Aeson.Types.Internal.Value
|
PlanInterval'Typed Data.Text.Internal.Text
|
PlanInterval'EnumDay
|
PlanInterval'EnumMonth
|
PlanInterval'EnumWeek
|
PlanInterval'EnumYear
deriving (Int -> PlanInterval' -> ShowS
[PlanInterval'] -> ShowS
PlanInterval' -> String
(Int -> PlanInterval' -> ShowS)
-> (PlanInterval' -> String)
-> ([PlanInterval'] -> ShowS)
-> Show PlanInterval'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PlanInterval'] -> ShowS
$cshowList :: [PlanInterval'] -> ShowS
show :: PlanInterval' -> String
$cshow :: PlanInterval' -> String
showsPrec :: Int -> PlanInterval' -> ShowS
$cshowsPrec :: Int -> PlanInterval' -> ShowS
GHC.Show.Show, PlanInterval' -> PlanInterval' -> Bool
(PlanInterval' -> PlanInterval' -> Bool)
-> (PlanInterval' -> PlanInterval' -> Bool) -> Eq PlanInterval'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PlanInterval' -> PlanInterval' -> Bool
$c/= :: PlanInterval' -> PlanInterval' -> Bool
== :: PlanInterval' -> PlanInterval' -> Bool
$c== :: PlanInterval' -> PlanInterval' -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PlanInterval' where
toJSON :: PlanInterval' -> Value
toJSON (PlanInterval'Other Value
val) = Value
val
toJSON (PlanInterval'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
toJSON (PlanInterval'
PlanInterval'EnumDay) = Value
"day"
toJSON (PlanInterval'
PlanInterval'EnumMonth) = Value
"month"
toJSON (PlanInterval'
PlanInterval'EnumWeek) = Value
"week"
toJSON (PlanInterval'
PlanInterval'EnumYear) = Value
"year"
instance Data.Aeson.Types.FromJSON.FromJSON PlanInterval' where
parseJSON :: Value -> Parser PlanInterval'
parseJSON Value
val =
PlanInterval' -> Parser PlanInterval'
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
"day" -> PlanInterval'
PlanInterval'EnumDay
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"month" -> PlanInterval'
PlanInterval'EnumMonth
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"week" -> PlanInterval'
PlanInterval'EnumWeek
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"year" -> PlanInterval'
PlanInterval'EnumYear
| Bool
GHC.Base.otherwise -> Value -> PlanInterval'
PlanInterval'Other Value
val
)
data PlanProduct'Variants
= PlanProduct'Text Data.Text.Internal.Text
| PlanProduct'Product Product
| PlanProduct'DeletedProduct DeletedProduct
deriving (Int -> PlanProduct'Variants -> ShowS
[PlanProduct'Variants] -> ShowS
PlanProduct'Variants -> String
(Int -> PlanProduct'Variants -> ShowS)
-> (PlanProduct'Variants -> String)
-> ([PlanProduct'Variants] -> ShowS)
-> Show PlanProduct'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PlanProduct'Variants] -> ShowS
$cshowList :: [PlanProduct'Variants] -> ShowS
show :: PlanProduct'Variants -> String
$cshow :: PlanProduct'Variants -> String
showsPrec :: Int -> PlanProduct'Variants -> ShowS
$cshowsPrec :: Int -> PlanProduct'Variants -> ShowS
GHC.Show.Show, PlanProduct'Variants -> PlanProduct'Variants -> Bool
(PlanProduct'Variants -> PlanProduct'Variants -> Bool)
-> (PlanProduct'Variants -> PlanProduct'Variants -> Bool)
-> Eq PlanProduct'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PlanProduct'Variants -> PlanProduct'Variants -> Bool
$c/= :: PlanProduct'Variants -> PlanProduct'Variants -> Bool
== :: PlanProduct'Variants -> PlanProduct'Variants -> Bool
$c== :: PlanProduct'Variants -> PlanProduct'Variants -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PlanProduct'Variants where
toJSON :: PlanProduct'Variants -> Value
toJSON (PlanProduct'Text Text
a) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
a
toJSON (PlanProduct'Product Product
a) = Product -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Product
a
toJSON (PlanProduct'DeletedProduct DeletedProduct
a) = DeletedProduct -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON DeletedProduct
a
instance Data.Aeson.Types.FromJSON.FromJSON PlanProduct'Variants where
parseJSON :: Value -> Parser PlanProduct'Variants
parseJSON Value
val = case (Text -> PlanProduct'Variants
PlanProduct'Text (Text -> PlanProduct'Variants)
-> Result Text -> Result PlanProduct'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Text
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PlanProduct'Variants
-> Result PlanProduct'Variants -> Result PlanProduct'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((Product -> PlanProduct'Variants
PlanProduct'Product (Product -> PlanProduct'Variants)
-> Result Product -> Result PlanProduct'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Product
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PlanProduct'Variants
-> Result PlanProduct'Variants -> Result PlanProduct'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> ((DeletedProduct -> PlanProduct'Variants
PlanProduct'DeletedProduct (DeletedProduct -> PlanProduct'Variants)
-> Result DeletedProduct -> Result PlanProduct'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result DeletedProduct
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result PlanProduct'Variants
-> Result PlanProduct'Variants -> Result PlanProduct'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String -> Result PlanProduct'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched")) of
Data.Aeson.Types.Internal.Success PlanProduct'Variants
a -> PlanProduct'Variants -> Parser PlanProduct'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PlanProduct'Variants
a
Data.Aeson.Types.Internal.Error String
a -> String -> Parser PlanProduct'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a
data PlanTiersMode'
=
PlanTiersMode'Other Data.Aeson.Types.Internal.Value
|
PlanTiersMode'Typed Data.Text.Internal.Text
|
PlanTiersMode'EnumGraduated
|
PlanTiersMode'EnumVolume
deriving (Int -> PlanTiersMode' -> ShowS
[PlanTiersMode'] -> ShowS
PlanTiersMode' -> String
(Int -> PlanTiersMode' -> ShowS)
-> (PlanTiersMode' -> String)
-> ([PlanTiersMode'] -> ShowS)
-> Show PlanTiersMode'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PlanTiersMode'] -> ShowS
$cshowList :: [PlanTiersMode'] -> ShowS
show :: PlanTiersMode' -> String
$cshow :: PlanTiersMode' -> String
showsPrec :: Int -> PlanTiersMode' -> ShowS
$cshowsPrec :: Int -> PlanTiersMode' -> ShowS
GHC.Show.Show, PlanTiersMode' -> PlanTiersMode' -> Bool
(PlanTiersMode' -> PlanTiersMode' -> Bool)
-> (PlanTiersMode' -> PlanTiersMode' -> Bool) -> Eq PlanTiersMode'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PlanTiersMode' -> PlanTiersMode' -> Bool
$c/= :: PlanTiersMode' -> PlanTiersMode' -> Bool
== :: PlanTiersMode' -> PlanTiersMode' -> Bool
$c== :: PlanTiersMode' -> PlanTiersMode' -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PlanTiersMode' where
toJSON :: PlanTiersMode' -> Value
toJSON (PlanTiersMode'Other Value
val) = Value
val
toJSON (PlanTiersMode'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
toJSON (PlanTiersMode'
PlanTiersMode'EnumGraduated) = Value
"graduated"
toJSON (PlanTiersMode'
PlanTiersMode'EnumVolume) = Value
"volume"
instance Data.Aeson.Types.FromJSON.FromJSON PlanTiersMode' where
parseJSON :: Value -> Parser PlanTiersMode'
parseJSON Value
val =
PlanTiersMode' -> Parser PlanTiersMode'
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
"graduated" -> PlanTiersMode'
PlanTiersMode'EnumGraduated
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"volume" -> PlanTiersMode'
PlanTiersMode'EnumVolume
| Bool
GHC.Base.otherwise -> Value -> PlanTiersMode'
PlanTiersMode'Other Value
val
)
data PlanTransformUsage' = PlanTransformUsage'
{
PlanTransformUsage' -> Maybe Int
planTransformUsage'DivideBy :: (GHC.Maybe.Maybe GHC.Types.Int),
PlanTransformUsage' -> Maybe PlanTransformUsage'Round'
planTransformUsage'Round :: (GHC.Maybe.Maybe PlanTransformUsage'Round')
}
deriving
( Int -> PlanTransformUsage' -> ShowS
[PlanTransformUsage'] -> ShowS
PlanTransformUsage' -> String
(Int -> PlanTransformUsage' -> ShowS)
-> (PlanTransformUsage' -> String)
-> ([PlanTransformUsage'] -> ShowS)
-> Show PlanTransformUsage'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PlanTransformUsage'] -> ShowS
$cshowList :: [PlanTransformUsage'] -> ShowS
show :: PlanTransformUsage' -> String
$cshow :: PlanTransformUsage' -> String
showsPrec :: Int -> PlanTransformUsage' -> ShowS
$cshowsPrec :: Int -> PlanTransformUsage' -> ShowS
GHC.Show.Show,
PlanTransformUsage' -> PlanTransformUsage' -> Bool
(PlanTransformUsage' -> PlanTransformUsage' -> Bool)
-> (PlanTransformUsage' -> PlanTransformUsage' -> Bool)
-> Eq PlanTransformUsage'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PlanTransformUsage' -> PlanTransformUsage' -> Bool
$c/= :: PlanTransformUsage' -> PlanTransformUsage' -> Bool
== :: PlanTransformUsage' -> PlanTransformUsage' -> Bool
$c== :: PlanTransformUsage' -> PlanTransformUsage' -> Bool
GHC.Classes.Eq
)
instance Data.Aeson.Types.ToJSON.ToJSON PlanTransformUsage' where
toJSON :: PlanTransformUsage' -> Value
toJSON PlanTransformUsage'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"divide_by" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PlanTransformUsage' -> Maybe Int
planTransformUsage'DivideBy PlanTransformUsage'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"round" Text -> Maybe PlanTransformUsage'Round' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PlanTransformUsage' -> Maybe PlanTransformUsage'Round'
planTransformUsage'Round PlanTransformUsage'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
toEncoding :: PlanTransformUsage' -> Encoding
toEncoding PlanTransformUsage'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"divide_by" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PlanTransformUsage' -> Maybe Int
planTransformUsage'DivideBy PlanTransformUsage'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"round" Text -> Maybe PlanTransformUsage'Round' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PlanTransformUsage' -> Maybe PlanTransformUsage'Round'
planTransformUsage'Round PlanTransformUsage'
obj))
instance Data.Aeson.Types.FromJSON.FromJSON PlanTransformUsage' where
parseJSON :: Value -> Parser PlanTransformUsage'
parseJSON = String
-> (Object -> Parser PlanTransformUsage')
-> Value
-> Parser PlanTransformUsage'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PlanTransformUsage'" (\Object
obj -> ((Maybe Int
-> Maybe PlanTransformUsage'Round' -> PlanTransformUsage')
-> Parser
(Maybe Int
-> Maybe PlanTransformUsage'Round' -> PlanTransformUsage')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int -> Maybe PlanTransformUsage'Round' -> PlanTransformUsage'
PlanTransformUsage' Parser
(Maybe Int
-> Maybe PlanTransformUsage'Round' -> PlanTransformUsage')
-> Parser (Maybe Int)
-> Parser (Maybe PlanTransformUsage'Round' -> PlanTransformUsage')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"divide_by")) Parser (Maybe PlanTransformUsage'Round' -> PlanTransformUsage')
-> Parser (Maybe PlanTransformUsage'Round')
-> Parser PlanTransformUsage'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe PlanTransformUsage'Round')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"round"))
mkPlanTransformUsage' :: PlanTransformUsage'
mkPlanTransformUsage' :: PlanTransformUsage'
mkPlanTransformUsage' =
PlanTransformUsage' :: Maybe Int -> Maybe PlanTransformUsage'Round' -> PlanTransformUsage'
PlanTransformUsage'
{ planTransformUsage'DivideBy :: Maybe Int
planTransformUsage'DivideBy = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
planTransformUsage'Round :: Maybe PlanTransformUsage'Round'
planTransformUsage'Round = Maybe PlanTransformUsage'Round'
forall a. Maybe a
GHC.Maybe.Nothing
}
data PlanTransformUsage'Round'
=
PlanTransformUsage'Round'Other Data.Aeson.Types.Internal.Value
|
PlanTransformUsage'Round'Typed Data.Text.Internal.Text
|
PlanTransformUsage'Round'EnumDown
|
PlanTransformUsage'Round'EnumUp
deriving (Int -> PlanTransformUsage'Round' -> ShowS
[PlanTransformUsage'Round'] -> ShowS
PlanTransformUsage'Round' -> String
(Int -> PlanTransformUsage'Round' -> ShowS)
-> (PlanTransformUsage'Round' -> String)
-> ([PlanTransformUsage'Round'] -> ShowS)
-> Show PlanTransformUsage'Round'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PlanTransformUsage'Round'] -> ShowS
$cshowList :: [PlanTransformUsage'Round'] -> ShowS
show :: PlanTransformUsage'Round' -> String
$cshow :: PlanTransformUsage'Round' -> String
showsPrec :: Int -> PlanTransformUsage'Round' -> ShowS
$cshowsPrec :: Int -> PlanTransformUsage'Round' -> ShowS
GHC.Show.Show, PlanTransformUsage'Round' -> PlanTransformUsage'Round' -> Bool
(PlanTransformUsage'Round' -> PlanTransformUsage'Round' -> Bool)
-> (PlanTransformUsage'Round' -> PlanTransformUsage'Round' -> Bool)
-> Eq PlanTransformUsage'Round'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PlanTransformUsage'Round' -> PlanTransformUsage'Round' -> Bool
$c/= :: PlanTransformUsage'Round' -> PlanTransformUsage'Round' -> Bool
== :: PlanTransformUsage'Round' -> PlanTransformUsage'Round' -> Bool
$c== :: PlanTransformUsage'Round' -> PlanTransformUsage'Round' -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PlanTransformUsage'Round' where
toJSON :: PlanTransformUsage'Round' -> Value
toJSON (PlanTransformUsage'Round'Other Value
val) = Value
val
toJSON (PlanTransformUsage'Round'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
toJSON (PlanTransformUsage'Round'
PlanTransformUsage'Round'EnumDown) = Value
"down"
toJSON (PlanTransformUsage'Round'
PlanTransformUsage'Round'EnumUp) = Value
"up"
instance Data.Aeson.Types.FromJSON.FromJSON PlanTransformUsage'Round' where
parseJSON :: Value -> Parser PlanTransformUsage'Round'
parseJSON Value
val =
PlanTransformUsage'Round' -> Parser PlanTransformUsage'Round'
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
"down" -> PlanTransformUsage'Round'
PlanTransformUsage'Round'EnumDown
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"up" -> PlanTransformUsage'Round'
PlanTransformUsage'Round'EnumUp
| Bool
GHC.Base.otherwise -> Value -> PlanTransformUsage'Round'
PlanTransformUsage'Round'Other Value
val
)
data PlanUsageType'
=
PlanUsageType'Other Data.Aeson.Types.Internal.Value
|
PlanUsageType'Typed Data.Text.Internal.Text
|
PlanUsageType'EnumLicensed
|
PlanUsageType'EnumMetered
deriving (Int -> PlanUsageType' -> ShowS
[PlanUsageType'] -> ShowS
PlanUsageType' -> String
(Int -> PlanUsageType' -> ShowS)
-> (PlanUsageType' -> String)
-> ([PlanUsageType'] -> ShowS)
-> Show PlanUsageType'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PlanUsageType'] -> ShowS
$cshowList :: [PlanUsageType'] -> ShowS
show :: PlanUsageType' -> String
$cshow :: PlanUsageType' -> String
showsPrec :: Int -> PlanUsageType' -> ShowS
$cshowsPrec :: Int -> PlanUsageType' -> ShowS
GHC.Show.Show, PlanUsageType' -> PlanUsageType' -> Bool
(PlanUsageType' -> PlanUsageType' -> Bool)
-> (PlanUsageType' -> PlanUsageType' -> Bool) -> Eq PlanUsageType'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PlanUsageType' -> PlanUsageType' -> Bool
$c/= :: PlanUsageType' -> PlanUsageType' -> Bool
== :: PlanUsageType' -> PlanUsageType' -> Bool
$c== :: PlanUsageType' -> PlanUsageType' -> Bool
GHC.Classes.Eq)
instance Data.Aeson.Types.ToJSON.ToJSON PlanUsageType' where
toJSON :: PlanUsageType' -> Value
toJSON (PlanUsageType'Other Value
val) = Value
val
toJSON (PlanUsageType'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
toJSON (PlanUsageType'
PlanUsageType'EnumLicensed) = Value
"licensed"
toJSON (PlanUsageType'
PlanUsageType'EnumMetered) = Value
"metered"
instance Data.Aeson.Types.FromJSON.FromJSON PlanUsageType' where
parseJSON :: Value -> Parser PlanUsageType'
parseJSON Value
val =
PlanUsageType' -> Parser PlanUsageType'
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
"licensed" -> PlanUsageType'
PlanUsageType'EnumLicensed
| Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"metered" -> PlanUsageType'
PlanUsageType'EnumMetered
| Bool
GHC.Base.otherwise -> Value -> PlanUsageType'
PlanUsageType'Other Value
val
)