### This file was autogenerated by GraphQL Nexus
### Do not make changes to this file directly


type Admin implements User {
  email: String!
  firstName: String!
  id: String!
  lastName: String!
  username: String!
}

input AdminCreateOneWithoutUserInput {
  connect: AdminWhereUniqueInput
  create: AdminCreateWithoutUserInput
}

input AdminCreateWithoutUserInput {
  createdAt: DateTime
  email: String!
  id: String
}

input AdminUpdateOneWithoutUserInput {
  connect: AdminWhereUniqueInput
  create: AdminCreateWithoutUserInput
  delete: Boolean
  disconnect: Boolean
  update: AdminUpdateWithoutUserDataInput
  upsert: AdminUpsertWithoutUserInput
}

input AdminUpdateWithoutUserDataInput {
  createdAt: DateTime
  email: String
  id: String
}

input AdminUpsertWithoutUserInput {
  create: AdminCreateWithoutUserInput!
  update: AdminUpdateWithoutUserDataInput!
}

input AdminWhereInput {
  AND: [AdminWhereInput!]
  createdAt: DateTimeFilter
  email: StringFilter
  id: StringFilter
  NOT: [AdminWhereInput!]
  OR: [AdminWhereInput!]
  user: UserWhereInput
}

input AdminWhereUniqueInput {
  email: String
  id: String
}

input AnswerMultipleChoiceQuestionBlockInput {
  blockId: String!
  selectedChoiceId: String!
}

union Block = EmptyBlock | MultipleChoiceQuestionBlock | TextBlock

input BlockCreateManyWithoutMultipleChoiceQuestionBlockInput {
  connect: [BlockWhereUniqueInput!]
  create: [BlockCreateWithoutMultipleChoiceQuestionBlockInput!]
}

input BlockCreateOneWithoutHalfSlidesImplementingInput {
  connect: BlockWhereUniqueInput
  create: BlockCreateWithoutHalfSlidesImplementingInput
}

input BlockCreateOneWithoutHalfSlidesInput {
  connect: BlockWhereUniqueInput
  create: BlockCreateWithoutHalfSlidesInput
}

input BlockCreateOneWithoutQuarterSlidesImplementingInput {
  connect: BlockWhereUniqueInput
  create: BlockCreateWithoutQuarterSlidesImplementingInput
}

input BlockCreateOneWithoutQuarterSlidesInput {
  connect: BlockWhereUniqueInput
  create: BlockCreateWithoutQuarterSlidesInput
}

input BlockCreateOneWithoutSingleSlidesInput {
  connect: BlockWhereUniqueInput
  create: BlockCreateWithoutSingleSlidesInput
}

input BlockCreateWithoutHalfSlidesImplementingInput {
  halfSlides: HalfSlideCreateManyWithoutFirstHalfBlockInput
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockCreateOneWithoutBlocksInput
  quarterSlides: QuarterSlideCreateManyWithoutMainBlockInput
  quarterSlidesImplementing: QuarterSlideCreateManyWithoutSideBlockInput
  singleSlides: SingleSlideCreateManyWithoutBlockInput
  textBlock: TextBlockCreateOneWithoutBlocksInput
}

input BlockCreateWithoutHalfSlidesInput {
  halfSlidesImplementing: HalfSlideCreateManyWithoutSecondHalfBlockInput
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockCreateOneWithoutBlocksInput
  quarterSlides: QuarterSlideCreateManyWithoutMainBlockInput
  quarterSlidesImplementing: QuarterSlideCreateManyWithoutSideBlockInput
  singleSlides: SingleSlideCreateManyWithoutBlockInput
  textBlock: TextBlockCreateOneWithoutBlocksInput
}

input BlockCreateWithoutMultipleChoiceQuestionBlockInput {
  halfSlides: HalfSlideCreateManyWithoutFirstHalfBlockInput
  halfSlidesImplementing: HalfSlideCreateManyWithoutSecondHalfBlockInput
  id: String
  quarterSlides: QuarterSlideCreateManyWithoutMainBlockInput
  quarterSlidesImplementing: QuarterSlideCreateManyWithoutSideBlockInput
  singleSlides: SingleSlideCreateManyWithoutBlockInput
  textBlock: TextBlockCreateOneWithoutBlocksInput
}

input BlockCreateWithoutQuarterSlidesImplementingInput {
  halfSlides: HalfSlideCreateManyWithoutFirstHalfBlockInput
  halfSlidesImplementing: HalfSlideCreateManyWithoutSecondHalfBlockInput
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockCreateOneWithoutBlocksInput
  quarterSlides: QuarterSlideCreateManyWithoutMainBlockInput
  singleSlides: SingleSlideCreateManyWithoutBlockInput
  textBlock: TextBlockCreateOneWithoutBlocksInput
}

input BlockCreateWithoutQuarterSlidesInput {
  halfSlides: HalfSlideCreateManyWithoutFirstHalfBlockInput
  halfSlidesImplementing: HalfSlideCreateManyWithoutSecondHalfBlockInput
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockCreateOneWithoutBlocksInput
  quarterSlidesImplementing: QuarterSlideCreateManyWithoutSideBlockInput
  singleSlides: SingleSlideCreateManyWithoutBlockInput
  textBlock: TextBlockCreateOneWithoutBlocksInput
}

input BlockCreateWithoutSingleSlidesInput {
  halfSlides: HalfSlideCreateManyWithoutFirstHalfBlockInput
  halfSlidesImplementing: HalfSlideCreateManyWithoutSecondHalfBlockInput
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockCreateOneWithoutBlocksInput
  quarterSlides: QuarterSlideCreateManyWithoutMainBlockInput
  quarterSlidesImplementing: QuarterSlideCreateManyWithoutSideBlockInput
  textBlock: TextBlockCreateOneWithoutBlocksInput
}

input BlockFilter {
  every: BlockWhereInput
  none: BlockWhereInput
  some: BlockWhereInput
}

input BlockScalarWhereInput {
  AND: [BlockScalarWhereInput!]
  halfSlides: HalfSlideFilter
  halfSlidesImplementing: HalfSlideFilter
  id: StringFilter
  NOT: [BlockScalarWhereInput!]
  OR: [BlockScalarWhereInput!]
  quarterSlides: QuarterSlideFilter
  quarterSlidesImplementing: QuarterSlideFilter
  singleSlides: SingleSlideFilter
}

input BlockUpdateManyDataInput {
  id: String
}

input BlockUpdateManyWithoutMultipleChoiceQuestionBlockInput {
  connect: [BlockWhereUniqueInput!]
  create: [BlockCreateWithoutMultipleChoiceQuestionBlockInput!]
  delete: [BlockWhereUniqueInput!]
  deleteMany: [BlockScalarWhereInput!]
  disconnect: [BlockWhereUniqueInput!]
  set: [BlockWhereUniqueInput!]
  update: [BlockUpdateWithWhereUniqueWithoutMultipleChoiceQuestionBlockInput!]
  updateMany: [BlockUpdateManyWithWhereNestedInput!]
  upsert: [BlockUpsertWithWhereUniqueWithoutMultipleChoiceQuestionBlockInput!]
}

input BlockUpdateManyWithWhereNestedInput {
  data: BlockUpdateManyDataInput!
  where: BlockScalarWhereInput!
}

input BlockUpdateOneRequiredWithoutHalfSlidesImplementingInput {
  connect: BlockWhereUniqueInput
  create: BlockCreateWithoutHalfSlidesImplementingInput
  update: BlockUpdateWithoutHalfSlidesImplementingDataInput
  upsert: BlockUpsertWithoutHalfSlidesImplementingInput
}

input BlockUpdateOneRequiredWithoutHalfSlidesInput {
  connect: BlockWhereUniqueInput
  create: BlockCreateWithoutHalfSlidesInput
  update: BlockUpdateWithoutHalfSlidesDataInput
  upsert: BlockUpsertWithoutHalfSlidesInput
}

input BlockUpdateOneRequiredWithoutQuarterSlidesImplementingInput {
  connect: BlockWhereUniqueInput
  create: BlockCreateWithoutQuarterSlidesImplementingInput
  update: BlockUpdateWithoutQuarterSlidesImplementingDataInput
  upsert: BlockUpsertWithoutQuarterSlidesImplementingInput
}

input BlockUpdateOneRequiredWithoutQuarterSlidesInput {
  connect: BlockWhereUniqueInput
  create: BlockCreateWithoutQuarterSlidesInput
  update: BlockUpdateWithoutQuarterSlidesDataInput
  upsert: BlockUpsertWithoutQuarterSlidesInput
}

input BlockUpdateOneRequiredWithoutSingleSlidesInput {
  connect: BlockWhereUniqueInput
  create: BlockCreateWithoutSingleSlidesInput
  update: BlockUpdateWithoutSingleSlidesDataInput
  upsert: BlockUpsertWithoutSingleSlidesInput
}

input BlockUpdateWithoutHalfSlidesDataInput {
  halfSlidesImplementing: HalfSlideUpdateManyWithoutSecondHalfBlockInput
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockUpdateOneWithoutBlocksInput
  quarterSlides: QuarterSlideUpdateManyWithoutMainBlockInput
  quarterSlidesImplementing: QuarterSlideUpdateManyWithoutSideBlockInput
  singleSlides: SingleSlideUpdateManyWithoutBlockInput
  textBlock: TextBlockUpdateOneWithoutBlocksInput
}

input BlockUpdateWithoutHalfSlidesImplementingDataInput {
  halfSlides: HalfSlideUpdateManyWithoutFirstHalfBlockInput
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockUpdateOneWithoutBlocksInput
  quarterSlides: QuarterSlideUpdateManyWithoutMainBlockInput
  quarterSlidesImplementing: QuarterSlideUpdateManyWithoutSideBlockInput
  singleSlides: SingleSlideUpdateManyWithoutBlockInput
  textBlock: TextBlockUpdateOneWithoutBlocksInput
}

input BlockUpdateWithoutMultipleChoiceQuestionBlockDataInput {
  halfSlides: HalfSlideUpdateManyWithoutFirstHalfBlockInput
  halfSlidesImplementing: HalfSlideUpdateManyWithoutSecondHalfBlockInput
  id: String
  quarterSlides: QuarterSlideUpdateManyWithoutMainBlockInput
  quarterSlidesImplementing: QuarterSlideUpdateManyWithoutSideBlockInput
  singleSlides: SingleSlideUpdateManyWithoutBlockInput
  textBlock: TextBlockUpdateOneWithoutBlocksInput
}

input BlockUpdateWithoutQuarterSlidesDataInput {
  halfSlides: HalfSlideUpdateManyWithoutFirstHalfBlockInput
  halfSlidesImplementing: HalfSlideUpdateManyWithoutSecondHalfBlockInput
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockUpdateOneWithoutBlocksInput
  quarterSlidesImplementing: QuarterSlideUpdateManyWithoutSideBlockInput
  singleSlides: SingleSlideUpdateManyWithoutBlockInput
  textBlock: TextBlockUpdateOneWithoutBlocksInput
}

input BlockUpdateWithoutQuarterSlidesImplementingDataInput {
  halfSlides: HalfSlideUpdateManyWithoutFirstHalfBlockInput
  halfSlidesImplementing: HalfSlideUpdateManyWithoutSecondHalfBlockInput
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockUpdateOneWithoutBlocksInput
  quarterSlides: QuarterSlideUpdateManyWithoutMainBlockInput
  singleSlides: SingleSlideUpdateManyWithoutBlockInput
  textBlock: TextBlockUpdateOneWithoutBlocksInput
}

input BlockUpdateWithoutSingleSlidesDataInput {
  halfSlides: HalfSlideUpdateManyWithoutFirstHalfBlockInput
  halfSlidesImplementing: HalfSlideUpdateManyWithoutSecondHalfBlockInput
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockUpdateOneWithoutBlocksInput
  quarterSlides: QuarterSlideUpdateManyWithoutMainBlockInput
  quarterSlidesImplementing: QuarterSlideUpdateManyWithoutSideBlockInput
  textBlock: TextBlockUpdateOneWithoutBlocksInput
}

input BlockUpdateWithWhereUniqueWithoutMultipleChoiceQuestionBlockInput {
  data: BlockUpdateWithoutMultipleChoiceQuestionBlockDataInput!
  where: BlockWhereUniqueInput!
}

input BlockUpsertWithoutHalfSlidesImplementingInput {
  create: BlockCreateWithoutHalfSlidesImplementingInput!
  update: BlockUpdateWithoutHalfSlidesImplementingDataInput!
}

input BlockUpsertWithoutHalfSlidesInput {
  create: BlockCreateWithoutHalfSlidesInput!
  update: BlockUpdateWithoutHalfSlidesDataInput!
}

