/* eslint-disable */
import { gql } from '@apollo/client';
import * as ApolloReactCommon from '@apollo/react-common';
import * as ApolloReactHooks from '@apollo/client';
export type Maybe<T> = T | undefined;

/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
  ID: string,
  String: string,
  Boolean: boolean,
  Int: number,
  Float: number,
  DateTime: any,
  Upload: any,
};

export type AggregateTraining = {
  count: Scalars['Int'],
};

export type Block = Node & {
  id: Scalars['ID'],
  title: Scalars['String'],
  description?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  format: Format,
  rest?: Maybe<Scalars['Int']>,
  tracks?: Maybe<Array<Track>>,
  videos?: Maybe<Array<Video>>,
  pictures?: Maybe<Array<Picture>>,
  blocks?: Maybe<Array<BlockInstance>>,
  parentBlockInstances?: Maybe<Array<BlockInstance>>,
  exercises?: Maybe<Array<ExerciseInstance>>,
};


export type BlockTracksArgs = {
  where?: Maybe<TrackWhereInput>,
  orderBy?: Maybe<TrackOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type BlockVideosArgs = {
  where?: Maybe<VideoWhereInput>,
  orderBy?: Maybe<VideoOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type BlockPicturesArgs = {
  where?: Maybe<PictureWhereInput>,
  orderBy?: Maybe<PictureOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type BlockBlocksArgs = {
  where?: Maybe<BlockInstanceWhereInput>,
  orderBy?: Maybe<BlockInstanceOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type BlockParentBlockInstancesArgs = {
  where?: Maybe<BlockInstanceWhereInput>,
  orderBy?: Maybe<BlockInstanceOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type BlockExercisesArgs = {
  where?: Maybe<ExerciseInstanceWhereInput>,
  orderBy?: Maybe<ExerciseInstanceOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};

export type BlockCreateOneWithoutBlocksInput = {
  create?: Maybe<BlockCreateWithoutBlocksInput>,
  connect?: Maybe<BlockWhereUniqueInput>,
};

export type BlockCreateOneWithoutParentBlockInstancesInput = {
  create?: Maybe<BlockCreateWithoutParentBlockInstancesInput>,
  connect?: Maybe<BlockWhereUniqueInput>,
};

export type BlockCreateWithoutBlocksInput = {
  id?: Maybe<Scalars['ID']>,
  title: Scalars['String'],
  description?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  rest?: Maybe<Scalars['Int']>,
  format: FormatCreateOneInput,
  tracks?: Maybe<TrackCreateManyInput>,
  videos?: Maybe<VideoCreateManyInput>,
  pictures?: Maybe<PictureCreateManyInput>,
  parentBlockInstances?: Maybe<BlockInstanceCreateManyWithoutBlockInput>,
  exercises?: Maybe<ExerciseInstanceCreateManyWithoutParentBlockInstancesInput>,
};

export type BlockCreateWithoutParentBlockInstancesInput = {
  id?: Maybe<Scalars['ID']>,
  title: Scalars['String'],
  description?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  rest?: Maybe<Scalars['Int']>,
  format: FormatCreateOneInput,
  tracks?: Maybe<TrackCreateManyInput>,
  videos?: Maybe<VideoCreateManyInput>,
  pictures?: Maybe<PictureCreateManyInput>,
  blocks?: Maybe<BlockInstanceCreateManyWithoutParentBlockInput>,
  exercises?: Maybe<ExerciseInstanceCreateManyWithoutParentBlockInstancesInput>,
};

export type BlockInstance = Node & {
  id: Scalars['ID'],
  block: Block,
  parentBlock?: Maybe<Block>,
  parentTraining?: Maybe<Training>,
  order: Scalars['Int'],
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
};

export type BlockInstanceCreateManyWithoutBlockInput = {
  create?: Maybe<Array<BlockInstanceCreateWithoutBlockInput>>,
  connect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
};

export type BlockInstanceCreateManyWithoutParentBlockInput = {
  create?: Maybe<Array<BlockInstanceCreateWithoutParentBlockInput>>,
  connect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
};

export type BlockInstanceCreateManyWithoutParentTrainingInput = {
  create?: Maybe<Array<BlockInstanceCreateWithoutParentTrainingInput>>,
  connect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
};

export type BlockInstanceCreateWithoutBlockInput = {
  id?: Maybe<Scalars['ID']>,
  order: Scalars['Int'],
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  parentBlock?: Maybe<BlockCreateOneWithoutBlocksInput>,
  parentTraining?: Maybe<TrainingCreateOneWithoutBlocksInput>,
};

export type BlockInstanceCreateWithoutParentBlockInput = {
  id?: Maybe<Scalars['ID']>,
  order: Scalars['Int'],
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  block: BlockCreateOneWithoutParentBlockInstancesInput,
  parentTraining?: Maybe<TrainingCreateOneWithoutBlocksInput>,
};

export type BlockInstanceCreateWithoutParentTrainingInput = {
  id?: Maybe<Scalars['ID']>,
  order: Scalars['Int'],
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  block: BlockCreateOneWithoutParentBlockInstancesInput,
  parentBlock?: Maybe<BlockCreateOneWithoutBlocksInput>,
};

export enum BlockInstanceOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  OrderAsc = 'order_ASC',
  OrderDesc = 'order_DESC',
  RoundsAsc = 'rounds_ASC',
  RoundsDesc = 'rounds_DESC',
  VariationAsc = 'variation_ASC',
  VariationDesc = 'variation_DESC'
}

export type BlockInstanceScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<BlockInstanceScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<BlockInstanceScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<BlockInstanceScalarWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
  rounds?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  rounds_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  rounds_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  rounds_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  rounds_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  rounds_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  rounds_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  rounds_gte?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  variation_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  variation_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  variation_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  variation_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  variation_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  variation_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  variation_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  variation_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  variation_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  variation_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  variation_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  variation_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  variation_not_ends_with?: Maybe<Scalars['String']>,
};

export type BlockInstanceUpdateManyDataInput = {
  order?: Maybe<Scalars['Int']>,
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
};

export type BlockInstanceUpdateManyWithoutBlockInput = {
  create?: Maybe<Array<BlockInstanceCreateWithoutBlockInput>>,
  connect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  set?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  disconnect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  delete?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  update?: Maybe<Array<BlockInstanceUpdateWithWhereUniqueWithoutBlockInput>>,
  updateMany?: Maybe<Array<BlockInstanceUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<BlockInstanceScalarWhereInput>>,
  upsert?: Maybe<Array<BlockInstanceUpsertWithWhereUniqueWithoutBlockInput>>,
};

export type BlockInstanceUpdateManyWithoutParentBlockInput = {
  create?: Maybe<Array<BlockInstanceCreateWithoutParentBlockInput>>,
  connect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  set?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  disconnect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  delete?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  update?: Maybe<Array<BlockInstanceUpdateWithWhereUniqueWithoutParentBlockInput>>,
  updateMany?: Maybe<Array<BlockInstanceUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<BlockInstanceScalarWhereInput>>,
  upsert?: Maybe<Array<BlockInstanceUpsertWithWhereUniqueWithoutParentBlockInput>>,
};

export type BlockInstanceUpdateManyWithoutParentTrainingInput = {
  create?: Maybe<Array<BlockInstanceCreateWithoutParentTrainingInput>>,
  connect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  set?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  disconnect?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  delete?: Maybe<Array<BlockInstanceWhereUniqueInput>>,
  update?: Maybe<Array<BlockInstanceUpdateWithWhereUniqueWithoutParentTrainingInput>>,
  updateMany?: Maybe<Array<BlockInstanceUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<BlockInstanceScalarWhereInput>>,
  upsert?: Maybe<Array<BlockInstanceUpsertWithWhereUniqueWithoutParentTrainingInput>>,
};

export type BlockInstanceUpdateManyWithWhereNestedInput = {
  where: BlockInstanceScalarWhereInput,
  data: BlockInstanceUpdateManyDataInput,
};

export type BlockInstanceUpdateWithoutBlockDataInput = {
  order?: Maybe<Scalars['Int']>,
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  parentBlock?: Maybe<BlockUpdateOneWithoutBlocksInput>,
  parentTraining?: Maybe<TrainingUpdateOneWithoutBlocksInput>,
};

export type BlockInstanceUpdateWithoutParentBlockDataInput = {
  order?: Maybe<Scalars['Int']>,
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  block?: Maybe<BlockUpdateOneRequiredWithoutParentBlockInstancesInput>,
  parentTraining?: Maybe<TrainingUpdateOneWithoutBlocksInput>,
};

export type BlockInstanceUpdateWithoutParentTrainingDataInput = {
  order?: Maybe<Scalars['Int']>,
  rounds?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  block?: Maybe<BlockUpdateOneRequiredWithoutParentBlockInstancesInput>,
  parentBlock?: Maybe<BlockUpdateOneWithoutBlocksInput>,
};

export type BlockInstanceUpdateWithWhereUniqueWithoutBlockInput = {
  where: BlockInstanceWhereUniqueInput,
  data: BlockInstanceUpdateWithoutBlockDataInput,
};

export type BlockInstanceUpdateWithWhereUniqueWithoutParentBlockInput = {
  where: BlockInstanceWhereUniqueInput,
  data: BlockInstanceUpdateWithoutParentBlockDataInput,
};

export type BlockInstanceUpdateWithWhereUniqueWithoutParentTrainingInput = {
  where: BlockInstanceWhereUniqueInput,
  data: BlockInstanceUpdateWithoutParentTrainingDataInput,
};

export type BlockInstanceUpsertWithWhereUniqueWithoutBlockInput = {
  where: BlockInstanceWhereUniqueInput,
  update: BlockInstanceUpdateWithoutBlockDataInput,
  create: BlockInstanceCreateWithoutBlockInput,
};

export type BlockInstanceUpsertWithWhereUniqueWithoutParentBlockInput = {
  where: BlockInstanceWhereUniqueInput,
  update: BlockInstanceUpdateWithoutParentBlockDataInput,
  create: BlockInstanceCreateWithoutParentBlockInput,
};

export type BlockInstanceUpsertWithWhereUniqueWithoutParentTrainingInput = {
  where: BlockInstanceWhereUniqueInput,
  update: BlockInstanceUpdateWithoutParentTrainingDataInput,
  create: BlockInstanceCreateWithoutParentTrainingInput,
};

export type BlockInstanceWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<BlockInstanceWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<BlockInstanceWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<BlockInstanceWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
  rounds?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  rounds_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  rounds_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  rounds_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  rounds_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  rounds_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  rounds_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  rounds_gte?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  variation_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  variation_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  variation_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  variation_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  variation_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  variation_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  variation_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  variation_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  variation_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  variation_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  variation_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  variation_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  variation_not_ends_with?: Maybe<Scalars['String']>,
  block?: Maybe<BlockWhereInput>,
  parentBlock?: Maybe<BlockWhereInput>,
  parentTraining?: Maybe<TrainingWhereInput>,
};

export type BlockInstanceWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export enum BlockOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  TitleAsc = 'title_ASC',
  TitleDesc = 'title_DESC',
  DescriptionAsc = 'description_ASC',
  DescriptionDesc = 'description_DESC',
  DurationAsc = 'duration_ASC',
  DurationDesc = 'duration_DESC',
  RestAsc = 'rest_ASC',
  RestDesc = 'rest_DESC'
}

export type BlockUpdateOneRequiredWithoutParentBlockInstancesInput = {
  create?: Maybe<BlockCreateWithoutParentBlockInstancesInput>,
  connect?: Maybe<BlockWhereUniqueInput>,
  update?: Maybe<BlockUpdateWithoutParentBlockInstancesDataInput>,
  upsert?: Maybe<BlockUpsertWithoutParentBlockInstancesInput>,
};

export type BlockUpdateOneWithoutBlocksInput = {
  create?: Maybe<BlockCreateWithoutBlocksInput>,
  connect?: Maybe<BlockWhereUniqueInput>,
  disconnect?: Maybe<Scalars['Boolean']>,
  delete?: Maybe<Scalars['Boolean']>,
  update?: Maybe<BlockUpdateWithoutBlocksDataInput>,
  upsert?: Maybe<BlockUpsertWithoutBlocksInput>,
};

export type BlockUpdateWithoutBlocksDataInput = {
  title?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  rest?: Maybe<Scalars['Int']>,
  format?: Maybe<FormatUpdateOneRequiredInput>,
  tracks?: Maybe<TrackUpdateManyInput>,
  videos?: Maybe<VideoUpdateManyInput>,
  pictures?: Maybe<PictureUpdateManyInput>,
  parentBlockInstances?: Maybe<BlockInstanceUpdateManyWithoutBlockInput>,
  exercises?: Maybe<ExerciseInstanceUpdateManyWithoutParentBlockInstancesInput>,
};

export type BlockUpdateWithoutParentBlockInstancesDataInput = {
  title?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  rest?: Maybe<Scalars['Int']>,
  format?: Maybe<FormatUpdateOneRequiredInput>,
  tracks?: Maybe<TrackUpdateManyInput>,
  videos?: Maybe<VideoUpdateManyInput>,
  pictures?: Maybe<PictureUpdateManyInput>,
  blocks?: Maybe<BlockInstanceUpdateManyWithoutParentBlockInput>,
  exercises?: Maybe<ExerciseInstanceUpdateManyWithoutParentBlockInstancesInput>,
};

export type BlockUpsertWithoutBlocksInput = {
  update: BlockUpdateWithoutBlocksDataInput,
  create: BlockCreateWithoutBlocksInput,
};

export type BlockUpsertWithoutParentBlockInstancesInput = {
  update: BlockUpdateWithoutParentBlockInstancesDataInput,
  create: BlockCreateWithoutParentBlockInstancesInput,
};

export type BlockWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<BlockWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<BlockWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<BlockWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  title?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  title_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  title_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  title_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  title_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  title_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  title_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  title_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  title_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  title_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  title_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  title_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  title_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  title_not_ends_with?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  description_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  description_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  description_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  description_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  description_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  description_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  description_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  description_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  description_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  description_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  description_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  description_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  description_not_ends_with?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  duration_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  duration_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  duration_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  duration_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  duration_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  duration_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  duration_gte?: Maybe<Scalars['Int']>,
  rest?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  rest_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  rest_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  rest_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  rest_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  rest_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  rest_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  rest_gte?: Maybe<Scalars['Int']>,
  format?: Maybe<FormatWhereInput>,
  tracks_every?: Maybe<TrackWhereInput>,
  tracks_some?: Maybe<TrackWhereInput>,
  tracks_none?: Maybe<TrackWhereInput>,
  videos_every?: Maybe<VideoWhereInput>,
  videos_some?: Maybe<VideoWhereInput>,
  videos_none?: Maybe<VideoWhereInput>,
  pictures_every?: Maybe<PictureWhereInput>,
  pictures_some?: Maybe<PictureWhereInput>,
  pictures_none?: Maybe<PictureWhereInput>,
  blocks_every?: Maybe<BlockInstanceWhereInput>,
  blocks_some?: Maybe<BlockInstanceWhereInput>,
  blocks_none?: Maybe<BlockInstanceWhereInput>,
  parentBlockInstances_every?: Maybe<BlockInstanceWhereInput>,
  parentBlockInstances_some?: Maybe<BlockInstanceWhereInput>,
  parentBlockInstances_none?: Maybe<BlockInstanceWhereInput>,
  exercises_every?: Maybe<ExerciseInstanceWhereInput>,
  exercises_some?: Maybe<ExerciseInstanceWhereInput>,
  exercises_none?: Maybe<ExerciseInstanceWhereInput>,
};

export type BlockWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export type Comment = Node & {
  id: Scalars['ID'],
  text: Scalars['String'],
  author: User,
  createdAt: Scalars['DateTime'],
};

export type CommentCreateManyWithoutAuthorInput = {
  create?: Maybe<Array<CommentCreateWithoutAuthorInput>>,
  connect?: Maybe<Array<CommentWhereUniqueInput>>,
};

export type CommentCreateWithoutAuthorInput = {
  id?: Maybe<Scalars['ID']>,
  text: Scalars['String'],
};

export enum CommentOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  TextAsc = 'text_ASC',
  TextDesc = 'text_DESC',
  CreatedAtAsc = 'createdAt_ASC',
  CreatedAtDesc = 'createdAt_DESC'
}

export type CommentScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<CommentScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<CommentScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<CommentScalarWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  text?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  text_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  text_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  text_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  text_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  text_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  text_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  text_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  text_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  text_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  text_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  text_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  text_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  text_not_ends_with?: Maybe<Scalars['String']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
};

export type CommentUpdateManyDataInput = {
  text?: Maybe<Scalars['String']>,
};

export type CommentUpdateManyWithoutAuthorInput = {
  create?: Maybe<Array<CommentCreateWithoutAuthorInput>>,
  connect?: Maybe<Array<CommentWhereUniqueInput>>,
  set?: Maybe<Array<CommentWhereUniqueInput>>,
  disconnect?: Maybe<Array<CommentWhereUniqueInput>>,
  delete?: Maybe<Array<CommentWhereUniqueInput>>,
  update?: Maybe<Array<CommentUpdateWithWhereUniqueWithoutAuthorInput>>,
  updateMany?: Maybe<Array<CommentUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<CommentScalarWhereInput>>,
  upsert?: Maybe<Array<CommentUpsertWithWhereUniqueWithoutAuthorInput>>,
};

