"""
Autogenerated input type of AddAwardEmoji
"""
input AddAwardEmojiInput {
  """
  The global id of the awardable resource
  """
  awardableId: ID!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The emoji name
  """
  name: String!
}

"""
Autogenerated return type of AddAwardEmoji
"""
type AddAwardEmojiPayload {
  """
  The award emoji after mutation
  """
  awardEmoji: AwardEmoji

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!
}

"""
An emoji awarded by a user.
"""
type AwardEmoji {
  """
  The emoji description
  """
  description: String!

  """
  The emoji as an icon
  """
  emoji: String!

  """
  The emoji name
  """
  name: String!

  """
  The emoji in unicode
  """
  unicode: String!

  """
  The unicode version for this emoji
  """
  unicodeVersion: String!

  """
  The user who awarded the emoji
  """
  user: User!
}

type Blob implements Entry {
  """
  Flat path of the entry
  """
  flatPath: String!

  """
  ID of the entry
  """
  id: ID!

  """
  LFS ID of the blob
  """
  lfsOid: String

  """
  Name of the entry
  """
  name: String!

  """
  Path of the entry
  """
  path: String!

  """
  Last commit sha for the entry
  """
  sha: String!

  """
  Type of tree entry
  """
  type: EntryType!

  """
  Web URL of the blob
  """
  webUrl: String
}

"""
The connection type for Blob.
"""
type BlobConnection {
  """
  A list of edges.
  """
  edges: [BlobEdge]

  """
  A list of nodes.
  """
  nodes: [Blob]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type BlobEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Blob
}

"""
Types of blob viewers
"""
enum BlobViewersType {
  auxiliary
  rich
  simple
}

"""
Represents a project or group board
"""
type Board {
  """
  ID (global ID) of the board
  """
  id: ID!

  """
  Name of the board
  """
  name: String

  """
  Weight of the board
  """
  weight: Int
}

"""
The connection type for Board.
"""
type BoardConnection {
  """
  A list of edges.
  """
  edges: [BoardEdge]

  """
  A list of nodes.
  """
  nodes: [Board]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type BoardEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Board
}

type Commit {
  """
  Author of the commit
  """
  author: User

  """
  Commit authors gravatar
  """
  authorGravatar: String

  """
  Commit authors name
  """
  authorName: String

  """
  Timestamp of when the commit was authored
  """
  authoredDate: Time

  """
  Description of the commit message
  """
  description: String

  """
  ID (global ID) of the commit
  """
  id: ID!

  """
  Latest pipeline of the commit
  """
  latestPipeline(
    """
    Filter pipelines by the ref they are run for
    """
    ref: String

    """
    Filter pipelines by the sha of the commit they are run for
    """
    sha: String

    """
    Filter pipelines by their status
    """
    status: PipelineStatusEnum
  ): Pipeline @deprecated(reason: "Use pipelines")

  """
  Raw commit message
  """
  message: String

  """
  Pipelines of the commit ordered latest first
  """
  pipelines(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Filter pipelines by the ref they are run for
    """
    ref: String

    """
    Filter pipelines by the sha of the commit they are run for
    """
    sha: String

    """
    Filter pipelines by their status
    """
    status: PipelineStatusEnum
  ): PipelineConnection

  """
  SHA1 ID of the commit
  """
  sha: String!

  """
  Rendered HTML of the commit signature
  """
  signatureHtml: String

  """
  Title of the commit message
  """
  title: String

  """
  Web URL of the commit
  """
  webUrl: String!
}

"""
Autogenerated input type of CreateDiffNote
"""
input CreateDiffNoteInput {
  """
  Content of the note
  """
  body: String!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The global id of the resource to add a note to
  """
  noteableId: ID!

  """
  The position of this note on a diff
  """
  position: DiffPositionInput!
}

"""
Autogenerated return type of CreateDiffNote
"""
type CreateDiffNotePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The note after mutation
  """
  note: Note
}

"""
Autogenerated input type of CreateEpic
"""
input CreateEpicInput {
  """
  The IDs of labels to be added to the epic.
  """
  addLabelIds: [ID!]

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The description of the epic
  """
  description: String

  """
  The end date of the epic
  """
  dueDateFixed: String

  """
  Indicates end date should be sourced from due_date_fixed field not the issue milestones
  """
  dueDateIsFixed: Boolean

  """
  The group the epic to mutate is in
  """
  groupPath: ID!

  """
  The IDs of labels to be removed from the epic.
  """
  removeLabelIds: [ID!]

  """
  The start date of the epic
  """
  startDateFixed: String

  """
  Indicates start date should be sourced from start_date_fixed field not the issue milestones
  """
  startDateIsFixed: Boolean

  """
  The title of the epic
  """
  title: String
}

"""
Autogenerated return type of CreateEpic
"""
type CreateEpicPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The created epic
  """
  epic: Epic

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!
}

"""
Autogenerated input type of CreateImageDiffNote
"""
input CreateImageDiffNoteInput {
  """
  Content of the note
  """
  body: String!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The global id of the resource to add a note to
  """
  noteableId: ID!

  """
  The position of this note on a diff
  """
  position: DiffImagePositionInput!
}

"""
Autogenerated return type of CreateImageDiffNote
"""
type CreateImageDiffNotePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The note after mutation
  """
  note: Note
}

"""
Autogenerated input type of CreateNote
"""
input CreateNoteInput {
  """
  Content of the note
  """
  body: String!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The global id of the discussion this note is in reply to
  """
  discussionId: ID

  """
  The global id of the resource to add a note to
  """
  noteableId: ID!
}

"""
Autogenerated return type of CreateNote
"""
type CreateNotePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The note after mutation
  """
  note: Note
}

"""
Autogenerated input type of CreateSnippet
"""
input CreateSnippetInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Content of the snippet
  """
  content: String!

  """
  Description of the snippet
  """
  description: String

  """
  File name of the snippet
  """
  fileName: String

  """
  The project full path the snippet is associated with
  """
  projectPath: ID

  """
  Title of the snippet
  """
  title: String!

  """
  The visibility level of the snippet
  """
  visibilityLevel: VisibilityLevelsEnum!
}

"""
Autogenerated return type of CreateSnippet
"""
type CreateSnippetPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The snippet after mutation
  """
  snippet: Snippet
}

"""
A single design
"""
type Design implements DesignFields & Noteable {
  """
  The diff refs for this design
  """
  diffRefs: DiffRefs!

  """
  All discussions on this noteable
  """
  discussions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): DiscussionConnection!

  """
  How this design was changed in the current version
  """
  event: DesignVersionEvent!

  """
  The filename of the design
  """
  filename: String!

  """
  The full path to the design file
  """
  fullPath: String!

  """
  The ID of this design
  """
  id: ID!

  """
  The URL of the image
  """
  image: String!

  """
  The issue the design belongs to
  """
  issue: Issue!

  """
  All notes on this noteable
  """
  notes(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): NoteConnection!

  """
  The total count of user-created notes for this design
  """
  notesCount: Int!

  """
  The project the design belongs to
  """
  project: Project!

  """
  All versions related to this design ordered newest first
  """
  versions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    The Global ID of the most recent acceptable version
    """
    earlierOrEqualToId: ID

    """
    The SHA256 of the most recent acceptable version
    """
    earlierOrEqualToSha: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): DesignVersionConnection!
}

"""
A design pinned to a specific version. The image field reflects the design as of the associated version.
"""
type DesignAtVersion implements DesignFields {
  """
  The underlying design.
  """
  design: Design!

  """
  The diff refs for this design
  """
  diffRefs: DiffRefs!

  """
  How this design was changed in the current version
  """
  event: DesignVersionEvent!

  """
  The filename of the design
  """
  filename: String!

  """
  The full path to the design file
  """
  fullPath: String!

  """
  The ID of this design
  """
  id: ID!

  """
  The URL of the image
  """
  image: String!

  """
  The issue the design belongs to
  """
  issue: Issue!

  """
  The total count of user-created notes for this design
  """
  notesCount: Int!

  """
  The project the design belongs to
  """
  project: Project!

  """
  The version this design-at-versions is pinned to
  """
  version: DesignVersion!
}

"""
The connection type for DesignAtVersion.
"""
type DesignAtVersionConnection {
  """
  A list of edges.
  """
  edges: [DesignAtVersionEdge]

  """
  A list of nodes.
  """
  nodes: [DesignAtVersion]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type DesignAtVersionEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: DesignAtVersion
}

"""
A collection of designs.
"""
type DesignCollection {
  """
  Find a specific design
  """
  design(
    """
    Find a design by its filename
    """
    filename: String

    """
    Find a design by its ID
    """
    id: ID
  ): Design

  """
  Find a design as of a version
  """
  designAtVersion(
    """
    The Global ID of the design at this version
    """
    id: ID!
  ): DesignAtVersion

  """
  All designs for the design collection
  """
  designs(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Filters designs to only those that existed at the version. If argument is
    omitted or nil then all designs will reflect the latest version
    """
    atVersion: ID

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Filters designs by their filename
    """
    filenames: [String!]

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Filters designs by their ID
    """
    ids: [ID!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): DesignConnection!

  """
  Issue associated with the design collection
  """
  issue: Issue!

  """
  Project associated with the design collection
  """
  project: Project!

  """
  A specific version
  """
  version(
    """
    The Global ID of the version
    """
    id: ID

    """
    The SHA256 of a specific version
    """
    sha: String
  ): DesignVersion

  """
  All versions related to all designs, ordered newest first
  """
  versions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    The Global ID of the most recent acceptable version
    """
    earlierOrEqualToId: ID

    """
    The SHA256 of the most recent acceptable version
    """
    earlierOrEqualToSha: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): DesignVersionConnection!
}

"""
The connection type for Design.
"""
type DesignConnection {
  """
  A list of edges.
  """
  edges: [DesignEdge]

  """
  A list of nodes.
  """
  nodes: [Design]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type DesignEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Design
}

interface DesignFields {
  """
  The diff refs for this design
  """
  diffRefs: DiffRefs!

  """
  How this design was changed in the current version
  """
  event: DesignVersionEvent!

  """
  The filename of the design
  """
  filename: String!

  """
  The full path to the design file
  """
  fullPath: String!

  """
  The ID of this design
  """
  id: ID!

  """
  The URL of the image
  """
  image: String!

  """
  The issue the design belongs to
  """
  issue: Issue!

  """
  The total count of user-created notes for this design
  """
  notesCount: Int!

  """
  The project the design belongs to
  """
  project: Project!
}

type DesignManagement {
  """
  Find a design as of a version
  """
  designAtVersion(
    """
    The Global ID of the design at this version
    """
    id: ID!
  ): DesignAtVersion

  """
  Find a version
  """
  version(
    """
    The Global ID of the version
    """
    id: ID!
  ): DesignVersion
}

"""
Autogenerated input type of DesignManagementDelete
"""
input DesignManagementDeleteInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The filenames of the designs to delete
  """
  filenames: [String!]!

  """
  The iid of the issue to modify designs for
  """
  iid: ID!

  """
  The project where the issue is to upload designs for
  """
  projectPath: ID!
}

"""
Autogenerated return type of DesignManagementDelete
"""
type DesignManagementDeletePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The new version in which the designs are deleted
  """
  version: DesignVersion
}

"""
Autogenerated input type of DesignManagementUpload
"""
input DesignManagementUploadInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The files to upload
  """
  files: [Upload!]!

  """
  The iid of the issue to modify designs for
  """
  iid: ID!

  """
  The project where the issue is to upload designs for
  """
  projectPath: ID!
}

"""
Autogenerated return type of DesignManagementUpload
"""
type DesignManagementUploadPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The designs that were uploaded by the mutation
  """
  designs: [Design!]!

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  Any designs that were skipped from the upload due to there being no change to their content since their last version
  """
  skippedDesigns: [Design!]!
}

