# source: http://prisma:4466
# timestamp: Wed Apr 08 2020 18:07:43 GMT+0000 (Coordinated Universal Time)

type AggregateBlock {
  count: Int!
}

type AggregateBlockInstance {
  count: Int!
}

type AggregateComment {
  count: Int!
}

type AggregateExercise {
  count: Int!
}

type AggregateExerciseInstance {
  count: Int!
}

type AggregateFormat {
  count: Int!
}

type AggregateRating {
  count: Int!
}

type AggregateTrack {
  count: Int!
}

type AggregateTraining {
  count: Int!
}

type AggregateTrainingType {
  count: Int!
}

type AggregateUser {
  count: Int!
}

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

type Block implements Node {
  id: ID!
  title: String!
  description: String
  videos: [String!]!
  pictures: [String!]!
  duration: Int
  format: Format!
  rest: Int
  tracks(where: TrackWhereInput, orderBy: TrackOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Track!]
  blocks(where: BlockInstanceWhereInput, orderBy: BlockInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [BlockInstance!]
  links(where: BlockInstanceWhereInput, orderBy: BlockInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [BlockInstance!]
  exercises(where: ExerciseInstanceWhereInput, orderBy: ExerciseInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [ExerciseInstance!]
}

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

  """A list of edges."""
  edges: [BlockEdge]!
  aggregate: AggregateBlock!
}

input BlockCreateInput {
  id: ID
  title: String!
  description: String
  duration: Int
  rest: Int
  videos: BlockCreatevideosInput
  pictures: BlockCreatepicturesInput
  format: FormatCreateOneInput!
  tracks: TrackCreateManyInput
  blocks: BlockInstanceCreateManyWithoutParentBlockInput
  links: BlockInstanceCreateManyWithoutBlockInput
  exercises: ExerciseInstanceCreateManyInput
}

input BlockCreateOneWithoutBlocksInput {
  create: BlockCreateWithoutBlocksInput
  connect: BlockWhereUniqueInput
}

input BlockCreateOneWithoutLinksInput {
  create: BlockCreateWithoutLinksInput
  connect: BlockWhereUniqueInput
}

input BlockCreatepicturesInput {
  set: [String!]
}

input BlockCreatevideosInput {
  set: [String!]
}

input BlockCreateWithoutBlocksInput {
  id: ID
  title: String!
  description: String
  duration: Int
  rest: Int
  videos: BlockCreatevideosInput
  pictures: BlockCreatepicturesInput
  format: FormatCreateOneInput!
  tracks: TrackCreateManyInput
  links: BlockInstanceCreateManyWithoutBlockInput
  exercises: ExerciseInstanceCreateManyInput
}

input BlockCreateWithoutLinksInput {
  id: ID
  title: String!
  description: String
  duration: Int
  rest: Int
  videos: BlockCreatevideosInput
  pictures: BlockCreatepicturesInput
  format: FormatCreateOneInput!
  tracks: TrackCreateManyInput
  blocks: BlockInstanceCreateManyWithoutParentBlockInput
  exercises: ExerciseInstanceCreateManyInput
}

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

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

type BlockInstance implements Node {
  id: ID!
  block: Block!
  parentBlock: Block
  parentTraining: Training
  order: Int!
  rounds: Int
  variation: String
}

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

  """A list of edges."""
  edges: [BlockInstanceEdge]!
  aggregate: AggregateBlockInstance!
}

input BlockInstanceCreateInput {
  id: ID
  order: Int!
  rounds: Int
  variation: String
  block: BlockCreateOneWithoutLinksInput!
  parentBlock: BlockCreateOneWithoutBlocksInput
  parentTraining: TrainingCreateOneWithoutBlocksInput
}

input BlockInstanceCreateManyWithoutBlockInput {
  create: [BlockInstanceCreateWithoutBlockInput!]
  connect: [BlockInstanceWhereUniqueInput!]
}

input BlockInstanceCreateManyWithoutParentBlockInput {
  create: [BlockInstanceCreateWithoutParentBlockInput!]
  connect: [BlockInstanceWhereUniqueInput!]
}

input BlockInstanceCreateManyWithoutParentTrainingInput {
  create: [BlockInstanceCreateWithoutParentTrainingInput!]
  connect: [BlockInstanceWhereUniqueInput!]
}

input BlockInstanceCreateWithoutBlockInput {
  id: ID
  order: Int!
  rounds: Int
  variation: String
  parentBlock: BlockCreateOneWithoutBlocksInput
  parentTraining: TrainingCreateOneWithoutBlocksInput
}

input BlockInstanceCreateWithoutParentBlockInput {
  id: ID
  order: Int!
  rounds: Int
  variation: String
  block: BlockCreateOneWithoutLinksInput!
  parentTraining: TrainingCreateOneWithoutBlocksInput
}

input BlockInstanceCreateWithoutParentTrainingInput {
  id: ID
  order: Int!
  rounds: Int
  variation: String
  block: BlockCreateOneWithoutLinksInput!
  parentBlock: BlockCreateOneWithoutBlocksInput
}

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

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

enum BlockInstanceOrderByInput {
  id_ASC
  id_DESC
  order_ASC
  order_DESC
  rounds_ASC
  rounds_DESC
  variation_ASC
  variation_DESC
}

type BlockInstancePreviousValues {
  id: ID!
  order: Int!
  rounds: Int
  variation: String
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [BlockInstanceScalarWhereInput!]
  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
  order: Int

  """All values that are not equal to given value."""
  order_not: Int

  """All values that are contained in given list."""
  order_in: [Int!]

  """All values that are not contained in given list."""
  order_not_in: [Int!]

  """All values less than the given value."""
  order_lt: Int

  """All values less than or equal the given value."""
  order_lte: Int

  """All values greater than the given value."""
  order_gt: Int

  """All values greater than or equal the given value."""
  order_gte: Int
  rounds: Int

  """All values that are not equal to given value."""
  rounds_not: Int

  """All values that are contained in given list."""
  rounds_in: [Int!]

  """All values that are not contained in given list."""
  rounds_not_in: [Int!]

  """All values less than the given value."""
  rounds_lt: Int

  """All values less than or equal the given value."""
  rounds_lte: Int

  """All values greater than the given value."""
  rounds_gt: Int

  """All values greater than or equal the given value."""
  rounds_gte: Int
  variation: String

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

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

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

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

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

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

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

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

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

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

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

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

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

type BlockInstanceSubscriptionPayload {
  mutation: MutationType!
  node: BlockInstance
  updatedFields: [String!]
  previousValues: BlockInstancePreviousValues
}

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

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

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

  """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: BlockInstanceWhereInput
}

input BlockInstanceUpdateInput {
  order: Int
  rounds: Int
  variation: String
  block: BlockUpdateOneRequiredWithoutLinksInput
  parentBlock: BlockUpdateOneWithoutBlocksInput
  parentTraining: TrainingUpdateOneWithoutBlocksInput
}

input BlockInstanceUpdateManyDataInput {
  order: Int
  rounds: Int
  variation: String
}

input BlockInstanceUpdateManyMutationInput {
  order: Int
  rounds: Int
  variation: String
}

input BlockInstanceUpdateManyWithoutBlockInput {
  create: [BlockInstanceCreateWithoutBlockInput!]
  connect: [BlockInstanceWhereUniqueInput!]
  set: [BlockInstanceWhereUniqueInput!]
  disconnect: [BlockInstanceWhereUniqueInput!]
  delete: [BlockInstanceWhereUniqueInput!]
  update: [BlockInstanceUpdateWithWhereUniqueWithoutBlockInput!]
  updateMany: [BlockInstanceUpdateManyWithWhereNestedInput!]
  deleteMany: [BlockInstanceScalarWhereInput!]
  upsert: [BlockInstanceUpsertWithWhereUniqueWithoutBlockInput!]
}

input BlockInstanceUpdateManyWithoutParentBlockInput {
  create: [BlockInstanceCreateWithoutParentBlockInput!]
  connect: [BlockInstanceWhereUniqueInput!]
  set: [BlockInstanceWhereUniqueInput!]
  disconnect: [BlockInstanceWhereUniqueInput!]
  delete: [BlockInstanceWhereUniqueInput!]
  update: [BlockInstanceUpdateWithWhereUniqueWithoutParentBlockInput!]
  updateMany: [BlockInstanceUpdateManyWithWhereNestedInput!]
  deleteMany: [BlockInstanceScalarWhereInput!]
  upsert: [BlockInstanceUpsertWithWhereUniqueWithoutParentBlockInput!]
}

input BlockInstanceUpdateManyWithoutParentTrainingInput {
  create: [BlockInstanceCreateWithoutParentTrainingInput!]
  connect: [BlockInstanceWhereUniqueInput!]
  set: [BlockInstanceWhereUniqueInput!]
  disconnect: [BlockInstanceWhereUniqueInput!]
  delete: [BlockInstanceWhereUniqueInput!]
  update: [BlockInstanceUpdateWithWhereUniqueWithoutParentTrainingInput!]
  updateMany: [BlockInstanceUpdateManyWithWhereNestedInput!]
  deleteMany: [BlockInstanceScalarWhereInput!]
  upsert: [BlockInstanceUpsertWithWhereUniqueWithoutParentTrainingInput!]
}

input BlockInstanceUpdateManyWithWhereNestedInput {
  where: BlockInstanceScalarWhereInput!
  data: BlockInstanceUpdateManyDataInput!
}

input BlockInstanceUpdateWithoutBlockDataInput {
  order: Int
  rounds: Int
  variation: String
  parentBlock: BlockUpdateOneWithoutBlocksInput
  parentTraining: TrainingUpdateOneWithoutBlocksInput
}

input BlockInstanceUpdateWithoutParentBlockDataInput {
  order: Int
  rounds: Int
  variation: String
  block: BlockUpdateOneRequiredWithoutLinksInput
  parentTraining: TrainingUpdateOneWithoutBlocksInput
}

input BlockInstanceUpdateWithoutParentTrainingDataInput {
  order: Int
  rounds: Int
  variation: String
  block: BlockUpdateOneRequiredWithoutLinksInput
  parentBlock: BlockUpdateOneWithoutBlocksInput
}

input BlockInstanceUpdateWithWhereUniqueWithoutBlockInput {
  where: BlockInstanceWhereUniqueInput!
  data: BlockInstanceUpdateWithoutBlockDataInput!
}

input BlockInstanceUpdateWithWhereUniqueWithoutParentBlockInput {
  where: BlockInstanceWhereUniqueInput!
  data: BlockInstanceUpdateWithoutParentBlockDataInput!
}

input BlockInstanceUpdateWithWhereUniqueWithoutParentTrainingInput {
  where: BlockInstanceWhereUniqueInput!
  data: BlockInstanceUpdateWithoutParentTrainingDataInput!
}

input BlockInstanceUpsertWithWhereUniqueWithoutBlockInput {
  where: BlockInstanceWhereUniqueInput!
  update: BlockInstanceUpdateWithoutBlockDataInput!
  create: BlockInstanceCreateWithoutBlockInput!
}

input BlockInstanceUpsertWithWhereUniqueWithoutParentBlockInput {
  where: BlockInstanceWhereUniqueInput!
  update: BlockInstanceUpdateWithoutParentBlockDataInput!
  create: BlockInstanceCreateWithoutParentBlockInput!
}

input BlockInstanceUpsertWithWhereUniqueWithoutParentTrainingInput {
  where: BlockInstanceWhereUniqueInput!
  update: BlockInstanceUpdateWithoutParentTrainingDataInput!
  create: BlockInstanceCreateWithoutParentTrainingInput!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [BlockInstanceWhereInput!]
  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
  order: Int

  """All values that are not equal to given value."""
  order_not: Int

  """All values that are contained in given list."""
  order_in: [Int!]

  """All values that are not contained in given list."""
  order_not_in: [Int!]

  """All values less than the given value."""
  order_lt: Int

  """All values less than or equal the given value."""
  order_lte: Int

  """All values greater than the given value."""
  order_gt: Int

  """All values greater than or equal the given value."""
  order_gte: Int
  rounds: Int

  """All values that are not equal to given value."""
  rounds_not: Int

  """All values that are contained in given list."""
  rounds_in: [Int!]

  """All values that are not contained in given list."""
  rounds_not_in: [Int!]

  """All values less than the given value."""
  rounds_lt: Int

  """All values less than or equal the given value."""
  rounds_lte: Int

  """All values greater than the given value."""
  rounds_gt: Int

  """All values greater than or equal the given value."""
  rounds_gte: Int
  variation: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  variation_not_ends_with: String
  block: BlockWhereInput
  parentBlock: BlockWhereInput
  parentTraining: TrainingWhereInput
}

input BlockInstanceWhereUniqueInput {
  id: ID
}

enum BlockOrderByInput {
  id_ASC
  id_DESC
  title_ASC
  title_DESC
  description_ASC
  description_DESC
  duration_ASC
  duration_DESC
  rest_ASC
  rest_DESC
}

type BlockPreviousValues {
  id: ID!
  title: String!
  description: String
  videos: [String!]!
  pictures: [String!]!
  duration: Int
  rest: Int
}

type BlockSubscriptionPayload {
  mutation: MutationType!
  node: Block
  updatedFields: [String!]
  previousValues: BlockPreviousValues
}

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

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

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

  """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: BlockWhereInput
}

input BlockUpdateInput {
  title: String
  description: String
  duration: Int
  rest: Int
  videos: BlockUpdatevideosInput
  pictures: BlockUpdatepicturesInput
  format: FormatUpdateOneRequiredInput
  tracks: TrackUpdateManyInput
  blocks: BlockInstanceUpdateManyWithoutParentBlockInput
  links: BlockInstanceUpdateManyWithoutBlockInput
  exercises: ExerciseInstanceUpdateManyInput
}

input BlockUpdateManyMutationInput {
  title: String
  description: String
  duration: Int
  rest: Int
  videos: BlockUpdatevideosInput
  pictures: BlockUpdatepicturesInput
}

input BlockUpdateOneRequiredWithoutLinksInput {
  create: BlockCreateWithoutLinksInput
  connect: BlockWhereUniqueInput
  update: BlockUpdateWithoutLinksDataInput
  upsert: BlockUpsertWithoutLinksInput
}

input BlockUpdateOneWithoutBlocksInput {
  create: BlockCreateWithoutBlocksInput
  connect: BlockWhereUniqueInput
  disconnect: Boolean
  delete: Boolean
  update: BlockUpdateWithoutBlocksDataInput
  upsert: BlockUpsertWithoutBlocksInput
}

input BlockUpdatepicturesInput {
  set: [String!]
}

input BlockUpdatevideosInput {
  set: [String!]
}

input BlockUpdateWithoutBlocksDataInput {
  title: String
  description: String
  duration: Int
  rest: Int
  videos: BlockUpdatevideosInput
  pictures: BlockUpdatepicturesInput
  format: FormatUpdateOneRequiredInput
  tracks: TrackUpdateManyInput
  links: BlockInstanceUpdateManyWithoutBlockInput
  exercises: ExerciseInstanceUpdateManyInput
}

input BlockUpdateWithoutLinksDataInput {
  title: String
  description: String
  duration: Int
  rest: Int
  videos: BlockUpdatevideosInput
  pictures: BlockUpdatepicturesInput
  format: FormatUpdateOneRequiredInput
  tracks: TrackUpdateManyInput
  blocks: BlockInstanceUpdateManyWithoutParentBlockInput
  exercises: ExerciseInstanceUpdateManyInput
}

input BlockUpsertWithoutBlocksInput {
  update: BlockUpdateWithoutBlocksDataInput!
  create: BlockCreateWithoutBlocksInput!
}

input BlockUpsertWithoutLinksInput {
  update: BlockUpdateWithoutLinksDataInput!
  create: BlockCreateWithoutLinksInput!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [BlockWhereInput!]
  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
  title: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  title_not_ends_with: String
  description: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  description_not_ends_with: String
  duration: Int

  """All values that are not equal to given value."""
  duration_not: Int

  """All values that are contained in given list."""
  duration_in: [Int!]

  """All values that are not contained in given list."""
  duration_not_in: [Int!]

  """All values less than the given value."""
  duration_lt: Int

  """All values less than or equal the given value."""
  duration_lte: Int

  """All values greater than the given value."""
  duration_gt: Int

  """All values greater than or equal the given value."""
  duration_gte: Int
  rest: Int

  """All values that are not equal to given value."""
  rest_not: Int

  """All values that are contained in given list."""
  rest_in: [Int!]

  """All values that are not contained in given list."""
  rest_not_in: [Int!]

  """All values less than the given value."""
  rest_lt: Int

  """All values less than or equal the given value."""
  rest_lte: Int

  """All values greater than the given value."""
  rest_gt: Int

  """All values greater than or equal the given value."""
  rest_gte: Int
  format: FormatWhereInput
  tracks_every: TrackWhereInput
  tracks_some: TrackWhereInput
  tracks_none: TrackWhereInput
  blocks_every: BlockInstanceWhereInput
  blocks_some: BlockInstanceWhereInput
  blocks_none: BlockInstanceWhereInput
  links_every: BlockInstanceWhereInput
  links_some: BlockInstanceWhereInput
  links_none: BlockInstanceWhereInput
  exercises_every: ExerciseInstanceWhereInput
  exercises_some: ExerciseInstanceWhereInput
  exercises_none: ExerciseInstanceWhereInput
}

input BlockWhereUniqueInput {
  id: ID
}

type Comment implements Node {
  id: ID!
  text: String!
  author: User!
  createdAt: DateTime!
}

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

  """A list of edges."""
  edges: [CommentEdge]!
  aggregate: AggregateComment!
}

