proto3-suite-0.5.1: A higher-level API to the proto3-wire library
Safe HaskellNone
LanguageHaskell2010

Proto3.Suite.JSONPB

Synopsis

Typeclasses

class FromJSONPB a where Source #

FromJSON variant for JSONPB decoding from the Value IR

Methods

parseJSONPB :: Value -> Parser a Source #

parseJSON variant for JSONPB decoders.

Instances

Instances details
FromJSONPB Bool Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB Double Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB Float Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB Int32 Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB Int64 Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB Word32 Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB Word64 Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB ByteString Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB Value Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB Text Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB Timestamp Source # 
Instance details

Defined in Google.Protobuf.Timestamp

FromJSONPB a => FromJSONPB (Maybe a) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB a => FromJSONPB (Vector a) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

(ProtoEnum e, FromJSONPB e) => FromJSONPB (Enumerated e) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB (Fixed Int32) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB (Fixed Int64) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB (Fixed Word32) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB (Fixed Word64) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

(Ord k, FromJSONKey k, FromJSONPB k, FromJSONPB v) => FromJSONPB (Map k v) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

Methods

parseJSONPB :: Value -> Parser (Map k v) Source #

class ToJSONPB a where Source #

ToJSON variant for JSONPB direct encoding via Encoding

Minimal complete definition

toJSONPB

Methods

toJSONPB :: a -> Options -> Value Source #

toJSON variant for JSONPB encoders.

toEncodingPB :: a -> Options -> Encoding Source #

toEncoding variant for JSONPB encoders. If an implementation is not provided, uses toJSONPB (which is less efficient since it indirects through the Value IR).

Instances

Instances details
ToJSONPB Bool Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB Double Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB Float Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB Int32 Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB Int64 Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB Word32 Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB Word64 Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB ByteString Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB Encoding Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB Value Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB Text Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB Timestamp Source # 
Instance details

Defined in Google.Protobuf.Timestamp

ToJSONPB a => ToJSONPB (Maybe a) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB a => ToJSONPB (Vector a) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB e => ToJSONPB (Enumerated e) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB (Fixed Int32) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB (Fixed Int64) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB (Fixed Word32) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB (Fixed Word64) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

(ToJSONKey k, ToJSONPB k, ToJSONPB v) => ToJSONPB (Map k v) Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

Operators

(.:) :: (FromJSONPB a, HasDefault a) => Object -> Text -> Parser a Source #

.: variant for JSONPB; if the given key is missing from the object, or if it is present but its value is null, we produce the default protobuf value for the field type

(.=) :: (HasDefault v, ToJSONPB v, KeyValuePB kvp) => Text -> v -> Options -> kvp Source #

Construct a monoidal key-value pair, using mempty to represent omission of default values (unless the given Options force their emission).

