"""

"""
directive @mark(
  """
  Marks if field is localized
  """
  localized: Boolean

  """
  Marks if value is default
  """
  default: Boolean

  """
  Marks if the locale is a part of the default fallback
  """
  fallback: Boolean

  """
  Ordered list of fallback locales
  """
  fallbackLocales: [String!]

  """
  Marks the pageInfo
  """
  pageInfo: Boolean

  """
  Marks an aggregate type
  """
  aggregate: Boolean

  """
  Marks a countable type
  """
  countable: Boolean

  """
  Marks an edge type
  """
  edge: Boolean

  """
  Marks a locale enum
  """
  locale: Boolean

  """
  Marks asset url handler
  """
  url: Boolean

  """
  Marks type of mutation kind
  """
  mutationKind: _MutationKind

  """
  Marks kind of mutation input field
  """
  mutationInputFieldKind: _MutationInputFieldKind

  """
  Marks filter and links to parent type
  """
  filter: String

  """
  Marks filter kind
  """
  filterKind: _FilterKind

  """
  Marks if corresponding field is list
  """
  filterIsList: Boolean

  """
  Marks order by
  """
  order: Boolean

  """
  Marks order direction
  """
  orderDirection: _OrderDirection

  """
  Link to the Main type of the connection
  """
  connection: String

  """
  Marks localizations field
  """
  localizations: Boolean

  """
  Marks versions field on model
  """
  modelVersions: Boolean

  """
  Marks document version field on Query
  """
  documentVersion: Boolean

  """
  Marks stages field
  """
  stages: Boolean

  """
  Specifies system createdAt field
  """
  createdAtField: String

  """
  Specifies system updatedAt field
  """
  updatedAtField: String

  """
  Specifies relation input kind
  """
  relationInputKind: _RelationInputKind

  """
  Specifies relation kind (e.g. union relation or regular field relation)
  """
  relationKind: _RelationKind

  """
  Specifies relation input cardinality
  """
  relationInputCardinality: _RelationInputCardinality

  """
  Specifies relation input cardinality of reverse side
  """
  reverseRelationInputCardinality: _RelationInputCardinality

  """
  Specifies model create input type
  """
  createInputType: String

  """
  Specifies model create localization type
  """
  createLocalizationInputType: String

  """
  Specifies Hygraph field type
  """
  fieldType: String

  """
  Specifies WhereUniqueInput type name
  """
  whereUniqueInput: String

  """
  Specifies whether type is connect input
  """
  isConnectInput: Boolean

  """
  Specifies relation input to be for abstract member type, not known master / origin side
  """
  isMemberInput: Boolean

  """
  Specifies union type name
  """
  unionType: Boolean

  """
  Specifies model a type is part of
  """
  model: String

  """
  Specifies mode of system DateTime fields
  """
  systemDateTimeFieldVariation: _SystemDateTimeFieldVariation

  """
  If versioned, documents of this model will be able to hold this amount of versions per stage
  """
  versionRetentionCount: Int

  """
  If versioned, on publishing versions older than x days will be dropped
  """
  versionRetentionPeriod: Int

  """
  Adds field validations
  """
  validations: String

  """
  The model's storage ID
  """
  storageId: String

  """
  Marks richText field return type
  """
  isRichTextType: Boolean

  """
  Marks list richText field return type
  """
  isListRichText: Boolean

  """
  The name of the associated RichText type
  """
  richTextType: String

  """
  Marks relation fields that do not have a reverse side counterpart
  """
  isUnidirectional: Boolean

  """
  Specifies if the filter's value can be replaced by the current user's id
  """
  replaceableWithUserId: Boolean
) on OBJECT | FIELD_DEFINITION | ENUM_VALUE | ENUM | INPUT_FIELD_DEFINITION | INPUT_OBJECT | ARGUMENT_DEFINITION

"""

"""
directive @permission(
  """
  Policy resource names.
  """
  resources: [String!]

  """
  Policy action names.
  """
  actions: [String!]
) on FIELD_DEFINITION

"""

"""
directive @psql(
  """
  postgres table name
  """
  table: String

  """
  postgres localization table name
  """
  localizationTable: String

  """
  postgres column name
  """
  column: [String!]

  """
  hardcoded postgres id value for enums
  """
  id: String

  """
  postgres join on name
  """
  join: [String!]

  """
  Specifies column for system id field
  """
  idColumn: String

  """
  Specifies column for native sorting for relational fields
  """
  prio: String

  """
  Specifies columns for union member fields
  """
  memberColumns: [String!]

  """
  Specifies system updatedAt column
  """
  updatedAtColumn: String
) on OBJECT | FIELD_DEFINITION | ENUM_VALUE | INPUT_FIELD_DEFINITION | ENUM | INPUT_OBJECT | ARGUMENT_DEFINITION

"""

"""
directive @remote(
  """
  url to fetch the remote content from
  """
  url: String!

  """
  HTTP method used to fetch the remote content from
  """
  method: String!

  """
  optional headers that will be sent in the remote call
  """
  headers: Json

  """
  list of field apiIds that should be send as payload in the remote call
  """
  requestParamFields: [String!]!

  """
  list of field storage ids that will available for templates and parameters for the remote call
  """
  payloadFields: [String!]!
) on FIELD_DEFINITION

"""

"""
type Aggregate {
  """

  """
  count: Int!
}

"""
Asset system model
"""
type Asset implements Node {
  """
  System stage field
  """
  stage: Stage!

  """
  System Locale field
  """
  locale: Locale!

  """
  Get the other localizations for this document
  """
  localizations(
    """
    Potential locales that should be returned
    """
    locales: [Locale!]! = [en, de]

    """
    Decides if the current locale should be included or not
    """
    includeCurrent: Boolean! = false
  ): [Asset!]!

  """
  Get the document in other stages
  """
  documentInStages(
    """
    Potential stages that should be returned
    """
    stages: [Stage!]! = [PUBLISHED, DRAFT]

    """
    Decides if the current stage should be included or not
    """
    includeCurrent: Boolean! = false

    """
    Decides if the documents should match the parent documents locale or should use the fallback order defined in the tree
    """
    inheritLocale: Boolean! = false
  ): [Asset!]!

  """
  The unique identifier
  """
  id: ID!

  """
  The time the document was created
  """
  createdAt(
    """
    Variation of DateTime field to return, allows value from base document, current localization, or combined by returning the newer value of both
    """
    variation: SystemDateTimeFieldVariation! = COMBINED
  ): DateTime!

  """
  User that created this document
  """
  createdBy(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `createdBy` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): User

  """
  The time the document was updated
  """
  updatedAt(
    """
    Variation of DateTime field to return, allows value from base document, current localization, or combined by returning the newer value of both
    """
    variation: SystemDateTimeFieldVariation! = COMBINED
  ): DateTime!

  """
  User that last updated this document
  """
  updatedBy(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `updatedBy` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): User

  """
  The time the document was published. Null on documents in draft stage.
  """
  publishedAt(
    """
    Variation of DateTime field to return, allows value from base document, current localization, or combined by returning the newer value of both
    """
    variation: SystemDateTimeFieldVariation! = COMBINED
  ): DateTime

  """
  User that last published this document
  """
  publishedBy(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `publishedBy` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): User

  """
  The file handle
  """
  handle: String!

  """
  The file name
  """
  fileName: String!

  """
  The height of the file
  """
  height: Float

  """
  The file width
  """
  width: Float

  """
  The file size
  """
  size: Float

  """
  The mime type of the file
  """
  mimeType: String

  """

  """
  productImage(
    """

    """
    where: ProductWhereInput

    """

    """
    orderBy: ProductOrderByInput

    """

    """
    skip: Int

    """

    """
    after: String

    """

    """
    before: String

    """

    """
    first: Int

    """

    """
    last: Int

    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `productImage` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): [Product!]!

  """
  List of Asset versions
  """
  history(
    """

    """
    limit: Int! = 10

    """

    """
    skip: Int! = 0

    """
    This is optional and can be used to fetch the document version history for a specific stage instead of the current one
    """
    stageOverride: Stage
  ): [Version!]!

  """
  Get the url for the asset with provided transformations applied.
  """
  url(transformation: AssetTransformationInput): String!
}

"""

"""
input AssetConnectInput {
  """
  Document to connect
  """
  where: AssetWhereUniqueInput!

  """
  Allow to specify document position in list of connected documents, will default to appending at end of list
  """
  position: ConnectPositionInput
}

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

  """
  A list of edges.
  """
  edges: [AssetEdge!]!

  """

  """
  aggregate: Aggregate!
}

"""

"""
input AssetCreateInput {
  """

  """
  createdAt: DateTime

  """

  """
  updatedAt: DateTime

  """

  """
  handle: String!

  """

  """
  fileName: String!

  """

  """
  height: Float

  """

  """
  width: Float

  """

  """
  size: Float

  """

  """
  mimeType: String

  """

  """
  productImage: ProductCreateManyInlineInput

  """
  Inline mutations for managing document localizations excluding the default locale
  """
  localizations: AssetCreateLocalizationsInput
}

"""

"""
input AssetCreateLocalizationDataInput {
  """

  """
  createdAt: DateTime

  """

  """
  updatedAt: DateTime

  """

  """
  handle: String!

  """

  """
  fileName: String!

  """

  """
  height: Float

  """

  """
  width: Float

  """

  """
  size: Float

  """

  """
  mimeType: String
}

"""

"""
input AssetCreateLocalizationInput {
  """
  Localization input
  """
  data: AssetCreateLocalizationDataInput!

  """

  """
  locale: Locale!
}

"""

"""
input AssetCreateLocalizationsInput {
  """
  Create localizations for the newly-created document
  """
  create: [AssetCreateLocalizationInput!]
}

"""

"""
input AssetCreateManyInlineInput {
  """
  Create and connect multiple existing Asset documents
  """
  create: [AssetCreateInput!]

  """
  Connect multiple existing Asset documents
  """
  connect: [AssetWhereUniqueInput!]
}

"""

"""
input AssetCreateOneInlineInput {
  """
  Create and connect one Asset document
  """
  create: AssetCreateInput

  """
  Connect one existing Asset document
  """
  connect: AssetWhereUniqueInput
}

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

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