input CommentCreateInput {
  id: ID
  text: String!
  author: UserCreateOneWithoutCommentsInput!
}

input CommentCreateManyWithoutAuthorInput {
  create: [CommentCreateWithoutAuthorInput!]
  connect: [CommentWhereUniqueInput!]
}

input CommentCreateWithoutAuthorInput {
  id: ID
  text: String!
}

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

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

enum CommentOrderByInput {
  id_ASC
  id_DESC
  text_ASC
  text_DESC
  createdAt_ASC
  createdAt_DESC
}

type CommentPreviousValues {
  id: ID!
  text: String!
  createdAt: DateTime!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [CommentScalarWhereInput!]
  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
  text: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  text_not_ends_with: String
  createdAt: DateTime

  """All values that are not equal to given value."""
  createdAt_not: DateTime

  """All values that are contained in given list."""
  createdAt_in: [DateTime!]

  """All values that are not contained in given list."""
  createdAt_not_in: [DateTime!]

  """All values less than the given value."""
  createdAt_lt: DateTime

  """All values less than or equal the given value."""
  createdAt_lte: DateTime

  """All values greater than the given value."""
  createdAt_gt: DateTime

  """All values greater than or equal the given value."""
  createdAt_gte: DateTime
}

type CommentSubscriptionPayload {
  mutation: MutationType!
  node: Comment
  updatedFields: [String!]
  previousValues: CommentPreviousValues
}

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

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

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

  """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: CommentWhereInput
}

input CommentUpdateInput {
  text: String
  author: UserUpdateOneRequiredWithoutCommentsInput
}

input CommentUpdateManyDataInput {
  text: String
}

input CommentUpdateManyMutationInput {
  text: String
}

input CommentUpdateManyWithoutAuthorInput {
  create: [CommentCreateWithoutAuthorInput!]
  connect: [CommentWhereUniqueInput!]
  set: [CommentWhereUniqueInput!]
  disconnect: [CommentWhereUniqueInput!]
  delete: [CommentWhereUniqueInput!]
  update: [CommentUpdateWithWhereUniqueWithoutAuthorInput!]
  updateMany: [CommentUpdateManyWithWhereNestedInput!]
  deleteMany: [CommentScalarWhereInput!]
  upsert: [CommentUpsertWithWhereUniqueWithoutAuthorInput!]
}

input CommentUpdateManyWithWhereNestedInput {
  where: CommentScalarWhereInput!
  data: CommentUpdateManyDataInput!
}

input CommentUpdateWithoutAuthorDataInput {
  text: String
}

input CommentUpdateWithWhereUniqueWithoutAuthorInput {
  where: CommentWhereUniqueInput!
  data: CommentUpdateWithoutAuthorDataInput!
}

input CommentUpsertWithWhereUniqueWithoutAuthorInput {
  where: CommentWhereUniqueInput!
  update: CommentUpdateWithoutAuthorDataInput!
  create: CommentCreateWithoutAuthorInput!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [CommentWhereInput!]
  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
  text: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  text_not_ends_with: String
  createdAt: DateTime

  """All values that are not equal to given value."""
  createdAt_not: DateTime

  """All values that are contained in given list."""
  createdAt_in: [DateTime!]

  """All values that are not contained in given list."""
  createdAt_not_in: [DateTime!]

  """All values less than the given value."""
  createdAt_lt: DateTime

  """All values less than or equal the given value."""
  createdAt_lte: DateTime

  """All values greater than the given value."""
  createdAt_gt: DateTime

  """All values greater than or equal the given value."""
  createdAt_gte: DateTime
  author: UserWhereInput
}

input CommentWhereUniqueInput {
  id: ID
}

scalar DateTime

type Exercise implements Node {
  id: ID!
  name: String!
  description: String
  videos: [String!]!
  pictures: [String!]!
  targets: [String!]!
  baseExercise: [String!]!
}

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

  """A list of edges."""
  edges: [ExerciseEdge]!
  aggregate: AggregateExercise!
}

input ExerciseCreatebaseExerciseInput {
  set: [String!]
}

input ExerciseCreateInput {
  id: ID
  name: String!
  description: String
  videos: ExerciseCreatevideosInput
  pictures: ExerciseCreatepicturesInput
  targets: ExerciseCreatetargetsInput
  baseExercise: ExerciseCreatebaseExerciseInput
}

input ExerciseCreateOneInput {
  create: ExerciseCreateInput
  connect: ExerciseWhereUniqueInput
}

input ExerciseCreatepicturesInput {
  set: [String!]
}

input ExerciseCreatetargetsInput {
  set: [String!]
}

input ExerciseCreatevideosInput {
  set: [String!]
}

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

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

type ExerciseInstance implements Node {
  id: ID!
  exercise: Exercise!
  order: Int!
  repetitions: Int
  variation: String
}

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

  """A list of edges."""
  edges: [ExerciseInstanceEdge]!
  aggregate: AggregateExerciseInstance!
}

input ExerciseInstanceCreateInput {
  id: ID
  order: Int!
  repetitions: Int
  variation: String
  exercise: ExerciseCreateOneInput!
}

input ExerciseInstanceCreateManyInput {
  create: [ExerciseInstanceCreateInput!]
  connect: [ExerciseInstanceWhereUniqueInput!]
}

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

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

enum ExerciseInstanceOrderByInput {
  id_ASC
  id_DESC
  order_ASC
  order_DESC
  repetitions_ASC
  repetitions_DESC
  variation_ASC
  variation_DESC
}

type ExerciseInstancePreviousValues {
  id: ID!
  order: Int!
  repetitions: Int
  variation: String
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [ExerciseInstanceScalarWhereInput!]
  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
  order: Int

  """All values that are not equal to given value."""
  order_not: Int

  """All values that are contained in given list."""
  order_in: [Int!]

  """All values that are not contained in given list."""
  order_not_in: [Int!]

  """All values less than the given value."""
  order_lt: Int

  """All values less than or equal the given value."""
  order_lte: Int

  """All values greater than the given value."""
  order_gt: Int

  """All values greater than or equal the given value."""
  order_gte: Int
  repetitions: Int

  """All values that are not equal to given value."""
  repetitions_not: Int

  """All values that are contained in given list."""
  repetitions_in: [Int!]

  """All values that are not contained in given list."""
  repetitions_not_in: [Int!]

  """All values less than the given value."""
  repetitions_lt: Int

  """All values less than or equal the given value."""
  repetitions_lte: Int

  """All values greater than the given value."""
  repetitions_gt: Int

  """All values greater than or equal the given value."""
  repetitions_gte: Int
  variation: String

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

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

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

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

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

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

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

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

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

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

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

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

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

type ExerciseInstanceSubscriptionPayload {
  mutation: MutationType!
  node: ExerciseInstance
  updatedFields: [String!]
  previousValues: ExerciseInstancePreviousValues
}

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

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

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

  """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: ExerciseInstanceWhereInput
}