export type CommentUpdateManyWithWhereNestedInput = {
  where: CommentScalarWhereInput,
  data: CommentUpdateManyDataInput,
};

export type CommentUpdateWithoutAuthorDataInput = {
  text?: Maybe<Scalars['String']>,
};

export type CommentUpdateWithWhereUniqueWithoutAuthorInput = {
  where: CommentWhereUniqueInput,
  data: CommentUpdateWithoutAuthorDataInput,
};

export type CommentUpsertWithWhereUniqueWithoutAuthorInput = {
  where: CommentWhereUniqueInput,
  update: CommentUpdateWithoutAuthorDataInput,
  create: CommentCreateWithoutAuthorInput,
};

export type CommentWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<CommentWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<CommentWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<CommentWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  text?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  text_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  text_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  text_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  text_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  text_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  text_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  text_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  text_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  text_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  text_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  text_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  text_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  text_not_ends_with?: Maybe<Scalars['String']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  author?: Maybe<UserWhereInput>,
};

export type CommentWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};


export type Exercise = Node & {
  id: Scalars['ID'],
  name: Scalars['String'],
  description?: Maybe<Scalars['String']>,
  videos?: Maybe<Array<Video>>,
  pictures?: Maybe<Array<Picture>>,
  targets: Array<Scalars['String']>,
  baseExercise: Array<Scalars['String']>,
  parentExerciseInstances?: Maybe<Array<ExerciseInstance>>,
};


export type ExerciseVideosArgs = {
  where?: Maybe<VideoWhereInput>,
  orderBy?: Maybe<VideoOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type ExercisePicturesArgs = {
  where?: Maybe<PictureWhereInput>,
  orderBy?: Maybe<PictureOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type ExerciseParentExerciseInstancesArgs = {
  where?: Maybe<ExerciseInstanceWhereInput>,
  orderBy?: Maybe<ExerciseInstanceOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};

export type ExerciseCreatebaseExerciseInput = {
  set?: Maybe<Array<Scalars['String']>>,
};

export type ExerciseCreateOneWithoutParentExerciseInstancesInput = {
  create?: Maybe<ExerciseCreateWithoutParentExerciseInstancesInput>,
  connect?: Maybe<ExerciseWhereUniqueInput>,
};

export type ExerciseCreatetargetsInput = {
  set?: Maybe<Array<Scalars['String']>>,
};

export type ExerciseCreateWithoutParentExerciseInstancesInput = {
  id?: Maybe<Scalars['ID']>,
  name: Scalars['String'],
  description?: Maybe<Scalars['String']>,
  targets?: Maybe<ExerciseCreatetargetsInput>,
  baseExercise?: Maybe<ExerciseCreatebaseExerciseInput>,
  videos?: Maybe<VideoCreateManyInput>,
  pictures?: Maybe<PictureCreateManyInput>,
};

export type ExerciseInstance = Node & {
  id: Scalars['ID'],
  exercise: Exercise,
  order: Scalars['Int'],
  repetitions?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  parentBlockInstances: Block,
};

export type ExerciseInstanceCreateManyWithoutParentBlockInstancesInput = {
  create?: Maybe<Array<ExerciseInstanceCreateWithoutParentBlockInstancesInput>>,
  connect?: Maybe<Array<ExerciseInstanceWhereUniqueInput>>,
};

export type ExerciseInstanceCreateWithoutParentBlockInstancesInput = {
  id?: Maybe<Scalars['ID']>,
  order: Scalars['Int'],
  repetitions?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  exercise: ExerciseCreateOneWithoutParentExerciseInstancesInput,
};

export enum ExerciseInstanceOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  OrderAsc = 'order_ASC',
  OrderDesc = 'order_DESC',
  RepetitionsAsc = 'repetitions_ASC',
  RepetitionsDesc = 'repetitions_DESC',
  VariationAsc = 'variation_ASC',
  VariationDesc = 'variation_DESC'
}

export type ExerciseInstanceScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<ExerciseInstanceScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<ExerciseInstanceScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<ExerciseInstanceScalarWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
  repetitions?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  repetitions_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  repetitions_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  repetitions_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  repetitions_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  repetitions_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  repetitions_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  repetitions_gte?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  variation_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  variation_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  variation_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  variation_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  variation_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  variation_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  variation_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  variation_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  variation_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  variation_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  variation_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  variation_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  variation_not_ends_with?: Maybe<Scalars['String']>,
};

export type ExerciseInstanceUpdateManyDataInput = {
  order?: Maybe<Scalars['Int']>,
  repetitions?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
};

export type ExerciseInstanceUpdateManyWithoutParentBlockInstancesInput = {
  create?: Maybe<Array<ExerciseInstanceCreateWithoutParentBlockInstancesInput>>,
  connect?: Maybe<Array<ExerciseInstanceWhereUniqueInput>>,
  set?: Maybe<Array<ExerciseInstanceWhereUniqueInput>>,
  disconnect?: Maybe<Array<ExerciseInstanceWhereUniqueInput>>,
  delete?: Maybe<Array<ExerciseInstanceWhereUniqueInput>>,
  update?: Maybe<Array<ExerciseInstanceUpdateWithWhereUniqueWithoutParentBlockInstancesInput>>,
  updateMany?: Maybe<Array<ExerciseInstanceUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<ExerciseInstanceScalarWhereInput>>,
  upsert?: Maybe<Array<ExerciseInstanceUpsertWithWhereUniqueWithoutParentBlockInstancesInput>>,
};

export type ExerciseInstanceUpdateManyWithWhereNestedInput = {
  where: ExerciseInstanceScalarWhereInput,
  data: ExerciseInstanceUpdateManyDataInput,
};

export type ExerciseInstanceUpdateWithoutParentBlockInstancesDataInput = {
  order?: Maybe<Scalars['Int']>,
  repetitions?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  exercise?: Maybe<ExerciseUpdateOneRequiredWithoutParentExerciseInstancesInput>,
};

export type ExerciseInstanceUpdateWithWhereUniqueWithoutParentBlockInstancesInput = {
  where: ExerciseInstanceWhereUniqueInput,
  data: ExerciseInstanceUpdateWithoutParentBlockInstancesDataInput,
};

export type ExerciseInstanceUpsertWithWhereUniqueWithoutParentBlockInstancesInput = {
  where: ExerciseInstanceWhereUniqueInput,
  update: ExerciseInstanceUpdateWithoutParentBlockInstancesDataInput,
  create: ExerciseInstanceCreateWithoutParentBlockInstancesInput,
};

export type ExerciseInstanceWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<ExerciseInstanceWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<ExerciseInstanceWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<ExerciseInstanceWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
  repetitions?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  repetitions_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  repetitions_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  repetitions_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  repetitions_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  repetitions_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  repetitions_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  repetitions_gte?: Maybe<Scalars['Int']>,
  variation?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  variation_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  variation_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  variation_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  variation_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  variation_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  variation_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  variation_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  variation_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  variation_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  variation_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  variation_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  variation_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  variation_not_ends_with?: Maybe<Scalars['String']>,
  exercise?: Maybe<ExerciseWhereInput>,
  parentBlockInstances?: Maybe<BlockWhereInput>,
};

export type ExerciseInstanceWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export enum ExerciseOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  NameAsc = 'name_ASC',
  NameDesc = 'name_DESC',
  DescriptionAsc = 'description_ASC',
  DescriptionDesc = 'description_DESC'
}

export type ExerciseUpdatebaseExerciseInput = {
  set?: Maybe<Array<Scalars['String']>>,
};

export type ExerciseUpdateOneRequiredWithoutParentExerciseInstancesInput = {
  create?: Maybe<ExerciseCreateWithoutParentExerciseInstancesInput>,
  connect?: Maybe<ExerciseWhereUniqueInput>,
  update?: Maybe<ExerciseUpdateWithoutParentExerciseInstancesDataInput>,
  upsert?: Maybe<ExerciseUpsertWithoutParentExerciseInstancesInput>,
};

export type ExerciseUpdatetargetsInput = {
  set?: Maybe<Array<Scalars['String']>>,
};

export type ExerciseUpdateWithoutParentExerciseInstancesDataInput = {
  name?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  targets?: Maybe<ExerciseUpdatetargetsInput>,
  baseExercise?: Maybe<ExerciseUpdatebaseExerciseInput>,
  videos?: Maybe<VideoUpdateManyInput>,
  pictures?: Maybe<PictureUpdateManyInput>,
};

export type ExerciseUpsertWithoutParentExerciseInstancesInput = {
  update: ExerciseUpdateWithoutParentExerciseInstancesDataInput,
  create: ExerciseCreateWithoutParentExerciseInstancesInput,
};

export type ExerciseWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<ExerciseWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<ExerciseWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<ExerciseWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  name?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  name_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  name_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  name_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  name_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  name_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  name_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  name_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  name_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  name_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  name_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  name_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  name_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  name_not_ends_with?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  description_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  description_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  description_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  description_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  description_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  description_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  description_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  description_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  description_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  description_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  description_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  description_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  description_not_ends_with?: Maybe<Scalars['String']>,
  videos_every?: Maybe<VideoWhereInput>,
  videos_some?: Maybe<VideoWhereInput>,
  videos_none?: Maybe<VideoWhereInput>,
  pictures_every?: Maybe<PictureWhereInput>,
  pictures_some?: Maybe<PictureWhereInput>,
  pictures_none?: Maybe<PictureWhereInput>,
  parentExerciseInstances_every?: Maybe<ExerciseInstanceWhereInput>,
  parentExerciseInstances_some?: Maybe<ExerciseInstanceWhereInput>,
  parentExerciseInstances_none?: Maybe<ExerciseInstanceWhereInput>,
};

export type ExerciseWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export type File = Node & {
  id: Scalars['ID'],
  createdAt: Scalars['DateTime'],
  updatedAt: Scalars['DateTime'],
  user: User,
  path: Scalars['String'],
  comment?: Maybe<Scalars['String']>,
  mimetype?: Maybe<Scalars['String']>,
  thumbnail?: Maybe<Scalars['String']>,
  filename?: Maybe<Scalars['String']>,
  encoding?: Maybe<Scalars['String']>,
  size?: Maybe<Scalars['Int']>,
  width?: Maybe<Scalars['Int']>,
  height?: Maybe<Scalars['Int']>,
  duration?: Maybe<Scalars['Float']>,
  title?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>,
};

export type FileCreateInput = {
  id?: Maybe<Scalars['ID']>,
  path: Scalars['String'],
  comment?: Maybe<Scalars['String']>,
  mimetype?: Maybe<Scalars['String']>,
  thumbnail?: Maybe<Scalars['String']>,
  filename?: Maybe<Scalars['String']>,
  encoding?: Maybe<Scalars['String']>,
  size?: Maybe<Scalars['Int']>,
  width?: Maybe<Scalars['Int']>,
  height?: Maybe<Scalars['Int']>,
  duration?: Maybe<Scalars['Float']>,
  title?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>,
  user: UserCreateOneInput,
};

export type FileCreateOneInput = {
  create?: Maybe<FileCreateInput>,
  connect?: Maybe<FileWhereUniqueInput>,
};

export enum FileOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  CreatedAtAsc = 'createdAt_ASC',
  CreatedAtDesc = 'createdAt_DESC',
  UpdatedAtAsc = 'updatedAt_ASC',
  UpdatedAtDesc = 'updatedAt_DESC',
  PathAsc = 'path_ASC',
  PathDesc = 'path_DESC',
  CommentAsc = 'comment_ASC',
  CommentDesc = 'comment_DESC',
  MimetypeAsc = 'mimetype_ASC',
  MimetypeDesc = 'mimetype_DESC',
  ThumbnailAsc = 'thumbnail_ASC',
  ThumbnailDesc = 'thumbnail_DESC',
  FilenameAsc = 'filename_ASC',
  FilenameDesc = 'filename_DESC',
  EncodingAsc = 'encoding_ASC',
  EncodingDesc = 'encoding_DESC',
  SizeAsc = 'size_ASC',
  SizeDesc = 'size_DESC',
  WidthAsc = 'width_ASC',
  WidthDesc = 'width_DESC',
  HeightAsc = 'height_ASC',
  HeightDesc = 'height_DESC',
  DurationAsc = 'duration_ASC',
  DurationDesc = 'duration_DESC',
  TitleAsc = 'title_ASC',
  TitleDesc = 'title_DESC',
  ArtistAsc = 'artist_ASC',
  ArtistDesc = 'artist_DESC'
}

export type FileUpdateDataInput = {
  path?: Maybe<Scalars['String']>,
  comment?: Maybe<Scalars['String']>,
  mimetype?: Maybe<Scalars['String']>,
  thumbnail?: Maybe<Scalars['String']>,
  filename?: Maybe<Scalars['String']>,
  encoding?: Maybe<Scalars['String']>,
  size?: Maybe<Scalars['Int']>,
  width?: Maybe<Scalars['Int']>,
  height?: Maybe<Scalars['Int']>,
  duration?: Maybe<Scalars['Float']>,
  title?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>,
  user?: Maybe<UserUpdateOneRequiredInput>,
};

export type FileUpdateInput = {
  path?: Maybe<Scalars['String']>,
  comment?: Maybe<Scalars['String']>,
  mimetype?: Maybe<Scalars['String']>,
  thumbnail?: Maybe<Scalars['String']>,
  filename?: Maybe<Scalars['String']>,
  encoding?: Maybe<Scalars['String']>,
  size?: Maybe<Scalars['Int']>,
  width?: Maybe<Scalars['Int']>,
  height?: Maybe<Scalars['Int']>,
  duration?: Maybe<Scalars['Float']>,
  title?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>,
  user?: Maybe<UserUpdateOneRequiredInput>,
};

export type FileUpdateOneInput = {
  create?: Maybe<FileCreateInput>,
  connect?: Maybe<FileWhereUniqueInput>,
  disconnect?: Maybe<Scalars['Boolean']>,
  delete?: Maybe<Scalars['Boolean']>,
  update?: Maybe<FileUpdateDataInput>,
  upsert?: Maybe<FileUpsertNestedInput>,
};

export type FileUpsertNestedInput = {
  update: FileUpdateDataInput,
  create: FileCreateInput,
};

export type FileWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<FileWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<FileWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<FileWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  updatedAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  updatedAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  updatedAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  updatedAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  updatedAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  updatedAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  updatedAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  updatedAt_gte?: Maybe<Scalars['DateTime']>,
  path?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  path_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  path_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  path_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  path_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  path_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  path_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  path_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  path_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  path_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  path_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  path_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  path_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  path_not_ends_with?: Maybe<Scalars['String']>,
  comment?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  comment_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  comment_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  comment_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  comment_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  comment_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  comment_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  comment_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  comment_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  comment_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  comment_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  comment_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  comment_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  comment_not_ends_with?: Maybe<Scalars['String']>,
  mimetype?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  mimetype_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  mimetype_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  mimetype_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  mimetype_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  mimetype_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  mimetype_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  mimetype_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  mimetype_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  mimetype_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  mimetype_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  mimetype_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  mimetype_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  mimetype_not_ends_with?: Maybe<Scalars['String']>,
  thumbnail?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  thumbnail_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  thumbnail_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  thumbnail_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  thumbnail_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  thumbnail_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  thumbnail_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  thumbnail_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  thumbnail_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  thumbnail_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  thumbnail_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  thumbnail_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  thumbnail_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  thumbnail_not_ends_with?: Maybe<Scalars['String']>,
  filename?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  filename_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  filename_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  filename_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  filename_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  filename_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  filename_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  filename_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  filename_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  filename_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  filename_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  filename_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  filename_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  filename_not_ends_with?: Maybe<Scalars['String']>,
  encoding?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  encoding_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  encoding_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  encoding_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  encoding_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  encoding_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  encoding_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  encoding_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  encoding_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  encoding_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  encoding_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  encoding_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  encoding_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  encoding_not_ends_with?: Maybe<Scalars['String']>,
  size?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  size_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  size_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  size_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  size_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  size_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  size_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  size_gte?: Maybe<Scalars['Int']>,
  width?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  width_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  width_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  width_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  width_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  width_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  width_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  width_gte?: Maybe<Scalars['Int']>,
  height?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  height_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  height_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  height_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  height_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  height_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  height_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  height_gte?: Maybe<Scalars['Int']>,
  duration?: Maybe<Scalars['Float']>,
  /** All values that are not equal to given value. */
  duration_not?: Maybe<Scalars['Float']>,
  /** All values that are contained in given list. */
  duration_in?: Maybe<Array<Scalars['Float']>>,
  /** All values that are not contained in given list. */
  duration_not_in?: Maybe<Array<Scalars['Float']>>,
  /** All values less than the given value. */
  duration_lt?: Maybe<Scalars['Float']>,
  /** All values less than or equal the given value. */
  duration_lte?: Maybe<Scalars['Float']>,
  /** All values greater than the given value. */
  duration_gt?: Maybe<Scalars['Float']>,
  /** All values greater than or equal the given value. */
  duration_gte?: Maybe<Scalars['Float']>,
  title?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  title_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  title_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  title_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  title_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  title_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  title_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  title_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  title_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  title_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  title_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  title_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  title_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  title_not_ends_with?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  artist_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  artist_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  artist_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  artist_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  artist_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  artist_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  artist_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  artist_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  artist_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  artist_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  artist_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  artist_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  artist_not_ends_with?: Maybe<Scalars['String']>,
  user?: Maybe<UserWhereInput>,
};