input BlockUpsertWithoutQuarterSlidesImplementingInput {
  create: BlockCreateWithoutQuarterSlidesImplementingInput!
  update: BlockUpdateWithoutQuarterSlidesImplementingDataInput!
}

input BlockUpsertWithoutQuarterSlidesInput {
  create: BlockCreateWithoutQuarterSlidesInput!
  update: BlockUpdateWithoutQuarterSlidesDataInput!
}

input BlockUpsertWithoutSingleSlidesInput {
  create: BlockCreateWithoutSingleSlidesInput!
  update: BlockUpdateWithoutSingleSlidesDataInput!
}

input BlockUpsertWithWhereUniqueWithoutMultipleChoiceQuestionBlockInput {
  create: BlockCreateWithoutMultipleChoiceQuestionBlockInput!
  update: BlockUpdateWithoutMultipleChoiceQuestionBlockDataInput!
  where: BlockWhereUniqueInput!
}

input BlockWhereInput {
  AND: [BlockWhereInput!]
  halfSlides: HalfSlideFilter
  halfSlidesImplementing: HalfSlideFilter
  id: StringFilter
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockWhereInput
  NOT: [BlockWhereInput!]
  OR: [BlockWhereInput!]
  quarterSlides: QuarterSlideFilter
  quarterSlidesImplementing: QuarterSlideFilter
  singleSlides: SingleSlideFilter
  textBlock: TextBlockWhereInput
}

input BlockWhereUniqueInput {
  id: String
}

input BooleanFilter {
  equals: Boolean
  not: Boolean
}

input ChoiceInput {
  correct: Boolean!
  text: String!
}

type Content {
  author: String!
  course: Course
  id: String!
  title: String!
}

input ContentCreateManyWithoutCourseInput {
  connect: [ContentWhereUniqueInput!]
  create: [ContentCreateWithoutCourseInput!]
}

input ContentCreateWithoutCourseInput {
  author: String!
  createdAt: DateTime
  id: String
  pages: PageCreateManyWithoutContentInput
  title: String!
}

input ContentFilter {
  every: ContentWhereInput
  none: ContentWhereInput
  some: ContentWhereInput
}

input ContentScalarWhereInput {
  AND: [ContentScalarWhereInput!]
  author: StringFilter
  createdAt: DateTimeFilter
  id: StringFilter
  NOT: [ContentScalarWhereInput!]
  OR: [ContentScalarWhereInput!]
  pages: PageFilter
  title: StringFilter
}

input ContentUpdateManyDataInput {
  author: String
  createdAt: DateTime
  id: String
  title: String
}

input ContentUpdateManyWithoutCourseInput {
  connect: [ContentWhereUniqueInput!]
  create: [ContentCreateWithoutCourseInput!]
  delete: [ContentWhereUniqueInput!]
  deleteMany: [ContentScalarWhereInput!]
  disconnect: [ContentWhereUniqueInput!]
  set: [ContentWhereUniqueInput!]
  update: [ContentUpdateWithWhereUniqueWithoutCourseInput!]
  updateMany: [ContentUpdateManyWithWhereNestedInput!]
  upsert: [ContentUpsertWithWhereUniqueWithoutCourseInput!]
}

input ContentUpdateManyWithWhereNestedInput {
  data: ContentUpdateManyDataInput!
  where: ContentScalarWhereInput!
}

input ContentUpdateWithoutCourseDataInput {
  author: String
  createdAt: DateTime
  id: String
  pages: PageUpdateManyWithoutContentInput
  title: String
}

input ContentUpdateWithWhereUniqueWithoutCourseInput {
  data: ContentUpdateWithoutCourseDataInput!
  where: ContentWhereUniqueInput!
}

input ContentUpsertWithWhereUniqueWithoutCourseInput {
  create: ContentCreateWithoutCourseInput!
  update: ContentUpdateWithoutCourseDataInput!
  where: ContentWhereUniqueInput!
}

input ContentWhereInput {
  AND: [ContentWhereInput!]
  author: StringFilter
  course: CourseWhereInput
  createdAt: DateTimeFilter
  id: StringFilter
  NOT: [ContentWhereInput!]
  OR: [ContentWhereInput!]
  pages: PageFilter
  title: StringFilter
}

input ContentWhereUniqueInput {
  id: String
}

type Course {
  description: String
  id: String!
  instructors(after: InstructorWhereUniqueInput, before: InstructorWhereUniqueInput, first: Int, last: Int, skip: Int): [Instructor!]!
  lessonPlan: LessonPlan!
  name: String!
  students(after: StudentWhereUniqueInput, before: StudentWhereUniqueInput, first: Int, last: Int, skip: Int): [Student!]!
  suggestedLevel: GradeLevel!
}

input CourseCreateInput {
  contents: ContentCreateManyWithoutCourseInput
  createdAt: DateTime
  description: String
  id: String
  lessonPlan: LessonPlanCreateOneWithoutCourseInput!
  name: String!
  students: StudentCreateManyWithoutCoursesInput
  suggestedLevel: GradeLevel!
}

input CourseCreateManyWithoutInstructorsInput {
  connect: [CourseWhereUniqueInput!]
  create: [CourseCreateWithoutInstructorsInput!]
}

input CourseCreateManyWithoutStudentsInput {
  connect: [CourseWhereUniqueInput!]
  create: [CourseCreateWithoutStudentsInput!]
}

input CourseCreateOneWithoutLessonPlanInput {
  connect: CourseWhereUniqueInput
  create: CourseCreateWithoutLessonPlanInput
}

input CourseCreateWithoutInstructorsInput {
  contents: ContentCreateManyWithoutCourseInput
  createdAt: DateTime
  description: String
  id: String
  lessonPlan: LessonPlanCreateOneWithoutCourseInput!
  name: String!
  students: StudentCreateManyWithoutCoursesInput
  suggestedLevel: GradeLevel!
}

input CourseCreateWithoutLessonPlanInput {
  contents: ContentCreateManyWithoutCourseInput
  createdAt: DateTime
  description: String
  id: String
  instructors: InstructorCreateManyWithoutCoursesInput
  name: String!
  students: StudentCreateManyWithoutCoursesInput
  suggestedLevel: GradeLevel!
}

input CourseCreateWithoutStudentsInput {
  contents: ContentCreateManyWithoutCourseInput
  createdAt: DateTime
  description: String
  id: String
  instructors: InstructorCreateManyWithoutCoursesInput
  lessonPlan: LessonPlanCreateOneWithoutCourseInput!
  name: String!
  suggestedLevel: GradeLevel!
}

input CourseFilter {
  every: CourseWhereInput
  none: CourseWhereInput
  some: CourseWhereInput
}

input CourseScalarWhereInput {
  AND: [CourseScalarWhereInput!]
  contents: ContentFilter
  createdAt: DateTimeFilter
  description: NullableStringFilter
  id: StringFilter
  instructors: InstructorFilter
  name: StringFilter
  NOT: [CourseScalarWhereInput!]
  OR: [CourseScalarWhereInput!]
  students: StudentFilter
  suggestedLevel: GradeLevel
}

input CourseUpdateInput {
  contents: ContentUpdateManyWithoutCourseInput
  createdAt: DateTime
  description: String
  id: String
  instructors: InstructorUpdateManyWithoutCoursesInput
  lessonPlan: LessonPlanUpdateOneRequiredWithoutCourseInput
  name: String
  students: StudentUpdateManyWithoutCoursesInput
  suggestedLevel: GradeLevel
}

input CourseUpdateManyDataInput {
  createdAt: DateTime
  description: String
  id: String
  name: String
  suggestedLevel: GradeLevel
}

input CourseUpdateManyWithoutInstructorsInput {
  connect: [CourseWhereUniqueInput!]
  create: [CourseCreateWithoutInstructorsInput!]
  delete: [CourseWhereUniqueInput!]
  deleteMany: [CourseScalarWhereInput!]
  disconnect: [CourseWhereUniqueInput!]
  set: [CourseWhereUniqueInput!]
  update: [CourseUpdateWithWhereUniqueWithoutInstructorsInput!]
  updateMany: [CourseUpdateManyWithWhereNestedInput!]
  upsert: [CourseUpsertWithWhereUniqueWithoutInstructorsInput!]
}

input CourseUpdateManyWithoutStudentsInput {
  connect: [CourseWhereUniqueInput!]
  create: [CourseCreateWithoutStudentsInput!]
  delete: [CourseWhereUniqueInput!]
  deleteMany: [CourseScalarWhereInput!]
  disconnect: [CourseWhereUniqueInput!]
  set: [CourseWhereUniqueInput!]
  update: [CourseUpdateWithWhereUniqueWithoutStudentsInput!]
  updateMany: [CourseUpdateManyWithWhereNestedInput!]
  upsert: [CourseUpsertWithWhereUniqueWithoutStudentsInput!]
}

input CourseUpdateManyWithWhereNestedInput {
  data: CourseUpdateManyDataInput!
  where: CourseScalarWhereInput!
}

input CourseUpdateOneRequiredWithoutLessonPlanInput {
  connect: CourseWhereUniqueInput
  create: CourseCreateWithoutLessonPlanInput
  update: CourseUpdateWithoutLessonPlanDataInput
  upsert: CourseUpsertWithoutLessonPlanInput
}

input CourseUpdateWithoutInstructorsDataInput {
  contents: ContentUpdateManyWithoutCourseInput
  createdAt: DateTime
  description: String
  id: String
  lessonPlan: LessonPlanUpdateOneRequiredWithoutCourseInput
  name: String
  students: StudentUpdateManyWithoutCoursesInput
  suggestedLevel: GradeLevel
}

input CourseUpdateWithoutLessonPlanDataInput {
  contents: ContentUpdateManyWithoutCourseInput
  createdAt: DateTime
  description: String
  id: String
  instructors: InstructorUpdateManyWithoutCoursesInput
  name: String
  students: StudentUpdateManyWithoutCoursesInput
  suggestedLevel: GradeLevel
}

input CourseUpdateWithoutStudentsDataInput {
  contents: ContentUpdateManyWithoutCourseInput
  createdAt: DateTime
  description: String
  id: String
  instructors: InstructorUpdateManyWithoutCoursesInput
  lessonPlan: LessonPlanUpdateOneRequiredWithoutCourseInput
  name: String
  suggestedLevel: GradeLevel
}

input CourseUpdateWithWhereUniqueWithoutInstructorsInput {
  data: CourseUpdateWithoutInstructorsDataInput!
  where: CourseWhereUniqueInput!
}

input CourseUpdateWithWhereUniqueWithoutStudentsInput {
  data: CourseUpdateWithoutStudentsDataInput!
  where: CourseWhereUniqueInput!
}

input CourseUpsertWithoutLessonPlanInput {
  create: CourseCreateWithoutLessonPlanInput!
  update: CourseUpdateWithoutLessonPlanDataInput!
}

input CourseUpsertWithWhereUniqueWithoutInstructorsInput {
  create: CourseCreateWithoutInstructorsInput!
  update: CourseUpdateWithoutInstructorsDataInput!
  where: CourseWhereUniqueInput!
}

input CourseUpsertWithWhereUniqueWithoutStudentsInput {
  create: CourseCreateWithoutStudentsInput!
  update: CourseUpdateWithoutStudentsDataInput!
  where: CourseWhereUniqueInput!
}

input CourseWhereInput {
  AND: [CourseWhereInput!]
  contents: ContentFilter
  createdAt: DateTimeFilter
  description: NullableStringFilter
  id: StringFilter
  instructors: InstructorFilter
  lessonPlan: LessonPlanWhereInput
  name: StringFilter
  NOT: [CourseWhereInput!]
  OR: [CourseWhereInput!]
  students: StudentFilter
  suggestedLevel: GradeLevel
}

input CourseWhereUniqueInput {
  id: String
}

input CreateSlideInput {
  lessonId: String!
  slideType: String!
  title: String!
}

input CreateStudentInput {
  courseId: String!
  firstName: String!
  gradeLevel: GradeLevel!
  lastName: String!
  username: String!
}

scalar DateTime

input DateTimeFilter {
  equals: DateTime
  gt: DateTime
  gte: DateTime
  in: [DateTime!]
  lt: DateTime
  lte: DateTime
  not: DateTime
  notIn: [DateTime!]
}

input DeleteCourseInput {
  courseId: String!
}

input DeleteLessonInput {
  lessonId: String!
}

input DeleteSingleStudentInput {
  studentId: String!
}

input DeleteStudentInput {
  courseId: String!
}

input EditStudentInput {
  firstName: String!
  gradeLevel: GradeLevel!
  lastName: String!
  studentId: String!
  username: String!
}

type EmptyBlock {
  id: String!
}

enum GradeLevel {
  EIGHTH
  ELEVENTH
  FIFTH
  FIRST
  FOURTH
  NINTH
  SECOND
  SEVENTH
  SIXTH
  TENTH
  THIRD
  TWELFTH
}