"""
A specific version in which designs were added, modified or deleted
"""
type DesignVersion {
  """
  A particular design as of this version, provided it is visible at this version
  """
  designAtVersion(
    """
    The ID of a specific design
    """
    designId: ID

    """
    The filename of a specific design
    """
    filename: String

    """
    The ID of the DesignAtVersion
    """
    id: ID
  ): DesignAtVersion!

  """
  All designs that were changed in the version
  """
  designs(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): DesignConnection!

  """
  All designs that are visible at this version, as of this version
  """
  designsAtVersion(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Filters designs by their filename
    """
    filenames: [String!]

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Filters designs by their ID
    """
    ids: [ID!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): DesignAtVersionConnection!

  """
  ID of the design version
  """
  id: ID!

  """
  SHA of the design version
  """
  sha: ID!
}

"""
The connection type for DesignVersion.
"""
type DesignVersionConnection {
  """
  A list of edges.
  """
  edges: [DesignVersionEdge]

  """
  A list of nodes.
  """
  nodes: [DesignVersion]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type DesignVersionEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: DesignVersion
}

"""
Mutation event of a design within a version
"""
enum DesignVersionEvent {
  """
  A creation event
  """
  CREATION

  """
  A deletion event
  """
  DELETION

  """
  A modification event
  """
  MODIFICATION

  """
  No change
  """
  NONE
}

"""
Autogenerated input type of DestroyNote
"""
input DestroyNoteInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The global id of the note to destroy
  """
  id: ID!
}

"""
Autogenerated return type of DestroyNote
"""
type DestroyNotePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The note after mutation
  """
  note: Note
}

"""
Autogenerated input type of DestroySnippet
"""
input DestroySnippetInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The global id of the snippet to destroy
  """
  id: ID!
}

"""
Autogenerated return type of DestroySnippet
"""
type DestroySnippetPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The snippet after mutation
  """
  snippet: Snippet
}

type DetailedStatus {
  """
  Path of the details for the pipeline status
  """
  detailsPath: String!

  """
  Favicon of the pipeline status
  """
  favicon: String!

  """
  Group of the pipeline status
  """
  group: String!

  """
  Indicates if the pipeline status has further details
  """
  hasDetails: Boolean!

  """
  Icon of the pipeline status
  """
  icon: String!

  """
  Label of the pipeline status
  """
  label: String!

  """
  Text of the pipeline status
  """
  text: String!

  """
  Tooltip associated with the pipeline status
  """
  tooltip: String!
}

input DiffImagePositionInput {
  """
  Merge base of the branch the comment was made on
  """
  baseSha: String

  """
  SHA of the HEAD at the time the comment was made
  """
  headSha: String!

  """
  Total height of the image
  """
  height: Int!

  """
  The paths of the file that was changed. Both of the properties of this input
  are optional, but at least one of them is required
  """
  paths: DiffPathsInput!

  """
  SHA of the branch being compared against
  """
  startSha: String!

  """
  Total width of the image
  """
  width: Int!

  """
  X position of the note
  """
  x: Int!

  """
  Y position of the note
  """
  y: Int!
}

input DiffPathsInput {
  """
  The path of the file on the head sha
  """
  newPath: String

  """
  The path of the file on the start sha
  """
  oldPath: String
}

type DiffPosition {
  """
  Information about the branch, HEAD, and base at the time of commenting
  """
  diffRefs: DiffRefs!

  """
  Path of the file that was changed
  """
  filePath: String!

  """
  Total height of the image
  """
  height: Int

  """
  Line on HEAD SHA that was changed
  """
  newLine: Int

  """
  Path of the file on the HEAD SHA
  """
  newPath: String

  """
  Line on start SHA that was changed
  """
  oldLine: Int

  """
  Path of the file on the start SHA
  """
  oldPath: String

  """
  Type of file the position refers to
  """
  positionType: DiffPositionType!

  """
  Total width of the image
  """
  width: Int

  """
  X position of the note
  """
  x: Int

  """
  Y position of the note
  """
  y: Int
}

input DiffPositionInput {
  """
  Merge base of the branch the comment was made on
  """
  baseSha: String

  """
  SHA of the HEAD at the time the comment was made
  """
  headSha: String!

  """
  Line on HEAD SHA that was changed
  """
  newLine: Int!

  """
  Line on start SHA that was changed
  """
  oldLine: Int

  """
  The paths of the file that was changed. Both of the properties of this input
  are optional, but at least one of them is required
  """
  paths: DiffPathsInput!

  """
  SHA of the branch being compared against
  """
  startSha: String!
}

"""
Type of file the position refers to
"""
enum DiffPositionType {
  image
  text
}

type DiffRefs {
  """
  Merge base of the branch the comment was made on
  """
  baseSha: String!

  """
  SHA of the HEAD at the time the comment was made
  """
  headSha: String!

  """
  SHA of the branch being compared against
  """
  startSha: String!
}

type Discussion {
  """
  Timestamp of the discussion's creation
  """
  createdAt: Time!

  """
  ID of this discussion
  """
  id: ID!

  """
  All notes in the discussion
  """
  notes(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): NoteConnection!

  """
  ID used to reply to this discussion
  """
  replyId: ID!
}

"""
The connection type for Discussion.
"""
type DiscussionConnection {
  """
  A list of edges.
  """
  edges: [DiscussionEdge]

  """
  A list of nodes.
  """
  nodes: [Discussion]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type DiscussionEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Discussion
}

interface Entry {
  """
  Flat path of the entry
  """
  flatPath: String!

  """
  ID of the entry
  """
  id: ID!

  """
  Name of the entry
  """
  name: String!

  """
  Path of the entry
  """
  path: String!

  """
  Last commit sha for the entry
  """
  sha: String!

  """
  Type of tree entry
  """
  type: EntryType!
}

"""
Type of a tree entry
"""
enum EntryType {
  blob
  commit
  tree
}

"""
Describes where code is deployed for a project
"""
type Environment {
  """
  ID of the environment
  """
  id: ID!

  """
  Human-readable name of the environment
  """
  name: String!
}

"""
The connection type for Environment.
"""
type EnvironmentConnection {
  """
  A list of edges.
  """
  edges: [EnvironmentEdge]

  """
  A list of nodes.
  """
  nodes: [Environment]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type EnvironmentEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Environment
}

"""
Represents an epic.
"""
type Epic implements Noteable {
  """
  Author of the epic
  """
  author: User!

  """
  Children (sub-epics) of the epic
  """
  children(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Filter epics by author
    """
    authorUsername: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    List items within a time frame where items.end_date is between startDate and
    endDate parameters (startDate parameter must be present)
    """
    endDate: Time

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    IID of the epic, e.g., "1"
    """
    iid: ID

    """
    List of IIDs of epics, e.g., [1, 2]
    """
    iids: [ID!]

    """
    Filter epics by labels
    """
    labelName: [String!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Filter epics by title and description
    """
    search: String

    """
    List epics by sort order
    """
    sort: EpicSort

    """
    List items within a time frame where items.start_date is between startDate
    and endDate parameters (endDate parameter must be present)
    """
    startDate: Time

    """
    Filter epics by state
    """
    state: EpicState
  ): EpicConnection

  """
  Timestamp of the epic's closure
  """
  closedAt: Time

  """
  Timestamp of the epic's creation
  """
  createdAt: Time

  """
  Number of open and closed descendant epics and issues
  """
  descendantCounts: EpicDescendantCount

  """
  Description of the epic
  """
  description: String

  """
  All discussions on this noteable
  """
  discussions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): DiscussionConnection!

  """
  Number of downvotes the epic has received
  """
  downvotes: Int!

  """
  Due date of the epic
  """
  dueDate: Time

  """
  Fixed due date of the epic
  """
  dueDateFixed: Time

  """
  Inherited due date of the epic from milestones
  """
  dueDateFromMilestones: Time

  """
  Indicates if the due date has been manually set
  """
  dueDateIsFixed: Boolean

  """
  Group to which the epic belongs
  """
  group: Group!

  """
  Indicates if the epic has children
  """
  hasChildren: Boolean!

  """
  Indicates if the epic has direct issues
  """
  hasIssues: Boolean!

  """
  Current health status. Available only when feature flag save_issuable_health_status is enabled.
  """
  healthStatus: HealthStatus

  """
  ID of the epic
  """
  id: ID!

  """
  Internal ID of the epic
  """
  iid: ID!

  """
  A list of issues associated with the epic
  """
  issues(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): EpicIssueConnection

  """
  Labels assigned to the epic
  """
  labels(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): LabelConnection

  """
  All notes on this noteable
  """
  notes(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): NoteConnection!

  """
  Parent epic of the epic
  """
  parent: Epic

  """
  List of participants for the epic
  """
  participants(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): UserConnection

  """
  Internal reference of the epic. Returned in shortened format by default
  """
  reference(
    """
    Indicates if the reference should be returned in full
    """
    full: Boolean = false
  ): String!

  """
  URI path of the epic-issue relationship
  """
  relationPath: String

  """
  The relative position of the epic in the epic tree
  """
  relativePosition: Int

  """
  Start date of the epic
  """
  startDate: Time

  """
  Fixed start date of the epic
  """
  startDateFixed: Time

  """
  Inherited start date of the epic from milestones
  """
  startDateFromMilestones: Time

  """
  Indicates if the start date has been manually set
  """
  startDateIsFixed: Boolean

  """
  State of the epic
  """
  state: EpicState!

  """
  Indicates the currently logged in user is subscribed to the epic
  """
  subscribed: Boolean!

  """
  Title of the epic
  """
  title: String

  """
  Timestamp of the epic's last activity
  """
  updatedAt: Time

  """
  Number of upvotes the epic has received
  """
  upvotes: Int!

  """
  Permissions for the current user on the resource
  """
  userPermissions: EpicPermissions!

  """
  Web path of the epic
  """
  webPath: String!

  """
  Web URL of the epic
  """
  webUrl: String!
}

