{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TemplateHaskellQuotes #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE NoImplicitPrelude #-} module Data.Morpheus.Schema.Schema ( internalSchema, ) where import Data.Morpheus.Schema.DSL (dsl) import Data.Morpheus.Types.Internal.AST ( Schema, ) internalSchema :: Schema s internalSchema :: forall (s :: Stage). Schema s internalSchema = [dsl| """ Directs the executor to skip this field or fragment when the `if` argument is true. """ directive @skip(if: Boolean!) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT """ Directs the executor to include this field or fragment only when the `if` argument is true. """ directive @include(if: Boolean!) on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT """ Marks an element of a GraphQL schema as no longer supported. """ directive @deprecated(reason: String) on FIELD_DEFINITION | ENUM_VALUE scalar Boolean scalar Int scalar Float scalar String scalar ID type __Schema { types: [__Type!]! queryType: __Type! mutationType: __Type subscriptionType: __Type directives: [__Directive!]! } type __Type { kind: __TypeKind! name: String description: String # OBJECT and INTERFACE only fields(includeDeprecated: Boolean = false): [__Field!] # OBJECT only interfaces: [__Type!] # INTERFACE and UNION only possibleTypes: [__Type!] # ENUM only enumValues(includeDeprecated: Boolean = false): [__EnumValue!] # INPUT_OBJECT only inputFields: [__InputValue!] # NON_NULL and LIST only ofType: __Type } type __Field { name: String! description: String args: [__InputValue!]! type: __Type! isDeprecated: Boolean! deprecationReason: String } type __InputValue { name: String! description: String type: __Type! defaultValue: String } type __EnumValue { name: String! description: String isDeprecated: Boolean! deprecationReason: String } type __Directive { name: String! description: String locations: [__DirectiveLocation!]! args: [__InputValue!]! } enum __DirectiveLocation { QUERY MUTATION SUBSCRIPTION FIELD FRAGMENT_DEFINITION FRAGMENT_SPREAD INLINE_FRAGMENT SCHEMA SCALAR OBJECT FIELD_DEFINITION ARGUMENT_DEFINITION INTERFACE UNION ENUM ENUM_VALUE INPUT_OBJECT INPUT_FIELD_DEFINITION } enum __TypeKind { SCALAR OBJECT INTERFACE UNION ENUM INPUT_OBJECT LIST NON_NULL } type Query { __type(name: String!): __Type __schema: __Schema! } |]