"""
Identifies documents
"""
input AssetManyWhereInput {
  """
  Contains search across all appropriate fields.
  """
  _search: String

  """
  Logical AND on all given filters.
  """
  AND: [AssetWhereInput!]

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

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

  """

  """
  id: ID

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

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

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

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

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

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

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

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

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

  """

  """
  createdAt: DateTime

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

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

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

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

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

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

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

  """

  """
  createdBy: UserWhereInput

  """

  """
  updatedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  updatedBy: UserWhereInput

  """

  """
  publishedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  publishedBy: UserWhereInput

  """

  """
  productImage_every: ProductWhereInput

  """

  """
  productImage_some: ProductWhereInput

  """

  """
  productImage_none: ProductWhereInput
}

"""

"""
enum AssetOrderByInput {
  """

  """
  id_ASC

  """

  """
  id_DESC

  """

  """
  createdAt_ASC

  """

  """
  createdAt_DESC

  """

  """
  updatedAt_ASC

  """

  """
  updatedAt_DESC

  """

  """
  publishedAt_ASC

  """

  """
  publishedAt_DESC

  """

  """
  handle_ASC

  """

  """
  handle_DESC

  """

  """
  fileName_ASC

  """

  """
  fileName_DESC

  """

  """
  height_ASC

  """

  """
  height_DESC

  """

  """
  width_ASC

  """

  """
  width_DESC

  """

  """
  size_ASC

  """

  """
  size_DESC

  """

  """
  mimeType_ASC

  """

  """
  mimeType_DESC
}

"""
Transformations for Assets
"""
input AssetTransformationInput {
  """

  """
  image: ImageTransformationInput

  """

  """
  document: DocumentTransformationInput

  """
  Pass true if you want to validate the passed transformation parameters
  """
  validateOptions: Boolean = false
}

"""

"""
input AssetUpdateInput {
  """

  """
  handle: String

  """

  """
  fileName: String

  """

  """
  height: Float

  """

  """
  width: Float

  """

  """
  size: Float

  """

  """
  mimeType: String

  """

  """
  productImage: ProductUpdateManyInlineInput

  """
  Manage document localizations
  """
  localizations: AssetUpdateLocalizationsInput
}

"""

"""
input AssetUpdateLocalizationDataInput {
  """

  """
  handle: String

  """

  """
  fileName: String

  """

  """
  height: Float

  """

  """
  width: Float

  """

  """
  size: Float

  """

  """
  mimeType: String
}

"""

"""
input AssetUpdateLocalizationInput {
  """

  """
  data: AssetUpdateLocalizationDataInput!

  """

  """
  locale: Locale!
}

"""

"""
input AssetUpdateLocalizationsInput {
  """
  Localizations to create
  """
  create: [AssetCreateLocalizationInput!]

  """
  Localizations to update
  """
  update: [AssetUpdateLocalizationInput!]

  """

  """
  upsert: [AssetUpsertLocalizationInput!]

  """
  Localizations to delete
  """
  delete: [Locale!]
}

"""

"""
input AssetUpdateManyInlineInput {
  """
  Create and connect multiple Asset documents
  """
  create: [AssetCreateInput!]

  """
  Connect multiple existing Asset documents
  """
  connect: [AssetConnectInput!]

  """
  Override currently-connected documents with multiple existing Asset documents
  """
  set: [AssetWhereUniqueInput!]

  """
  Update multiple Asset documents
  """
  update: [AssetUpdateWithNestedWhereUniqueInput!]

  """
  Upsert multiple Asset documents
  """
  upsert: [AssetUpsertWithNestedWhereUniqueInput!]

  """
  Disconnect multiple Asset documents
  """
  disconnect: [AssetWhereUniqueInput!]

  """
  Delete multiple Asset documents
  """
  delete: [AssetWhereUniqueInput!]
}

"""

"""
input AssetUpdateManyInput {
  """

  """
  fileName: String

  """

  """
  height: Float

  """

  """
  width: Float

  """

  """
  size: Float

  """

  """
  mimeType: String

  """
  Optional updates to localizations
  """
  localizations: AssetUpdateManyLocalizationsInput
}

"""

"""
input AssetUpdateManyLocalizationDataInput {
  """

  """
  fileName: String

  """

  """
  height: Float

  """

  """
  width: Float

  """

  """
  size: Float

  """

  """
  mimeType: String
}

"""

"""
input AssetUpdateManyLocalizationInput {
  """

  """
  data: AssetUpdateManyLocalizationDataInput!

  """

  """
  locale: Locale!
}

"""

"""
input AssetUpdateManyLocalizationsInput {
  """
  Localizations to update
  """
  update: [AssetUpdateManyLocalizationInput!]
}

"""

"""
input AssetUpdateManyWithNestedWhereInput {
  """
  Document search
  """
  where: AssetWhereInput!

  """
  Update many input
  """
  data: AssetUpdateManyInput!
}

"""

"""
input AssetUpdateOneInlineInput {
  """
  Create and connect one Asset document
  """
  create: AssetCreateInput

  """
  Update single Asset document
  """
  update: AssetUpdateWithNestedWhereUniqueInput

  """
  Upsert single Asset document
  """
  upsert: AssetUpsertWithNestedWhereUniqueInput

  """
  Connect existing Asset document
  """
  connect: AssetWhereUniqueInput

  """
  Disconnect currently connected Asset document
  """
  disconnect: Boolean

  """
  Delete currently connected Asset document
  """
  delete: Boolean
}

"""

"""
input AssetUpdateWithNestedWhereUniqueInput {
  """
  Unique document search
  """
  where: AssetWhereUniqueInput!

  """
  Document to update
  """
  data: AssetUpdateInput!
}

"""

"""
input AssetUpsertInput {
  """
  Create document if it didn't exist
  """
  create: AssetCreateInput!

  """
  Update document if it exists
  """
  update: AssetUpdateInput!
}

"""

"""
input AssetUpsertLocalizationInput {
  """

  """
  update: AssetUpdateLocalizationDataInput!

  """

  """
  create: AssetCreateLocalizationDataInput!

  """

  """
  locale: Locale!
}

"""

"""
input AssetUpsertWithNestedWhereUniqueInput {
  """
  Unique document search
  """
  where: AssetWhereUniqueInput!

  """
  Upsert data
  """
  data: AssetUpsertInput!
}

"""
Identifies documents
"""
input AssetWhereInput {
  """
  Contains search across all appropriate fields.
  """
  _search: String

  """
  Logical AND on all given filters.
  """
  AND: [AssetWhereInput!]

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

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

  """

  """
  id: ID

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

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

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

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

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

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

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

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

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

  """

  """
  createdAt: DateTime

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

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

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

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

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

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

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

  """

  """
  createdBy: UserWhereInput

  """

  """
  updatedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  updatedBy: UserWhereInput

  """

  """
  publishedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  publishedBy: UserWhereInput

  """

  """
  handle: String

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

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

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

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

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

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

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

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

  """
  All values not ending with the given string
  """
  handle_not_ends_with: String

  """

  """
  fileName: String

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

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

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

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

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

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

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

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

  """
  All values not ending with the given string
  """
  fileName_not_ends_with: String

  """

  """
  height: Float

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

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

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

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

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

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

  """
  All values greater than or equal the given value.
  """
  height_gte: Float

  """

  """
  width: Float

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

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

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

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

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

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

  """
  All values greater than or equal the given value.
  """
  width_gte: Float

  """

  """
  size: Float

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

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

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

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

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

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

  """
  All values greater than or equal the given value.
  """
  size_gte: Float

  """

  """
  mimeType: String

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

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

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

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

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

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

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

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

  """
  All values not ending with the given string
  """
  mimeType_not_ends_with: String

  """

  """
  productImage_every: ProductWhereInput

  """

  """
  productImage_some: ProductWhereInput

  """

  """
  productImage_none: ProductWhereInput
}

"""
References Asset record uniquely
"""
input AssetWhereUniqueInput {
  """

  """
  id: ID
}

"""

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

"""
Representing a color value comprising of HEX, RGBA and css color values
"""
type Color {
  """

  """
  hex: Hex!

  """

  """
  rgba: RGBA!

  """

  """
  css: String!
}

"""
Accepts either HEX or RGBA color value. At least one of hex or rgba value should be passed. If both are passed RGBA is used.
"""
input ColorInput {
  """

  """
  hex: Hex

  """

  """
  rgba: RGBAInput
}

"""

"""
input ConnectPositionInput {
  """
  Connect document after specified document
  """
  after: ID

  """
  Connect document before specified document
  """
  before: ID

  """
  Connect document at first position
  """
  start: Boolean

  """
  Connect document at last position
  """
  end: Boolean
}

"""
A date string, such as 2007-12-03 (YYYY-MM-DD), compliant with ISO 8601 standard for representation of dates using the Gregorian calendar.
"""
scalar Date

"""
A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the date-timeformat outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representationof dates and times using the Gregorian calendar.
"""
scalar DateTime

"""

"""
enum DocumentFileTypes {
  """

  """
  jpg

  """

  """
  odp

  """

  """
  ods

  """

  """
  odt

  """

  """
  png

  """

  """
  svg

  """

  """
  txt

  """

  """
  webp

  """

  """
  docx

  """

  """
  pdf

  """

  """
  html

  """

  """
  doc

  """

  """
  xlsx

  """

  """
  xls

  """

  """
  pptx

  """

  """
  ppt
}

"""

