directive @TestDirective(name: String!, enum: TestEnum) on INPUT_OBJECT | OBJECT scalar TestScalar @TestDirective(name: "SomeName") enum TestEnum @TestDirective(name: "SomeName") { EnumA EnumB @TestDirective(name: "SomeName") EnumC } enum _TestUnderscoredType { _TestUnderscoredType } enum testCharCases { lowerCaseA UpperCaseB _underscoredC } input Coordinates @TestDirective(name: "SomeName") { latitude: TestScalar! longitude: Int! = 4 @TestDirective(name: "SomeName") } type Address { street: [[[[String!]!]!]] score: Float! @TestDirective(name: "SomeName") } type User { type: String! address(coordinates: Coordinates!, type: String): Int! friend(id: ID!, cityID: TestEnum): User! CharCases: testCharCases _underscored: _TestUnderscoredType } union TestUnion @TestDirective(name: "SomeName") = User | Address type MyQuery { user: User! testUnion: TestUnion } type MyMutation { newUser: User! } schema { query: MyQuery mutation: MyMutation }