{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module OpenAPI.Generate.Types.Schema where
import qualified Data.Map as Map
import qualified Data.Scientific as Scientific
import Data.Set (Set)
import qualified Data.Set as Set
import Data.Text (Text)
import qualified Data.Text as T
import Data.Yaml
import GHC.Generics
import OpenAPI.Generate.Types.ExternalDocumentation
import OpenAPI.Generate.Types.Referencable
import Prelude hiding (maximum, minimum, not)
type Schema = Referencable SchemaObject
data SchemaObject = SchemaObject
{ SchemaObject -> SchemaType
schemaObjectType :: SchemaType,
SchemaObject -> Maybe Text
schemaObjectTitle :: Maybe Text,
SchemaObject -> Maybe Float
schemaObjectMultipleOf :: Maybe Float,
SchemaObject -> Maybe Float
schemaObjectMaximum :: Maybe Float,
SchemaObject -> Bool
schemaObjectExclusiveMaximum :: Bool,
SchemaObject -> Maybe Float
schemaObjectMinimum :: Maybe Float,
SchemaObject -> Bool
schemaObjectExclusiveMinimum :: Bool,
SchemaObject -> Maybe Word
schemaObjectMaxLength :: Maybe Word,
SchemaObject -> Maybe Word
schemaObjectMinLength :: Maybe Word,
SchemaObject -> Maybe Text
schemaObjectPattern :: Maybe Text,
SchemaObject -> Maybe Word
schemaObjectMaxItems :: Maybe Word,
SchemaObject -> Maybe Word
schemaObjectMinItems :: Maybe Word,
SchemaObject -> Bool
schemaObjectUniqueItems :: Bool,
SchemaObject -> Maybe Word
schemaObjectMaxProperties :: Maybe Word,
SchemaObject -> Maybe Word
schemaObjectMinProperties :: Maybe Word,
SchemaObject -> Set Text
schemaObjectRequired :: Set Text,
SchemaObject -> [Value]
schemaObjectEnum :: [Value],
SchemaObject -> [Schema]
schemaObjectAllOf :: [Schema],
SchemaObject -> [Schema]
schemaObjectOneOf :: [Schema],
SchemaObject -> [Schema]
schemaObjectAnyOf :: [Schema],
SchemaObject -> Maybe Schema
schemaObjectNot :: Maybe Schema,
SchemaObject -> Map Text Schema
schemaObjectProperties :: Map.Map Text Schema,
SchemaObject -> AdditionalProperties
schemaObjectAdditionalProperties :: AdditionalProperties,
SchemaObject -> Maybe Text
schemaObjectDescription :: Maybe Text,
SchemaObject -> Maybe Text
schemaObjectFormat :: Maybe Text,
SchemaObject -> Maybe ConcreteValue
schemaObjectDefault :: Maybe ConcreteValue,
SchemaObject -> Bool
schemaObjectNullable :: Bool,
SchemaObject -> Maybe DiscriminatorObject
schemaObjectDiscriminator :: Maybe DiscriminatorObject,
SchemaObject -> Bool
schemaObjectReadOnly :: Bool,
SchemaObject -> Bool
schemaObjectWriteOnly :: Bool,
SchemaObject -> Maybe XMLObject
schemaObjectXml :: Maybe XMLObject,
SchemaObject -> Maybe ExternalDocumentationObject
schemaObjectExternalDocs :: Maybe ExternalDocumentationObject,
SchemaObject -> Maybe Value
schemaObjectExample :: Maybe Value,
SchemaObject -> Bool
schemaObjectDeprecated :: Bool,
SchemaObject -> Maybe Schema
schemaObjectItems :: Maybe Schema
}
deriving (Int -> SchemaObject -> ShowS
[SchemaObject] -> ShowS
SchemaObject -> String
(Int -> SchemaObject -> ShowS)
-> (SchemaObject -> String)
-> ([SchemaObject] -> ShowS)
-> Show SchemaObject
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SchemaObject -> ShowS
showsPrec :: Int -> SchemaObject -> ShowS
$cshow :: SchemaObject -> String
show :: SchemaObject -> String
$cshowList :: [SchemaObject] -> ShowS
showList :: [SchemaObject] -> ShowS
Show, SchemaObject -> SchemaObject -> Bool
(SchemaObject -> SchemaObject -> Bool)
-> (SchemaObject -> SchemaObject -> Bool) -> Eq SchemaObject
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SchemaObject -> SchemaObject -> Bool
== :: SchemaObject -> SchemaObject -> Bool
$c/= :: SchemaObject -> SchemaObject -> Bool
/= :: SchemaObject -> SchemaObject -> Bool
Eq, (forall x. SchemaObject -> Rep SchemaObject x)
-> (forall x. Rep SchemaObject x -> SchemaObject)
-> Generic SchemaObject
forall x. Rep SchemaObject x -> SchemaObject
forall x. SchemaObject -> Rep SchemaObject x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SchemaObject -> Rep SchemaObject x
from :: forall x. SchemaObject -> Rep SchemaObject x
$cto :: forall x. Rep SchemaObject x -> SchemaObject
to :: forall x. Rep SchemaObject x -> SchemaObject
Generic)
instance FromJSON SchemaObject where
parseJSON :: Value -> Parser SchemaObject
parseJSON = String
-> (Object -> Parser SchemaObject) -> Value -> Parser SchemaObject
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"SchemaObject" ((Object -> Parser SchemaObject) -> Value -> Parser SchemaObject)
-> (Object -> Parser SchemaObject) -> Value -> Parser SchemaObject
forall a b. (a -> b) -> a -> b
$ \Object
o ->
SchemaType
-> Maybe Text
-> Maybe Float
-> Maybe Float
-> Bool
-> Maybe Float
-> Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject
SchemaObject
(SchemaType
-> Maybe Text
-> Maybe Float
-> Maybe Float
-> Bool
-> Maybe Float
-> Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser SchemaType
-> Parser
(Maybe Text
-> Maybe Float
-> Maybe Float
-> Bool
-> Maybe Float
-> Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe SchemaType)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"type" Parser (Maybe SchemaType) -> SchemaType -> Parser SchemaType
forall a. Parser (Maybe a) -> a -> Parser a
.!= SchemaType
SchemaTypeObject
Parser
(Maybe Text
-> Maybe Float
-> Maybe Float
-> Bool
-> Maybe Float
-> Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Text)
-> Parser
(Maybe Float
-> Maybe Float
-> Bool
-> Maybe Float
-> Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"title"
Parser
(Maybe Float
-> Maybe Float
-> Bool
-> Maybe Float
-> Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Float)
-> Parser
(Maybe Float
-> Bool
-> Maybe Float
-> Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Float)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"multipleOf"
Parser
(Maybe Float
-> Bool
-> Maybe Float
-> Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Float)
-> Parser
(Bool
-> Maybe Float
-> Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Float)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"maximum"
Parser
(Bool
-> Maybe Float
-> Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser Bool
-> Parser
(Maybe Float
-> Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"exclusiveMaximum" Parser (Maybe Bool) -> Bool -> Parser Bool
forall a. Parser (Maybe a) -> a -> Parser a
.!= Bool
False
Parser
(Maybe Float
-> Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Float)
-> Parser
(Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Float)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"minimum"
Parser
(Bool
-> Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser Bool
-> Parser
(Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"exclusiveMinimum" Parser (Maybe Bool) -> Bool -> Parser Bool
forall a. Parser (Maybe a) -> a -> Parser a
.!= Bool
False
Parser
(Maybe Word
-> Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Word)
-> Parser
(Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Word)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"maxLength"
Parser
(Maybe Word
-> Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Word)
-> Parser
(Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Word)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"minLength"
Parser
(Maybe Text
-> Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Text)
-> Parser
(Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"pattern"
Parser
(Maybe Word
-> Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Word)
-> Parser
(Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Word)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"maxItems"
Parser
(Maybe Word
-> Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Word)
-> Parser
(Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Word)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"minItems"
Parser
(Bool
-> Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser Bool
-> Parser
(Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"uniqueItems" Parser (Maybe Bool) -> Bool -> Parser Bool
forall a. Parser (Maybe a) -> a -> Parser a
.!= Bool
False
Parser
(Maybe Word
-> Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Word)
-> Parser
(Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Word)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"maxProperties"
Parser
(Maybe Word
-> Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Word)
-> Parser
(Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Word)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"minProperties"
Parser
(Set Text
-> [Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Set Text)
-> Parser
([Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe (Set Text))
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"required" Parser (Maybe (Set Text)) -> Set Text -> Parser (Set Text)
forall a. Parser (Maybe a) -> a -> Parser a
.!= Set Text
forall a. Set a
Set.empty
Parser
([Value]
-> [Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser [Value]
-> Parser
([Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Value])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"enum" Parser (Maybe [Value]) -> [Value] -> Parser [Value]
forall a. Parser (Maybe a) -> a -> Parser a
.!= []
Parser
([Schema]
-> [Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser [Schema]
-> Parser
([Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Schema])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"allOf" Parser (Maybe [Schema]) -> [Schema] -> Parser [Schema]
forall a. Parser (Maybe a) -> a -> Parser a
.!= []
Parser
([Schema]
-> [Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser [Schema]
-> Parser
([Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Schema])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"oneOf" Parser (Maybe [Schema]) -> [Schema] -> Parser [Schema]
forall a. Parser (Maybe a) -> a -> Parser a
.!= []
Parser
([Schema]
-> Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser [Schema]
-> Parser
(Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Schema])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"anyOf" Parser (Maybe [Schema]) -> [Schema] -> Parser [Schema]
forall a. Parser (Maybe a) -> a -> Parser a
.!= []
Parser
(Maybe Schema
-> Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Schema)
-> Parser
(Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Schema)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"not"
Parser
(Map Text Schema
-> AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Map Text Schema)
-> Parser
(AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe (Map Text Schema))
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"properties" Parser (Maybe (Map Text Schema))
-> Map Text Schema -> Parser (Map Text Schema)
forall a. Parser (Maybe a) -> a -> Parser a
.!= Map Text Schema
forall k a. Map k a
Map.empty
Parser
(AdditionalProperties
-> Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser AdditionalProperties
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe AdditionalProperties)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"additionalProperties" Parser (Maybe AdditionalProperties)
-> AdditionalProperties -> Parser AdditionalProperties
forall a. Parser (Maybe a) -> a -> Parser a
.!= AdditionalProperties
HasAdditionalProperties
Parser
(Maybe Text
-> Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"description"
Parser
(Maybe Text
-> Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe Text)
-> Parser
(Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"format"
Parser
(Maybe ConcreteValue
-> Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe ConcreteValue)
-> Parser
(Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe ConcreteValue)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"default"
Parser
(Bool
-> Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser Bool
-> Parser
(Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"nullable" Parser (Maybe Bool) -> Bool -> Parser Bool
forall a. Parser (Maybe a) -> a -> Parser a
.!= Bool
False
Parser
(Maybe DiscriminatorObject
-> Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe DiscriminatorObject)
-> Parser
(Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe DiscriminatorObject)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"discriminator"
Parser
(Bool
-> Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser Bool
-> Parser
(Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"readOnly" Parser (Maybe Bool) -> Bool -> Parser Bool
forall a. Parser (Maybe a) -> a -> Parser a
.!= Bool
False
Parser
(Bool
-> Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser Bool
-> Parser
(Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"writeOnly" Parser (Maybe Bool) -> Bool -> Parser Bool
forall a. Parser (Maybe a) -> a -> Parser a
.!= Bool
False
Parser
(Maybe XMLObject
-> Maybe ExternalDocumentationObject
-> Maybe Value
-> Bool
-> Maybe Schema
-> SchemaObject)
-> Parser (Maybe XMLObject)
-> Parser
(Maybe ExternalDocumentationObject
-> Maybe Value -> Bool -> Maybe Schema -> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe XMLObject)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"xml"
Parser
(Maybe ExternalDocumentationObject
-> Maybe Value -> Bool -> Maybe Schema -> SchemaObject)
-> Parser (Maybe ExternalDocumentationObject)
-> Parser (Maybe Value -> Bool -> Maybe Schema -> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe ExternalDocumentationObject)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"externalDocs"
Parser (Maybe Value -> Bool -> Maybe Schema -> SchemaObject)
-> Parser (Maybe Value)
-> Parser (Bool -> Maybe Schema -> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Value)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"example"
Parser (Bool -> Maybe Schema -> SchemaObject)
-> Parser Bool -> Parser (Maybe Schema -> SchemaObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"deprecated" Parser (Maybe Bool) -> Bool -> Parser Bool
forall a. Parser (Maybe a) -> a -> Parser a
.!= Bool
False
Parser (Maybe Schema -> SchemaObject)
-> Parser (Maybe Schema) -> Parser SchemaObject
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Schema)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"items"
defaultSchema :: SchemaObject
defaultSchema :: SchemaObject
defaultSchema =
SchemaObject
{ schemaObjectType :: SchemaType
schemaObjectType = SchemaType
SchemaTypeObject,
schemaObjectTitle :: Maybe Text
schemaObjectTitle = Maybe Text
forall a. Maybe a
Nothing,
schemaObjectMultipleOf :: Maybe Float
schemaObjectMultipleOf = Maybe Float
forall a. Maybe a
Nothing,
schemaObjectMaximum :: Maybe Float
schemaObjectMaximum = Maybe Float
forall a. Maybe a
Nothing,
schemaObjectExclusiveMaximum :: Bool
schemaObjectExclusiveMaximum = Bool
False,
schemaObjectMinimum :: Maybe Float
schemaObjectMinimum = Maybe Float
forall a. Maybe a
Nothing,
schemaObjectExclusiveMinimum :: Bool
schemaObjectExclusiveMinimum = Bool
False,
schemaObjectMaxLength :: Maybe Word
schemaObjectMaxLength = Maybe Word
forall a. Maybe a
Nothing,
schemaObjectMinLength :: Maybe Word
schemaObjectMinLength = Maybe Word
forall a. Maybe a
Nothing,
schemaObjectPattern :: Maybe Text
schemaObjectPattern = Maybe Text
forall a. Maybe a
Nothing,
schemaObjectMaxItems :: Maybe Word
schemaObjectMaxItems = Maybe Word
forall a. Maybe a
Nothing,
schemaObjectMinItems :: Maybe Word
schemaObjectMinItems = Maybe Word
forall a. Maybe a
Nothing,
schemaObjectUniqueItems :: Bool
schemaObjectUniqueItems = Bool
False,
schemaObjectMaxProperties :: Maybe Word
schemaObjectMaxProperties = Maybe Word
forall a. Maybe a
Nothing,
schemaObjectMinProperties :: Maybe Word
schemaObjectMinProperties = Maybe Word
forall a. Maybe a
Nothing,
schemaObjectRequired :: Set Text
schemaObjectRequired = Set Text
forall a. Set a
Set.empty,
schemaObjectEnum :: [Value]
schemaObjectEnum = [],
schemaObjectAllOf :: [Schema]
schemaObjectAllOf = [],
schemaObjectOneOf :: [Schema]
schemaObjectOneOf = [],
schemaObjectAnyOf :: [Schema]
schemaObjectAnyOf = [],
schemaObjectNot :: Maybe Schema
schemaObjectNot = Maybe Schema
forall a. Maybe a
Nothing,
schemaObjectProperties :: Map Text Schema
schemaObjectProperties = Map Text Schema
forall k a. Map k a
Map.empty,
schemaObjectAdditionalProperties :: AdditionalProperties
schemaObjectAdditionalProperties = AdditionalProperties
HasAdditionalProperties,
schemaObjectDescription :: Maybe Text
schemaObjectDescription = Maybe Text
forall a. Maybe a
Nothing,
schemaObjectFormat :: Maybe Text
schemaObjectFormat = Maybe Text
forall a. Maybe a
Nothing,
schemaObjectDefault :: Maybe ConcreteValue
schemaObjectDefault = Maybe ConcreteValue
forall a. Maybe a
Nothing,
schemaObjectNullable :: Bool
schemaObjectNullable = Bool
False,
schemaObjectDiscriminator :: Maybe DiscriminatorObject
schemaObjectDiscriminator = Maybe DiscriminatorObject
forall a. Maybe a
Nothing,
schemaObjectReadOnly :: Bool
schemaObjectReadOnly = Bool
False,
schemaObjectWriteOnly :: Bool
schemaObjectWriteOnly = Bool
False,
schemaObjectXml :: Maybe XMLObject
schemaObjectXml = Maybe XMLObject
forall a. Maybe a
Nothing,
schemaObjectExternalDocs :: Maybe ExternalDocumentationObject
schemaObjectExternalDocs = Maybe ExternalDocumentationObject
forall a. Maybe a
Nothing,
schemaObjectExample :: Maybe Value
schemaObjectExample = Maybe Value
forall a. Maybe a
Nothing,
schemaObjectDeprecated :: Bool
schemaObjectDeprecated = Bool
False,
schemaObjectItems :: Maybe Schema
schemaObjectItems = Maybe Schema
forall a. Maybe a
Nothing
}
isSchemaEmpty :: SchemaObject -> Bool
isSchemaEmpty :: SchemaObject -> Bool
isSchemaEmpty SchemaObject
s =
SchemaType
SchemaTypeObject SchemaType -> SchemaType -> Bool
forall a. Eq a => a -> a -> Bool
== SchemaObject -> SchemaType
schemaObjectType SchemaObject
s
Bool -> Bool -> Bool
&& Map Text Schema -> Bool
forall k a. Map k a -> Bool
Map.null (SchemaObject -> Map Text Schema
schemaObjectProperties SchemaObject
s)
Bool -> Bool -> Bool
&& [Schema] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (SchemaObject -> [Schema]
schemaObjectAllOf SchemaObject
s)
Bool -> Bool -> Bool
&& [Schema] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (SchemaObject -> [Schema]
schemaObjectOneOf SchemaObject
s)
Bool -> Bool -> Bool
&& [Schema] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (SchemaObject -> [Schema]
schemaObjectAnyOf SchemaObject
s)
data SchemaType
= SchemaTypeString
| SchemaTypeNumber
| SchemaTypeInteger
| SchemaTypeBool
| SchemaTypeObject
| SchemaTypeArray
deriving (Int -> SchemaType -> ShowS
[SchemaType] -> ShowS
SchemaType -> String
(Int -> SchemaType -> ShowS)
-> (SchemaType -> String)
-> ([SchemaType] -> ShowS)
-> Show SchemaType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SchemaType -> ShowS
showsPrec :: Int -> SchemaType -> ShowS
$cshow :: SchemaType -> String
show :: SchemaType -> String
$cshowList :: [SchemaType] -> ShowS
showList :: [SchemaType] -> ShowS
Show, SchemaType -> SchemaType -> Bool
(SchemaType -> SchemaType -> Bool)
-> (SchemaType -> SchemaType -> Bool) -> Eq SchemaType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SchemaType -> SchemaType -> Bool
== :: SchemaType -> SchemaType -> Bool
$c/= :: SchemaType -> SchemaType -> Bool
/= :: SchemaType -> SchemaType -> Bool
Eq, Eq SchemaType
Eq SchemaType =>
(SchemaType -> SchemaType -> Ordering)
-> (SchemaType -> SchemaType -> Bool)
-> (SchemaType -> SchemaType -> Bool)
-> (SchemaType -> SchemaType -> Bool)
-> (SchemaType -> SchemaType -> Bool)
-> (SchemaType -> SchemaType -> SchemaType)
-> (SchemaType -> SchemaType -> SchemaType)
-> Ord SchemaType
SchemaType -> SchemaType -> Bool
SchemaType -> SchemaType -> Ordering
SchemaType -> SchemaType -> SchemaType
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SchemaType -> SchemaType -> Ordering
compare :: SchemaType -> SchemaType -> Ordering
$c< :: SchemaType -> SchemaType -> Bool
< :: SchemaType -> SchemaType -> Bool
$c<= :: SchemaType -> SchemaType -> Bool
<= :: SchemaType -> SchemaType -> Bool
$c> :: SchemaType -> SchemaType -> Bool
> :: SchemaType -> SchemaType -> Bool
$c>= :: SchemaType -> SchemaType -> Bool
>= :: SchemaType -> SchemaType -> Bool
$cmax :: SchemaType -> SchemaType -> SchemaType
max :: SchemaType -> SchemaType -> SchemaType
$cmin :: SchemaType -> SchemaType -> SchemaType
min :: SchemaType -> SchemaType -> SchemaType
Ord, (forall x. SchemaType -> Rep SchemaType x)
-> (forall x. Rep SchemaType x -> SchemaType) -> Generic SchemaType
forall x. Rep SchemaType x -> SchemaType
forall x. SchemaType -> Rep SchemaType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. SchemaType -> Rep SchemaType x
from :: forall x. SchemaType -> Rep SchemaType x
$cto :: forall x. Rep SchemaType x -> SchemaType
to :: forall x. Rep SchemaType x -> SchemaType
Generic)
instance FromJSON SchemaType where
parseJSON :: Value -> Parser SchemaType
parseJSON (String Text
"integer") = SchemaType -> Parser SchemaType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SchemaType
SchemaTypeInteger
parseJSON (String Text
"string") = SchemaType -> Parser SchemaType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SchemaType
SchemaTypeString
parseJSON (String Text
"number") = SchemaType -> Parser SchemaType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SchemaType
SchemaTypeNumber
parseJSON (String Text
"boolean") = SchemaType -> Parser SchemaType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SchemaType
SchemaTypeBool
parseJSON (String Text
"array") = SchemaType -> Parser SchemaType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SchemaType
SchemaTypeArray
parseJSON (String Text
"object") = SchemaType -> Parser SchemaType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SchemaType
SchemaTypeObject
parseJSON (String Text
x) = String -> Parser SchemaType
forall a. String -> Parser a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String -> Parser SchemaType) -> String -> Parser SchemaType
forall a b. (a -> b) -> a -> b
$ String
"Only types integer, string, number, boolean, array and object are supported but got: " String -> ShowS
forall a. Semigroup a => a -> a -> a
<> Text -> String
T.unpack Text
x
parseJSON Value
_ = String -> Parser SchemaType
forall a. String -> Parser a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"type must be of type string"
data DiscriminatorObject = DiscriminatorObject
{ DiscriminatorObject -> Text
discriminatorObjectPropertyName :: Text,
DiscriminatorObject -> Map Text Text
discriminatorObjectMapping :: Map.Map Text Text
}
deriving (Int -> DiscriminatorObject -> ShowS
[DiscriminatorObject] -> ShowS
DiscriminatorObject -> String
(Int -> DiscriminatorObject -> ShowS)
-> (DiscriminatorObject -> String)
-> ([DiscriminatorObject] -> ShowS)
-> Show DiscriminatorObject
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DiscriminatorObject -> ShowS
showsPrec :: Int -> DiscriminatorObject -> ShowS
$cshow :: DiscriminatorObject -> String
show :: DiscriminatorObject -> String
$cshowList :: [DiscriminatorObject] -> ShowS
showList :: [DiscriminatorObject] -> ShowS
Show, DiscriminatorObject -> DiscriminatorObject -> Bool
(DiscriminatorObject -> DiscriminatorObject -> Bool)
-> (DiscriminatorObject -> DiscriminatorObject -> Bool)
-> Eq DiscriminatorObject
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DiscriminatorObject -> DiscriminatorObject -> Bool
== :: DiscriminatorObject -> DiscriminatorObject -> Bool
$c/= :: DiscriminatorObject -> DiscriminatorObject -> Bool
/= :: DiscriminatorObject -> DiscriminatorObject -> Bool
Eq, Eq DiscriminatorObject
Eq DiscriminatorObject =>
(DiscriminatorObject -> DiscriminatorObject -> Ordering)
-> (DiscriminatorObject -> DiscriminatorObject -> Bool)
-> (DiscriminatorObject -> DiscriminatorObject -> Bool)
-> (DiscriminatorObject -> DiscriminatorObject -> Bool)
-> (DiscriminatorObject -> DiscriminatorObject -> Bool)
-> (DiscriminatorObject
-> DiscriminatorObject -> DiscriminatorObject)
-> (DiscriminatorObject
-> DiscriminatorObject -> DiscriminatorObject)
-> Ord DiscriminatorObject
DiscriminatorObject -> DiscriminatorObject -> Bool
DiscriminatorObject -> DiscriminatorObject -> Ordering
DiscriminatorObject -> DiscriminatorObject -> DiscriminatorObject
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: DiscriminatorObject -> DiscriminatorObject -> Ordering
compare :: DiscriminatorObject -> DiscriminatorObject -> Ordering
$c< :: DiscriminatorObject -> DiscriminatorObject -> Bool
< :: DiscriminatorObject -> DiscriminatorObject -> Bool
$c<= :: DiscriminatorObject -> DiscriminatorObject -> Bool
<= :: DiscriminatorObject -> DiscriminatorObject -> Bool
$c> :: DiscriminatorObject -> DiscriminatorObject -> Bool
> :: DiscriminatorObject -> DiscriminatorObject -> Bool
$c>= :: DiscriminatorObject -> DiscriminatorObject -> Bool
>= :: DiscriminatorObject -> DiscriminatorObject -> Bool
$cmax :: DiscriminatorObject -> DiscriminatorObject -> DiscriminatorObject
max :: DiscriminatorObject -> DiscriminatorObject -> DiscriminatorObject
$cmin :: DiscriminatorObject -> DiscriminatorObject -> DiscriminatorObject
min :: DiscriminatorObject -> DiscriminatorObject -> DiscriminatorObject
Ord, (forall x. DiscriminatorObject -> Rep DiscriminatorObject x)
-> (forall x. Rep DiscriminatorObject x -> DiscriminatorObject)
-> Generic DiscriminatorObject
forall x. Rep DiscriminatorObject x -> DiscriminatorObject
forall x. DiscriminatorObject -> Rep DiscriminatorObject x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. DiscriminatorObject -> Rep DiscriminatorObject x
from :: forall x. DiscriminatorObject -> Rep DiscriminatorObject x
$cto :: forall x. Rep DiscriminatorObject x -> DiscriminatorObject
to :: forall x. Rep DiscriminatorObject x -> DiscriminatorObject
Generic)
instance FromJSON DiscriminatorObject where
parseJSON :: Value -> Parser DiscriminatorObject
parseJSON = String
-> (Object -> Parser DiscriminatorObject)
-> Value
-> Parser DiscriminatorObject
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"DiscriminatorObject" ((Object -> Parser DiscriminatorObject)
-> Value -> Parser DiscriminatorObject)
-> (Object -> Parser DiscriminatorObject)
-> Value
-> Parser DiscriminatorObject
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Text -> Map Text Text -> DiscriminatorObject
DiscriminatorObject
(Text -> Map Text Text -> DiscriminatorObject)
-> Parser Text -> Parser (Map Text Text -> DiscriminatorObject)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"propertyName"
Parser (Map Text Text -> DiscriminatorObject)
-> Parser (Map Text Text) -> Parser DiscriminatorObject
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe (Map Text Text))
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"mapping" Parser (Maybe (Map Text Text))
-> Map Text Text -> Parser (Map Text Text)
forall a. Parser (Maybe a) -> a -> Parser a
.!= Map Text Text
forall k a. Map k a
Map.empty
data ConcreteValue
= StringDefaultValue Text
| NumericDefaultValue Scientific.Scientific
| BoolDefaultValue Bool
| OtherDefaultValue Value
deriving (Int -> ConcreteValue -> ShowS
[ConcreteValue] -> ShowS
ConcreteValue -> String
(Int -> ConcreteValue -> ShowS)
-> (ConcreteValue -> String)
-> ([ConcreteValue] -> ShowS)
-> Show ConcreteValue
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ConcreteValue -> ShowS
showsPrec :: Int -> ConcreteValue -> ShowS
$cshow :: ConcreteValue -> String
show :: ConcreteValue -> String
$cshowList :: [ConcreteValue] -> ShowS
showList :: [ConcreteValue] -> ShowS
Show, ConcreteValue -> ConcreteValue -> Bool
(ConcreteValue -> ConcreteValue -> Bool)
-> (ConcreteValue -> ConcreteValue -> Bool) -> Eq ConcreteValue
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ConcreteValue -> ConcreteValue -> Bool
== :: ConcreteValue -> ConcreteValue -> Bool
$c/= :: ConcreteValue -> ConcreteValue -> Bool
/= :: ConcreteValue -> ConcreteValue -> Bool
Eq, (forall x. ConcreteValue -> Rep ConcreteValue x)
-> (forall x. Rep ConcreteValue x -> ConcreteValue)
-> Generic ConcreteValue
forall x. Rep ConcreteValue x -> ConcreteValue
forall x. ConcreteValue -> Rep ConcreteValue x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ConcreteValue -> Rep ConcreteValue x
from :: forall x. ConcreteValue -> Rep ConcreteValue x
$cto :: forall x. Rep ConcreteValue x -> ConcreteValue
to :: forall x. Rep ConcreteValue x -> ConcreteValue
Generic)
instance FromJSON ConcreteValue where
parseJSON :: Value -> Parser ConcreteValue
parseJSON v :: Value
v@(String Text
_) = Text -> ConcreteValue
StringDefaultValue (Text -> ConcreteValue) -> Parser Text -> Parser ConcreteValue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Value -> Parser Text
forall a. FromJSON a => Value -> Parser a
parseJSON Value
v
parseJSON v :: Value
v@(Number Scientific
_) = Scientific -> ConcreteValue
NumericDefaultValue (Scientific -> ConcreteValue)
-> Parser Scientific -> Parser ConcreteValue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Value -> Parser Scientific
forall a. FromJSON a => Value -> Parser a
parseJSON Value
v
parseJSON v :: Value
v@(Bool Bool
_) = Bool -> ConcreteValue
BoolDefaultValue (Bool -> ConcreteValue) -> Parser Bool -> Parser ConcreteValue
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Value -> Parser Bool
forall a. FromJSON a => Value -> Parser a
parseJSON Value
v
parseJSON Value
v = ConcreteValue -> Parser ConcreteValue
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ConcreteValue -> Parser ConcreteValue)
-> ConcreteValue -> Parser ConcreteValue
forall a b. (a -> b) -> a -> b
$ Value -> ConcreteValue
OtherDefaultValue Value
v
data AdditionalProperties
= NoAdditionalProperties
| HasAdditionalProperties
| AdditionalPropertiesWithSchema Schema
deriving (Int -> AdditionalProperties -> ShowS
[AdditionalProperties] -> ShowS
AdditionalProperties -> String
(Int -> AdditionalProperties -> ShowS)
-> (AdditionalProperties -> String)
-> ([AdditionalProperties] -> ShowS)
-> Show AdditionalProperties
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AdditionalProperties -> ShowS
showsPrec :: Int -> AdditionalProperties -> ShowS
$cshow :: AdditionalProperties -> String
show :: AdditionalProperties -> String
$cshowList :: [AdditionalProperties] -> ShowS
showList :: [AdditionalProperties] -> ShowS
Show, AdditionalProperties -> AdditionalProperties -> Bool
(AdditionalProperties -> AdditionalProperties -> Bool)
-> (AdditionalProperties -> AdditionalProperties -> Bool)
-> Eq AdditionalProperties
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AdditionalProperties -> AdditionalProperties -> Bool
== :: AdditionalProperties -> AdditionalProperties -> Bool
$c/= :: AdditionalProperties -> AdditionalProperties -> Bool
/= :: AdditionalProperties -> AdditionalProperties -> Bool
Eq, (forall x. AdditionalProperties -> Rep AdditionalProperties x)
-> (forall x. Rep AdditionalProperties x -> AdditionalProperties)
-> Generic AdditionalProperties
forall x. Rep AdditionalProperties x -> AdditionalProperties
forall x. AdditionalProperties -> Rep AdditionalProperties x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. AdditionalProperties -> Rep AdditionalProperties x
from :: forall x. AdditionalProperties -> Rep AdditionalProperties x
$cto :: forall x. Rep AdditionalProperties x -> AdditionalProperties
to :: forall x. Rep AdditionalProperties x -> AdditionalProperties
Generic)
instance FromJSON AdditionalProperties where
parseJSON :: Value -> Parser AdditionalProperties
parseJSON (Bool Bool
False) = AdditionalProperties -> Parser AdditionalProperties
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure AdditionalProperties
NoAdditionalProperties
parseJSON (Bool Bool
True) = AdditionalProperties -> Parser AdditionalProperties
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure AdditionalProperties
HasAdditionalProperties
parseJSON Value
v = Schema -> AdditionalProperties
AdditionalPropertiesWithSchema (Schema -> AdditionalProperties)
-> Parser Schema -> Parser AdditionalProperties
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Value -> Parser Schema
forall a. FromJSON a => Value -> Parser a
parseJSON Value
v
data XMLObject = XMLObject
{ XMLObject -> Maybe Text
xMLObjectName :: Maybe Text,
XMLObject -> Maybe Text
xMLObjectNamespace :: Maybe Text,
XMLObject -> Maybe Text
xMLObjectPrefix :: Maybe Text,
XMLObject -> Bool
xMLObjectAttribute :: Bool,
XMLObject -> Bool
xMLObjectWrapped :: Bool
}
deriving (Int -> XMLObject -> ShowS
[XMLObject] -> ShowS
XMLObject -> String
(Int -> XMLObject -> ShowS)
-> (XMLObject -> String)
-> ([XMLObject] -> ShowS)
-> Show XMLObject
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> XMLObject -> ShowS
showsPrec :: Int -> XMLObject -> ShowS
$cshow :: XMLObject -> String
show :: XMLObject -> String
$cshowList :: [XMLObject] -> ShowS
showList :: [XMLObject] -> ShowS
Show, XMLObject -> XMLObject -> Bool
(XMLObject -> XMLObject -> Bool)
-> (XMLObject -> XMLObject -> Bool) -> Eq XMLObject
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: XMLObject -> XMLObject -> Bool
== :: XMLObject -> XMLObject -> Bool
$c/= :: XMLObject -> XMLObject -> Bool
/= :: XMLObject -> XMLObject -> Bool
Eq, Eq XMLObject
Eq XMLObject =>
(XMLObject -> XMLObject -> Ordering)
-> (XMLObject -> XMLObject -> Bool)
-> (XMLObject -> XMLObject -> Bool)
-> (XMLObject -> XMLObject -> Bool)
-> (XMLObject -> XMLObject -> Bool)
-> (XMLObject -> XMLObject -> XMLObject)
-> (XMLObject -> XMLObject -> XMLObject)
-> Ord XMLObject
XMLObject -> XMLObject -> Bool
XMLObject -> XMLObject -> Ordering
XMLObject -> XMLObject -> XMLObject
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: XMLObject -> XMLObject -> Ordering
compare :: XMLObject -> XMLObject -> Ordering
$c< :: XMLObject -> XMLObject -> Bool
< :: XMLObject -> XMLObject -> Bool
$c<= :: XMLObject -> XMLObject -> Bool
<= :: XMLObject -> XMLObject -> Bool
$c> :: XMLObject -> XMLObject -> Bool
> :: XMLObject -> XMLObject -> Bool
$c>= :: XMLObject -> XMLObject -> Bool
>= :: XMLObject -> XMLObject -> Bool
$cmax :: XMLObject -> XMLObject -> XMLObject
max :: XMLObject -> XMLObject -> XMLObject
$cmin :: XMLObject -> XMLObject -> XMLObject
min :: XMLObject -> XMLObject -> XMLObject
Ord, (forall x. XMLObject -> Rep XMLObject x)
-> (forall x. Rep XMLObject x -> XMLObject) -> Generic XMLObject
forall x. Rep XMLObject x -> XMLObject
forall x. XMLObject -> Rep XMLObject x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. XMLObject -> Rep XMLObject x
from :: forall x. XMLObject -> Rep XMLObject x
$cto :: forall x. Rep XMLObject x -> XMLObject
to :: forall x. Rep XMLObject x -> XMLObject
Generic)
instance FromJSON XMLObject where
parseJSON :: Value -> Parser XMLObject
parseJSON = String -> (Object -> Parser XMLObject) -> Value -> Parser XMLObject
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"SchemaObject" ((Object -> Parser XMLObject) -> Value -> Parser XMLObject)
-> (Object -> Parser XMLObject) -> Value -> Parser XMLObject
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe Text -> Maybe Text -> Maybe Text -> Bool -> Bool -> XMLObject
XMLObject
(Maybe Text
-> Maybe Text -> Maybe Text -> Bool -> Bool -> XMLObject)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> Bool -> Bool -> XMLObject)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"name"
Parser (Maybe Text -> Maybe Text -> Bool -> Bool -> XMLObject)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Bool -> Bool -> XMLObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"namespace"
Parser (Maybe Text -> Bool -> Bool -> XMLObject)
-> Parser (Maybe Text) -> Parser (Bool -> Bool -> XMLObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"prefix"
Parser (Bool -> Bool -> XMLObject)
-> Parser Bool -> Parser (Bool -> XMLObject)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"attribute" Parser (Maybe Bool) -> Bool -> Parser Bool
forall a. Parser (Maybe a) -> a -> Parser a
.!= Bool
False
Parser (Bool -> XMLObject) -> Parser Bool -> Parser XMLObject
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"wrapped" Parser (Maybe Bool) -> Bool -> Parser Bool
forall a. Parser (Maybe a) -> a -> Parser a
.!= Bool
False