directive @core(feature: String!) repeatable on SCHEMA directive @join__owner(graph: join__Graph!) on OBJECT directive @join__type( graph: join__Graph! key: String! resolvable: Boolean = true ) repeatable on OBJECT | INTERFACE directive @join__field( graph: join__Graph requires: String provides: String ) on FIELD_DEFINITION directive @join__graph(name: String!, url: String!) on ENUM_VALUE enum join__Graph { FIVE_WITH_ENUM @join__graph(name: "five-with-enum", url: "http://example.com/five-with-enum") FOUR_WITH_UNION @join__graph(name: "four-with-union", url: "http://example.com/four-with-union") ONE @join__graph(name: "one", url: "http://example.com/one") SIX_WITH_INPUT_OBJECT @join__graph(name: "six-with-input-object", url: "http://example.com/six-with-input-object") THREE_WITH_INTERFACE @join__graph(name: "three-with-interface", url: "http://example.com/three-with-interface") TWO @join__graph(name: "two", url: "http://example.com/two") } scalar Time @inaccessible type Ungulate { id: ID! @join__field(graph: FIVE_WITH_ENUM) name: String! @join__field(graph: FIVE_WITH_ENUM) type: UngulateType! @join__field(graph: FIVE_WITH_ENUM) @inaccessible } type Movie { director: String! @join__field(graph: FOUR_WITH_UNION) id: ID! @join__field(graph: FOUR_WITH_UNION) releaseYear: Int @join__field(graph: FOUR_WITH_UNION) title: String! @join__field(graph: FOUR_WITH_UNION) } type Series { id: ID! @join__field(graph: FOUR_WITH_UNION) seasons: Int @join__field(graph: FOUR_WITH_UNION) title: String! @join__field(graph: FOUR_WITH_UNION) } type New { message: String! @inaccessible name: String! @inaccessible old: Old! @inaccessible other: String! } type Old @inaccessible { name: String! @inaccessible } type Book { author: String! @join__field(graph: SIX_WITH_INPUT_OBJECT) genre: String @join__field(graph: SIX_WITH_INPUT_OBJECT) id: ID! @join__field(graph: SIX_WITH_INPUT_OBJECT) publishedYear: Int @join__field(graph: SIX_WITH_INPUT_OBJECT) title: String! @join__field(graph: SIX_WITH_INPUT_OBJECT) } type Quadratic implements Polynomial { coefficients: [Float] @join__field(graph: THREE_WITH_INTERFACE) degree: Int @join__field(graph: THREE_WITH_INTERFACE) discriminant: Float @join__field(graph: THREE_WITH_INTERFACE) } type Cubic implements Polynomial { coefficients: [Float] @join__field(graph: THREE_WITH_INTERFACE) degree: Int @join__field(graph: THREE_WITH_INTERFACE) inflectionPoint: Float @join__field(graph: THREE_WITH_INTERFACE) } type Query { currentTime: Time! @join__field(graph: TWO) @inaccessible getBook(id: ID!): Book @join__field(graph: SIX_WITH_INPUT_OBJECT) getNew(name: String!): New @join__field(graph: ONE) getPolynomial(id: ID!): Polynomial @join__field(graph: THREE_WITH_INTERFACE) @inaccessible getTVContent(id: ID!): TVContent @join__field(graph: FOUR_WITH_UNION) @inaccessible getUngulate(id: ID!): Ungulate @join__field(graph: FIVE_WITH_ENUM) } type Mutation { addBook(input: BookInput! @inaccessible): Book @join__field(graph: SIX_WITH_INPUT_OBJECT) updateBook(id: ID!, input: BookInput! @inaccessible): Book @join__field(graph: SIX_WITH_INPUT_OBJECT) } interface Polynomial @inaccessible { coefficients: [Float] degree: Int } enum UngulateType @inaccessible { DEER HORSE @inaccessible CAMEL RHINOCEROS GIRAFFE } union TVContent @inaccessible = Movie | Series input BookInput @inaccessible { title: String! author: String! @inaccessible publishedYear: Int genre: String }