"""
input DocumentOutputInput {
  """
  Transforms a document into a desired file type.
  See this matrix for format support:

  PDF:	jpg, odp, ods, odt, png, svg, txt, and webp
  DOC:	docx, html, jpg, odt, pdf, png, svg, txt, and webp
  DOCX:	doc, html, jpg, odt, pdf, png, svg, txt, and webp
  ODT:	doc, docx, html, jpg, pdf, png, svg, txt, and webp
  XLS:	jpg, pdf, ods, png, svg, xlsx, and webp
  XLSX:	jpg, pdf, ods, png, svg, xls, and webp
  ODS:	jpg, pdf, png, xls, svg, xlsx, and webp
  PPT:	jpg, odp, pdf, png, svg, pptx, and webp
  PPTX:	jpg, odp, pdf, png, svg, ppt, and webp
  ODP:	jpg, pdf, png, ppt, svg, pptx, and webp
  BMP:	jpg, odp, ods, odt, pdf, png, svg, and webp
  GIF:	jpg, odp, ods, odt, pdf, png, svg, and webp
  JPG:	jpg, odp, ods, odt, pdf, png, svg, and webp
  PNG:	jpg, odp, ods, odt, pdf, png, svg, and webp
  WEBP:	jpg, odp, ods, odt, pdf, png, svg, and webp
  TIFF:	jpg, odp, ods, odt, pdf, png, svg, and webp
  AI:	    jpg, odp, ods, odt, pdf, png, svg, and webp
  PSD:	jpg, odp, ods, odt, pdf, png, svg, and webp
  SVG:	jpg, odp, ods, odt, pdf, png, and webp
  HTML:	jpg, odt, pdf, svg, txt, and webp
  TXT:	jpg, html, odt, pdf, svg, and webp
  """
  format: DocumentFileTypes
}

"""
Transformations for Documents
"""
input DocumentTransformationInput {
  """
  Changes the output for the file.
  """
  output: DocumentOutputInput
}

"""

"""
type DocumentVersion {
  """

  """
  id: ID!

  """

  """
  stage: Stage!

  """

  """
  revision: Int!

  """

  """
  createdAt: DateTime!

  """

  """
  data: Json
}

"""

"""
scalar Hex

"""

"""
enum ImageFit {
  """
  Resizes the image to fit within the specified parameters without distorting, cropping, or changing the aspect ratio.
  """
  clip

  """
  Resizes the image to fit the specified parameters exactly by removing any parts of the image that don't fit within the boundaries.
  """
  crop

  """
  Resizes the image to fit the specified parameters exactly by scaling the image to the desired size. The aspect ratio of the image is not respected and the image can be distorted using this method.
  """
  scale

  """
  Resizes the image to fit within the parameters, but as opposed to 'fit:clip' will not scale the image if the image is smaller than the output size.
  """
  max
}

"""

"""
input ImageResizeInput {
  """
  The width in pixels to resize the image to. The value must be an integer from 1 to 10000.
  """
  width: Int

  """
  The height in pixels to resize the image to. The value must be an integer from 1 to 10000.
  """
  height: Int

  """
  The default value for the fit parameter is fit:clip.
  """
  fit: ImageFit
}

"""
Transformations for Images
"""
input ImageTransformationInput {
  """
  Resizes the image
  """
  resize: ImageResizeInput
}

"""
Raw JSON value
"""
scalar Json

"""
Locale system enumeration
"""
enum Locale {
  """
  System locale
  """
  en

  """

  """
  de
}

"""
Representing a geolocation point with latitude and longitude
"""
type Location {
  """

  """
  latitude: Float!

  """

  """
  longitude: Float!

  """

  """
  distance(from: LocationInput!): Float!
}

"""
Input for a geolocation point with latitude and longitude
"""
input LocationInput {
  """

  """
  latitude: Float!

  """

  """
  longitude: Float!
}

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

"""

