module Paddle.Client.CreateModifier where import Data.Aeson (ToJSON, toJSON, genericToJSON) import Protolude import Prelude () import Paddle.Amount (Amount) import Paddle.FieldModifier (customJSONOptions) data CreateModifier = CreateModifier { CreateModifier -> Int vendorId :: Int , CreateModifier -> Text vendorAuthCode :: Text , CreateModifier -> Text subscriptionId :: Text , CreateModifier -> Bool modifierRecurring :: Bool , CreateModifier -> Amount modifierAmount :: Amount , CreateModifier -> Maybe Text modifierDescription :: Maybe Text } deriving (Int -> CreateModifier -> ShowS [CreateModifier] -> ShowS CreateModifier -> String (Int -> CreateModifier -> ShowS) -> (CreateModifier -> String) -> ([CreateModifier] -> ShowS) -> Show CreateModifier forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CreateModifier] -> ShowS $cshowList :: [CreateModifier] -> ShowS show :: CreateModifier -> String $cshow :: CreateModifier -> String showsPrec :: Int -> CreateModifier -> ShowS $cshowsPrec :: Int -> CreateModifier -> ShowS Show, (forall x. CreateModifier -> Rep CreateModifier x) -> (forall x. Rep CreateModifier x -> CreateModifier) -> Generic CreateModifier forall x. Rep CreateModifier x -> CreateModifier forall x. CreateModifier -> Rep CreateModifier x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep CreateModifier x -> CreateModifier $cfrom :: forall x. CreateModifier -> Rep CreateModifier x Generic) instance ToJSON CreateModifier where toJSON :: CreateModifier -> Value toJSON = Options -> CreateModifier -> Value forall a. (Generic a, GToJSON' Value Zero (Rep a)) => Options -> a -> Value genericToJSON Options customJSONOptions