export type FileWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export type Format = Node & {
  id: Scalars['ID'],
  name: Scalars['String'],
  description: Scalars['String'],
};

export type FormatCreateInput = {
  id?: Maybe<Scalars['ID']>,
  name: Scalars['String'],
  description: Scalars['String'],
};

export type FormatCreateOneInput = {
  create?: Maybe<FormatCreateInput>,
  connect?: Maybe<FormatWhereUniqueInput>,
};

export enum FormatOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  NameAsc = 'name_ASC',
  NameDesc = 'name_DESC',
  DescriptionAsc = 'description_ASC',
  DescriptionDesc = 'description_DESC'
}

export type FormatUpdateDataInput = {
  name?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
};

export type FormatUpdateOneRequiredInput = {
  create?: Maybe<FormatCreateInput>,
  connect?: Maybe<FormatWhereUniqueInput>,
  update?: Maybe<FormatUpdateDataInput>,
  upsert?: Maybe<FormatUpsertNestedInput>,
};

export type FormatUpsertNestedInput = {
  update: FormatUpdateDataInput,
  create: FormatCreateInput,
};

export type FormatWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<FormatWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<FormatWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<FormatWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  name?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  name_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  name_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  name_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  name_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  name_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  name_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  name_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  name_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  name_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  name_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  name_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  name_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  name_not_ends_with?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  description_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  description_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  description_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  description_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  description_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  description_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  description_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  description_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  description_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  description_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  description_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  description_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  description_not_ends_with?: Maybe<Scalars['String']>,
};

export type FormatWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export type FsFile = {
  filename: Scalars['String'],
  path: Scalars['String'],
  size: Scalars['Int'],
  ctime: Scalars['DateTime'],
  mtime: Scalars['DateTime'],
};

export type Link = Node & {
  id: Scalars['ID'],
  createdAt: Scalars['DateTime'],
  updatedAt: Scalars['DateTime'],
  url: Scalars['String'],
  user: User,
  comment?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  title?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>,
};

export type LinkCreateInput = {
  id?: Maybe<Scalars['ID']>,
  url: Scalars['String'],
  comment?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  title?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>,
  user: UserCreateOneInput,
};

export type LinkCreateOneInput = {
  create?: Maybe<LinkCreateInput>,
  connect?: Maybe<LinkWhereUniqueInput>,
};

export type LinkUpdateDataInput = {
  url?: Maybe<Scalars['String']>,
  comment?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  title?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>,
  user?: Maybe<UserUpdateOneRequiredInput>,
};

export type LinkUpdateOneInput = {
  create?: Maybe<LinkCreateInput>,
  connect?: Maybe<LinkWhereUniqueInput>,
  disconnect?: Maybe<Scalars['Boolean']>,
  delete?: Maybe<Scalars['Boolean']>,
  update?: Maybe<LinkUpdateDataInput>,
  upsert?: Maybe<LinkUpsertNestedInput>,
};

export type LinkUpsertNestedInput = {
  update: LinkUpdateDataInput,
  create: LinkCreateInput,
};

export type LinkWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<LinkWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<LinkWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<LinkWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  updatedAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  updatedAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  updatedAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  updatedAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  updatedAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  updatedAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  updatedAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  updatedAt_gte?: Maybe<Scalars['DateTime']>,
  url?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  url_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  url_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  url_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  url_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  url_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  url_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  url_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  url_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  url_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  url_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  url_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  url_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  url_not_ends_with?: Maybe<Scalars['String']>,
  comment?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  comment_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  comment_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  comment_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  comment_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  comment_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  comment_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  comment_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  comment_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  comment_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  comment_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  comment_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  comment_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  comment_not_ends_with?: Maybe<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  duration_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  duration_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  duration_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  duration_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  duration_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  duration_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  duration_gte?: Maybe<Scalars['Int']>,
  title?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  title_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  title_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  title_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  title_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  title_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  title_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  title_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  title_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  title_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  title_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  title_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  title_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  title_not_ends_with?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  artist_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  artist_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  artist_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  artist_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  artist_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  artist_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  artist_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  artist_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  artist_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  artist_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  artist_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  artist_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  artist_not_ends_with?: Maybe<Scalars['String']>,
  user?: Maybe<UserWhereInput>,
};

export type LinkWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export type Mutation = {
  uploadFile: File,
  updateFile: File,
  deleteFile: File,
  createVideo: Video,
  updateVideo: Video,
  deleteVideo: Video,
  createUser: User,
  updateUser: User,
  deleteUser: User,
  updatePermissions: User,
  createTraining: Training,
  deleteTraining: Training,
  updateTraining: Training,
  createTrainingType: TrainingType,
  createFormat: Format,
  userLogin: User,
  userLogout: Scalars['String'],
  userSignup: User,
  requestReset: Scalars['String'],
  resetPassword: User,
  register: Training,
  deregister: Training,
  publish: Training,
};


export type MutationUploadFileArgs = {
  file: Scalars['Upload'],
  comment?: Maybe<Scalars['String']>,
  width?: Maybe<Scalars['Int']>,
  height?: Maybe<Scalars['Int']>,
  duration?: Maybe<Scalars['Float']>,
  title?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>
};


export type MutationUpdateFileArgs = {
  where: FileWhereUniqueInput,
  data: FileUpdateInput
};


export type MutationDeleteFileArgs = {
  id: Scalars['ID']
};


export type MutationCreateVideoArgs = {
  data: VideoCreateInput
};


export type MutationUpdateVideoArgs = {
  where: VideoWhereUniqueInput,
  data: VideoUpdateInput
};


export type MutationDeleteVideoArgs = {
  id: Scalars['ID']
};


export type MutationCreateUserArgs = {
  data: UserCreateInput
};


export type MutationUpdateUserArgs = {
  id: Scalars['ID'],
  data: UserUpdateInput
};


export type MutationDeleteUserArgs = {
  id: Scalars['ID']
};


export type MutationUpdatePermissionsArgs = {
  id: Scalars['ID'],
  permissions: Array<Permission>
};


export type MutationCreateTrainingArgs = {
  title: Scalars['String'],
  type: TrainingTypeCreateOneInput,
  trainingDate: Scalars['DateTime'],
  location: Scalars['String'],
  attendance?: Maybe<Scalars['Int']>,
  published: Scalars['Boolean'],
  blocks?: Maybe<BlockInstanceCreateManyWithoutParentTrainingInput>
};


export type MutationDeleteTrainingArgs = {
  id: Scalars['ID']
};


export type MutationUpdateTrainingArgs = {
  where: TrainingWhereUniqueInput,
  data: TrainingUpdateInput
};


export type MutationCreateTrainingTypeArgs = {
  name: Scalars['String'],
  description: Scalars['String']
};


export type MutationCreateFormatArgs = {
  name: Scalars['String'],
  description: Scalars['String']
};


export type MutationUserLoginArgs = {
  email: Scalars['String'],
  password: Scalars['String']
};


export type MutationUserSignupArgs = {
  name: Scalars['String'],
  email: Scalars['String'],
  password: Scalars['String']
};


export type MutationRequestResetArgs = {
  email: Scalars['String']
};


export type MutationResetPasswordArgs = {
  token: Scalars['String'],
  password: Scalars['String']
};


export type MutationRegisterArgs = {
  training: Scalars['ID']
};


export type MutationDeregisterArgs = {
  training: Scalars['ID']
};


export type MutationPublishArgs = {
  training: Scalars['ID'],
  status?: Maybe<Scalars['Boolean']>
};

/** An object with an ID */
export type Node = {
  /** The id of the object. */
  id: Scalars['ID'],
};

/** Information about pagination in a connection. */
export type PageInfo = {
  /** When paginating forwards, are there more items? */
  hasNextPage: Scalars['Boolean'],
  /** When paginating backwards, are there more items? */
  hasPreviousPage: Scalars['Boolean'],
  /** When paginating backwards, the cursor to continue. */
  startCursor?: Maybe<Scalars['String']>,
  /** When paginating forwards, the cursor to continue. */
  endCursor?: Maybe<Scalars['String']>,
};

export enum Permission {
  Admin = 'ADMIN',
  Instructor = 'INSTRUCTOR'
}

export type Picture = Node & {
  id: Scalars['ID'],
  createdAt: Scalars['DateTime'],
  updatedAt: Scalars['DateTime'],
  order: Scalars['Int'],
  file?: Maybe<File>,
  link?: Maybe<Link>,
};

export type PictureCreateInput = {
  id?: Maybe<Scalars['ID']>,
  order: Scalars['Int'],
  file?: Maybe<FileCreateOneInput>,
  link?: Maybe<LinkCreateOneInput>,
};

export type PictureCreateManyInput = {
  create?: Maybe<Array<PictureCreateInput>>,
  connect?: Maybe<Array<PictureWhereUniqueInput>>,
};

export enum PictureOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  CreatedAtAsc = 'createdAt_ASC',
  CreatedAtDesc = 'createdAt_DESC',
  UpdatedAtAsc = 'updatedAt_ASC',
  UpdatedAtDesc = 'updatedAt_DESC',
  OrderAsc = 'order_ASC',
  OrderDesc = 'order_DESC'
}

export type PictureScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<PictureScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<PictureScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<PictureScalarWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  updatedAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  updatedAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  updatedAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  updatedAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  updatedAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  updatedAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  updatedAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  updatedAt_gte?: Maybe<Scalars['DateTime']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
};

export type PictureUpdateDataInput = {
  order?: Maybe<Scalars['Int']>,
  file?: Maybe<FileUpdateOneInput>,
  link?: Maybe<LinkUpdateOneInput>,
};

export type PictureUpdateManyDataInput = {
  order?: Maybe<Scalars['Int']>,
};

export type PictureUpdateManyInput = {
  create?: Maybe<Array<PictureCreateInput>>,
  connect?: Maybe<Array<PictureWhereUniqueInput>>,
  set?: Maybe<Array<PictureWhereUniqueInput>>,
  disconnect?: Maybe<Array<PictureWhereUniqueInput>>,
  delete?: Maybe<Array<PictureWhereUniqueInput>>,
  update?: Maybe<Array<PictureUpdateWithWhereUniqueNestedInput>>,
  updateMany?: Maybe<Array<PictureUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<PictureScalarWhereInput>>,
  upsert?: Maybe<Array<PictureUpsertWithWhereUniqueNestedInput>>,
};

export type PictureUpdateManyWithWhereNestedInput = {
  where: PictureScalarWhereInput,
  data: PictureUpdateManyDataInput,
};

export type PictureUpdateWithWhereUniqueNestedInput = {
  where: PictureWhereUniqueInput,
  data: PictureUpdateDataInput,
};

export type PictureUpsertWithWhereUniqueNestedInput = {
  where: PictureWhereUniqueInput,
  update: PictureUpdateDataInput,
  create: PictureCreateInput,
};

export type PictureWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<PictureWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<PictureWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<PictureWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  updatedAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  updatedAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  updatedAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  updatedAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  updatedAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  updatedAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  updatedAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  updatedAt_gte?: Maybe<Scalars['DateTime']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
  file?: Maybe<FileWhereInput>,
  link?: Maybe<LinkWhereInput>,
};

export type PictureWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export type Query = {
  trainingArchive: TrainingArchive,
  publishedTrainings: Array<Training>,
  training: Training,
  trainings: Array<Training>,
  trainingsCount: TrainingConnection,
  fsFiles: Array<FsFile>,
  files: Array<File>,
  file: File,
  videos: Array<Video>,
  video: Video,
  currentUser: User,
  user?: Maybe<User>,
  users: Array<User>,
  trainingType?: Maybe<TrainingType>,
  trainingTypes: Array<TrainingType>,
  block?: Maybe<Block>,
  blocks: Array<Block>,
  format?: Maybe<Format>,
  formats: Array<Format>,
  exercise?: Maybe<Exercise>,
  exercises: Array<Exercise>,
};


export type QueryTrainingArchiveArgs = {
  skip?: Maybe<Scalars['Int']>,
  first?: Maybe<Scalars['Int']>
};


export type QueryPublishedTrainingsArgs = {
  where?: Maybe<TrainingWhereInput>,
  orderBy?: Maybe<TrainingOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  first?: Maybe<Scalars['Int']>
};


export type QueryTrainingArgs = {
  id?: Maybe<Scalars['ID']>
};