input ExerciseInstanceUpdateDataInput {
  order: Int
  repetitions: Int
  variation: String
  exercise: ExerciseUpdateOneRequiredInput
}

input ExerciseInstanceUpdateInput {
  order: Int
  repetitions: Int
  variation: String
  exercise: ExerciseUpdateOneRequiredInput
}

input ExerciseInstanceUpdateManyDataInput {
  order: Int
  repetitions: Int
  variation: String
}

input ExerciseInstanceUpdateManyInput {
  create: [ExerciseInstanceCreateInput!]
  connect: [ExerciseInstanceWhereUniqueInput!]
  set: [ExerciseInstanceWhereUniqueInput!]
  disconnect: [ExerciseInstanceWhereUniqueInput!]
  delete: [ExerciseInstanceWhereUniqueInput!]
  update: [ExerciseInstanceUpdateWithWhereUniqueNestedInput!]
  updateMany: [ExerciseInstanceUpdateManyWithWhereNestedInput!]
  deleteMany: [ExerciseInstanceScalarWhereInput!]
  upsert: [ExerciseInstanceUpsertWithWhereUniqueNestedInput!]
}

input ExerciseInstanceUpdateManyMutationInput {
  order: Int
  repetitions: Int
  variation: String
}

input ExerciseInstanceUpdateManyWithWhereNestedInput {
  where: ExerciseInstanceScalarWhereInput!
  data: ExerciseInstanceUpdateManyDataInput!
}