type Guardian implements User {
  email: String!
  firstName: String!
  id: String!
  lastName: String!
  students(after: StudentWhereUniqueInput, before: StudentWhereUniqueInput, first: Int, last: Int, skip: Int): [Student!]!
  username: String!
}

input GuardianCreateManyWithoutStudentsInput {
  connect: [GuardianWhereUniqueInput!]
  create: [GuardianCreateWithoutStudentsInput!]
}

input GuardianCreateOneWithoutUserInput {
  connect: GuardianWhereUniqueInput
  create: GuardianCreateWithoutUserInput
}

input GuardianCreateWithoutStudentsInput {
  createdAt: DateTime
  email: String!
  id: String
  user: UserCreateOneWithoutGuardianInput!
}

input GuardianCreateWithoutUserInput {
  createdAt: DateTime
  email: String!
  id: String
  students: StudentCreateManyWithoutGuardiansInput
}

input GuardianFilter {
  every: GuardianWhereInput
  none: GuardianWhereInput
  some: GuardianWhereInput
}

input GuardianScalarWhereInput {
  AND: [GuardianScalarWhereInput!]
  createdAt: DateTimeFilter
  email: StringFilter
  id: StringFilter
  NOT: [GuardianScalarWhereInput!]
  OR: [GuardianScalarWhereInput!]
  students: StudentFilter
}

input GuardianUpdateManyDataInput {
  createdAt: DateTime
  email: String
  id: String
}

input GuardianUpdateManyWithoutStudentsInput {
  connect: [GuardianWhereUniqueInput!]
  create: [GuardianCreateWithoutStudentsInput!]
  delete: [GuardianWhereUniqueInput!]
  deleteMany: [GuardianScalarWhereInput!]
  disconnect: [GuardianWhereUniqueInput!]
  set: [GuardianWhereUniqueInput!]
  update: [GuardianUpdateWithWhereUniqueWithoutStudentsInput!]
  updateMany: [GuardianUpdateManyWithWhereNestedInput!]
  upsert: [GuardianUpsertWithWhereUniqueWithoutStudentsInput!]
}

input GuardianUpdateManyWithWhereNestedInput {
  data: GuardianUpdateManyDataInput!
  where: GuardianScalarWhereInput!
}

input GuardianUpdateOneWithoutUserInput {
  connect: GuardianWhereUniqueInput
  create: GuardianCreateWithoutUserInput
  delete: Boolean
  disconnect: Boolean
  update: GuardianUpdateWithoutUserDataInput
  upsert: GuardianUpsertWithoutUserInput
}

input GuardianUpdateWithoutStudentsDataInput {
  createdAt: DateTime
  email: String
  id: String
  user: UserUpdateOneRequiredWithoutGuardianInput
}

input GuardianUpdateWithoutUserDataInput {
  createdAt: DateTime
  email: String
  id: String
  students: StudentUpdateManyWithoutGuardiansInput
}

input GuardianUpdateWithWhereUniqueWithoutStudentsInput {
  data: GuardianUpdateWithoutStudentsDataInput!
  where: GuardianWhereUniqueInput!
}

input GuardianUpsertWithoutUserInput {
  create: GuardianCreateWithoutUserInput!
  update: GuardianUpdateWithoutUserDataInput!
}

input GuardianUpsertWithWhereUniqueWithoutStudentsInput {
  create: GuardianCreateWithoutStudentsInput!
  update: GuardianUpdateWithoutStudentsDataInput!
  where: GuardianWhereUniqueInput!
}

input GuardianWhereInput {
  AND: [GuardianWhereInput!]
  createdAt: DateTimeFilter
  email: StringFilter
  id: StringFilter
  NOT: [GuardianWhereInput!]
  OR: [GuardianWhereInput!]
  students: StudentFilter
  user: UserWhereInput
}

input GuardianWhereUniqueInput {
  email: String
  id: String
}

type HalfSlide implements Slide {
  firstHalfBlock: Block!
  id: String!
  secondHalfBlock: Block!
  title: String!
}

input HalfSlideCreateManyWithoutFirstHalfBlockInput {
  connect: [HalfSlideWhereUniqueInput!]
  create: [HalfSlideCreateWithoutFirstHalfBlockInput!]
}

input HalfSlideCreateManyWithoutSecondHalfBlockInput {
  connect: [HalfSlideWhereUniqueInput!]
  create: [HalfSlideCreateWithoutSecondHalfBlockInput!]
}

input HalfSlideCreateOneWithoutSlidesInput {
  connect: HalfSlideWhereUniqueInput
  create: HalfSlideCreateWithoutSlidesInput
}

input HalfSlideCreateWithoutFirstHalfBlockInput {
  id: String
  secondHalfBlock: BlockCreateOneWithoutHalfSlidesImplementingInput!
  slides: SlideCreateManyWithoutHalfSlideInput
}

input HalfSlideCreateWithoutSecondHalfBlockInput {
  firstHalfBlock: BlockCreateOneWithoutHalfSlidesInput!
  id: String
  slides: SlideCreateManyWithoutHalfSlideInput
}

input HalfSlideCreateWithoutSlidesInput {
  firstHalfBlock: BlockCreateOneWithoutHalfSlidesInput!
  id: String
  secondHalfBlock: BlockCreateOneWithoutHalfSlidesImplementingInput!
}

input HalfSlideFilter {
  every: HalfSlideWhereInput
  none: HalfSlideWhereInput
  some: HalfSlideWhereInput
}

input HalfSlideScalarWhereInput {
  AND: [HalfSlideScalarWhereInput!]
  id: StringFilter
  NOT: [HalfSlideScalarWhereInput!]
  OR: [HalfSlideScalarWhereInput!]
  slides: SlideFilter
}

input HalfSlideUpdateManyDataInput {
  id: String
}

input HalfSlideUpdateManyWithoutFirstHalfBlockInput {
  connect: [HalfSlideWhereUniqueInput!]
  create: [HalfSlideCreateWithoutFirstHalfBlockInput!]
  delete: [HalfSlideWhereUniqueInput!]
  deleteMany: [HalfSlideScalarWhereInput!]
  disconnect: [HalfSlideWhereUniqueInput!]
  set: [HalfSlideWhereUniqueInput!]
  update: [HalfSlideUpdateWithWhereUniqueWithoutFirstHalfBlockInput!]
  updateMany: [HalfSlideUpdateManyWithWhereNestedInput!]
  upsert: [HalfSlideUpsertWithWhereUniqueWithoutFirstHalfBlockInput!]
}

input HalfSlideUpdateManyWithoutSecondHalfBlockInput {
  connect: [HalfSlideWhereUniqueInput!]
  create: [HalfSlideCreateWithoutSecondHalfBlockInput!]
  delete: [HalfSlideWhereUniqueInput!]
  deleteMany: [HalfSlideScalarWhereInput!]
  disconnect: [HalfSlideWhereUniqueInput!]
  set: [HalfSlideWhereUniqueInput!]
  update: [HalfSlideUpdateWithWhereUniqueWithoutSecondHalfBlockInput!]
  updateMany: [HalfSlideUpdateManyWithWhereNestedInput!]
  upsert: [HalfSlideUpsertWithWhereUniqueWithoutSecondHalfBlockInput!]
}

input HalfSlideUpdateManyWithWhereNestedInput {
  data: HalfSlideUpdateManyDataInput!
  where: HalfSlideScalarWhereInput!
}

input HalfSlideUpdateOneWithoutSlidesInput {
  connect: HalfSlideWhereUniqueInput
  create: HalfSlideCreateWithoutSlidesInput
  delete: Boolean
  disconnect: Boolean
  update: HalfSlideUpdateWithoutSlidesDataInput
  upsert: HalfSlideUpsertWithoutSlidesInput
}

input HalfSlideUpdateWithoutFirstHalfBlockDataInput {
  id: String
  secondHalfBlock: BlockUpdateOneRequiredWithoutHalfSlidesImplementingInput
  slides: SlideUpdateManyWithoutHalfSlideInput
}

input HalfSlideUpdateWithoutSecondHalfBlockDataInput {
  firstHalfBlock: BlockUpdateOneRequiredWithoutHalfSlidesInput
  id: String
  slides: SlideUpdateManyWithoutHalfSlideInput
}

input HalfSlideUpdateWithoutSlidesDataInput {
  firstHalfBlock: BlockUpdateOneRequiredWithoutHalfSlidesInput
  id: String
  secondHalfBlock: BlockUpdateOneRequiredWithoutHalfSlidesImplementingInput
}

input HalfSlideUpdateWithWhereUniqueWithoutFirstHalfBlockInput {
  data: HalfSlideUpdateWithoutFirstHalfBlockDataInput!
  where: HalfSlideWhereUniqueInput!
}

input HalfSlideUpdateWithWhereUniqueWithoutSecondHalfBlockInput {
  data: HalfSlideUpdateWithoutSecondHalfBlockDataInput!
  where: HalfSlideWhereUniqueInput!
}

input HalfSlideUpsertWithoutSlidesInput {
  create: HalfSlideCreateWithoutSlidesInput!
  update: HalfSlideUpdateWithoutSlidesDataInput!
}

input HalfSlideUpsertWithWhereUniqueWithoutFirstHalfBlockInput {
  create: HalfSlideCreateWithoutFirstHalfBlockInput!
  update: HalfSlideUpdateWithoutFirstHalfBlockDataInput!
  where: HalfSlideWhereUniqueInput!
}

input HalfSlideUpsertWithWhereUniqueWithoutSecondHalfBlockInput {
  create: HalfSlideCreateWithoutSecondHalfBlockInput!
  update: HalfSlideUpdateWithoutSecondHalfBlockDataInput!
  where: HalfSlideWhereUniqueInput!
}

input HalfSlideWhereInput {
  AND: [HalfSlideWhereInput!]
  firstHalfBlock: BlockWhereInput
  id: StringFilter
  NOT: [HalfSlideWhereInput!]
  OR: [HalfSlideWhereInput!]
  secondHalfBlock: BlockWhereInput
  slides: SlideFilter
}

input HalfSlideWhereUniqueInput {
  id: String
}

type Instructor implements User {
  courses(after: CourseWhereUniqueInput, before: CourseWhereUniqueInput, first: Int, last: Int, skip: Int): [Course!]!
  email: String!
  firstName: String!
  id: String!
  lastName: String!
  username: String!
}

input InstructorCreateManyWithoutCoursesInput {
  connect: [InstructorWhereUniqueInput!]
  create: [InstructorCreateWithoutCoursesInput!]
}

input InstructorCreateOneWithoutUserInput {
  connect: InstructorWhereUniqueInput
  create: InstructorCreateWithoutUserInput
}

input InstructorCreateWithoutCoursesInput {
  createdAt: DateTime
  email: String!
  id: String
  user: UserCreateOneWithoutInstructorInput!
}

input InstructorCreateWithoutUserInput {
  courses: CourseCreateManyWithoutInstructorsInput
  createdAt: DateTime
  email: String!
  id: String
}

input InstructorFilter {
  every: InstructorWhereInput
  none: InstructorWhereInput
  some: InstructorWhereInput
}

input InstructorScalarWhereInput {
  AND: [InstructorScalarWhereInput!]
  courses: CourseFilter
  createdAt: DateTimeFilter
  email: StringFilter
  id: StringFilter
  NOT: [InstructorScalarWhereInput!]
  OR: [InstructorScalarWhereInput!]
}

input InstructorUpdateManyDataInput {
  createdAt: DateTime
  email: String
  id: String
}

input InstructorUpdateManyWithoutCoursesInput {
  connect: [InstructorWhereUniqueInput!]
  create: [InstructorCreateWithoutCoursesInput!]
  delete: [InstructorWhereUniqueInput!]
  deleteMany: [InstructorScalarWhereInput!]
  disconnect: [InstructorWhereUniqueInput!]
  set: [InstructorWhereUniqueInput!]
  update: [InstructorUpdateWithWhereUniqueWithoutCoursesInput!]
  updateMany: [InstructorUpdateManyWithWhereNestedInput!]
  upsert: [InstructorUpsertWithWhereUniqueWithoutCoursesInput!]
}

input InstructorUpdateManyWithWhereNestedInput {
  data: InstructorUpdateManyDataInput!
  where: InstructorScalarWhereInput!
}

input InstructorUpdateOneWithoutUserInput {
  connect: InstructorWhereUniqueInput
  create: InstructorCreateWithoutUserInput
  delete: Boolean
  disconnect: Boolean
  update: InstructorUpdateWithoutUserDataInput
  upsert: InstructorUpsertWithoutUserInput
}

input InstructorUpdateWithoutCoursesDataInput {
  createdAt: DateTime
  email: String
  id: String
  user: UserUpdateOneRequiredWithoutInstructorInput
}