Options for controlling codec behavior (e.g., emitting default-valued

data Options Source #

Constructors

Options 

Fields

  • optEmitDefaultValuedFields :: Bool
     
  • optEmitNamedOneof :: Bool

    For compatibility with the Go JSONPB implementation.

    If False, the following message

    message MyMessage {
      oneof animal {
        Cat cat = 1;
        Dog dog = 2;
      }
    }

    will be serialized as

    MyMessage (Animal (Cat "Simba")) => { "cat": "Simba" }

    instead of

    MyMessage (Animal (Cat "Simba")) => { "animal": { "cat": "Simba" } }

Instances

Instances details
Eq Options Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

Methods

(==) :: Options -> Options -> Bool #

(/=) :: Options -> Options -> Bool #

Show Options Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

Generic Options Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

Associated Types

type Rep Options :: Type -> Type #

Methods

from :: Options -> Rep Options x #

to :: Rep Options x -> Options #

Arbitrary Options Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

type Rep Options Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

type Rep Options = D1 ('MetaData "Options" "Proto3.Suite.JSONPB.Class" "proto3-suite-0.5.1-KgIMs0pOzZ0CPM0GxpZWzf" 'False) (C1 ('MetaCons "Options" 'PrefixI 'True) (S1 ('MetaSel ('Just "optEmitDefaultValuedFields") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "optEmitNamedOneof") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))

defaultOptions :: Options Source #

Default options for JSON encoding. By default, all options are True.

jsonPBOptions :: Options Source #

Options for JSONPB encoding.

JSONPB codec entry points

eitherDecode :: FromJSONPB a => ByteString -> Either String a Source #

eitherDecode variant for deserializing a JSONPB value from a lazy ByteString.

encode :: ToJSONPB a => Options -> a -> ByteString Source #

encode variant for serializing a JSONPB value as a lazy ByteString.

Helper functions

enumFieldEncoding :: forall a. (Named a, Show a) => a -> Encoding Source #

enumFieldString :: forall a. (Named a, Show a) => a -> Value Source #

objectOrNull :: [Options -> [Pair]] -> Options -> Value Source #

As object, but produces Null when there are no pairs to wrap (cf. the empty object result of 'object)

>>> object [const []] defaultOptions
Object (fromList [])
>>> objectOrNull [const []] defaultOptions
Null

pair :: (KeyValuePB m, ToJSONPB v) => Text -> v -> Options -> m Source #

pairsOrNull :: [Options -> Series] -> Options -> Encoding Source #

As pairs, but produces the "null" when there is no series to encode (cf. the empty object encoding of pairs)

>>> pairs [const mempty] defaultOptions
"{}"
>>> pairsOrNull [const mempty] defaultOptions
"null"

toAesonEncoding :: ToJSONPB a => a -> Encoding Source #

A direct Encoding for values which can be JSONPB-encoded.

toAesonValue :: ToJSONPB a => a -> Value Source #

A Aeson Value encoder for values which can be JSONPB-encoded.

Aeson re-exports

data Value #

A JSON value represented as a Haskell value.

Instances

Instances details
Eq Value 
Instance details

Defined in Data.Aeson.Types.Internal

Methods

(==) :: Value -> Value -> Bool #

(/=) :: Value -> Value -> Bool #

Data Value 
Instance details

Defined in Data.Aeson.Types.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Value -> c Value #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Value #

toConstr :: Value -> Constr #

dataTypeOf :: Value -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Value) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Value) #

gmapT :: (forall b. Data b => b -> b) -> Value -> Value #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Value -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Value -> r #

gmapQ :: (forall d. Data d => d -> u) -> Value -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Value -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Value -> m Value #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Value -> m Value #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Value -> m Value #

Ord Value

The ordering is total, consistent with Eq instance. However, nothing else about the ordering is specified, and it may change from environment to environment and version to version of either this package or its dependencies (hashable and 'unordered-containers').

Since: aeson-1.5.2.0

Instance details

Defined in Data.Aeson.Types.Internal

Methods

compare :: Value -> Value -> Ordering #

(<) :: Value -> Value -> Bool #

(<=) :: Value -> Value -> Bool #

(>) :: Value -> Value -> Bool #

(>=) :: Value -> Value -> Bool #

max :: Value -> Value -> Value #

min :: Value -> Value -> Value #

Read Value 
Instance details

Defined in Data.Aeson.Types.Internal

Show Value

Since version 1.5.6.0 version object values are printed in lexicographic key order

>>> toJSON $ H.fromList [("a", True), ("z", False)]
Object (fromList [("a",Bool True),("z",Bool False)])
>>> toJSON $ H.fromList [("z", False), ("a", True)]
Object (fromList [("a",Bool True),("z",Bool False)])
Instance details

Defined in Data.Aeson.Types.Internal

Methods

showsPrec :: Int -> Value -> ShowS #

show :: Value -> String #

showList :: [Value] -> ShowS #

IsString Value 
Instance details

Defined in Data.Aeson.Types.Internal

Methods

fromString :: String -> Value #

Generic Value 
Instance details

Defined in Data.Aeson.Types.Internal

Associated Types

type Rep Value :: Type -> Type #

Methods

from :: Value -> Rep Value x #

to :: Rep Value x -> Value #

Function Value

Since: aeson-2.0.3.0

Instance details

Defined in Data.Aeson.Types.Internal

Methods

function :: (Value -> b) -> Value :-> b #

Arbitrary Value

Since: aeson-2.0.3.0

Instance details

Defined in Data.Aeson.Types.Internal

Methods

arbitrary :: Gen Value #

shrink :: Value -> [Value] #

CoArbitrary Value

Since: aeson-2.0.3.0

Instance details

Defined in Data.Aeson.Types.Internal

Methods

coarbitrary :: Value -> Gen b -> Gen b #

Hashable Value 
Instance details

Defined in Data.Aeson.Types.Internal

Methods

hashWithSalt :: Int -> Value -> Int #

hash :: Value -> Int #

ToJSON Value 
Instance details

Defined in Data.Aeson.Types.ToJSON

KeyValue Object

Constructs a singleton KeyMap. For calling functions that demand an Object for constructing objects. To be used in conjunction with mconcat. Prefer to use object where possible.

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

(.=) :: ToJSON v => Key -> v -> Object #

KeyValue Pair 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

(.=) :: ToJSON v => Key -> v -> Pair #

FromJSON Value 
Instance details

Defined in Data.Aeson.Types.FromJSON

NFData Value 
Instance details

Defined in Data.Aeson.Types.Internal

Methods

rnf :: Value -> () #

ToSchema Object 
Instance details

Defined in Data.Swagger.Internal.Schema

HasDefault Encoding Source #
>>> isDefault (def @E.Encoding)
True
Instance details

Defined in Proto3.Suite.JSONPB.Class

HasDefault Value Source #
>>> isDefault (def @A.Value)
True
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromJSONPB Value Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB Encoding Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

ToJSONPB Value Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

FromString Encoding 
Instance details

Defined in Data.Aeson.Types.ToJSON

FromString Value 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

fromString :: String -> Value

Lift Value

Since: aeson-0.11.0.0

Instance details

Defined in Data.Aeson.Types.Internal

Methods

lift :: Value -> Q Exp #

liftTyped :: Value -> Q (TExp Value) #

GToJSON' Encoding arity (U1 :: Type -> Type) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Encoding arity a -> U1 a -> Encoding

GToJSON' Value arity (V1 :: Type -> Type) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Value arity a -> V1 a -> Value

GToJSON' Value arity (U1 :: Type -> Type) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Value arity a -> U1 a -> Value

ToJSON1 f => GToJSON' Encoding One (Rec1 f) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Encoding One a -> Rec1 f a -> Encoding

ToJSON1 f => GToJSON' Value One (Rec1 f) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Value One a -> Rec1 f a -> Value

ToJSON a => GToJSON' Encoding arity (K1 i a :: Type -> Type) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Encoding arity a0 -> K1 i a a0 -> Encoding

(EncodeProduct arity a, EncodeProduct arity b) => GToJSON' Encoding arity (a :*: b) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Encoding arity a0 -> (a :*: b) a0 -> Encoding

ToJSON a => GToJSON' Value arity (K1 i a :: Type -> Type) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Value arity a0 -> K1 i a a0 -> Value

(WriteProduct arity a, WriteProduct arity b, ProductSize a, ProductSize b) => GToJSON' Value arity (a :*: b) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Value arity a0 -> (a :*: b) a0 -> Value

(ToJSON1 f, GToJSON' Encoding One g) => GToJSON' Encoding One (f :.: g) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Encoding One a -> (f :.: g) a -> Encoding

(ToJSON1 f, GToJSON' Value One g) => GToJSON' Value One (f :.: g) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Value One a -> (f :.: g) a -> Value

FromPairs Value (DList Pair) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

fromPairs :: DList Pair -> Value

v ~ Value => KeyValuePair v (DList Pair) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

pair :: Key -> v -> DList Pair

HasDefault ParamOtherSchema (Maybe Value) 
Instance details

Defined in Data.Swagger.Lens

HasDefault Schema (Maybe Value) 
Instance details

Defined in Data.Swagger.Lens

HasDefault Header (Maybe Value) 
Instance details

Defined in Data.Swagger.Lens

HasParamSchema s (ParamSchema t) => HasEnum s (Maybe [Value]) 
Instance details

Defined in Data.Swagger.Lens

Methods

enum_ :: Lens' s (Maybe [Value]) #

HasExample Schema (Maybe Value) 
Instance details

Defined in Data.Swagger.Lens

KeyValuePB [Pair] Source # 
Instance details

Defined in Proto3.Suite.JSONPB.Class

Methods

pair :: ToJSONPB v => Text -> v -> Options -> [Pair] Source #

(GToJSON' Encoding arity a, ConsToJSON Encoding arity a, Constructor c) => SumToJSON' TwoElemArray Encoding arity (C1 c a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

sumToJSON' :: Options -> ToArgs Encoding arity a0 -> C1 c a a0 -> Tagged TwoElemArray Encoding

(GToJSON' Value arity a, ConsToJSON Value arity a, Constructor c) => SumToJSON' TwoElemArray Value arity (C1 c a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

sumToJSON' :: Options -> ToArgs Value arity a0 -> C1 c a a0 -> Tagged TwoElemArray Value

HasDefault (ParamSchema t) (Maybe Value) 
Instance details

Defined in Data.Swagger.Lens

HasEnum (ParamSchema t) (Maybe [Value]) 
Instance details

Defined in Data.Swagger.Lens

Methods

enum_ :: Lens' (ParamSchema t) (Maybe [Value]) #

type Rep Value 
Instance details

Defined in Data.Aeson.Types.Internal

class ToJSON a where #

A type that can be converted to JSON.

Instances in general must specify toJSON and should (but don't need to) specify toEncoding.

An example type and instance:

-- Allow ourselves to write Text literals.
{-# LANGUAGE OverloadedStrings #-}

data Coord = Coord { x :: Double, y :: Double }

instance ToJSON Coord where
  toJSON (Coord x y) = object ["x" .= x, "y" .= y]

  toEncoding (Coord x y) = pairs ("x" .= x <> "y" .= y)

Instead of manually writing your ToJSON instance, there are two options to do it automatically:

  • Data.Aeson.TH provides Template Haskell functions which will derive an instance at compile time. The generated instance is optimized for your type so it will probably be more efficient than the following option.
  • The compiler can provide a default generic implementation for toJSON.

To use the second, simply add a deriving Generic clause to your datatype and declare a ToJSON instance. If you require nothing other than defaultOptions, it is sufficient to write (and this is the only alternative where the default toJSON implementation is sufficient):

{-# LANGUAGE DeriveGeneric #-}

import GHC.Generics

data Coord = Coord { x :: Double, y :: Double } deriving Generic

instance ToJSON Coord where
    toEncoding = genericToEncoding defaultOptions

If on the other hand you wish to customize the generic decoding, you have to implement both methods:

customOptions = defaultOptions
                { fieldLabelModifier = map toUpper
                }

instance ToJSON Coord where
    toJSON     = genericToJSON customOptions
    toEncoding = genericToEncoding customOptions

Previous versions of this library only had the toJSON method. Adding toEncoding had two reasons:

  1. toEncoding is more efficient for the common case that the output of toJSON is directly serialized to a ByteString. Further, expressing either method in terms of the other would be non-optimal.
  2. The choice of defaults allows a smooth transition for existing users: Existing instances that do not define toEncoding still compile and have the correct semantics. This is ensured by making the default implementation of toEncoding use toJSON. This produces correct results, but since it performs an intermediate conversion to a Value, it will be less efficient than directly emitting an Encoding. (this also means that specifying nothing more than instance ToJSON Coord would be sufficient as a generically decoding instance, but there probably exists no good reason to not specify toEncoding in new instances.)

Minimal complete definition

Nothing

Methods

toJSON :: a -> Value #

Convert a Haskell value to a JSON-friendly intermediate type.

toEncoding :: a -> Encoding #

Encode a Haskell value as JSON.

The default implementation of this method creates an intermediate Value using toJSON. This provides source-level compatibility for people upgrading from older versions of this library, but obviously offers no performance advantage.

To benefit from direct encoding, you must provide an implementation for this method. The easiest way to do so is by having your types implement Generic using the DeriveGeneric extension, and then have GHC generate a method body as follows.

instance ToJSON Coord where
    toEncoding = genericToEncoding defaultOptions

toJSONList :: [a] -> Value #

toEncodingList :: [a] -> Encoding #

Instances

Instances details
ToJSON Bool 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Char 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Double 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Float 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Int 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Int8 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Int16 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Int32 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Int64 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Integer 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Natural 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Ordering 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Word 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Word8 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Word16 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Word32 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Word64 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON () 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: () -> Value #

toEncoding :: () -> Encoding #

toJSONList :: [()] -> Value #

toEncodingList :: [()] -> Encoding #

ToJSON Version 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Scientific 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON UTCTime 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Text 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Value 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON DotNetTime 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Key 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Text 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Number 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Void 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON CTime 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON IntSet 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Swagger 
Instance details

Defined in Data.Swagger.Internal

ToJSON Info 
Instance details

Defined in Data.Swagger.Internal

ToJSON Contact 
Instance details

Defined in Data.Swagger.Internal

ToJSON License 
Instance details

Defined in Data.Swagger.Internal

ToJSON Host 
Instance details

Defined in Data.Swagger.Internal

ToJSON Scheme 
Instance details

Defined in Data.Swagger.Internal

ToJSON PathItem 
Instance details

Defined in Data.Swagger.Internal

ToJSON Operation 
Instance details

Defined in Data.Swagger.Internal

ToJSON MimeList 
Instance details

Defined in Data.Swagger.Internal

ToJSON Param 
Instance details

Defined in Data.Swagger.Internal

ToJSON ParamAnySchema 
Instance details

Defined in Data.Swagger.Internal

ToJSON ParamOtherSchema 
Instance details

Defined in Data.Swagger.Internal

ToJSON ParamLocation 
Instance details

Defined in Data.Swagger.Internal

ToJSON Schema 
Instance details

Defined in Data.Swagger.Internal

ToJSON Xml 
Instance details

Defined in Data.Swagger.Internal

ToJSON Responses 
Instance details

Defined in Data.Swagger.Internal

ToJSON Response 
Instance details

Defined in Data.Swagger.Internal

ToJSON Header 
Instance details

Defined in Data.Swagger.Internal

ToJSON Example 
Instance details

Defined in Data.Swagger.Internal

ToJSON ApiKeyLocation 
Instance details

Defined in Data.Swagger.Internal

ToJSON ApiKeyParams 
Instance details

Defined in Data.Swagger.Internal

ToJSON OAuth2Flow 
Instance details

Defined in Data.Swagger.Internal

ToJSON OAuth2Params 
Instance details

Defined in Data.Swagger.Internal

ToJSON SecuritySchemeType 
Instance details

Defined in Data.Swagger.Internal

ToJSON SecurityScheme 
Instance details

Defined in Data.Swagger.Internal

ToJSON SecurityDefinitions 
Instance details

Defined in Data.Swagger.Internal

ToJSON SecurityRequirement 
Instance details

Defined in Data.Swagger.Internal

ToJSON Tag 
Instance details

Defined in Data.Swagger.Internal

ToJSON ExternalDocs 
Instance details

Defined in Data.Swagger.Internal

ToJSON Reference 
Instance details

Defined in Data.Swagger.Internal

ToJSON URL 
Instance details

Defined in Data.Swagger.Internal

ToJSON AdditionalProperties 
Instance details

Defined in Data.Swagger.Internal

ToJSON ShortText

Since: aeson-2.0.2.0

Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON ZonedTime 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON LocalTime 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON TimeOfDay 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON CalendarDiffTime 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON SystemTime

Encoded as number

Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON NominalDiffTime 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON DiffTime 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON DayOfWeek 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Day 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON CalendarDiffDays 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON QuarterOfYear 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Quarter 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Month 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON UUID 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Timestamp Source # 
Instance details

Defined in Google.Protobuf.Timestamp

ToJSON a => ToJSON [a] 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: [a] -> Value #

toEncoding :: [a] -> Encoding #

toJSONList :: [[a]] -> Value #

toEncodingList :: [[a]] -> Encoding #

ToJSON a => ToJSON (Maybe a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

(ToJSON a, Integral a) => ToJSON (Ratio a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Solo a)

Since: aeson-2.0.2.0

Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON v => ToJSON (KeyMap v) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Min a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Min a -> Value #

toEncoding :: Min a -> Encoding #

toJSONList :: [Min a] -> Value #

toEncodingList :: [Min a] -> Encoding #

ToJSON a => ToJSON (Max a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Max a -> Value #

toEncoding :: Max a -> Encoding #

toJSONList :: [Max a] -> Value #

toEncodingList :: [Max a] -> Encoding #

ToJSON a => ToJSON (First a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Last a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (WrappedMonoid a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Option a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Identity a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (First a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Last a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Dual a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (NonEmpty a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (IntMap a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON v => ToJSON (Tree v) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Seq a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Seq a -> Value #

toEncoding :: Seq a -> Encoding #

toJSONList :: [Seq a] -> Value #

toEncodingList :: [Seq a] -> Encoding #

ToJSON a => ToJSON (Set a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Set a -> Value #

toEncoding :: Set a -> Encoding #

toJSONList :: [Set a] -> Value #

toEncodingList :: [Set a] -> Encoding #

ToJSON1 f => ToJSON (Fix f)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Fix f -> Value #

toEncoding :: Fix f -> Encoding #

toJSONList :: [Fix f] -> Value #

toEncodingList :: [Fix f] -> Encoding #

(ToJSON1 f, Functor f) => ToJSON (Mu f)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Mu f -> Value #

toEncoding :: Mu f -> Encoding #

toJSONList :: [Mu f] -> Value #

toEncodingList :: [Mu f] -> Encoding #

(ToJSON1 f, Functor f) => ToJSON (Nu f)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Nu f -> Value #

toEncoding :: Nu f -> Encoding #

toJSONList :: [Nu f] -> Value #

toEncodingList :: [Nu f] -> Encoding #

ToJSON a => ToJSON (DNonEmpty a)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (DList a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (HashSet a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (InsOrdHashSet a) 
Instance details

Defined in Data.HashSet.InsOrd

(Prim a, ToJSON a) => ToJSON (Vector a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

(Storable a, ToJSON a) => ToJSON (Vector a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

(Vector Vector a, ToJSON a) => ToJSON (Vector a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Vector a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

(Prim a, ToJSON a) => ToJSON (PrimArray a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (SmallArray a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Array a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Maybe a)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON (ParamSchema t) => ToJSON (SwaggerItems t)

As for nullary schema for 0-arity type constructors, see https://github.com/GetShopTV/swagger2/issues/167.

>>> encode (SwaggerItemsArray [])
"{\"example\":[],\"items\":{},\"maxItems\":0}"
Instance details

Defined in Data.Swagger.Internal

ToJSON (SwaggerType t) 
Instance details

Defined in Data.Swagger.Internal

ToJSON (CollectionFormat t) 
Instance details

Defined in Data.Swagger.Internal

ToJSON (ParamSchema k) 
Instance details

Defined in Data.Swagger.Internal

ToJSON (Referenced Param) 
Instance details

Defined in Data.Swagger.Internal

ToJSON (Referenced Schema) 
Instance details

Defined in Data.Swagger.Internal

ToJSON (Referenced Response) 
Instance details

Defined in Data.Swagger.Internal

(ToJSON a, ToJSON b) => ToJSON (Either a b) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Either a b -> Value #

toEncoding :: Either a b -> Encoding #

toJSONList :: [Either a b] -> Value #

toEncodingList :: [Either a b] -> Encoding #

(ToJSON a, ToJSON b) => ToJSON (a, b) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b) -> Value #

toEncoding :: (a, b) -> Encoding #

toJSONList :: [(a, b)] -> Value #

toEncodingList :: [(a, b)] -> Encoding #

(ToJSON v, ToJSONKey k) => ToJSON (Map k v) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Map k v -> Value #

toEncoding :: Map k v -> Encoding #

toJSONList :: [Map k v] -> Value #

toEncodingList :: [Map k v] -> Encoding #

(ToJSON v, ToJSONKey k) => ToJSON (HashMap k v) 
Instance details

Defined in Data.Aeson.Types.ToJSON

HasResolution a => ToJSON (Fixed a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON (Proxy a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

(ToJSONKey k, ToJSON v) => ToJSON (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

(ToJSON a, ToJSON b) => ToJSON (These a b)

Since: aeson-1.5.1.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: These a b -> Value #

toEncoding :: These a b -> Encoding #

toJSONList :: [These a b] -> Value #

toEncodingList :: [These a b] -> Encoding #

(ToJSON a, ToJSON b) => ToJSON (Pair a b)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Pair a b -> Value #

toEncoding :: Pair a b -> Encoding #

toJSONList :: [Pair a b] -> Value #

toEncodingList :: [Pair a b] -> Encoding #

(ToJSON a, ToJSON b) => ToJSON (These a b)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: These a b -> Value #

toEncoding :: These a b -> Encoding #

toJSONList :: [These a b] -> Value #

toEncodingList :: [These a b] -> Encoding #

(ToJSON a, ToJSON b) => ToJSON (Either a b)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Either a b -> Value #

toEncoding :: Either a b -> Encoding #

toJSONList :: [Either a b] -> Value #

toEncodingList :: [Either a b] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c) => ToJSON (a, b, c) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c) -> Value #

toEncoding :: (a, b, c) -> Encoding #

toJSONList :: [(a, b, c)] -> Value #

toEncodingList :: [(a, b, c)] -> Encoding #

ToJSON a => ToJSON (Const a b) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Const a b -> Value #

toEncoding :: Const a b -> Encoding #

toJSONList :: [Const a b] -> Value #

toEncodingList :: [Const a b] -> Encoding #

ToJSON b => ToJSON (Tagged a b) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Tagged a b -> Value #

toEncoding :: Tagged a b -> Encoding #

toJSONList :: [Tagged a b] -> Value #

toEncodingList :: [Tagged a b] -> Encoding #

(ToJSON1 f, ToJSON1 g, ToJSON a) => ToJSON (These1 f g a)

Since: aeson-1.5.1.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: These1 f g a -> Value #

toEncoding :: These1 f g a -> Encoding #

toJSONList :: [These1 f g a] -> Value #

toEncodingList :: [These1 f g a] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d) => ToJSON (a, b, c, d) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d) -> Value #

toEncoding :: (a, b, c, d) -> Encoding #

toJSONList :: [(a, b, c, d)] -> Value #

toEncodingList :: [(a, b, c, d)] -> Encoding #

(ToJSON1 f, ToJSON1 g, ToJSON a) => ToJSON (Product f g a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Product f g a -> Value #

toEncoding :: Product f g a -> Encoding #

toJSONList :: [Product f g a] -> Value #

toEncodingList :: [Product f g a] -> Encoding #

(ToJSON1 f, ToJSON1 g, ToJSON a) => ToJSON (Sum f g a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Sum f g a -> Value #

toEncoding :: Sum f g a -> Encoding #

toJSONList :: [Sum f g a] -> Value #

toEncodingList :: [Sum f g a] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e) => ToJSON (a, b, c, d, e) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e) -> Value #

toEncoding :: (a, b, c, d, e) -> Encoding #

toJSONList :: [(a, b, c, d, e)] -> Value #

toEncodingList :: [(a, b, c, d, e)] -> Encoding #

(ToJSON1 f, ToJSON1 g, ToJSON a) => ToJSON (Compose f g a) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Compose f g a -> Value #

toEncoding :: Compose f g a -> Encoding #

toJSONList :: [Compose f g a] -> Value #

toEncodingList :: [Compose f g a] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f) => ToJSON (a, b, c, d, e, f) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f) -> Value #

toEncoding :: (a, b, c, d, e, f) -> Encoding #

toJSONList :: [(a, b, c, d, e, f)] -> Value #

toEncodingList :: [(a, b, c, d, e, f)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g) => ToJSON (a, b, c, d, e, f, g) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g) -> Value #

toEncoding :: (a, b, c, d, e, f, g) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h) => ToJSON (a, b, c, d, e, f, g, h) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i) => ToJSON (a, b, c, d, e, f, g, h, i) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j) => ToJSON (a, b, c, d, e, f, g, h, i, j) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k) => ToJSON (a, b, c, d, e, f, g, h, i, j, k) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l) => ToJSON (a, b, c, d, e, f, g, h, i, j, k, l) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k, l) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k, l) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k, l)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k, l)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l, ToJSON m) => ToJSON (a, b, c, d, e, f, g, h, i, j, k, l, m) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k, l, m) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k, l, m) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l, ToJSON m, ToJSON n) => ToJSON (a, b, c, d, e, f, g, h, i, j, k, l, m, n) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n)] -> Encoding #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l, ToJSON m, ToJSON n, ToJSON o) => ToJSON (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)] -> Encoding #

class FromJSON a where #

A type that can be converted from JSON, with the possibility of failure.

In many cases, you can get the compiler to generate parsing code for you (see below). To begin, let's cover writing an instance by hand.

There are various reasons a conversion could fail. For example, an Object could be missing a required key, an Array could be of the wrong size, or a value could be of an incompatible type.

The basic ways to signal a failed conversion are as follows:

  • fail yields a custom error message: it is the recommended way of reporting a failure;
  • empty (or mzero) is uninformative: use it when the error is meant to be caught by some (<|>);
  • typeMismatch can be used to report a failure when the encountered value is not of the expected JSON type; unexpected is an appropriate alternative when more than one type may be expected, or to keep the expected type implicit.

prependFailure (or modifyFailure) add more information to a parser's error messages.

An example type and instance using typeMismatch and prependFailure:

-- Allow ourselves to write Text literals.
{-# LANGUAGE OverloadedStrings #-}

data Coord = Coord { x :: Double, y :: Double }

instance FromJSON Coord where
    parseJSON (Object v) = Coord
        <$> v .: "x"
        <*> v .: "y"

    -- We do not expect a non-Object value here.
    -- We could use empty to fail, but typeMismatch
    -- gives a much more informative error message.
    parseJSON invalid    =
        prependFailure "parsing Coord failed, "
            (typeMismatch "Object" invalid)

For this common case of only being concerned with a single type of JSON value, the functions withObject, withScientific, etc. are provided. Their use is to be preferred when possible, since they are more terse. Using withObject, we can rewrite the above instance (assuming the same language extension and data type) as:

instance FromJSON Coord where
    parseJSON = withObject "Coord" $ \v -> Coord
        <$> v .: "x"
        <*> v .: "y"

Instead of manually writing your FromJSON instance, there are two options to do it automatically:

  • Data.Aeson.TH provides Template Haskell functions which will derive an instance at compile time. The generated instance is optimized for your type so it will probably be more efficient than the following option.
  • The compiler can provide a default generic implementation for parseJSON.

To use the second, simply add a deriving Generic clause to your datatype and declare a FromJSON instance for your datatype without giving a definition for parseJSON.

For example, the previous example can be simplified to just:

{-# LANGUAGE DeriveGeneric #-}

import GHC.Generics

data Coord = Coord { x :: Double, y :: Double } deriving Generic

instance FromJSON Coord

The default implementation will be equivalent to parseJSON = genericParseJSON defaultOptions; if you need different options, you can customize the generic decoding by defining:

customOptions = defaultOptions
                { fieldLabelModifier = map toUpper
                }

instance FromJSON Coord where
    parseJSON = genericParseJSON customOptions

Minimal complete definition

Nothing

Methods

parseJSON :: Value -> Parser a #

parseJSONList :: Value -> Parser [a] #

Instances

Instances details
FromJSON Bool 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Char 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Double 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Float 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Int 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Int8 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Int16 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Int32 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Int64 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Integer

This instance includes a bounds check to prevent maliciously large inputs to fill up the memory of the target system. You can newtype Scientific and provide your own instance using withScientific if you want to allow larger inputs.

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Natural 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Ordering 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Word 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Word8 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Word16 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Word32 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Word64 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON () 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser () #

parseJSONList :: Value -> Parser [()] #

FromJSON Version 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Scientific 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON UTCTime 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Text 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Value 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON DotNetTime 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Key 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Text 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Void 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON CTime 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON IntSet 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Swagger 
Instance details

Defined in Data.Swagger.Internal

FromJSON Info 
Instance details

Defined in Data.Swagger.Internal

FromJSON Contact 
Instance details

Defined in Data.Swagger.Internal

FromJSON License 
Instance details

Defined in Data.Swagger.Internal

FromJSON Host 
Instance details

Defined in Data.Swagger.Internal

FromJSON Scheme 
Instance details

Defined in Data.Swagger.Internal

FromJSON PathItem 
Instance details

Defined in Data.Swagger.Internal

FromJSON Operation 
Instance details

Defined in Data.Swagger.Internal

FromJSON MimeList 
Instance details

Defined in Data.Swagger.Internal

FromJSON Param 
Instance details

Defined in Data.Swagger.Internal

FromJSON ParamAnySchema 
Instance details

Defined in Data.Swagger.Internal

FromJSON ParamOtherSchema 
Instance details

Defined in Data.Swagger.Internal

FromJSON ParamLocation 
Instance details

Defined in Data.Swagger.Internal

FromJSON Schema 
Instance details

Defined in Data.Swagger.Internal

FromJSON Xml 
Instance details

Defined in Data.Swagger.Internal

FromJSON Responses 
Instance details

Defined in Data.Swagger.Internal

FromJSON Response 
Instance details

Defined in Data.Swagger.Internal

FromJSON Header 
Instance details

Defined in Data.Swagger.Internal

FromJSON Example 
Instance details

Defined in Data.Swagger.Internal

FromJSON ApiKeyLocation 
Instance details

Defined in Data.Swagger.Internal

FromJSON ApiKeyParams 
Instance details

Defined in Data.Swagger.Internal

FromJSON OAuth2Flow 
Instance details

Defined in Data.Swagger.Internal

FromJSON OAuth2Params 
Instance details

Defined in Data.Swagger.Internal

FromJSON SecuritySchemeType 
Instance details

Defined in Data.Swagger.Internal

FromJSON SecurityScheme 
Instance details

Defined in Data.Swagger.Internal

FromJSON SecurityDefinitions 
Instance details

Defined in Data.Swagger.Internal

FromJSON SecurityRequirement 
Instance details

Defined in Data.Swagger.Internal

FromJSON Tag 
Instance details

Defined in Data.Swagger.Internal

FromJSON ExternalDocs 
Instance details

Defined in Data.Swagger.Internal

FromJSON Reference 
Instance details

Defined in Data.Swagger.Internal

FromJSON URL 
Instance details

Defined in Data.Swagger.Internal

FromJSON AdditionalProperties 
Instance details

Defined in Data.Swagger.Internal

FromJSON ShortText

Since: aeson-2.0.2.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON ZonedTime

Supported string formats:

YYYY-MM-DD HH:MM Z YYYY-MM-DD HH:MM:SS Z YYYY-MM-DD HH:MM:SS.SSS Z

The first space may instead be a T, and the second space is optional. The Z represents UTC. The Z may be replaced with a time zone offset of the form +0000 or -08:00, where the first two digits are hours, the : is optional and the second two digits (also optional) are minutes.

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON LocalTime 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON TimeOfDay 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON CalendarDiffTime 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON SystemTime 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON NominalDiffTime

This instance includes a bounds check to prevent maliciously large inputs to fill up the memory of the target system. You can newtype Scientific and provide your own instance using withScientific if you want to allow larger inputs.

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON DiffTime

This instance includes a bounds check to prevent maliciously large inputs to fill up the memory of the target system. You can newtype Scientific and provide your own instance using withScientific if you want to allow larger inputs.

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON DayOfWeek 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Day 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON CalendarDiffDays 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON QuarterOfYear 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Quarter 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Month 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON UUID 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Timestamp Source # 
Instance details

Defined in Google.Protobuf.Timestamp

FromJSON a => FromJSON [a] 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser [a] #

parseJSONList :: Value -> Parser [[a]] #

FromJSON a => FromJSON (Maybe a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

(FromJSON a, Integral a) => FromJSON (Ratio a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Solo a)

Since: aeson-2.0.2.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON v => FromJSON (KeyMap v)

Since: aeson-2.0.1.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Min a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Min a) #

parseJSONList :: Value -> Parser [Min a] #

FromJSON a => FromJSON (Max a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Max a) #

parseJSONList :: Value -> Parser [Max a] #

FromJSON a => FromJSON (First a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Last a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (WrappedMonoid a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Option a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Identity a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (First a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Last a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Dual a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (NonEmpty a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (IntMap a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON v => FromJSON (Tree v) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Seq a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Seq a) #

parseJSONList :: Value -> Parser [Seq a] #

(Ord a, FromJSON a) => FromJSON (Set a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Set a) #

parseJSONList :: Value -> Parser [Set a] #

FromJSON1 f => FromJSON (Fix f)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Fix f) #

parseJSONList :: Value -> Parser [Fix f] #

(FromJSON1 f, Functor f) => FromJSON (Mu f)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Mu f) #

parseJSONList :: Value -> Parser [Mu f] #

(FromJSON1 f, Functor f) => FromJSON (Nu f)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Nu f) #

parseJSONList :: Value -> Parser [Nu f] #

FromJSON a => FromJSON (DNonEmpty a)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (DList a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

(Eq a, Hashable a, FromJSON a) => FromJSON (HashSet a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

(Eq a, Hashable a, FromJSON a) => FromJSON (InsOrdHashSet a) 
Instance details

Defined in Data.HashSet.InsOrd

(Prim a, FromJSON a) => FromJSON (Vector a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

(Storable a, FromJSON a) => FromJSON (Vector a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

(Vector Vector a, FromJSON a) => FromJSON (Vector a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Vector a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

(Prim a, FromJSON a) => FromJSON (PrimArray a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (SmallArray a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Array a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Maybe a)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON (SwaggerItems ('SwaggerKindSchema :: SwaggerKind Type))
>>> decode "{}" :: Maybe (SwaggerItems 'SwaggerKindSchema)
Just (SwaggerItemsArray [])
>>> eitherDecode "{\"$ref\":\"#/definitions/example\"}" :: Either String (SwaggerItems 'SwaggerKindSchema)
Right (SwaggerItemsObject (Ref (Reference {getReference = "example"})))
>>> eitherDecode "[{\"$ref\":\"#/definitions/example\"}]" :: Either String (SwaggerItems 'SwaggerKindSchema)
Right (SwaggerItemsArray [Ref (Reference {getReference = "example"})])
Instance details

Defined in Data.Swagger.Internal

FromJSON (SwaggerItems ('SwaggerKindParamOtherSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

(FromJSON (CollectionFormat ('SwaggerKindNormal t)), FromJSON (ParamSchema ('SwaggerKindNormal t))) => FromJSON (SwaggerItems ('SwaggerKindNormal t)) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (SwaggerType ('SwaggerKindSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (SwaggerType ('SwaggerKindParamOtherSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (SwaggerType ('SwaggerKindNormal t)) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (CollectionFormat ('SwaggerKindParamOtherSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (CollectionFormat ('SwaggerKindNormal t)) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (ParamSchema ('SwaggerKindSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (ParamSchema ('SwaggerKindParamOtherSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

(FromJSON (SwaggerType ('SwaggerKindNormal t)), FromJSON (SwaggerItems ('SwaggerKindNormal t))) => FromJSON (ParamSchema ('SwaggerKindNormal t)) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (Referenced Param) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (Referenced Schema) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (Referenced Response) 
Instance details

Defined in Data.Swagger.Internal

(FromJSON a, FromJSON b) => FromJSON (Either a b) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Either a b) #

parseJSONList :: Value -> Parser [Either a b] #

(FromJSON a, FromJSON b) => FromJSON (a, b) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b) #

parseJSONList :: Value -> Parser [(a, b)] #

(FromJSONKey k, Ord k, FromJSON v) => FromJSON (Map k v) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Map k v) #

parseJSONList :: Value -> Parser [Map k v] #

(FromJSON v, FromJSONKey k, Eq k, Hashable k) => FromJSON (HashMap k v) 
Instance details

Defined in Data.Aeson.Types.FromJSON

HasResolution a => FromJSON (Fixed a)

This instance includes a bounds check to prevent maliciously large inputs to fill up the memory of the target system. You can newtype Scientific and provide your own instance using withScientific if you want to allow larger inputs.

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON (Proxy a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

(Eq k, Hashable k, FromJSONKey k, FromJSON v) => FromJSON (InsOrdHashMap k v) 
Instance details

Defined in Data.HashMap.Strict.InsOrd

(FromJSON a, FromJSON b) => FromJSON (These a b)

Since: aeson-1.5.1.0

Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (These a b) #

parseJSONList :: Value -> Parser [These a b] #

(FromJSON a, FromJSON b) => FromJSON (Pair a b)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Pair a b) #

parseJSONList :: Value -> Parser [Pair a b] #

(FromJSON a, FromJSON b) => FromJSON (These a b)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (These a b) #

parseJSONList :: Value -> Parser [These a b] #

(FromJSON a, FromJSON b) => FromJSON (Either a b)

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Either a b) #

parseJSONList :: Value -> Parser [Either a b] #

(FromJSON a, FromJSON b, FromJSON c) => FromJSON (a, b, c) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c) #

parseJSONList :: Value -> Parser [(a, b, c)] #

FromJSON a => FromJSON (Const a b) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Const a b) #

parseJSONList :: Value -> Parser [Const a b] #

FromJSON b => FromJSON (Tagged a b) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Tagged a b) #

parseJSONList :: Value -> Parser [Tagged a b] #

(FromJSON1 f, FromJSON1 g, FromJSON a) => FromJSON (These1 f g a)

Since: aeson-1.5.1.0

Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (These1 f g a) #

parseJSONList :: Value -> Parser [These1 f g a] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d) => FromJSON (a, b, c, d) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d) #

parseJSONList :: Value -> Parser [(a, b, c, d)] #

(FromJSON1 f, FromJSON1 g, FromJSON a) => FromJSON (Product f g a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Product f g a) #

parseJSONList :: Value -> Parser [Product f g a] #

(FromJSON1 f, FromJSON1 g, FromJSON a) => FromJSON (Sum f g a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Sum f g a) #

parseJSONList :: Value -> Parser [Sum f g a] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e) => FromJSON (a, b, c, d, e) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e) #

parseJSONList :: Value -> Parser [(a, b, c, d, e)] #

(FromJSON1 f, FromJSON1 g, FromJSON a) => FromJSON (Compose f g a) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Compose f g a) #

parseJSONList :: Value -> Parser [Compose f g a] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f) => FromJSON (a, b, c, d, e, f) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g) => FromJSON (a, b, c, d, e, f, g) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h) => FromJSON (a, b, c, d, e, f, g, h) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i) => FromJSON (a, b, c, d, e, f, g, h, i) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j) => FromJSON (a, b, c, d, e, f, g, h, i, j) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k) => FromJSON (a, b, c, d, e, f, g, h, i, j, k) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k, FromJSON l) => FromJSON (a, b, c, d, e, f, g, h, i, j, k, l) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k, l) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k, l)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k, FromJSON l, FromJSON m) => FromJSON (a, b, c, d, e, f, g, h, i, j, k, l, m) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k, l, m) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k, l, m)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k, FromJSON l, FromJSON m, FromJSON n) => FromJSON (a, b, c, d, e, f, g, h, i, j, k, l, m, n) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k, l, m, n) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k, l, m, n)] #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k, FromJSON l, FromJSON m, FromJSON n, FromJSON o) => FromJSON (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)] #