input ExerciseInstanceUpdateWithWhereUniqueNestedInput {
  where: ExerciseInstanceWhereUniqueInput!
  data: ExerciseInstanceUpdateDataInput!
}

input ExerciseInstanceUpsertWithWhereUniqueNestedInput {
  where: ExerciseInstanceWhereUniqueInput!
  update: ExerciseInstanceUpdateDataInput!
  create: ExerciseInstanceCreateInput!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [ExerciseInstanceWhereInput!]
  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
  order: Int

  """All values that are not equal to given value."""
  order_not: Int

  """All values that are contained in given list."""
  order_in: [Int!]

  """All values that are not contained in given list."""
  order_not_in: [Int!]

  """All values less than the given value."""
  order_lt: Int

  """All values less than or equal the given value."""
  order_lte: Int

  """All values greater than the given value."""
  order_gt: Int

  """All values greater than or equal the given value."""
  order_gte: Int
  repetitions: Int

  """All values that are not equal to given value."""
  repetitions_not: Int

  """All values that are contained in given list."""
  repetitions_in: [Int!]

  """All values that are not contained in given list."""
  repetitions_not_in: [Int!]

  """All values less than the given value."""
  repetitions_lt: Int

  """All values less than or equal the given value."""
  repetitions_lte: Int

  """All values greater than the given value."""
  repetitions_gt: Int

  """All values greater than or equal the given value."""
  repetitions_gte: Int
  variation: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  variation_not_ends_with: String
  exercise: ExerciseWhereInput
}

input ExerciseInstanceWhereUniqueInput {
  id: ID
}

enum ExerciseOrderByInput {
  id_ASC
  id_DESC
  name_ASC
  name_DESC
  description_ASC
  description_DESC
}

type ExercisePreviousValues {
  id: ID!
  name: String!
  description: String
  videos: [String!]!
  pictures: [String!]!
  targets: [String!]!
  baseExercise: [String!]!
}

type ExerciseSubscriptionPayload {
  mutation: MutationType!
  node: Exercise
  updatedFields: [String!]
  previousValues: ExercisePreviousValues
}

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

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

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

  """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: ExerciseWhereInput
}

input ExerciseUpdatebaseExerciseInput {
  set: [String!]
}

input ExerciseUpdateDataInput {
  name: String
  description: String
  videos: ExerciseUpdatevideosInput
  pictures: ExerciseUpdatepicturesInput
  targets: ExerciseUpdatetargetsInput
  baseExercise: ExerciseUpdatebaseExerciseInput
}

input ExerciseUpdateInput {
  name: String
  description: String
  videos: ExerciseUpdatevideosInput
  pictures: ExerciseUpdatepicturesInput
  targets: ExerciseUpdatetargetsInput
  baseExercise: ExerciseUpdatebaseExerciseInput
}

input ExerciseUpdateManyMutationInput {
  name: String
  description: String
  videos: ExerciseUpdatevideosInput
  pictures: ExerciseUpdatepicturesInput
  targets: ExerciseUpdatetargetsInput
  baseExercise: ExerciseUpdatebaseExerciseInput
}

input ExerciseUpdateOneRequiredInput {
  create: ExerciseCreateInput
  connect: ExerciseWhereUniqueInput
  update: ExerciseUpdateDataInput
  upsert: ExerciseUpsertNestedInput
}

input ExerciseUpdatepicturesInput {
  set: [String!]
}

input ExerciseUpdatetargetsInput {
  set: [String!]
}

input ExerciseUpdatevideosInput {
  set: [String!]
}

input ExerciseUpsertNestedInput {
  update: ExerciseUpdateDataInput!
  create: ExerciseCreateInput!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [ExerciseWhereInput!]
  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
  description: String

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

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

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

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

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

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

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

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

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

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

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

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

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

input ExerciseWhereUniqueInput {
  id: ID
}

type Format implements Node {
  id: ID!
  name: String!
  description: String!
}

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

  """A list of edges."""
  edges: [FormatEdge]!
  aggregate: AggregateFormat!
}

input FormatCreateInput {
  id: ID
  name: String!
  description: String!
}

input FormatCreateOneInput {
  create: FormatCreateInput
  connect: FormatWhereUniqueInput
}

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

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

enum FormatOrderByInput {
  id_ASC
  id_DESC
  name_ASC
  name_DESC
  description_ASC
  description_DESC
}

type FormatPreviousValues {
  id: ID!
  name: String!
  description: String!
}

type FormatSubscriptionPayload {
  mutation: MutationType!
  node: Format
  updatedFields: [String!]
  previousValues: FormatPreviousValues
}

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

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

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

  """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: FormatWhereInput
}

input FormatUpdateDataInput {
  name: String
  description: String
}

input FormatUpdateInput {
  name: String
  description: String
}

input FormatUpdateManyMutationInput {
  name: String
  description: String
}

input FormatUpdateOneRequiredInput {
  create: FormatCreateInput
  connect: FormatWhereUniqueInput
  update: FormatUpdateDataInput
  upsert: FormatUpsertNestedInput
}