"""
type Mutation {
  """
  Create one asset
  """
  createAsset(data: AssetCreateInput!): Asset
    @deprecated(reason: "Asset mutations will be overhauled soon")

  """
  Update one asset
  """
  updateAsset(where: AssetWhereUniqueInput!, data: AssetUpdateInput!): Asset

  """
  Delete one asset from _all_ existing stages. Returns deleted document.
  """
  deleteAsset(
    """
    Document to delete
    """
    where: AssetWhereUniqueInput!
  ): Asset

  """
  Upsert one asset
  """
  upsertAsset(where: AssetWhereUniqueInput!, upsert: AssetUpsertInput!): Asset

  """
  Publish one asset
  """
  publishAsset(
    """
    Document to publish
    """
    where: AssetWhereUniqueInput!

    """
    Optional localizations to publish
    """
    locales: [Locale!]

    """
    Whether to publish the base document
    """
    publishBase: Boolean = true

    """
    Whether to include the default locale when publishBase is set
    """
    withDefaultLocale: Boolean = true

    """
    Publishing target stage
    """
    to: [Stage!]! = [PUBLISHED]
  ): Asset

  """
  Unpublish one asset from selected stages. Unpublish either the complete document with its relations, localizations and base data or specific localizations only.
  """
  unpublishAsset(
    """
    Document to unpublish
    """
    where: AssetWhereUniqueInput!

    """
    Stages to unpublish document from
    """
    from: [Stage!]! = [PUBLISHED]

    """
    Optional locales to unpublish. Unpublishing the default locale will completely remove the document from the selected stages
    """
    locales: [Locale!]

    """
    Unpublish complete document including default localization and relations from stages. Can be disabled.
    """
    unpublishBase: Boolean = true
  ): Asset

  """
  Update many Asset documents
  """
  updateManyAssetsConnection(
    """
    Documents to apply update on
    """
    where: AssetManyWhereInput

    """
    Updates to document content
    """
    data: AssetUpdateManyInput!

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID
  ): AssetConnection!

  """
  Delete many Asset documents, return deleted documents
  """
  deleteManyAssetsConnection(
    """
    Documents to delete
    """
    where: AssetManyWhereInput

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID
  ): AssetConnection!

  """
  Publish many Asset documents
  """
  publishManyAssetsConnection(
    """
    Identifies documents in each stage to be published
    """
    where: AssetManyWhereInput

    """
    Stage to find matching documents in
    """
    from: Stage = DRAFT

    """
    Stages to publish documents to
    """
    to: [Stage!]! = [PUBLISHED]

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID

    """
    Document localizations to publish
    """
    locales: [Locale!]

    """
    Whether to publish the base document
    """
    publishBase: Boolean = true

    """
    Whether to include the default locale when publishBase is true
    """
    withDefaultLocale: Boolean = true
  ): AssetConnection!

  """
  Find many Asset documents that match criteria in specified stage and unpublish from target stages
  """
  unpublishManyAssetsConnection(
    """
    Identifies documents in draft stage
    """
    where: AssetManyWhereInput

    """
    Stage to find matching documents in
    """
    stage: Stage = DRAFT

    """
    Stages to unpublish documents from
    """
    from: [Stage!]! = [PUBLISHED]

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID

    """
    Locales to unpublish
    """
    locales: [Locale!]

    """
    Whether to unpublish the base document and default localization
    """
    unpublishBase: Boolean = true
  ): AssetConnection!

  """
  Update many assets
  """
  updateManyAssets(
    """
    Documents to apply update on
    """
    where: AssetManyWhereInput

    """
    Updates to document content
    """
    data: AssetUpdateManyInput!
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (updateManyAssetsConnection)"
    )

  """
  Delete many Asset documents
  """
  deleteManyAssets(
    """
    Documents to delete
    """
    where: AssetManyWhereInput
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (deleteManyAssetsConnection)"
    )

  """
  Publish many Asset documents
  """
  publishManyAssets(
    """
    Identifies documents in each stage to be published
    """
    where: AssetManyWhereInput

    """
    Stages to publish documents to
    """
    to: [Stage!]! = [PUBLISHED]

    """
    Document localizations to publish
    """
    locales: [Locale!]

    """
    Whether to publish the base document
    """
    publishBase: Boolean = true

    """
    Whether to include the default locale when publishBase is true
    """
    withDefaultLocale: Boolean = true
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (publishManyAssetsConnection)"
    )

  """
  Unpublish many Asset documents
  """
  unpublishManyAssets(
    """
    Identifies documents in each stage
    """
    where: AssetManyWhereInput

    """
    Stages to unpublish documents from
    """
    from: [Stage!]! = [PUBLISHED]

    """
    Locales to unpublish
    """
    locales: [Locale!]

    """
    Whether to unpublish the base document and default localization
    """
    unpublishBase: Boolean = true
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (unpublishManyAssetsConnection)"
    )

  """
  Create one product
  """
  createProduct(data: ProductCreateInput!): Product

  """
  Update one product
  """
  updateProduct(
    where: ProductWhereUniqueInput!
    data: ProductUpdateInput!
  ): Product

  """
  Delete one product from _all_ existing stages. Returns deleted document.
  """
  deleteProduct(
    """
    Document to delete
    """
    where: ProductWhereUniqueInput!
  ): Product

  """
  Upsert one product
  """
  upsertProduct(
    where: ProductWhereUniqueInput!
    upsert: ProductUpsertInput!
  ): Product

  """
  Publish one product
  """
  publishProduct(
    """
    Document to publish
    """
    where: ProductWhereUniqueInput!

    """
    Optional localizations to publish
    """
    locales: [Locale!]

    """
    Whether to publish the base document
    """
    publishBase: Boolean = true

    """
    Whether to include the default locale when publishBase is set
    """
    withDefaultLocale: Boolean = true

    """
    Publishing target stage
    """
    to: [Stage!]! = [PUBLISHED]
  ): Product

  """
  Unpublish one product from selected stages. Unpublish either the complete document with its relations, localizations and base data or specific localizations only.
  """
  unpublishProduct(
    """
    Document to unpublish
    """
    where: ProductWhereUniqueInput!

    """
    Stages to unpublish document from
    """
    from: [Stage!]! = [PUBLISHED]

    """
    Optional locales to unpublish. Unpublishing the default locale will completely remove the document from the selected stages
    """
    locales: [Locale!]

    """
    Unpublish complete document including default localization and relations from stages. Can be disabled.
    """
    unpublishBase: Boolean = true
  ): Product

  """
  Update many Product documents
  """
  updateManyProductsConnection(
    """
    Documents to apply update on
    """
    where: ProductManyWhereInput

    """
    Updates to document content
    """
    data: ProductUpdateManyInput!

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID
  ): ProductConnection!

  """
  Delete many Product documents, return deleted documents
  """
  deleteManyProductsConnection(
    """
    Documents to delete
    """
    where: ProductManyWhereInput

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID
  ): ProductConnection!

  """
  Publish many Product documents
  """
  publishManyProductsConnection(
    """
    Identifies documents in each stage to be published
    """
    where: ProductManyWhereInput

    """
    Stage to find matching documents in
    """
    from: Stage = DRAFT

    """
    Stages to publish documents to
    """
    to: [Stage!]! = [PUBLISHED]

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID

    """
    Document localizations to publish
    """
    locales: [Locale!]

    """
    Whether to publish the base document
    """
    publishBase: Boolean = true

    """
    Whether to include the default locale when publishBase is true
    """
    withDefaultLocale: Boolean = true
  ): ProductConnection!

  """
  Find many Product documents that match criteria in specified stage and unpublish from target stages
  """
  unpublishManyProductsConnection(
    """
    Identifies documents in draft stage
    """
    where: ProductManyWhereInput

    """
    Stage to find matching documents in
    """
    stage: Stage = DRAFT

    """
    Stages to unpublish documents from
    """
    from: [Stage!]! = [PUBLISHED]

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID

    """
    Locales to unpublish
    """
    locales: [Locale!]

    """
    Whether to unpublish the base document and default localization
    """
    unpublishBase: Boolean = true
  ): ProductConnection!

  """
  Update many products
  """
  updateManyProducts(
    """
    Documents to apply update on
    """
    where: ProductManyWhereInput

    """
    Updates to document content
    """
    data: ProductUpdateManyInput!
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (updateManyProductsConnection)"
    )

  """
  Delete many Product documents
  """
  deleteManyProducts(
    """
    Documents to delete
    """
    where: ProductManyWhereInput
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (deleteManyProductsConnection)"
    )

  """
  Publish many Product documents
  """
  publishManyProducts(
    """
    Identifies documents in each stage to be published
    """
    where: ProductManyWhereInput

    """
    Stages to publish documents to
    """
    to: [Stage!]! = [PUBLISHED]

    """
    Document localizations to publish
    """
    locales: [Locale!]

    """
    Whether to publish the base document
    """
    publishBase: Boolean = true

    """
    Whether to include the default locale when publishBase is true
    """
    withDefaultLocale: Boolean = true
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (publishManyProductsConnection)"
    )

  """
  Unpublish many Product documents
  """
  unpublishManyProducts(
    """
    Identifies documents in each stage
    """
    where: ProductManyWhereInput

    """
    Stages to unpublish documents from
    """
    from: [Stage!]! = [PUBLISHED]

    """
    Locales to unpublish
    """
    locales: [Locale!]

    """
    Whether to unpublish the base document and default localization
    """
    unpublishBase: Boolean = true
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (unpublishManyProductsConnection)"
    )

  """
  Create one review
  """
  createReview(data: ReviewCreateInput!): Review

  """
  Update one review
  """
  updateReview(where: ReviewWhereUniqueInput!, data: ReviewUpdateInput!): Review

  """
  Delete one review from _all_ existing stages. Returns deleted document.
  """
  deleteReview(
    """
    Document to delete
    """
    where: ReviewWhereUniqueInput!
  ): Review

  """
  Upsert one review
  """
  upsertReview(
    where: ReviewWhereUniqueInput!
    upsert: ReviewUpsertInput!
  ): Review

  """
  Publish one review
  """
  publishReview(
    """
    Document to publish
    """
    where: ReviewWhereUniqueInput!

    """
    Publishing target stage
    """
    to: [Stage!]! = [PUBLISHED]
  ): Review

  """
  Unpublish one review from selected stages. Unpublish either the complete document with its relations, localizations and base data or specific localizations only.
  """
  unpublishReview(
    """
    Document to unpublish
    """
    where: ReviewWhereUniqueInput!

    """
    Stages to unpublish document from
    """
    from: [Stage!]! = [PUBLISHED]
  ): Review

  """
  Update many Review documents
  """
  updateManyReviewsConnection(
    """
    Documents to apply update on
    """
    where: ReviewManyWhereInput

    """
    Updates to document content
    """
    data: ReviewUpdateManyInput!

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID
  ): ReviewConnection!

  """
  Delete many Review documents, return deleted documents
  """
  deleteManyReviewsConnection(
    """
    Documents to delete
    """
    where: ReviewManyWhereInput

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID
  ): ReviewConnection!

  """
  Publish many Review documents
  """
  publishManyReviewsConnection(
    """
    Identifies documents in each stage to be published
    """
    where: ReviewManyWhereInput

    """
    Stage to find matching documents in
    """
    from: Stage = DRAFT

    """
    Stages to publish documents to
    """
    to: [Stage!]! = [PUBLISHED]

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID
  ): ReviewConnection!

  """
  Find many Review documents that match criteria in specified stage and unpublish from target stages
  """
  unpublishManyReviewsConnection(
    """
    Identifies documents in draft stage
    """
    where: ReviewManyWhereInput

    """
    Stage to find matching documents in
    """
    stage: Stage = DRAFT

    """
    Stages to unpublish documents from
    """
    from: [Stage!]! = [PUBLISHED]

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID
  ): ReviewConnection!

  """
  Update many reviews
  """
  updateManyReviews(
    """
    Documents to apply update on
    """
    where: ReviewManyWhereInput

    """
    Updates to document content
    """
    data: ReviewUpdateManyInput!
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (updateManyReviewsConnection)"
    )

  """
  Delete many Review documents
  """
  deleteManyReviews(
    """
    Documents to delete
    """
    where: ReviewManyWhereInput
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (deleteManyReviewsConnection)"
    )

  """
  Publish many Review documents
  """
  publishManyReviews(
    """
    Identifies documents in each stage to be published
    """
    where: ReviewManyWhereInput

    """
    Stages to publish documents to
    """
    to: [Stage!]! = [PUBLISHED]
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (publishManyReviewsConnection)"
    )

  """
  Unpublish many Review documents
  """
  unpublishManyReviews(
    """
    Identifies documents in each stage
    """
    where: ReviewManyWhereInput

    """
    Stages to unpublish documents from
    """
    from: [Stage!]! = [PUBLISHED]
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (unpublishManyReviewsConnection)"
    )

  """
  Create one vote
  """
  createVote(data: VoteCreateInput!): Vote

  """
  Update one vote
  """
  updateVote(where: VoteWhereUniqueInput!, data: VoteUpdateInput!): Vote

  """
  Delete one vote from _all_ existing stages. Returns deleted document.
  """
  deleteVote(
    """
    Document to delete
    """
    where: VoteWhereUniqueInput!
  ): Vote

  """
  Upsert one vote
  """
  upsertVote(where: VoteWhereUniqueInput!, upsert: VoteUpsertInput!): Vote

  """
  Publish one vote
  """
  publishVote(
    """
    Document to publish
    """
    where: VoteWhereUniqueInput!

    """
    Publishing target stage
    """
    to: [Stage!]! = [PUBLISHED]
  ): Vote

  """
  Unpublish one vote from selected stages. Unpublish either the complete document with its relations, localizations and base data or specific localizations only.
  """
  unpublishVote(
    """
    Document to unpublish
    """
    where: VoteWhereUniqueInput!

    """
    Stages to unpublish document from
    """
    from: [Stage!]! = [PUBLISHED]
  ): Vote

  """
  Update many Vote documents
  """
  updateManyVotesConnection(
    """
    Documents to apply update on
    """
    where: VoteManyWhereInput

    """
    Updates to document content
    """
    data: VoteUpdateManyInput!

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID
  ): VoteConnection!

  """
  Delete many Vote documents, return deleted documents
  """
  deleteManyVotesConnection(
    """
    Documents to delete
    """
    where: VoteManyWhereInput

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID
  ): VoteConnection!

  """
  Publish many Vote documents
  """
  publishManyVotesConnection(
    """
    Identifies documents in each stage to be published
    """
    where: VoteManyWhereInput

    """
    Stage to find matching documents in
    """
    from: Stage = DRAFT

    """
    Stages to publish documents to
    """
    to: [Stage!]! = [PUBLISHED]

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID
  ): VoteConnection!

  """
  Find many Vote documents that match criteria in specified stage and unpublish from target stages
  """
  unpublishManyVotesConnection(
    """
    Identifies documents in draft stage
    """
    where: VoteManyWhereInput

    """
    Stage to find matching documents in
    """
    stage: Stage = DRAFT

    """
    Stages to unpublish documents from
    """
    from: [Stage!]! = [PUBLISHED]

    """

    """
    skip: Int

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    before: ID

    """

    """
    after: ID
  ): VoteConnection!

  """
  Update many votes
  """
  updateManyVotes(
    """
    Documents to apply update on
    """
    where: VoteManyWhereInput

    """
    Updates to document content
    """
    data: VoteUpdateManyInput!
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (updateManyVotesConnection)"
    )

  """
  Delete many Vote documents
  """
  deleteManyVotes(
    """
    Documents to delete
    """
    where: VoteManyWhereInput
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (deleteManyVotesConnection)"
    )

  """
  Publish many Vote documents
  """
  publishManyVotes(
    """
    Identifies documents in each stage to be published
    """
    where: VoteManyWhereInput

    """
    Stages to publish documents to
    """
    to: [Stage!]! = [PUBLISHED]
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (publishManyVotesConnection)"
    )

  """
  Unpublish many Vote documents
  """
  unpublishManyVotes(
    """
    Identifies documents in each stage
    """
    where: VoteManyWhereInput

    """
    Stages to unpublish documents from
    """
    from: [Stage!]! = [PUBLISHED]
  ): BatchPayload!
    @deprecated(
      reason: "Please use the new paginated many mutation (unpublishManyVotesConnection)"
    )
}

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

  """
  The Stage of an object
  """
  stage: Stage!
}

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

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

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

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

  """
  Number of items in the current page.
  """
  pageSize: Int
}

"""