export type QueryTrainingsArgs = {
  where?: Maybe<TrainingWhereInput>,
  orderBy?: Maybe<TrainingOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type QueryTrainingsCountArgs = {
  where?: Maybe<TrainingWhereInput>
};


export type QueryFsFilesArgs = {
  directory: Scalars['String']
};


export type QueryFilesArgs = {
  where?: Maybe<FileWhereInput>,
  orderBy?: Maybe<FileOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type QueryFileArgs = {
  where: FileWhereUniqueInput
};


export type QueryVideosArgs = {
  where?: Maybe<VideoWhereInput>,
  orderBy?: Maybe<VideoOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type QueryVideoArgs = {
  where: VideoWhereUniqueInput
};


export type QueryUserArgs = {
  where: UserWhereUniqueInput
};


export type QueryUsersArgs = {
  where?: Maybe<UserWhereInput>,
  orderBy?: Maybe<UserOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type QueryTrainingTypeArgs = {
  where: TrainingTypeWhereUniqueInput
};


export type QueryTrainingTypesArgs = {
  where?: Maybe<TrainingTypeWhereInput>,
  orderBy?: Maybe<TrainingTypeOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type QueryBlockArgs = {
  where: BlockWhereUniqueInput
};


export type QueryBlocksArgs = {
  where?: Maybe<BlockWhereInput>,
  orderBy?: Maybe<BlockOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type QueryFormatArgs = {
  where: FormatWhereUniqueInput
};


export type QueryFormatsArgs = {
  where?: Maybe<FormatWhereInput>,
  orderBy?: Maybe<FormatOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type QueryExerciseArgs = {
  where: ExerciseWhereUniqueInput
};


export type QueryExercisesArgs = {
  where?: Maybe<ExerciseWhereInput>,
  orderBy?: Maybe<ExerciseOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};

export type Rating = Node & {
  id: Scalars['ID'],
  user: User,
  value: Scalars['Int'],
  comment: Scalars['String'],
  createdAt: Scalars['DateTime'],
};

export type RatingCreateInput = {
  id?: Maybe<Scalars['ID']>,
  value: Scalars['Int'],
  comment: Scalars['String'],
  user: UserCreateOneWithoutRatingsInput,
};

export type RatingCreateManyInput = {
  create?: Maybe<Array<RatingCreateInput>>,
  connect?: Maybe<Array<RatingWhereUniqueInput>>,
};

export type RatingCreateManyWithoutUserInput = {
  create?: Maybe<Array<RatingCreateWithoutUserInput>>,
  connect?: Maybe<Array<RatingWhereUniqueInput>>,
};

export type RatingCreateWithoutUserInput = {
  id?: Maybe<Scalars['ID']>,
  value: Scalars['Int'],
  comment: Scalars['String'],
};

export enum RatingOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  ValueAsc = 'value_ASC',
  ValueDesc = 'value_DESC',
  CommentAsc = 'comment_ASC',
  CommentDesc = 'comment_DESC',
  CreatedAtAsc = 'createdAt_ASC',
  CreatedAtDesc = 'createdAt_DESC'
}

export type RatingScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<RatingScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<RatingScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<RatingScalarWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  value?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  value_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  value_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  value_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  value_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  value_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  value_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  value_gte?: Maybe<Scalars['Int']>,
  comment?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  comment_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  comment_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  comment_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  comment_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  comment_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  comment_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  comment_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  comment_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  comment_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  comment_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  comment_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  comment_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  comment_not_ends_with?: Maybe<Scalars['String']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
};

export type RatingUpdateDataInput = {
  value?: Maybe<Scalars['Int']>,
  comment?: Maybe<Scalars['String']>,
  user?: Maybe<UserUpdateOneRequiredWithoutRatingsInput>,
};

export type RatingUpdateManyDataInput = {
  value?: Maybe<Scalars['Int']>,
  comment?: Maybe<Scalars['String']>,
};

export type RatingUpdateManyInput = {
  create?: Maybe<Array<RatingCreateInput>>,
  connect?: Maybe<Array<RatingWhereUniqueInput>>,
  set?: Maybe<Array<RatingWhereUniqueInput>>,
  disconnect?: Maybe<Array<RatingWhereUniqueInput>>,
  delete?: Maybe<Array<RatingWhereUniqueInput>>,
  update?: Maybe<Array<RatingUpdateWithWhereUniqueNestedInput>>,
  updateMany?: Maybe<Array<RatingUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<RatingScalarWhereInput>>,
  upsert?: Maybe<Array<RatingUpsertWithWhereUniqueNestedInput>>,
};

export type RatingUpdateManyWithoutUserInput = {
  create?: Maybe<Array<RatingCreateWithoutUserInput>>,
  connect?: Maybe<Array<RatingWhereUniqueInput>>,
  set?: Maybe<Array<RatingWhereUniqueInput>>,
  disconnect?: Maybe<Array<RatingWhereUniqueInput>>,
  delete?: Maybe<Array<RatingWhereUniqueInput>>,
  update?: Maybe<Array<RatingUpdateWithWhereUniqueWithoutUserInput>>,
  updateMany?: Maybe<Array<RatingUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<RatingScalarWhereInput>>,
  upsert?: Maybe<Array<RatingUpsertWithWhereUniqueWithoutUserInput>>,
};

export type RatingUpdateManyWithWhereNestedInput = {
  where: RatingScalarWhereInput,
  data: RatingUpdateManyDataInput,
};

export type RatingUpdateWithoutUserDataInput = {
  value?: Maybe<Scalars['Int']>,
  comment?: Maybe<Scalars['String']>,
};

export type RatingUpdateWithWhereUniqueNestedInput = {
  where: RatingWhereUniqueInput,
  data: RatingUpdateDataInput,
};

export type RatingUpdateWithWhereUniqueWithoutUserInput = {
  where: RatingWhereUniqueInput,
  data: RatingUpdateWithoutUserDataInput,
};

export type RatingUpsertWithWhereUniqueNestedInput = {
  where: RatingWhereUniqueInput,
  update: RatingUpdateDataInput,
  create: RatingCreateInput,
};

export type RatingUpsertWithWhereUniqueWithoutUserInput = {
  where: RatingWhereUniqueInput,
  update: RatingUpdateWithoutUserDataInput,
  create: RatingCreateWithoutUserInput,
};

export type RatingWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<RatingWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<RatingWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<RatingWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  value?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  value_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  value_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  value_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  value_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  value_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  value_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  value_gte?: Maybe<Scalars['Int']>,
  comment?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  comment_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  comment_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  comment_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  comment_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  comment_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  comment_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  comment_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  comment_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  comment_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  comment_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  comment_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  comment_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  comment_not_ends_with?: Maybe<Scalars['String']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  user?: Maybe<UserWhereInput>,
};

export type RatingWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export type Track = Node & {
  id: Scalars['ID'],
  createdAt: Scalars['DateTime'],
  updatedAt: Scalars['DateTime'],
  order: Scalars['Int'],
  file?: Maybe<File>,
  link?: Maybe<Link>,
};

export type TrackCreateInput = {
  id?: Maybe<Scalars['ID']>,
  order: Scalars['Int'],
  file?: Maybe<FileCreateOneInput>,
  link?: Maybe<LinkCreateOneInput>,
};

export type TrackCreateManyInput = {
  create?: Maybe<Array<TrackCreateInput>>,
  connect?: Maybe<Array<TrackWhereUniqueInput>>,
};

export enum TrackOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  CreatedAtAsc = 'createdAt_ASC',
  CreatedAtDesc = 'createdAt_DESC',
  UpdatedAtAsc = 'updatedAt_ASC',
  UpdatedAtDesc = 'updatedAt_DESC',
  OrderAsc = 'order_ASC',
  OrderDesc = 'order_DESC'
}

export type TrackScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<TrackScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<TrackScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<TrackScalarWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  updatedAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  updatedAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  updatedAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  updatedAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  updatedAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  updatedAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  updatedAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  updatedAt_gte?: Maybe<Scalars['DateTime']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
};

export type TrackUpdateDataInput = {
  order?: Maybe<Scalars['Int']>,
  file?: Maybe<FileUpdateOneInput>,
  link?: Maybe<LinkUpdateOneInput>,
};

export type TrackUpdateManyDataInput = {
  order?: Maybe<Scalars['Int']>,
};

export type TrackUpdateManyInput = {
  create?: Maybe<Array<TrackCreateInput>>,
  connect?: Maybe<Array<TrackWhereUniqueInput>>,
  set?: Maybe<Array<TrackWhereUniqueInput>>,
  disconnect?: Maybe<Array<TrackWhereUniqueInput>>,
  delete?: Maybe<Array<TrackWhereUniqueInput>>,
  update?: Maybe<Array<TrackUpdateWithWhereUniqueNestedInput>>,
  updateMany?: Maybe<Array<TrackUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<TrackScalarWhereInput>>,
  upsert?: Maybe<Array<TrackUpsertWithWhereUniqueNestedInput>>,
};

export type TrackUpdateManyWithWhereNestedInput = {
  where: TrackScalarWhereInput,
  data: TrackUpdateManyDataInput,
};

export type TrackUpdateWithWhereUniqueNestedInput = {
  where: TrackWhereUniqueInput,
  data: TrackUpdateDataInput,
};

export type TrackUpsertWithWhereUniqueNestedInput = {
  where: TrackWhereUniqueInput,
  update: TrackUpdateDataInput,
  create: TrackCreateInput,
};

export type TrackWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<TrackWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<TrackWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<TrackWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  updatedAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  updatedAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  updatedAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  updatedAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  updatedAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  updatedAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  updatedAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  updatedAt_gte?: Maybe<Scalars['DateTime']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
  file?: Maybe<FileWhereInput>,
  link?: Maybe<LinkWhereInput>,
};

export type TrackWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export type Training = Node & {
  id: Scalars['ID'],
  title: Scalars['String'],
  type: TrainingType,
  createdAt: Scalars['DateTime'],
  trainingDate: Scalars['DateTime'],
  location: Scalars['String'],
  registrations?: Maybe<Array<User>>,
  attendance?: Maybe<Scalars['Int']>,
  ratings?: Maybe<Array<Rating>>,
  published: Scalars['Boolean'],
  blocks?: Maybe<Array<BlockInstance>>,
};


export type TrainingRegistrationsArgs = {
  where?: Maybe<UserWhereInput>,
  orderBy?: Maybe<UserOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type TrainingRatingsArgs = {
  where?: Maybe<RatingWhereInput>,
  orderBy?: Maybe<RatingOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type TrainingBlocksArgs = {
  where?: Maybe<BlockInstanceWhereInput>,
  orderBy?: Maybe<BlockInstanceOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};

export type TrainingArchive = {
  trainings: Array<TrainingArchiveItem>,
  totalCount: Scalars['Int'],
};

export type TrainingArchiveItem = {
  id: Scalars['ID'],
  title: Scalars['String'],
  type: TrainingType,
  trainingDate: Scalars['DateTime'],
  location: Scalars['String'],
  attendance?: Maybe<Scalars['Int']>,
  ratings?: Maybe<Scalars['Float']>,
  blocks: Array<Scalars['String']>,
  duration?: Maybe<Scalars['Int']>,
};

/** A connection to a list of items. */
export type TrainingConnection = {
  /** Information to aid in pagination. */
  pageInfo: PageInfo,
  /** A list of edges. */
  edges: Array<Maybe<TrainingEdge>>,
  aggregate: AggregateTraining,
};

export type TrainingCreateOneWithoutBlocksInput = {
  create?: Maybe<TrainingCreateWithoutBlocksInput>,
  connect?: Maybe<TrainingWhereUniqueInput>,
};

export type TrainingCreateWithoutBlocksInput = {
  id?: Maybe<Scalars['ID']>,
  title: Scalars['String'],
  trainingDate: Scalars['DateTime'],
  location: Scalars['String'],
  attendance?: Maybe<Scalars['Int']>,
  published: Scalars['Boolean'],
  type: TrainingTypeCreateOneInput,
  registrations?: Maybe<UserCreateManyInput>,
  ratings?: Maybe<RatingCreateManyInput>,
};

/** An edge in a connection. */
export type TrainingEdge = {
  /** The item at the end of the edge. */
  node: Training,
  /** A cursor for use in pagination. */
  cursor: Scalars['String'],
};

export enum TrainingOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  TitleAsc = 'title_ASC',
  TitleDesc = 'title_DESC',
  CreatedAtAsc = 'createdAt_ASC',
  CreatedAtDesc = 'createdAt_DESC',
  TrainingDateAsc = 'trainingDate_ASC',
  TrainingDateDesc = 'trainingDate_DESC',
  LocationAsc = 'location_ASC',
  LocationDesc = 'location_DESC',
  AttendanceAsc = 'attendance_ASC',
  AttendanceDesc = 'attendance_DESC',
  PublishedAsc = 'published_ASC',
  PublishedDesc = 'published_DESC'
}

export type TrainingType = Node & {
  id: Scalars['ID'],
  name: Scalars['String'],
  description: Scalars['String'],
};

export type TrainingTypeCreateInput = {
  id?: Maybe<Scalars['ID']>,
  name: Scalars['String'],
  description: Scalars['String'],
};

export type TrainingTypeCreateOneInput = {
  create?: Maybe<TrainingTypeCreateInput>,
  connect?: Maybe<TrainingTypeWhereUniqueInput>,
};

export enum TrainingTypeOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  NameAsc = 'name_ASC',
  NameDesc = 'name_DESC',
  DescriptionAsc = 'description_ASC',
  DescriptionDesc = 'description_DESC'
}

export type TrainingTypeUpdateDataInput = {
  name?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
};

export type TrainingTypeUpdateOneRequiredInput = {
  create?: Maybe<TrainingTypeCreateInput>,
  connect?: Maybe<TrainingTypeWhereUniqueInput>,
  update?: Maybe<TrainingTypeUpdateDataInput>,
  upsert?: Maybe<TrainingTypeUpsertNestedInput>,
};

export type TrainingTypeUpsertNestedInput = {
  update: TrainingTypeUpdateDataInput,
  create: TrainingTypeCreateInput,
};

export type TrainingTypeWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<TrainingTypeWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<TrainingTypeWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<TrainingTypeWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  name?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  name_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  name_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  name_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  name_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  name_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  name_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  name_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  name_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  name_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  name_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  name_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  name_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  name_not_ends_with?: Maybe<Scalars['String']>,
  description?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  description_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  description_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  description_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  description_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  description_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  description_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  description_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  description_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  description_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  description_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  description_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  description_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  description_not_ends_with?: Maybe<Scalars['String']>,
};

export type TrainingTypeWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
  name?: Maybe<Scalars['String']>,
};

export type TrainingUpdateInput = {
  title?: Maybe<Scalars['String']>,
  trainingDate?: Maybe<Scalars['DateTime']>,
  location?: Maybe<Scalars['String']>,
  attendance?: Maybe<Scalars['Int']>,
  published?: Maybe<Scalars['Boolean']>,
  type?: Maybe<TrainingTypeUpdateOneRequiredInput>,
  registrations?: Maybe<UserUpdateManyInput>,
  ratings?: Maybe<RatingUpdateManyInput>,
  blocks?: Maybe<BlockInstanceUpdateManyWithoutParentTrainingInput>,
};

export type TrainingUpdateOneWithoutBlocksInput = {
  create?: Maybe<TrainingCreateWithoutBlocksInput>,
  connect?: Maybe<TrainingWhereUniqueInput>,
  disconnect?: Maybe<Scalars['Boolean']>,
  delete?: Maybe<Scalars['Boolean']>,
  update?: Maybe<TrainingUpdateWithoutBlocksDataInput>,
  upsert?: Maybe<TrainingUpsertWithoutBlocksInput>,
};

export type TrainingUpdateWithoutBlocksDataInput = {
  title?: Maybe<Scalars['String']>,
  trainingDate?: Maybe<Scalars['DateTime']>,
  location?: Maybe<Scalars['String']>,
  attendance?: Maybe<Scalars['Int']>,
  published?: Maybe<Scalars['Boolean']>,
  type?: Maybe<TrainingTypeUpdateOneRequiredInput>,
  registrations?: Maybe<UserUpdateManyInput>,
  ratings?: Maybe<RatingUpdateManyInput>,
};

export type TrainingUpsertWithoutBlocksInput = {
  update: TrainingUpdateWithoutBlocksDataInput,
  create: TrainingCreateWithoutBlocksInput,
};

export type TrainingWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<TrainingWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<TrainingWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<TrainingWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  title?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  title_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  title_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  title_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  title_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  title_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  title_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  title_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  title_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  title_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  title_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  title_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  title_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  title_not_ends_with?: Maybe<Scalars['String']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  trainingDate?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  trainingDate_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  trainingDate_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  trainingDate_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  trainingDate_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  trainingDate_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  trainingDate_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  trainingDate_gte?: Maybe<Scalars['DateTime']>,
  location?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  location_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  location_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  location_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  location_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  location_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  location_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  location_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  location_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  location_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  location_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  location_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  location_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  location_not_ends_with?: Maybe<Scalars['String']>,
  attendance?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  attendance_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  attendance_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  attendance_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  attendance_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  attendance_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  attendance_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  attendance_gte?: Maybe<Scalars['Int']>,
  published?: Maybe<Scalars['Boolean']>,
  /** All values that are not equal to given value. */
  published_not?: Maybe<Scalars['Boolean']>,
  type?: Maybe<TrainingTypeWhereInput>,
  registrations_every?: Maybe<UserWhereInput>,
  registrations_some?: Maybe<UserWhereInput>,
  registrations_none?: Maybe<UserWhereInput>,
  ratings_every?: Maybe<RatingWhereInput>,
  ratings_some?: Maybe<RatingWhereInput>,
  ratings_none?: Maybe<RatingWhereInput>,
  blocks_every?: Maybe<BlockInstanceWhereInput>,
  blocks_some?: Maybe<BlockInstanceWhereInput>,
  blocks_none?: Maybe<BlockInstanceWhereInput>,
};

export type TrainingWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};


export type User = Node & {
  id: Scalars['ID'],
  email: Scalars['String'],
  name: Scalars['String'],
  password: Scalars['String'],
  resetToken?: Maybe<Scalars['String']>,
  resetTokenExpiry?: Maybe<Scalars['Float']>,
  createdAt: Scalars['DateTime'],
  comments?: Maybe<Array<Comment>>,
  ratings?: Maybe<Array<Rating>>,
  permissions: Array<Permission>,
  interests: Array<Scalars['String']>,
};


export type UserCommentsArgs = {
  where?: Maybe<CommentWhereInput>,
  orderBy?: Maybe<CommentOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type UserRatingsArgs = {
  where?: Maybe<RatingWhereInput>,
  orderBy?: Maybe<RatingOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};

export type UserCreateInput = {
  id?: Maybe<Scalars['ID']>,
  email: Scalars['String'],
  name: Scalars['String'],
  password: Scalars['String'],
  resetToken?: Maybe<Scalars['String']>,
  resetTokenExpiry?: Maybe<Scalars['Float']>,
  permissions?: Maybe<UserCreatepermissionsInput>,
  interests?: Maybe<UserCreateinterestsInput>,
  comments?: Maybe<CommentCreateManyWithoutAuthorInput>,
  ratings?: Maybe<RatingCreateManyWithoutUserInput>,
};

export type UserCreateinterestsInput = {
  set?: Maybe<Array<Scalars['String']>>,
};

export type UserCreateManyInput = {
  create?: Maybe<Array<UserCreateInput>>,
  connect?: Maybe<Array<UserWhereUniqueInput>>,
};

export type UserCreateOneInput = {
  create?: Maybe<UserCreateInput>,
  connect?: Maybe<UserWhereUniqueInput>,
};

export type UserCreateOneWithoutRatingsInput = {
  create?: Maybe<UserCreateWithoutRatingsInput>,
  connect?: Maybe<UserWhereUniqueInput>,
};

export type UserCreatepermissionsInput = {
  set?: Maybe<Array<Permission>>,
};

export type UserCreateWithoutRatingsInput = {
  id?: Maybe<Scalars['ID']>,
  email: Scalars['String'],
  name: Scalars['String'],
  password: Scalars['String'],
  resetToken?: Maybe<Scalars['String']>,
  resetTokenExpiry?: Maybe<Scalars['Float']>,
  permissions?: Maybe<UserCreatepermissionsInput>,
  interests?: Maybe<UserCreateinterestsInput>,
  comments?: Maybe<CommentCreateManyWithoutAuthorInput>,
};

export enum UserOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  EmailAsc = 'email_ASC',
  EmailDesc = 'email_DESC',
  NameAsc = 'name_ASC',
  NameDesc = 'name_DESC',
  PasswordAsc = 'password_ASC',
  PasswordDesc = 'password_DESC',
  ResetTokenAsc = 'resetToken_ASC',
  ResetTokenDesc = 'resetToken_DESC',
  ResetTokenExpiryAsc = 'resetTokenExpiry_ASC',
  ResetTokenExpiryDesc = 'resetTokenExpiry_DESC',
  CreatedAtAsc = 'createdAt_ASC',
  CreatedAtDesc = 'createdAt_DESC'
}

export type UserScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<UserScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<UserScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<UserScalarWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  email?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  email_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  email_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  email_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  email_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  email_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  email_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  email_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  email_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  email_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  email_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  email_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  email_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  email_not_ends_with?: Maybe<Scalars['String']>,
  name?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  name_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  name_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  name_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  name_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  name_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  name_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  name_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  name_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  name_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  name_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  name_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  name_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  name_not_ends_with?: Maybe<Scalars['String']>,
  password?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  password_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  password_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  password_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  password_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  password_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  password_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  password_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  password_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  password_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  password_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  password_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  password_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  password_not_ends_with?: Maybe<Scalars['String']>,
  resetToken?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  resetToken_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  resetToken_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  resetToken_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  resetToken_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  resetToken_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  resetToken_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  resetToken_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  resetToken_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  resetToken_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  resetToken_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  resetToken_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  resetToken_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  resetToken_not_ends_with?: Maybe<Scalars['String']>,
  resetTokenExpiry?: Maybe<Scalars['Float']>,
  /** All values that are not equal to given value. */
  resetTokenExpiry_not?: Maybe<Scalars['Float']>,
  /** All values that are contained in given list. */
  resetTokenExpiry_in?: Maybe<Array<Scalars['Float']>>,
  /** All values that are not contained in given list. */
  resetTokenExpiry_not_in?: Maybe<Array<Scalars['Float']>>,
  /** All values less than the given value. */
  resetTokenExpiry_lt?: Maybe<Scalars['Float']>,
  /** All values less than or equal the given value. */
  resetTokenExpiry_lte?: Maybe<Scalars['Float']>,
  /** All values greater than the given value. */
  resetTokenExpiry_gt?: Maybe<Scalars['Float']>,
  /** All values greater than or equal the given value. */
  resetTokenExpiry_gte?: Maybe<Scalars['Float']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
};