input FormatUpsertNestedInput {
  update: FormatUpdateDataInput!
  create: FormatCreateInput!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [FormatWhereInput!]
  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
  description: String

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

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

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

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

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

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

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

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

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

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

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

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

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

input FormatWhereUniqueInput {
  id: ID
}

"""
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 {
  createTraining(data: TrainingCreateInput!): Training!
  createBlock(data: BlockCreateInput!): Block!
  createBlockInstance(data: BlockInstanceCreateInput!): BlockInstance!
  createComment(data: CommentCreateInput!): Comment!
  createUser(data: UserCreateInput!): User!
  createTrainingType(data: TrainingTypeCreateInput!): TrainingType!
  createTrack(data: TrackCreateInput!): Track!
  createExercise(data: ExerciseCreateInput!): Exercise!
  createFormat(data: FormatCreateInput!): Format!
  createExerciseInstance(data: ExerciseInstanceCreateInput!): ExerciseInstance!
  createRating(data: RatingCreateInput!): Rating!
  updateTraining(data: TrainingUpdateInput!, where: TrainingWhereUniqueInput!): Training
  updateBlock(data: BlockUpdateInput!, where: BlockWhereUniqueInput!): Block
  updateBlockInstance(data: BlockInstanceUpdateInput!, where: BlockInstanceWhereUniqueInput!): BlockInstance
  updateComment(data: CommentUpdateInput!, where: CommentWhereUniqueInput!): Comment
  updateUser(data: UserUpdateInput!, where: UserWhereUniqueInput!): User
  updateTrainingType(data: TrainingTypeUpdateInput!, where: TrainingTypeWhereUniqueInput!): TrainingType
  updateTrack(data: TrackUpdateInput!, where: TrackWhereUniqueInput!): Track
  updateExercise(data: ExerciseUpdateInput!, where: ExerciseWhereUniqueInput!): Exercise
  updateFormat(data: FormatUpdateInput!, where: FormatWhereUniqueInput!): Format
  updateExerciseInstance(data: ExerciseInstanceUpdateInput!, where: ExerciseInstanceWhereUniqueInput!): ExerciseInstance
  updateRating(data: RatingUpdateInput!, where: RatingWhereUniqueInput!): Rating
  deleteTraining(where: TrainingWhereUniqueInput!): Training
  deleteBlock(where: BlockWhereUniqueInput!): Block
  deleteBlockInstance(where: BlockInstanceWhereUniqueInput!): BlockInstance
  deleteComment(where: CommentWhereUniqueInput!): Comment
  deleteUser(where: UserWhereUniqueInput!): User
  deleteTrainingType(where: TrainingTypeWhereUniqueInput!): TrainingType
  deleteTrack(where: TrackWhereUniqueInput!): Track
  deleteExercise(where: ExerciseWhereUniqueInput!): Exercise
  deleteFormat(where: FormatWhereUniqueInput!): Format
  deleteExerciseInstance(where: ExerciseInstanceWhereUniqueInput!): ExerciseInstance
  deleteRating(where: RatingWhereUniqueInput!): Rating
  upsertTraining(where: TrainingWhereUniqueInput!, create: TrainingCreateInput!, update: TrainingUpdateInput!): Training!
  upsertBlock(where: BlockWhereUniqueInput!, create: BlockCreateInput!, update: BlockUpdateInput!): Block!
  upsertBlockInstance(where: BlockInstanceWhereUniqueInput!, create: BlockInstanceCreateInput!, update: BlockInstanceUpdateInput!): BlockInstance!
  upsertComment(where: CommentWhereUniqueInput!, create: CommentCreateInput!, update: CommentUpdateInput!): Comment!
  upsertUser(where: UserWhereUniqueInput!, create: UserCreateInput!, update: UserUpdateInput!): User!
  upsertTrainingType(where: TrainingTypeWhereUniqueInput!, create: TrainingTypeCreateInput!, update: TrainingTypeUpdateInput!): TrainingType!
  upsertTrack(where: TrackWhereUniqueInput!, create: TrackCreateInput!, update: TrackUpdateInput!): Track!
  upsertExercise(where: ExerciseWhereUniqueInput!, create: ExerciseCreateInput!, update: ExerciseUpdateInput!): Exercise!
  upsertFormat(where: FormatWhereUniqueInput!, create: FormatCreateInput!, update: FormatUpdateInput!): Format!
  upsertExerciseInstance(where: ExerciseInstanceWhereUniqueInput!, create: ExerciseInstanceCreateInput!, update: ExerciseInstanceUpdateInput!): ExerciseInstance!
  upsertRating(where: RatingWhereUniqueInput!, create: RatingCreateInput!, update: RatingUpdateInput!): Rating!
  updateManyTrainings(data: TrainingUpdateManyMutationInput!, where: TrainingWhereInput): BatchPayload!
  updateManyBlocks(data: BlockUpdateManyMutationInput!, where: BlockWhereInput): BatchPayload!
  updateManyBlockInstances(data: BlockInstanceUpdateManyMutationInput!, where: BlockInstanceWhereInput): BatchPayload!
  updateManyComments(data: CommentUpdateManyMutationInput!, where: CommentWhereInput): BatchPayload!
  updateManyUsers(data: UserUpdateManyMutationInput!, where: UserWhereInput): BatchPayload!
  updateManyTrainingTypes(data: TrainingTypeUpdateManyMutationInput!, where: TrainingTypeWhereInput): BatchPayload!
  updateManyTracks(data: TrackUpdateManyMutationInput!, where: TrackWhereInput): BatchPayload!
  updateManyExercises(data: ExerciseUpdateManyMutationInput!, where: ExerciseWhereInput): BatchPayload!
  updateManyFormats(data: FormatUpdateManyMutationInput!, where: FormatWhereInput): BatchPayload!
  updateManyExerciseInstances(data: ExerciseInstanceUpdateManyMutationInput!, where: ExerciseInstanceWhereInput): BatchPayload!
  updateManyRatings(data: RatingUpdateManyMutationInput!, where: RatingWhereInput): BatchPayload!
  deleteManyTrainings(where: TrainingWhereInput): BatchPayload!
  deleteManyBlocks(where: BlockWhereInput): BatchPayload!
  deleteManyBlockInstances(where: BlockInstanceWhereInput): BatchPayload!
  deleteManyComments(where: CommentWhereInput): BatchPayload!
  deleteManyUsers(where: UserWhereInput): BatchPayload!
  deleteManyTrainingTypes(where: TrainingTypeWhereInput): BatchPayload!
  deleteManyTracks(where: TrackWhereInput): BatchPayload!
  deleteManyExercises(where: ExerciseWhereInput): BatchPayload!
  deleteManyFormats(where: FormatWhereInput): BatchPayload!
  deleteManyExerciseInstances(where: ExerciseInstanceWhereInput): BatchPayload!
  deleteManyRatings(where: RatingWhereInput): 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
}

enum Permission {
  ADMIN
  INSTRUCTOR
}

type Query {
  trainings(where: TrainingWhereInput, orderBy: TrainingOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Training]!
  blocks(where: BlockWhereInput, orderBy: BlockOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Block]!
  blockInstances(where: BlockInstanceWhereInput, orderBy: BlockInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [BlockInstance]!
  comments(where: CommentWhereInput, orderBy: CommentOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Comment]!
  users(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [User]!
  trainingTypes(where: TrainingTypeWhereInput, orderBy: TrainingTypeOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [TrainingType]!
  tracks(where: TrackWhereInput, orderBy: TrackOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Track]!
  exercises(where: ExerciseWhereInput, orderBy: ExerciseOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Exercise]!
  formats(where: FormatWhereInput, orderBy: FormatOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Format]!
  exerciseInstances(where: ExerciseInstanceWhereInput, orderBy: ExerciseInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [ExerciseInstance]!
  ratings(where: RatingWhereInput, orderBy: RatingOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Rating]!
  training(where: TrainingWhereUniqueInput!): Training
  block(where: BlockWhereUniqueInput!): Block
  blockInstance(where: BlockInstanceWhereUniqueInput!): BlockInstance
  comment(where: CommentWhereUniqueInput!): Comment
  user(where: UserWhereUniqueInput!): User
  trainingType(where: TrainingTypeWhereUniqueInput!): TrainingType
  track(where: TrackWhereUniqueInput!): Track
  exercise(where: ExerciseWhereUniqueInput!): Exercise
  format(where: FormatWhereUniqueInput!): Format
  exerciseInstance(where: ExerciseInstanceWhereUniqueInput!): ExerciseInstance
  rating(where: RatingWhereUniqueInput!): Rating
  trainingsConnection(where: TrainingWhereInput, orderBy: TrainingOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): TrainingConnection!
  blocksConnection(where: BlockWhereInput, orderBy: BlockOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): BlockConnection!
  blockInstancesConnection(where: BlockInstanceWhereInput, orderBy: BlockInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): BlockInstanceConnection!
  commentsConnection(where: CommentWhereInput, orderBy: CommentOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): CommentConnection!
  usersConnection(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): UserConnection!
  trainingTypesConnection(where: TrainingTypeWhereInput, orderBy: TrainingTypeOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): TrainingTypeConnection!
  tracksConnection(where: TrackWhereInput, orderBy: TrackOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): TrackConnection!
  exercisesConnection(where: ExerciseWhereInput, orderBy: ExerciseOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): ExerciseConnection!
  formatsConnection(where: FormatWhereInput, orderBy: FormatOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): FormatConnection!
  exerciseInstancesConnection(where: ExerciseInstanceWhereInput, orderBy: ExerciseInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): ExerciseInstanceConnection!
  ratingsConnection(where: RatingWhereInput, orderBy: RatingOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): RatingConnection!

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

type Rating implements Node {
  id: ID!
  user: User!
  value: Int!
  comment: String!
  createdAt: DateTime!
}

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

  """A list of edges."""
  edges: [RatingEdge]!
  aggregate: AggregateRating!
}

input RatingCreateInput {
  id: ID
  value: Int!
  comment: String!
  user: UserCreateOneWithoutRatingsInput!
}

input RatingCreateManyInput {
  create: [RatingCreateInput!]
  connect: [RatingWhereUniqueInput!]
}

input RatingCreateManyWithoutUserInput {
  create: [RatingCreateWithoutUserInput!]
  connect: [RatingWhereUniqueInput!]
}

input RatingCreateWithoutUserInput {
  id: ID
  value: Int!
  comment: String!
}

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

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

enum RatingOrderByInput {
  id_ASC
  id_DESC
  value_ASC
  value_DESC
  comment_ASC
  comment_DESC
  createdAt_ASC
  createdAt_DESC
}

type RatingPreviousValues {
  id: ID!
  value: Int!
  comment: String!
  createdAt: DateTime!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [RatingScalarWhereInput!]
  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
  value: Int

  """All values that are not equal to given value."""
  value_not: Int

  """All values that are contained in given list."""
  value_in: [Int!]

  """All values that are not contained in given list."""
  value_not_in: [Int!]

  """All values less than the given value."""
  value_lt: Int

  """All values less than or equal the given value."""
  value_lte: Int

  """All values greater than the given value."""
  value_gt: Int

  """All values greater than or equal the given value."""
  value_gte: Int
  comment: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  comment_not_ends_with: String
  createdAt: DateTime

  """All values that are not equal to given value."""
  createdAt_not: DateTime

  """All values that are contained in given list."""
  createdAt_in: [DateTime!]

  """All values that are not contained in given list."""
  createdAt_not_in: [DateTime!]

  """All values less than the given value."""
  createdAt_lt: DateTime

  """All values less than or equal the given value."""
  createdAt_lte: DateTime

  """All values greater than the given value."""
  createdAt_gt: DateTime

  """All values greater than or equal the given value."""
  createdAt_gte: DateTime
}

type RatingSubscriptionPayload {
  mutation: MutationType!
  node: Rating
  updatedFields: [String!]
  previousValues: RatingPreviousValues
}

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

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

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

  """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: RatingWhereInput
}