input InstructorUpdateWithoutUserDataInput {
  courses: CourseUpdateManyWithoutInstructorsInput
  createdAt: DateTime
  email: String
  id: String
}

input InstructorUpdateWithWhereUniqueWithoutCoursesInput {
  data: InstructorUpdateWithoutCoursesDataInput!
  where: InstructorWhereUniqueInput!
}

input InstructorUpsertWithoutUserInput {
  create: InstructorCreateWithoutUserInput!
  update: InstructorUpdateWithoutUserDataInput!
}

input InstructorUpsertWithWhereUniqueWithoutCoursesInput {
  create: InstructorCreateWithoutCoursesInput!
  update: InstructorUpdateWithoutCoursesDataInput!
  where: InstructorWhereUniqueInput!
}

input InstructorWhereInput {
  AND: [InstructorWhereInput!]
  courses: CourseFilter
  createdAt: DateTimeFilter
  email: StringFilter
  id: StringFilter
  NOT: [InstructorWhereInput!]
  OR: [InstructorWhereInput!]
  user: UserWhereInput
}

input InstructorWhereUniqueInput {
  email: String
  id: String
}

type Lesson {
  id: String!
  slides: [Slide!]!
  title: String!
}

input LessonCreateInput {
  id: String
  lessonPlan: LessonPlanCreateOneWithoutLessonsInput
  slides: SlideCreateManyWithoutLessonInput
  title: String!
}

input LessonCreateManyWithoutLessonPlanInput {
  connect: [LessonWhereUniqueInput!]
  create: [LessonCreateWithoutLessonPlanInput!]
}

input LessonCreateOneWithoutSlidesInput {
  connect: LessonWhereUniqueInput
  create: LessonCreateWithoutSlidesInput
}

input LessonCreateWithoutLessonPlanInput {
  id: String
  slides: SlideCreateManyWithoutLessonInput
  title: String!
}

input LessonCreateWithoutSlidesInput {
  id: String
  lessonPlan: LessonPlanCreateOneWithoutLessonsInput
  title: String!
}

input LessonFilter {
  every: LessonWhereInput
  none: LessonWhereInput
  some: LessonWhereInput
}

type LessonPlan {
  id: String!
  lessons(after: LessonWhereUniqueInput, before: LessonWhereUniqueInput, first: Int, last: Int, skip: Int): [Lesson!]!
}

input LessonPlanCreateOneWithoutCourseInput {
  connect: LessonPlanWhereUniqueInput
  create: LessonPlanCreateWithoutCourseInput
}

input LessonPlanCreateOneWithoutLessonsInput {
  connect: LessonPlanWhereUniqueInput
  create: LessonPlanCreateWithoutLessonsInput
}

input LessonPlanCreateWithoutCourseInput {
  id: String
  lessons: LessonCreateManyWithoutLessonPlanInput
}

input LessonPlanCreateWithoutLessonsInput {
  course: CourseCreateOneWithoutLessonPlanInput!
  id: String
}

input LessonPlanUpdateInput {
  course: CourseUpdateOneRequiredWithoutLessonPlanInput
  id: String
  lessons: LessonUpdateManyWithoutLessonPlanInput
}

input LessonPlanUpdateOneRequiredWithoutCourseInput {
  connect: LessonPlanWhereUniqueInput
  create: LessonPlanCreateWithoutCourseInput
  update: LessonPlanUpdateWithoutCourseDataInput
  upsert: LessonPlanUpsertWithoutCourseInput
}

input LessonPlanUpdateOneWithoutLessonsInput {
  connect: LessonPlanWhereUniqueInput
  create: LessonPlanCreateWithoutLessonsInput
  delete: Boolean
  disconnect: Boolean
  update: LessonPlanUpdateWithoutLessonsDataInput
  upsert: LessonPlanUpsertWithoutLessonsInput
}

input LessonPlanUpdateWithoutCourseDataInput {
  id: String
  lessons: LessonUpdateManyWithoutLessonPlanInput
}

input LessonPlanUpdateWithoutLessonsDataInput {
  course: CourseUpdateOneRequiredWithoutLessonPlanInput
  id: String
}

input LessonPlanUpsertWithoutCourseInput {
  create: LessonPlanCreateWithoutCourseInput!
  update: LessonPlanUpdateWithoutCourseDataInput!
}

input LessonPlanUpsertWithoutLessonsInput {
  create: LessonPlanCreateWithoutLessonsInput!
  update: LessonPlanUpdateWithoutLessonsDataInput!
}

input LessonPlanWhereInput {
  AND: [LessonPlanWhereInput!]
  course: CourseWhereInput
  id: StringFilter
  lessons: LessonFilter
  NOT: [LessonPlanWhereInput!]
  OR: [LessonPlanWhereInput!]
}

input LessonPlanWhereUniqueInput {
  id: String
}

input LessonScalarWhereInput {
  AND: [LessonScalarWhereInput!]
  id: StringFilter
  NOT: [LessonScalarWhereInput!]
  OR: [LessonScalarWhereInput!]
  slides: SlideFilter
  title: StringFilter
}

input LessonUpdateManyDataInput {
  id: String
  title: String
}

input LessonUpdateManyWithoutLessonPlanInput {
  connect: [LessonWhereUniqueInput!]
  create: [LessonCreateWithoutLessonPlanInput!]
  delete: [LessonWhereUniqueInput!]
  deleteMany: [LessonScalarWhereInput!]
  disconnect: [LessonWhereUniqueInput!]
  set: [LessonWhereUniqueInput!]
  update: [LessonUpdateWithWhereUniqueWithoutLessonPlanInput!]
  updateMany: [LessonUpdateManyWithWhereNestedInput!]
  upsert: [LessonUpsertWithWhereUniqueWithoutLessonPlanInput!]
}

input LessonUpdateManyWithWhereNestedInput {
  data: LessonUpdateManyDataInput!
  where: LessonScalarWhereInput!
}

input LessonUpdateOneWithoutSlidesInput {
  connect: LessonWhereUniqueInput
  create: LessonCreateWithoutSlidesInput
  delete: Boolean
  disconnect: Boolean
  update: LessonUpdateWithoutSlidesDataInput
  upsert: LessonUpsertWithoutSlidesInput
}

input LessonUpdateWithoutLessonPlanDataInput {
  id: String
  slides: SlideUpdateManyWithoutLessonInput
  title: String
}

input LessonUpdateWithoutSlidesDataInput {
  id: String
  lessonPlan: LessonPlanUpdateOneWithoutLessonsInput
  title: String
}

input LessonUpdateWithWhereUniqueWithoutLessonPlanInput {
  data: LessonUpdateWithoutLessonPlanDataInput!
  where: LessonWhereUniqueInput!
}

input LessonUpsertWithoutSlidesInput {
  create: LessonCreateWithoutSlidesInput!
  update: LessonUpdateWithoutSlidesDataInput!
}

input LessonUpsertWithWhereUniqueWithoutLessonPlanInput {
  create: LessonCreateWithoutLessonPlanInput!
  update: LessonUpdateWithoutLessonPlanDataInput!
  where: LessonWhereUniqueInput!
}

input LessonWhereInput {
  AND: [LessonWhereInput!]
  id: StringFilter
  lessonPlan: LessonPlanWhereInput
  NOT: [LessonWhereInput!]
  OR: [LessonWhereInput!]
  slides: SlideFilter
  title: StringFilter
}

input LessonWhereUniqueInput {
  id: String
}

input LogInInput {
  password: String!
  username: String!
}

type MultipleChoiceQuestionBlock {
  choices: [MultipleChoiceQuestionChoice!]!
  id: String!
  text: String!
}

input MultipleChoiceQuestionBlockCreateOneWithoutBlocksInput {
  connect: MultipleChoiceQuestionBlockWhereUniqueInput
  create: MultipleChoiceQuestionBlockCreateWithoutBlocksInput
}

input MultipleChoiceQuestionBlockCreateOneWithoutChoicesInput {
  connect: MultipleChoiceQuestionBlockWhereUniqueInput
  create: MultipleChoiceQuestionBlockCreateWithoutChoicesInput
}

input MultipleChoiceQuestionBlockCreateOneWithoutResponsesInput {
  connect: MultipleChoiceQuestionBlockWhereUniqueInput
  create: MultipleChoiceQuestionBlockCreateWithoutResponsesInput
}

input MultipleChoiceQuestionBlockCreateWithoutBlocksInput {
  choices: MultipleChoiceQuestionChoiceCreateManyWithoutMultipleChoiceQuestionBlockInput
  id: String
  responses: MultipleChoiceQuestionResponseCreateManyWithoutMultipleChoiceQuestionBlockInput
  text: String!
}

input MultipleChoiceQuestionBlockCreateWithoutChoicesInput {
  blocks: BlockCreateManyWithoutMultipleChoiceQuestionBlockInput
  id: String
  responses: MultipleChoiceQuestionResponseCreateManyWithoutMultipleChoiceQuestionBlockInput
  text: String!
}

input MultipleChoiceQuestionBlockCreateWithoutResponsesInput {
  blocks: BlockCreateManyWithoutMultipleChoiceQuestionBlockInput
  choices: MultipleChoiceQuestionChoiceCreateManyWithoutMultipleChoiceQuestionBlockInput
  id: String
  text: String!
}

input MultipleChoiceQuestionBlockUpdateOneWithoutBlocksInput {
  connect: MultipleChoiceQuestionBlockWhereUniqueInput
  create: MultipleChoiceQuestionBlockCreateWithoutBlocksInput
  delete: Boolean
  disconnect: Boolean
  update: MultipleChoiceQuestionBlockUpdateWithoutBlocksDataInput
  upsert: MultipleChoiceQuestionBlockUpsertWithoutBlocksInput
}

input MultipleChoiceQuestionBlockUpdateOneWithoutChoicesInput {
  connect: MultipleChoiceQuestionBlockWhereUniqueInput
  create: MultipleChoiceQuestionBlockCreateWithoutChoicesInput
  delete: Boolean
  disconnect: Boolean
  update: MultipleChoiceQuestionBlockUpdateWithoutChoicesDataInput
  upsert: MultipleChoiceQuestionBlockUpsertWithoutChoicesInput
}

input MultipleChoiceQuestionBlockUpdateOneWithoutResponsesInput {
  connect: MultipleChoiceQuestionBlockWhereUniqueInput
  create: MultipleChoiceQuestionBlockCreateWithoutResponsesInput
  delete: Boolean
  disconnect: Boolean
  update: MultipleChoiceQuestionBlockUpdateWithoutResponsesDataInput
  upsert: MultipleChoiceQuestionBlockUpsertWithoutResponsesInput
}

input MultipleChoiceQuestionBlockUpdateWithoutBlocksDataInput {
  choices: MultipleChoiceQuestionChoiceUpdateManyWithoutMultipleChoiceQuestionBlockInput
  id: String
  responses: MultipleChoiceQuestionResponseUpdateManyWithoutMultipleChoiceQuestionBlockInput
  text: String
}

input MultipleChoiceQuestionBlockUpdateWithoutChoicesDataInput {
  blocks: BlockUpdateManyWithoutMultipleChoiceQuestionBlockInput
  id: String
  responses: MultipleChoiceQuestionResponseUpdateManyWithoutMultipleChoiceQuestionBlockInput
  text: String
}

input MultipleChoiceQuestionBlockUpdateWithoutResponsesDataInput {
  blocks: BlockUpdateManyWithoutMultipleChoiceQuestionBlockInput
  choices: MultipleChoiceQuestionChoiceUpdateManyWithoutMultipleChoiceQuestionBlockInput
  id: String
  text: String
}

input MultipleChoiceQuestionBlockUpsertWithoutBlocksInput {
  create: MultipleChoiceQuestionBlockCreateWithoutBlocksInput!
  update: MultipleChoiceQuestionBlockUpdateWithoutBlocksDataInput!
}

input MultipleChoiceQuestionBlockUpsertWithoutChoicesInput {
  create: MultipleChoiceQuestionBlockCreateWithoutChoicesInput!
  update: MultipleChoiceQuestionBlockUpdateWithoutChoicesDataInput!
}

input MultipleChoiceQuestionBlockUpsertWithoutResponsesInput {
  create: MultipleChoiceQuestionBlockCreateWithoutResponsesInput!
  update: MultipleChoiceQuestionBlockUpdateWithoutResponsesDataInput!
}

input MultipleChoiceQuestionBlockWhereInput {
  AND: [MultipleChoiceQuestionBlockWhereInput!]
  blocks: BlockFilter
  choices: MultipleChoiceQuestionChoiceFilter
  id: StringFilter
  NOT: [MultipleChoiceQuestionBlockWhereInput!]
  OR: [MultipleChoiceQuestionBlockWhereInput!]
  responses: MultipleChoiceQuestionResponseFilter
  text: StringFilter
}