"""
The connection type for Epic.
"""
type EpicConnection {
  """
  A list of edges.
  """
  edges: [EpicEdge]

  """
  A list of nodes.
  """
  nodes: [Epic]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
Counts of descendent epics.
"""
type EpicDescendantCount {
  """
  Number of closed sub-epics
  """
  closedEpics: Int

  """
  Number of closed epic issues
  """
  closedIssues: Int

  """
  Number of opened sub-epics
  """
  openedEpics: Int

  """
  Number of opened epic issues
  """
  openedIssues: Int
}

"""
An edge in a connection.
"""
type EpicEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Epic
}

"""
Relationship between an epic and an issue
"""
type EpicIssue implements Noteable {
  """
  Assignees of the issue
  """
  assignees(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): UserConnection

  """
  User that created the issue
  """
  author: User!

  """
  Timestamp of when the issue was closed
  """
  closedAt: Time

  """
  Indicates the issue is confidential
  """
  confidential: Boolean!

  """
  Timestamp of when the issue was created
  """
  createdAt: Time!

  """
  Description of the issue
  """
  description: String

  """
  The GitLab Flavored Markdown rendering of `description`
  """
  descriptionHtml: String

  """
  Collection of design images associated with this issue
  """
  designCollection: DesignCollection

  """
  Deprecated. Use `designCollection`
  """
  designs: DesignCollection @deprecated(reason: "Use designCollection")

  """
  Indicates discussion is locked on the issue
  """
  discussionLocked: Boolean!

  """
  All discussions on this noteable
  """
  discussions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): DiscussionConnection!

  """
  Number of downvotes the issue has received
  """
  downvotes: Int!

  """
  Due date of the issue
  """
  dueDate: Time

  """
  Epic to which this issue belongs
  """
  epic: Epic

  """
  ID of the epic-issue relation
  """
  epicIssueId: ID!

  """
  Current health status. Available only when feature flag save_issuable_health_status is enabled.
  """
  healthStatus: HealthStatus

  """
  Global ID of the epic-issue relation
  """
  id: ID

  """
  Internal ID of the issue
  """
  iid: ID!

  """
  Labels of the issue
  """
  labels(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): LabelConnection

  """
  Milestone of the issue
  """
  milestone: Milestone

  """
  All notes on this noteable
  """
  notes(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): NoteConnection!

  """
  List of participants in the issue
  """
  participants(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): UserConnection

  """
  Internal reference of the issue. Returned in shortened format by default
  """
  reference(
    """
    Boolean option specifying whether the reference should be returned in full
    """
    full: Boolean = false
  ): String!

  """
  URI path of the epic-issue relation
  """
  relationPath: String

  """
  Relative position of the issue (used for positioning in epic tree and issue boards)
  """
  relativePosition: Int

  """
  State of the issue
  """
  state: IssueState!

  """
  Indicates the currently logged in user is subscribed to the issue
  """
  subscribed: Boolean!

  """
  Task completion status of the issue
  """
  taskCompletionStatus: TaskCompletionStatus!

  """
  Time estimate of the issue
  """
  timeEstimate: Int!

  """
  Title of the issue
  """
  title: String!

  """
  The GitLab Flavored Markdown rendering of `title`
  """
  titleHtml: String

  """
  Total time reported as spent on the issue
  """
  totalTimeSpent: Int!

  """
  Timestamp of when the issue was last updated
  """
  updatedAt: Time!

  """
  Number of upvotes the issue has received
  """
  upvotes: Int!

  """
  Number of user notes of the issue
  """
  userNotesCount: Int!

  """
  Permissions for the current user on the resource
  """
  userPermissions: IssuePermissions!

  """
  Web path of the issue
  """
  webPath: String!

  """
  Web URL of the issue
  """
  webUrl: String!

  """
  Weight of the issue
  """
  weight: Int
}

"""
The connection type for EpicIssue.
"""
type EpicIssueConnection {
  """
  A list of edges.
  """
  edges: [EpicIssueEdge]

  """
  A list of nodes.
  """
  nodes: [EpicIssue]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type EpicIssueEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: EpicIssue
}

"""
Check permissions for the current user on an epic
"""
type EpicPermissions {
  """
  Indicates the user can perform `admin_epic` on this resource
  """
  adminEpic: Boolean!

  """
  Indicates the user can perform `award_emoji` on this resource
  """
  awardEmoji: Boolean!

  """
  Indicates the user can perform `create_epic` on this resource
  """
  createEpic: Boolean!

  """
  Indicates the user can perform `create_note` on this resource
  """
  createNote: Boolean!

  """
  Indicates the user can perform `destroy_epic` on this resource
  """
  destroyEpic: Boolean!

  """
  Indicates the user can perform `read_epic` on this resource
  """
  readEpic: Boolean!

  """
  Indicates the user can perform `read_epic_iid` on this resource
  """
  readEpicIid: Boolean!

  """
  Indicates the user can perform `update_epic` on this resource
  """
  updateEpic: Boolean!
}

"""
Autogenerated input type of EpicSetSubscription
"""
input EpicSetSubscriptionInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The group the epic to (un)subscribe is in
  """
  groupPath: ID!

  """
  The iid of the epic to (un)subscribe
  """
  iid: ID!

  """
  The desired state of the subscription
  """
  subscribedState: Boolean!
}

"""
Autogenerated return type of EpicSetSubscription
"""
type EpicSetSubscriptionPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The epic after mutation
  """
  epic: Epic

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!
}

"""
Roadmap sort values
"""
enum EpicSort {
  """
  End date at ascending order
  """
  end_date_asc

  """
  End date at descending order
  """
  end_date_desc

  """
  Start date at ascending order
  """
  start_date_asc

  """
  Start date at descending order
  """
  start_date_desc
}

"""
State of an epic.
"""
enum EpicState {
  all
  closed
  opened
}

"""
State event of an epic
"""
enum EpicStateEvent {
  """
  Close the epic
  """
  CLOSE

  """
  Reopen the epic
  """
  REOPEN
}

"""
A node of an epic tree.
"""
input EpicTreeNodeFieldsInputType {
  """
  The id of the epic_issue or issue that the actual epic or issue is switched with
  """
  adjacentReferenceId: ID!

  """
  The id of the epic_issue or epic that is being moved
  """
  id: ID!

  """
  The type of the switch, after or before allowed
  """
  relativePosition: MoveType!
}

"""
Autogenerated input type of EpicTreeReorder
"""
input EpicTreeReorderInput {
  """
  The id of the base epic of the tree
  """
  baseEpicId: ID!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Parameters for updating the tree positions
  """
  moved: EpicTreeNodeFieldsInputType!
}

"""
Autogenerated return type of EpicTreeReorder
"""
type EpicTreeReorderPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!
}

type GrafanaIntegration {
  """
  Timestamp of the issue's creation
  """
  createdAt: Time!

  """
  Indicates whether Grafana integration is enabled
  """
  enabled: Boolean!

  """
  Url for the Grafana host for the Grafana integration
  """
  grafanaUrl: String!

  """
  Internal ID of the Grafana integration
  """
  id: ID!

  """
  API token for the Grafana integration. Field is permanently masked.
  """
  token: String! @deprecated(reason: "Plain text token has been masked for security reasons")

  """
  Timestamp of the issue's last activity
  """
  updatedAt: Time!
}

type Group {
  """
  Indicates whether Auto DevOps is enabled for all projects within this group
  """
  autoDevopsEnabled: Boolean

  """
  Avatar URL of the group
  """
  avatarUrl: String

  """
  A single board of the group
  """
  board(
    """
    Find a board by its ID
    """
    id: ID
  ): Board

  """
  Boards of the group
  """
  boards(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Find a board by its ID
    """
    id: ID

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): BoardConnection

  """
  Description of the namespace
  """
  description: String

  """
  The GitLab Flavored Markdown rendering of `description`
  """
  descriptionHtml: String

  """
  Indicates if a group has email notifications disabled
  """
  emailsDisabled: Boolean

  """
  Find a single epic
  """
  epic(
    """
    Filter epics by author
    """
    authorUsername: String

    """
    List items within a time frame where items.end_date is between startDate and
    endDate parameters (startDate parameter must be present)
    """
    endDate: Time

    """
    IID of the epic, e.g., "1"
    """
    iid: ID

    """
    List of IIDs of epics, e.g., [1, 2]
    """
    iids: [ID!]

    """
    Filter epics by labels
    """
    labelName: [String!]

    """
    Filter epics by title and description
    """
    search: String

    """
    List epics by sort order
    """
    sort: EpicSort

    """
    List items within a time frame where items.start_date is between startDate
    and endDate parameters (endDate parameter must be present)
    """
    startDate: Time

    """
    Filter epics by state
    """
    state: EpicState
  ): Epic

  """
  Find epics
  """
  epics(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Filter epics by author
    """
    authorUsername: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    List items within a time frame where items.end_date is between startDate and
    endDate parameters (startDate parameter must be present)
    """
    endDate: Time

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    IID of the epic, e.g., "1"
    """
    iid: ID

    """
    List of IIDs of epics, e.g., [1, 2]
    """
    iids: [ID!]

    """
    Filter epics by labels
    """
    labelName: [String!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Filter epics by title and description
    """
    search: String

    """
    List epics by sort order
    """
    sort: EpicSort

    """
    List items within a time frame where items.start_date is between startDate
    and endDate parameters (endDate parameter must be present)
    """
    startDate: Time

    """
    Filter epics by state
    """
    state: EpicState
  ): EpicConnection

  """
  Indicates if Epics are enabled for namespace
  """
  epicsEnabled: Boolean

  """
  Full name of the namespace
  """
  fullName: String!

  """
  Full path of the namespace
  """
  fullPath: ID!

  """
  Indicates if Group timelogs are enabled for namespace
  """
  groupTimelogsEnabled: Boolean

  """
  ID of the namespace
  """
  id: ID!

  """
  Indicates if Large File Storage (LFS) is enabled for namespace
  """
  lfsEnabled: Boolean

  """
  Indicates if a group is disabled from getting mentioned
  """
  mentionsDisabled: Boolean

  """
  Find milestones
  """
  milestones(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    List items within a time frame where items.end_date is between startDate and
    endDate parameters (startDate parameter must be present)
    """
    endDate: Time

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    List items within a time frame where items.start_date is between startDate
    and endDate parameters (endDate parameter must be present)
    """
    startDate: Time

    """
    Filter milestones by state
    """
    state: MilestoneStateEnum
  ): MilestoneConnection

  """
  Name of the namespace
  """
  name: String!

  """
  Parent group
  """
  parent: Group

  """
  Path of the namespace
  """
  path: String!

  """
  The permission level required to create projects in the group
  """
  projectCreationLevel: String

  """
  Projects within this namespace
  """
  projects(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Include also subgroup projects
    """
    includeSubgroups: Boolean = false

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): ProjectConnection!

  """
  Indicates if users can request access to namespace
  """
  requestAccessEnabled: Boolean

  """
  Indicates if all users in this group are required to set up two-factor authentication
  """
  requireTwoFactorAuthentication: Boolean

  """
  Aggregated storage statistics of the namespace. Only available for root namespaces
  """
  rootStorageStatistics: RootStorageStatistics

  """
  Indicates if sharing a project with another group within this group is prevented
  """
  shareWithGroupLock: Boolean

  """
  The permission level required to create subgroups within the group
  """
  subgroupCreationLevel: String

  """
  Time logged in issues by group members
  """
  timelogs(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    List time logs within a time range where the logged date is before end_date parameter.
    """
    endDate: Time!

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    List time logs within a time range where the logged date is after start_date parameter.
    """
    startDate: Time!
  ): TimelogConnection!

  """
  Time before two-factor authentication is enforced
  """
  twoFactorGracePeriod: Int

  """
  Permissions for the current user on the resource
  """
  userPermissions: GroupPermissions!

  """
  Visibility of the namespace
  """
  visibility: String

  """
  Web URL of the group
  """
  webUrl: String!
}

type GroupPermissions {
  """
  Indicates the user can perform `read_group` on this resource
  """
  readGroup: Boolean!
}

"""
Health status of an issue or epic
"""
enum HealthStatus {
  atRisk
  needsAttention
  onTrack
}

"""
State of a GitLab issue or merge request
"""
enum IssuableState {
  closed
  locked
  opened
}

type Issue implements Noteable {
  """
  Assignees of the issue
  """
  assignees(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): UserConnection

  """
  User that created the issue
  """
  author: User!

  """
  Timestamp of when the issue was closed
  """
  closedAt: Time

  """
  Indicates the issue is confidential
  """
  confidential: Boolean!

  """
  Timestamp of when the issue was created
  """
  createdAt: Time!

  """
  Description of the issue
  """
  description: String

  """
  The GitLab Flavored Markdown rendering of `description`
  """
  descriptionHtml: String

  """
  Collection of design images associated with this issue
  """
  designCollection: DesignCollection

  """
  Deprecated. Use `designCollection`
  """
  designs: DesignCollection @deprecated(reason: "Use designCollection")

  """
  Indicates discussion is locked on the issue
  """
  discussionLocked: Boolean!

  """
  All discussions on this noteable
  """
  discussions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): DiscussionConnection!

  """
  Number of downvotes the issue has received
  """
  downvotes: Int!

  """
  Due date of the issue
  """
  dueDate: Time

  """
  Epic to which this issue belongs
  """
  epic: Epic

  """
  Current health status. Available only when feature flag save_issuable_health_status is enabled.
  """
  healthStatus: HealthStatus

  """
  Internal ID of the issue
  """
  iid: ID!

  """
  Labels of the issue
  """
  labels(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): LabelConnection

  """
  Milestone of the issue
  """
  milestone: Milestone

  """
  All notes on this noteable
  """
  notes(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): NoteConnection!

  """
  List of participants in the issue
  """
  participants(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): UserConnection

  """
  Internal reference of the issue. Returned in shortened format by default
  """
  reference(
    """
    Boolean option specifying whether the reference should be returned in full
    """
    full: Boolean = false
  ): String!

  """
  Relative position of the issue (used for positioning in epic tree and issue boards)
  """
  relativePosition: Int

  """
  State of the issue
  """
  state: IssueState!

  """
  Indicates the currently logged in user is subscribed to the issue
  """
  subscribed: Boolean!

  """
  Task completion status of the issue
  """
  taskCompletionStatus: TaskCompletionStatus!

  """
  Time estimate of the issue
  """
  timeEstimate: Int!

  """
  Title of the issue
  """
  title: String!

  """
  The GitLab Flavored Markdown rendering of `title`
  """
  titleHtml: String

  """
  Total time reported as spent on the issue
  """
  totalTimeSpent: Int!

  """
  Timestamp of when the issue was last updated
  """
  updatedAt: Time!

  """
  Number of upvotes the issue has received
  """
  upvotes: Int!

  """
  Number of user notes of the issue
  """
  userNotesCount: Int!

  """
  Permissions for the current user on the resource
  """
  userPermissions: IssuePermissions!

  """
  Web path of the issue
  """
  webPath: String!

  """
  Web URL of the issue
  """
  webUrl: String!

  """
  Weight of the issue
  """
  weight: Int
}