"""
type Product implements Node {
  """
  System stage field
  """
  stage: Stage!

  """
  System Locale field
  """
  locale: Locale!

  """
  Get the other localizations for this document
  """
  localizations(
    """
    Potential locales that should be returned
    """
    locales: [Locale!]! = [en, de]

    """
    Decides if the current locale should be included or not
    """
    includeCurrent: Boolean! = false
  ): [Product!]!

  """
  Get the document in other stages
  """
  documentInStages(
    """
    Potential stages that should be returned
    """
    stages: [Stage!]! = [PUBLISHED, DRAFT]

    """
    Decides if the current stage should be included or not
    """
    includeCurrent: Boolean! = false

    """
    Decides if the documents should match the parent documents locale or should use the fallback order defined in the tree
    """
    inheritLocale: Boolean! = false
  ): [Product!]!

  """
  The unique identifier
  """
  id: ID!

  """
  The time the document was created
  """
  createdAt(
    """
    Variation of DateTime field to return, allows value from base document, current localization, or combined by returning the newer value of both
    """
    variation: SystemDateTimeFieldVariation! = COMBINED
  ): DateTime!

  """
  User that created this document
  """
  createdBy(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `createdBy` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): User

  """
  The time the document was updated
  """
  updatedAt(
    """
    Variation of DateTime field to return, allows value from base document, current localization, or combined by returning the newer value of both
    """
    variation: SystemDateTimeFieldVariation! = COMBINED
  ): DateTime!

  """
  User that last updated this document
  """
  updatedBy(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `updatedBy` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): User

  """
  The time the document was published. Null on documents in draft stage.
  """
  publishedAt(
    """
    Variation of DateTime field to return, allows value from base document, current localization, or combined by returning the newer value of both
    """
    variation: SystemDateTimeFieldVariation! = COMBINED
  ): DateTime

  """
  User that last published this document
  """
  publishedBy(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `publishedBy` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): User

  """

  """
  name: String!

  """

  """
  slug: String!

  """

  """
  description: String

  """

  """
  price: Int!

  """

  """
  reviews(
    """

    """
    where: ReviewWhereInput

    """

    """
    orderBy: ReviewOrderByInput

    """

    """
    skip: Int

    """

    """
    after: String

    """

    """
    before: String

    """

    """
    first: Int

    """

    """
    last: Int

    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `reviews` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): [Review!]!

  """

  """
  votes(
    """

    """
    where: VoteWhereInput

    """

    """
    orderBy: VoteOrderByInput

    """

    """
    skip: Int

    """

    """
    after: String

    """

    """
    before: String

    """

    """
    first: Int

    """

    """
    last: Int

    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `votes` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): [Vote!]!

  """

  """
  image(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `image` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): Asset

  """

  """
  content: RichText

  """
  List of Product versions
  """
  history(
    """

    """
    limit: Int! = 10

    """

    """
    skip: Int! = 0

    """
    This is optional and can be used to fetch the document version history for a specific stage instead of the current one
    """
    stageOverride: Stage
  ): [Version!]!
}

"""

"""
input ProductConnectInput {
  """
  Document to connect
  """
  where: ProductWhereUniqueInput!

  """
  Allow to specify document position in list of connected documents, will default to appending at end of list
  """
  position: ConnectPositionInput
}

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

  """
  A list of edges.
  """
  edges: [ProductEdge!]!

  """

  """
  aggregate: Aggregate!
}

"""

"""
input ProductCreateInput {
  """

  """
  createdAt: DateTime

  """

  """
  updatedAt: DateTime

  """
  name input for default locale (en)
  """
  name: String!

  """

  """
  slug: String!

  """

  """
  description: String

  """

  """
  price: Int!

  """

  """
  reviews: ReviewCreateManyInlineInput

  """

  """
  votes: VoteCreateManyInlineInput

  """

  """
  image: AssetCreateOneInlineInput

  """

  """
  content: RichTextAST

  """
  Inline mutations for managing document localizations excluding the default locale
  """
  localizations: ProductCreateLocalizationsInput
}

"""

"""
input ProductCreateLocalizationDataInput {
  """

  """
  createdAt: DateTime

  """

  """
  updatedAt: DateTime

  """

  """
  name: String!
}

"""

"""
input ProductCreateLocalizationInput {
  """
  Localization input
  """
  data: ProductCreateLocalizationDataInput!

  """

  """
  locale: Locale!
}

"""

"""
input ProductCreateLocalizationsInput {
  """
  Create localizations for the newly-created document
  """
  create: [ProductCreateLocalizationInput!]
}

"""

"""
input ProductCreateManyInlineInput {
  """
  Create and connect multiple existing Product documents
  """
  create: [ProductCreateInput!]

  """
  Connect multiple existing Product documents
  """
  connect: [ProductWhereUniqueInput!]
}

"""

"""
input ProductCreateOneInlineInput {
  """
  Create and connect one Product document
  """
  create: ProductCreateInput

  """
  Connect one existing Product document
  """
  connect: ProductWhereUniqueInput
}

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

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

"""
Identifies documents
"""
input ProductManyWhereInput {
  """
  Contains search across all appropriate fields.
  """
  _search: String

  """
  Logical AND on all given filters.
  """
  AND: [ProductWhereInput!]

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

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

  """

  """
  id: ID

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

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

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

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

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

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

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

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

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

  """

  """
  createdAt: DateTime

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

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

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

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

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

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

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

  """

  """
  createdBy: UserWhereInput

  """

  """
  updatedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  updatedBy: UserWhereInput

  """

  """
  publishedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  publishedBy: UserWhereInput

  """

  """
  slug: String

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

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

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

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

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

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

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

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

  """
  All values not ending with the given string
  """
  slug_not_ends_with: String

  """

  """
  description: String

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

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

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

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

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

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

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

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

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

  """

  """
  price: Int

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

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

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

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

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

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

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

  """

  """
  reviews_every: ReviewWhereInput

  """

  """
  reviews_some: ReviewWhereInput

  """

  """
  reviews_none: ReviewWhereInput

  """

  """
  votes_every: VoteWhereInput

  """

  """
  votes_some: VoteWhereInput

  """

  """
  votes_none: VoteWhereInput

  """

  """
  image: AssetWhereInput
}

"""

"""
enum ProductOrderByInput {
  """

  """
  id_ASC

  """

  """
  id_DESC

  """

  """
  createdAt_ASC

  """

  """
  createdAt_DESC

  """

  """
  updatedAt_ASC

  """

  """
  updatedAt_DESC

  """

  """
  publishedAt_ASC

  """

  """
  publishedAt_DESC

  """

  """
  name_ASC

  """

  """
  name_DESC

  """

  """
  slug_ASC

  """

  """
  slug_DESC

  """

  """
  description_ASC

  """

  """
  description_DESC

  """

  """
  price_ASC

  """

  """
  price_DESC
}

"""

"""
input ProductUpdateInput {
  """
  name input for default locale (en)
  """
  name: String

  """

  """
  slug: String

  """

  """
  description: String

  """

  """
  price: Int

  """

  """
  reviews: ReviewUpdateManyInlineInput

  """

  """
  votes: VoteUpdateManyInlineInput

  """

  """
  image: AssetUpdateOneInlineInput

  """

  """
  content: RichTextAST

  """
  Manage document localizations
  """
  localizations: ProductUpdateLocalizationsInput
}

"""

"""
input ProductUpdateLocalizationDataInput {
  """

  """
  name: String
}

"""

"""
input ProductUpdateLocalizationInput {
  """

  """
  data: ProductUpdateLocalizationDataInput!

  """

  """
  locale: Locale!
}

"""

"""
input ProductUpdateLocalizationsInput {
  """
  Localizations to create
  """
  create: [ProductCreateLocalizationInput!]

  """
  Localizations to update
  """
  update: [ProductUpdateLocalizationInput!]

  """

  """
  upsert: [ProductUpsertLocalizationInput!]

  """
  Localizations to delete
  """
  delete: [Locale!]
}

"""

"""
input ProductUpdateManyInlineInput {
  """
  Create and connect multiple Product documents
  """
  create: [ProductCreateInput!]

  """
  Connect multiple existing Product documents
  """
  connect: [ProductConnectInput!]

  """
  Override currently-connected documents with multiple existing Product documents
  """
  set: [ProductWhereUniqueInput!]

  """
  Update multiple Product documents
  """
  update: [ProductUpdateWithNestedWhereUniqueInput!]

  """
  Upsert multiple Product documents
  """
  upsert: [ProductUpsertWithNestedWhereUniqueInput!]

  """
  Disconnect multiple Product documents
  """
  disconnect: [ProductWhereUniqueInput!]

  """
  Delete multiple Product documents
  """
  delete: [ProductWhereUniqueInput!]
}

"""

"""
input ProductUpdateManyInput {
  """
  name input for default locale (en)
  """
  name: String

  """

  """
  description: String

  """

  """
  price: Int

  """

  """
  content: RichTextAST

  """
  Optional updates to localizations
  """
  localizations: ProductUpdateManyLocalizationsInput
}

"""

"""
input ProductUpdateManyLocalizationDataInput {
  """

  """
  name: String
}

"""

"""
input ProductUpdateManyLocalizationInput {
  """

  """
  data: ProductUpdateManyLocalizationDataInput!

  """

  """
  locale: Locale!
}

"""

"""
input ProductUpdateManyLocalizationsInput {
  """
  Localizations to update
  """
  update: [ProductUpdateManyLocalizationInput!]
}

"""

"""
input ProductUpdateManyWithNestedWhereInput {
  """
  Document search
  """
  where: ProductWhereInput!

  """
  Update many input
  """
  data: ProductUpdateManyInput!
}

"""

"""
input ProductUpdateOneInlineInput {
  """
  Create and connect one Product document
  """
  create: ProductCreateInput

  """
  Update single Product document
  """
  update: ProductUpdateWithNestedWhereUniqueInput

  """
  Upsert single Product document
  """
  upsert: ProductUpsertWithNestedWhereUniqueInput

  """
  Connect existing Product document
  """
  connect: ProductWhereUniqueInput

  """
  Disconnect currently connected Product document
  """
  disconnect: Boolean

  """
  Delete currently connected Product document
  """
  delete: Boolean
}

"""

"""
input ProductUpdateWithNestedWhereUniqueInput {
  """
  Unique document search
  """
  where: ProductWhereUniqueInput!

  """
  Document to update
  """
  data: ProductUpdateInput!
}

"""