input RatingUpdateDataInput {
  value: Int
  comment: String
  user: UserUpdateOneRequiredWithoutRatingsInput
}

input RatingUpdateInput {
  value: Int
  comment: String
  user: UserUpdateOneRequiredWithoutRatingsInput
}

input RatingUpdateManyDataInput {
  value: Int
  comment: String
}

input RatingUpdateManyInput {
  create: [RatingCreateInput!]
  connect: [RatingWhereUniqueInput!]
  set: [RatingWhereUniqueInput!]
  disconnect: [RatingWhereUniqueInput!]
  delete: [RatingWhereUniqueInput!]
  update: [RatingUpdateWithWhereUniqueNestedInput!]
  updateMany: [RatingUpdateManyWithWhereNestedInput!]
  deleteMany: [RatingScalarWhereInput!]
  upsert: [RatingUpsertWithWhereUniqueNestedInput!]
}

input RatingUpdateManyMutationInput {
  value: Int
  comment: String
}

input RatingUpdateManyWithoutUserInput {
  create: [RatingCreateWithoutUserInput!]
  connect: [RatingWhereUniqueInput!]
  set: [RatingWhereUniqueInput!]
  disconnect: [RatingWhereUniqueInput!]
  delete: [RatingWhereUniqueInput!]
  update: [RatingUpdateWithWhereUniqueWithoutUserInput!]
  updateMany: [RatingUpdateManyWithWhereNestedInput!]
  deleteMany: [RatingScalarWhereInput!]
  upsert: [RatingUpsertWithWhereUniqueWithoutUserInput!]
}

input RatingUpdateManyWithWhereNestedInput {
  where: RatingScalarWhereInput!
  data: RatingUpdateManyDataInput!
}

input RatingUpdateWithoutUserDataInput {
  value: Int
  comment: String
}

input RatingUpdateWithWhereUniqueNestedInput {
  where: RatingWhereUniqueInput!
  data: RatingUpdateDataInput!
}

input RatingUpdateWithWhereUniqueWithoutUserInput {
  where: RatingWhereUniqueInput!
  data: RatingUpdateWithoutUserDataInput!
}

input RatingUpsertWithWhereUniqueNestedInput {
  where: RatingWhereUniqueInput!
  update: RatingUpdateDataInput!
  create: RatingCreateInput!
}

input RatingUpsertWithWhereUniqueWithoutUserInput {
  where: RatingWhereUniqueInput!
  update: RatingUpdateWithoutUserDataInput!
  create: RatingCreateWithoutUserInput!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [RatingWhereInput!]
  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
  value: Int

  """All values that are not equal to given value."""
  value_not: Int

  """All values that are contained in given list."""
  value_in: [Int!]

  """All values that are not contained in given list."""
  value_not_in: [Int!]

  """All values less than the given value."""
  value_lt: Int

  """All values less than or equal the given value."""
  value_lte: Int

  """All values greater than the given value."""
  value_gt: Int

  """All values greater than or equal the given value."""
  value_gte: Int
  comment: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  comment_not_ends_with: String
  createdAt: DateTime

  """All values that are not equal to given value."""
  createdAt_not: DateTime

  """All values that are contained in given list."""
  createdAt_in: [DateTime!]

  """All values that are not contained in given list."""
  createdAt_not_in: [DateTime!]

  """All values less than the given value."""
  createdAt_lt: DateTime

  """All values less than or equal the given value."""
  createdAt_lte: DateTime

  """All values greater than the given value."""
  createdAt_gt: DateTime

  """All values greater than or equal the given value."""
  createdAt_gte: DateTime
  user: UserWhereInput
}

input RatingWhereUniqueInput {
  id: ID
}

type Subscription {
  training(where: TrainingSubscriptionWhereInput): TrainingSubscriptionPayload
  block(where: BlockSubscriptionWhereInput): BlockSubscriptionPayload
  blockInstance(where: BlockInstanceSubscriptionWhereInput): BlockInstanceSubscriptionPayload
  comment(where: CommentSubscriptionWhereInput): CommentSubscriptionPayload
  user(where: UserSubscriptionWhereInput): UserSubscriptionPayload
  trainingType(where: TrainingTypeSubscriptionWhereInput): TrainingTypeSubscriptionPayload
  track(where: TrackSubscriptionWhereInput): TrackSubscriptionPayload
  exercise(where: ExerciseSubscriptionWhereInput): ExerciseSubscriptionPayload
  format(where: FormatSubscriptionWhereInput): FormatSubscriptionPayload
  exerciseInstance(where: ExerciseInstanceSubscriptionWhereInput): ExerciseInstanceSubscriptionPayload
  rating(where: RatingSubscriptionWhereInput): RatingSubscriptionPayload
}

type Track implements Node {
  id: ID!
  title: String!
  artist: String!
  duration: Int!
  link: String!
}

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

  """A list of edges."""
  edges: [TrackEdge]!
  aggregate: AggregateTrack!
}

input TrackCreateInput {
  id: ID
  title: String!
  artist: String!
  duration: Int!
  link: String!
}

input TrackCreateManyInput {
  create: [TrackCreateInput!]
  connect: [TrackWhereUniqueInput!]
}

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

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

enum TrackOrderByInput {
  id_ASC
  id_DESC
  title_ASC
  title_DESC
  artist_ASC
  artist_DESC
  duration_ASC
  duration_DESC
  link_ASC
  link_DESC
}

