import { GraphQLResolveInfo , GraphQLSchema } from 'graphql' ; import { IResolvers } from 'graphql-tools/dist/Interfaces' ; import { Options } from 'graphql-binding' ; import { makePrismaBindingClass , BasePrismaOptions } from 'prisma-binding' ; export interface Query { users : < T = Array < User | null > > ( args : { where ? : UserWhereInput | null ; orderBy ? : UserOrderByInput | null ; skip ? : Int | null ; after ? : String | null ; before ? : String | null ; first ? : Int | null ; last ? : Int | null ; } , info ? : GraphQLResolveInfo | string , options ? : Options ) => Promise < T > ; user : < T = User | null > ( args : { where : UserWhereUniqueInput ; } , info ? : GraphQLResolveInfo | string , options ? : Options ) => Promise < T | null > ; usersConnection : < T = UserConnection > ( args : { where ? : UserWhereInput | null ; orderBy ? : UserOrderByInput | null ; skip ? : Int | null ; after ? : String | null ; before ? : String | null ; first ? : Int | null ; last ? : Int | null ; } , info ? : GraphQLResolveInfo | string , options ? : Options ) => Promise < T > ; node : < T = Node | null > ( args : { id : ID_Output ; } , info ? : GraphQLResolveInfo | string , options ? : Options ) => Promise < T | null > ; } export interface Mutation { createUser : < T = User > ( args : { data : UserCreateInput ; } , info ? : GraphQLResolveInfo | string , options ? : Options ) => Promise < T > ; updateUser : < T = User | null > ( args : { data : UserUpdateInput ; where : UserWhereUniqueInput ; } , info ? : GraphQLResolveInfo | string , options ? : Options ) => Promise < T | null > ; deleteUser : < T = User | null > ( args : { where : UserWhereUniqueInput ; } , info ? : GraphQLResolveInfo | string , options ? : Options ) => Promise < T | null > ; upsertUser : < T = User > ( args : { where : UserWhereUniqueInput ; create : UserCreateInput ; update : UserUpdateInput ; } , info ? : GraphQLResolveInfo | string , options ? : Options ) => Promise < T > ; updateManyUsers : < T = BatchPayload > ( args : { data : UserUpdateInput ; where ? : UserWhereInput | null ; } , info ? : GraphQLResolveInfo | string , options ? : Options ) => Promise < T > ; deleteManyUsers : < T = BatchPayload > ( args : { where ? : UserWhereInput | null ; } , info ? : GraphQLResolveInfo | string , options ? : Options ) => Promise < T > ; } export interface Subscription { user : < T = UserSubscriptionPayload | null > ( args : { where ? : UserSubscriptionWhereInput | null ; } , info ? : GraphQLResolveInfo | string , options ? : Options ) => Promise < AsyncIterator < T | null > > ; } export interface Exists { User : ( where ? : UserWhereInput ) => Promise < boolean > ; } export interface Prisma { query : Query ; mutation : Mutation ; subscription : Subscription ; exists : Exists ; request : < T = any > ( query : string , variables ? : { [ key ] : any ; } ) => Promise < T > ; delegate ( operation , fieldName , args , infoOrQuery ? , options ? ) : Promise < any > ; delegateSubscription ( fieldName , args ? , infoOrQuery ? , options ? ) : Promise < AsyncIterator < any > > ; getAbstractResolvers ( filterSchema ? ) : IResolvers ; } export interface BindingConstructor < T > { new ( options ) : T ; } /**
 * Type Defs
 */ const typeDefs = `type AggregateUser {
  count: Int!
}

type BatchPayload {
  """The number of nodes that have been affected by the Batch operation."""
  count: Long!
}

"""
The \`Long\` scalar type represents non-fractional signed whole numeric values.
Long can represent values between -(2^63) and 2^63 - 1.
"""
scalar Long

type Mutation {
  createUser(data: UserCreateInput!): User!
  updateUser(data: UserUpdateInput!, where: UserWhereUniqueInput!): User
  deleteUser(where: UserWhereUniqueInput!): User
  upsertUser(where: UserWhereUniqueInput!, create: UserCreateInput!, update: UserUpdateInput!): User!
  updateManyUsers(data: UserUpdateInput!, where: UserWhereInput): BatchPayload!
  deleteManyUsers(where: UserWhereInput): BatchPayload!
}

enum MutationType {
  CREATED
  UPDATED
  DELETED
}

"""An object with an ID"""
interface Node {
  """The id of the object."""
  id: ID!
}

"""Information about pagination in a connection."""
type PageInfo {
  """When paginating forwards, are there more items?"""
  hasNextPage: Boolean!

  """When paginating backwards, are there more items?"""
  hasPreviousPage: Boolean!

  """When paginating backwards, the cursor to continue."""
  startCursor: String

  """When paginating forwards, the cursor to continue."""
  endCursor: String
}

type Query {
  users(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [User]!
  user(where: UserWhereUniqueInput!): User
  usersConnection(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): UserConnection!

  """Fetches an object given its ID"""
  node(
    """The ID of an object"""
    id: ID!
  ): Node
}

type Subscription {
  user(where: UserSubscriptionWhereInput): UserSubscriptionPayload
}

type User implements Node {
  id: ID!
  name: String!
  surname: String!
}

"""A connection to a list of items."""
type UserConnection {
  """Information to aid in pagination."""
  pageInfo: PageInfo!

  """A list of edges."""
  edges: [UserEdge]!
  aggregate: AggregateUser!
}

input UserCreateInput {
  name: String!
  surname: String!
}

"""An edge in a connection."""
type UserEdge {
  """The item at the end of the edge."""
  node: User!

  """A cursor for use in pagination."""
  cursor: String!
}

enum UserOrderByInput {
  id_ASC
  id_DESC
  name_ASC
  name_DESC
  surname_ASC
  surname_DESC
  updatedAt_ASC
  updatedAt_DESC
  createdAt_ASC
  createdAt_DESC
}

type UserPreviousValues {
  id: ID!
  name: String!
  surname: String!
}

type UserSubscriptionPayload {
  mutation: MutationType!
  node: User
  updatedFields: [String!]
  previousValues: UserPreviousValues
}

input UserSubscriptionWhereInput {
  """Logical AND on all given filters."""
  AND: [UserSubscriptionWhereInput!]

  """Logical OR on all given filters."""
  OR: [UserSubscriptionWhereInput!]

  """Logical NOT on all given filters combined by AND."""
  NOT: [UserSubscriptionWhereInput!]

  """The subscription event gets dispatched when it's listed in mutation_in"""
  mutation_in: [MutationType!]

  """
  The subscription event gets only dispatched when one of the updated fields names is included in this list
  """
  updatedFields_contains: String

  """
  The subscription event gets only dispatched when all of the field names included in this list have been updated
  """
  updatedFields_contains_every: [String!]

  """
  The subscription event gets only dispatched when some of the field names included in this list have been updated
  """
  updatedFields_contains_some: [String!]
  node: UserWhereInput
}

input UserUpdateInput {
  name: String
  surname: String
}

input UserWhereInput {
  """Logical AND on all given filters."""
  AND: [UserWhereInput!]

  """Logical OR on all given filters."""
  OR: [UserWhereInput!]

  """Logical NOT on all given filters combined by AND."""
  NOT: [UserWhereInput!]
  id: ID

  """All values that are not equal to given value."""
  id_not: ID

  """All values that are contained in given list."""
  id_in: [ID!]

  """All values that are not contained in given list."""
  id_not_in: [ID!]

  """All values less than the given value."""
  id_lt: ID

  """All values less than or equal the given value."""
  id_lte: ID

  """All values greater than the given value."""
  id_gt: ID

  """All values greater than or equal the given value."""
  id_gte: ID

  """All values containing the given string."""
  id_contains: ID

  """All values not containing the given string."""
  id_not_contains: ID

  """All values starting with the given string."""
  id_starts_with: ID

  """All values not starting with the given string."""
  id_not_starts_with: ID

  """All values ending with the given string."""
  id_ends_with: ID

  """All values not ending with the given string."""
  id_not_ends_with: ID
  name: String

  """All values that are not equal to given value."""
  name_not: String

  """All values that are contained in given list."""
  name_in: [String!]

  """All values that are not contained in given list."""
  name_not_in: [String!]

  """All values less than the given value."""
  name_lt: String

  """All values less than or equal the given value."""
  name_lte: String

  """All values greater than the given value."""
  name_gt: String

  """All values greater than or equal the given value."""
  name_gte: String

  """All values containing the given string."""
  name_contains: String

  """All values not containing the given string."""
  name_not_contains: String

  """All values starting with the given string."""
  name_starts_with: String

  """All values not starting with the given string."""
  name_not_starts_with: String

  """All values ending with the given string."""
  name_ends_with: String

  """All values not ending with the given string."""
  name_not_ends_with: String
  surname: String

  """All values that are not equal to given value."""
  surname_not: String

  """All values that are contained in given list."""
  surname_in: [String!]

  """All values that are not contained in given list."""
  surname_not_in: [String!]

  """All values less than the given value."""
  surname_lt: String

  """All values less than or equal the given value."""
  surname_lte: String

  """All values greater than the given value."""
  surname_gt: String

  """All values greater than or equal the given value."""
  surname_gte: String

  """All values containing the given string."""
  surname_contains: String

  """All values not containing the given string."""
  surname_not_contains: String

  """All values starting with the given string."""
  surname_starts_with: String

  """All values not starting with the given string."""
  surname_not_starts_with: String

  """All values ending with the given string."""
  surname_ends_with: String

  """All values not ending with the given string."""
  surname_not_ends_with: String
}

input UserWhereUniqueInput {
  id: ID
}
` ; export const Prisma = makePrismaBindingClass < BindingConstructor < Prisma > > ( { typeDefs , } ) ; /**
 * Types
 */ export type MutationType = 'CREATED' | 'UPDATED' | 'DELETED' ; export type UserOrderByInput = 'id_ASC' | 'id_DESC' | 'name_ASC' | 'name_DESC' | 'surname_ASC' | 'surname_DESC' | 'updatedAt_ASC' | 'updatedAt_DESC' | 'createdAt_ASC' | 'createdAt_DESC' ; export interface UserCreateInput { name : String ; surname : String ; } export interface UserSubscriptionWhereInput { AND ? : UserSubscriptionWhereInput [ ] | UserSubscriptionWhereInput | null ; OR ? : UserSubscriptionWhereInput [ ] | UserSubscriptionWhereInput | null ; NOT ? : UserSubscriptionWhereInput [ ] | UserSubscriptionWhereInput | null ; mutation_in ? : MutationType [ ] | MutationType | null ; updatedFields_contains ? : String | null ; updatedFields_contains_every ? : String [ ] | String | null ; updatedFields_contains_some ? : String [ ] | String | null ; node ? : UserWhereInput | null ; } export interface UserUpdateInput { name ? : String | null ; surname ? : String | null ; } export interface UserWhereInput { AND ? : UserWhereInput [ ] | UserWhereInput | null ; OR ? : UserWhereInput [ ] | UserWhereInput | null ; NOT ? : UserWhereInput [ ] | UserWhereInput | null ; id ? : ID_Input | null ; id_not ? : ID_Input | null ; id_in ? : ID_Output [ ] | ID_Output | null ; id_not_in ? : ID_Output [ ] | ID_Output | null ; id_lt ? : ID_Input | null ; id_lte ? : ID_Input | null ; id_gt ? : ID_Input | null ; id_gte ? : ID_Input | null ; id_contains ? : ID_Input | null ; id_not_contains ? : ID_Input | null ; id_starts_with ? : ID_Input | null ; id_not_starts_with ? : ID_Input | null ; id_ends_with ? : ID_Input | null ; id_not_ends_with ? : ID_Input | null ; name ? : String | null ; name_not ? : String | null ; name_in ? : String [ ] | String | null ; name_not_in ? : String [ ] | String | null ; name_lt ? : String | null ; name_lte ? : String | null ; name_gt ? : String | null ; name_gte ? : String | null ; name_contains ? : String | null ; name_not_contains ? : String | null ; name_starts_with ? : String | null ; name_not_starts_with ? : String | null ; name_ends_with ? : String | null ; name_not_ends_with ? : String | null ; surname ? : String | null ; surname_not ? : String | null ; surname_in ? : String [ ] | String | null ; surname_not_in ? : String [ ] | String | null ; surname_lt ? : String | null ; surname_lte ? : String | null ; surname_gt ? : String | null ; surname_gte ? : String | null ; surname_contains ? : String | null ; surname_not_contains ? : String | null ; surname_starts_with ? : String | null ; surname_not_starts_with ? : String | null ; surname_ends_with ? : String | null ; surname_not_ends_with ? : String | null ; } export interface UserWhereUniqueInput { id ? : ID_Input | null ; } export interface Node { id : ID_Output ; } export interface AggregateUser { count : Int ; } export interface BatchPayload { count : Long ; } export interface PageInfo { hasNextPage : Boolean ; hasPreviousPage : Boolean ; startCursor ? : String | null ; endCursor ? : String | null ; } export interface User extends Node { id : ID_Output ; name : String ; surname : String ; } export interface UserConnection { pageInfo : PageInfo ; edges : Array < UserEdge | null > ; aggregate : AggregateUser ; } export interface UserEdge { node : User ; cursor : String ; } export interface UserPreviousValues { id : ID_Output ; name : String ; surname : String ; } export interface UserSubscriptionPayload { mutation : MutationType ; node ? : User | null ; updatedFields ? : Array < String > | null ; previousValues ? : UserPreviousValues | null ; } export type Boolean = boolean ; export type ID_Input = string | number ; export type ID_Output = string ; export type Int = number ; export type Long = string ; export type String = string ;