export type UserUpdateDataInput = {
  email?: Maybe<Scalars['String']>,
  name?: Maybe<Scalars['String']>,
  password?: Maybe<Scalars['String']>,
  resetToken?: Maybe<Scalars['String']>,
  resetTokenExpiry?: Maybe<Scalars['Float']>,
  permissions?: Maybe<UserUpdatepermissionsInput>,
  interests?: Maybe<UserUpdateinterestsInput>,
  comments?: Maybe<CommentUpdateManyWithoutAuthorInput>,
  ratings?: Maybe<RatingUpdateManyWithoutUserInput>,
};

export type UserUpdateInput = {
  email?: Maybe<Scalars['String']>,
  name?: Maybe<Scalars['String']>,
  password?: Maybe<Scalars['String']>,
  resetToken?: Maybe<Scalars['String']>,
  resetTokenExpiry?: Maybe<Scalars['Float']>,
  permissions?: Maybe<UserUpdatepermissionsInput>,
  interests?: Maybe<UserUpdateinterestsInput>,
  comments?: Maybe<CommentUpdateManyWithoutAuthorInput>,
  ratings?: Maybe<RatingUpdateManyWithoutUserInput>,
};

export type UserUpdateinterestsInput = {
  set?: Maybe<Array<Scalars['String']>>,
};

export type UserUpdateManyDataInput = {
  email?: Maybe<Scalars['String']>,
  name?: Maybe<Scalars['String']>,
  password?: Maybe<Scalars['String']>,
  resetToken?: Maybe<Scalars['String']>,
  resetTokenExpiry?: Maybe<Scalars['Float']>,
  permissions?: Maybe<UserUpdatepermissionsInput>,
  interests?: Maybe<UserUpdateinterestsInput>,
};

export type UserUpdateManyInput = {
  create?: Maybe<Array<UserCreateInput>>,
  connect?: Maybe<Array<UserWhereUniqueInput>>,
  set?: Maybe<Array<UserWhereUniqueInput>>,
  disconnect?: Maybe<Array<UserWhereUniqueInput>>,
  delete?: Maybe<Array<UserWhereUniqueInput>>,
  update?: Maybe<Array<UserUpdateWithWhereUniqueNestedInput>>,
  updateMany?: Maybe<Array<UserUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<UserScalarWhereInput>>,
  upsert?: Maybe<Array<UserUpsertWithWhereUniqueNestedInput>>,
};

export type UserUpdateManyWithWhereNestedInput = {
  where: UserScalarWhereInput,
  data: UserUpdateManyDataInput,
};

export type UserUpdateOneRequiredInput = {
  create?: Maybe<UserCreateInput>,
  connect?: Maybe<UserWhereUniqueInput>,
  update?: Maybe<UserUpdateDataInput>,
  upsert?: Maybe<UserUpsertNestedInput>,
};

export type UserUpdateOneRequiredWithoutRatingsInput = {
  create?: Maybe<UserCreateWithoutRatingsInput>,
  connect?: Maybe<UserWhereUniqueInput>,
  update?: Maybe<UserUpdateWithoutRatingsDataInput>,
  upsert?: Maybe<UserUpsertWithoutRatingsInput>,
};

export type UserUpdatepermissionsInput = {
  set?: Maybe<Array<Permission>>,
};

export type UserUpdateWithoutRatingsDataInput = {
  email?: Maybe<Scalars['String']>,
  name?: Maybe<Scalars['String']>,
  password?: Maybe<Scalars['String']>,
  resetToken?: Maybe<Scalars['String']>,
  resetTokenExpiry?: Maybe<Scalars['Float']>,
  permissions?: Maybe<UserUpdatepermissionsInput>,
  interests?: Maybe<UserUpdateinterestsInput>,
  comments?: Maybe<CommentUpdateManyWithoutAuthorInput>,
};

export type UserUpdateWithWhereUniqueNestedInput = {
  where: UserWhereUniqueInput,
  data: UserUpdateDataInput,
};

export type UserUpsertNestedInput = {
  update: UserUpdateDataInput,
  create: UserCreateInput,
};

export type UserUpsertWithoutRatingsInput = {
  update: UserUpdateWithoutRatingsDataInput,
  create: UserCreateWithoutRatingsInput,
};

export type UserUpsertWithWhereUniqueNestedInput = {
  where: UserWhereUniqueInput,
  update: UserUpdateDataInput,
  create: UserCreateInput,
};

export type UserWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<UserWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<UserWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<UserWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  email?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  email_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  email_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  email_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  email_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  email_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  email_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  email_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  email_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  email_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  email_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  email_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  email_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  email_not_ends_with?: Maybe<Scalars['String']>,
  name?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  name_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  name_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  name_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  name_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  name_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  name_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  name_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  name_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  name_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  name_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  name_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  name_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  name_not_ends_with?: Maybe<Scalars['String']>,
  password?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  password_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  password_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  password_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  password_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  password_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  password_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  password_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  password_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  password_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  password_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  password_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  password_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  password_not_ends_with?: Maybe<Scalars['String']>,
  resetToken?: Maybe<Scalars['String']>,
  /** All values that are not equal to given value. */
  resetToken_not?: Maybe<Scalars['String']>,
  /** All values that are contained in given list. */
  resetToken_in?: Maybe<Array<Scalars['String']>>,
  /** All values that are not contained in given list. */
  resetToken_not_in?: Maybe<Array<Scalars['String']>>,
  /** All values less than the given value. */
  resetToken_lt?: Maybe<Scalars['String']>,
  /** All values less than or equal the given value. */
  resetToken_lte?: Maybe<Scalars['String']>,
  /** All values greater than the given value. */
  resetToken_gt?: Maybe<Scalars['String']>,
  /** All values greater than or equal the given value. */
  resetToken_gte?: Maybe<Scalars['String']>,
  /** All values containing the given string. */
  resetToken_contains?: Maybe<Scalars['String']>,
  /** All values not containing the given string. */
  resetToken_not_contains?: Maybe<Scalars['String']>,
  /** All values starting with the given string. */
  resetToken_starts_with?: Maybe<Scalars['String']>,
  /** All values not starting with the given string. */
  resetToken_not_starts_with?: Maybe<Scalars['String']>,
  /** All values ending with the given string. */
  resetToken_ends_with?: Maybe<Scalars['String']>,
  /** All values not ending with the given string. */
  resetToken_not_ends_with?: Maybe<Scalars['String']>,
  resetTokenExpiry?: Maybe<Scalars['Float']>,
  /** All values that are not equal to given value. */
  resetTokenExpiry_not?: Maybe<Scalars['Float']>,
  /** All values that are contained in given list. */
  resetTokenExpiry_in?: Maybe<Array<Scalars['Float']>>,
  /** All values that are not contained in given list. */
  resetTokenExpiry_not_in?: Maybe<Array<Scalars['Float']>>,
  /** All values less than the given value. */
  resetTokenExpiry_lt?: Maybe<Scalars['Float']>,
  /** All values less than or equal the given value. */
  resetTokenExpiry_lte?: Maybe<Scalars['Float']>,
  /** All values greater than the given value. */
  resetTokenExpiry_gt?: Maybe<Scalars['Float']>,
  /** All values greater than or equal the given value. */
  resetTokenExpiry_gte?: Maybe<Scalars['Float']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  comments_every?: Maybe<CommentWhereInput>,
  comments_some?: Maybe<CommentWhereInput>,
  comments_none?: Maybe<CommentWhereInput>,
  ratings_every?: Maybe<RatingWhereInput>,
  ratings_some?: Maybe<RatingWhereInput>,
  ratings_none?: Maybe<RatingWhereInput>,
};

export type UserWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
  email?: Maybe<Scalars['String']>,
};

export type Video = Node & {
  id: Scalars['ID'],
  createdAt: Scalars['DateTime'],
  updatedAt: Scalars['DateTime'],
  order: Scalars['Int'],
  file?: Maybe<File>,
  link?: Maybe<Link>,
};

export type VideoCreateInput = {
  id?: Maybe<Scalars['ID']>,
  order: Scalars['Int'],
  file?: Maybe<FileCreateOneInput>,
  link?: Maybe<LinkCreateOneInput>,
};

export type VideoCreateManyInput = {
  create?: Maybe<Array<VideoCreateInput>>,
  connect?: Maybe<Array<VideoWhereUniqueInput>>,
};

export enum VideoOrderByInput {
  IdAsc = 'id_ASC',
  IdDesc = 'id_DESC',
  CreatedAtAsc = 'createdAt_ASC',
  CreatedAtDesc = 'createdAt_DESC',
  UpdatedAtAsc = 'updatedAt_ASC',
  UpdatedAtDesc = 'updatedAt_DESC',
  OrderAsc = 'order_ASC',
  OrderDesc = 'order_DESC'
}

export type VideoScalarWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<VideoScalarWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<VideoScalarWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<VideoScalarWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  updatedAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  updatedAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  updatedAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  updatedAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  updatedAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  updatedAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  updatedAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  updatedAt_gte?: Maybe<Scalars['DateTime']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
};

export type VideoUpdateDataInput = {
  order?: Maybe<Scalars['Int']>,
  file?: Maybe<FileUpdateOneInput>,
  link?: Maybe<LinkUpdateOneInput>,
};

export type VideoUpdateInput = {
  order?: Maybe<Scalars['Int']>,
  file?: Maybe<FileUpdateOneInput>,
  link?: Maybe<LinkUpdateOneInput>,
};

export type VideoUpdateManyDataInput = {
  order?: Maybe<Scalars['Int']>,
};

export type VideoUpdateManyInput = {
  create?: Maybe<Array<VideoCreateInput>>,
  connect?: Maybe<Array<VideoWhereUniqueInput>>,
  set?: Maybe<Array<VideoWhereUniqueInput>>,
  disconnect?: Maybe<Array<VideoWhereUniqueInput>>,
  delete?: Maybe<Array<VideoWhereUniqueInput>>,
  update?: Maybe<Array<VideoUpdateWithWhereUniqueNestedInput>>,
  updateMany?: Maybe<Array<VideoUpdateManyWithWhereNestedInput>>,
  deleteMany?: Maybe<Array<VideoScalarWhereInput>>,
  upsert?: Maybe<Array<VideoUpsertWithWhereUniqueNestedInput>>,
};

export type VideoUpdateManyWithWhereNestedInput = {
  where: VideoScalarWhereInput,
  data: VideoUpdateManyDataInput,
};

export type VideoUpdateWithWhereUniqueNestedInput = {
  where: VideoWhereUniqueInput,
  data: VideoUpdateDataInput,
};

export type VideoUpsertWithWhereUniqueNestedInput = {
  where: VideoWhereUniqueInput,
  update: VideoUpdateDataInput,
  create: VideoCreateInput,
};

export type VideoWhereInput = {
  /** Logical AND on all given filters. */
  AND?: Maybe<Array<VideoWhereInput>>,
  /** Logical OR on all given filters. */
  OR?: Maybe<Array<VideoWhereInput>>,
  /** Logical NOT on all given filters combined by AND. */
  NOT?: Maybe<Array<VideoWhereInput>>,
  id?: Maybe<Scalars['ID']>,
  /** All values that are not equal to given value. */
  id_not?: Maybe<Scalars['ID']>,
  /** All values that are contained in given list. */
  id_in?: Maybe<Array<Scalars['ID']>>,
  /** All values that are not contained in given list. */
  id_not_in?: Maybe<Array<Scalars['ID']>>,
  /** All values less than the given value. */
  id_lt?: Maybe<Scalars['ID']>,
  /** All values less than or equal the given value. */
  id_lte?: Maybe<Scalars['ID']>,
  /** All values greater than the given value. */
  id_gt?: Maybe<Scalars['ID']>,
  /** All values greater than or equal the given value. */
  id_gte?: Maybe<Scalars['ID']>,
  /** All values containing the given string. */
  id_contains?: Maybe<Scalars['ID']>,
  /** All values not containing the given string. */
  id_not_contains?: Maybe<Scalars['ID']>,
  /** All values starting with the given string. */
  id_starts_with?: Maybe<Scalars['ID']>,
  /** All values not starting with the given string. */
  id_not_starts_with?: Maybe<Scalars['ID']>,
  /** All values ending with the given string. */
  id_ends_with?: Maybe<Scalars['ID']>,
  /** All values not ending with the given string. */
  id_not_ends_with?: Maybe<Scalars['ID']>,
  createdAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  createdAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  createdAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  createdAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  createdAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  createdAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  createdAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  createdAt_gte?: Maybe<Scalars['DateTime']>,
  updatedAt?: Maybe<Scalars['DateTime']>,
  /** All values that are not equal to given value. */
  updatedAt_not?: Maybe<Scalars['DateTime']>,
  /** All values that are contained in given list. */
  updatedAt_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values that are not contained in given list. */
  updatedAt_not_in?: Maybe<Array<Scalars['DateTime']>>,
  /** All values less than the given value. */
  updatedAt_lt?: Maybe<Scalars['DateTime']>,
  /** All values less than or equal the given value. */
  updatedAt_lte?: Maybe<Scalars['DateTime']>,
  /** All values greater than the given value. */
  updatedAt_gt?: Maybe<Scalars['DateTime']>,
  /** All values greater than or equal the given value. */
  updatedAt_gte?: Maybe<Scalars['DateTime']>,
  order?: Maybe<Scalars['Int']>,
  /** All values that are not equal to given value. */
  order_not?: Maybe<Scalars['Int']>,
  /** All values that are contained in given list. */
  order_in?: Maybe<Array<Scalars['Int']>>,
  /** All values that are not contained in given list. */
  order_not_in?: Maybe<Array<Scalars['Int']>>,
  /** All values less than the given value. */
  order_lt?: Maybe<Scalars['Int']>,
  /** All values less than or equal the given value. */
  order_lte?: Maybe<Scalars['Int']>,
  /** All values greater than the given value. */
  order_gt?: Maybe<Scalars['Int']>,
  /** All values greater than or equal the given value. */
  order_gte?: Maybe<Scalars['Int']>,
  file?: Maybe<FileWhereInput>,
  link?: Maybe<LinkWhereInput>,
};

export type VideoWhereUniqueInput = {
  id?: Maybe<Scalars['ID']>,
};

export type FsFilesQueryVariables = {
  directory: Scalars['String']
};


export type FsFilesQuery = { fsFiles: Array<Pick<FsFile, 'filename' | 'path' | 'size' | 'ctime' | 'mtime'>> };

export type FileQueryVariables = {
  where: FileWhereUniqueInput
};


export type FileQuery = { file: (
    Pick<File, 'id' | 'path' | 'mimetype' | 'thumbnail' | 'filename' | 'size' | 'updatedAt' | 'comment' | 'title' | 'artist' | 'width' | 'height'>
    & { user: Pick<User, 'id' | 'name'> }
  ) };

