type Query { pets(first: Int): [Pet!] twice_value(value: Int!): Int! value: Int persons: [Person!]! person(id: ID): Person obj: Obj } type Mutation { testMutation(input: MutationInput!): Boolean } input MutationInput { value: String } type Person { name: String! description: String age: Int! } type Obj { key1: i32 key2: i32 } interface Pet { name: String } type Cat implements Pet { name: String meows: Boolean } type Dog implements Pet { name: String woofs: Boolean @authAdmin } input TestInput { int_field: Int! str_field: String } enum Country { JAPAN AMERICA CHINA } union Animal = Dog | Cat scalar DateTime directive @authAdmin on FIELD