"""
input ProductUpsertInput {
  """
  Create document if it didn't exist
  """
  create: ProductCreateInput!

  """
  Update document if it exists
  """
  update: ProductUpdateInput!
}

"""

"""
input ProductUpsertLocalizationInput {
  """

  """
  update: ProductUpdateLocalizationDataInput!

  """

  """
  create: ProductCreateLocalizationDataInput!

  """

  """
  locale: Locale!
}

"""

"""
input ProductUpsertWithNestedWhereUniqueInput {
  """
  Unique document search
  """
  where: ProductWhereUniqueInput!

  """
  Upsert data
  """
  data: ProductUpsertInput!
}

"""
Identifies documents
"""
input ProductWhereInput {
  """
  Contains search across all appropriate fields.
  """
  _search: String

  """
  Logical AND on all given filters.
  """
  AND: [ProductWhereInput!]

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

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

  """

  """
  id: ID

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

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

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

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

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

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

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

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

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

  """

  """
  createdAt: DateTime

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

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

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

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

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

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

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

  """

  """
  createdBy: UserWhereInput

  """

  """
  updatedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  updatedBy: UserWhereInput

  """

  """
  publishedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  publishedBy: UserWhereInput

  """

  """
  name: String

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

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

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

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

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

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

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

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

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

  """

  """
  slug: String

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

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

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

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

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

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

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

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

  """
  All values not ending with the given string
  """
  slug_not_ends_with: String

  """

  """
  description: String

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

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

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

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

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

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

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

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

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

  """

  """
  price: Int

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

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

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

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

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

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

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

  """

  """
  reviews_every: ReviewWhereInput

  """

  """
  reviews_some: ReviewWhereInput

  """

  """
  reviews_none: ReviewWhereInput

  """

  """
  votes_every: VoteWhereInput

  """

  """
  votes_some: VoteWhereInput

  """

  """
  votes_none: VoteWhereInput

  """

  """
  image: AssetWhereInput
}

"""
References Product record uniquely
"""
input ProductWhereUniqueInput {
  """

  """
  id: ID

  """

  """
  slug: String
}

"""

"""
input PublishLocaleInput {
  """
  Locales to publish
  """
  locale: Locale!

  """
  Stages to publish selected locales to
  """
  stages: [Stage!]!
}

"""

"""
type Query {
  """
  Fetches an object given its ID
  """
  node(
    """
    The ID of an object
    """
    id: ID!

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `Node` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): Node

  """
  Retrieve multiple assets
  """
  assets(
    """

    """
    where: AssetWhereInput

    """

    """
    orderBy: AssetOrderByInput

    """

    """
    skip: Int

    """

    """
    after: String

    """

    """
    before: String

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `Asset` will be affected directly by this argument, as well as any other related models with localized fields in the query's subtree.
    The first locale matching the provided list will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): [Asset!]!

  """
  Retrieve a single asset
  """
  asset(
    """

    """
    where: AssetWhereUniqueInput!

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `Asset` will be affected directly by this argument, as well as any other related models with localized fields in the query's subtree.
    The first locale matching the provided list will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): Asset

  """
  Retrieve multiple assets using the Relay connection interface
  """
  assetsConnection(
    """

    """
    where: AssetWhereInput

    """

    """
    orderBy: AssetOrderByInput

    """

    """
    skip: Int

    """

    """
    after: String

    """

    """
    before: String

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `Asset` will be affected directly by this argument, as well as any other related models with localized fields in the query's subtree.
    The first locale matching the provided list will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): AssetConnection!

  """
  Retrieve document version
  """
  assetVersion(where: VersionWhereInput!): DocumentVersion

  """
  Retrieve multiple products
  """
  products(
    """

    """
    where: ProductWhereInput

    """

    """
    orderBy: ProductOrderByInput

    """

    """
    skip: Int

    """

    """
    after: String

    """

    """
    before: String

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `Product` will be affected directly by this argument, as well as any other related models with localized fields in the query's subtree.
    The first locale matching the provided list will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): [Product!]!

  """
  Retrieve a single product
  """
  product(
    """

    """
    where: ProductWhereUniqueInput!

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `Product` will be affected directly by this argument, as well as any other related models with localized fields in the query's subtree.
    The first locale matching the provided list will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): Product

  """
  Retrieve multiple products using the Relay connection interface
  """
  productsConnection(
    """

    """
    where: ProductWhereInput

    """

    """
    orderBy: ProductOrderByInput

    """

    """
    skip: Int

    """

    """
    after: String

    """

    """
    before: String

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `Product` will be affected directly by this argument, as well as any other related models with localized fields in the query's subtree.
    The first locale matching the provided list will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): ProductConnection!

  """
  Retrieve document version
  """
  productVersion(where: VersionWhereInput!): DocumentVersion

  """
  Retrieve multiple reviews
  """
  reviews(
    """

    """
    where: ReviewWhereInput

    """

    """
    orderBy: ReviewOrderByInput

    """

    """
    skip: Int

    """

    """
    after: String

    """

    """
    before: String

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `Review` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): [Review!]!

  """
  Retrieve a single review
  """
  review(
    """

    """
    where: ReviewWhereUniqueInput!

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `Review` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): Review

  """
  Retrieve multiple reviews using the Relay connection interface
  """
  reviewsConnection(
    """

    """
    where: ReviewWhereInput

    """

    """
    orderBy: ReviewOrderByInput

    """

    """
    skip: Int

    """

    """
    after: String

    """

    """
    before: String

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `Review` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): ReviewConnection!

  """
  Retrieve document version
  """
  reviewVersion(where: VersionWhereInput!): DocumentVersion

  """
  Retrieve multiple users
  """
  users(
    """

    """
    where: UserWhereInput

    """

    """
    orderBy: UserOrderByInput

    """

    """
    skip: Int

    """

    """
    after: String

    """

    """
    before: String

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `User` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): [User!]!

  """
  Retrieve a single user
  """
  user(
    """

    """
    where: UserWhereUniqueInput!

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `User` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): User

  """
  Retrieve multiple users using the Relay connection interface
  """
  usersConnection(
    """

    """
    where: UserWhereInput

    """

    """
    orderBy: UserOrderByInput

    """

    """
    skip: Int

    """

    """
    after: String

    """

    """
    before: String

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `User` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): UserConnection!

  """
  Retrieve multiple votes
  """
  votes(
    """

    """
    where: VoteWhereInput

    """

    """
    orderBy: VoteOrderByInput

    """

    """
    skip: Int

    """

    """
    after: String

    """

    """
    before: String

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `Vote` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): [Vote!]!

  """
  Retrieve a single vote
  """
  vote(
    """

    """
    where: VoteWhereUniqueInput!

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `Vote` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): Vote

  """
  Retrieve multiple votes using the Relay connection interface
  """
  votesConnection(
    """

    """
    where: VoteWhereInput

    """

    """
    orderBy: VoteOrderByInput

    """

    """
    skip: Int

    """

    """
    after: String

    """

    """
    before: String

    """

    """
    first: Int

    """

    """
    last: Int

    """

    """
    stage: Stage! = PUBLISHED

    """
    Defines which locales should be returned.

    Note that `Vote` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument may be overwritten by another locales definition in a relational child field, this will effectively use the overwritten argument for the affected query's subtree.
    """
    locales: [Locale!]! = [en]
  ): VoteConnection!

  """
  Retrieve document version
  """
  voteVersion(where: VersionWhereInput!): DocumentVersion
}

"""
Representing a RGBA color value: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#rgb()_and_rgba()
"""
type RGBA {
  """

  """
  r: RGBAHue!

  """

  """
  g: RGBAHue!

  """

  """
  b: RGBAHue!

  """

  """
  a: RGBATransparency!
}

"""

"""
scalar RGBAHue

"""
Input type representing a RGBA color value: https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#rgb()_and_rgba()
"""
input RGBAInput {
  """

  """
  r: RGBAHue!

  """

  """
  g: RGBAHue!

  """

  """
  b: RGBAHue!

  """

  """
  a: RGBATransparency!
}

"""

"""
scalar RGBATransparency

"""

"""
type Review implements Node {
  """
  System stage field
  """
  stage: Stage!

  """
  Get the document in other stages
  """
  documentInStages(
    """
    Potential stages that should be returned
    """
    stages: [Stage!]! = [PUBLISHED, DRAFT]

    """
    Decides if the current stage should be included or not
    """
    includeCurrent: Boolean! = false

    """
    Decides if the documents should match the parent documents locale or should use the fallback order defined in the tree
    """
    inheritLocale: Boolean! = false
  ): [Review!]!

  """
  The unique identifier
  """
  id: ID!

  """
  The time the document was created
  """
  createdAt: DateTime!

  """
  User that created this document
  """
  createdBy(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `createdBy` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): User

  """
  The time the document was updated
  """
  updatedAt: DateTime!

  """
  User that last updated this document
  """
  updatedBy(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `updatedBy` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): User

  """
  The time the document was published. Null on documents in draft stage.
  """
  publishedAt: DateTime

  """
  User that last published this document
  """
  publishedBy(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `publishedBy` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): User

  """

  """
  name: String

  """

  """
  comment: String!

  """

  """
  product(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `product` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): Product

  """
  List of Review versions
  """
  history(
    """

    """
    limit: Int! = 10

    """

    """
    skip: Int! = 0

    """
    This is optional and can be used to fetch the document version history for a specific stage instead of the current one
    """
    stageOverride: Stage
  ): [Version!]!
}

"""

"""
input ReviewConnectInput {
  """
  Document to connect
  """
  where: ReviewWhereUniqueInput!

  """
  Allow to specify document position in list of connected documents, will default to appending at end of list
  """
  position: ConnectPositionInput
}

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

  """
  A list of edges.
  """
  edges: [ReviewEdge!]!

  """

  """
  aggregate: Aggregate!
}

"""

"""
input ReviewCreateInput {
  """

  """
  createdAt: DateTime

  """

  """
  updatedAt: DateTime

  """

  """
  name: String

  """

  """
  comment: String!

  """

  """
  product: ProductCreateOneInlineInput
}

"""