export type FilesQueryVariables = {
  where?: Maybe<FileWhereInput>,
  orderBy?: Maybe<FileOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type FilesQuery = { files: Array<(
    Pick<File, 'id' | 'path' | 'mimetype' | 'thumbnail' | 'filename' | 'size' | 'updatedAt' | 'comment' | 'title'>
    & { user: Pick<User, 'id' | 'name'> }
  )> };

export type UploadFileMutationVariables = {
  file: Scalars['Upload'],
  comment?: Maybe<Scalars['String']>,
  width?: Maybe<Scalars['Int']>,
  height?: Maybe<Scalars['Int']>,
  duration?: Maybe<Scalars['Float']>,
  title?: Maybe<Scalars['String']>,
  artist?: Maybe<Scalars['String']>
};


export type UploadFileMutation = { uploadFile: Pick<File, 'id' | 'path' | 'mimetype' | 'thumbnail' | 'filename' | 'size' | 'comment' | 'title' | 'artist'> };

export type UpdateFileMutationVariables = {
  where: FileWhereUniqueInput,
  data: FileUpdateInput
};


export type UpdateFileMutation = { updateFile: Pick<File, 'id'> };

export type DeleteFileMutationVariables = {
  id: Scalars['ID']
};


export type DeleteFileMutation = { deleteFile: Pick<File, 'id'> };

export type VideosQueryVariables = {};


export type VideosQuery = { videos: Array<(
    Pick<Video, 'id' | 'order'>
    & { file: Maybe<Pick<File, 'id' | 'path' | 'comment' | 'mimetype' | 'thumbnail' | 'filename' | 'duration' | 'title' | 'artist'>>, link: Maybe<Pick<Link, 'id' | 'url' | 'comment' | 'duration' | 'title' | 'artist'>> }
  )> };

export type TrainingArchiveQueryVariables = {
  skip?: Maybe<Scalars['Int']>,
  first?: Maybe<Scalars['Int']>
};


export type TrainingArchiveQuery = { trainingArchive: (
    Pick<TrainingArchive, 'totalCount'>
    & { trainings: Array<(
      Pick<TrainingArchiveItem, 'id' | 'title' | 'trainingDate' | 'location' | 'attendance' | 'blocks'>
      & { type: Pick<TrainingType, 'name' | 'description'> }
    )> }
  ) };

export type TrainingQueryVariables = {
  id?: Maybe<Scalars['ID']>
};


export type TrainingQuery = { training: DisplayTrainingFragment };

export type DeleteTrainingMutationVariables = {
  id: Scalars['ID']
};


export type DeleteTrainingMutation = { deleteTraining: Pick<Training, 'id'> };

export type TrainingsQueryVariables = {
  where?: Maybe<TrainingWhereInput>,
  orderBy?: Maybe<TrainingOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type TrainingsQuery = { trainings: Array<DisplayTrainingFragment> };

export type TrainingTypesQueryVariables = {
  where?: Maybe<TrainingTypeWhereInput>,
  orderBy?: Maybe<TrainingTypeOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type TrainingTypesQuery = { trainingTypes: Array<Pick<TrainingType, 'id' | 'name' | 'description'>> };

export type FormatsQueryVariables = {
  where?: Maybe<FormatWhereInput>,
  orderBy?: Maybe<FormatOrderByInput>,
  skip?: Maybe<Scalars['Int']>,
  after?: Maybe<Scalars['String']>,
  before?: Maybe<Scalars['String']>,
  first?: Maybe<Scalars['Int']>,
  last?: Maybe<Scalars['Int']>
};


export type FormatsQuery = { formats: Array<Pick<Format, 'id' | 'name' | 'description'>> };

export type BlocksQueryVariables = {};


export type BlocksQuery = { blocks: Array<(
    { blocks: Maybe<Array<(
      { block: (
        { blocks: Maybe<Array<(
          { block: BlockWithoutBlocksFragment }
          & BlockInstanceWithoutBlockFragment
        )>> }
        & BlockWithoutBlocksFragment
      ) }
      & BlockInstanceWithoutBlockFragment
    )>> }
    & BlockWithoutBlocksFragment
  )> };

export type ExercisesQueryVariables = {};


export type ExercisesQuery = { exercises: Array<ExerciseContentFragment> };

export type CreateTrainingMutationVariables = {
  title: Scalars['String'],
  type: TrainingTypeCreateOneInput,
  trainingDate: Scalars['DateTime'],
  location: Scalars['String'],
  attendance: Scalars['Int'],
  published: Scalars['Boolean'],
  blocks?: Maybe<BlockInstanceCreateManyWithoutParentTrainingInput>
};


export type CreateTrainingMutation = { createTraining: Pick<Training, 'id'> };

export type UpdateTrainingMutationVariables = {
  where: TrainingWhereUniqueInput,
  data: TrainingUpdateInput
};


export type UpdateTrainingMutation = { updateTraining: Pick<Training, 'id'> };

export type CreateTrainingTypeMutationVariables = {
  name: Scalars['String'],
  description: Scalars['String']
};


export type CreateTrainingTypeMutation = { createTrainingType: Pick<TrainingType, 'id'> };

export type CreateFormatMutationVariables = {
  name: Scalars['String'],
  description: Scalars['String']
};


export type CreateFormatMutation = { createFormat: Pick<Format, 'id'> };

export type RegisterMutationVariables = {
  training: Scalars['ID']
};


export type RegisterMutation = { register: Pick<Training, 'id'> };

export type DeregisterMutationVariables = {
  training: Scalars['ID']
};


export type DeregisterMutation = { deregister: Pick<Training, 'id'> };

export type PublishMutationVariables = {
  training: Scalars['ID'],
  status?: Maybe<Scalars['Boolean']>
};


export type PublishMutation = { publish: Pick<Training, 'id'> };

export type ExerciseContentFragment = (
  Pick<Exercise, 'id' | 'name' | 'description' | 'targets' | 'baseExercise'>
  & { videos: Maybe<Array<Pick<Video, 'id'>>>, pictures: Maybe<Array<Pick<Picture, 'id'>>> }
);

export type BlockWithoutBlocksFragment = (
  Pick<Block, 'id' | 'title' | 'description' | 'duration' | 'rest'>
  & { videos: Maybe<Array<Pick<Video, 'id'>>>, pictures: Maybe<Array<Pick<Picture, 'id'>>>, tracks: Maybe<Array<Pick<Track, 'id'>>>, format: Pick<Format, 'id' | 'name' | 'description'>, exercises: Maybe<Array<(
    Pick<ExerciseInstance, 'id' | 'order' | 'repetitions' | 'variation'>
    & { exercise: ExerciseContentFragment }
  )>> }
);

export type BlockInstanceWithoutBlockFragment = Pick<BlockInstance, 'id' | 'order' | 'rounds' | 'variation'>;

export type DisplayTrainingFragment = (
  Pick<Training, 'id' | 'title' | 'createdAt' | 'trainingDate' | 'location' | 'attendance' | 'published'>
  & { type: Pick<TrainingType, 'id' | 'name' | 'description'>, blocks: Maybe<Array<(
    { block: (
      { blocks: Maybe<Array<(
        { block: (
          { blocks: Maybe<Array<(
            { block: (
              { blocks: Maybe<Array<(
                { block: (
                  { blocks: Maybe<Array<Pick<BlockInstance, 'id'>>> }
                  & BlockWithoutBlocksFragment
                ) }
                & BlockInstanceWithoutBlockFragment
              )>> }
              & BlockWithoutBlocksFragment
            ) }
            & BlockInstanceWithoutBlockFragment
          )>> }
          & BlockWithoutBlocksFragment
        ) }
        & BlockInstanceWithoutBlockFragment
      )>> }
      & BlockWithoutBlocksFragment
    ) }
    & BlockInstanceWithoutBlockFragment
  )>>, registrations: Maybe<Array<Pick<User, 'id' | 'name'>>> }
);

export type EditTrainingFragment = (
  Pick<Training, 'id' | 'createdAt' | 'title' | 'trainingDate' | 'location' | 'attendance' | 'published'>
  & { type: Pick<TrainingType, 'id' | 'name' | 'description'>, blocks: Maybe<Array<(
    { block: (
      { blocks: Maybe<Array<(
        { block: (
          { blocks: Maybe<Array<(
            { block: (
              { blocks: Maybe<Array<(
                { block: (
                  { blocks: Maybe<Array<Pick<BlockInstance, 'id'>>> }
                  & BlockWithoutBlocksFragment
                ) }
                & BlockInstanceWithoutBlockFragment
              )>> }
              & BlockWithoutBlocksFragment
            ) }
            & BlockInstanceWithoutBlockFragment
          )>> }
          & BlockWithoutBlocksFragment
        ) }
        & BlockInstanceWithoutBlockFragment
      )>> }
      & BlockWithoutBlocksFragment
    ) }
    & BlockInstanceWithoutBlockFragment
  )>>, registrations: Maybe<Array<Pick<User, 'id' | 'name'>>> }
);

export type UsersQueryVariables = {};


export type UsersQuery = { users: Array<Pick<User, 'id' | 'email' | 'name' | 'permissions' | 'interests'>> };

export type UserSignupMutationVariables = {
  email: Scalars['String'],
  password: Scalars['String'],
  name: Scalars['String']
};


export type UserSignupMutation = { userSignup: Pick<User, 'id' | 'email' | 'name'> };

export type UserLoginMutationVariables = {
  email: Scalars['String'],
  password: Scalars['String']
};


export type UserLoginMutation = { userLogin: Pick<User, 'id' | 'email' | 'name'> };

export type UserLogoutMutationVariables = {};


export type UserLogoutMutation = Pick<Mutation, 'userLogout'>;

export type CurrentUserQueryVariables = {};


export type CurrentUserQuery = { currentUser: Pick<User, 'id' | 'email' | 'name' | 'permissions' | 'interests'> };

export type RequestResetMutationVariables = {
  email: Scalars['String']
};


export type RequestResetMutation = Pick<Mutation, 'requestReset'>;

export type ResetPasswordMutationVariables = {
  token: Scalars['String'],
  password: Scalars['String']
};


export type ResetPasswordMutation = { resetPassword: Pick<User, 'id' | 'name'> };

export type UserDeleteMutationVariables = {
  id: Scalars['ID']
};


export type UserDeleteMutation = { deleteUser: Pick<User, 'id'> };

export type UserUpdateMutationVariables = {
  id: Scalars['ID'],
  data: UserUpdateInput
};


export type UserUpdateMutation = { updateUser: Pick<User, 'id' | 'name' | 'email' | 'permissions' | 'interests'> };

export type UpdatePermissionsMutationVariables = {
  id: Scalars['ID'],
  permissions: Array<Permission>
};


export type UpdatePermissionsMutation = { updatePermissions: Pick<User, 'id'> };

export const BlockInstanceWithoutBlockFragmentDoc = gql`
    fragment blockInstanceWithoutBlock on BlockInstance {
  id
  order
  rounds
  variation
}
    `;
export const ExerciseContentFragmentDoc = gql`
    fragment exerciseContent on Exercise {
  id
  name
  description
  videos {
    id
  }
  pictures {
    id
  }
  targets
  baseExercise
}
    `;
export const BlockWithoutBlocksFragmentDoc = gql`
    fragment blockWithoutBlocks on Block {
  id
  title
  description
  videos {
    id
  }
  pictures {
    id
  }
  tracks {
    id
  }
  duration
  format {
    id
    name
    description
  }
  rest
  exercises {
    id
    exercise {
      ...exerciseContent
    }
    order
    repetitions
    variation
  }
}
    ${ExerciseContentFragmentDoc}`;
export const DisplayTrainingFragmentDoc = gql`
    fragment displayTraining on Training {
  id
  title
  type {
    id
    name
    description
  }
  createdAt
  trainingDate
  location
  attendance
  published
  blocks {
    ...blockInstanceWithoutBlock
    block {
      ...blockWithoutBlocks
      blocks {
        ...blockInstanceWithoutBlock
        block {
          ...blockWithoutBlocks
          blocks {
            ...blockInstanceWithoutBlock
            block {
              ...blockWithoutBlocks
              blocks {
                ...blockInstanceWithoutBlock
                block {
                  ...blockWithoutBlocks
                  blocks {
                    id
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  registrations {
    id
    name
  }
}
    ${BlockInstanceWithoutBlockFragmentDoc}
${BlockWithoutBlocksFragmentDoc}`;
export const EditTrainingFragmentDoc = gql`
    fragment editTraining on Training {
  id
  createdAt
  title
  type {
    id
    name
    description
  }
  createdAt
  trainingDate
  location
  attendance
  published
  blocks {
    ...blockInstanceWithoutBlock
    block {
      ...blockWithoutBlocks
      blocks {
        ...blockInstanceWithoutBlock
        block {
          ...blockWithoutBlocks
          blocks {
            ...blockInstanceWithoutBlock
            block {
              ...blockWithoutBlocks
              blocks {
                ...blockInstanceWithoutBlock
                block {
                  ...blockWithoutBlocks
                  blocks {
                    id
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  registrations {
    id
    name
  }
}
    ${BlockInstanceWithoutBlockFragmentDoc}
${BlockWithoutBlocksFragmentDoc}`;
export const FsFilesDocument = gql`
    query fsFiles($directory: String!) {
  fsFiles(directory: $directory) {
    filename
    path
    size
    ctime
    mtime
  }
}
    `;

/**
 * __useFsFilesQuery__
 *
 * To run a query within a React component, call `useFsFilesQuery` and pass it any options that fit your needs.
 * When your component renders, `useFsFilesQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useFsFilesQuery({
 *   variables: {
 *      directory: // value for 'directory'
 *   },
 * });
 */
export function useFsFilesQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<FsFilesQuery, FsFilesQueryVariables>) {
        return ApolloReactHooks.useQuery<FsFilesQuery, FsFilesQueryVariables>(FsFilesDocument, baseOptions);
      }
export function useFsFilesLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<FsFilesQuery, FsFilesQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<FsFilesQuery, FsFilesQueryVariables>(FsFilesDocument, baseOptions);
        }
export type FsFilesQueryHookResult = ReturnType<typeof useFsFilesQuery>;
export type FsFilesLazyQueryHookResult = ReturnType<typeof useFsFilesLazyQuery>;
export type FsFilesQueryResult = ApolloReactCommon.QueryResult<FsFilesQuery, FsFilesQueryVariables>;
export const FileDocument = gql`
    query file($where: FileWhereUniqueInput!) {
  file(where: $where) {
    id
    path
    mimetype
    user {
      id
      name
    }
    thumbnail
    filename
    size
    updatedAt
    comment
    title
    artist
    width
    height
  }
}
    `;

/**
 * __useFileQuery__
 *
 * To run a query within a React component, call `useFileQuery` and pass it any options that fit your needs.
 * When your component renders, `useFileQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useFileQuery({
 *   variables: {
 *      where: // value for 'where'
 *   },
 * });
 */
export function useFileQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<FileQuery, FileQueryVariables>) {
        return ApolloReactHooks.useQuery<FileQuery, FileQueryVariables>(FileDocument, baseOptions);
      }
export function useFileLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<FileQuery, FileQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<FileQuery, FileQueryVariables>(FileDocument, baseOptions);
        }
export type FileQueryHookResult = ReturnType<typeof useFileQuery>;
export type FileLazyQueryHookResult = ReturnType<typeof useFileLazyQuery>;
export type FileQueryResult = ApolloReactCommon.QueryResult<FileQuery, FileQueryVariables>;
export const FilesDocument = gql`
    query files($where: FileWhereInput, $orderBy: FileOrderByInput, $skip: Int, $after: String, $before: String, $first: Int, $last: Int) {
  files(where: $where, orderBy: $orderBy, skip: $skip, after: $after, before: $before, first: $first, last: $last) {
    id
    path
    mimetype
    user {
      id
      name
    }
    thumbnail
    filename
    size
    updatedAt
    comment
    title
  }
}
    `;

/**
 * __useFilesQuery__
 *
 * To run a query within a React component, call `useFilesQuery` and pass it any options that fit your needs.
 * When your component renders, `useFilesQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useFilesQuery({
 *   variables: {
 *      where: // value for 'where'
 *      orderBy: // value for 'orderBy'
 *      skip: // value for 'skip'
 *      after: // value for 'after'
 *      before: // value for 'before'
 *      first: // value for 'first'
 *      last: // value for 'last'
 *   },
 * });
 */
export function useFilesQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<FilesQuery, FilesQueryVariables>) {
        return ApolloReactHooks.useQuery<FilesQuery, FilesQueryVariables>(FilesDocument, baseOptions);
      }
export function useFilesLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<FilesQuery, FilesQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<FilesQuery, FilesQueryVariables>(FilesDocument, baseOptions);
        }
export type FilesQueryHookResult = ReturnType<typeof useFilesQuery>;
export type FilesLazyQueryHookResult = ReturnType<typeof useFilesLazyQuery>;
export type FilesQueryResult = ApolloReactCommon.QueryResult<FilesQuery, FilesQueryVariables>;
export const UploadFileDocument = gql`
    mutation uploadFile($file: Upload!, $comment: String, $width: Int, $height: Int, $duration: Float, $title: String, $artist: String) {
  uploadFile(file: $file, comment: $comment, width: $width, height: $height, duration: $duration, title: $title, artist: $artist) {
    id
    path
    mimetype
    thumbnail
    filename
    size
    comment
    title
    artist
  }
}
    `;
export type UploadFileMutationFn = ApolloReactCommon.MutationFunction<UploadFileMutation, UploadFileMutationVariables>;

/**
 * __useUploadFileMutation__
 *
 * To run a mutation, you first call `useUploadFileMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUploadFileMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [uploadFileMutation, { data, loading, error }] = useUploadFileMutation({
 *   variables: {
 *      file: // value for 'file'
 *      comment: // value for 'comment'
 *      width: // value for 'width'
 *      height: // value for 'height'
 *      duration: // value for 'duration'
 *      title: // value for 'title'
 *      artist: // value for 'artist'
 *   },
 * });
 */
export function useUploadFileMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UploadFileMutation, UploadFileMutationVariables>) {
        return ApolloReactHooks.useMutation<UploadFileMutation, UploadFileMutationVariables>(UploadFileDocument, baseOptions);
      }
export type UploadFileMutationHookResult = ReturnType<typeof useUploadFileMutation>;
export type UploadFileMutationResult = ApolloReactCommon.MutationResult<UploadFileMutation>;
export type UploadFileMutationOptions = ApolloReactCommon.BaseMutationOptions<UploadFileMutation, UploadFileMutationVariables>;
export const UpdateFileDocument = gql`
    mutation updateFile($where: FileWhereUniqueInput!, $data: FileUpdateInput!) {
  updateFile(where: $where, data: $data) {
    id
  }
}
    `;
export type UpdateFileMutationFn = ApolloReactCommon.MutationFunction<UpdateFileMutation, UpdateFileMutationVariables>;

/**
 * __useUpdateFileMutation__
 *
 * To run a mutation, you first call `useUpdateFileMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUpdateFileMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [updateFileMutation, { data, loading, error }] = useUpdateFileMutation({
 *   variables: {
 *      where: // value for 'where'
 *      data: // value for 'data'
 *   },
 * });
 */
export function useUpdateFileMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UpdateFileMutation, UpdateFileMutationVariables>) {
        return ApolloReactHooks.useMutation<UpdateFileMutation, UpdateFileMutationVariables>(UpdateFileDocument, baseOptions);
      }
export type UpdateFileMutationHookResult = ReturnType<typeof useUpdateFileMutation>;
export type UpdateFileMutationResult = ApolloReactCommon.MutationResult<UpdateFileMutation>;
export type UpdateFileMutationOptions = ApolloReactCommon.BaseMutationOptions<UpdateFileMutation, UpdateFileMutationVariables>;
export const DeleteFileDocument = gql`
    mutation deleteFile($id: ID!) {
  deleteFile(id: $id) {
    id
  }
}
    `;