input MultipleChoiceQuestionBlockWhereUniqueInput {
  id: String
}

type MultipleChoiceQuestionChoice {
  correct: Boolean!
  id: String!

  """
  Whether or not the student selected this choice in their answer. Null if the viewer is not a student.
  """
  selected: Boolean
  text: String!
}

input MultipleChoiceQuestionChoiceCreateManyWithoutMultipleChoiceQuestionBlockInput {
  connect: [MultipleChoiceQuestionChoiceWhereUniqueInput!]
  create: [MultipleChoiceQuestionChoiceCreateWithoutMultipleChoiceQuestionBlockInput!]
}

input MultipleChoiceQuestionChoiceCreateOneWithoutMultipleChoiceQuestionResponsesInput {
  connect: MultipleChoiceQuestionChoiceWhereUniqueInput
  create: MultipleChoiceQuestionChoiceCreateWithoutMultipleChoiceQuestionResponsesInput
}

input MultipleChoiceQuestionChoiceCreateWithoutMultipleChoiceQuestionBlockInput {
  correct: Boolean!
  id: String
  multipleChoiceQuestionResponses: MultipleChoiceQuestionResponseCreateManyWithoutChoiceInput
  text: String!
}

input MultipleChoiceQuestionChoiceCreateWithoutMultipleChoiceQuestionResponsesInput {
  correct: Boolean!
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockCreateOneWithoutChoicesInput
  text: String!
}

input MultipleChoiceQuestionChoiceFilter {
  every: MultipleChoiceQuestionChoiceWhereInput
  none: MultipleChoiceQuestionChoiceWhereInput
  some: MultipleChoiceQuestionChoiceWhereInput
}

input MultipleChoiceQuestionChoiceScalarWhereInput {
  AND: [MultipleChoiceQuestionChoiceScalarWhereInput!]
  correct: BooleanFilter
  id: StringFilter
  multipleChoiceQuestionResponses: MultipleChoiceQuestionResponseFilter
  NOT: [MultipleChoiceQuestionChoiceScalarWhereInput!]
  OR: [MultipleChoiceQuestionChoiceScalarWhereInput!]
  text: StringFilter
}

input MultipleChoiceQuestionChoiceUpdateManyDataInput {
  correct: Boolean
  id: String
  text: String
}

input MultipleChoiceQuestionChoiceUpdateManyWithoutMultipleChoiceQuestionBlockInput {
  connect: [MultipleChoiceQuestionChoiceWhereUniqueInput!]
  create: [MultipleChoiceQuestionChoiceCreateWithoutMultipleChoiceQuestionBlockInput!]
  delete: [MultipleChoiceQuestionChoiceWhereUniqueInput!]
  deleteMany: [MultipleChoiceQuestionChoiceScalarWhereInput!]
  disconnect: [MultipleChoiceQuestionChoiceWhereUniqueInput!]
  set: [MultipleChoiceQuestionChoiceWhereUniqueInput!]
  update: [MultipleChoiceQuestionChoiceUpdateWithWhereUniqueWithoutMultipleChoiceQuestionBlockInput!]
  updateMany: [MultipleChoiceQuestionChoiceUpdateManyWithWhereNestedInput!]
  upsert: [MultipleChoiceQuestionChoiceUpsertWithWhereUniqueWithoutMultipleChoiceQuestionBlockInput!]
}

input MultipleChoiceQuestionChoiceUpdateManyWithWhereNestedInput {
  data: MultipleChoiceQuestionChoiceUpdateManyDataInput!
  where: MultipleChoiceQuestionChoiceScalarWhereInput!
}

input MultipleChoiceQuestionChoiceUpdateOneRequiredWithoutMultipleChoiceQuestionResponsesInput {
  connect: MultipleChoiceQuestionChoiceWhereUniqueInput
  create: MultipleChoiceQuestionChoiceCreateWithoutMultipleChoiceQuestionResponsesInput
  update: MultipleChoiceQuestionChoiceUpdateWithoutMultipleChoiceQuestionResponsesDataInput
  upsert: MultipleChoiceQuestionChoiceUpsertWithoutMultipleChoiceQuestionResponsesInput
}

input MultipleChoiceQuestionChoiceUpdateWithoutMultipleChoiceQuestionBlockDataInput {
  correct: Boolean
  id: String
  multipleChoiceQuestionResponses: MultipleChoiceQuestionResponseUpdateManyWithoutChoiceInput
  text: String
}

input MultipleChoiceQuestionChoiceUpdateWithoutMultipleChoiceQuestionResponsesDataInput {
  correct: Boolean
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockUpdateOneWithoutChoicesInput
  text: String
}

input MultipleChoiceQuestionChoiceUpdateWithWhereUniqueWithoutMultipleChoiceQuestionBlockInput {
  data: MultipleChoiceQuestionChoiceUpdateWithoutMultipleChoiceQuestionBlockDataInput!
  where: MultipleChoiceQuestionChoiceWhereUniqueInput!
}

input MultipleChoiceQuestionChoiceUpsertWithoutMultipleChoiceQuestionResponsesInput {
  create: MultipleChoiceQuestionChoiceCreateWithoutMultipleChoiceQuestionResponsesInput!
  update: MultipleChoiceQuestionChoiceUpdateWithoutMultipleChoiceQuestionResponsesDataInput!
}

input MultipleChoiceQuestionChoiceUpsertWithWhereUniqueWithoutMultipleChoiceQuestionBlockInput {
  create: MultipleChoiceQuestionChoiceCreateWithoutMultipleChoiceQuestionBlockInput!
  update: MultipleChoiceQuestionChoiceUpdateWithoutMultipleChoiceQuestionBlockDataInput!
  where: MultipleChoiceQuestionChoiceWhereUniqueInput!
}

input MultipleChoiceQuestionChoiceWhereInput {
  AND: [MultipleChoiceQuestionChoiceWhereInput!]
  correct: BooleanFilter
  id: StringFilter
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockWhereInput
  multipleChoiceQuestionResponses: MultipleChoiceQuestionResponseFilter
  NOT: [MultipleChoiceQuestionChoiceWhereInput!]
  OR: [MultipleChoiceQuestionChoiceWhereInput!]
  text: StringFilter
}

input MultipleChoiceQuestionChoiceWhereUniqueInput {
  id: String
}

input MultipleChoiceQuestionResponseCreateManyWithoutChoiceInput {
  connect: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  create: [MultipleChoiceQuestionResponseCreateWithoutChoiceInput!]
}

input MultipleChoiceQuestionResponseCreateManyWithoutMultipleChoiceQuestionBlockInput {
  connect: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  create: [MultipleChoiceQuestionResponseCreateWithoutMultipleChoiceQuestionBlockInput!]
}

input MultipleChoiceQuestionResponseCreateManyWithoutStudentInput {
  connect: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  create: [MultipleChoiceQuestionResponseCreateWithoutStudentInput!]
}

input MultipleChoiceQuestionResponseCreateWithoutChoiceInput {
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockCreateOneWithoutResponsesInput
  student: StudentCreateOneWithoutMultipleChoiceQuestionResponsesInput!
}

input MultipleChoiceQuestionResponseCreateWithoutMultipleChoiceQuestionBlockInput {
  choice: MultipleChoiceQuestionChoiceCreateOneWithoutMultipleChoiceQuestionResponsesInput!
  id: String
  student: StudentCreateOneWithoutMultipleChoiceQuestionResponsesInput!
}

input MultipleChoiceQuestionResponseCreateWithoutStudentInput {
  choice: MultipleChoiceQuestionChoiceCreateOneWithoutMultipleChoiceQuestionResponsesInput!
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockCreateOneWithoutResponsesInput
}

input MultipleChoiceQuestionResponseFilter {
  every: MultipleChoiceQuestionResponseWhereInput
  none: MultipleChoiceQuestionResponseWhereInput
  some: MultipleChoiceQuestionResponseWhereInput
}

input MultipleChoiceQuestionResponseScalarWhereInput {
  AND: [MultipleChoiceQuestionResponseScalarWhereInput!]
  id: StringFilter
  NOT: [MultipleChoiceQuestionResponseScalarWhereInput!]
  OR: [MultipleChoiceQuestionResponseScalarWhereInput!]
}

input MultipleChoiceQuestionResponseUpdateManyDataInput {
  id: String
}

input MultipleChoiceQuestionResponseUpdateManyWithoutChoiceInput {
  connect: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  create: [MultipleChoiceQuestionResponseCreateWithoutChoiceInput!]
  delete: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  deleteMany: [MultipleChoiceQuestionResponseScalarWhereInput!]
  disconnect: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  set: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  update: [MultipleChoiceQuestionResponseUpdateWithWhereUniqueWithoutChoiceInput!]
  updateMany: [MultipleChoiceQuestionResponseUpdateManyWithWhereNestedInput!]
  upsert: [MultipleChoiceQuestionResponseUpsertWithWhereUniqueWithoutChoiceInput!]
}

input MultipleChoiceQuestionResponseUpdateManyWithoutMultipleChoiceQuestionBlockInput {
  connect: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  create: [MultipleChoiceQuestionResponseCreateWithoutMultipleChoiceQuestionBlockInput!]
  delete: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  deleteMany: [MultipleChoiceQuestionResponseScalarWhereInput!]
  disconnect: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  set: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  update: [MultipleChoiceQuestionResponseUpdateWithWhereUniqueWithoutMultipleChoiceQuestionBlockInput!]
  updateMany: [MultipleChoiceQuestionResponseUpdateManyWithWhereNestedInput!]
  upsert: [MultipleChoiceQuestionResponseUpsertWithWhereUniqueWithoutMultipleChoiceQuestionBlockInput!]
}

input MultipleChoiceQuestionResponseUpdateManyWithoutStudentInput {
  connect: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  create: [MultipleChoiceQuestionResponseCreateWithoutStudentInput!]
  delete: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  deleteMany: [MultipleChoiceQuestionResponseScalarWhereInput!]
  disconnect: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  set: [MultipleChoiceQuestionResponseWhereUniqueInput!]
  update: [MultipleChoiceQuestionResponseUpdateWithWhereUniqueWithoutStudentInput!]
  updateMany: [MultipleChoiceQuestionResponseUpdateManyWithWhereNestedInput!]
  upsert: [MultipleChoiceQuestionResponseUpsertWithWhereUniqueWithoutStudentInput!]
}

input MultipleChoiceQuestionResponseUpdateManyWithWhereNestedInput {
  data: MultipleChoiceQuestionResponseUpdateManyDataInput!
  where: MultipleChoiceQuestionResponseScalarWhereInput!
}

input MultipleChoiceQuestionResponseUpdateWithoutChoiceDataInput {
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockUpdateOneWithoutResponsesInput
  student: StudentUpdateOneRequiredWithoutMultipleChoiceQuestionResponsesInput
}

input MultipleChoiceQuestionResponseUpdateWithoutMultipleChoiceQuestionBlockDataInput {
  choice: MultipleChoiceQuestionChoiceUpdateOneRequiredWithoutMultipleChoiceQuestionResponsesInput
  id: String
  student: StudentUpdateOneRequiredWithoutMultipleChoiceQuestionResponsesInput
}

input MultipleChoiceQuestionResponseUpdateWithoutStudentDataInput {
  choice: MultipleChoiceQuestionChoiceUpdateOneRequiredWithoutMultipleChoiceQuestionResponsesInput
  id: String
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockUpdateOneWithoutResponsesInput
}

input MultipleChoiceQuestionResponseUpdateWithWhereUniqueWithoutChoiceInput {
  data: MultipleChoiceQuestionResponseUpdateWithoutChoiceDataInput!
  where: MultipleChoiceQuestionResponseWhereUniqueInput!
}

input MultipleChoiceQuestionResponseUpdateWithWhereUniqueWithoutMultipleChoiceQuestionBlockInput {
  data: MultipleChoiceQuestionResponseUpdateWithoutMultipleChoiceQuestionBlockDataInput!
  where: MultipleChoiceQuestionResponseWhereUniqueInput!
}

input MultipleChoiceQuestionResponseUpdateWithWhereUniqueWithoutStudentInput {
  data: MultipleChoiceQuestionResponseUpdateWithoutStudentDataInput!
  where: MultipleChoiceQuestionResponseWhereUniqueInput!
}

input MultipleChoiceQuestionResponseUpsertWithWhereUniqueWithoutChoiceInput {
  create: MultipleChoiceQuestionResponseCreateWithoutChoiceInput!
  update: MultipleChoiceQuestionResponseUpdateWithoutChoiceDataInput!
  where: MultipleChoiceQuestionResponseWhereUniqueInput!
}

