enum TestEnum { EnumA EnumB EnumC } input NestedInputObject { fieldTestID: ID! } input TestInputObject { fieldTestScalar: TestScalar! fieldNestedInputObject: [NestedInputObject]! } input Coordinates { latitude: TestScalar! longitude: Int! } type Address { city: String! street( argInputObject: TestInputObject! argMaybeString: String ): [[[[String!]!]!]] houseNumber: Int! } union TestUnion = User | Address type User { name: String! email: String! address(coordinates: Coordinates!, comment: String): Address! office(zipCode: [Int!], cityID: TestEnum!): Address! friend: User } type Query { user: User! testUnion: TestUnion } type Mutation { createUser(userID: String!, userName: String!): User! } type Subscription { newUser: User! }