typeMismatch #

Arguments

:: String

The name of the JSON type being parsed ("Object", "Array", "String", "Number", "Boolean", or "Null").

-> Value

The actual value encountered.

-> Parser a 

Fail parsing due to a type mismatch, with a descriptive message.

The following wrappers should generally be prefered: withObject, withArray, withText, withBool.

Error message example

typeMismatch "Object" (String "oops")
-- Error: "expected Object, but encountered String"

withObject :: String -> (Object -> Parser a) -> Value -> Parser a #

withObject name f value applies f to the Object when value is an Object and fails otherwise.

Error message example

withObject "MyType" f (String "oops")
-- Error: "parsing MyType failed, expected Object, but encountered String"

Swagger schema helpers

class ToSchema a where #

Convert a type into Schema.

An example type and instance:

{-# LANGUAGE OverloadedStrings #-}   -- allows to write Text literals
{-# LANGUAGE OverloadedLists #-}     -- allows to write Map and HashMap as lists

import Control.Lens
import Data.Proxy
import Data.Swagger

data Coord = Coord { x :: Double, y :: Double }

instance ToSchema Coord where
  declareNamedSchema _ = do
    doubleSchema <- declareSchemaRef (Proxy :: Proxy Double)
    return $ NamedSchema (Just "Coord") $ mempty
      & type_ ?~ SwaggerObject
      & properties .~
          [ ("x", doubleSchema)
          , ("y", doubleSchema)
          ]
      & required .~ [ "x", "y" ]

Instead of manually writing your ToSchema instance you can use a default generic implementation of declareNamedSchema.

To do that, simply add deriving Generic clause to your datatype and declare a ToSchema instance for your datatype without giving definition for declareNamedSchema.

For instance, the previous example can be simplified into this:

{-# LANGUAGE DeriveGeneric #-}

import GHC.Generics (Generic)

data Coord = Coord { x :: Double, y :: Double } deriving Generic

instance ToSchema Coord

Minimal complete definition

Nothing

Methods

declareNamedSchema :: Proxy a -> Declare (Definitions Schema) NamedSchema #

Convert a type into an optionally named schema together with all used definitions. Note that the schema itself is included in definitions only if it is recursive (and thus needs its definition in scope).

Instances

Instances details
ToSchema Bool 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Char 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Double 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Float 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Int 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Int8 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Int16 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Int32 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Int64 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Integer 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Natural 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Word 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Word8 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Word16 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Word32 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Word64 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema () 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema String 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Version 
Instance details

Defined in Data.Swagger.Internal.Schema

(ToSchemaByteStringError ByteString :: Constraint) => ToSchema ByteString 
Instance details

Defined in Data.Swagger.Internal.Schema

(ToSchemaByteStringError ByteString :: Constraint) => ToSchema ByteString 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Scientific 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema UTCTime
>>> toSchema (Proxy :: Proxy UTCTime) ^. format
Just "yyyy-mm-ddThh:MM:ssZ"
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Text 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Object 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Text 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema All 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Any 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema IntSet 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema ZonedTime

Format "date" corresponds to yyyy-mm-ddThh:MM:ss(Z|+hh:MM) format.

Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema LocalTime
>>> toSchema (Proxy :: Proxy LocalTime) ^. format
Just "yyyy-mm-ddThh:MM:ss"
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema TimeOfDay 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema NominalDiffTime 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Day

Format "date" corresponds to yyyy-mm-dd format.

Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema UUID

For ToJSON instance, see uuid-aeson package.

Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema Timestamp Source # 
Instance details

Defined in Google.Protobuf.Timestamp

ToSchema a => ToSchema [a] 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (Maybe a) 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (Identity a) 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (First a) 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (Last a) 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (Dual a) 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (Sum a) 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (Product a) 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (NonEmpty a)

Since: swagger2-2.2.1

Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (IntMap a)

NOTE: This schema does not account for the uniqueness of keys.

Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (Set a) 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (HashSet a) 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (Vector a) 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (Vector a) 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (Vector a) 
Instance details

Defined in Data.Swagger.Internal.Schema

ToSchema a => ToSchema (Vector a) 
Instance details

Defined in Data.Swagger.Internal.Schema

(Finite e, Named e) => ToSchema (Enumerated e) Source #

JSONPB schemas for protobuf enumerations

Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

ToSchema (Fixed Int32) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

ToSchema (Fixed Int64) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

ToSchema (Fixed Word32) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

ToSchema (Fixed Word64) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

ToSchema a => ToSchema (OverrideToSchema a) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

ToSchema (OverrideToSchema ByteString) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

(ToJSONKey k, ToSchema k) => ToSchema (OverrideToSchema (Map k ByteString)) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

ToSchema (OverrideToSchema (Vector ByteString)) Source # 
Instance details

Defined in Proto3.Suite.DotProto.Generate.Swagger

(ToSchema a, ToSchema b) => ToSchema (Either a b) 
Instance details

Defined in Data.Swagger.Internal.Schema

(ToSchema a, ToSchema b) => ToSchema (a, b) 
Instance details

Defined in Data.Swagger.Internal.Schema

(ToJSONKey k, ToSchema k, ToSchema v) => ToSchema (Map k v) 
Instance details

Defined in Data.Swagger.Internal.Schema

(ToJSONKey k, ToSchema k, ToSchema v) => ToSchema (HashMap k v) 
Instance details

Defined in Data.Swagger.Internal.Schema

HasResolution a => ToSchema (Fixed a) 
Instance details

Defined in Data.Swagger.Internal.Schema

(ToSchema a, ToSchema b, ToSchema c) => ToSchema (a, b, c) 
Instance details

Defined in Data.Swagger.Internal.Schema

(ToSchema a, ToSchema b, ToSchema c, ToSchema d) => ToSchema (a, b, c, d) 
Instance details

Defined in Data.Swagger.Internal.Schema

(ToSchema a, ToSchema b, ToSchema c, ToSchema d, ToSchema e) => ToSchema (a, b, c, d, e) 
Instance details

Defined in Data.Swagger.Internal.Schema

(ToSchema a, ToSchema b, ToSchema c, ToSchema d, ToSchema e, ToSchema f) => ToSchema (a, b, c, d, e, f) 
Instance details

Defined in Data.Swagger.Internal.Schema

Methods

declareNamedSchema :: Proxy (a, b, c, d, e, f) -> Declare (Definitions Schema) NamedSchema #

(ToSchema a, ToSchema b, ToSchema c, ToSchema d, ToSchema e, ToSchema f, ToSchema g) => ToSchema (a, b, c, d, e, f, g) 
Instance details

Defined in Data.Swagger.Internal.Schema

Methods

declareNamedSchema :: Proxy (a, b, c, d, e, f, g) -> Declare (Definitions Schema) NamedSchema #

data NamedSchema #

A Schema with an optional name. This name can be used in references.

Instances

Instances details
Eq NamedSchema 
Instance details

Defined in Data.Swagger.Internal

Data NamedSchema 
Instance details

Defined in Data.Swagger.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NamedSchema -> c NamedSchema #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NamedSchema #

toConstr :: NamedSchema -> Constr #

dataTypeOf :: NamedSchema -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NamedSchema) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NamedSchema) #

gmapT :: (forall b. Data b => b -> b) -> NamedSchema -> NamedSchema #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NamedSchema -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NamedSchema -> r #

gmapQ :: (forall d. Data d => d -> u) -> NamedSchema -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NamedSchema -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NamedSchema -> m NamedSchema #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NamedSchema -> m NamedSchema #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NamedSchema -> m NamedSchema #

Show NamedSchema 
Instance details

Defined in Data.Swagger.Internal

Generic NamedSchema 
Instance details

Defined in Data.Swagger.Internal

Associated Types

type Rep NamedSchema :: Type -> Type #

HasSchema NamedSchema Schema 
Instance details

Defined in Data.Swagger.Lens

HasType NamedSchema (Maybe (SwaggerType ('SwaggerKindSchema :: SwaggerKind Type))) 
Instance details

Defined in Data.Swagger.Lens

HasParamSchema NamedSchema (ParamSchema ('SwaggerKindSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Lens

HasName NamedSchema (Maybe Text) 
Instance details

Defined in Data.Swagger.Lens

type Rep NamedSchema 
Instance details

Defined in Data.Swagger.Internal

type Rep NamedSchema = D1 ('MetaData "NamedSchema" "Data.Swagger.Internal" "swagger2-2.7-D90BH62cOlhzxbXCWElO9" 'False) (C1 ('MetaCons "NamedSchema" 'PrefixI 'True) (S1 ('MetaSel ('Just "_namedSchemaName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "_namedSchemaSchema") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Schema)))

data Schema #

Instances

Instances details
Eq Schema 
Instance details

Defined in Data.Swagger.Internal

Methods

(==) :: Schema -> Schema -> Bool #

(/=) :: Schema -> Schema -> Bool #

Data Schema 
Instance details

Defined in Data.Swagger.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Schema -> c Schema #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Schema #

toConstr :: Schema -> Constr #

dataTypeOf :: Schema -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Schema) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Schema) #

gmapT :: (forall b. Data b => b -> b) -> Schema -> Schema #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Schema -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Schema -> r #

gmapQ :: (forall d. Data d => d -> u) -> Schema -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Schema -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Schema -> m Schema #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Schema -> m Schema #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Schema -> m Schema #

Show Schema 
Instance details

Defined in Data.Swagger.Internal

Generic Schema 
Instance details

Defined in Data.Swagger.Internal

Associated Types

type Rep Schema :: Type -> Type #

Methods

from :: Schema -> Rep Schema x #

to :: Rep Schema x -> Schema #

Semigroup Schema 
Instance details

Defined in Data.Swagger.Internal

Monoid Schema 
Instance details

Defined in Data.Swagger.Internal

ToJSON Schema 
Instance details

Defined in Data.Swagger.Internal

FromJSON Schema 
Instance details

Defined in Data.Swagger.Internal

Generic Schema 
Instance details

Defined in Data.Swagger.Internal

Associated Types

type Code Schema :: [[Type]] #

Methods

from :: Schema -> Rep Schema #

to :: Rep Schema -> Schema #

HasDatatypeInfo Schema 
Instance details

Defined in Data.Swagger.Internal

Associated Types

type DatatypeInfoOf Schema :: DatatypeInfo #

SwaggerMonoid Schema 
Instance details

Defined in Data.Swagger.Internal

HasSwaggerAesonOptions Schema 
Instance details

Defined in Data.Swagger.Internal

HasSchema NamedSchema Schema 
Instance details

Defined in Data.Swagger.Lens

HasDefault Schema (Maybe Value) 
Instance details

Defined in Data.Swagger.Lens

HasType Schema (Maybe (SwaggerType ('SwaggerKindSchema :: SwaggerKind Type))) 
Instance details

Defined in Data.Swagger.Lens

HasAdditionalProperties Schema (Maybe AdditionalProperties) 
Instance details

Defined in Data.Swagger.Lens

HasAllOf Schema (Maybe [Referenced Schema]) 
Instance details

Defined in Data.Swagger.Lens

HasDiscriminator Schema (Maybe Text) 
Instance details

Defined in Data.Swagger.Lens

HasExample Schema (Maybe Value) 
Instance details

Defined in Data.Swagger.Lens

HasMaxProperties Schema (Maybe Integer) 
Instance details

Defined in Data.Swagger.Lens

HasMinProperties Schema (Maybe Integer) 
Instance details

Defined in Data.Swagger.Lens

HasReadOnly Schema (Maybe Bool) 
Instance details

Defined in Data.Swagger.Lens

HasXml Schema (Maybe Xml) 
Instance details

Defined in Data.Swagger.Lens

Methods

xml :: Lens' Schema (Maybe Xml) #

HasParamSchema Schema (ParamSchema ('SwaggerKindSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Lens

HasRequired Schema [ParamName] 
Instance details

Defined in Data.Swagger.Lens

HasSchema Response (Maybe (Referenced Schema)) 
Instance details

Defined in Data.Swagger.Lens

HasDescription Schema (Maybe Text) 
Instance details

Defined in Data.Swagger.Lens

HasTitle Schema (Maybe Text) 
Instance details

Defined in Data.Swagger.Lens

HasDefinitions Swagger (Definitions Schema) 
Instance details

Defined in Data.Swagger.Lens

HasExternalDocs Schema (Maybe ExternalDocs) 
Instance details

Defined in Data.Swagger.Lens

HasProperties Schema (InsOrdHashMap Text (Referenced Schema)) 
Instance details

Defined in Data.Swagger.Lens

ToJSON (Referenced Schema) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (Referenced Schema) 
Instance details

Defined in Data.Swagger.Internal

type Rep Schema 
Instance details

Defined in Data.Swagger.Internal

type Rep Schema = D1 ('MetaData "Schema" "Data.Swagger.Internal" "swagger2-2.7-D90BH62cOlhzxbXCWElO9" 'False) (C1 ('MetaCons "Schema" 'PrefixI 'True) (((S1 ('MetaSel ('Just "_schemaTitle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: (S1 ('MetaSel ('Just "_schemaDescription") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text)) :*: S1 ('MetaSel ('Just "_schemaRequired") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ParamName]))) :*: ((S1 ('MetaSel ('Just "_schemaAllOf") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [Referenced Schema])) :*: S1 ('MetaSel ('Just "_schemaProperties") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (InsOrdHashMap Text (Referenced Schema)))) :*: (S1 ('MetaSel ('Just "_schemaAdditionalProperties") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe AdditionalProperties)) :*: S1 ('MetaSel ('Just "_schemaDiscriminator") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text))))) :*: ((S1 ('MetaSel ('Just "_schemaReadOnly") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Bool)) :*: (S1 ('MetaSel ('Just "_schemaXml") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Xml)) :*: S1 ('MetaSel ('Just "_schemaExternalDocs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe ExternalDocs)))) :*: ((S1 ('MetaSel ('Just "_schemaExample") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Value)) :*: S1 ('MetaSel ('Just "_schemaMaxProperties") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer))) :*: (S1 ('MetaSel ('Just "_schemaMinProperties") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer)) :*: S1 ('MetaSel ('Just "_schemaParamSchema") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ParamSchema ('SwaggerKindSchema :: SwaggerKind Type))))))))
type Code Schema 
Instance details

Defined in Data.Swagger.Internal

type DatatypeInfoOf Schema 
Instance details

Defined in Data.Swagger.Internal

type DatatypeInfoOf Schema = 'ADT "Data.Swagger.Internal" "Schema" '['Record "Schema" '['FieldInfo "_schemaTitle", 'FieldInfo "_schemaDescription", 'FieldInfo "_schemaRequired", 'FieldInfo "_schemaAllOf", 'FieldInfo "_schemaProperties", 'FieldInfo "_schemaAdditionalProperties", 'FieldInfo "_schemaDiscriminator", 'FieldInfo "_schemaReadOnly", 'FieldInfo "_schemaXml", 'FieldInfo "_schemaExternalDocs", 'FieldInfo "_schemaExample", 'FieldInfo "_schemaMaxProperties", 'FieldInfo "_schemaMinProperties", 'FieldInfo "_schemaParamSchema"]] '['['StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy]]

data ParamSchema (t :: SwaggerKind Type) #

Constructors

ParamSchema 

Fields

Instances

Instances details
HasParamSchema ParamOtherSchema (ParamSchema ('SwaggerKindParamOtherSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Lens

HasParamSchema Schema (ParamSchema ('SwaggerKindSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Lens

HasParamSchema NamedSchema (ParamSchema ('SwaggerKindSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Lens

HasParamSchema Header (ParamSchema ('SwaggerKindNormal Header)) 
Instance details

Defined in Data.Swagger.Lens

Eq (ParamSchema t) 
Instance details

Defined in Data.Swagger.Internal

(Typeable k, Data (Maybe (SwaggerType k)), Data (SwaggerItems k)) => Data (ParamSchema k) 
Instance details

Defined in Data.Swagger.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ParamSchema k -> c (ParamSchema k) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ParamSchema k) #

toConstr :: ParamSchema k -> Constr #

dataTypeOf :: ParamSchema k -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ParamSchema k)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ParamSchema k)) #

gmapT :: (forall b. Data b => b -> b) -> ParamSchema k -> ParamSchema k #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ParamSchema k -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ParamSchema k -> r #

gmapQ :: (forall d. Data d => d -> u) -> ParamSchema k -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ParamSchema k -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ParamSchema k -> m (ParamSchema k) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ParamSchema k -> m (ParamSchema k) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ParamSchema k -> m (ParamSchema k) #

Show (ParamSchema t) 
Instance details

Defined in Data.Swagger.Internal

Generic (ParamSchema t) 
Instance details

Defined in Data.Swagger.Internal

Associated Types

type Rep (ParamSchema t) :: Type -> Type #

Methods

from :: ParamSchema t -> Rep (ParamSchema t) x #

to :: Rep (ParamSchema t) x -> ParamSchema t #

Semigroup (ParamSchema t) 
Instance details

Defined in Data.Swagger.Internal

Monoid (ParamSchema t) 
Instance details

Defined in Data.Swagger.Internal

ToJSON (ParamSchema k) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (ParamSchema ('SwaggerKindSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (ParamSchema ('SwaggerKindParamOtherSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

(FromJSON (SwaggerType ('SwaggerKindNormal t)), FromJSON (SwaggerItems ('SwaggerKindNormal t))) => FromJSON (ParamSchema ('SwaggerKindNormal t)) 
Instance details

Defined in Data.Swagger.Internal

Generic (ParamSchema t) 
Instance details

Defined in Data.Swagger.Internal

Associated Types

type Code (ParamSchema t) :: [[Type]] #

Methods

from :: ParamSchema t -> Rep (ParamSchema t) #

to :: Rep (ParamSchema t) -> ParamSchema t #

HasDatatypeInfo (ParamSchema t) 
Instance details

Defined in Data.Swagger.Internal

Associated Types

type DatatypeInfoOf (ParamSchema t) :: DatatypeInfo #

Methods

datatypeInfo :: proxy (ParamSchema t) -> DatatypeInfo (Code (ParamSchema t)) #

SwaggerMonoid (ParamSchema t) 
Instance details

Defined in Data.Swagger.Internal

HasSwaggerAesonOptions (ParamSchema ('SwaggerKindSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

HasSwaggerAesonOptions (ParamSchema ('SwaggerKindParamOtherSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

HasSwaggerAesonOptions (ParamSchema ('SwaggerKindNormal t)) 
Instance details

Defined in Data.Swagger.Internal

AesonDefaultValue (ParamSchema s) 
Instance details

Defined in Data.Swagger.Internal

HasDefault (ParamSchema t) (Maybe Value) 
Instance details

Defined in Data.Swagger.Lens

HasEnum (ParamSchema t) (Maybe [Value]) 
Instance details

Defined in Data.Swagger.Lens

Methods

enum_ :: Lens' (ParamSchema t) (Maybe [Value]) #

HasExclusiveMaximum (ParamSchema t) (Maybe Bool) 
Instance details

Defined in Data.Swagger.Lens

HasExclusiveMinimum (ParamSchema t) (Maybe Bool) 
Instance details

Defined in Data.Swagger.Lens

HasFormat (ParamSchema t) (Maybe Format) 
Instance details

Defined in Data.Swagger.Lens

HasItems (ParamSchema t) (Maybe (SwaggerItems t)) 
Instance details

Defined in Data.Swagger.Lens

HasMaxItems (ParamSchema t) (Maybe Integer) 
Instance details

Defined in Data.Swagger.Lens

HasMaxLength (ParamSchema t) (Maybe Integer) 
Instance details

Defined in Data.Swagger.Lens

HasMaximum (ParamSchema t) (Maybe Scientific) 
Instance details

Defined in Data.Swagger.Lens

HasMinItems (ParamSchema t) (Maybe Integer) 
Instance details

Defined in Data.Swagger.Lens

HasMinLength (ParamSchema t) (Maybe Integer) 
Instance details

Defined in Data.Swagger.Lens

HasMinimum (ParamSchema t) (Maybe Scientific) 
Instance details

Defined in Data.Swagger.Lens

HasMultipleOf (ParamSchema t) (Maybe Scientific) 
Instance details

Defined in Data.Swagger.Lens

HasPattern (ParamSchema t) (Maybe Pattern) 
Instance details

Defined in Data.Swagger.Lens

HasType (ParamSchema t) (Maybe (SwaggerType t)) 
Instance details

Defined in Data.Swagger.Lens

HasUniqueItems (ParamSchema t) (Maybe Bool) 
Instance details

Defined in Data.Swagger.Lens

type Rep (ParamSchema t) 
Instance details

Defined in Data.Swagger.Internal

type Rep (ParamSchema t) = D1 ('MetaData "ParamSchema" "Data.Swagger.Internal" "swagger2-2.7-D90BH62cOlhzxbXCWElO9" 'False) (C1 ('MetaCons "ParamSchema" 'PrefixI 'True) ((((S1 ('MetaSel ('Just "_paramSchemaDefault") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Value)) :*: S1 ('MetaSel ('Just "_paramSchemaType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (SwaggerType t)))) :*: (S1 ('MetaSel ('Just "_paramSchemaFormat") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Format)) :*: S1 ('MetaSel ('Just "_paramSchemaItems") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (SwaggerItems t))))) :*: ((S1 ('MetaSel ('Just "_paramSchemaMaximum") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Scientific)) :*: S1 ('MetaSel ('Just "_paramSchemaExclusiveMaximum") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Bool))) :*: (S1 ('MetaSel ('Just "_paramSchemaMinimum") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Scientific)) :*: S1 ('MetaSel ('Just "_paramSchemaExclusiveMinimum") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Bool))))) :*: (((S1 ('MetaSel ('Just "_paramSchemaMaxLength") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer)) :*: S1 ('MetaSel ('Just "_paramSchemaMinLength") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer))) :*: (S1 ('MetaSel ('Just "_paramSchemaPattern") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Pattern)) :*: S1 ('MetaSel ('Just "_paramSchemaMaxItems") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer)))) :*: ((S1 ('MetaSel ('Just "_paramSchemaMinItems") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer)) :*: S1 ('MetaSel ('Just "_paramSchemaUniqueItems") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Bool))) :*: (S1 ('MetaSel ('Just "_paramSchemaEnum") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe [Value])) :*: S1 ('MetaSel ('Just "_paramSchemaMultipleOf") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Scientific)))))))
type Code (ParamSchema t) 
Instance details

Defined in Data.Swagger.Internal

type DatatypeInfoOf (ParamSchema t) 
Instance details

Defined in Data.Swagger.Internal

type DatatypeInfoOf (ParamSchema t) = 'ADT "Data.Swagger.Internal" "ParamSchema" '['Record "ParamSchema" '['FieldInfo "_paramSchemaDefault", 'FieldInfo "_paramSchemaType", 'FieldInfo "_paramSchemaFormat", 'FieldInfo "_paramSchemaItems", 'FieldInfo "_paramSchemaMaximum", 'FieldInfo "_paramSchemaExclusiveMaximum", 'FieldInfo "_paramSchemaMinimum", 'FieldInfo "_paramSchemaExclusiveMinimum", 'FieldInfo "_paramSchemaMaxLength", 'FieldInfo "_paramSchemaMinLength", 'FieldInfo "_paramSchemaPattern", 'FieldInfo "_paramSchemaMaxItems", 'FieldInfo "_paramSchemaMinItems", 'FieldInfo "_paramSchemaUniqueItems", 'FieldInfo "_paramSchemaEnum", 'FieldInfo "_paramSchemaMultipleOf"]] '['['StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy, 'StrictnessInfo 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy]]

data SwaggerType (t :: SwaggerKind Type) where #

Instances

Instances details
HasType ParamOtherSchema (Maybe (SwaggerType ('SwaggerKindParamOtherSchema :: SwaggerKind Type))) 
Instance details

Defined in Data.Swagger.Lens

HasType Schema (Maybe (SwaggerType ('SwaggerKindSchema :: SwaggerKind Type))) 
Instance details

Defined in Data.Swagger.Lens

HasType NamedSchema (Maybe (SwaggerType ('SwaggerKindSchema :: SwaggerKind Type))) 
Instance details

Defined in Data.Swagger.Lens

HasType Header (Maybe (SwaggerType ('SwaggerKindNormal Header))) 
Instance details

Defined in Data.Swagger.Lens

Eq (SwaggerType t) 
Instance details

Defined in Data.Swagger.Internal

Data (SwaggerType ('SwaggerKindSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SwaggerType 'SwaggerKindSchema -> c (SwaggerType 'SwaggerKindSchema) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (SwaggerType 'SwaggerKindSchema) #

toConstr :: SwaggerType 'SwaggerKindSchema -> Constr #

dataTypeOf :: SwaggerType 'SwaggerKindSchema -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (SwaggerType 'SwaggerKindSchema)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (SwaggerType 'SwaggerKindSchema)) #

gmapT :: (forall b. Data b => b -> b) -> SwaggerType 'SwaggerKindSchema -> SwaggerType 'SwaggerKindSchema #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SwaggerType 'SwaggerKindSchema -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SwaggerType 'SwaggerKindSchema -> r #

gmapQ :: (forall d. Data d => d -> u) -> SwaggerType 'SwaggerKindSchema -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SwaggerType 'SwaggerKindSchema -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SwaggerType 'SwaggerKindSchema -> m (SwaggerType 'SwaggerKindSchema) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SwaggerType 'SwaggerKindSchema -> m (SwaggerType 'SwaggerKindSchema) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SwaggerType 'SwaggerKindSchema -> m (SwaggerType 'SwaggerKindSchema) #

Data (SwaggerType ('SwaggerKindParamOtherSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SwaggerType 'SwaggerKindParamOtherSchema -> c (SwaggerType 'SwaggerKindParamOtherSchema) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (SwaggerType 'SwaggerKindParamOtherSchema) #

toConstr :: SwaggerType 'SwaggerKindParamOtherSchema -> Constr #

dataTypeOf :: SwaggerType 'SwaggerKindParamOtherSchema -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (SwaggerType 'SwaggerKindParamOtherSchema)) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (SwaggerType 'SwaggerKindParamOtherSchema)) #

gmapT :: (forall b. Data b => b -> b) -> SwaggerType 'SwaggerKindParamOtherSchema -> SwaggerType 'SwaggerKindParamOtherSchema #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SwaggerType 'SwaggerKindParamOtherSchema -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SwaggerType 'SwaggerKindParamOtherSchema -> r #

gmapQ :: (forall d. Data d => d -> u) -> SwaggerType 'SwaggerKindParamOtherSchema -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SwaggerType 'SwaggerKindParamOtherSchema -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SwaggerType 'SwaggerKindParamOtherSchema -> m (SwaggerType 'SwaggerKindParamOtherSchema) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SwaggerType 'SwaggerKindParamOtherSchema -> m (SwaggerType 'SwaggerKindParamOtherSchema) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SwaggerType 'SwaggerKindParamOtherSchema -> m (SwaggerType 'SwaggerKindParamOtherSchema) #

Typeable t => Data (SwaggerType ('SwaggerKindNormal t)) 
Instance details

Defined in Data.Swagger.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SwaggerType ('SwaggerKindNormal t) -> c (SwaggerType ('SwaggerKindNormal t)) #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (SwaggerType ('SwaggerKindNormal t)) #

toConstr :: SwaggerType ('SwaggerKindNormal t) -> Constr #

dataTypeOf :: SwaggerType ('SwaggerKindNormal t) -> DataType #

dataCast1 :: Typeable t0 => (forall d. Data d => c (t0 d)) -> Maybe (c (SwaggerType ('SwaggerKindNormal t))) #

dataCast2 :: Typeable t0 => (forall d e. (Data d, Data e) => c (t0 d e)) -> Maybe (c (SwaggerType ('SwaggerKindNormal t))) #

gmapT :: (forall b. Data b => b -> b) -> SwaggerType ('SwaggerKindNormal t) -> SwaggerType ('SwaggerKindNormal t) #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SwaggerType ('SwaggerKindNormal t) -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SwaggerType ('SwaggerKindNormal t) -> r #

gmapQ :: (forall d. Data d => d -> u) -> SwaggerType ('SwaggerKindNormal t) -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SwaggerType ('SwaggerKindNormal t) -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SwaggerType ('SwaggerKindNormal t) -> m (SwaggerType ('SwaggerKindNormal t)) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SwaggerType ('SwaggerKindNormal t) -> m (SwaggerType ('SwaggerKindNormal t)) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SwaggerType ('SwaggerKindNormal t) -> m (SwaggerType ('SwaggerKindNormal t)) #

Show (SwaggerType t) 
Instance details

Defined in Data.Swagger.Internal

ToJSON (SwaggerType t) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (SwaggerType ('SwaggerKindSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (SwaggerType ('SwaggerKindParamOtherSchema :: SwaggerKind Type)) 
Instance details

Defined in Data.Swagger.Internal

FromJSON (SwaggerType ('SwaggerKindNormal t)) 
Instance details

Defined in Data.Swagger.Internal

SwaggerMonoid (SwaggerType t) 
Instance details

Defined in Data.Swagger.Internal

AesonDefaultValue (SwaggerType a) 
Instance details

Defined in Data.Swagger.Internal

HasType (ParamSchema t) (Maybe (SwaggerType t)) 
Instance details

Defined in Data.Swagger.Lens

declareSchemaRef :: ToSchema a => Proxy a -> Declare (Definitions Schema) (Referenced Schema) #

Convert a type into a referenced schema if possible and declare all used schema definitions. Only named schemas can be referenced, nameless schemas are inlined.

Schema definitions are typically declared for every referenced schema. If declareSchemaRef returns a reference, a corresponding schema will be declared (regardless of whether it is recusive or not).

asProxy :: (Proxy (OverrideToSchema a) -> b) -> Proxy a Source #

This is a convenience function that uses type inference to select the correct instance of ToSchema to use for fields of a message

insOrdFromList :: (Eq k, Hashable k) => [(k, v)] -> InsOrdHashMap k v Source #

Convenience re-export so that users of generated code don't have to add an explicit dependency on insert-ordered-containers