input MultipleChoiceQuestionResponseUpsertWithWhereUniqueWithoutMultipleChoiceQuestionBlockInput {
  create: MultipleChoiceQuestionResponseCreateWithoutMultipleChoiceQuestionBlockInput!
  update: MultipleChoiceQuestionResponseUpdateWithoutMultipleChoiceQuestionBlockDataInput!
  where: MultipleChoiceQuestionResponseWhereUniqueInput!
}

input MultipleChoiceQuestionResponseUpsertWithWhereUniqueWithoutStudentInput {
  create: MultipleChoiceQuestionResponseCreateWithoutStudentInput!
  update: MultipleChoiceQuestionResponseUpdateWithoutStudentDataInput!
  where: MultipleChoiceQuestionResponseWhereUniqueInput!
}

input MultipleChoiceQuestionResponseWhereInput {
  AND: [MultipleChoiceQuestionResponseWhereInput!]
  choice: MultipleChoiceQuestionChoiceWhereInput
  id: StringFilter
  multipleChoiceQuestionBlock: MultipleChoiceQuestionBlockWhereInput
  NOT: [MultipleChoiceQuestionResponseWhereInput!]
  OR: [MultipleChoiceQuestionResponseWhereInput!]
  student: StudentWhereInput
}

input MultipleChoiceQuestionResponseWhereUniqueInput {
  id: String
}

type Mutation {
  answerMultipleChoiceQuestionBlock(input: AnswerMultipleChoiceQuestionBlockInput!): MultipleChoiceQuestionBlock!
  createOneCourse(data: CourseCreateInput!): Course!
  createOneLesson(data: LessonCreateInput!): Lesson!
  createSlide(input: CreateSlideInput!): Slide!
  createStudent(input: CreateStudentInput!): Student!
  deleteCourse(input: DeleteCourseInput!): Course!
  deleteLesson(input: DeleteLessonInput!): Lesson!
  deleteSingleStudent(input: DeleteSingleStudentInput!): Student!
  deleteStudents(input: DeleteStudentInput!): Student!
  editStudent(input: EditStudentInput!): Student!
  logIn(input: LogInInput!): User!
  logOut: Boolean!
  registerUser(input: RegisterUserInput!): User!
  resetPassword(input: ResetPasswordInput!): User!
  sendInvitationEmail(input: SendInvitationEmailInput!): String!
  sendResetPasswordEmail(input: SendResetPasswordEmailInput!): String!
  updateBlockToMultipleChoiceBlock(input: UpdateBlockToMultipleChoiceBlockInput!): MultipleChoiceQuestionBlock!
  updateBlockToTextBlock(input: UpdateBlockToTextBlockInput!): TextBlock!
  updateOneCourse(data: CourseUpdateInput!, where: CourseWhereUniqueInput!): Course
  updateOneLessonPlan(data: LessonPlanUpdateInput!, where: LessonPlanWhereUniqueInput!): LessonPlan
}

input NullableStringFilter {
  contains: String
  endsWith: String
  equals: String
  gt: String
  gte: String
  in: [String!]
  lt: String
  lte: String
  not: String
  notIn: [String!]
  startsWith: String
}

input PageCreateManyWithoutContentInput {
  connect: [PageWhereUniqueInput!]
  create: [PageCreateWithoutContentInput!]
}

input PageCreateWithoutContentInput {
  createdAt: DateTime
  data: String!
  id: String
}

input PageFilter {
  every: PageWhereInput
  none: PageWhereInput
  some: PageWhereInput
}

input PageScalarWhereInput {
  AND: [PageScalarWhereInput!]
  createdAt: DateTimeFilter
  data: StringFilter
  id: StringFilter
  NOT: [PageScalarWhereInput!]
  OR: [PageScalarWhereInput!]
}

input PageUpdateManyDataInput {
  createdAt: DateTime
  data: String
  id: String
}

input PageUpdateManyWithoutContentInput {
  connect: [PageWhereUniqueInput!]
  create: [PageCreateWithoutContentInput!]
  delete: [PageWhereUniqueInput!]
  deleteMany: [PageScalarWhereInput!]
  disconnect: [PageWhereUniqueInput!]
  set: [PageWhereUniqueInput!]
  update: [PageUpdateWithWhereUniqueWithoutContentInput!]
  updateMany: [PageUpdateManyWithWhereNestedInput!]
  upsert: [PageUpsertWithWhereUniqueWithoutContentInput!]
}

input PageUpdateManyWithWhereNestedInput {
  data: PageUpdateManyDataInput!
  where: PageScalarWhereInput!
}

input PageUpdateWithoutContentDataInput {
  createdAt: DateTime
  data: String
  id: String
}

input PageUpdateWithWhereUniqueWithoutContentInput {
  data: PageUpdateWithoutContentDataInput!
  where: PageWhereUniqueInput!
}

input PageUpsertWithWhereUniqueWithoutContentInput {
  create: PageCreateWithoutContentInput!
  update: PageUpdateWithoutContentDataInput!
  where: PageWhereUniqueInput!
}

input PageWhereInput {
  AND: [PageWhereInput!]
  content: ContentWhereInput
  createdAt: DateTimeFilter
  data: StringFilter
  id: StringFilter
  NOT: [PageWhereInput!]
  OR: [PageWhereInput!]
}

input PageWhereUniqueInput {
  id: String
}

type QuarterSlide implements Slide {
  id: String!
  mainBlock: Block!
  sideBlock: Block!
  title: String!
}

input QuarterSlideCreateManyWithoutMainBlockInput {
  connect: [QuarterSlideWhereUniqueInput!]
  create: [QuarterSlideCreateWithoutMainBlockInput!]
}

input QuarterSlideCreateManyWithoutSideBlockInput {
  connect: [QuarterSlideWhereUniqueInput!]
  create: [QuarterSlideCreateWithoutSideBlockInput!]
}

input QuarterSlideCreateOneWithoutSlidesInput {
  connect: QuarterSlideWhereUniqueInput
  create: QuarterSlideCreateWithoutSlidesInput
}

input QuarterSlideCreateWithoutMainBlockInput {
  id: String
  sideBlock: BlockCreateOneWithoutQuarterSlidesImplementingInput!
  slides: SlideCreateManyWithoutQuarterSlideInput
}

input QuarterSlideCreateWithoutSideBlockInput {
  id: String
  mainBlock: BlockCreateOneWithoutQuarterSlidesInput!
  slides: SlideCreateManyWithoutQuarterSlideInput
}

input QuarterSlideCreateWithoutSlidesInput {
  id: String
  mainBlock: BlockCreateOneWithoutQuarterSlidesInput!
  sideBlock: BlockCreateOneWithoutQuarterSlidesImplementingInput!
}

input QuarterSlideFilter {
  every: QuarterSlideWhereInput
  none: QuarterSlideWhereInput
  some: QuarterSlideWhereInput
}

input QuarterSlideScalarWhereInput {
  AND: [QuarterSlideScalarWhereInput!]
  id: StringFilter
  NOT: [QuarterSlideScalarWhereInput!]
  OR: [QuarterSlideScalarWhereInput!]
  slides: SlideFilter
}

input QuarterSlideUpdateManyDataInput {
  id: String
}

input QuarterSlideUpdateManyWithoutMainBlockInput {
  connect: [QuarterSlideWhereUniqueInput!]
  create: [QuarterSlideCreateWithoutMainBlockInput!]
  delete: [QuarterSlideWhereUniqueInput!]
  deleteMany: [QuarterSlideScalarWhereInput!]
  disconnect: [QuarterSlideWhereUniqueInput!]
  set: [QuarterSlideWhereUniqueInput!]
  update: [QuarterSlideUpdateWithWhereUniqueWithoutMainBlockInput!]
  updateMany: [QuarterSlideUpdateManyWithWhereNestedInput!]
  upsert: [QuarterSlideUpsertWithWhereUniqueWithoutMainBlockInput!]
}

input QuarterSlideUpdateManyWithoutSideBlockInput {
  connect: [QuarterSlideWhereUniqueInput!]
  create: [QuarterSlideCreateWithoutSideBlockInput!]
  delete: [QuarterSlideWhereUniqueInput!]
  deleteMany: [QuarterSlideScalarWhereInput!]
  disconnect: [QuarterSlideWhereUniqueInput!]
  set: [QuarterSlideWhereUniqueInput!]
  update: [QuarterSlideUpdateWithWhereUniqueWithoutSideBlockInput!]
  updateMany: [QuarterSlideUpdateManyWithWhereNestedInput!]
  upsert: [QuarterSlideUpsertWithWhereUniqueWithoutSideBlockInput!]
}

input QuarterSlideUpdateManyWithWhereNestedInput {
  data: QuarterSlideUpdateManyDataInput!
  where: QuarterSlideScalarWhereInput!
}

input QuarterSlideUpdateOneWithoutSlidesInput {
  connect: QuarterSlideWhereUniqueInput
  create: QuarterSlideCreateWithoutSlidesInput
  delete: Boolean
  disconnect: Boolean
  update: QuarterSlideUpdateWithoutSlidesDataInput
  upsert: QuarterSlideUpsertWithoutSlidesInput
}

input QuarterSlideUpdateWithoutMainBlockDataInput {
  id: String
  sideBlock: BlockUpdateOneRequiredWithoutQuarterSlidesImplementingInput
  slides: SlideUpdateManyWithoutQuarterSlideInput
}

input QuarterSlideUpdateWithoutSideBlockDataInput {
  id: String
  mainBlock: BlockUpdateOneRequiredWithoutQuarterSlidesInput
  slides: SlideUpdateManyWithoutQuarterSlideInput
}

input QuarterSlideUpdateWithoutSlidesDataInput {
  id: String
  mainBlock: BlockUpdateOneRequiredWithoutQuarterSlidesInput
  sideBlock: BlockUpdateOneRequiredWithoutQuarterSlidesImplementingInput
}

input QuarterSlideUpdateWithWhereUniqueWithoutMainBlockInput {
  data: QuarterSlideUpdateWithoutMainBlockDataInput!
  where: QuarterSlideWhereUniqueInput!
}

input QuarterSlideUpdateWithWhereUniqueWithoutSideBlockInput {
  data: QuarterSlideUpdateWithoutSideBlockDataInput!
  where: QuarterSlideWhereUniqueInput!
}

input QuarterSlideUpsertWithoutSlidesInput {
  create: QuarterSlideCreateWithoutSlidesInput!
  update: QuarterSlideUpdateWithoutSlidesDataInput!
}

input QuarterSlideUpsertWithWhereUniqueWithoutMainBlockInput {
  create: QuarterSlideCreateWithoutMainBlockInput!
  update: QuarterSlideUpdateWithoutMainBlockDataInput!
  where: QuarterSlideWhereUniqueInput!
}

input QuarterSlideUpsertWithWhereUniqueWithoutSideBlockInput {
  create: QuarterSlideCreateWithoutSideBlockInput!
  update: QuarterSlideUpdateWithoutSideBlockDataInput!
  where: QuarterSlideWhereUniqueInput!
}

input QuarterSlideWhereInput {
  AND: [QuarterSlideWhereInput!]
  id: StringFilter
  mainBlock: BlockWhereInput
  NOT: [QuarterSlideWhereInput!]
  OR: [QuarterSlideWhereInput!]
  sideBlock: BlockWhereInput
  slides: SlideFilter
}

input QuarterSlideWhereUniqueInput {
  id: String
}

type Query {
  course(where: CourseWhereUniqueInput!): Course
  courses(after: CourseWhereUniqueInput, before: CourseWhereUniqueInput, first: Int, last: Int, skip: Int, where: CourseWhereInput): [Course!]!
  lesson(where: LessonWhereUniqueInput!): Lesson
  lessons(after: LessonWhereUniqueInput, before: LessonWhereUniqueInput, first: Int, last: Int, skip: Int, where: LessonWhereInput): [Lesson!]!
  student(where: StudentWhereUniqueInput!): Student
  students(after: StudentWhereUniqueInput, before: StudentWhereUniqueInput, first: Int, last: Int, skip: Int, where: StudentWhereInput): [Student!]!
  viewer: User!
}

input RegisterUserInput {
  firstName: String!
  lastName: String!
  password: String!
  token: String!
  username: String!
}

input ResetPasswordInput {
  password: String!
  token: String!
}

input SendInvitationEmailInput {
  email: String!
  role: String!
}

input SendResetPasswordEmailInput {
  email: String!
}

type SingleSlide implements Slide {
  block: Block!
  id: String!
  title: String!
}

input SingleSlideCreateManyWithoutBlockInput {
  connect: [SingleSlideWhereUniqueInput!]
  create: [SingleSlideCreateWithoutBlockInput!]
}

input SingleSlideCreateOneWithoutSlidesInput {
  connect: SingleSlideWhereUniqueInput
  create: SingleSlideCreateWithoutSlidesInput
}

input SingleSlideCreateWithoutBlockInput {
  id: String
  slides: SlideCreateManyWithoutSingleSlideInput
}