export type DeleteFileMutationFn = ApolloReactCommon.MutationFunction<DeleteFileMutation, DeleteFileMutationVariables>;

/**
 * __useDeleteFileMutation__
 *
 * To run a mutation, you first call `useDeleteFileMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useDeleteFileMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [deleteFileMutation, { data, loading, error }] = useDeleteFileMutation({
 *   variables: {
 *      id: // value for 'id'
 *   },
 * });
 */
export function useDeleteFileMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<DeleteFileMutation, DeleteFileMutationVariables>) {
        return ApolloReactHooks.useMutation<DeleteFileMutation, DeleteFileMutationVariables>(DeleteFileDocument, baseOptions);
      }
export type DeleteFileMutationHookResult = ReturnType<typeof useDeleteFileMutation>;
export type DeleteFileMutationResult = ApolloReactCommon.MutationResult<DeleteFileMutation>;
export type DeleteFileMutationOptions = ApolloReactCommon.BaseMutationOptions<DeleteFileMutation, DeleteFileMutationVariables>;
export const VideosDocument = gql`
    query videos {
  videos {
    id
    order
    file {
      id
      path
      comment
      mimetype
      thumbnail
      filename
      duration
      title
      artist
    }
    link {
      id
      url
      comment
      duration
      title
      artist
    }
  }
}
    `;

/**
 * __useVideosQuery__
 *
 * To run a query within a React component, call `useVideosQuery` and pass it any options that fit your needs.
 * When your component renders, `useVideosQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useVideosQuery({
 *   variables: {
 *   },
 * });
 */
export function useVideosQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<VideosQuery, VideosQueryVariables>) {
        return ApolloReactHooks.useQuery<VideosQuery, VideosQueryVariables>(VideosDocument, baseOptions);
      }
export function useVideosLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<VideosQuery, VideosQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<VideosQuery, VideosQueryVariables>(VideosDocument, baseOptions);
        }
export type VideosQueryHookResult = ReturnType<typeof useVideosQuery>;
export type VideosLazyQueryHookResult = ReturnType<typeof useVideosLazyQuery>;
export type VideosQueryResult = ApolloReactCommon.QueryResult<VideosQuery, VideosQueryVariables>;
export const TrainingArchiveDocument = gql`
    query trainingArchive($skip: Int, $first: Int) {
  trainingArchive(skip: $skip, first: $first) {
    trainings {
      id
      title
      type {
        name
        description
      }
      trainingDate
      location
      attendance
      blocks
    }
    totalCount
  }
}
    `;

/**
 * __useTrainingArchiveQuery__
 *
 * To run a query within a React component, call `useTrainingArchiveQuery` and pass it any options that fit your needs.
 * When your component renders, `useTrainingArchiveQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useTrainingArchiveQuery({
 *   variables: {
 *      skip: // value for 'skip'
 *      first: // value for 'first'
 *   },
 * });
 */
export function useTrainingArchiveQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<TrainingArchiveQuery, TrainingArchiveQueryVariables>) {
        return ApolloReactHooks.useQuery<TrainingArchiveQuery, TrainingArchiveQueryVariables>(TrainingArchiveDocument, baseOptions);
      }
export function useTrainingArchiveLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<TrainingArchiveQuery, TrainingArchiveQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<TrainingArchiveQuery, TrainingArchiveQueryVariables>(TrainingArchiveDocument, baseOptions);
        }
export type TrainingArchiveQueryHookResult = ReturnType<typeof useTrainingArchiveQuery>;
export type TrainingArchiveLazyQueryHookResult = ReturnType<typeof useTrainingArchiveLazyQuery>;
export type TrainingArchiveQueryResult = ApolloReactCommon.QueryResult<TrainingArchiveQuery, TrainingArchiveQueryVariables>;
export const TrainingDocument = gql`
    query training($id: ID) {
  training(id: $id) {
    ...displayTraining
  }
}
    ${DisplayTrainingFragmentDoc}`;

/**
 * __useTrainingQuery__
 *
 * To run a query within a React component, call `useTrainingQuery` and pass it any options that fit your needs.
 * When your component renders, `useTrainingQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useTrainingQuery({
 *   variables: {
 *      id: // value for 'id'
 *   },
 * });
 */
export function useTrainingQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<TrainingQuery, TrainingQueryVariables>) {
        return ApolloReactHooks.useQuery<TrainingQuery, TrainingQueryVariables>(TrainingDocument, baseOptions);
      }
export function useTrainingLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<TrainingQuery, TrainingQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<TrainingQuery, TrainingQueryVariables>(TrainingDocument, baseOptions);
        }
export type TrainingQueryHookResult = ReturnType<typeof useTrainingQuery>;
export type TrainingLazyQueryHookResult = ReturnType<typeof useTrainingLazyQuery>;
export type TrainingQueryResult = ApolloReactCommon.QueryResult<TrainingQuery, TrainingQueryVariables>;
export const DeleteTrainingDocument = gql`
    mutation deleteTraining($id: ID!) {
  deleteTraining(id: $id) {
    id
  }
}
    `;
export type DeleteTrainingMutationFn = ApolloReactCommon.MutationFunction<DeleteTrainingMutation, DeleteTrainingMutationVariables>;

/**
 * __useDeleteTrainingMutation__
 *
 * To run a mutation, you first call `useDeleteTrainingMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useDeleteTrainingMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [deleteTrainingMutation, { data, loading, error }] = useDeleteTrainingMutation({
 *   variables: {
 *      id: // value for 'id'
 *   },
 * });
 */
export function useDeleteTrainingMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<DeleteTrainingMutation, DeleteTrainingMutationVariables>) {
        return ApolloReactHooks.useMutation<DeleteTrainingMutation, DeleteTrainingMutationVariables>(DeleteTrainingDocument, baseOptions);
      }
export type DeleteTrainingMutationHookResult = ReturnType<typeof useDeleteTrainingMutation>;
export type DeleteTrainingMutationResult = ApolloReactCommon.MutationResult<DeleteTrainingMutation>;
export type DeleteTrainingMutationOptions = ApolloReactCommon.BaseMutationOptions<DeleteTrainingMutation, DeleteTrainingMutationVariables>;
export const TrainingsDocument = gql`
    query trainings($where: TrainingWhereInput, $orderBy: TrainingOrderByInput, $skip: Int, $after: String, $before: String, $first: Int, $last: Int) {
  trainings(where: $where, orderBy: $orderBy, skip: $skip, after: $after, before: $before, first: $first, last: $last) {
    ...displayTraining
  }
}
    ${DisplayTrainingFragmentDoc}`;

/**
 * __useTrainingsQuery__
 *
 * To run a query within a React component, call `useTrainingsQuery` and pass it any options that fit your needs.
 * When your component renders, `useTrainingsQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useTrainingsQuery({
 *   variables: {
 *      where: // value for 'where'
 *      orderBy: // value for 'orderBy'
 *      skip: // value for 'skip'
 *      after: // value for 'after'
 *      before: // value for 'before'
 *      first: // value for 'first'
 *      last: // value for 'last'
 *   },
 * });
 */
export function useTrainingsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<TrainingsQuery, TrainingsQueryVariables>) {
        return ApolloReactHooks.useQuery<TrainingsQuery, TrainingsQueryVariables>(TrainingsDocument, baseOptions);
      }
export function useTrainingsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<TrainingsQuery, TrainingsQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<TrainingsQuery, TrainingsQueryVariables>(TrainingsDocument, baseOptions);
        }
export type TrainingsQueryHookResult = ReturnType<typeof useTrainingsQuery>;
export type TrainingsLazyQueryHookResult = ReturnType<typeof useTrainingsLazyQuery>;
export type TrainingsQueryResult = ApolloReactCommon.QueryResult<TrainingsQuery, TrainingsQueryVariables>;
export const TrainingTypesDocument = gql`
    query trainingTypes($where: TrainingTypeWhereInput, $orderBy: TrainingTypeOrderByInput, $skip: Int, $after: String, $before: String, $first: Int, $last: Int) {
  trainingTypes(where: $where, orderBy: $orderBy, skip: $skip, after: $after, before: $before, first: $first, last: $last) {
    id
    name
    description
  }
}
    `;

/**
 * __useTrainingTypesQuery__
 *
 * To run a query within a React component, call `useTrainingTypesQuery` and pass it any options that fit your needs.
 * When your component renders, `useTrainingTypesQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useTrainingTypesQuery({
 *   variables: {
 *      where: // value for 'where'
 *      orderBy: // value for 'orderBy'
 *      skip: // value for 'skip'
 *      after: // value for 'after'
 *      before: // value for 'before'
 *      first: // value for 'first'
 *      last: // value for 'last'
 *   },
 * });
 */
export function useTrainingTypesQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<TrainingTypesQuery, TrainingTypesQueryVariables>) {
        return ApolloReactHooks.useQuery<TrainingTypesQuery, TrainingTypesQueryVariables>(TrainingTypesDocument, baseOptions);
      }
export function useTrainingTypesLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<TrainingTypesQuery, TrainingTypesQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<TrainingTypesQuery, TrainingTypesQueryVariables>(TrainingTypesDocument, baseOptions);
        }
export type TrainingTypesQueryHookResult = ReturnType<typeof useTrainingTypesQuery>;
export type TrainingTypesLazyQueryHookResult = ReturnType<typeof useTrainingTypesLazyQuery>;
export type TrainingTypesQueryResult = ApolloReactCommon.QueryResult<TrainingTypesQuery, TrainingTypesQueryVariables>;
export const FormatsDocument = gql`
    query formats($where: FormatWhereInput, $orderBy: FormatOrderByInput, $skip: Int, $after: String, $before: String, $first: Int, $last: Int) {
  formats(where: $where, orderBy: $orderBy, skip: $skip, after: $after, before: $before, first: $first, last: $last) {
    id
    name
    description
  }
}
    `;

/**
 * __useFormatsQuery__
 *
 * To run a query within a React component, call `useFormatsQuery` and pass it any options that fit your needs.
 * When your component renders, `useFormatsQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useFormatsQuery({
 *   variables: {
 *      where: // value for 'where'
 *      orderBy: // value for 'orderBy'
 *      skip: // value for 'skip'
 *      after: // value for 'after'
 *      before: // value for 'before'
 *      first: // value for 'first'
 *      last: // value for 'last'
 *   },
 * });
 */
export function useFormatsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<FormatsQuery, FormatsQueryVariables>) {
        return ApolloReactHooks.useQuery<FormatsQuery, FormatsQueryVariables>(FormatsDocument, baseOptions);
      }
export function useFormatsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<FormatsQuery, FormatsQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<FormatsQuery, FormatsQueryVariables>(FormatsDocument, baseOptions);
        }
export type FormatsQueryHookResult = ReturnType<typeof useFormatsQuery>;
export type FormatsLazyQueryHookResult = ReturnType<typeof useFormatsLazyQuery>;
export type FormatsQueryResult = ApolloReactCommon.QueryResult<FormatsQuery, FormatsQueryVariables>;
export const BlocksDocument = gql`
    query blocks {
  blocks {
    ...blockWithoutBlocks
    blocks {
      ...blockInstanceWithoutBlock
      block {
        ...blockWithoutBlocks
        blocks {
          ...blockInstanceWithoutBlock
          block {
            ...blockWithoutBlocks
          }
        }
      }
    }
  }
}
    ${BlockWithoutBlocksFragmentDoc}
${BlockInstanceWithoutBlockFragmentDoc}`;

/**
 * __useBlocksQuery__
 *
 * To run a query within a React component, call `useBlocksQuery` and pass it any options that fit your needs.
 * When your component renders, `useBlocksQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useBlocksQuery({
 *   variables: {
 *   },
 * });
 */
export function useBlocksQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<BlocksQuery, BlocksQueryVariables>) {
        return ApolloReactHooks.useQuery<BlocksQuery, BlocksQueryVariables>(BlocksDocument, baseOptions);
      }
export function useBlocksLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<BlocksQuery, BlocksQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<BlocksQuery, BlocksQueryVariables>(BlocksDocument, baseOptions);
        }
export type BlocksQueryHookResult = ReturnType<typeof useBlocksQuery>;
export type BlocksLazyQueryHookResult = ReturnType<typeof useBlocksLazyQuery>;
export type BlocksQueryResult = ApolloReactCommon.QueryResult<BlocksQuery, BlocksQueryVariables>;
export const ExercisesDocument = gql`
    query exercises {
  exercises {
    ...exerciseContent
  }
}
    ${ExerciseContentFragmentDoc}`;

/**
 * __useExercisesQuery__
 *
 * To run a query within a React component, call `useExercisesQuery` and pass it any options that fit your needs.
 * When your component renders, `useExercisesQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useExercisesQuery({
 *   variables: {
 *   },
 * });
 */
export function useExercisesQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<ExercisesQuery, ExercisesQueryVariables>) {
        return ApolloReactHooks.useQuery<ExercisesQuery, ExercisesQueryVariables>(ExercisesDocument, baseOptions);
      }
export function useExercisesLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<ExercisesQuery, ExercisesQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<ExercisesQuery, ExercisesQueryVariables>(ExercisesDocument, baseOptions);
        }
export type ExercisesQueryHookResult = ReturnType<typeof useExercisesQuery>;
export type ExercisesLazyQueryHookResult = ReturnType<typeof useExercisesLazyQuery>;
export type ExercisesQueryResult = ApolloReactCommon.QueryResult<ExercisesQuery, ExercisesQueryVariables>;
export const CreateTrainingDocument = gql`
    mutation createTraining($title: String!, $type: TrainingTypeCreateOneInput!, $trainingDate: DateTime!, $location: String!, $attendance: Int!, $published: Boolean!, $blocks: BlockInstanceCreateManyWithoutParentTrainingInput) {
  createTraining(title: $title, type: $type, trainingDate: $trainingDate, location: $location, attendance: $attendance, published: $published, blocks: $blocks) {
    id
  }
}
    `;
export type CreateTrainingMutationFn = ApolloReactCommon.MutationFunction<CreateTrainingMutation, CreateTrainingMutationVariables>;

/**
 * __useCreateTrainingMutation__
 *
 * To run a mutation, you first call `useCreateTrainingMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useCreateTrainingMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [createTrainingMutation, { data, loading, error }] = useCreateTrainingMutation({
 *   variables: {
 *      title: // value for 'title'
 *      type: // value for 'type'
 *      trainingDate: // value for 'trainingDate'
 *      location: // value for 'location'
 *      attendance: // value for 'attendance'
 *      published: // value for 'published'
 *      blocks: // value for 'blocks'
 *   },
 * });
 */
export function useCreateTrainingMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<CreateTrainingMutation, CreateTrainingMutationVariables>) {
        return ApolloReactHooks.useMutation<CreateTrainingMutation, CreateTrainingMutationVariables>(CreateTrainingDocument, baseOptions);
      }
export type CreateTrainingMutationHookResult = ReturnType<typeof useCreateTrainingMutation>;
export type CreateTrainingMutationResult = ApolloReactCommon.MutationResult<CreateTrainingMutation>;
export type CreateTrainingMutationOptions = ApolloReactCommon.BaseMutationOptions<CreateTrainingMutation, CreateTrainingMutationVariables>;
export const UpdateTrainingDocument = gql`
    mutation updateTraining($where: TrainingWhereUniqueInput!, $data: TrainingUpdateInput!) {
  updateTraining(where: $where, data: $data) {
    id
  }
}
    `;
export type UpdateTrainingMutationFn = ApolloReactCommon.MutationFunction<UpdateTrainingMutation, UpdateTrainingMutationVariables>;

/**
 * __useUpdateTrainingMutation__
 *
 * To run a mutation, you first call `useUpdateTrainingMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUpdateTrainingMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [updateTrainingMutation, { data, loading, error }] = useUpdateTrainingMutation({
 *   variables: {
 *      where: // value for 'where'
 *      data: // value for 'data'
 *   },
 * });
 */
export function useUpdateTrainingMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UpdateTrainingMutation, UpdateTrainingMutationVariables>) {
        return ApolloReactHooks.useMutation<UpdateTrainingMutation, UpdateTrainingMutationVariables>(UpdateTrainingDocument, baseOptions);
      }
export type UpdateTrainingMutationHookResult = ReturnType<typeof useUpdateTrainingMutation>;
export type UpdateTrainingMutationResult = ApolloReactCommon.MutationResult<UpdateTrainingMutation>;
export type UpdateTrainingMutationOptions = ApolloReactCommon.BaseMutationOptions<UpdateTrainingMutation, UpdateTrainingMutationVariables>;
export const CreateTrainingTypeDocument = gql`
    mutation createTrainingType($name: String!, $description: String!) {
  createTrainingType(name: $name, description: $description) {
    id
  }
}
    `;
export type CreateTrainingTypeMutationFn = ApolloReactCommon.MutationFunction<CreateTrainingTypeMutation, CreateTrainingTypeMutationVariables>;

/**
 * __useCreateTrainingTypeMutation__
 *
 * To run a mutation, you first call `useCreateTrainingTypeMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useCreateTrainingTypeMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [createTrainingTypeMutation, { data, loading, error }] = useCreateTrainingTypeMutation({
 *   variables: {
 *      name: // value for 'name'
 *      description: // value for 'description'
 *   },
 * });
 */