"""
The connection type for Issue.
"""
type IssueConnection {
  """
  A list of edges.
  """
  edges: [IssueEdge]

  """
  A list of nodes.
  """
  nodes: [Issue]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type IssueEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Issue
}

"""
Check permissions for the current user on a issue
"""
type IssuePermissions {
  """
  Indicates the user can perform `admin_issue` on this resource
  """
  adminIssue: Boolean!

  """
  Indicates the user can perform `create_design` on this resource
  """
  createDesign: Boolean!

  """
  Indicates the user can perform `create_note` on this resource
  """
  createNote: Boolean!

  """
  Indicates the user can perform `destroy_design` on this resource
  """
  destroyDesign: Boolean!

  """
  Indicates the user can perform `read_design` on this resource
  """
  readDesign: Boolean!

  """
  Indicates the user can perform `read_issue` on this resource
  """
  readIssue: Boolean!

  """
  Indicates the user can perform `reopen_issue` on this resource
  """
  reopenIssue: Boolean!

  """
  Indicates the user can perform `update_issue` on this resource
  """
  updateIssue: Boolean!
}

"""
Autogenerated input type of IssueSetConfidential
"""
input IssueSetConfidentialInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Whether or not to set the issue as a confidential.
  """
  confidential: Boolean!

  """
  The iid of the issue to mutate
  """
  iid: String!

  """
  The project the issue to mutate is in
  """
  projectPath: ID!
}

"""
Autogenerated return type of IssueSetConfidential
"""
type IssueSetConfidentialPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The issue after mutation
  """
  issue: Issue
}

"""
Autogenerated input type of IssueSetDueDate
"""
input IssueSetDueDateInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The desired due date for the issue
  """
  dueDate: Time!

  """
  The iid of the issue to mutate
  """
  iid: String!

  """
  The project the issue to mutate is in
  """
  projectPath: ID!
}

"""
Autogenerated return type of IssueSetDueDate
"""
type IssueSetDueDatePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The issue after mutation
  """
  issue: Issue
}

"""
Autogenerated input type of IssueSetWeight
"""
input IssueSetWeightInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The iid of the issue to mutate
  """
  iid: String!

  """
  The project the issue to mutate is in
  """
  projectPath: ID!

  """
  The desired weight for the issue
  """
  weight: Int!
}

"""
Autogenerated return type of IssueSetWeight
"""
type IssueSetWeightPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The issue after mutation
  """
  issue: Issue
}

"""
Values for sorting issues
"""
enum IssueSort {
  """
  Due date by ascending order
  """
  DUE_DATE_ASC

  """
  Due date by descending order
  """
  DUE_DATE_DESC

  """
  Relative position by ascending order
  """
  RELATIVE_POSITION_ASC

  """
  Weight by ascending order
  """
  WEIGHT_ASC

  """
  Weight by descending order
  """
  WEIGHT_DESC

  """
  Created at ascending order
  """
  created_asc

  """
  Created at descending order
  """
  created_desc

  """
  Updated at ascending order
  """
  updated_asc

  """
  Updated at descending order
  """
  updated_desc
}

"""
State of a GitLab issue
"""
enum IssueState {
  closed
  locked
  opened
}

type Label {
  """
  Background color of the label
  """
  color: String!

  """
  Description of the label (Markdown rendered as HTML for caching)
  """
  description: String

  """
  The GitLab Flavored Markdown rendering of `description`
  """
  descriptionHtml: String

  """
  Label ID
  """
  id: ID!

  """
  Text color of the label
  """
  textColor: String!

  """
  Content of the label
  """
  title: String!
}

"""
The connection type for Label.
"""
type LabelConnection {
  """
  A list of edges.
  """
  edges: [LabelEdge]

  """
  A list of nodes.
  """
  nodes: [Label]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type LabelEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Label
}

"""
Autogenerated input type of MarkAsSpamSnippet
"""
input MarkAsSpamSnippetInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The global id of the snippet to update
  """
  id: ID!
}

"""
Autogenerated return type of MarkAsSpamSnippet
"""
type MarkAsSpamSnippetPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The snippet after mutation
  """
  snippet: Snippet
}

type MergeRequest implements Noteable {
  """
  Indicates if members of the target project can push to the fork
  """
  allowCollaboration: Boolean

  """
  Assignees of the merge request
  """
  assignees(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): UserConnection

  """
  Timestamp of when the merge request was created
  """
  createdAt: Time!

  """
  Default merge commit message of the merge request
  """
  defaultMergeCommitMessage: String

  """
  Description of the merge request (Markdown rendered as HTML for caching)
  """
  description: String

  """
  The GitLab Flavored Markdown rendering of `description`
  """
  descriptionHtml: String

  """
  Diff head SHA of the merge request
  """
  diffHeadSha: String

  """
  References of the base SHA, the head SHA, and the start SHA for this merge request
  """
  diffRefs: DiffRefs

  """
  Indicates if comments on the merge request are locked to members only
  """
  discussionLocked: Boolean!

  """
  All discussions on this noteable
  """
  discussions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): DiscussionConnection!

  """
  Number of downvotes for the merge request
  """
  downvotes: Int!

  """
  Indicates if the project settings will lead to source branch deletion after merge
  """
  forceRemoveSourceBranch: Boolean

  """
  The pipeline running on the branch HEAD of the merge request
  """
  headPipeline: Pipeline

  """
  ID of the merge request
  """
  id: ID!

  """
  Internal ID of the merge request
  """
  iid: String!

  """
  Commit SHA of the merge request if merge is in progress
  """
  inProgressMergeCommitSha: String

  """
  Labels of the merge request
  """
  labels(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): LabelConnection

  """
  Deprecated - renamed to defaultMergeCommitMessage
  """
  mergeCommitMessage: String @deprecated(reason: "Renamed to defaultMergeCommitMessage")

  """
  SHA of the merge request commit (set once merged)
  """
  mergeCommitSha: String

  """
  Error message due to a merge error
  """
  mergeError: String

  """
  Indicates if a merge is currently occurring
  """
  mergeOngoing: Boolean!

  """
  Status of the merge request
  """
  mergeStatus: String

  """
  Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS)
  """
  mergeWhenPipelineSucceeds: Boolean

  """
  Indicates if all discussions in the merge request have been resolved, allowing the merge request to be merged
  """
  mergeableDiscussionsState: Boolean

  """
  The milestone of the merge request
  """
  milestone: Milestone

  """
  All notes on this noteable
  """
  notes(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): NoteConnection!

  """
  Participants in the merge request
  """
  participants(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): UserConnection

  """
  Pipelines for the merge request
  """
  pipelines(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Filter pipelines by the ref they are run for
    """
    ref: String

    """
    Filter pipelines by the sha of the commit they are run for
    """
    sha: String

    """
    Filter pipelines by their status
    """
    status: PipelineStatusEnum
  ): PipelineConnection!

  """
  Alias for target_project
  """
  project: Project!

  """
  ID of the merge request project
  """
  projectId: Int!

  """
  Rebase commit SHA of the merge request
  """
  rebaseCommitSha: String

  """
  Indicates if there is a rebase currently in progress for the merge request
  """
  rebaseInProgress: Boolean!

  """
  Internal reference of the merge request. Returned in shortened format by default
  """
  reference(
    """
    Boolean option specifying whether the reference should be returned in full
    """
    full: Boolean = false
  ): String!

  """
  Indicates if the merge request will be rebased
  """
  shouldBeRebased: Boolean!

  """
  Indicates if the source branch of the merge request will be deleted after merge
  """
  shouldRemoveSourceBranch: Boolean

  """
  Source branch of the merge request
  """
  sourceBranch: String!

  """
  Indicates if the source branch of the merge request exists
  """
  sourceBranchExists: Boolean!

  """
  Source project of the merge request
  """
  sourceProject: Project

  """
  ID of the merge request source project
  """
  sourceProjectId: Int

  """
  State of the merge request
  """
  state: MergeRequestState!

  """
  Indicates if the currently logged in user is subscribed to this merge request
  """
  subscribed: Boolean!

  """
  Target branch of the merge request
  """
  targetBranch: String!

  """
  Target project of the merge request
  """
  targetProject: Project!

  """
  ID of the merge request target project
  """
  targetProjectId: Int!

  """
  Completion status of tasks
  """
  taskCompletionStatus: TaskCompletionStatus!

  """
  Time estimate of the merge request
  """
  timeEstimate: Int!

  """
  Title of the merge request
  """
  title: String!

  """
  The GitLab Flavored Markdown rendering of `title`
  """
  titleHtml: String

  """
  Total time reported as spent on the merge request
  """
  totalTimeSpent: Int!

  """
  Timestamp of when the merge request was last updated
  """
  updatedAt: Time!

  """
  Number of upvotes for the merge request
  """
  upvotes: Int!

  """
  User notes count of the merge request
  """
  userNotesCount: Int

  """
  Permissions for the current user on the resource
  """
  userPermissions: MergeRequestPermissions!

  """
  Web URL of the merge request
  """
  webUrl: String

  """
  Indicates if the merge request is a work in progress (WIP)
  """
  workInProgress: Boolean!
}

"""
The connection type for MergeRequest.
"""
type MergeRequestConnection {
  """
  A list of edges.
  """
  edges: [MergeRequestEdge]

  """
  A list of nodes.
  """
  nodes: [MergeRequest]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type MergeRequestEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: MergeRequest
}

"""
Check permissions for the current user on a merge request
"""
type MergeRequestPermissions {
  """
  Indicates the user can perform `admin_merge_request` on this resource
  """
  adminMergeRequest: Boolean!

  """
  Indicates the user can perform `cherry_pick_on_current_merge_request` on this resource
  """
  cherryPickOnCurrentMergeRequest: Boolean!

  """
  Indicates the user can perform `create_note` on this resource
  """
  createNote: Boolean!

  """
  Indicates the user can perform `push_to_source_branch` on this resource
  """
  pushToSourceBranch: Boolean!

  """
  Indicates the user can perform `read_merge_request` on this resource
  """
  readMergeRequest: Boolean!

  """
  Indicates the user can perform `remove_source_branch` on this resource
  """
  removeSourceBranch: Boolean!

  """
  Indicates the user can perform `revert_on_current_merge_request` on this resource
  """
  revertOnCurrentMergeRequest: Boolean!

  """
  Indicates the user can perform `update_merge_request` on this resource
  """
  updateMergeRequest: Boolean!
}

"""
Autogenerated input type of MergeRequestSetAssignees
"""
input MergeRequestSetAssigneesInput {
  """
  The usernames to assign to the merge request. Replaces existing assignees by default.
  """
  assigneeUsernames: [String!]!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The iid of the merge request to mutate
  """
  iid: String!

  """
  The operation to perform. Defaults to REPLACE.
  """
  operationMode: MutationOperationMode

  """
  The project the merge request to mutate is in
  """
  projectPath: ID!
}

"""
Autogenerated return type of MergeRequestSetAssignees
"""
type MergeRequestSetAssigneesPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The merge request after mutation
  """
  mergeRequest: MergeRequest
}

"""
Autogenerated input type of MergeRequestSetLabels
"""
input MergeRequestSetLabelsInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The iid of the merge request to mutate
  """
  iid: String!

  """
  The Label IDs to set. Replaces existing labels by default.
  """
  labelIds: [ID!]!

  """
  Changes the operation mode. Defaults to REPLACE.
  """
  operationMode: MutationOperationMode

  """
  The project the merge request to mutate is in
  """
  projectPath: ID!
}

