schema
@link(url: "https://specs.apollo.dev/link/v1.0")
@link(url: "https://specs.apollo.dev/join/v0.3", for: EXECUTION)
{
query: Query
mutation: Mutation
subscription: Subscription
}
directive @join__enumValue(graph: join__Graph!) repeatable on ENUM_VALUE
directive @join__field(graph: join__Graph, requires: join__FieldSet, provides: join__FieldSet, type: String, external: Boolean, override: String, usedOverridden: Boolean) repeatable on FIELD_DEFINITION | INPUT_FIELD_DEFINITION
directive @join__graph(name: String!, url: String!) on ENUM_VALUE
directive @join__implements(graph: join__Graph!, interface: String!) repeatable on OBJECT | INTERFACE
directive @join__type(graph: join__Graph!, key: join__FieldSet, extension: Boolean! = false, resolvable: Boolean! = true, isInterfaceObject: Boolean! = false) repeatable on OBJECT | INTERFACE | UNION | ENUM | INPUT_OBJECT | SCALAR
directive @join__unionMember(graph: join__Graph!, member: String!) repeatable on UNION
directive @link(url: String, as: String, for: link__Purpose, import: [link__Import]) repeatable on SCHEMA
directive @noArgs on FIELD | FRAGMENT_DEFINITION | FRAGMENT_SPREAD | INLINE_FRAGMENT | MUTATION | QUERY | SUBSCRIPTION
directive @withArgs(arg1: String = "Default", arg2: String, arg3: Boolean, arg4: Int, arg5: [ID]) on FIELD | FRAGMENT_DEFINITION | FRAGMENT_SPREAD | INLINE_FRAGMENT | MUTATION | QUERY | SUBSCRIPTION
interface AnInterface
@join__type(graph: MAIN)
{
sharedField: String!
}
input AnotherInputType
@join__type(graph: MAIN)
{
anotherInput: ID!
}
type BasicResponse
@join__type(graph: MAIN)
{
id: Int!
nullableId: Int
}
type BasicTypesResponse
@join__type(graph: MAIN)
{
nullableId: ID
nonNullId: ID!
nullableInt: Int
nonNullInt: Int!
nullableString: String
nonNullString: String!
nullableFloat: Float
nonNullFloat: Float!
nullableBoolean: Boolean
nonNullBoolean: Boolean!
}
input EnumInputType
@join__type(graph: MAIN)
{
enumInput: SomeEnum!
nullableEnumInput: SomeEnum
enumListInput: [SomeEnum!]!
enumListOfListInput: [[SomeEnum]]
nestedEnumType: [NestedEnumInputType]
}
type EverythingResponse
@join__type(graph: MAIN)
{
id: Int!
nullableId: Int
basicTypes: BasicTypesResponse
enumResponse: SomeEnum
interfaceResponse: AnInterface
interfaceImplementationResponse: InterfaceImplementation2
unionResponse: UnionType
unionType2Response: UnionType2
listOfBools: [Boolean!]!
listOfInterfaces: [AnInterface]
listOfUnions: [UnionType]
objectTypeWithInputField(boolInput: Boolean, secondInput: Boolean!): ObjectTypeResponse
listOfObjects: [ObjectTypeResponse]
}
input InputType
@join__type(graph: MAIN)
{
inputString: String!
inputInt: Int!
inputBoolean: Boolean
nestedType: NestedInputType!
enumInput: SomeEnum
listInput: [Int!]!
nestedTypeList: [NestedInputType]
}
input InputTypeWithDefault
@join__type(graph: MAIN)
{
nonNullId: ID!
nonNullIdWithDefault: ID! = "id"
nullableId: ID
nullableIdWithDefault: ID = "id"
}
type InterfaceImplementation1 implements AnInterface
@join__implements(graph: MAIN, interface: "AnInterface")
@join__type(graph: MAIN)
{
sharedField: String!
implementation1Field: Int!
}
type InterfaceImplementation2 implements AnInterface
@join__implements(graph: MAIN, interface: "AnInterface")
@join__type(graph: MAIN)
{
sharedField: String!
implementation2Field: Float!
}
scalar join__FieldSet
enum join__Graph {
MAIN @join__graph(name: "main", url: "http://localhost:4001/graphql")
}
scalar link__Import
enum link__Purpose {
"""
`SECURITY` features provide metadata necessary to securely resolve fields.
"""
SECURITY
"""
`EXECUTION` features provide metadata necessary for operation execution.
"""
EXECUTION
}
type Mutation
@join__type(graph: MAIN)
{
noInputMutation: EverythingResponse!
graph(id: ID!): TestGraphResponse!
mutation2(id: ID!): TestGraphResponse2!
mutation3(id: ID!): TestGraphResponse3!
mutation4(id1: ID!, id2: ID!): ID!
}
input NestedEnumInputType
@join__type(graph: MAIN)
{
someEnum: SomeEnum!
someNullableEnum: SomeEnum
someEnumList: [SomeEnum]
someEnumListOfList: [[SomeEnum]]
}
input NestedInputType
@join__type(graph: MAIN)
{
someFloat: Float!
someNullableFloat: Float
}
type ObjectTypeResponse
@join__type(graph: MAIN)
{
stringField: String!
intField: Int!
nullableField: String
}
type NestedEnumResponse
@join__type(graph: MAIN)
{
singleValue: SomeEnum
list: [SomeEnum]
listOfLists: [[SomeEnum]]
}
type EnumResponse
@join__type(graph: MAIN)
{
singleValue: SomeEnum
list: [SomeEnum]
listOfLists: [[SomeEnum]]
nestedObject: NestedEnumResponse
}
type EnumResponseWithNestedQuery
@join__type(graph: MAIN)
{
nestedQuery(input: SomeEnum): StringResponse
}
type StringResponse
@join__type(graph: MAIN)
{
str: String
}
type Query
@join__type(graph: MAIN)
{
inputTypeQuery(input: InputType!): EverythingResponse!
scalarInputQuery(listInput: [String!]!, stringInput: String!, nullableStringInput: String, intInput: Int!, floatInput: Float!, boolInput: Boolean!, enumInput: SomeEnum, idInput: ID!): EverythingResponse!
noInputQuery: EverythingResponse!
basicInputTypeQuery(input: NestedInputType!): EverythingResponse!
anotherInputTypeQuery(input: AnotherInputType): EverythingResponse!
enumInputQuery(enumInput: SomeEnum, inputType: EnumInputType, stringInput: String, anotherStr: String): EverythingResponse!
basicResponseQuery: BasicResponse!
scalarResponseQuery: String
defaultArgQuery(stringInput: String! = "default", inputType: AnotherInputType = {anotherInput: "inputDefault"}): BasicResponse!
inputTypeDefaultQuery(input: InputTypeWithDefault): BasicResponse!
sortQuery(listInput: [String!]!, stringInput: String!, nullableStringInput: String, INTInput: Int!, floatInput: Float!, boolInput: Boolean!, enumInput: SomeEnum, idInput: ID!): SortResponse!
manyArgsQuery(arg1: String, arg2: String, arg3: String, arg4: String, arg5: String, arg6: String, arg7: String): EverythingResponse!
underscoreQuery(arg_: String, _arg2: String, _arg3_: String): UnderscoreResponse
enumUsageQuery(
nonNullEnumInput: SomeEnum!,
nullableEnumInput: SomeEnum,
enumInputList: [SomeEnum],
enumInputListOfLists: [[SomeEnum]],
enumInputObject: EnumInputType,
enumInputObjectList: [EnumInputType],
enumInputObjectListOfLists: [[EnumInputType]],
anotherEnumList: [AnotherEnum],
): BasicResponse
enumResponseQuery: EnumResponse,
enumNestedQuery: EnumResponseWithNestedQuery
}
enum SomeEnum
@join__type(graph: MAIN)
{
SOME_VALUE_1 @join__enumValue(graph: MAIN)
SOME_VALUE_2 @join__enumValue(graph: MAIN)
SOME_VALUE_3 @join__enumValue(graph: MAIN)
SOME_VALUE_4 @join__enumValue(graph: MAIN)
SOME_VALUE_5 @join__enumValue(graph: MAIN)
SOME_VALUE_6 @join__enumValue(graph: MAIN)
SOME_VALUE_7 @join__enumValue(graph: MAIN)
SOME_VALUE_8 @join__enumValue(graph: MAIN)
SOME_VALUE_9 @join__enumValue(graph: MAIN)
SOME_VALUE_10 @join__enumValue(graph: MAIN)
SOME_VALUE_11 @join__enumValue(graph: MAIN)
SOME_VALUE_12 @join__enumValue(graph: MAIN)
SOME_VALUE_13 @join__enumValue(graph: MAIN)
SOME_VALUE_14 @join__enumValue(graph: MAIN)
SOME_VALUE_15 @join__enumValue(graph: MAIN)
SOME_VALUE_16 @join__enumValue(graph: MAIN)
SOME_VALUE_17 @join__enumValue(graph: MAIN)
SOME_VALUE_18 @join__enumValue(graph: MAIN)
SOME_VALUE_19 @join__enumValue(graph: MAIN)
SOME_VALUE_20 @join__enumValue(graph: MAIN)
SOME_VALUE_21 @join__enumValue(graph: MAIN)
SOME_VALUE_22 @join__enumValue(graph: MAIN)
SOME_VALUE_23 @join__enumValue(graph: MAIN)
SOME_VALUE_24 @join__enumValue(graph: MAIN)
SOME_VALUE_25 @join__enumValue(graph: MAIN)
SOME_VALUE_26 @join__enumValue(graph: MAIN)
SOME_VALUE_27 @join__enumValue(graph: MAIN)
SOME_VALUE_28 @join__enumValue(graph: MAIN)
SOME_VALUE_29 @join__enumValue(graph: MAIN)
SOME_VALUE_30 @join__enumValue(graph: MAIN)
SOME_VALUE_31 @join__enumValue(graph: MAIN)
SOME_VALUE_32 @join__enumValue(graph: MAIN)
SOME_VALUE_33 @join__enumValue(graph: MAIN)
SOME_VALUE_34 @join__enumValue(graph: MAIN)
}
enum AnotherEnum
@join__type(graph: MAIN)
{
ANOTHER_VALUE_1 @join__enumValue(graph: MAIN)
ANOTHER_VALUE_2 @join__enumValue(graph: MAIN)
ANOTHER_VALUE_3 @join__enumValue(graph: MAIN)
}
type SortResponse
@join__type(graph: MAIN)
{
id: Int!
nullableId: Int
zzz: Int
aaa: Int
CCC: Int
}
type TestGraphResponse
@join__type(graph: MAIN)
{
updateCheckConfiguration(downgradeDefaultValueChange: Boolean, downgradeStaticChecks: Boolean): Int!
}
type TestGraphResponse2
@join__type(graph: MAIN)
{
updateCheckConfiguration(arg1: Boolean, arg2: Boolean): Int!
}
type TestGraphResponse3
@join__type(graph: MAIN)
{
updateCheckConfiguration(arg1: String, arg2: String, arg3: String): Int!
}
type UnderscoreResponse
@join__type(graph: MAIN)
{
_: String
_name: String
_name_: String
name_: String
}
type Subscription
@join__type(graph: MAIN)
{
noInputSubscription: EverythingResponse!
}
union UnionType
@join__type(graph: MAIN)
@join__unionMember(graph: MAIN, member: "UnionType1")
@join__unionMember(graph: MAIN, member: "UnionType2")
= UnionType1 | UnionType2
type UnionType1
@join__type(graph: MAIN)
{
unionType1Field: String!
nullableString: String
}
type UnionType2
@join__type(graph: MAIN)
{
unionType2Field: String!
nullableString: String
}