module Paddle.Client.GeneratePayLinkResponse where

import Data.Aeson (FromJSON, parseJSON, genericParseJSON)
import Protolude
import Prelude ()
import Paddle.FieldModifier (customJSONOptions)

data GeneratePayLinkResponse = GeneratePayLinkResponse
  { GeneratePayLinkResponse -> Text
url :: Text
  } deriving (Int -> GeneratePayLinkResponse -> ShowS
[GeneratePayLinkResponse] -> ShowS
GeneratePayLinkResponse -> String
(Int -> GeneratePayLinkResponse -> ShowS)
-> (GeneratePayLinkResponse -> String)
-> ([GeneratePayLinkResponse] -> ShowS)
-> Show GeneratePayLinkResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GeneratePayLinkResponse] -> ShowS
$cshowList :: [GeneratePayLinkResponse] -> ShowS
show :: GeneratePayLinkResponse -> String
$cshow :: GeneratePayLinkResponse -> String
showsPrec :: Int -> GeneratePayLinkResponse -> ShowS
$cshowsPrec :: Int -> GeneratePayLinkResponse -> ShowS
Show, (forall x.
 GeneratePayLinkResponse -> Rep GeneratePayLinkResponse x)
-> (forall x.
    Rep GeneratePayLinkResponse x -> GeneratePayLinkResponse)
-> Generic GeneratePayLinkResponse
forall x. Rep GeneratePayLinkResponse x -> GeneratePayLinkResponse
forall x. GeneratePayLinkResponse -> Rep GeneratePayLinkResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GeneratePayLinkResponse x -> GeneratePayLinkResponse
$cfrom :: forall x. GeneratePayLinkResponse -> Rep GeneratePayLinkResponse x
Generic)

instance FromJSON GeneratePayLinkResponse where
  parseJSON :: Value -> Parser GeneratePayLinkResponse
parseJSON = Options -> Value -> Parser GeneratePayLinkResponse
forall a.
(Generic a, GFromJSON Zero (Rep a)) =>
Options -> Value -> Parser a
genericParseJSON Options
customJSONOptions