"""
Autogenerated return type of MergeRequestSetLabels
"""
type MergeRequestSetLabelsPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The merge request after mutation
  """
  mergeRequest: MergeRequest
}

"""
Autogenerated input type of MergeRequestSetLocked
"""
input MergeRequestSetLockedInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The iid of the merge request to mutate
  """
  iid: String!

  """
  Whether or not to lock the merge request.
  """
  locked: Boolean!

  """
  The project the merge request to mutate is in
  """
  projectPath: ID!
}

"""
Autogenerated return type of MergeRequestSetLocked
"""
type MergeRequestSetLockedPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The merge request after mutation
  """
  mergeRequest: MergeRequest
}

"""
Autogenerated input type of MergeRequestSetMilestone
"""
input MergeRequestSetMilestoneInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The iid of the merge request to mutate
  """
  iid: String!

  """
  The milestone to assign to the merge request.
  """
  milestoneId: ID

  """
  The project the merge request to mutate is in
  """
  projectPath: ID!
}

"""
Autogenerated return type of MergeRequestSetMilestone
"""
type MergeRequestSetMilestonePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The merge request after mutation
  """
  mergeRequest: MergeRequest
}

"""
Autogenerated input type of MergeRequestSetSubscription
"""
input MergeRequestSetSubscriptionInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The iid of the merge request to mutate
  """
  iid: String!

  """
  The project the merge request to mutate is in
  """
  projectPath: ID!

  """
  The desired state of the subscription
  """
  subscribedState: Boolean!
}

"""
Autogenerated return type of MergeRequestSetSubscription
"""
type MergeRequestSetSubscriptionPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The merge request after mutation
  """
  mergeRequest: MergeRequest
}

"""
Autogenerated input type of MergeRequestSetWip
"""
input MergeRequestSetWipInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The iid of the merge request to mutate
  """
  iid: String!

  """
  The project the merge request to mutate is in
  """
  projectPath: ID!

  """
  Whether or not to set the merge request as a WIP.
  """
  wip: Boolean!
}

"""
Autogenerated return type of MergeRequestSetWip
"""
type MergeRequestSetWipPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The merge request after mutation
  """
  mergeRequest: MergeRequest
}

"""
State of a GitLab merge request
"""
enum MergeRequestState {
  closed
  locked
  merged
  opened
}

type Metadata {
  """
  Revision
  """
  revision: String!

  """
  Version
  """
  version: String!
}

"""
Represents a milestone.
"""
type Milestone {
  """
  Timestamp of milestone creation
  """
  createdAt: Time!

  """
  Description of the milestone
  """
  description: String

  """
  Timestamp of the milestone due date
  """
  dueDate: Time

  """
  ID of the milestone
  """
  id: ID!

  """
  Timestamp of the milestone start date
  """
  startDate: Time

  """
  State of the milestone
  """
  state: MilestoneStateEnum!

  """
  Title of the milestone
  """
  title: String!

  """
  Timestamp of last milestone update
  """
  updatedAt: Time!

  """
  Web path of the milestone
  """
  webPath: String!
}

"""
The connection type for Milestone.
"""
type MilestoneConnection {
  """
  A list of edges.
  """
  edges: [MilestoneEdge]

  """
  A list of nodes.
  """
  nodes: [Milestone]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type MilestoneEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Milestone
}

enum MilestoneStateEnum {
  active
  closed
}

"""
The position the adjacent object should be moved.
"""
enum MoveType {
  """
  The adjacent object will be moved after the object that is being moved.
  """
  after

  """
  The adjacent object will be moved before the object that is being moved.
  """
  before
}

type Mutation {
  addAwardEmoji(input: AddAwardEmojiInput!): AddAwardEmojiPayload
  createDiffNote(input: CreateDiffNoteInput!): CreateDiffNotePayload
  createEpic(input: CreateEpicInput!): CreateEpicPayload
  createImageDiffNote(input: CreateImageDiffNoteInput!): CreateImageDiffNotePayload
  createNote(input: CreateNoteInput!): CreateNotePayload
  createSnippet(input: CreateSnippetInput!): CreateSnippetPayload
  designManagementDelete(input: DesignManagementDeleteInput!): DesignManagementDeletePayload
  designManagementUpload(input: DesignManagementUploadInput!): DesignManagementUploadPayload
  destroyNote(input: DestroyNoteInput!): DestroyNotePayload
  destroySnippet(input: DestroySnippetInput!): DestroySnippetPayload
  epicSetSubscription(input: EpicSetSubscriptionInput!): EpicSetSubscriptionPayload
  epicTreeReorder(input: EpicTreeReorderInput!): EpicTreeReorderPayload
  issueSetConfidential(input: IssueSetConfidentialInput!): IssueSetConfidentialPayload
  issueSetDueDate(input: IssueSetDueDateInput!): IssueSetDueDatePayload
  issueSetWeight(input: IssueSetWeightInput!): IssueSetWeightPayload
  markAsSpamSnippet(input: MarkAsSpamSnippetInput!): MarkAsSpamSnippetPayload
  mergeRequestSetAssignees(input: MergeRequestSetAssigneesInput!): MergeRequestSetAssigneesPayload
  mergeRequestSetLabels(input: MergeRequestSetLabelsInput!): MergeRequestSetLabelsPayload
  mergeRequestSetLocked(input: MergeRequestSetLockedInput!): MergeRequestSetLockedPayload
  mergeRequestSetMilestone(input: MergeRequestSetMilestoneInput!): MergeRequestSetMilestonePayload
  mergeRequestSetSubscription(input: MergeRequestSetSubscriptionInput!): MergeRequestSetSubscriptionPayload
  mergeRequestSetWip(input: MergeRequestSetWipInput!): MergeRequestSetWipPayload
  removeAwardEmoji(input: RemoveAwardEmojiInput!): RemoveAwardEmojiPayload
  todoMarkDone(input: TodoMarkDoneInput!): TodoMarkDonePayload
  todoRestore(input: TodoRestoreInput!): TodoRestorePayload
  todoRestoreMany(input: TodoRestoreManyInput!): TodoRestoreManyPayload
  todosMarkAllDone(input: TodosMarkAllDoneInput!): TodosMarkAllDonePayload
  toggleAwardEmoji(input: ToggleAwardEmojiInput!): ToggleAwardEmojiPayload
  updateEpic(input: UpdateEpicInput!): UpdateEpicPayload

  """
  Updates a DiffNote on an image (a `Note` where the `position.positionType` is
  `"image"`). If the body of the Note contains only quick actions, the Note will
  be destroyed during the update, and no Note will be returned
  """
  updateImageDiffNote(input: UpdateImageDiffNoteInput!): UpdateImageDiffNotePayload
  updateIssue(input: UpdateIssueInput!): UpdateIssuePayload

  """
  Updates a Note. If the body of the Note contains only quick actions, the Note
  will be destroyed during the update, and no Note will be returned
  """
  updateNote(input: UpdateNoteInput!): UpdateNotePayload
  updateSnippet(input: UpdateSnippetInput!): UpdateSnippetPayload
}

"""
Different toggles for changing mutator behavior.
"""
enum MutationOperationMode {
  """
  Performs an append operation
  """
  APPEND

  """
  Performs a removal operation
  """
  REMOVE

  """
  Performs a replace operation
  """
  REPLACE
}

type Namespace {
  """
  Description of the namespace
  """
  description: String

  """
  The GitLab Flavored Markdown rendering of `description`
  """
  descriptionHtml: String

  """
  Full name of the namespace
  """
  fullName: String!

  """
  Full path of the namespace
  """
  fullPath: ID!

  """
  ID of the namespace
  """
  id: ID!

  """
  Indicates if Large File Storage (LFS) is enabled for namespace
  """
  lfsEnabled: Boolean

  """
  Name of the namespace
  """
  name: String!

  """
  Path of the namespace
  """
  path: String!

  """
  Projects within this namespace
  """
  projects(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Include also subgroup projects
    """
    includeSubgroups: Boolean = false

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): ProjectConnection!

  """
  Indicates if users can request access to namespace
  """
  requestAccessEnabled: Boolean

  """
  Aggregated storage statistics of the namespace. Only available for root namespaces
  """
  rootStorageStatistics: RootStorageStatistics

  """
  Visibility of the namespace
  """
  visibility: String
}

type Note {
  """
  User who wrote this note
  """
  author: User!

  """
  Content of the note
  """
  body: String!

  """
  The GitLab Flavored Markdown rendering of `note`
  """
  bodyHtml: String

  """
  Timestamp of the note creation
  """
  createdAt: Time!

  """
  The discussion this note is a part of
  """
  discussion: Discussion

  """
  ID of the note
  """
  id: ID!

  """
  The position of this note on a diff
  """
  position: DiffPosition

  """
  Project associated with the note
  """
  project: Project

  """
  Indicates if this note can be resolved. That is, if it is a resolvable discussion or simply a standalone note
  """
  resolvable: Boolean!

  """
  Timestamp of the note's resolution
  """
  resolvedAt: Time

  """
  User that resolved the discussion
  """
  resolvedBy: User

  """
  Indicates whether this note was created by the system or by a user
  """
  system: Boolean!

  """
  Timestamp of the note's last activity
  """
  updatedAt: Time!

  """
  Permissions for the current user on the resource
  """
  userPermissions: NotePermissions!
}

"""
The connection type for Note.
"""
type NoteConnection {
  """
  A list of edges.
  """
  edges: [NoteEdge]

  """
  A list of nodes.
  """
  nodes: [Note]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type NoteEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Note
}

type NotePermissions {
  """
  Indicates the user can perform `admin_note` on this resource
  """
  adminNote: Boolean!

  """
  Indicates the user can perform `award_emoji` on this resource
  """
  awardEmoji: Boolean!

  """
  Indicates the user can perform `create_note` on this resource
  """
  createNote: Boolean!

  """
  Indicates the user can perform `read_note` on this resource
  """
  readNote: Boolean!

  """
  Indicates the user can perform `resolve_note` on this resource
  """
  resolveNote: Boolean!
}

interface Noteable {
  """
  All discussions on this noteable
  """
  discussions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): DiscussionConnection!

  """
  All notes on this noteable
  """
  notes(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): NoteConnection!
}