export function useCreateTrainingTypeMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<CreateTrainingTypeMutation, CreateTrainingTypeMutationVariables>) {
        return ApolloReactHooks.useMutation<CreateTrainingTypeMutation, CreateTrainingTypeMutationVariables>(CreateTrainingTypeDocument, baseOptions);
      }
export type CreateTrainingTypeMutationHookResult = ReturnType<typeof useCreateTrainingTypeMutation>;
export type CreateTrainingTypeMutationResult = ApolloReactCommon.MutationResult<CreateTrainingTypeMutation>;
export type CreateTrainingTypeMutationOptions = ApolloReactCommon.BaseMutationOptions<CreateTrainingTypeMutation, CreateTrainingTypeMutationVariables>;
export const CreateFormatDocument = gql`
    mutation createFormat($name: String!, $description: String!) {
  createFormat(name: $name, description: $description) {
    id
  }
}
    `;
export type CreateFormatMutationFn = ApolloReactCommon.MutationFunction<CreateFormatMutation, CreateFormatMutationVariables>;

/**
 * __useCreateFormatMutation__
 *
 * To run a mutation, you first call `useCreateFormatMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useCreateFormatMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [createFormatMutation, { data, loading, error }] = useCreateFormatMutation({
 *   variables: {
 *      name: // value for 'name'
 *      description: // value for 'description'
 *   },
 * });
 */
export function useCreateFormatMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<CreateFormatMutation, CreateFormatMutationVariables>) {
        return ApolloReactHooks.useMutation<CreateFormatMutation, CreateFormatMutationVariables>(CreateFormatDocument, baseOptions);
      }
export type CreateFormatMutationHookResult = ReturnType<typeof useCreateFormatMutation>;
export type CreateFormatMutationResult = ApolloReactCommon.MutationResult<CreateFormatMutation>;
export type CreateFormatMutationOptions = ApolloReactCommon.BaseMutationOptions<CreateFormatMutation, CreateFormatMutationVariables>;
export const RegisterDocument = gql`
    mutation register($training: ID!) {
  register(training: $training) {
    id
  }
}
    `;
export type RegisterMutationFn = ApolloReactCommon.MutationFunction<RegisterMutation, RegisterMutationVariables>;

/**
 * __useRegisterMutation__
 *
 * To run a mutation, you first call `useRegisterMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useRegisterMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [registerMutation, { data, loading, error }] = useRegisterMutation({
 *   variables: {
 *      training: // value for 'training'
 *   },
 * });
 */
export function useRegisterMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<RegisterMutation, RegisterMutationVariables>) {
        return ApolloReactHooks.useMutation<RegisterMutation, RegisterMutationVariables>(RegisterDocument, baseOptions);
      }
export type RegisterMutationHookResult = ReturnType<typeof useRegisterMutation>;
export type RegisterMutationResult = ApolloReactCommon.MutationResult<RegisterMutation>;
export type RegisterMutationOptions = ApolloReactCommon.BaseMutationOptions<RegisterMutation, RegisterMutationVariables>;
export const DeregisterDocument = gql`
    mutation deregister($training: ID!) {
  deregister(training: $training) {
    id
  }
}
    `;
export type DeregisterMutationFn = ApolloReactCommon.MutationFunction<DeregisterMutation, DeregisterMutationVariables>;

/**
 * __useDeregisterMutation__
 *
 * To run a mutation, you first call `useDeregisterMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useDeregisterMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [deregisterMutation, { data, loading, error }] = useDeregisterMutation({
 *   variables: {
 *      training: // value for 'training'
 *   },
 * });
 */
export function useDeregisterMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<DeregisterMutation, DeregisterMutationVariables>) {
        return ApolloReactHooks.useMutation<DeregisterMutation, DeregisterMutationVariables>(DeregisterDocument, baseOptions);
      }
export type DeregisterMutationHookResult = ReturnType<typeof useDeregisterMutation>;
export type DeregisterMutationResult = ApolloReactCommon.MutationResult<DeregisterMutation>;
export type DeregisterMutationOptions = ApolloReactCommon.BaseMutationOptions<DeregisterMutation, DeregisterMutationVariables>;
export const PublishDocument = gql`
    mutation publish($training: ID!, $status: Boolean) {
  publish(training: $training, status: $status) {
    id
  }
}
    `;
export type PublishMutationFn = ApolloReactCommon.MutationFunction<PublishMutation, PublishMutationVariables>;

/**
 * __usePublishMutation__
 *
 * To run a mutation, you first call `usePublishMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `usePublishMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [publishMutation, { data, loading, error }] = usePublishMutation({
 *   variables: {
 *      training: // value for 'training'
 *      status: // value for 'status'
 *   },
 * });
 */
export function usePublishMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<PublishMutation, PublishMutationVariables>) {
        return ApolloReactHooks.useMutation<PublishMutation, PublishMutationVariables>(PublishDocument, baseOptions);
      }
export type PublishMutationHookResult = ReturnType<typeof usePublishMutation>;
export type PublishMutationResult = ApolloReactCommon.MutationResult<PublishMutation>;
export type PublishMutationOptions = ApolloReactCommon.BaseMutationOptions<PublishMutation, PublishMutationVariables>;
export const UsersDocument = gql`
    query Users {
  users {
    id
    email
    name
    permissions
    interests
  }
}
    `;

/**
 * __useUsersQuery__
 *
 * To run a query within a React component, call `useUsersQuery` and pass it any options that fit your needs.
 * When your component renders, `useUsersQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useUsersQuery({
 *   variables: {
 *   },
 * });
 */
export function useUsersQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<UsersQuery, UsersQueryVariables>) {
        return ApolloReactHooks.useQuery<UsersQuery, UsersQueryVariables>(UsersDocument, baseOptions);
      }
export function useUsersLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<UsersQuery, UsersQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<UsersQuery, UsersQueryVariables>(UsersDocument, baseOptions);
        }
export type UsersQueryHookResult = ReturnType<typeof useUsersQuery>;
export type UsersLazyQueryHookResult = ReturnType<typeof useUsersLazyQuery>;
export type UsersQueryResult = ApolloReactCommon.QueryResult<UsersQuery, UsersQueryVariables>;
export const UserSignupDocument = gql`
    mutation UserSignup($email: String!, $password: String!, $name: String!) {
  userSignup(email: $email, password: $password, name: $name) {
    id
    email
    name
  }
}
    `;
export type UserSignupMutationFn = ApolloReactCommon.MutationFunction<UserSignupMutation, UserSignupMutationVariables>;

/**
 * __useUserSignupMutation__
 *
 * To run a mutation, you first call `useUserSignupMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUserSignupMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [userSignupMutation, { data, loading, error }] = useUserSignupMutation({
 *   variables: {
 *      email: // value for 'email'
 *      password: // value for 'password'
 *      name: // value for 'name'
 *   },
 * });
 */
export function useUserSignupMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UserSignupMutation, UserSignupMutationVariables>) {
        return ApolloReactHooks.useMutation<UserSignupMutation, UserSignupMutationVariables>(UserSignupDocument, baseOptions);
      }
export type UserSignupMutationHookResult = ReturnType<typeof useUserSignupMutation>;
export type UserSignupMutationResult = ApolloReactCommon.MutationResult<UserSignupMutation>;
export type UserSignupMutationOptions = ApolloReactCommon.BaseMutationOptions<UserSignupMutation, UserSignupMutationVariables>;
export const UserLoginDocument = gql`
    mutation UserLogin($email: String!, $password: String!) {
  userLogin(email: $email, password: $password) {
    id
    email
    name
  }
}
    `;
export type UserLoginMutationFn = ApolloReactCommon.MutationFunction<UserLoginMutation, UserLoginMutationVariables>;

/**
 * __useUserLoginMutation__
 *
 * To run a mutation, you first call `useUserLoginMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUserLoginMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [userLoginMutation, { data, loading, error }] = useUserLoginMutation({
 *   variables: {
 *      email: // value for 'email'
 *      password: // value for 'password'
 *   },
 * });
 */
export function useUserLoginMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UserLoginMutation, UserLoginMutationVariables>) {
        return ApolloReactHooks.useMutation<UserLoginMutation, UserLoginMutationVariables>(UserLoginDocument, baseOptions);
      }
export type UserLoginMutationHookResult = ReturnType<typeof useUserLoginMutation>;
export type UserLoginMutationResult = ApolloReactCommon.MutationResult<UserLoginMutation>;
export type UserLoginMutationOptions = ApolloReactCommon.BaseMutationOptions<UserLoginMutation, UserLoginMutationVariables>;
export const UserLogoutDocument = gql`
    mutation UserLogout {
  userLogout
}
    `;
export type UserLogoutMutationFn = ApolloReactCommon.MutationFunction<UserLogoutMutation, UserLogoutMutationVariables>;

/**
 * __useUserLogoutMutation__
 *
 * To run a mutation, you first call `useUserLogoutMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUserLogoutMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [userLogoutMutation, { data, loading, error }] = useUserLogoutMutation({
 *   variables: {
 *   },
 * });
 */
export function useUserLogoutMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UserLogoutMutation, UserLogoutMutationVariables>) {
        return ApolloReactHooks.useMutation<UserLogoutMutation, UserLogoutMutationVariables>(UserLogoutDocument, baseOptions);
      }
export type UserLogoutMutationHookResult = ReturnType<typeof useUserLogoutMutation>;
export type UserLogoutMutationResult = ApolloReactCommon.MutationResult<UserLogoutMutation>;
export type UserLogoutMutationOptions = ApolloReactCommon.BaseMutationOptions<UserLogoutMutation, UserLogoutMutationVariables>;
export const CurrentUserDocument = gql`
    query CurrentUser {
  currentUser {
    id
    email
    name
    permissions
    interests
  }
}
    `;

/**
 * __useCurrentUserQuery__
 *
 * To run a query within a React component, call `useCurrentUserQuery` and pass it any options that fit your needs.
 * When your component renders, `useCurrentUserQuery` returns an object from Apollo Client that contains loading, error, and data properties 
 * you can use to render your UI.
 *
 * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
 *
 * @example
 * const { data, loading, error } = useCurrentUserQuery({
 *   variables: {
 *   },
 * });
 */
export function useCurrentUserQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<CurrentUserQuery, CurrentUserQueryVariables>) {
        return ApolloReactHooks.useQuery<CurrentUserQuery, CurrentUserQueryVariables>(CurrentUserDocument, baseOptions);
      }
export function useCurrentUserLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<CurrentUserQuery, CurrentUserQueryVariables>) {
          return ApolloReactHooks.useLazyQuery<CurrentUserQuery, CurrentUserQueryVariables>(CurrentUserDocument, baseOptions);
        }
export type CurrentUserQueryHookResult = ReturnType<typeof useCurrentUserQuery>;
export type CurrentUserLazyQueryHookResult = ReturnType<typeof useCurrentUserLazyQuery>;
export type CurrentUserQueryResult = ApolloReactCommon.QueryResult<CurrentUserQuery, CurrentUserQueryVariables>;
export const RequestResetDocument = gql`
    mutation RequestReset($email: String!) {
  requestReset(email: $email)
}
    `;
export type RequestResetMutationFn = ApolloReactCommon.MutationFunction<RequestResetMutation, RequestResetMutationVariables>;

/**
 * __useRequestResetMutation__
 *
 * To run a mutation, you first call `useRequestResetMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useRequestResetMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [requestResetMutation, { data, loading, error }] = useRequestResetMutation({
 *   variables: {
 *      email: // value for 'email'
 *   },
 * });
 */
export function useRequestResetMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<RequestResetMutation, RequestResetMutationVariables>) {
        return ApolloReactHooks.useMutation<RequestResetMutation, RequestResetMutationVariables>(RequestResetDocument, baseOptions);
      }
export type RequestResetMutationHookResult = ReturnType<typeof useRequestResetMutation>;
export type RequestResetMutationResult = ApolloReactCommon.MutationResult<RequestResetMutation>;
export type RequestResetMutationOptions = ApolloReactCommon.BaseMutationOptions<RequestResetMutation, RequestResetMutationVariables>;
export const ResetPasswordDocument = gql`
    mutation ResetPassword($token: String!, $password: String!) {
  resetPassword(token: $token, password: $password) {
    id
    name
  }
}
    `;
export type ResetPasswordMutationFn = ApolloReactCommon.MutationFunction<ResetPasswordMutation, ResetPasswordMutationVariables>;

/**
 * __useResetPasswordMutation__
 *
 * To run a mutation, you first call `useResetPasswordMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useResetPasswordMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [resetPasswordMutation, { data, loading, error }] = useResetPasswordMutation({
 *   variables: {
 *      token: // value for 'token'
 *      password: // value for 'password'
 *   },
 * });
 */
export function useResetPasswordMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<ResetPasswordMutation, ResetPasswordMutationVariables>) {
        return ApolloReactHooks.useMutation<ResetPasswordMutation, ResetPasswordMutationVariables>(ResetPasswordDocument, baseOptions);
      }
export type ResetPasswordMutationHookResult = ReturnType<typeof useResetPasswordMutation>;
export type ResetPasswordMutationResult = ApolloReactCommon.MutationResult<ResetPasswordMutation>;
export type ResetPasswordMutationOptions = ApolloReactCommon.BaseMutationOptions<ResetPasswordMutation, ResetPasswordMutationVariables>;
export const UserDeleteDocument = gql`
    mutation UserDelete($id: ID!) {
  deleteUser(id: $id) {
    id
  }
}
    `;
export type UserDeleteMutationFn = ApolloReactCommon.MutationFunction<UserDeleteMutation, UserDeleteMutationVariables>;

/**
 * __useUserDeleteMutation__
 *
 * To run a mutation, you first call `useUserDeleteMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUserDeleteMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [userDeleteMutation, { data, loading, error }] = useUserDeleteMutation({
 *   variables: {
 *      id: // value for 'id'
 *   },
 * });
 */
export function useUserDeleteMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UserDeleteMutation, UserDeleteMutationVariables>) {
        return ApolloReactHooks.useMutation<UserDeleteMutation, UserDeleteMutationVariables>(UserDeleteDocument, baseOptions);
      }
export type UserDeleteMutationHookResult = ReturnType<typeof useUserDeleteMutation>;
export type UserDeleteMutationResult = ApolloReactCommon.MutationResult<UserDeleteMutation>;
export type UserDeleteMutationOptions = ApolloReactCommon.BaseMutationOptions<UserDeleteMutation, UserDeleteMutationVariables>;
export const UserUpdateDocument = gql`
    mutation UserUpdate($id: ID!, $data: UserUpdateInput!) {
  updateUser(id: $id, data: $data) {
    id
    name
    email
    permissions
    interests
  }
}
    `;
export type UserUpdateMutationFn = ApolloReactCommon.MutationFunction<UserUpdateMutation, UserUpdateMutationVariables>;

/**
 * __useUserUpdateMutation__
 *
 * To run a mutation, you first call `useUserUpdateMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUserUpdateMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [userUpdateMutation, { data, loading, error }] = useUserUpdateMutation({
 *   variables: {
 *      id: // value for 'id'
 *      data: // value for 'data'
 *   },
 * });
 */
export function useUserUpdateMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UserUpdateMutation, UserUpdateMutationVariables>) {
        return ApolloReactHooks.useMutation<UserUpdateMutation, UserUpdateMutationVariables>(UserUpdateDocument, baseOptions);
      }
export type UserUpdateMutationHookResult = ReturnType<typeof useUserUpdateMutation>;
export type UserUpdateMutationResult = ApolloReactCommon.MutationResult<UserUpdateMutation>;
export type UserUpdateMutationOptions = ApolloReactCommon.BaseMutationOptions<UserUpdateMutation, UserUpdateMutationVariables>;
export const UpdatePermissionsDocument = gql`
    mutation updatePermissions($id: ID!, $permissions: [Permission!]!) {
  updatePermissions(id: $id, permissions: $permissions) {
    id
  }
}
    `;
export type UpdatePermissionsMutationFn = ApolloReactCommon.MutationFunction<UpdatePermissionsMutation, UpdatePermissionsMutationVariables>;

/**
 * __useUpdatePermissionsMutation__
 *
 * To run a mutation, you first call `useUpdatePermissionsMutation` within a React component and pass it any options that fit your needs.
 * When your component renders, `useUpdatePermissionsMutation` returns a tuple that includes:
 * - A mutate function that you can call at any time to execute the mutation
 * - An object with fields that represent the current status of the mutation's execution
 *
 * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;
 *
 * @example
 * const [updatePermissionsMutation, { data, loading, error }] = useUpdatePermissionsMutation({
 *   variables: {
 *      id: // value for 'id'
 *      permissions: // value for 'permissions'
 *   },
 * });
 */
export function useUpdatePermissionsMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<UpdatePermissionsMutation, UpdatePermissionsMutationVariables>) {
        return ApolloReactHooks.useMutation<UpdatePermissionsMutation, UpdatePermissionsMutationVariables>(UpdatePermissionsDocument, baseOptions);
      }
export type UpdatePermissionsMutationHookResult = ReturnType<typeof useUpdatePermissionsMutation>;
export type UpdatePermissionsMutationResult = ApolloReactCommon.MutationResult<UpdatePermissionsMutation>;
export type UpdatePermissionsMutationOptions = ApolloReactCommon.BaseMutationOptions<UpdatePermissionsMutation, UpdatePermissionsMutationVariables>;