"""
input ReviewCreateManyInlineInput {
  """
  Create and connect multiple existing Review documents
  """
  create: [ReviewCreateInput!]

  """
  Connect multiple existing Review documents
  """
  connect: [ReviewWhereUniqueInput!]
}

"""

"""
input ReviewCreateOneInlineInput {
  """
  Create and connect one Review document
  """
  create: ReviewCreateInput

  """
  Connect one existing Review document
  """
  connect: ReviewWhereUniqueInput
}

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

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

"""
Identifies documents
"""
input ReviewManyWhereInput {
  """
  Contains search across all appropriate fields.
  """
  _search: String

  """
  Logical AND on all given filters.
  """
  AND: [ReviewWhereInput!]

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

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

  """

  """
  id: ID

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

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

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

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

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

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

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

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

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

  """

  """
  createdAt: DateTime

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

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

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

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

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

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

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

  """

  """
  createdBy: UserWhereInput

  """

  """
  updatedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  updatedBy: UserWhereInput

  """

  """
  publishedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  publishedBy: UserWhereInput

  """

  """
  name: String

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

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

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

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

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

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

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

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

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

  """

  """
  comment: String

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

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

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

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

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

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

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

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

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

  """

  """
  product: ProductWhereInput
}

"""

"""
enum ReviewOrderByInput {
  """

  """
  id_ASC

  """

  """
  id_DESC

  """

  """
  createdAt_ASC

  """

  """
  createdAt_DESC

  """

  """
  updatedAt_ASC

  """

  """
  updatedAt_DESC

  """

  """
  publishedAt_ASC

  """

  """
  publishedAt_DESC

  """

  """
  name_ASC

  """

  """
  name_DESC

  """

  """
  comment_ASC

  """

  """
  comment_DESC
}

"""

"""
input ReviewUpdateInput {
  """

  """
  name: String

  """

  """
  comment: String

  """

  """
  product: ProductUpdateOneInlineInput
}

"""

"""
input ReviewUpdateManyInlineInput {
  """
  Create and connect multiple Review documents
  """
  create: [ReviewCreateInput!]

  """
  Connect multiple existing Review documents
  """
  connect: [ReviewConnectInput!]

  """
  Override currently-connected documents with multiple existing Review documents
  """
  set: [ReviewWhereUniqueInput!]

  """
  Update multiple Review documents
  """
  update: [ReviewUpdateWithNestedWhereUniqueInput!]

  """
  Upsert multiple Review documents
  """
  upsert: [ReviewUpsertWithNestedWhereUniqueInput!]

  """
  Disconnect multiple Review documents
  """
  disconnect: [ReviewWhereUniqueInput!]

  """
  Delete multiple Review documents
  """
  delete: [ReviewWhereUniqueInput!]
}

"""

"""
input ReviewUpdateManyInput {
  """

  """
  name: String

  """

  """
  comment: String
}

"""

"""
input ReviewUpdateManyWithNestedWhereInput {
  """
  Document search
  """
  where: ReviewWhereInput!

  """
  Update many input
  """
  data: ReviewUpdateManyInput!
}

"""

"""
input ReviewUpdateOneInlineInput {
  """
  Create and connect one Review document
  """
  create: ReviewCreateInput

  """
  Update single Review document
  """
  update: ReviewUpdateWithNestedWhereUniqueInput

  """
  Upsert single Review document
  """
  upsert: ReviewUpsertWithNestedWhereUniqueInput

  """
  Connect existing Review document
  """
  connect: ReviewWhereUniqueInput

  """
  Disconnect currently connected Review document
  """
  disconnect: Boolean

  """
  Delete currently connected Review document
  """
  delete: Boolean
}

"""

"""
input ReviewUpdateWithNestedWhereUniqueInput {
  """
  Unique document search
  """
  where: ReviewWhereUniqueInput!

  """
  Document to update
  """
  data: ReviewUpdateInput!
}

"""

"""
input ReviewUpsertInput {
  """
  Create document if it didn't exist
  """
  create: ReviewCreateInput!

  """
  Update document if it exists
  """
  update: ReviewUpdateInput!
}

"""

"""
input ReviewUpsertWithNestedWhereUniqueInput {
  """
  Unique document search
  """
  where: ReviewWhereUniqueInput!

  """
  Upsert data
  """
  data: ReviewUpsertInput!
}

"""
Identifies documents
"""
input ReviewWhereInput {
  """
  Contains search across all appropriate fields.
  """
  _search: String

  """
  Logical AND on all given filters.
  """
  AND: [ReviewWhereInput!]

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

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

  """

  """
  id: ID

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

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

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

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

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

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

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

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

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

  """

  """
  createdAt: DateTime

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

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

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

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

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

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

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

  """

  """
  createdBy: UserWhereInput

  """

  """
  updatedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  updatedBy: UserWhereInput

  """

  """
  publishedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  publishedBy: UserWhereInput

  """

  """
  name: String

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

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

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

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

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

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

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

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

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

  """

  """
  comment: String

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

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

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

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

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

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

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

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

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

  """

  """
  product: ProductWhereInput
}

"""
References Review record uniquely
"""
input ReviewWhereUniqueInput {
  """

  """
  id: ID
}

"""
Custom type representing a rich text value comprising of raw rich text ast, html, markdown and text values
"""
type RichText {
  """
  Returns AST representation
  """
  raw: RichTextAST!

  """
  Returns HTMl representation
  """
  html: String!

  """
  Returns Markdown representation
  """
  markdown: String!

  """
  Returns plain-text contents of RichText
  """
  text: String!
}

"""
Slate-compatible RichText AST
"""
scalar RichTextAST

"""
Stage system enumeration
"""
enum Stage {
  """
  The Published stage is where you can publish your content to.
  """
  PUBLISHED

  """
  The Draft is the default stage for all your content.
  """
  DRAFT
}

"""

"""
enum SystemDateTimeFieldVariation {
  """

  """
  BASE

  """

  """
  LOCALIZATION

  """

  """
  COMBINED
}

"""

"""
input UnpublishLocaleInput {
  """
  Locales to unpublish
  """
  locale: Locale!

  """
  Stages to unpublish selected locales from
  """
  stages: [Stage!]!
}

"""
User system model
"""
type User implements Node {
  """
  System stage field
  """
  stage: Stage!

  """
  Get the document in other stages
  """
  documentInStages(
    """
    Potential stages that should be returned
    """
    stages: [Stage!]! = [PUBLISHED, DRAFT]

    """
    Decides if the current stage should be included or not
    """
    includeCurrent: Boolean! = false

    """
    Decides if the documents should match the parent documents locale or should use the fallback order defined in the tree
    """
    inheritLocale: Boolean! = false
  ): [User!]!

  """
  The unique identifier
  """
  id: ID!

  """
  The time the document was created
  """
  createdAt: DateTime!

  """
  The time the document was updated
  """
  updatedAt: DateTime!

  """
  The time the document was published. Null on documents in draft stage.
  """
  publishedAt: DateTime

  """
  The username
  """
  name: String!

  """
  Profile Picture url
  """
  picture: String

  """
  User Kind. Can be either MEMBER, PAT or PUBLIC
  """
  kind: UserKind!

  """
  Flag to determine if user is active or not
  """
  isActive: Boolean!
}

"""

"""
input UserConnectInput {
  """
  Document to connect
  """
  where: UserWhereUniqueInput!

  """
  Allow to specify document position in list of connected documents, will default to appending at end of list
  """
  position: ConnectPositionInput
}

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

  """
  A list of edges.
  """
  edges: [UserEdge!]!

  """

  """
  aggregate: Aggregate!
}

"""

"""
input UserCreateManyInlineInput {
  """
  Connect multiple existing User documents
  """
  connect: [UserWhereUniqueInput!]
}

"""

"""
input UserCreateOneInlineInput {
  """
  Connect one existing User document
  """
  connect: UserWhereUniqueInput
}

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

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

"""
System User Kind
"""
enum UserKind {
  """

  """
  MEMBER

  """

  """
  PAT

  """

  """
  PUBLIC

  """

  """
  WEBHOOK
}

"""
Identifies documents
"""
input UserManyWhereInput {
  """
  Contains search across all appropriate fields.
  """
  _search: String

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

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

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

  """

  """
  id: ID

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

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

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

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

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

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

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

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

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

  """

  """
  createdAt: DateTime

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

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

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

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

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

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

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

  """

  """
  updatedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  publishedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  name: String

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

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

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

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

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

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

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

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

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

  """

  """
  picture: String

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

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

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

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

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

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

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

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

  """
  All values not ending with the given string
  """
  picture_not_ends_with: String

  """

  """
  kind: UserKind

  """
  All values that are not equal to given value.
  """
  kind_not: UserKind

  """
  All values that are contained in given list.
  """
  kind_in: [UserKind!]

  """
  All values that are not contained in given list.
  """
  kind_not_in: [UserKind!]

  """

  """
  isActive: Boolean

  """
  All values that are not equal to given value.
  """
  isActive_not: Boolean
}

"""

"""
enum UserOrderByInput {
  """

  """
  id_ASC

  """

  """
  id_DESC

  """

  """
  createdAt_ASC

  """

  """
  createdAt_DESC

  """

  """
  updatedAt_ASC

  """

  """
  updatedAt_DESC

  """

  """
  publishedAt_ASC

  """

  """
  publishedAt_DESC

  """

  """
  name_ASC

  """

  """
  name_DESC

  """

  """
  picture_ASC

  """

  """
  picture_DESC

  """

  """
  kind_ASC

  """

  """
  kind_DESC

  """

  """
  isActive_ASC

  """

  """
  isActive_DESC
}

"""

"""
input UserUpdateManyInlineInput {
  """
  Connect multiple existing User documents
  """
  connect: [UserConnectInput!]

  """
  Override currently-connected documents with multiple existing User documents
  """
  set: [UserWhereUniqueInput!]

  """
  Disconnect multiple User documents
  """
  disconnect: [UserWhereUniqueInput!]
}

"""