"""
Information about pagination in a connection.
"""
type PageInfo {
  """
  When paginating forwards, the cursor to continue.
  """
  endCursor: String

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

type Pipeline {
  """
  Base SHA of the source branch
  """
  beforeSha: String

  """
  Timestamp of the pipeline's commit
  """
  committedAt: Time

  """
  Coverage percentage
  """
  coverage: Float

  """
  Timestamp of the pipeline's creation
  """
  createdAt: Time!

  """
  Detailed status of the pipeline
  """
  detailedStatus: DetailedStatus!

  """
  Duration of the pipeline in seconds
  """
  duration: Int

  """
  Timestamp of the pipeline's completion
  """
  finishedAt: Time

  """
  ID of the pipeline
  """
  id: ID!

  """
  Internal ID of the pipeline
  """
  iid: String!

  """
  SHA of the pipeline's commit
  """
  sha: String!

  """
  Timestamp when the pipeline was started
  """
  startedAt: Time

  """
  Status of the pipeline (CREATED, WAITING_FOR_RESOURCE, PREPARING, PENDING,
  RUNNING, FAILED, SUCCESS, CANCELED, SKIPPED, MANUAL, SCHEDULED)
  """
  status: PipelineStatusEnum!

  """
  Timestamp of the pipeline's last activity
  """
  updatedAt: Time!

  """
  Permissions for the current user on the resource
  """
  userPermissions: PipelinePermissions!
}

"""
The connection type for Pipeline.
"""
type PipelineConnection {
  """
  A list of edges.
  """
  edges: [PipelineEdge]

  """
  A list of nodes.
  """
  nodes: [Pipeline]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type PipelineEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Pipeline
}

type PipelinePermissions {
  """
  Indicates the user can perform `admin_pipeline` on this resource
  """
  adminPipeline: Boolean!

  """
  Indicates the user can perform `destroy_pipeline` on this resource
  """
  destroyPipeline: Boolean!

  """
  Indicates the user can perform `update_pipeline` on this resource
  """
  updatePipeline: Boolean!
}

enum PipelineStatusEnum {
  CANCELED
  CREATED
  FAILED
  MANUAL
  PENDING
  PREPARING
  RUNNING
  SCHEDULED
  SKIPPED
  SUCCESS
  WAITING_FOR_RESOURCE
}

type Project {
  """
  Indicates the archived status of the project
  """
  archived: Boolean

  """
  Indicates if issues referenced by merge requests and commits within the default branch are closed automatically
  """
  autocloseReferencedIssues: Boolean

  """
  URL to avatar image file of the project
  """
  avatarUrl: String

  """
  A single board of the project
  """
  board(
    """
    Find a board by its ID
    """
    id: ID
  ): Board

  """
  Boards of the project
  """
  boards(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Find a board by its ID
    """
    id: ID

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): BoardConnection

  """
  Indicates if the project stores Docker container images in a container registry
  """
  containerRegistryEnabled: Boolean

  """
  Timestamp of the project creation
  """
  createdAt: Time

  """
  Short description of the project
  """
  description: String

  """
  The GitLab Flavored Markdown rendering of `description`
  """
  descriptionHtml: String

  """
  Environments of the project
  """
  environments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Name of the environment
    """
    name: String

    """
    Search query
    """
    search: String
  ): EnvironmentConnection

  """
  Number of times the project has been forked
  """
  forksCount: Int!

  """
  Full path of the project
  """
  fullPath: ID!

  """
  Grafana integration details for the project
  """
  grafanaIntegration: GrafanaIntegration

  """
  Group of the project
  """
  group: Group

  """
  URL to connect to the project via HTTPS
  """
  httpUrlToRepo: String

  """
  ID of the project
  """
  id: ID!

  """
  Status of project import background job of the project
  """
  importStatus: String

  """
  A single issue of the project
  """
  issue(
    """
    ID of a user assigned to the issues, "none" and "any" values supported
    """
    assigneeId: String

    """
    Username of a user assigned to the issues
    """
    assigneeUsername: String

    """
    Issues closed after this date
    """
    closedAfter: Time

    """
    Issues closed before this date
    """
    closedBefore: Time

    """
    Issues created after this date
    """
    createdAfter: Time

    """
    Issues created before this date
    """
    createdBefore: Time

    """
    IID of the issue. For example, "1"
    """
    iid: String

    """
    List of IIDs of issues. For example, [1, 2]
    """
    iids: [String!]

    """
    Labels applied to this issue
    """
    labelName: [String]

    """
    Milestones applied to this issue
    """
    milestoneTitle: [String]

    """
    Search query for finding issues by title or description
    """
    search: String

    """
    Sort issues by this criteria
    """
    sort: IssueSort = created_desc

    """
    Current state of this issue
    """
    state: IssuableState

    """
    Issues updated after this date
    """
    updatedAfter: Time

    """
    Issues updated before this date
    """
    updatedBefore: Time
  ): Issue

  """
  Issues of the project
  """
  issues(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    ID of a user assigned to the issues, "none" and "any" values supported
    """
    assigneeId: String

    """
    Username of a user assigned to the issues
    """
    assigneeUsername: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Issues closed after this date
    """
    closedAfter: Time

    """
    Issues closed before this date
    """
    closedBefore: Time

    """
    Issues created after this date
    """
    createdAfter: Time

    """
    Issues created before this date
    """
    createdBefore: Time

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    IID of the issue. For example, "1"
    """
    iid: String

    """
    List of IIDs of issues. For example, [1, 2]
    """
    iids: [String!]

    """
    Labels applied to this issue
    """
    labelName: [String]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Milestones applied to this issue
    """
    milestoneTitle: [String]

    """
    Search query for finding issues by title or description
    """
    search: String

    """
    Sort issues by this criteria
    """
    sort: IssueSort = created_desc

    """
    Current state of this issue
    """
    state: IssuableState

    """
    Issues updated after this date
    """
    updatedAfter: Time

    """
    Issues updated before this date
    """
    updatedBefore: Time
  ): IssueConnection

  """
  (deprecated) Does this project have issues enabled?. Use `issues_access_level` instead
  """
  issuesEnabled: Boolean

  """
  (deprecated) Enable jobs for this project. Use `builds_access_level` instead
  """
  jobsEnabled: Boolean

  """
  Timestamp of the project last activity
  """
  lastActivityAt: Time

  """
  Indicates if the project has Large File Storage (LFS) enabled
  """
  lfsEnabled: Boolean

  """
  A single merge request of the project
  """
  mergeRequest(
    """
    The IID of the merge request, e.g., "1"
    """
    iid: String

    """
    The list of IIDs of issues, e.g., [1, 2]
    """
    iids: [String!]
  ): MergeRequest

  """
  Merge requests of the project
  """
  mergeRequests(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    The IID of the merge request, e.g., "1"
    """
    iid: String

    """
    The list of IIDs of issues, e.g., [1, 2]
    """
    iids: [String!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): MergeRequestConnection

  """
  (deprecated) Does this project have merge_requests enabled?. Use `merge_requests_access_level` instead
  """
  mergeRequestsEnabled: Boolean

  """
  Indicates if no merge commits should be created and all merges should instead
  be fast-forwarded, which means that merging is only allowed if the branch
  could be fast-forwarded.
  """
  mergeRequestsFfOnlyEnabled: Boolean

  """
  Name of the project (without namespace)
  """
  name: String!

  """
  Full name of the project with its namespace
  """
  nameWithNamespace: String!

  """
  Namespace of the project
  """
  namespace: Namespace

  """
  Indicates if merge requests of the project can only be merged when all the discussions are resolved
  """
  onlyAllowMergeIfAllDiscussionsAreResolved: Boolean

  """
  Indicates if merge requests of the project can only be merged with successful jobs
  """
  onlyAllowMergeIfPipelineSucceeds: Boolean

  """
  Number of open issues for the project
  """
  openIssuesCount: Int

  """
  Path of the project
  """
  path: String!

  """
  Build pipelines of the project
  """
  pipelines(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Filter pipelines by the ref they are run for
    """
    ref: String

    """
    Filter pipelines by the sha of the commit they are run for
    """
    sha: String

    """
    Filter pipelines by their status
    """
    status: PipelineStatusEnum
  ): PipelineConnection

  """
  Indicates if a link to create or view a merge request should display after a
  push to Git repositories of the project from the command line
  """
  printingMergeRequestLinkEnabled: Boolean

  """
  Indicates if there is public access to pipelines and job details of the project, including output logs and artifacts
  """
  publicJobs: Boolean

  """
  Indicates if `Delete source branch` option should be enabled by default for all new merge requests of the project
  """
  removeSourceBranchAfterMerge: Boolean

  """
  Git repository of the project
  """
  repository: Repository

  """
  Indicates if users can request member access to the project
  """
  requestAccessEnabled: Boolean

  """
  Detailed version of a Sentry error on the project
  """
  sentryDetailedError(
    """
    ID of the Sentry issue
    """
    id: ID!
  ): SentryDetailedError

  """
  Paginated collection of Sentry errors on the project
  """
  sentryErrors: SentryErrorCollection

  """
  E-mail address of the service desk.
  """
  serviceDeskAddress: String

  """
  Indicates if the project has service desk enabled.
  """
  serviceDeskEnabled: Boolean

  """
  Indicates if shared runners are enabled on the project
  """
  sharedRunnersEnabled: Boolean

  """
  Snippets of the project
  """
  snippets(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Array of global snippet ids, e.g., "gid://gitlab/ProjectSnippet/1"
    """
    ids: [ID!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    The visibility of the snippet
    """
    visibility: VisibilityScopesEnum
  ): SnippetConnection

  """
  (deprecated) Does this project have snippets enabled?. Use `snippets_access_level` instead
  """
  snippetsEnabled: Boolean

  """
  URL to connect to the project via SSH
  """
  sshUrlToRepo: String

  """
  Number of times the project has been starred
  """
  starCount: Int!

  """
  Statistics of the project
  """
  statistics: ProjectStatistics

  """
  The commit message used to apply merge request suggestions
  """
  suggestionCommitMessage: String

  """
  List of project tags
  """
  tagList: String

  """
  Permissions for the current user on the resource
  """
  userPermissions: ProjectPermissions!

  """
  Visibility of the project
  """
  visibility: String

  """
  Web URL of the project
  """
  webUrl: String

  """
  (deprecated) Does this project have wiki enabled?. Use `wiki_access_level` instead
  """
  wikiEnabled: Boolean
}

"""
The connection type for Project.
"""
type ProjectConnection {
  """
  A list of edges.
  """
  edges: [ProjectEdge]

  """
  A list of nodes.
  """
  nodes: [Project]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type ProjectEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Project
}

type ProjectPermissions {
  """
  Indicates the user can perform `admin_operations` on this resource
  """
  adminOperations: Boolean!

  """
  Indicates the user can perform `admin_project` on this resource
  """
  adminProject: Boolean!

  """
  Indicates the user can perform `admin_remote_mirror` on this resource
  """
  adminRemoteMirror: Boolean!

  """
  Indicates the user can perform `admin_wiki` on this resource
  """
  adminWiki: Boolean!

  """
  Indicates the user can perform `archive_project` on this resource
  """
  archiveProject: Boolean!

  """
  Indicates the user can perform `change_namespace` on this resource
  """
  changeNamespace: Boolean!

  """
  Indicates the user can perform `change_visibility_level` on this resource
  """
  changeVisibilityLevel: Boolean!

  """
  Indicates the user can perform `create_deployment` on this resource
  """
  createDeployment: Boolean!

  """
  Indicates the user can perform `create_design` on this resource
  """
  createDesign: Boolean!

  """
  Indicates the user can perform `create_issue` on this resource
  """
  createIssue: Boolean!

  """
  Indicates the user can perform `create_label` on this resource
  """
  createLabel: Boolean!

  """
  Indicates the user can perform `create_merge_request_from` on this resource
  """
  createMergeRequestFrom: Boolean!

  """
  Indicates the user can perform `create_merge_request_in` on this resource
  """
  createMergeRequestIn: Boolean!

  """
  Indicates the user can perform `create_pages` on this resource
  """
  createPages: Boolean!

  """
  Indicates the user can perform `create_pipeline` on this resource
  """
  createPipeline: Boolean!

  """
  Indicates the user can perform `create_pipeline_schedule` on this resource
  """
  createPipelineSchedule: Boolean!

  """
  Indicates the user can perform `create_snippet` on this resource
  """
  createSnippet: Boolean!

  """
  Indicates the user can perform `create_wiki` on this resource
  """
  createWiki: Boolean!

  """
  Indicates the user can perform `destroy_design` on this resource
  """
  destroyDesign: Boolean!

  """
  Indicates the user can perform `destroy_pages` on this resource
  """
  destroyPages: Boolean!

  """
  Indicates the user can perform `destroy_wiki` on this resource
  """
  destroyWiki: Boolean!

  """
  Indicates the user can perform `download_code` on this resource
  """
  downloadCode: Boolean!

  """
  Indicates the user can perform `download_wiki_code` on this resource
  """
  downloadWikiCode: Boolean!

  """
  Indicates the user can perform `fork_project` on this resource
  """
  forkProject: Boolean!

  """
  Indicates the user can perform `push_code` on this resource
  """
  pushCode: Boolean!

  """
  Indicates the user can perform `push_to_delete_protected_branch` on this resource
  """
  pushToDeleteProtectedBranch: Boolean!

  """
  Indicates the user can perform `read_commit_status` on this resource
  """
  readCommitStatus: Boolean!

  """
  Indicates the user can perform `read_cycle_analytics` on this resource
  """
  readCycleAnalytics: Boolean!

  """
  Indicates the user can perform `read_design` on this resource
  """
  readDesign: Boolean!

  """
  Indicates the user can perform `read_merge_request` on this resource
  """
  readMergeRequest: Boolean!

  """
  Indicates the user can perform `read_pages_content` on this resource
  """
  readPagesContent: Boolean!

  """
  Indicates the user can perform `read_project` on this resource
  """
  readProject: Boolean!

  """
  Indicates the user can perform `read_project_member` on this resource
  """
  readProjectMember: Boolean!

  """
  Indicates the user can perform `read_wiki` on this resource
  """
  readWiki: Boolean!

  """
  Indicates the user can perform `remove_fork_project` on this resource
  """
  removeForkProject: Boolean!

  """
  Indicates the user can perform `remove_pages` on this resource
  """
  removePages: Boolean!

  """
  Indicates the user can perform `remove_project` on this resource
  """
  removeProject: Boolean!

  """
  Indicates the user can perform `rename_project` on this resource
  """
  renameProject: Boolean!

  """
  Indicates the user can perform `request_access` on this resource
  """
  requestAccess: Boolean!

  """
  Indicates the user can perform `update_pages` on this resource
  """
  updatePages: Boolean!

  """
  Indicates the user can perform `update_wiki` on this resource
  """
  updateWiki: Boolean!

  """
  Indicates the user can perform `upload_file` on this resource
  """
  uploadFile: Boolean!
}

type ProjectStatistics {
  """
  Build artifacts size of the project
  """
  buildArtifactsSize: Int!

  """
  Commit count of the project
  """
  commitCount: Int!

  """
  Large File Storage (LFS) object size of the project
  """
  lfsObjectsSize: Int!

  """
  Packages size of the project
  """
  packagesSize: Int!

  """
  Repository size of the project
  """
  repositorySize: Int!

  """
  Storage size of the project
  """
  storageSize: Int!

  """
  Wiki size of the project
  """
  wikiSize: Int
}

type Query {
  """
  Get information about current user
  """
  currentUser: User

  """
  Fields related to design management
  """
  designManagement: DesignManagement!

  """
  Text to echo back
  """
  echo(
    """
    Text to echo back
    """
    text: String!
  ): String!

  """
  Find a group
  """
  group(
    """
    The full path of the project, group or namespace, e.g., "gitlab-org/gitlab-foss"
    """
    fullPath: ID!
  ): Group

  """
  Metadata about GitLab
  """
  metadata: Metadata

  """
  Find a namespace
  """
  namespace(
    """
    The full path of the project, group or namespace, e.g., "gitlab-org/gitlab-foss"
    """
    fullPath: ID!
  ): Namespace

  """
  Find a project
  """
  project(
    """
    The full path of the project, group or namespace, e.g., "gitlab-org/gitlab-foss"
    """
    fullPath: ID!
  ): Project

  """
  Find Snippets visible to the current user
  """
  snippets(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    The ID of an author
    """
    authorId: ID

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Explore personal snippets
    """
    explore: Boolean

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Array of global snippet ids, e.g., "gid://gitlab/ProjectSnippet/1"
    """
    ids: [ID!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    The ID of a project
    """
    projectId: ID

    """
    The type of snippet
    """
    type: TypeEnum

    """
    The visibility of the snippet
    """
    visibility: VisibilityScopesEnum
  ): SnippetConnection
}

"""
Autogenerated input type of RemoveAwardEmoji
"""
input RemoveAwardEmojiInput {
  """
  The global id of the awardable resource
  """
  awardableId: ID!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The emoji name
  """
  name: String!
}

"""
Autogenerated return type of RemoveAwardEmoji
"""
type RemoveAwardEmojiPayload {
  """
  The award emoji after mutation
  """
  awardEmoji: AwardEmoji

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!
}

type Repository {
  """
  Indicates repository has no visible content
  """
  empty: Boolean!

  """
  Indicates a corresponding Git repository exists on disk
  """
  exists: Boolean!

  """
  Default branch of the repository
  """
  rootRef: String

  """
  Tree of the repository
  """
  tree(
    """
    The path to get the tree for. Default value is the root of the repository
    """
    path: String = ""

    """
    Used to get a recursive tree. Default is false
    """
    recursive: Boolean = false

    """
    The commit ref to get the tree for. Default value is HEAD
    """
    ref: String = "head"
  ): Tree
}

type RootStorageStatistics {
  """
  The CI artifacts size in bytes
  """
  buildArtifactsSize: Int!

  """
  The LFS objects size in bytes
  """
  lfsObjectsSize: Int!

  """
  The packages size in bytes
  """
  packagesSize: Int!

  """
  The Git repository size in bytes
  """
  repositorySize: Int!

  """
  The total storage in bytes
  """
  storageSize: Int!

  """
  The wiki size in bytes
  """
  wikiSize: Int!
}

"""
A Sentry error.
"""
type SentryDetailedError {
  """
  Count of occurrences
  """
  count: Int!

  """
  Culprit of the error
  """
  culprit: String!

  """
  External Base URL of the Sentry Instance
  """
  externalBaseUrl: String!

  """
  External URL of the error
  """
  externalUrl: String!

  """
  Commit the error was first seen
  """
  firstReleaseLastCommit: String

  """
  Release version the error was first seen
  """
  firstReleaseShortVersion: String

  """
  Timestamp when the error was first seen
  """
  firstSeen: Time!

  """
  Last 24hr stats of the error
  """
  frequency: [SentryErrorFrequency!]!

  """
  GitLab commit SHA attributed to the Error based on the release version
  """
  gitlabCommit: String

  """
  Path to the GitLab page for the GitLab commit attributed to the error
  """
  gitlabCommitPath: String

  """
  URL of GitLab Issue
  """
  gitlabIssuePath: String

  """
  ID (global ID) of the error
  """
  id: ID!

  """
  Commit the error was last seen
  """
  lastReleaseLastCommit: String

  """
  Release version the error was last seen
  """
  lastReleaseShortVersion: String

  """
  Timestamp when the error was last seen
  """
  lastSeen: Time!

  """
  Sentry metadata message of the error
  """
  message: String

  """
  ID (Sentry ID) of the error
  """
  sentryId: String!

  """
  ID of the project (Sentry project)
  """
  sentryProjectId: ID!

  """
  Name of the project affected by the error
  """
  sentryProjectName: String!

  """
  Slug of the project affected by the error
  """
  sentryProjectSlug: String!

  """
  Short ID (Sentry ID) of the error
  """
  shortId: String!

  """
  Status of the error
  """
  status: SentryErrorStatus!

  """
  Tags associated with the Sentry Error
  """
  tags: SentryErrorTags!

  """
  Title of the error
  """
  title: String!

  """
  Type of the error
  """
  type: String!

  """
  Count of users affected by the error
  """
  userCount: Int!
}

"""
A Sentry error. A simplified version of SentryDetailedError.
"""
type SentryError {
  """
  Count of occurrences
  """
  count: Int!

  """
  Culprit of the error
  """
  culprit: String!

  """
  External URL of the error
  """
  externalUrl: String!

  """
  Timestamp when the error was first seen
  """
  firstSeen: Time!

  """
  Last 24hr stats of the error
  """
  frequency: [SentryErrorFrequency!]!

  """
  ID (global ID) of the error
  """
  id: ID!

  """
  Timestamp when the error was last seen
  """
  lastSeen: Time!

  """
  Sentry metadata message of the error
  """
  message: String

  """
  ID (Sentry ID) of the error
  """
  sentryId: String!

  """
  ID of the project (Sentry project)
  """
  sentryProjectId: ID!

  """
  Name of the project affected by the error
  """
  sentryProjectName: String!

  """
  Slug of the project affected by the error
  """
  sentryProjectSlug: String!

  """
  Short ID (Sentry ID) of the error
  """
  shortId: String!

  """
  Status of the error
  """
  status: SentryErrorStatus!

  """
  Title of the error
  """
  title: String!

  """
  Type of the error
  """
  type: String!

  """
  Count of users affected by the error
  """
  userCount: Int!
}

"""
An object containing a collection of Sentry errors, and a detailed error.
"""
type SentryErrorCollection {
  """
  Detailed version of a Sentry error on the project
  """
  detailedError(
    """
    ID of the Sentry issue
    """
    id: ID!
  ): SentryDetailedError

  """
  Stack Trace of Sentry Error
  """
  errorStackTrace(
    """
    ID of the Sentry issue
    """
    id: ID!
  ): SentryErrorStackTrace

  """
  Collection of Sentry Errors
  """
  errors(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    Search term for the Sentry error.
    """
    searchTerm: String

    """
    Attribute to sort on. Options are frequency, first_seen, last_seen. last_seen is default.
    """
    sort: String
  ): SentryErrorConnection

  """
  External URL for Sentry
  """
  externalUrl: String
}