type TrackPreviousValues {
  id: ID!
  title: String!
  artist: String!
  duration: Int!
  link: String!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [TrackScalarWhereInput!]
  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
  title: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  title_not_ends_with: String
  artist: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  artist_not_ends_with: String
  duration: Int

  """All values that are not equal to given value."""
  duration_not: Int

  """All values that are contained in given list."""
  duration_in: [Int!]

  """All values that are not contained in given list."""
  duration_not_in: [Int!]

  """All values less than the given value."""
  duration_lt: Int

  """All values less than or equal the given value."""
  duration_lte: Int

  """All values greater than the given value."""
  duration_gt: Int

  """All values greater than or equal the given value."""
  duration_gte: Int
  link: String

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

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

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

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

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

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

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

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

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

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

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

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

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

type TrackSubscriptionPayload {
  mutation: MutationType!
  node: Track
  updatedFields: [String!]
  previousValues: TrackPreviousValues
}

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

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

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

  """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: TrackWhereInput
}

input TrackUpdateDataInput {
  title: String
  artist: String
  duration: Int
  link: String
}

input TrackUpdateInput {
  title: String
  artist: String
  duration: Int
  link: String
}

input TrackUpdateManyDataInput {
  title: String
  artist: String
  duration: Int
  link: String
}

input TrackUpdateManyInput {
  create: [TrackCreateInput!]
  connect: [TrackWhereUniqueInput!]
  set: [TrackWhereUniqueInput!]
  disconnect: [TrackWhereUniqueInput!]
  delete: [TrackWhereUniqueInput!]
  update: [TrackUpdateWithWhereUniqueNestedInput!]
  updateMany: [TrackUpdateManyWithWhereNestedInput!]
  deleteMany: [TrackScalarWhereInput!]
  upsert: [TrackUpsertWithWhereUniqueNestedInput!]
}

input TrackUpdateManyMutationInput {
  title: String
  artist: String
  duration: Int
  link: String
}

input TrackUpdateManyWithWhereNestedInput {
  where: TrackScalarWhereInput!
  data: TrackUpdateManyDataInput!
}

input TrackUpdateWithWhereUniqueNestedInput {
  where: TrackWhereUniqueInput!
  data: TrackUpdateDataInput!
}

input TrackUpsertWithWhereUniqueNestedInput {
  where: TrackWhereUniqueInput!
  update: TrackUpdateDataInput!
  create: TrackCreateInput!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [TrackWhereInput!]
  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
  title: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  title_not_ends_with: String
  artist: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  artist_not_ends_with: String
  duration: Int

  """All values that are not equal to given value."""
  duration_not: Int

  """All values that are contained in given list."""
  duration_in: [Int!]

  """All values that are not contained in given list."""
  duration_not_in: [Int!]

  """All values less than the given value."""
  duration_lt: Int

  """All values less than or equal the given value."""
  duration_lte: Int

  """All values greater than the given value."""
  duration_gt: Int

  """All values greater than or equal the given value."""
  duration_gte: Int
  link: String

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

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

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

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

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

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

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

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

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

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

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

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

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

input TrackWhereUniqueInput {
  id: ID
}

type Training implements Node {
  id: ID!
  title: String!
  type: TrainingType!
  createdAt: DateTime!
  trainingDate: DateTime!
  location: String!
  registrations(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [User!]
  attendance: Int
  ratings(where: RatingWhereInput, orderBy: RatingOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Rating!]
  published: Boolean!
  blocks(where: BlockInstanceWhereInput, orderBy: BlockInstanceOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [BlockInstance!]
}

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

  """A list of edges."""
  edges: [TrainingEdge]!
  aggregate: AggregateTraining!
}

input TrainingCreateInput {
  id: ID
  title: String!
  trainingDate: DateTime!
  location: String!
  attendance: Int
  published: Boolean!
  type: TrainingTypeCreateOneInput!
  registrations: UserCreateManyInput
  ratings: RatingCreateManyInput
  blocks: BlockInstanceCreateManyWithoutParentTrainingInput
}

input TrainingCreateOneWithoutBlocksInput {
  create: TrainingCreateWithoutBlocksInput
  connect: TrainingWhereUniqueInput
}

input TrainingCreateWithoutBlocksInput {
  id: ID
  title: String!
  trainingDate: DateTime!
  location: String!
  attendance: Int
  published: Boolean!
  type: TrainingTypeCreateOneInput!
  registrations: UserCreateManyInput
  ratings: RatingCreateManyInput
}

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

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

enum TrainingOrderByInput {
  id_ASC
  id_DESC
  title_ASC
  title_DESC
  createdAt_ASC
  createdAt_DESC
  trainingDate_ASC
  trainingDate_DESC
  location_ASC
  location_DESC
  attendance_ASC
  attendance_DESC
  published_ASC
  published_DESC
}

type TrainingPreviousValues {
  id: ID!
  title: String!
  createdAt: DateTime!
  trainingDate: DateTime!
  location: String!
  attendance: Int
  published: Boolean!
}

type TrainingSubscriptionPayload {
  mutation: MutationType!
  node: Training
  updatedFields: [String!]
  previousValues: TrainingPreviousValues
}

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

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

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

  """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: TrainingWhereInput
}

type TrainingType implements Node {
  id: ID!
  name: String!
  description: String!
}

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

  """A list of edges."""
  edges: [TrainingTypeEdge]!
  aggregate: AggregateTrainingType!
}

input TrainingTypeCreateInput {
  id: ID
  name: String!
  description: String!
}

input TrainingTypeCreateOneInput {
  create: TrainingTypeCreateInput
  connect: TrainingTypeWhereUniqueInput
}

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

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

enum TrainingTypeOrderByInput {
  id_ASC
  id_DESC
  name_ASC
  name_DESC
  description_ASC
  description_DESC
}

type TrainingTypePreviousValues {
  id: ID!
  name: String!
  description: String!
}

type TrainingTypeSubscriptionPayload {
  mutation: MutationType!
  node: TrainingType
  updatedFields: [String!]
  previousValues: TrainingTypePreviousValues
}

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

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

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

  """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: TrainingTypeWhereInput
}

input TrainingTypeUpdateDataInput {
  name: String
  description: String
}

input TrainingTypeUpdateInput {
  name: String
  description: String
}

input TrainingTypeUpdateManyMutationInput {
  name: String
  description: String
}

input TrainingTypeUpdateOneRequiredInput {
  create: TrainingTypeCreateInput
  connect: TrainingTypeWhereUniqueInput
  update: TrainingTypeUpdateDataInput
  upsert: TrainingTypeUpsertNestedInput
}

input TrainingTypeUpsertNestedInput {
  update: TrainingTypeUpdateDataInput!
  create: TrainingTypeCreateInput!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [TrainingTypeWhereInput!]
  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
  description: String

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

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

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

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

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

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

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

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

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

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

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

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

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

input TrainingTypeWhereUniqueInput {
  id: ID
  name: String
}

input TrainingUpdateInput {
  title: String
  trainingDate: DateTime
  location: String
  attendance: Int
  published: Boolean
  type: TrainingTypeUpdateOneRequiredInput
  registrations: UserUpdateManyInput
  ratings: RatingUpdateManyInput
  blocks: BlockInstanceUpdateManyWithoutParentTrainingInput
}

input TrainingUpdateManyMutationInput {
  title: String
  trainingDate: DateTime
  location: String
  attendance: Int
  published: Boolean
}

input TrainingUpdateOneWithoutBlocksInput {
  create: TrainingCreateWithoutBlocksInput
  connect: TrainingWhereUniqueInput
  disconnect: Boolean
  delete: Boolean
  update: TrainingUpdateWithoutBlocksDataInput
  upsert: TrainingUpsertWithoutBlocksInput
}

input TrainingUpdateWithoutBlocksDataInput {
  title: String
  trainingDate: DateTime
  location: String
  attendance: Int
  published: Boolean
  type: TrainingTypeUpdateOneRequiredInput
  registrations: UserUpdateManyInput
  ratings: RatingUpdateManyInput
}

input TrainingUpsertWithoutBlocksInput {
  update: TrainingUpdateWithoutBlocksDataInput!
  create: TrainingCreateWithoutBlocksInput!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [TrainingWhereInput!]
  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
  title: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  title_not_ends_with: String
  createdAt: DateTime

  """All values that are not equal to given value."""
  createdAt_not: DateTime

  """All values that are contained in given list."""
  createdAt_in: [DateTime!]

  """All values that are not contained in given list."""
  createdAt_not_in: [DateTime!]

  """All values less than the given value."""
  createdAt_lt: DateTime

  """All values less than or equal the given value."""
  createdAt_lte: DateTime

  """All values greater than the given value."""
  createdAt_gt: DateTime

  """All values greater than or equal the given value."""
  createdAt_gte: DateTime
  trainingDate: DateTime

  """All values that are not equal to given value."""
  trainingDate_not: DateTime

  """All values that are contained in given list."""
  trainingDate_in: [DateTime!]

  """All values that are not contained in given list."""
  trainingDate_not_in: [DateTime!]

  """All values less than the given value."""
  trainingDate_lt: DateTime

  """All values less than or equal the given value."""
  trainingDate_lte: DateTime

  """All values greater than the given value."""
  trainingDate_gt: DateTime

  """All values greater than or equal the given value."""
  trainingDate_gte: DateTime
  location: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  location_not_ends_with: String
  attendance: Int

  """All values that are not equal to given value."""
  attendance_not: Int

  """All values that are contained in given list."""
  attendance_in: [Int!]

  """All values that are not contained in given list."""
  attendance_not_in: [Int!]

  """All values less than the given value."""
  attendance_lt: Int

  """All values less than or equal the given value."""
  attendance_lte: Int

  """All values greater than the given value."""
  attendance_gt: Int

  """All values greater than or equal the given value."""
  attendance_gte: Int
  published: Boolean

  """All values that are not equal to given value."""
  published_not: Boolean
  type: TrainingTypeWhereInput
  registrations_every: UserWhereInput
  registrations_some: UserWhereInput
  registrations_none: UserWhereInput
  ratings_every: RatingWhereInput
  ratings_some: RatingWhereInput
  ratings_none: RatingWhereInput
  blocks_every: BlockInstanceWhereInput
  blocks_some: BlockInstanceWhereInput
  blocks_none: BlockInstanceWhereInput
}

input TrainingWhereUniqueInput {
  id: ID
}

type User implements Node {
  id: ID!
  email: String!
  name: String!
  password: String!
  resetToken: String
  resetTokenExpiry: Float
  createdAt: DateTime!
  comments(where: CommentWhereInput, orderBy: CommentOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Comment!]
  ratings(where: RatingWhereInput, orderBy: RatingOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Rating!]
  permissions: [Permission!]!
  interests: [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 {
  id: ID
  email: String!
  name: String!
  password: String!
  resetToken: String
  resetTokenExpiry: Float
  permissions: UserCreatepermissionsInput
  interests: UserCreateinterestsInput
  comments: CommentCreateManyWithoutAuthorInput
  ratings: RatingCreateManyWithoutUserInput
}

input UserCreateinterestsInput {
  set: [String!]
}

input UserCreateManyInput {
  create: [UserCreateInput!]
  connect: [UserWhereUniqueInput!]
}

input UserCreateOneWithoutCommentsInput {
  create: UserCreateWithoutCommentsInput
  connect: UserWhereUniqueInput
}

input UserCreateOneWithoutRatingsInput {
  create: UserCreateWithoutRatingsInput
  connect: UserWhereUniqueInput
}

input UserCreatepermissionsInput {
  set: [Permission!]
}

input UserCreateWithoutCommentsInput {
  id: ID
  email: String!
  name: String!
  password: String!
  resetToken: String
  resetTokenExpiry: Float
  permissions: UserCreatepermissionsInput
  interests: UserCreateinterestsInput
  ratings: RatingCreateManyWithoutUserInput
}

input UserCreateWithoutRatingsInput {
  id: ID
  email: String!
  name: String!
  password: String!
  resetToken: String
  resetTokenExpiry: Float
  permissions: UserCreatepermissionsInput
  interests: UserCreateinterestsInput
  comments: CommentCreateManyWithoutAuthorInput
}

"""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
  email_ASC
  email_DESC
  name_ASC
  name_DESC
  password_ASC
  password_DESC
  resetToken_ASC
  resetToken_DESC
  resetTokenExpiry_ASC
  resetTokenExpiry_DESC
  createdAt_ASC
  createdAt_DESC
}

