"""
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!]!
}

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 {
  flatPath: String!
  id: ID!
  lfsOid: String
  name: String!
  path: String!

  """
  Last commit sha for entry
  """
  sha: String!
  type: EntryType!
  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
}

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

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

type Design implements Noteable {
  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!

  """
  The change that happened to the design at this version
  """
  event: DesignVersionEvent!
  filename: String!
  fullPath: String!
  id: ID!
  image: String!
  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!
  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

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

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

type DesignCollection {
  """
  All designs for this 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: Issue!
  project: Project!

  """
  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

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

"""
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!]!
}

type DesignVersion {
  """
  All designs that were changed in this 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!
  id: ID!
  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 {
  detailsPath: String!
  favicon: String!
  group: String!
  hasDetails: Boolean!
  icon: String!
  label: String!
  text: String!
  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 on which the comment was made
  """
  x: Int!

  """
  Y position on which the comment was made
  """
  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 on which the comment was made
  """
  x: Int

  """
  Y position on which the comment was made
  """
  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 {
  flatPath: String!
  id: ID!
  name: String!
  path: String!

  """
  Last commit sha for entry
  """
  sha: String!
  type: EntryType!
}

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

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 epics within a time frame where epics.end_date is between start_date
    and end_date parameters (start_date 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 epics within a time frame where epics.start_date is between start_date
    and end_date parameters (end_date 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!

  """
  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
  reference(full: Boolean = false): String!
  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!

  """
  Boolean flag for whether the currently logged in user is subscribed to this 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!
  webPath: String!
  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!
}

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
}

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 `design_collection`.
  """
  designs: DesignCollection @deprecated(reason: "use design_collection")

  """
  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!

  """
  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!

  """
  Boolean flag for whether the currently logged in user is subscribed to this 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 {
  """
  Whether or not a user can perform `admin_epic` on this resource
  """
  adminEpic: Boolean!

  """
  Whether or not a user can perform `award_emoji` on this resource
  """
  awardEmoji: Boolean!

  """
  Whether or not a user can perform `create_epic` on this resource
  """
  createEpic: Boolean!

  """
  Whether or not a user can perform `create_note` on this resource
  """
  createNote: Boolean!

  """
  Whether or not a user can perform `destroy_epic` on this resource
  """
  destroyEpic: Boolean!

  """
  Whether or not a user can perform `read_epic` on this resource
  """
  readEpic: Boolean!

  """
  Whether or not a user can perform `read_epic_iid` on this resource
  """
  readEpicIid: Boolean!

  """
  Whether or not a 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 a GitLab epic
"""
enum EpicState {
  all
  closed
  opened
}

"""
State event of a GitLab Epic
"""
enum EpicStateEvent {
  """
  Close the Epic
  """
  CLOSE

  """
  Reopen the Epic
  """
  REOPEN
}

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 Group {
  """
  Avatar URL of the group
  """
  avatarUrl: String

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

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

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

    """
    List epics within a time frame where epics.end_date is between start_date
    and end_date parameters (start_date 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 epics within a time frame where epics.start_date is between start_date
    and end_date parameters (end_date 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 epics within a time frame where epics.end_date is between start_date
    and end_date parameters (start_date 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 epics within a time frame where epics.start_date is between start_date
    and end_date parameters (end_date 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

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

  """
  Parent group
  """
  parent: Group

  """
  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

  """
  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!

  """
  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 {
  """
  Whether or not a user can perform `read_group` on this resource
  """
  readGroup: Boolean!
}

"""
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 `design_collection`.
  """
  designs: DesignCollection @deprecated(reason: "use design_collection")

  """
  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

  """
  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!

  """
  Boolean flag for whether the currently logged in user is subscribed to this 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 {
  """
  Whether or not a user can perform `admin_issue` on this resource
  """
  adminIssue: Boolean!

  """
  Whether or not a user can perform `create_design` on this resource
  """
  createDesign: Boolean!

  """
  Whether or not a user can perform `create_note` on this resource
  """
  createNote: Boolean!

  """
  Whether or not a user can perform `destroy_design` on this resource
  """
  destroyDesign: Boolean!

  """
  Whether or not a user can perform `read_design` on this resource
  """
  readDesign: Boolean!

  """
  Whether or not a user can perform `read_issue` on this resource
  """
  readIssue: Boolean!

  """
  Whether or not a user can perform `reopen_issue` on this resource
  """
  reopenIssue: Boolean!

  """
  Whether or not a 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 {
  """
  Whether or not a user can perform `admin_merge_request` on this resource
  """
  adminMergeRequest: Boolean!

  """
  Whether or not a user can perform `cherry_pick_on_current_merge_request` on this resource
  """
  cherryPickOnCurrentMergeRequest: Boolean!

  """
  Whether or not a user can perform `create_note` on this resource
  """
  createNote: Boolean!

  """
  Whether or not a user can perform `push_to_source_branch` on this resource
  """
  pushToSourceBranch: Boolean!

  """
  Whether or not a user can perform `read_merge_request` on this resource
  """
  readMergeRequest: Boolean!

  """
  Whether or not a user can perform `remove_source_branch` on this resource
  """
  removeSourceBranch: Boolean!

  """
  Whether or not a user can perform `revert_on_current_merge_request` on this resource
  """
  revertOnCurrentMergeRequest: Boolean!

  """
  Whether or not a 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!
}

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

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

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

"""
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
  todosMarkAllDone(input: TodosMarkAllDoneInput!): TodosMarkAllDonePayload
  toggleAwardEmoji(input: ToggleAwardEmojiInput!): ToggleAwardEmojiPayload
  updateEpic(input: UpdateEpicInput!): UpdateEpicPayload
  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 {
  """
  Whether or not a user can perform `admin_note` on this resource
  """
  adminNote: Boolean!

  """
  Whether or not a user can perform `award_emoji` on this resource
  """
  awardEmoji: Boolean!

  """
  Whether or not a user can perform `create_note` on this resource
  """
  createNote: Boolean!

  """
  Whether or not a user can perform `read_note` on this resource
  """
  readNote: Boolean!

  """
  Whether or not a 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 {
  beforeSha: String
  committedAt: Time

  """
  Coverage percentage
  """
  coverage: Float
  createdAt: Time!
  detailedStatus: DetailedStatus!

  """
  Duration of the pipeline in seconds
  """
  duration: Int
  finishedAt: Time
  id: ID!
  iid: String!
  sha: String!
  startedAt: Time
  status: PipelineStatusEnum!
  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 {
  """
  Whether or not a user can perform `admin_pipeline` on this resource
  """
  adminPipeline: Boolean!

  """
  Whether or not a user can perform `destroy_pipeline` on this resource
  """
  destroyPipeline: Boolean!

  """
  Whether or not a user can perform `update_pipeline` on this resource
  """
  updatePipeline: Boolean!
}

enum PipelineStatusEnum {
  CANCELED
  CREATED
  FAILED
  MANUAL
  PENDING
  PREPARING
  RUNNING
  SCHEDULED
  SKIPPED
  SUCCESS
}

type Project {
  """
  Archived status of the project
  """
  archived: Boolean

  """
  URL to avatar image file of the project
  """
  avatarUrl: String

  """
  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

  """
  Number of times the project has been forked
  """
  forksCount: Int!

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

  """
  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(
    """
    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]

    """
    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

    """
    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

    """
    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

  """
  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

  """
  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 {
  """
  Whether or not a user can perform `admin_operations` on this resource
  """
  adminOperations: Boolean!

  """
  Whether or not a user can perform `admin_project` on this resource
  """
  adminProject: Boolean!

  """
  Whether or not a user can perform `admin_remote_mirror` on this resource
  """
  adminRemoteMirror: Boolean!

  """
  Whether or not a user can perform `admin_wiki` on this resource
  """
  adminWiki: Boolean!

  """
  Whether or not a user can perform `archive_project` on this resource
  """
  archiveProject: Boolean!

  """
  Whether or not a user can perform `change_namespace` on this resource
  """
  changeNamespace: Boolean!

  """
  Whether or not a user can perform `change_visibility_level` on this resource
  """
  changeVisibilityLevel: Boolean!

  """
  Whether or not a user can perform `create_deployment` on this resource
  """
  createDeployment: Boolean!

  """
  Whether or not a user can perform `create_design` on this resource
  """
  createDesign: Boolean!

  """
  Whether or not a user can perform `create_issue` on this resource
  """
  createIssue: Boolean!

  """
  Whether or not a user can perform `create_label` on this resource
  """
  createLabel: Boolean!

  """
  Whether or not a user can perform `create_merge_request_from` on this resource
  """
  createMergeRequestFrom: Boolean!

  """
  Whether or not a user can perform `create_merge_request_in` on this resource
  """
  createMergeRequestIn: Boolean!

  """
  Whether or not a user can perform `create_pages` on this resource
  """
  createPages: Boolean!

  """
  Whether or not a user can perform `create_pipeline` on this resource
  """
  createPipeline: Boolean!

  """
  Whether or not a user can perform `create_pipeline_schedule` on this resource
  """
  createPipelineSchedule: Boolean!

  """
  Whether or not a user can perform `create_snippet` on this resource
  """
  createSnippet: Boolean!

  """
  Whether or not a user can perform `create_wiki` on this resource
  """
  createWiki: Boolean!

  """
  Whether or not a user can perform `destroy_design` on this resource
  """
  destroyDesign: Boolean!

  """
  Whether or not a user can perform `destroy_pages` on this resource
  """
  destroyPages: Boolean!

  """
  Whether or not a user can perform `destroy_wiki` on this resource
  """
  destroyWiki: Boolean!

  """
  Whether or not a user can perform `download_code` on this resource
  """
  downloadCode: Boolean!

  """
  Whether or not a user can perform `download_wiki_code` on this resource
  """
  downloadWikiCode: Boolean!

  """
  Whether or not a user can perform `fork_project` on this resource
  """
  forkProject: Boolean!

  """
  Whether or not a user can perform `push_code` on this resource
  """
  pushCode: Boolean!

  """
  Whether or not a user can perform `push_to_delete_protected_branch` on this resource
  """
  pushToDeleteProtectedBranch: Boolean!

  """
  Whether or not a user can perform `read_commit_status` on this resource
  """
  readCommitStatus: Boolean!

  """
  Whether or not a user can perform `read_cycle_analytics` on this resource
  """
  readCycleAnalytics: Boolean!

  """
  Whether or not a user can perform `read_design` on this resource
  """
  readDesign: Boolean!

  """
  Whether or not a user can perform `read_pages_content` on this resource
  """
  readPagesContent: Boolean!

  """
  Whether or not a user can perform `read_project` on this resource
  """
  readProject: Boolean!

  """
  Whether or not a user can perform `read_project_member` on this resource
  """
  readProjectMember: Boolean!

  """
  Whether or not a user can perform `read_wiki` on this resource
  """
  readWiki: Boolean!

  """
  Whether or not a user can perform `remove_fork_project` on this resource
  """
  removeForkProject: Boolean!

  """
  Whether or not a user can perform `remove_pages` on this resource
  """
  removePages: Boolean!

  """
  Whether or not a user can perform `remove_project` on this resource
  """
  removeProject: Boolean!

  """
  Whether or not a user can perform `rename_project` on this resource
  """
  renameProject: Boolean!

  """
  Whether or not a user can perform `request_access` on this resource
  """
  requestAccess: Boolean!

  """
  Whether or not a user can perform `update_pages` on this resource
  """
  updatePages: Boolean!

  """
  Whether or not a user can perform `update_wiki` on this resource
  """
  updateWiki: Boolean!

  """
  Whether or not a 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

  """
  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!
}

type SentryDetailedError {
  """
  Count of occurrences
  """
  count: Int!

  """
  Culprit of the error
  """
  culprit: 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!]!

  """
  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!

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

  """
  Type of the error
  """
  type: String!

  """
  Count of users affected by the error
  """
  userCount: Int!
}

type SentryErrorFrequency {
  """
  Count of errors received since the previously recorded time
  """
  count: Int!

  """
  Time the error frequency stats were recorded
  """
  time: Time!
}

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

"""
Represents a snippet entry
"""
type Snippet implements Noteable {
  """
  The owner of the snippet
  """
  author: User!

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

  """
  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!
}

"""
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 {
  """
  Whether or not a user can perform `admin_snippet` on this resource
  """
  adminSnippet: Boolean!

  """
  Whether or not a user can perform `award_emoji` on this resource
  """
  awardEmoji: Boolean!

  """
  Whether or not a user can perform `create_note` on this resource
  """
  createNote: Boolean!

  """
  Whether or not a user can perform `read_snippet` on this resource
  """
  readSnippet: Boolean!

  """
  Whether or not a user can perform `report_snippet` on this resource
  """
  reportSnippet: Boolean!

  """
  Whether or not a user can perform `update_snippet` on this resource
  """
  updateSnippet: Boolean!
}

type Submodule implements Entry {
  flatPath: String!
  id: ID!
  name: String!
  path: String!

  """
  Last commit sha for entry
  """
  sha: String!
  treeUrl: String
  type: EntryType!
  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 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!]!

  """
  True when the emoji was awarded, false when it was removed
  """
  toggledOn: Boolean!
}

type 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
  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(
    """
    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 {
  flatPath: String!
  id: ID!
  name: String!
  path: String!

  """
  Last commit sha for entry
  """
  sha: String!
  type: EntryType!
  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
}

"""
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 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 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 {
  """
  Whether or not a user can perform `create_snippet` on this resource
  """
  createSnippet: Boolean!
}

enum VisibilityLevelsEnum {
  internal
  private
  public
}

enum VisibilityScopesEnum {
  internal
  private
  public
}