"""
The connection type for SentryError.
"""
type SentryErrorConnection {
  """
  A list of edges.
  """
  edges: [SentryErrorEdge]

  """
  A list of nodes.
  """
  nodes: [SentryError]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type SentryErrorEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: SentryError
}

type SentryErrorFrequency {
  """
  Count of errors received since the previously recorded time
  """
  count: Int!

  """
  Time the error frequency stats were recorded
  """
  time: Time!
}

"""
An object containing a stack trace entry for a Sentry error.
"""
type SentryErrorStackTrace {
  """
  Time the stack trace was received by Sentry
  """
  dateReceived: String!

  """
  ID of the Sentry error
  """
  issueId: String!

  """
  Stack trace entries for the Sentry error
  """
  stackTraceEntries: [SentryErrorStackTraceEntry!]!
}

"""
An object context for a Sentry error stack trace
"""
type SentryErrorStackTraceContext {
  """
  Code number of the context
  """
  code: String!

  """
  Line number of the context
  """
  line: Int!
}

"""
An object containing a stack trace entry for a Sentry error.
"""
type SentryErrorStackTraceEntry {
  """
  Function in which the Sentry error occurred
  """
  col: String

  """
  File in which the Sentry error occurred
  """
  fileName: String

  """
  Function in which the Sentry error occurred
  """
  function: String

  """
  Function in which the Sentry error occurred
  """
  line: String

  """
  Context of the Sentry error
  """
  traceContext: [SentryErrorStackTraceContext!]
}

"""
State of a Sentry error
"""
enum SentryErrorStatus {
  """
  Error has been ignored
  """
  IGNORED

  """
  Error has been resolved
  """
  RESOLVED

  """
  Error has been ignored until next release
  """
  RESOLVED_IN_NEXT_RELEASE

  """
  Error is unresolved
  """
  UNRESOLVED
}

"""
State of a Sentry error
"""
type SentryErrorTags {
  """
  Severity level of the Sentry Error
  """
  level: String

  """
  Logger of the Sentry Error
  """
  logger: String
}

"""
Represents a snippet entry
"""
type Snippet implements Noteable {
  """
  The owner of the snippet
  """
  author: User!

  """
  Snippet blob
  """
  blob: SnippetBlob!

  """
  Timestamp this snippet was created
  """
  createdAt: Time!

  """
  Description of the snippet
  """
  description: String

  """
  The GitLab Flavored Markdown rendering of `description`
  """
  descriptionHtml: String

  """
  All discussions on this noteable
  """
  discussions(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): DiscussionConnection!

  """
  File Name of the snippet
  """
  fileName: String

  """
  Id of the snippet
  """
  id: ID!

  """
  All notes on this noteable
  """
  notes(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): NoteConnection!

  """
  The project the snippet is associated with
  """
  project: Project

  """
  Raw URL of the snippet
  """
  rawUrl: String!

  """
  Title of the snippet
  """
  title: String!

  """
  Timestamp this snippet was updated
  """
  updatedAt: Time!

  """
  Permissions for the current user on the resource
  """
  userPermissions: SnippetPermissions!

  """
  Visibility Level of the snippet
  """
  visibilityLevel: VisibilityLevelsEnum!

  """
  Web URL of the snippet
  """
  webUrl: String!
}

"""
Represents the snippet blob
"""
type SnippetBlob {
  """
  Shows whether the blob is binary
  """
  binary: Boolean!

  """
  Blob mode
  """
  mode: String

  """
  Blob name
  """
  name: String

  """
  Blob path
  """
  path: String

  """
  Blob plain highlighted data
  """
  plainData: String

  """
  Blob raw content endpoint path
  """
  rawPath: String!

  """
  Blob highlighted data
  """
  richData: String

  """
  Blob content rich viewer
  """
  richViewer: SnippetBlobViewer

  """
  Blob content simple viewer
  """
  simpleViewer: SnippetBlobViewer!

  """
  Blob size
  """
  size: Int!
}