input SingleSlideCreateWithoutSlidesInput {
  block: BlockCreateOneWithoutSingleSlidesInput!
  id: String
}

input SingleSlideFilter {
  every: SingleSlideWhereInput
  none: SingleSlideWhereInput
  some: SingleSlideWhereInput
}

input SingleSlideScalarWhereInput {
  AND: [SingleSlideScalarWhereInput!]
  id: StringFilter
  NOT: [SingleSlideScalarWhereInput!]
  OR: [SingleSlideScalarWhereInput!]
  slides: SlideFilter
}

input SingleSlideUpdateManyDataInput {
  id: String
}

input SingleSlideUpdateManyWithoutBlockInput {
  connect: [SingleSlideWhereUniqueInput!]
  create: [SingleSlideCreateWithoutBlockInput!]
  delete: [SingleSlideWhereUniqueInput!]
  deleteMany: [SingleSlideScalarWhereInput!]
  disconnect: [SingleSlideWhereUniqueInput!]
  set: [SingleSlideWhereUniqueInput!]
  update: [SingleSlideUpdateWithWhereUniqueWithoutBlockInput!]
  updateMany: [SingleSlideUpdateManyWithWhereNestedInput!]
  upsert: [SingleSlideUpsertWithWhereUniqueWithoutBlockInput!]
}

input SingleSlideUpdateManyWithWhereNestedInput {
  data: SingleSlideUpdateManyDataInput!
  where: SingleSlideScalarWhereInput!
}

input SingleSlideUpdateOneWithoutSlidesInput {
  connect: SingleSlideWhereUniqueInput
  create: SingleSlideCreateWithoutSlidesInput
  delete: Boolean
  disconnect: Boolean
  update: SingleSlideUpdateWithoutSlidesDataInput
  upsert: SingleSlideUpsertWithoutSlidesInput
}

input SingleSlideUpdateWithoutBlockDataInput {
  id: String
  slides: SlideUpdateManyWithoutSingleSlideInput
}

input SingleSlideUpdateWithoutSlidesDataInput {
  block: BlockUpdateOneRequiredWithoutSingleSlidesInput
  id: String
}

input SingleSlideUpdateWithWhereUniqueWithoutBlockInput {
  data: SingleSlideUpdateWithoutBlockDataInput!
  where: SingleSlideWhereUniqueInput!
}

input SingleSlideUpsertWithoutSlidesInput {
  create: SingleSlideCreateWithoutSlidesInput!
  update: SingleSlideUpdateWithoutSlidesDataInput!
}

input SingleSlideUpsertWithWhereUniqueWithoutBlockInput {
  create: SingleSlideCreateWithoutBlockInput!
  update: SingleSlideUpdateWithoutBlockDataInput!
  where: SingleSlideWhereUniqueInput!
}

input SingleSlideWhereInput {
  AND: [SingleSlideWhereInput!]
  block: BlockWhereInput
  id: StringFilter
  NOT: [SingleSlideWhereInput!]
  OR: [SingleSlideWhereInput!]
  slides: SlideFilter
}

input SingleSlideWhereUniqueInput {
  id: String
}

interface Slide {
  id: String!
  title: String!
}

input SlideCreateManyWithoutHalfSlideInput {
  connect: [SlideWhereUniqueInput!]
  create: [SlideCreateWithoutHalfSlideInput!]
}

input SlideCreateManyWithoutLessonInput {
  connect: [SlideWhereUniqueInput!]
  create: [SlideCreateWithoutLessonInput!]
}

input SlideCreateManyWithoutQuarterSlideInput {
  connect: [SlideWhereUniqueInput!]
  create: [SlideCreateWithoutQuarterSlideInput!]
}

input SlideCreateManyWithoutSingleSlideInput {
  connect: [SlideWhereUniqueInput!]
  create: [SlideCreateWithoutSingleSlideInput!]
}

input SlideCreateWithoutHalfSlideInput {
  id: String
  lesson: LessonCreateOneWithoutSlidesInput
  quarterSlide: QuarterSlideCreateOneWithoutSlidesInput
  singleSlide: SingleSlideCreateOneWithoutSlidesInput
  title: String!
}

input SlideCreateWithoutLessonInput {
  halfSlide: HalfSlideCreateOneWithoutSlidesInput
  id: String
  quarterSlide: QuarterSlideCreateOneWithoutSlidesInput
  singleSlide: SingleSlideCreateOneWithoutSlidesInput
  title: String!
}

input SlideCreateWithoutQuarterSlideInput {
  halfSlide: HalfSlideCreateOneWithoutSlidesInput
  id: String
  lesson: LessonCreateOneWithoutSlidesInput
  singleSlide: SingleSlideCreateOneWithoutSlidesInput
  title: String!
}

input SlideCreateWithoutSingleSlideInput {
  halfSlide: HalfSlideCreateOneWithoutSlidesInput
  id: String
  lesson: LessonCreateOneWithoutSlidesInput
  quarterSlide: QuarterSlideCreateOneWithoutSlidesInput
  title: String!
}

input SlideFilter {
  every: SlideWhereInput
  none: SlideWhereInput
  some: SlideWhereInput
}

input SlideScalarWhereInput {
  AND: [SlideScalarWhereInput!]
  id: StringFilter
  NOT: [SlideScalarWhereInput!]
  OR: [SlideScalarWhereInput!]
  title: StringFilter
}

input SlideUpdateManyDataInput {
  id: String
  title: String
}

input SlideUpdateManyWithoutHalfSlideInput {
  connect: [SlideWhereUniqueInput!]
  create: [SlideCreateWithoutHalfSlideInput!]
  delete: [SlideWhereUniqueInput!]
  deleteMany: [SlideScalarWhereInput!]
  disconnect: [SlideWhereUniqueInput!]
  set: [SlideWhereUniqueInput!]
  update: [SlideUpdateWithWhereUniqueWithoutHalfSlideInput!]
  updateMany: [SlideUpdateManyWithWhereNestedInput!]
  upsert: [SlideUpsertWithWhereUniqueWithoutHalfSlideInput!]
}

input SlideUpdateManyWithoutLessonInput {
  connect: [SlideWhereUniqueInput!]
  create: [SlideCreateWithoutLessonInput!]
  delete: [SlideWhereUniqueInput!]
  deleteMany: [SlideScalarWhereInput!]
  disconnect: [SlideWhereUniqueInput!]
  set: [SlideWhereUniqueInput!]
  update: [SlideUpdateWithWhereUniqueWithoutLessonInput!]
  updateMany: [SlideUpdateManyWithWhereNestedInput!]
  upsert: [SlideUpsertWithWhereUniqueWithoutLessonInput!]
}

input SlideUpdateManyWithoutQuarterSlideInput {
  connect: [SlideWhereUniqueInput!]
  create: [SlideCreateWithoutQuarterSlideInput!]
  delete: [SlideWhereUniqueInput!]
  deleteMany: [SlideScalarWhereInput!]
  disconnect: [SlideWhereUniqueInput!]
  set: [SlideWhereUniqueInput!]
  update: [SlideUpdateWithWhereUniqueWithoutQuarterSlideInput!]
  updateMany: [SlideUpdateManyWithWhereNestedInput!]
  upsert: [SlideUpsertWithWhereUniqueWithoutQuarterSlideInput!]
}

input SlideUpdateManyWithoutSingleSlideInput {
  connect: [SlideWhereUniqueInput!]
  create: [SlideCreateWithoutSingleSlideInput!]
  delete: [SlideWhereUniqueInput!]
  deleteMany: [SlideScalarWhereInput!]
  disconnect: [SlideWhereUniqueInput!]
  set: [SlideWhereUniqueInput!]
  update: [SlideUpdateWithWhereUniqueWithoutSingleSlideInput!]
  updateMany: [SlideUpdateManyWithWhereNestedInput!]
  upsert: [SlideUpsertWithWhereUniqueWithoutSingleSlideInput!]
}

input SlideUpdateManyWithWhereNestedInput {
  data: SlideUpdateManyDataInput!
  where: SlideScalarWhereInput!
}

input SlideUpdateWithoutHalfSlideDataInput {
  id: String
  lesson: LessonUpdateOneWithoutSlidesInput
  quarterSlide: QuarterSlideUpdateOneWithoutSlidesInput
  singleSlide: SingleSlideUpdateOneWithoutSlidesInput
  title: String
}

input SlideUpdateWithoutLessonDataInput {
  halfSlide: HalfSlideUpdateOneWithoutSlidesInput
  id: String
  quarterSlide: QuarterSlideUpdateOneWithoutSlidesInput
  singleSlide: SingleSlideUpdateOneWithoutSlidesInput
  title: String
}

input SlideUpdateWithoutQuarterSlideDataInput {
  halfSlide: HalfSlideUpdateOneWithoutSlidesInput
  id: String
  lesson: LessonUpdateOneWithoutSlidesInput
  singleSlide: SingleSlideUpdateOneWithoutSlidesInput
  title: String
}

input SlideUpdateWithoutSingleSlideDataInput {
  halfSlide: HalfSlideUpdateOneWithoutSlidesInput
  id: String
  lesson: LessonUpdateOneWithoutSlidesInput
  quarterSlide: QuarterSlideUpdateOneWithoutSlidesInput
  title: String
}

input SlideUpdateWithWhereUniqueWithoutHalfSlideInput {
  data: SlideUpdateWithoutHalfSlideDataInput!
  where: SlideWhereUniqueInput!
}

input SlideUpdateWithWhereUniqueWithoutLessonInput {
  data: SlideUpdateWithoutLessonDataInput!
  where: SlideWhereUniqueInput!
}

input SlideUpdateWithWhereUniqueWithoutQuarterSlideInput {
  data: SlideUpdateWithoutQuarterSlideDataInput!
  where: SlideWhereUniqueInput!
}

input SlideUpdateWithWhereUniqueWithoutSingleSlideInput {
  data: SlideUpdateWithoutSingleSlideDataInput!
  where: SlideWhereUniqueInput!
}

input SlideUpsertWithWhereUniqueWithoutHalfSlideInput {
  create: SlideCreateWithoutHalfSlideInput!
  update: SlideUpdateWithoutHalfSlideDataInput!
  where: SlideWhereUniqueInput!
}

input SlideUpsertWithWhereUniqueWithoutLessonInput {
  create: SlideCreateWithoutLessonInput!
  update: SlideUpdateWithoutLessonDataInput!
  where: SlideWhereUniqueInput!
}

input SlideUpsertWithWhereUniqueWithoutQuarterSlideInput {
  create: SlideCreateWithoutQuarterSlideInput!
  update: SlideUpdateWithoutQuarterSlideDataInput!
  where: SlideWhereUniqueInput!
}

input SlideUpsertWithWhereUniqueWithoutSingleSlideInput {
  create: SlideCreateWithoutSingleSlideInput!
  update: SlideUpdateWithoutSingleSlideDataInput!
  where: SlideWhereUniqueInput!
}

input SlideWhereInput {
  AND: [SlideWhereInput!]
  halfSlide: HalfSlideWhereInput
  id: StringFilter
  lesson: LessonWhereInput
  NOT: [SlideWhereInput!]
  OR: [SlideWhereInput!]
  quarterSlide: QuarterSlideWhereInput
  singleSlide: SingleSlideWhereInput
  title: StringFilter
}

input SlideWhereUniqueInput {
  id: String
}

input StringFilter {
  contains: String
  endsWith: String
  equals: String
  gt: String
  gte: String
  in: [String!]
  lt: String
  lte: String
  not: String
  notIn: [String!]
  startsWith: String
}

type Student implements User {
  courses(after: CourseWhereUniqueInput, before: CourseWhereUniqueInput, first: Int, last: Int, skip: Int): [Course!]!
  email: String!
  firstName: String!
  gradeLevel: GradeLevel!
  guardians(after: GuardianWhereUniqueInput, before: GuardianWhereUniqueInput, first: Int, last: Int, skip: Int): [Guardian!]!
  id: String!
  lastName: String!
  username: String!
}

input StudentCreateManyWithoutCoursesInput {
  connect: [StudentWhereUniqueInput!]
  create: [StudentCreateWithoutCoursesInput!]
}

input StudentCreateManyWithoutGuardiansInput {
  connect: [StudentWhereUniqueInput!]
  create: [StudentCreateWithoutGuardiansInput!]
}

input StudentCreateOneWithoutMultipleChoiceQuestionResponsesInput {
  connect: StudentWhereUniqueInput
  create: StudentCreateWithoutMultipleChoiceQuestionResponsesInput
}

input StudentCreateOneWithoutUserInput {
  connect: StudentWhereUniqueInput
  create: StudentCreateWithoutUserInput
}