"""
input UserUpdateOneInlineInput {
  """
  Connect existing User document
  """
  connect: UserWhereUniqueInput

  """
  Disconnect currently connected User document
  """
  disconnect: Boolean
}

"""
Identifies documents
"""
input UserWhereInput {
  """
  Contains search across all appropriate fields.
  """
  _search: String

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

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

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

  """

  """
  id: ID

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

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

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

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

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

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

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

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

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

  """

  """
  createdAt: DateTime

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

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

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

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

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

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

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

  """

  """
  updatedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  publishedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  name: String

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

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

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

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

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

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

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

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

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

  """

  """
  picture: String

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

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

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

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

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

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

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

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

  """
  All values not ending with the given string
  """
  picture_not_ends_with: String

  """

  """
  kind: UserKind

  """
  All values that are not equal to given value.
  """
  kind_not: UserKind

  """
  All values that are contained in given list.
  """
  kind_in: [UserKind!]

  """
  All values that are not contained in given list.
  """
  kind_not_in: [UserKind!]

  """

  """
  isActive: Boolean

  """
  All values that are not equal to given value.
  """
  isActive_not: Boolean
}

"""
References User record uniquely
"""
input UserWhereUniqueInput {
  """

  """
  id: ID
}

"""

"""
type Version {
  """

  """
  id: ID!

  """

  """
  stage: Stage!

  """

  """
  revision: Int!

  """

  """
  createdAt: DateTime!
}

"""

"""
input VersionWhereInput {
  """

  """
  id: ID!

  """

  """
  stage: Stage!

  """

  """
  revision: Int!
}

"""

"""
type Vote implements Node {
  """
  System stage field
  """
  stage: Stage!

  """
  Get the document in other stages
  """
  documentInStages(
    """
    Potential stages that should be returned
    """
    stages: [Stage!]! = [PUBLISHED, DRAFT]

    """
    Decides if the current stage should be included or not
    """
    includeCurrent: Boolean! = false

    """
    Decides if the documents should match the parent documents locale or should use the fallback order defined in the tree
    """
    inheritLocale: Boolean! = false
  ): [Vote!]!

  """
  The unique identifier
  """
  id: ID!

  """
  The time the document was created
  """
  createdAt: DateTime!

  """
  User that created this document
  """
  createdBy(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `createdBy` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): User

  """
  The time the document was updated
  """
  updatedAt: DateTime!

  """
  User that last updated this document
  """
  updatedBy(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `updatedBy` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): User

  """
  The time the document was published. Null on documents in draft stage.
  """
  publishedAt: DateTime

  """
  User that last published this document
  """
  publishedBy(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `publishedBy` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): User

  """

  """
  product(
    """
    Allows to optionally override locale filtering behaviour in the query's subtree.

    Note that `product` is a model without localized fields and will not be affected directly by this argument, however the locales will be passed on to any relational fields in the query's subtree for filtering.
    For related models with localized fields in the query's subtree, the first locale matching the provided list of locales will be returned, entries with non matching locales will be filtered out.

    This argument will overwrite any existing locale filtering defined in the query's tree for the subtree.
    """
    locales: [Locale!]
  ): Product

  """
  List of Vote versions
  """
  history(
    """

    """
    limit: Int! = 10

    """

    """
    skip: Int! = 0

    """
    This is optional and can be used to fetch the document version history for a specific stage instead of the current one
    """
    stageOverride: Stage
  ): [Version!]!
}

"""

"""
input VoteConnectInput {
  """
  Document to connect
  """
  where: VoteWhereUniqueInput!

  """
  Allow to specify document position in list of connected documents, will default to appending at end of list
  """
  position: ConnectPositionInput
}

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

  """
  A list of edges.
  """
  edges: [VoteEdge!]!

  """

  """
  aggregate: Aggregate!
}

"""

"""
input VoteCreateInput {
  """

  """
  createdAt: DateTime

  """

  """
  updatedAt: DateTime

  """

  """
  product: ProductCreateOneInlineInput
}

"""

"""
input VoteCreateManyInlineInput {
  """
  Create and connect multiple existing Vote documents
  """
  create: [VoteCreateInput!]

  """
  Connect multiple existing Vote documents
  """
  connect: [VoteWhereUniqueInput!]
}

"""

"""
input VoteCreateOneInlineInput {
  """
  Create and connect one Vote document
  """
  create: VoteCreateInput

  """
  Connect one existing Vote document
  """
  connect: VoteWhereUniqueInput
}

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

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

"""
Identifies documents
"""
input VoteManyWhereInput {
  """
  Contains search across all appropriate fields.
  """
  _search: String

  """
  Logical AND on all given filters.
  """
  AND: [VoteWhereInput!]

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

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

  """

  """
  id: ID

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

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

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

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

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

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

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

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

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

  """

  """
  createdAt: DateTime

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

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

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

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

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

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

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

  """

  """
  createdBy: UserWhereInput

  """

  """
  updatedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  updatedBy: UserWhereInput

  """

  """
  publishedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  publishedBy: UserWhereInput

  """

  """
  product: ProductWhereInput
}

"""

"""
enum VoteOrderByInput {
  """

  """
  id_ASC

  """

  """
  id_DESC

  """

  """
  createdAt_ASC

  """

  """
  createdAt_DESC

  """

  """
  updatedAt_ASC

  """

  """
  updatedAt_DESC

  """

  """
  publishedAt_ASC

  """

  """
  publishedAt_DESC
}

"""

"""
input VoteUpdateInput {
  """

  """
  product: ProductUpdateOneInlineInput
}

"""

"""
input VoteUpdateManyInlineInput {
  """
  Create and connect multiple Vote documents
  """
  create: [VoteCreateInput!]

  """
  Connect multiple existing Vote documents
  """
  connect: [VoteConnectInput!]

  """
  Override currently-connected documents with multiple existing Vote documents
  """
  set: [VoteWhereUniqueInput!]

  """
  Update multiple Vote documents
  """
  update: [VoteUpdateWithNestedWhereUniqueInput!]

  """
  Upsert multiple Vote documents
  """
  upsert: [VoteUpsertWithNestedWhereUniqueInput!]

  """
  Disconnect multiple Vote documents
  """
  disconnect: [VoteWhereUniqueInput!]

  """
  Delete multiple Vote documents
  """
  delete: [VoteWhereUniqueInput!]
}

"""

"""
input VoteUpdateManyInput {
  """
  No fields in updateMany data input
  """
  _: String
}

"""

"""
input VoteUpdateManyWithNestedWhereInput {
  """
  Document search
  """
  where: VoteWhereInput!

  """
  Update many input
  """
  data: VoteUpdateManyInput!
}

"""

"""
input VoteUpdateOneInlineInput {
  """
  Create and connect one Vote document
  """
  create: VoteCreateInput

  """
  Update single Vote document
  """
  update: VoteUpdateWithNestedWhereUniqueInput

  """
  Upsert single Vote document
  """
  upsert: VoteUpsertWithNestedWhereUniqueInput

  """
  Connect existing Vote document
  """
  connect: VoteWhereUniqueInput

  """
  Disconnect currently connected Vote document
  """
  disconnect: Boolean

  """
  Delete currently connected Vote document
  """
  delete: Boolean
}

"""

"""
input VoteUpdateWithNestedWhereUniqueInput {
  """
  Unique document search
  """
  where: VoteWhereUniqueInput!

  """
  Document to update
  """
  data: VoteUpdateInput!
}

"""

"""
input VoteUpsertInput {
  """
  Create document if it didn't exist
  """
  create: VoteCreateInput!

  """
  Update document if it exists
  """
  update: VoteUpdateInput!
}

"""

"""
input VoteUpsertWithNestedWhereUniqueInput {
  """
  Unique document search
  """
  where: VoteWhereUniqueInput!

  """
  Upsert data
  """
  data: VoteUpsertInput!
}

"""
Identifies documents
"""
input VoteWhereInput {
  """
  Contains search across all appropriate fields.
  """
  _search: String

  """
  Logical AND on all given filters.
  """
  AND: [VoteWhereInput!]

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

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

  """

  """
  id: ID

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

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

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

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

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

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

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

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

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

  """

  """
  createdAt: DateTime

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

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

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

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

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

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

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

  """

  """
  createdBy: UserWhereInput

  """

  """
  updatedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  updatedBy: UserWhereInput

  """

  """
  publishedAt: DateTime

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

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

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

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

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

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

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

  """

  """
  publishedBy: UserWhereInput

  """

  """
  product: ProductWhereInput
}

"""
References Vote record uniquely
"""
input VoteWhereUniqueInput {
  """

  """
  id: ID
}

"""

"""
enum _FilterKind {
  """

  """
  search

  """

  """
  AND

  """

  """
  OR

  """

  """
  NOT

  """

  """
  eq

  """

  """
  eq_not

  """

  """
  in

  """

  """
  not_in

  """

  """
  lt

  """

  """
  lte

  """

  """
  gt

  """

  """
  gte

  """

  """
  contains

  """

  """
  not_contains

  """

  """
  starts_with

  """

  """
  not_starts_with

  """

  """
  ends_with

  """

  """
  not_ends_with

  """

  """
  contains_all

  """

  """
  contains_some

  """

  """
  contains_none

  """

  """
  relational_single

  """

  """
  relational_every

  """

  """
  relational_some

  """

  """
  relational_none
}

"""

"""
enum _MutationInputFieldKind {
  """

  """
  scalar

  """

  """
  richText

  """

  """
  richTextWithEmbeds

  """

  """
  enum

  """

  """
  relation

  """

  """
  union

  """

  """
  virtual
}

"""

"""
enum _MutationKind {
  """

  """
  create

  """

  """
  publish

  """

  """
  unpublish

  """

  """
  update

  """

  """
  upsert

  """

  """
  delete

  """

  """
  updateMany

  """

  """
  publishMany

  """

  """
  unpublishMany

  """

  """
  deleteMany
}

"""

"""
enum _OrderDirection {
  """

  """
  asc

  """

  """
  desc
}

"""

"""
enum _RelationInputCardinality {
  """

  """
  one

  """

  """
  many
}

"""

"""
enum _RelationInputKind {
  """

  """
  create

  """

  """
  update
}

"""

"""
enum _RelationKind {
  """

  """
  regular

  """

  """
  union
}

"""

"""
enum _SystemDateTimeFieldVariation {
  """

  """
  base

  """

  """
  localization

  """

  """
  combined
}