"""
Represents how the blob content should be displayed
"""
type SnippetBlobViewer {
  """
  Shows whether the blob should be displayed collapsed
  """
  collapsed: Boolean!

  """
  Content file type
  """
  fileType: String!

  """
  Shows whether the blob content is loaded async
  """
  loadAsync: Boolean!

  """
  Loading partial name
  """
  loadingPartialName: String!

  """
  Error rendering the blob content
  """
  renderError: String

  """
  Shows whether the blob too large to be displayed
  """
  tooLarge: Boolean!

  """
  Type of blob viewer
  """
  type: BlobViewersType!
}

"""
The connection type for Snippet.
"""
type SnippetConnection {
  """
  A list of edges.
  """
  edges: [SnippetEdge]

  """
  A list of nodes.
  """
  nodes: [Snippet]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type SnippetEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Snippet
}

type SnippetPermissions {
  """
  Indicates the user can perform `admin_snippet` on this resource
  """
  adminSnippet: Boolean!

  """
  Indicates the user can perform `award_emoji` on this resource
  """
  awardEmoji: Boolean!

  """
  Indicates the user can perform `create_note` on this resource
  """
  createNote: Boolean!

  """
  Indicates the user can perform `read_snippet` on this resource
  """
  readSnippet: Boolean!

  """
  Indicates the user can perform `report_snippet` on this resource
  """
  reportSnippet: Boolean!

  """
  Indicates the user can perform `update_snippet` on this resource
  """
  updateSnippet: Boolean!
}

type Submodule implements Entry {
  """
  Flat path of the entry
  """
  flatPath: String!

  """
  ID of the entry
  """
  id: ID!

  """
  Name of the entry
  """
  name: String!

  """
  Path of the entry
  """
  path: String!

  """
  Last commit sha for the entry
  """
  sha: String!

  """
  Tree URL for the sub-module
  """
  treeUrl: String

  """
  Type of tree entry
  """
  type: EntryType!

  """
  Web URL for the sub-module
  """
  webUrl: String
}

"""
The connection type for Submodule.
"""
type SubmoduleConnection {
  """
  A list of edges.
  """
  edges: [SubmoduleEdge]

  """
  A list of nodes.
  """
  nodes: [Submodule]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type SubmoduleEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Submodule
}

"""
Completion status of tasks
"""
type TaskCompletionStatus {
  """
  Number of completed tasks
  """
  completedCount: Int!

  """
  Number of total tasks
  """
  count: Int!
}

"""
Time represented in ISO 8601
"""
scalar Time

type Timelog {
  """
  The date when the time tracked was spent at
  """
  date: Time!

  """
  The issue that logged time was added to
  """
  issue: Issue

  """
  The time spent displayed in seconds
  """
  timeSpent: Int!

  """
  The user that logged the time
  """
  user: User!
}

"""
The connection type for Timelog.
"""
type TimelogConnection {
  """
  A list of edges.
  """
  edges: [TimelogEdge]

  """
  A list of nodes.
  """
  nodes: [Timelog]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type TimelogEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Timelog
}

"""
Representing a todo entry
"""
type Todo {
  """
  Action of the todo
  """
  action: TodoActionEnum!

  """
  The owner of this todo
  """
  author: User!

  """
  Body of the todo
  """
  body: String!

  """
  Timestamp this todo was created
  """
  createdAt: Time!

  """
  Group this todo is associated with
  """
  group: Group

  """
  Id of the todo
  """
  id: ID!

  """
  The project this todo is associated with
  """
  project: Project

  """
  State of the todo
  """
  state: TodoStateEnum!

  """
  Target type of the todo
  """
  targetType: TodoTargetEnum!
}

enum TodoActionEnum {
  approval_required
  assigned
  build_failed
  directly_addressed
  marked
  mentioned
  unmergeable
}

"""
The connection type for Todo.
"""
type TodoConnection {
  """
  A list of edges.
  """
  edges: [TodoEdge]

  """
  A list of nodes.
  """
  nodes: [Todo]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type TodoEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Todo
}

"""
Autogenerated input type of TodoMarkDone
"""
input TodoMarkDoneInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The global id of the todo to mark as done
  """
  id: ID!
}

"""
Autogenerated return type of TodoMarkDone
"""
type TodoMarkDonePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The requested todo
  """
  todo: Todo!
}

"""
Autogenerated input type of TodoRestore
"""
input TodoRestoreInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The global id of the todo to restore
  """
  id: ID!
}

"""
Autogenerated input type of TodoRestoreMany
"""
input TodoRestoreManyInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The global ids of the todos to restore (a maximum of 50 is supported at once)
  """
  ids: [ID!]!
}

"""
Autogenerated return type of TodoRestoreMany
"""
type TodoRestoreManyPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The ids of the updated todo items
  """
  updatedIds: [ID!]!
}

"""
Autogenerated return type of TodoRestore
"""
type TodoRestorePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The requested todo
  """
  todo: Todo!
}

enum TodoStateEnum {
  done
  pending
}

enum TodoTargetEnum {
  """
  A Commit
  """
  COMMIT

  """
  A Design
  """
  DESIGN

  """
  An Epic
  """
  EPIC

  """
  An Issue
  """
  ISSUE

  """
  A MergeRequest
  """
  MERGEREQUEST
}

"""
Autogenerated input type of TodosMarkAllDone
"""
input TodosMarkAllDoneInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String
}

"""
Autogenerated return type of TodosMarkAllDone
"""
type TodosMarkAllDonePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  Ids of the updated todos
  """
  updatedIds: [ID!]!
}

"""
Autogenerated input type of ToggleAwardEmoji
"""
input ToggleAwardEmojiInput {
  """
  The global id of the awardable resource
  """
  awardableId: ID!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The emoji name
  """
  name: String!
}

"""
Autogenerated return type of ToggleAwardEmoji
"""
type ToggleAwardEmojiPayload {
  """
  The award emoji after mutation
  """
  awardEmoji: AwardEmoji

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  Indicates the status of the emoji. True if the toggle awarded the emoji, and false if the toggle removed the emoji.
  """
  toggledOn: Boolean!
}

type Tree {
  """
  Blobs of the tree
  """
  blobs(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): BlobConnection!

  """
  Last commit for the tree
  """
  lastCommit: Commit

  """
  Sub-modules of the tree
  """
  submodules(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): SubmoduleConnection!

  """
  Trees of the tree
  """
  trees(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Returns the last _n_ elements from the list.
    """
    last: Int
  ): TreeEntryConnection!
}

"""
Represents a directory
"""
type TreeEntry implements Entry {
  """
  Flat path of the entry
  """
  flatPath: String!

  """
  ID of the entry
  """
  id: ID!

  """
  Name of the entry
  """
  name: String!

  """
  Path of the entry
  """
  path: String!

  """
  Last commit sha for the entry
  """
  sha: String!

  """
  Type of tree entry
  """
  type: EntryType!

  """
  Web URL for the tree entry (directory)
  """
  webUrl: String
}

"""
The connection type for TreeEntry.
"""
type TreeEntryConnection {
  """
  A list of edges.
  """
  edges: [TreeEntryEdge]

  """
  A list of nodes.
  """
  nodes: [TreeEntry]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type TreeEntryEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: TreeEntry
}

enum TypeEnum {
  personal
  project
}

input UpdateDiffImagePositionInput {
  """
  Total height of the image
  """
  height: Int

  """
  Total width of the image
  """
  width: Int

  """
  X position of the note
  """
  x: Int

  """
  Y position of the note
  """
  y: Int
}

"""
Autogenerated input type of UpdateEpic
"""
input UpdateEpicInput {
  """
  The IDs of labels to be added to the epic.
  """
  addLabelIds: [ID!]

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The description of the epic
  """
  description: String

  """
  The end date of the epic
  """
  dueDateFixed: String

  """
  Indicates end date should be sourced from due_date_fixed field not the issue milestones
  """
  dueDateIsFixed: Boolean

  """
  The group the epic to mutate is in
  """
  groupPath: ID!

  """
  The desired health status
  """
  healthStatus: HealthStatus

  """
  The iid of the epic to mutate
  """
  iid: String!

  """
  The IDs of labels to be removed from the epic.
  """
  removeLabelIds: [ID!]

  """
  The start date of the epic
  """
  startDateFixed: String

  """
  Indicates start date should be sourced from start_date_fixed field not the issue milestones
  """
  startDateIsFixed: Boolean

  """
  State event for the epic
  """
  stateEvent: EpicStateEvent

  """
  The title of the epic
  """
  title: String
}

"""
Autogenerated return type of UpdateEpic
"""
type UpdateEpicPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The epic after mutation
  """
  epic: Epic

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!
}

"""
Autogenerated input type of UpdateImageDiffNote
"""
input UpdateImageDiffNoteInput {
  """
  Content of the note
  """
  body: String

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The global id of the note to update
  """
  id: ID!

  """
  The position of this note on a diff
  """
  position: UpdateDiffImagePositionInput
}

"""
Autogenerated return type of UpdateImageDiffNote
"""
type UpdateImageDiffNotePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The note after mutation
  """
  note: Note
}

"""
Autogenerated input type of UpdateIssue
"""
input UpdateIssueInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Indicates the issue is confidential
  """
  confidential: Boolean!

  """
  Description of the issue
  """
  description: String

  """
  Due date of the issue
  """
  dueDate: Time!

  """
  The desired health status
  """
  healthStatus: HealthStatus

  """
  The iid of the issue to mutate
  """
  iid: String!

  """
  The project the issue to mutate is in
  """
  projectPath: ID!

  """
  Title of the issue
  """
  title: String
}

"""
Autogenerated return type of UpdateIssue
"""
type UpdateIssuePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The issue after mutation
  """
  issue: Issue
}

"""
Autogenerated input type of UpdateNote
"""
input UpdateNoteInput {
  """
  Content of the note
  """
  body: String!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The global id of the note to update
  """
  id: ID!
}

"""
Autogenerated return type of UpdateNote
"""
type UpdateNotePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The note after mutation
  """
  note: Note
}

"""
Autogenerated input type of UpdateSnippet
"""
input UpdateSnippetInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Content of the snippet
  """
  content: String

  """
  Description of the snippet
  """
  description: String

  """
  File name of the snippet
  """
  fileName: String

  """
  The global id of the snippet to update
  """
  id: ID!

  """
  Title of the snippet
  """
  title: String

  """
  The visibility level of the snippet
  """
  visibilityLevel: VisibilityLevelsEnum
}

"""
Autogenerated return type of UpdateSnippet
"""
type UpdateSnippetPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Reasons why the mutation failed.
  """
  errors: [String!]!

  """
  The snippet after mutation
  """
  snippet: Snippet
}

scalar Upload

type User {
  """
  URL of the user's avatar
  """
  avatarUrl: String

  """
  Human-readable name of the user
  """
  name: String!

  """
  Snippets authored by the user
  """
  snippets(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    Array of global snippet ids, e.g., "gid://gitlab/ProjectSnippet/1"
    """
    ids: [ID!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    The type of snippet
    """
    type: TypeEnum

    """
    The visibility of the snippet
    """
    visibility: VisibilityScopesEnum
  ): SnippetConnection

  """
  Todos of the user
  """
  todos(
    """
    The action to be filtered
    """
    action: [TodoActionEnum!]

    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    The ID of an author
    """
    authorId: [ID!]

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    The ID of a group
    """
    groupId: [ID!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    The ID of a project
    """
    projectId: [ID!]

    """
    The state of the todo
    """
    state: [TodoStateEnum!]

    """
    The type of the todo
    """
    type: [TodoTargetEnum!]
  ): TodoConnection!

  """
  Permissions for the current user on the resource
  """
  userPermissions: UserPermissions!

  """
  Username of the user. Unique within this instance of GitLab
  """
  username: String!

  """
  Web URL of the user
  """
  webUrl: String!
}

"""
The connection type for User.
"""
type UserConnection {
  """
  A list of edges.
  """
  edges: [UserEdge]

  """
  A list of nodes.
  """
  nodes: [User]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type UserEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: User
}

type UserPermissions {
  """
  Indicates the user can perform `create_snippet` on this resource
  """
  createSnippet: Boolean!
}

enum VisibilityLevelsEnum {
  internal
  private
  public
}

enum VisibilityScopesEnum {
  internal
  private
  public
}