input StudentCreateWithoutCoursesInput {
  createdAt: DateTime
  email: String!
  gradeLevel: GradeLevel!
  guardians: GuardianCreateManyWithoutStudentsInput
  id: String
  multipleChoiceQuestionResponses: MultipleChoiceQuestionResponseCreateManyWithoutStudentInput
  user: UserCreateOneWithoutStudentInput!
}

input StudentCreateWithoutGuardiansInput {
  courses: CourseCreateManyWithoutStudentsInput
  createdAt: DateTime
  email: String!
  gradeLevel: GradeLevel!
  id: String
  multipleChoiceQuestionResponses: MultipleChoiceQuestionResponseCreateManyWithoutStudentInput
  user: UserCreateOneWithoutStudentInput!
}

input StudentCreateWithoutMultipleChoiceQuestionResponsesInput {
  courses: CourseCreateManyWithoutStudentsInput
  createdAt: DateTime
  email: String!
  gradeLevel: GradeLevel!
  guardians: GuardianCreateManyWithoutStudentsInput
  id: String
  user: UserCreateOneWithoutStudentInput!
}

input StudentCreateWithoutUserInput {
  courses: CourseCreateManyWithoutStudentsInput
  createdAt: DateTime
  email: String!
  gradeLevel: GradeLevel!
  guardians: GuardianCreateManyWithoutStudentsInput
  id: String
  multipleChoiceQuestionResponses: MultipleChoiceQuestionResponseCreateManyWithoutStudentInput
}

input StudentFilter {
  every: StudentWhereInput
  none: StudentWhereInput
  some: StudentWhereInput
}

input StudentScalarWhereInput {
  AND: [StudentScalarWhereInput!]
  courses: CourseFilter
  createdAt: DateTimeFilter
  email: StringFilter
  gradeLevel: GradeLevel
  guardians: GuardianFilter
  id: StringFilter
  multipleChoiceQuestionResponses: MultipleChoiceQuestionResponseFilter
  NOT: [StudentScalarWhereInput!]
  OR: [StudentScalarWhereInput!]
}

input StudentUpdateManyDataInput {
  createdAt: DateTime
  email: String
  gradeLevel: GradeLevel
  id: String
}

input StudentUpdateManyWithoutCoursesInput {
  connect: [StudentWhereUniqueInput!]
  create: [StudentCreateWithoutCoursesInput!]
  delete: [StudentWhereUniqueInput!]
  deleteMany: [StudentScalarWhereInput!]
  disconnect: [StudentWhereUniqueInput!]
  set: [StudentWhereUniqueInput!]
  update: [StudentUpdateWithWhereUniqueWithoutCoursesInput!]
  updateMany: [StudentUpdateManyWithWhereNestedInput!]
  upsert: [StudentUpsertWithWhereUniqueWithoutCoursesInput!]
}

input StudentUpdateManyWithoutGuardiansInput {
  connect: [StudentWhereUniqueInput!]
  create: [StudentCreateWithoutGuardiansInput!]
  delete: [StudentWhereUniqueInput!]
  deleteMany: [StudentScalarWhereInput!]
  disconnect: [StudentWhereUniqueInput!]
  set: [StudentWhereUniqueInput!]
  update: [StudentUpdateWithWhereUniqueWithoutGuardiansInput!]
  updateMany: [StudentUpdateManyWithWhereNestedInput!]
  upsert: [StudentUpsertWithWhereUniqueWithoutGuardiansInput!]
}

input StudentUpdateManyWithWhereNestedInput {
  data: StudentUpdateManyDataInput!
  where: StudentScalarWhereInput!
}

input StudentUpdateOneRequiredWithoutMultipleChoiceQuestionResponsesInput {
  connect: StudentWhereUniqueInput
  create: StudentCreateWithoutMultipleChoiceQuestionResponsesInput
  update: StudentUpdateWithoutMultipleChoiceQuestionResponsesDataInput
  upsert: StudentUpsertWithoutMultipleChoiceQuestionResponsesInput
}

input StudentUpdateOneWithoutUserInput {
  connect: StudentWhereUniqueInput
  create: StudentCreateWithoutUserInput
  delete: Boolean
  disconnect: Boolean
  update: StudentUpdateWithoutUserDataInput
  upsert: StudentUpsertWithoutUserInput
}

input StudentUpdateWithoutCoursesDataInput {
  createdAt: DateTime
  email: String
  gradeLevel: GradeLevel
  guardians: GuardianUpdateManyWithoutStudentsInput
  id: String
  multipleChoiceQuestionResponses: MultipleChoiceQuestionResponseUpdateManyWithoutStudentInput
  user: UserUpdateOneRequiredWithoutStudentInput
}

input StudentUpdateWithoutGuardiansDataInput {
  courses: CourseUpdateManyWithoutStudentsInput
  createdAt: DateTime
  email: String
  gradeLevel: GradeLevel
  id: String
  multipleChoiceQuestionResponses: MultipleChoiceQuestionResponseUpdateManyWithoutStudentInput
  user: UserUpdateOneRequiredWithoutStudentInput
}

input StudentUpdateWithoutMultipleChoiceQuestionResponsesDataInput {
  courses: CourseUpdateManyWithoutStudentsInput
  createdAt: DateTime
  email: String
  gradeLevel: GradeLevel
  guardians: GuardianUpdateManyWithoutStudentsInput
  id: String
  user: UserUpdateOneRequiredWithoutStudentInput
}

input StudentUpdateWithoutUserDataInput {
  courses: CourseUpdateManyWithoutStudentsInput
  createdAt: DateTime
  email: String
  gradeLevel: GradeLevel
  guardians: GuardianUpdateManyWithoutStudentsInput
  id: String
  multipleChoiceQuestionResponses: MultipleChoiceQuestionResponseUpdateManyWithoutStudentInput
}

input StudentUpdateWithWhereUniqueWithoutCoursesInput {
  data: StudentUpdateWithoutCoursesDataInput!
  where: StudentWhereUniqueInput!
}

input StudentUpdateWithWhereUniqueWithoutGuardiansInput {
  data: StudentUpdateWithoutGuardiansDataInput!
  where: StudentWhereUniqueInput!
}

input StudentUpsertWithoutMultipleChoiceQuestionResponsesInput {
  create: StudentCreateWithoutMultipleChoiceQuestionResponsesInput!
  update: StudentUpdateWithoutMultipleChoiceQuestionResponsesDataInput!
}

input StudentUpsertWithoutUserInput {
  create: StudentCreateWithoutUserInput!
  update: StudentUpdateWithoutUserDataInput!
}

input StudentUpsertWithWhereUniqueWithoutCoursesInput {
  create: StudentCreateWithoutCoursesInput!
  update: StudentUpdateWithoutCoursesDataInput!
  where: StudentWhereUniqueInput!
}

input StudentUpsertWithWhereUniqueWithoutGuardiansInput {
  create: StudentCreateWithoutGuardiansInput!
  update: StudentUpdateWithoutGuardiansDataInput!
  where: StudentWhereUniqueInput!
}

input StudentWhereInput {
  AND: [StudentWhereInput!]
  courses: CourseFilter
  createdAt: DateTimeFilter
  email: StringFilter
  gradeLevel: GradeLevel
  guardians: GuardianFilter
  id: StringFilter
  multipleChoiceQuestionResponses: MultipleChoiceQuestionResponseFilter
  NOT: [StudentWhereInput!]
  OR: [StudentWhereInput!]
  user: UserWhereInput
}

input StudentWhereUniqueInput {
  email: String
  id: String
}

type TextBlock {
  body: String!
  id: String!
  title: String!
}

input TextBlockCreateOneWithoutBlocksInput {
  connect: TextBlockWhereUniqueInput
  create: TextBlockCreateWithoutBlocksInput
}

input TextBlockCreateWithoutBlocksInput {
  body: String!
  id: String
  title: String!
}

input TextBlockUpdateOneWithoutBlocksInput {
  connect: TextBlockWhereUniqueInput
  create: TextBlockCreateWithoutBlocksInput
  delete: Boolean
  disconnect: Boolean
  update: TextBlockUpdateWithoutBlocksDataInput
  upsert: TextBlockUpsertWithoutBlocksInput
}

input TextBlockUpdateWithoutBlocksDataInput {
  body: String
  id: String
  title: String
}

input TextBlockUpsertWithoutBlocksInput {
  create: TextBlockCreateWithoutBlocksInput!
  update: TextBlockUpdateWithoutBlocksDataInput!
}

input TextBlockWhereInput {
  AND: [TextBlockWhereInput!]
  blocks: BlockFilter
  body: StringFilter
  id: StringFilter
  NOT: [TextBlockWhereInput!]
  OR: [TextBlockWhereInput!]
  title: StringFilter
}

input TextBlockWhereUniqueInput {
  id: String
}

input UpdateBlockToMultipleChoiceBlockInput {
  blockId: String!
  choices: [ChoiceInput!]!
  questionText: String!
}

input UpdateBlockToTextBlockInput {
  blockId: String!
  body: String!
  title: String!
}

interface User {
  email: String!
  firstName: String!
  id: String!
  lastName: String!
  username: String!
}

input UserCreateOneWithoutGuardianInput {
  connect: UserWhereUniqueInput
  create: UserCreateWithoutGuardianInput
}

input UserCreateOneWithoutInstructorInput {
  connect: UserWhereUniqueInput
  create: UserCreateWithoutInstructorInput
}

input UserCreateOneWithoutStudentInput {
  connect: UserWhereUniqueInput
  create: UserCreateWithoutStudentInput
}

input UserCreateWithoutGuardianInput {
  admin: AdminCreateOneWithoutUserInput
  firstName: String!
  id: String
  instructor: InstructorCreateOneWithoutUserInput
  lastName: String!
  password: String!
  student: StudentCreateOneWithoutUserInput
  username: String!
}

input UserCreateWithoutInstructorInput {
  admin: AdminCreateOneWithoutUserInput
  firstName: String!
  guardian: GuardianCreateOneWithoutUserInput
  id: String
  lastName: String!
  password: String!
  student: StudentCreateOneWithoutUserInput
  username: String!
}

input UserCreateWithoutStudentInput {
  admin: AdminCreateOneWithoutUserInput
  firstName: String!
  guardian: GuardianCreateOneWithoutUserInput
  id: String
  instructor: InstructorCreateOneWithoutUserInput
  lastName: String!
  password: String!
  username: String!
}

input UserUpdateOneRequiredWithoutGuardianInput {
  connect: UserWhereUniqueInput
  create: UserCreateWithoutGuardianInput
  update: UserUpdateWithoutGuardianDataInput
  upsert: UserUpsertWithoutGuardianInput
}

input UserUpdateOneRequiredWithoutInstructorInput {
  connect: UserWhereUniqueInput
  create: UserCreateWithoutInstructorInput
  update: UserUpdateWithoutInstructorDataInput
  upsert: UserUpsertWithoutInstructorInput
}

input UserUpdateOneRequiredWithoutStudentInput {
  connect: UserWhereUniqueInput
  create: UserCreateWithoutStudentInput
  update: UserUpdateWithoutStudentDataInput
  upsert: UserUpsertWithoutStudentInput
}

input UserUpdateWithoutGuardianDataInput {
  admin: AdminUpdateOneWithoutUserInput
  firstName: String
  id: String
  instructor: InstructorUpdateOneWithoutUserInput
  lastName: String
  password: String
  student: StudentUpdateOneWithoutUserInput
  username: String
}

input UserUpdateWithoutInstructorDataInput {
  admin: AdminUpdateOneWithoutUserInput
  firstName: String
  guardian: GuardianUpdateOneWithoutUserInput
  id: String
  lastName: String
  password: String
  student: StudentUpdateOneWithoutUserInput
  username: String
}

input UserUpdateWithoutStudentDataInput {
  admin: AdminUpdateOneWithoutUserInput
  firstName: String
  guardian: GuardianUpdateOneWithoutUserInput
  id: String
  instructor: InstructorUpdateOneWithoutUserInput
  lastName: String
  password: String
  username: String
}

input UserUpsertWithoutGuardianInput {
  create: UserCreateWithoutGuardianInput!
  update: UserUpdateWithoutGuardianDataInput!
}

input UserUpsertWithoutInstructorInput {
  create: UserCreateWithoutInstructorInput!
  update: UserUpdateWithoutInstructorDataInput!
}

input UserUpsertWithoutStudentInput {
  create: UserCreateWithoutStudentInput!
  update: UserUpdateWithoutStudentDataInput!
}

input UserWhereInput {
  admin: AdminWhereInput
  AND: [UserWhereInput!]
  firstName: StringFilter
  guardian: GuardianWhereInput
  id: StringFilter
  instructor: InstructorWhereInput
  lastName: StringFilter
  NOT: [UserWhereInput!]
  OR: [UserWhereInput!]
  password: StringFilter
  student: StudentWhereInput
  username: StringFilter
}

input UserWhereUniqueInput {
  id: String
  username: String
}