type UserPreviousValues {
  id: ID!
  email: String!
  name: String!
  password: String!
  resetToken: String
  resetTokenExpiry: Float
  createdAt: DateTime!
  permissions: [Permission!]!
  interests: [String!]!
}

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

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

  """Logical NOT on all given filters combined by AND."""
  NOT: [UserScalarWhereInput!]
  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
  email: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  email_not_ends_with: String
  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
  password: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  password_not_ends_with: String
  resetToken: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  resetToken_not_ends_with: String
  resetTokenExpiry: Float

  """All values that are not equal to given value."""
  resetTokenExpiry_not: Float

  """All values that are contained in given list."""
  resetTokenExpiry_in: [Float!]

  """All values that are not contained in given list."""
  resetTokenExpiry_not_in: [Float!]

  """All values less than the given value."""
  resetTokenExpiry_lt: Float

  """All values less than or equal the given value."""
  resetTokenExpiry_lte: Float

  """All values greater than the given value."""
  resetTokenExpiry_gt: Float

  """All values greater than or equal the given value."""
  resetTokenExpiry_gte: Float
  createdAt: DateTime

  """All values that are not equal to given value."""
  createdAt_not: DateTime

  """All values that are contained in given list."""
  createdAt_in: [DateTime!]

  """All values that are not contained in given list."""
  createdAt_not_in: [DateTime!]

  """All values less than the given value."""
  createdAt_lt: DateTime

  """All values less than or equal the given value."""
  createdAt_lte: DateTime

  """All values greater than the given value."""
  createdAt_gt: DateTime

  """All values greater than or equal the given value."""
  createdAt_gte: DateTime
}

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 UserUpdateDataInput {
  email: String
  name: String
  password: String
  resetToken: String
  resetTokenExpiry: Float
  permissions: UserUpdatepermissionsInput
  interests: UserUpdateinterestsInput
  comments: CommentUpdateManyWithoutAuthorInput
  ratings: RatingUpdateManyWithoutUserInput
}

input UserUpdateInput {
  email: String
  name: String
  password: String
  resetToken: String
  resetTokenExpiry: Float
  permissions: UserUpdatepermissionsInput
  interests: UserUpdateinterestsInput
  comments: CommentUpdateManyWithoutAuthorInput
  ratings: RatingUpdateManyWithoutUserInput
}

input UserUpdateinterestsInput {
  set: [String!]
}

input UserUpdateManyDataInput {
  email: String
  name: String
  password: String
  resetToken: String
  resetTokenExpiry: Float
  permissions: UserUpdatepermissionsInput
  interests: UserUpdateinterestsInput
}

input UserUpdateManyInput {
  create: [UserCreateInput!]
  connect: [UserWhereUniqueInput!]
  set: [UserWhereUniqueInput!]
  disconnect: [UserWhereUniqueInput!]
  delete: [UserWhereUniqueInput!]
  update: [UserUpdateWithWhereUniqueNestedInput!]
  updateMany: [UserUpdateManyWithWhereNestedInput!]
  deleteMany: [UserScalarWhereInput!]
  upsert: [UserUpsertWithWhereUniqueNestedInput!]
}

input UserUpdateManyMutationInput {
  email: String
  name: String
  password: String
  resetToken: String
  resetTokenExpiry: Float
  permissions: UserUpdatepermissionsInput
  interests: UserUpdateinterestsInput
}

input UserUpdateManyWithWhereNestedInput {
  where: UserScalarWhereInput!
  data: UserUpdateManyDataInput!
}

input UserUpdateOneRequiredWithoutCommentsInput {
  create: UserCreateWithoutCommentsInput
  connect: UserWhereUniqueInput
  update: UserUpdateWithoutCommentsDataInput
  upsert: UserUpsertWithoutCommentsInput
}

input UserUpdateOneRequiredWithoutRatingsInput {
  create: UserCreateWithoutRatingsInput
  connect: UserWhereUniqueInput
  update: UserUpdateWithoutRatingsDataInput
  upsert: UserUpsertWithoutRatingsInput
}

input UserUpdatepermissionsInput {
  set: [Permission!]
}

input UserUpdateWithoutCommentsDataInput {
  email: String
  name: String
  password: String
  resetToken: String
  resetTokenExpiry: Float
  permissions: UserUpdatepermissionsInput
  interests: UserUpdateinterestsInput
  ratings: RatingUpdateManyWithoutUserInput
}

input UserUpdateWithoutRatingsDataInput {
  email: String
  name: String
  password: String
  resetToken: String
  resetTokenExpiry: Float
  permissions: UserUpdatepermissionsInput
  interests: UserUpdateinterestsInput
  comments: CommentUpdateManyWithoutAuthorInput
}

input UserUpdateWithWhereUniqueNestedInput {
  where: UserWhereUniqueInput!
  data: UserUpdateDataInput!
}

input UserUpsertWithoutCommentsInput {
  update: UserUpdateWithoutCommentsDataInput!
  create: UserCreateWithoutCommentsInput!
}

input UserUpsertWithoutRatingsInput {
  update: UserUpdateWithoutRatingsDataInput!
  create: UserCreateWithoutRatingsInput!
}

input UserUpsertWithWhereUniqueNestedInput {
  where: UserWhereUniqueInput!
  update: UserUpdateDataInput!
  create: UserCreateInput!
}

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
  email: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  email_not_ends_with: String
  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
  password: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  password_not_ends_with: String
  resetToken: String

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

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

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

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

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

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

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

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

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

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

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

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

  """All values not ending with the given string."""
  resetToken_not_ends_with: String
  resetTokenExpiry: Float

  """All values that are not equal to given value."""
  resetTokenExpiry_not: Float

  """All values that are contained in given list."""
  resetTokenExpiry_in: [Float!]

  """All values that are not contained in given list."""
  resetTokenExpiry_not_in: [Float!]

  """All values less than the given value."""
  resetTokenExpiry_lt: Float

  """All values less than or equal the given value."""
  resetTokenExpiry_lte: Float

  """All values greater than the given value."""
  resetTokenExpiry_gt: Float

  """All values greater than or equal the given value."""
  resetTokenExpiry_gte: Float
  createdAt: DateTime

  """All values that are not equal to given value."""
  createdAt_not: DateTime

  """All values that are contained in given list."""
  createdAt_in: [DateTime!]

  """All values that are not contained in given list."""
  createdAt_not_in: [DateTime!]

  """All values less than the given value."""
  createdAt_lt: DateTime

  """All values less than or equal the given value."""
  createdAt_lte: DateTime

  """All values greater than the given value."""
  createdAt_gt: DateTime

  """All values greater than or equal the given value."""
  createdAt_gte: DateTime
  comments_every: CommentWhereInput
  comments_some: CommentWhereInput
  comments_none: CommentWhereInput
  ratings_every: RatingWhereInput
  ratings_some: RatingWhereInput
  ratings_none: RatingWhereInput
}

input UserWhereUniqueInput {
  id: ID
  email: String
}
