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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!
}

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

  """
  ID of the project to be added to Instance Security Dashboard
  """
  id: ID!
}

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  Project that was added to the Instance Security Dashboard
  """
  project: Project
}

"""
Autogenerated input type of AdminSidekiqQueuesDeleteJobs
"""
input AdminSidekiqQueuesDeleteJobsInput {
  """
  Delete jobs matching caller_id in the context metadata
  """
  callerId: String

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

  """
  Delete jobs matching project in the context metadata
  """
  project: String

  """
  The name of the queue to delete jobs from
  """
  queueName: String!

  """
  Delete jobs matching related_class in the context metadata
  """
  relatedClass: String

  """
  Delete jobs matching root_namespace in the context metadata
  """
  rootNamespace: String

  """
  Delete jobs matching subscription_plan in the context metadata
  """
  subscriptionPlan: String

  """
  Delete jobs matching user in the context metadata
  """
  user: String
}

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  Information about the status of the deletion request
  """
  result: DeleteJobsResponse
}

"""
Describes an alert from the project's Alert Management
"""
type AlertManagementAlert {
  """
  Timestamp the alert was created
  """
  createdAt: Time

  """
  Description of the alert
  """
  description: String

  """
  Alert details
  """
  details: JSON

  """
  Timestamp the alert ended
  """
  endedAt: Time

  """
  Number of events of this alert
  """
  eventCount: Int

  """
  List of hosts the alert came from
  """
  hosts: [String!]

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

  """
  Internal ID of the GitLab issue attached to the alert
  """
  issueIid: ID

  """
  Monitoring tool the alert came from
  """
  monitoringTool: String

  """
  Service the alert came from
  """
  service: String

  """
  Severity of the alert
  """
  severity: AlertManagementSeverity

  """
  Timestamp the alert was raised
  """
  startedAt: Time

  """
  Status of the alert
  """
  status: AlertManagementStatus

  """
  Title of the alert
  """
  title: String

  """
  Timestamp the alert was last updated
  """
  updatedAt: Time
}

"""
The connection type for AlertManagementAlert.
"""
type AlertManagementAlertConnection {
  """
  A list of edges.
  """
  edges: [AlertManagementAlertEdge]

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

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

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

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

"""
Values for sorting alerts
"""
enum AlertManagementAlertSort {
  """
  Created time by ascending order
  """
  CREATED_TIME_ASC

  """
  Created time by descending order
  """
  CREATED_TIME_DESC

  """
  End time by ascending order
  """
  END_TIME_ASC

  """
  End time by descending order
  """
  END_TIME_DESC

  """
  Events count by ascending order
  """
  EVENTS_COUNT_ASC

  """
  Events count by descending order
  """
  EVENTS_COUNT_DESC

  """
  Severity by ascending order
  """
  SEVERITY_ASC

  """
  Severity by descending order
  """
  SEVERITY_DESC

  """
  Start time by ascending order
  """
  START_TIME_ASC

  """
  Start time by descending order
  """
  START_TIME_DESC

  """
  Status by ascending order
  """
  STATUS_ASC

  """
  Status by descending order
  """
  STATUS_DESC

  """
  Created time by ascending order
  """
  UPDATED_TIME_ASC

  """
  Created time by descending order
  """
  UPDATED_TIME_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
}

"""
Represents total number of alerts for the represented categories
"""
type AlertManagementAlertStatusCountsType {
  """
  Number of alerts with status ACKNOWLEDGED for the project
  """
  acknowledged: Int

  """
  Total number of alerts for the project
  """
  all: Int

  """
  Number of alerts with status IGNORED for the project
  """
  ignored: Int

  """
  Number of alerts with status TRIGGERED or ACKNOWLEDGED for the project
  """
  open: Int

  """
  Number of alerts with status RESOLVED for the project
  """
  resolved: Int

  """
  Number of alerts with status TRIGGERED for the project
  """
  triggered: Int
}

"""
Alert severity values
"""
enum AlertManagementSeverity {
  """
  Critical severity
  """
  CRITICAL

  """
  High severity
  """
  HIGH

  """
  Info severity
  """
  INFO

  """
  Low severity
  """
  LOW

  """
  Medium severity
  """
  MEDIUM

  """
  Unknown severity
  """
  UNKNOWN
}

"""
Alert status values
"""
enum AlertManagementStatus {
  """
  Acknowledged status
  """
  ACKNOWLEDGED

  """
  Ignored status
  """
  IGNORED

  """
  Resolved status
  """
  RESOLVED

  """
  Triggered status
  """
  TRIGGERED
}

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

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

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

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

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

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

type BaseService implements Service {
  """
  Indicates if the service is active
  """
  active: Boolean

  """
  Class name of the service
  """
  type: String
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  """
  Lists of the project board
  """
  lists(
    """
    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
  ): BoardListConnection

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

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

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

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

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

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

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

"""
Represents a list for an issue board
"""
type BoardList {
  """
  Assignee in the list
  """
  assignee: User

  """
  Indicates if list is collapsed for this user
  """
  collapsed: Boolean

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

  """
  Label of the list
  """
  label: Label

  """
  The current limit metric for the list
  """
  limitMetric: ListLimitMetric

  """
  Type of the list
  """
  listType: String!

  """
  Maximum number of issues in the list
  """
  maxIssueCount: Int

  """
  Maximum weight of issues in the list
  """
  maxIssueWeight: Int

  """
  Milestone of the list
  """
  milestone: Milestone

  """
  Position of list within the board
  """
  position: Int

  """
  Title of the list
  """
  title: String!
}

"""
The connection type for BoardList.
"""
type BoardListConnection {
  """
  A list of edges.
  """
  edges: [BoardListEdge]

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

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

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

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

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

  """
  The new limit metric type for the list.
  """
  limitMetric: ListLimitMetric

  """
  The global ID of the list.
  """
  listId: ID!

  """
  The new maximum issue count limit.
  """
  maxIssueCount: Int

  """
  The new maximum issue weight limit.
  """
  maxIssueWeight: Int
}

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  The updated list
  """
  list: BoardList
}

type Branch {
  """
  Commit for the branch
  """
  commit: Commit

  """
  Name of the branch
  """
  name: String!
}

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

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

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

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

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

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

  """
  Latest pipeline of the commit. Deprecated in 12.5: Use `pipelines`
  """
  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`. Deprecated in 12.5")

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

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

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

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

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

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

"""
Autogenerated return type of CreateAlertIssue
"""
type CreateAlertIssuePayload {
  """
  The alert after mutation
  """
  alert: AlertManagementAlert

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

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

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

  """
  The global id of the cluster to add an annotation to
  """
  clusterId: ID

  """
  The path to a file defining the dashboard on which the annotation should be added
  """
  dashboardPath: String!

  """
  The description of the annotation
  """
  description: String!

  """
  Timestamp indicating ending moment to which the annotation relates
  """
  endingAt: Time

  """
  The global id of the environment to add an annotation to
  """
  environmentId: ID

  """
  Timestamp indicating starting moment to which the annotation relates
  """
  startingAt: Time!
}

"""
Autogenerated return type of CreateAnnotation
"""
type CreateAnnotationPayload {
  """
  The created annotation
  """
  annotation: MetricsDashboardAnnotation

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!
}

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

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

  """
  Project full path the branch is associated with
  """
  projectPath: ID!

  """
  Branch name or commit SHA to create branch from
  """
  ref: String!
}

"""
Autogenerated return type of CreateBranch
"""
type CreateBranchPayload {
  """
  Branch after mutation
  """
  branch: Branch

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Indicates if the epic is confidential. Will be ignored if `confidential_epics` feature flag is disabled
  """
  confidential: Boolean

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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

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

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

  """
  The description of the iteration
  """
  description: String

  """
  The end date of the iteration
  """
  dueDate: String

  """
  The target group for the iteration
  """
  groupPath: ID!

  """
  The start date of the iteration
  """
  startDate: String

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

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  The created iteration
  """
  iteration: Iteration
}

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

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

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

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

  """
  Title of the requirement
  """
  title: String!
}

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  The requirement after mutation
  """
  requirement: Requirement
}

"""
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 paths to files uploaded in the snippet description
  """
  uploadedFiles: [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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

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

"""
The response from the AdminSidekiqQueuesDeleteJobs mutation.
"""
type DeleteJobsResponse {
  """
  Whether or not the entire queue was processed in time; if not, retrying the same request is safe
  """
  completed: Boolean

  """
  The number of matching jobs deleted
  """
  deletedJobs: Int

  """
  The queue size after processing
  """
  queueSize: Int
}

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

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

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

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

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

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

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

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

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

  """
  The URL of the full-sized image
  """
  image: String!

  """
  The URL of the design resized to fit within the bounds of 432x230. This will be `null` if the image has not been generated
  """
  imageV432x230: String

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  """
  The URL of the full-sized image
  """
  image: String!

  """
  The URL of the design resized to fit within the bounds of 432x230. This will be `null` if the image has not been generated
  """
  imageV432x230: String

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  """
  The URL of the full-sized image
  """
  image: String!

  """
  The URL of the design resized to fit within the bounds of 432x230. This will be `null` if the image has not been generated
  """
  imageV432x230: String

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

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

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

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

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

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

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

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

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

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

  """
  Errors encountered during execution of the mutation.
  """
  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!]!

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  """
  A deletion event
  """
  DELETION

  """
  A modification event
  """
  MODIFICATION

  """
  No change
  """
  NONE
}

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

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

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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  """
  Reason why vulnerability should be dismissed
  """
  comment: String

  """
  ID of the vulnerability to be dismissed
  """
  id: ID!
}

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  The vulnerability after dismissal
  """
  vulnerability: Vulnerability
}

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

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

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

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

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

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

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

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

  """
  Metrics dashboard schema for the environment
  """
  metricsDashboard(
    """
    Path to a file which defines metrics dashboard eg: 'config/prometheus/common_metrics.yml'
    """
    path: String!
  ): MetricsDashboard

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

  """
  State of the environment, for example: available/stopped
  """
  state: String!
}

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

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

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

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

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

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

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

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

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

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

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

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

    """
    Filter epics by iid for autocomplete
    """
    iidStartsWith: String

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

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

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

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

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

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

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

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

  """
  Indicates if the epic is confidential
  """
  confidential: Boolean

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

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

  """
  Total weight of open and closed issues in the epic and its descendants
  """
  descendantWeightSum: EpicDescendantWeights

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

  """
  Indicates if the epic has a parent epic
  """
  hasParent: Boolean!

  """
  Current health status of the epic
  """
  healthStatus: EpicHealthStatus

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  """
  The group the epic to mutate belongs to
  """
  groupPath: ID!

  """
  The iid of the epic to mutate
  """
  iid: ID!

  """
  The iid of the issue to be added
  """
  issueIid: String!

  """
  The project the issue belongs to
  """
  projectPath: ID!
}

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

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

  """
  The epic-issue relation
  """
  epicIssue: EpicIssue

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!
}

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

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

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

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

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

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

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

"""
Total weight of open and closed descendant issues
"""
type EpicDescendantWeights {
  """
  Total weight of completed (closed) issues in this epic, including epic descendants
  """
  closedIssues: Int

  """
  Total weight of opened issues in this epic, including epic descendants
  """
  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
}

"""
Health status of child issues
"""
type EpicHealthStatus {
  """
  Number of issues at risk
  """
  issuesAtRisk: Int

  """
  Number of issues that need attention
  """
  issuesNeedingAttention: Int

  """
  Number of issues on track
  """
  issuesOnTrack: Int
}

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

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

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

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

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

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

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

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

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

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

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

  """
  The designs associated with this issue. Deprecated in 12.2: Use `designCollection`
  """
  designs: DesignCollection @deprecated(reason: "Use `designCollection`. Deprecated in 12.2")

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

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

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

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

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

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

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

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

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

  """
  Current health status. Returns null if `save_issuable_health_status` feature flag is disabled.
  """
  healthStatus: HealthStatus

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

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

  """
  Iteration of the issue
  """
  iteration: Iteration

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  """
  The group the epic to mutate belongs to
  """
  groupPath: ID!

  """
  The iid of the epic to mutate
  """
  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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!
}

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

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

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

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

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

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

  """
  Reopen the epic
  """
  REOPEN
}

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

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

  """
  ID of the new parent epic
  """
  newParentId: 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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!
}

type GeoNode {
  """
  The maximum concurrency of container repository sync for this secondary node
  """
  containerRepositoriesMaxCapacity: Int

  """
  Indicates whether this Geo node is enabled
  """
  enabled: Boolean

  """
  The maximum concurrency of LFS/attachment backfill for this secondary node
  """
  filesMaxCapacity: Int

  """
  ID of this GeoNode
  """
  id: ID!

  """
  The URL defined on the primary node that secondary nodes should use to contact it
  """
  internalUrl: String

  """
  The interval (in days) in which the repository verification is valid. Once expired, it will be reverified
  """
  minimumReverificationInterval: Int

  """
  The unique identifier for this Geo node
  """
  name: String

  """
  Package file registries of the GeoNode. Available only when feature flag `geo_self_service_framework` is enabled
  """
  packageFileRegistries(
    """
    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

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

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

  """
  Indicates whether this Geo node is the primary
  """
  primary: Boolean

  """
  The maximum concurrency of repository backfill for this secondary node
  """
  reposMaxCapacity: Int

  """
  The namespaces that should be synced, if `selective_sync_type` == `namespaces`
  """
  selectiveSyncNamespaces(
    """
    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
  ): NamespaceConnection

  """
  The repository storages whose projects should be synced, if `selective_sync_type` == `shards`
  """
  selectiveSyncShards: [String!]

  """
  Indicates if syncing is limited to only specific groups, or shards
  """
  selectiveSyncType: String

  """
  Indicates if this secondary node will replicate blobs in Object Storage
  """
  syncObjectStorage: Boolean

  """
  The user-facing URL for this Geo node
  """
  url: String

  """
  The maximum concurrency of repository verification for this secondary node
  """
  verificationMaxCapacity: Int
}

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

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

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

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

  """
  API token for the Grafana integration. Deprecated in 12.7: Plain text token has been masked for security reasons
  """
  token: String! @deprecated(reason: "Plain text token has been masked for security reasons. Deprecated in 12.7")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    """
    Filter epics by iid for autocomplete
    """
    iidStartsWith: String

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

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

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

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

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

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

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

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

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

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

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

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

    """
    Filter epics by iid for autocomplete
    """
    iidStartsWith: String

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

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

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

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

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

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

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

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

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

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

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

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

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

    """
    ID of a user assigned to the issues, "none" and "any" values supported
    """
    assigneeId: String

    """
    Username of a user assigned to the issues
    """
    assigneeUsername: String

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

    """
    Issues closed after this date
    """
    closedAfter: Time

    """
    Issues closed before this date
    """
    closedBefore: Time

    """
    Issues created after this date
    """
    createdAfter: Time

    """
    Issues created before this date
    """
    createdBefore: Time

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

    """
    IID of the issue. For example, "1"
    """
    iid: String

    """
    List of IIDs of issues. For example, [1, 2]
    """
    iids: [String!]

    """
    Labels applied to this issue
    """
    labelName: [String]

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

    """
    Milestones applied to this issue
    """
    milestoneTitle: [String]

    """
    Search query for finding issues by title or description
    """
    search: String

    """
    Sort issues by this criteria
    """
    sort: IssueSort = created_desc

    """
    Current state of this issue
    """
    state: IssuableState

    """
    Issues updated after this date
    """
    updatedAfter: Time

    """
    Issues updated before this date
    """
    updatedBefore: Time
  ): IssueConnection

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

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

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

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

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

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

    """
    Filter iterations by state
    """
    state: IterationState

    """
    Fuzzy search by title
    """
    title: String
  ): IterationConnection

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

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

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

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

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

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

    """
    Return also milestones in all subgroups and subprojects
    """
    includeDescendants: Boolean

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

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

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

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

  """
  Parent group
  """
  parent: Group

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

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

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

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

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

    """
    Returns only the projects which have vulnerabilities
    """
    hasVulnerabilities: Boolean = false

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

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

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

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

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

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

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

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

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

    """
    List time logs within a date range where the logged date is equal to or before endDate
    """
    endDate: Time

    """
    List time-logs within a time range where the logged time is equal to or before endTime
    """
    endTime: 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 date range where the logged date is equal to or after startDate
    """
    startDate: Time

    """
    List time-logs within a time range where the logged time is equal to or after startTime
    """
    startTime: Time
  ): TimelogConnection!

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

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

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

  """
  Vulnerabilities reported on the projects in the group and its subgroups
  """
  vulnerabilities(
    """
    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 vulnerabilities by project
    """
    projectId: [ID!]

    """
    Filter vulnerabilities by report type
    """
    reportType: [VulnerabilityReportType!]

    """
    Filter vulnerabilities by severity
    """
    severity: [VulnerabilitySeverity!]

    """
    Filter vulnerabilities by state
    """
    state: [VulnerabilityState!]
  ): VulnerabilityConnection

  """
  Number of vulnerabilities per severity level, per day, for the projects in the group and its subgroups
  """
  vulnerabilitiesCountByDayAndSeverity(
    """
    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

    """
    Last day for which to fetch vulnerability history
    """
    endDate: ISO8601Date!

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

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

    """
    First day for which to fetch vulnerability history
    """
    startDate: ISO8601Date!
  ): VulnerabilitiesCountByDayAndSeverityConnection

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

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

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

"""
An ISO 8601-encoded date
"""
scalar ISO8601Date

type InstanceSecurityDashboard {
  """
  Projects selected in Instance Security Dashboard
  """
  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

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

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

  """
  The designs associated with this issue. Deprecated in 12.2: Use `designCollection`
  """
  designs: DesignCollection @deprecated(reason: "Use `designCollection`. Deprecated in 12.2")

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

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

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

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

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

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

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

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

  """
  Current health status. Returns null if `save_issuable_health_status` feature flag is disabled.
  """
  healthStatus: HealthStatus

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

  """
  Iteration of the issue
  """
  iteration: Iteration

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

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

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

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

  """
  The iteration to assign to the issue.
  """
  iterationId: ID

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

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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Label priority by ascending order
  """
  LABEL_PRIORITY_ASC

  """
  Label priority by descending order
  """
  LABEL_PRIORITY_DESC

  """
  Milestone due date by ascending order
  """
  MILESTONE_DUE_ASC

  """
  Milestone due date by descending order
  """
  MILESTONE_DUE_DESC

  """
  Priority by ascending order
  """
  PRIORITY_ASC

  """
  Priority by descending order
  """
  PRIORITY_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
}

"""
Represents an iteration object.
"""
type Iteration {
  """
  Timestamp of iteration creation
  """
  createdAt: Time!

  """
  Description of the iteration
  """
  description: String

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

  """
  ID of the iteration
  """
  id: ID!

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

  """
  State of the iteration
  """
  state: IterationState!

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

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

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

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

"""
The connection type for Iteration.
"""
type IterationConnection {
  """
  A list of edges.
  """
  edges: [IterationEdge]

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

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

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

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

"""
State of a GitLab iteration
"""
enum IterationState {
  all
  closed
  opened
  started
  upcoming
}

"""
Represents untyped JSON
"""
scalar JSON

type JiraImport {
  """
  Timestamp of when the Jira import was created
  """
  createdAt: Time

  """
  Project key for the imported Jira project
  """
  jiraProjectKey: String!

  """
  Timestamp of when the Jira import was scheduled
  """
  scheduledAt: Time

  """
  User that started the Jira import
  """
  scheduledBy: User
}

"""
The connection type for JiraImport.
"""
type JiraImportConnection {
  """
  A list of edges.
  """
  edges: [JiraImportEdge]

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

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

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

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

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

  """
  Project key of the importer Jira project
  """
  jiraProjectKey: String!

  """
  Project name of the importer Jira project
  """
  jiraProjectName: String

  """
  The project to import the Jira project into
  """
  projectPath: ID!
}

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  The Jira import data after mutation
  """
  jiraImport: JiraImport
}

type JiraService implements Service {
  """
  Indicates if the service is active
  """
  active: Boolean

  """
  Class name of the service
  """
  type: String
}

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
}

"""
List limit metric setting
"""
enum ListLimitMetric {
  all_metrics
  issue_count
  issue_weights
}

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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Default merge commit message of the merge request. Deprecated in 11.8: Use `defaultMergeCommitMessage`
  """
  mergeCommitMessage: String @deprecated(reason: "Use `defaultMergeCommitMessage`. Deprecated in 11.8")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Errors encountered during execution of the mutation.
  """
  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 MetricsDashboard {
  """
  Annotations added to the dashboard
  """
  annotations(
    """
    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

    """
    Timestamp marking date and time from which annotations need to be fetched
    """
    from: Time!

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

    """
    Timestamp marking date and time to which annotations need to be fetched
    """
    to: Time
  ): MetricsDashboardAnnotationConnection

  """
  Path to a file with the dashboard definition
  """
  path: String
}

type MetricsDashboardAnnotation {
  """
  Description of the annotation
  """
  description: String

  """
  Timestamp marking end of annotated time span
  """
  endingAt: Time

  """
  ID of the annotation
  """
  id: ID!

  """
  ID of a dashboard panel to which the annotation should be scoped
  """
  panelId: String

  """
  Timestamp marking start of annotated time span
  """
  startingAt: Time
}

"""
The connection type for MetricsDashboardAnnotation.
"""
type MetricsDashboardAnnotationConnection {
  """
  A list of edges.
  """
  edges: [MetricsDashboardAnnotationEdge]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

enum MilestoneStateEnum {
  active
  closed
}

"""
The position to which 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
  addProjectToSecurityDashboard(input: AddProjectToSecurityDashboardInput!): AddProjectToSecurityDashboardPayload
  adminSidekiqQueuesDeleteJobs(input: AdminSidekiqQueuesDeleteJobsInput!): AdminSidekiqQueuesDeleteJobsPayload
  boardListUpdateLimitMetrics(input: BoardListUpdateLimitMetricsInput!): BoardListUpdateLimitMetricsPayload
  createAlertIssue(input: CreateAlertIssueInput!): CreateAlertIssuePayload
  createAnnotation(input: CreateAnnotationInput!): CreateAnnotationPayload
  createBranch(input: CreateBranchInput!): CreateBranchPayload
  createDiffNote(input: CreateDiffNoteInput!): CreateDiffNotePayload
  createEpic(input: CreateEpicInput!): CreateEpicPayload
  createImageDiffNote(input: CreateImageDiffNoteInput!): CreateImageDiffNotePayload
  createIteration(input: CreateIterationInput!): CreateIterationPayload
  createNote(input: CreateNoteInput!): CreateNotePayload
  createRequirement(input: CreateRequirementInput!): CreateRequirementPayload
  createSnippet(input: CreateSnippetInput!): CreateSnippetPayload
  designManagementDelete(input: DesignManagementDeleteInput!): DesignManagementDeletePayload
  designManagementUpload(input: DesignManagementUploadInput!): DesignManagementUploadPayload
  destroyNote(input: DestroyNoteInput!): DestroyNotePayload
  destroySnippet(input: DestroySnippetInput!): DestroySnippetPayload
  dismissVulnerability(input: DismissVulnerabilityInput!): DismissVulnerabilityPayload
  epicAddIssue(input: EpicAddIssueInput!): EpicAddIssuePayload
  epicSetSubscription(input: EpicSetSubscriptionInput!): EpicSetSubscriptionPayload
  epicTreeReorder(input: EpicTreeReorderInput!): EpicTreeReorderPayload
  issueSetConfidential(input: IssueSetConfidentialInput!): IssueSetConfidentialPayload
  issueSetDueDate(input: IssueSetDueDateInput!): IssueSetDueDatePayload
  issueSetIteration(input: IssueSetIterationInput!): IssueSetIterationPayload
  issueSetWeight(input: IssueSetWeightInput!): IssueSetWeightPayload
  jiraImportStart(input: JiraImportStartInput!): JiraImportStartPayload
  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
  removeProjectFromSecurityDashboard(input: RemoveProjectFromSecurityDashboardInput!): RemoveProjectFromSecurityDashboardPayload
  todoMarkDone(input: TodoMarkDoneInput!): TodoMarkDonePayload
  todoRestore(input: TodoRestoreInput!): TodoRestorePayload
  todoRestoreMany(input: TodoRestoreManyInput!): TodoRestoreManyPayload
  todosMarkAllDone(input: TodosMarkAllDoneInput!): TodosMarkAllDonePayload
  toggleAwardEmoji(input: ToggleAwardEmojiInput!): ToggleAwardEmojiPayload
  updateAlertStatus(input: UpdateAlertStatusInput!): UpdateAlertStatusPayload
  updateEpic(input: UpdateEpicInput!): UpdateEpicPayload

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

  """
  Updates a Note. If the body of the Note contains only quick actions, the Note
  will be destroyed during the update, and no Note will be returned
  """
  updateNote(input: UpdateNoteInput!): UpdateNotePayload
  updateRequirement(input: UpdateRequirementInput!): UpdateRequirementPayload
  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

    """
    Returns only the projects which have vulnerabilities
    """
    hasVulnerabilities: Boolean = false

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

"""
The connection type for Namespace.
"""
type NamespaceConnection {
  """
  A list of edges.
  """
  edges: [NamespaceEdge]

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

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

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

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

type Note {
  """
  User who wrote this note
  """
  author: User!

  """
  Content of the note
  """
  body: String!

  """
  The GitLab Flavored Markdown rendering of `note`
  """
  bodyHtml: String

  """
  Indicates if this note is confidential
  """
  confidential: Boolean

  """
  Timestamp of the note creation
  """
  createdAt: Time!

  """
  The discussion this note is a part of
  """
  discussion: Discussion

  """
  ID of the note
  """
  id: ID!

  """
  The position of this note on a diff
  """
  position: DiffPosition

  """
  Project associated with the note
  """
  project: Project

  """
  Indicates if this note can be resolved. That is, if it is a resolvable discussion or simply a standalone note
  """
  resolvable: Boolean!

  """
  Timestamp of the note's resolution
  """
  resolvedAt: Time

  """
  User that resolved the discussion
  """
  resolvedBy: User

  """
  Indicates whether this note was created by the system or by a user
  """
  system: Boolean!

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

  """
  Permissions for the current user on the resource
  """
  userPermissions: NotePermissions!
}

"""
The connection type for Note.
"""
type NoteConnection {
  """
  A list of edges.
  """
  edges: [NoteEdge]

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

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

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

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

type NotePermissions {
  """
  Indicates the user can perform `admin_note` on this resource
  """
  adminNote: Boolean!

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

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

  """
  Indicates the user can perform `read_note` on this resource
  """
  readNote: Boolean!

  """
  Indicates the user can perform `resolve_note` on this resource
  """
  resolveNote: Boolean!
}

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

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

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

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

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

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

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

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

"""
Represents a package
"""
type Package {
  """
  The created date
  """
  createdAt: Time!

  """
  The ID of the package
  """
  id: ID!

  """
  The name of the package
  """
  name: String!

  """
  The type of the package
  """
  packageType: PackageTypeEnum!

  """
  The update date
  """
  updatedAt: Time!

  """
  The version of the package
  """
  version: String
}

"""
The connection type for Package.
"""
type PackageConnection {
  """
  A list of edges.
  """
  edges: [PackageEdge]

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

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

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

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

"""
Represents the sync and verification state of a package file
"""
type PackageFileRegistry {
  """
  Timestamp when the PackageFileRegistry was created
  """
  createdAt: Time

  """
  ID of the PackageFileRegistry
  """
  id: ID!

  """
  Error message during sync of the PackageFileRegistry
  """
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the PackageFileRegistry
  """
  lastSyncedAt: Time

  """
  ID of the PackageFile
  """
  packageFileId: ID!

  """
  Timestamp after which the PackageFileRegistry should be resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the PackageFileRegistry
  """
  retryCount: Int

  """
  Sync state of the PackageFileRegistry
  """
  state: RegistryState
}

"""
The connection type for PackageFileRegistry.
"""
type PackageFileRegistryConnection {
  """
  A list of edges.
  """
  edges: [PackageFileRegistryEdge]

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

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

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

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

enum PackageTypeEnum {
  """
  Packages from the composer package manager
  """
  COMPOSER

  """
  Packages from the conan package manager
  """
  CONAN

  """
  Packages from the maven package manager
  """
  MAVEN

  """
  Packages from the npm package manager
  """
  NPM

  """
  Packages from the nuget package manager
  """
  NUGET

  """
  Packages from the pypi package manager
  """
  PYPI
}

"""
Information about pagination in a connection.
"""
type PageInfo {
  """
  When paginating forwards, the cursor to continue.
  """
  endCursor: String

  """
  When paginating forwards, are there more items?
  """
  hasNextPage: Boolean!

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

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

type Pipeline {
  """
  Base SHA of the source branch
  """
  beforeSha: String

  """
  Timestamp of the pipeline's commit
  """
  committedAt: Time

  """
  Coverage percentage
  """
  coverage: Float

  """
  Timestamp of the pipeline's creation
  """
  createdAt: Time!

  """
  Detailed status of the pipeline
  """
  detailedStatus: DetailedStatus!

  """
  Duration of the pipeline in seconds
  """
  duration: Int

  """
  Timestamp of the pipeline's completion
  """
  finishedAt: Time

  """
  ID of the pipeline
  """
  id: ID!

  """
  Internal ID of the pipeline
  """
  iid: String!

  """
  SHA of the pipeline's commit
  """
  sha: String!

  """
  Timestamp when the pipeline was started
  """
  startedAt: Time

  """
  Status of the pipeline (CREATED, WAITING_FOR_RESOURCE, PREPARING, PENDING,
  RUNNING, FAILED, SUCCESS, CANCELED, SKIPPED, MANUAL, SCHEDULED)
  """
  status: PipelineStatusEnum!

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

  """
  Permissions for the current user on the resource
  """
  userPermissions: PipelinePermissions!
}

"""
The connection type for Pipeline.
"""
type PipelineConnection {
  """
  A list of edges.
  """
  edges: [PipelineEdge]

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

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

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

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

type PipelinePermissions {
  """
  Indicates the user can perform `admin_pipeline` on this resource
  """
  adminPipeline: Boolean!

  """
  Indicates the user can perform `destroy_pipeline` on this resource
  """
  destroyPipeline: Boolean!

  """
  Indicates the user can perform `update_pipeline` on this resource
  """
  updatePipeline: Boolean!
}

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

type Project {
  """
  A single Alert Management alert of the project
  """
  alertManagementAlert(
    """
    IID of the alert. For example, "1"
    """
    iid: String

    """
    Search criteria for filtering alerts. This will search on title, description, service, monitoring_tool.
    """
    search: String

    """
    Sort alerts by this criteria
    """
    sort: AlertManagementAlertSort

    """
    Alerts with the specified statues. For example, [TRIGGERED]
    """
    statuses: [AlertManagementStatus!]
  ): AlertManagementAlert

  """
  Counts of alerts by status for the project
  """
  alertManagementAlertStatusCounts: AlertManagementAlertStatusCountsType

  """
  Alert Management alerts of the project
  """
  alertManagementAlerts(
    """
    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

    """
    IID of the alert. For example, "1"
    """
    iid: String

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

    """
    Search criteria for filtering alerts. This will search on title, description, service, monitoring_tool.
    """
    search: String

    """
    Sort alerts by this criteria
    """
    sort: AlertManagementAlertSort

    """
    Alerts with the specified statues. For example, [TRIGGERED]
    """
    statuses: [AlertManagementStatus!]
  ): AlertManagementAlertConnection

  """
  Indicates the archived status of the project
  """
  archived: Boolean

  """
  Indicates if issues referenced by merge requests and commits within the default branch are closed automatically
  """
  autocloseReferencedIssues: Boolean

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

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

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

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

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

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

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

  """
  Indicates if the project stores Docker container images in a container registry
  """
  containerRegistryEnabled: Boolean

  """
  Timestamp of the project creation
  """
  createdAt: Time

  """
  Short description of the project
  """
  description: String

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

  """
  Environments of the project
  """
  environments(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

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

    """
    Name of the environment
    """
    name: String

    """
    Search query
    """
    search: String

    """
    States of environments that should be included in result
    """
    states: [String!]
  ): EnvironmentConnection

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

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

  """
  Grafana integration details for the project
  """
  grafanaIntegration: GrafanaIntegration

  """
  Group of the project
  """
  group: Group

  """
  URL to connect to the project via HTTPS
  """
  httpUrlToRepo: String

  """
  ID of the project
  """
  id: ID!

  """
  Status of import background job of the project
  """
  importStatus: String

  """
  A single issue of the project
  """
  issue(
    """
    ID of a user assigned to the issues, "none" and "any" values supported
    """
    assigneeId: String

    """
    Username of a user assigned to the issues
    """
    assigneeUsername: String

    """
    Issues closed after this date
    """
    closedAfter: Time

    """
    Issues closed before this date
    """
    closedBefore: Time

    """
    Issues created after this date
    """
    createdAfter: Time

    """
    Issues created before this date
    """
    createdBefore: Time

    """
    IID of the issue. For example, "1"
    """
    iid: String

    """
    List of IIDs of issues. For example, [1, 2]
    """
    iids: [String!]

    """
    Labels applied to this issue
    """
    labelName: [String]

    """
    Milestones applied to this issue
    """
    milestoneTitle: [String]

    """
    Search query for finding issues by title or description
    """
    search: String

    """
    Sort issues by this criteria
    """
    sort: IssueSort = created_desc

    """
    Current state of this issue
    """
    state: IssuableState

    """
    Issues updated after this date
    """
    updatedAfter: Time

    """
    Issues updated before this date
    """
    updatedBefore: Time
  ): Issue

  """
  Issues of the project
  """
  issues(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    ID of a user assigned to the issues, "none" and "any" values supported
    """
    assigneeId: String

    """
    Username of a user assigned to the issues
    """
    assigneeUsername: String

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

    """
    Issues closed after this date
    """
    closedAfter: Time

    """
    Issues closed before this date
    """
    closedBefore: Time

    """
    Issues created after this date
    """
    createdAfter: Time

    """
    Issues created before this date
    """
    createdBefore: Time

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

    """
    IID of the issue. For example, "1"
    """
    iid: String

    """
    List of IIDs of issues. For example, [1, 2]
    """
    iids: [String!]

    """
    Labels applied to this issue
    """
    labelName: [String]

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

    """
    Milestones applied to this issue
    """
    milestoneTitle: [String]

    """
    Search query for finding issues by title or description
    """
    search: String

    """
    Sort issues by this criteria
    """
    sort: IssueSort = created_desc

    """
    Current state of this issue
    """
    state: IssuableState

    """
    Issues updated after this date
    """
    updatedAfter: Time

    """
    Issues updated before this date
    """
    updatedBefore: Time
  ): IssueConnection

  """
  Indicates if Issues are enabled for the current user
  """
  issuesEnabled: Boolean

  """
  Status of Jira import background job of the project
  """
  jiraImportStatus: String

  """
  Jira imports into the project
  """
  jiraImports(
    """
    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
  ): JiraImportConnection

  """
  Indicates if CI/CD pipeline jobs are enabled for the current user
  """
  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(
    """
    IID of the merge request, for example `1`
    """
    iid: String

    """
    Array of IIDs of merge requests, for example `[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

    """
    IID of the merge request, for example `1`
    """
    iid: String

    """
    Array of IIDs of merge requests, for example `[1, 2]`
    """
    iids: [String!]

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

  """
  Indicates if Merge Requests are enabled for the current user
  """
  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

  """
  Packages of the project
  """
  packages(
    """
    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
  ): PackageConnection

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

  """
  A single release of the project. Available only when feature flag `graphql_release_data` is enabled
  """
  release(
    """
    The name of the tag associated to the release
    """
    tagName: String!
  ): Release

  """
  Releases of the project. Available only when feature flag `graphql_release_data` is enabled
  """
  releases(
    """
    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
  ): ReleaseConnection

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

  """
  Find a single requirement. Available only when feature flag `requirements_management` is enabled.
  """
  requirement(
    """
    IID of the requirement, e.g., "1"
    """
    iid: ID

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

    """
    List requirements by sort order
    """
    sort: Sort

    """
    Filter requirements by state
    """
    state: RequirementState
  ): Requirement

  """
  Number of requirements for the project by their state
  """
  requirementStatesCount: RequirementStatesCount

  """
  Find requirements. Available only when feature flag `requirements_management` is enabled.
  """
  requirements(
    """
    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

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

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

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

    """
    List requirements by sort order
    """
    sort: Sort

    """
    Filter requirements by state
    """
    state: RequirementState
  ): RequirementConnection

  """
  Detailed version of a Sentry error on the project
  """
  sentryDetailedError(
    """
    ID of the Sentry issue
    """
    id: ID!
  ): SentryDetailedError

  """
  Paginated collection of Sentry errors on the project
  """
  sentryErrors: SentryErrorCollection

  """
  E-mail address of the service desk.
  """
  serviceDeskAddress: String

  """
  Indicates if the project has service desk enabled.
  """
  serviceDeskEnabled: Boolean

  """
  Project services
  """
  services(
    """
    Indicates if the service is active
    """
    active: Boolean

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

    """
    Class name of the service
    """
    type: ServiceType
  ): ServiceConnection

  """
  Indicates if Shared Runners are enabled for 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

  """
  Indicates if Snippets are enabled for the current user
  """
  snippetsEnabled: Boolean

  """
  URL to connect to the project via SSH
  """
  sshUrlToRepo: String

  """
  Number of times the project has been starred
  """
  starCount: Int!

  """
  Statistics of the project
  """
  statistics: ProjectStatistics

  """
  The commit message used to apply merge request suggestions
  """
  suggestionCommitMessage: String

  """
  List of project topics (not Git tags)
  """
  tagList: String

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

  """
  Visibility of the project
  """
  visibility: String

  """
  Vulnerabilities reported on the project
  """
  vulnerabilities(
    """
    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 vulnerabilities by project
    """
    projectId: [ID!]

    """
    Filter vulnerabilities by report type
    """
    reportType: [VulnerabilityReportType!]

    """
    Filter vulnerabilities by severity
    """
    severity: [VulnerabilitySeverity!]

    """
    Filter vulnerabilities by state
    """
    state: [VulnerabilityState!]
  ): VulnerabilityConnection

  """
  Counts for each severity of vulnerability of the project
  """
  vulnerabilitySeveritiesCount: VulnerabilitySeveritiesCount

  """
  Web URL of the project
  """
  webUrl: String

  """
  Indicates if Wikis are enabled for the current user
  """
  wikiEnabled: Boolean
}

"""
The connection type for Project.
"""
type ProjectConnection {
  """
  A list of edges.
  """
  edges: [ProjectEdge]

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

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

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

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

type ProjectPermissions {
  """
  Indicates the user can perform `admin_operations` on this resource
  """
  adminOperations: Boolean!

  """
  Indicates the user can perform `admin_project` on this resource
  """
  adminProject: Boolean!

  """
  Indicates the user can perform `admin_remote_mirror` on this resource
  """
  adminRemoteMirror: Boolean!

  """
  Indicates the user can perform `admin_wiki` on this resource
  """
  adminWiki: Boolean!

  """
  Indicates the user can perform `archive_project` on this resource
  """
  archiveProject: Boolean!

  """
  Indicates the user can perform `change_namespace` on this resource
  """
  changeNamespace: Boolean!

  """
  Indicates the user can perform `change_visibility_level` on this resource
  """
  changeVisibilityLevel: Boolean!

  """
  Indicates the user can perform `create_deployment` on this resource
  """
  createDeployment: Boolean!

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

  """
  Indicates the user can perform `create_issue` on this resource
  """
  createIssue: Boolean!

  """
  Indicates the user can perform `create_label` on this resource
  """
  createLabel: Boolean!

  """
  Indicates the user can perform `create_merge_request_from` on this resource
  """
  createMergeRequestFrom: Boolean!

  """
  Indicates the user can perform `create_merge_request_in` on this resource
  """
  createMergeRequestIn: Boolean!

  """
  Indicates the user can perform `create_pages` on this resource
  """
  createPages: Boolean!

  """
  Indicates the user can perform `create_pipeline` on this resource
  """
  createPipeline: Boolean!

  """
  Indicates the user can perform `create_pipeline_schedule` on this resource
  """
  createPipelineSchedule: Boolean!

  """
  Indicates the user can perform `create_snippet` on this resource
  """
  createSnippet: Boolean!

  """
  Indicates the user can perform `create_wiki` on this resource
  """
  createWiki: Boolean!

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

  """
  Indicates the user can perform `destroy_pages` on this resource
  """
  destroyPages: Boolean!

  """
  Indicates the user can perform `destroy_wiki` on this resource
  """
  destroyWiki: Boolean!

  """
  Indicates the user can perform `download_code` on this resource
  """
  downloadCode: Boolean!

  """
  Indicates the user can perform `download_wiki_code` on this resource
  """
  downloadWikiCode: Boolean!

  """
  Indicates the user can perform `fork_project` on this resource
  """
  forkProject: Boolean!

  """
  Indicates the user can perform `push_code` on this resource
  """
  pushCode: Boolean!

  """
  Indicates the user can perform `push_to_delete_protected_branch` on this resource
  """
  pushToDeleteProtectedBranch: Boolean!

  """
  Indicates the user can perform `read_commit_status` on this resource
  """
  readCommitStatus: Boolean!

  """
  Indicates the user can perform `read_cycle_analytics` on this resource
  """
  readCycleAnalytics: Boolean!

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

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

  """
  Indicates the user can perform `read_pages_content` on this resource
  """
  readPagesContent: Boolean!

  """
  Indicates the user can perform `read_project` on this resource
  """
  readProject: Boolean!

  """
  Indicates the user can perform `read_project_member` on this resource
  """
  readProjectMember: Boolean!

  """
  Indicates the user can perform `read_wiki` on this resource
  """
  readWiki: Boolean!

  """
  Indicates the user can perform `remove_fork_project` on this resource
  """
  removeForkProject: Boolean!

  """
  Indicates the user can perform `remove_pages` on this resource
  """
  removePages: Boolean!

  """
  Indicates the user can perform `remove_project` on this resource
  """
  removeProject: Boolean!

  """
  Indicates the user can perform `rename_project` on this resource
  """
  renameProject: Boolean!

  """
  Indicates the user can perform `request_access` on this resource
  """
  requestAccess: Boolean!

  """
  Indicates the user can perform `update_pages` on this resource
  """
  updatePages: Boolean!

  """
  Indicates the user can perform `update_wiki` on this resource
  """
  updateWiki: Boolean!

  """
  Indicates the user can perform `upload_file` on this resource
  """
  uploadFile: Boolean!
}

type ProjectStatistics {
  """
  Build artifacts size of the project
  """
  buildArtifactsSize: Float!

  """
  Commit count of the project
  """
  commitCount: Float!

  """
  Large File Storage (LFS) object size of the project
  """
  lfsObjectsSize: Float!

  """
  Packages size of the project
  """
  packagesSize: Float!

  """
  Repository size of the project
  """
  repositorySize: Float!

  """
  Storage size of the project
  """
  storageSize: Float!

  """
  Wiki size of the project
  """
  wikiSize: Float
}

type Query {
  """
  Get information about current user
  """
  currentUser: User

  """
  Fields related to design management
  """
  designManagement: DesignManagement!

  """
  Text to echo back
  """
  echo(
    """
    Text to echo back
    """
    text: String!
  ): String!

  """
  Find a Geo node
  """
  geoNode(
    """
    The name of the Geo node. Defaults to the current Geo node name.
    """
    name: String
  ): GeoNode

  """
  Find a group
  """
  group(
    """
    The full path of the project, group or namespace, e.g., "gitlab-org/gitlab-foss"
    """
    fullPath: ID!
  ): Group

  """
  Fields related to Instance Security Dashboard
  """
  instanceSecurityDashboard: InstanceSecurityDashboard

  """
  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 projects visible to the current user
  """
  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

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

    """
    Limit projects that the current user is a member of
    """
    membership: Boolean

    """
    Search criteria
    """
    search: String
  ): ProjectConnection

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

  """
  Vulnerabilities reported on projects on the current user's instance security dashboard
  """
  vulnerabilities(
    """
    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 vulnerabilities by project
    """
    projectId: [ID!]

    """
    Filter vulnerabilities by report type
    """
    reportType: [VulnerabilityReportType!]

    """
    Filter vulnerabilities by severity
    """
    severity: [VulnerabilitySeverity!]

    """
    Filter vulnerabilities by state
    """
    state: [VulnerabilityState!]
  ): VulnerabilityConnection

  """
  Number of vulnerabilities per severity level, per day, for the projects on the current user's instance security dashboard
  """
  vulnerabilitiesCountByDayAndSeverity(
    """
    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

    """
    Last day for which to fetch vulnerability history
    """
    endDate: ISO8601Date!

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

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

    """
    First day for which to fetch vulnerability history
    """
    startDate: ISO8601Date!
  ): VulnerabilitiesCountByDayAndSeverityConnection
}

"""
State of a Geo registry.
"""
enum RegistryState {
  """
  Registry that failed to sync
  """
  FAILED

  """
  Registry waiting to be synced
  """
  PENDING

  """
  Registry currently syncing
  """
  STARTED

  """
  Registry that is synced
  """
  SYNCED
}

type Release {
  """
  User that created the release
  """
  author: User

  """
  The commit associated with the release
  """
  commit: Commit

  """
  Timestamp of when the release was created
  """
  createdAt: Time

  """
  Description (also known as "release notes") of the release
  """
  description: String

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

  """
  Milestones associated to the release
  """
  milestones(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

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

  """
  Name of the release
  """
  name: String

  """
  Timestamp of when the release was released
  """
  releasedAt: Time

  """
  Name of the tag associated with the release
  """
  tagName: String!

  """
  Relative web path to the tag associated with the release
  """
  tagPath: String
}

"""
The connection type for Release.
"""
type ReleaseConnection {
  """
  A list of edges.
  """
  edges: [ReleaseEdge]

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

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

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

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

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!
}

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

  """
  ID of the project to remove from the Instance Security Dashboard
  """
  id: ID!
}

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

  """
  Errors encountered during execution of the mutation.
  """
  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
}

"""
Represents a requirement.
"""
type Requirement {
  """
  Author of the requirement
  """
  author: User!

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

  """
  ID of the requirement
  """
  id: ID!

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

  """
  Project to which the requirement belongs
  """
  project: Project!

  """
  State of the requirement
  """
  state: RequirementState!

  """
  Title of the requirement
  """
  title: String

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

  """
  Permissions for the current user on the resource
  """
  userPermissions: RequirementPermissions!
}

"""
The connection type for Requirement.
"""
type RequirementConnection {
  """
  A list of edges.
  """
  edges: [RequirementEdge]

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

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

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

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

"""
Check permissions for the current user on a requirement
"""
type RequirementPermissions {
  """
  Indicates the user can perform `admin_requirement` on this resource
  """
  adminRequirement: Boolean!

  """
  Indicates the user can perform `create_requirement` on this resource
  """
  createRequirement: Boolean!

  """
  Indicates the user can perform `destroy_requirement` on this resource
  """
  destroyRequirement: Boolean!

  """
  Indicates the user can perform `read_requirement` on this resource
  """
  readRequirement: Boolean!

  """
  Indicates the user can perform `update_requirement` on this resource
  """
  updateRequirement: Boolean!
}

"""
State of a requirement
"""
enum RequirementState {
  ARCHIVED
  OPENED
}

"""
Counts of requirements by their state.
"""
type RequirementStatesCount {
  """
  Number of archived requirements
  """
  archived: Int

  """
  Number of opened requirements
  """
  opened: Int
}

type RootStorageStatistics {
  """
  The CI artifacts size in bytes
  """
  buildArtifactsSize: Float!

  """
  The LFS objects size in bytes
  """
  lfsObjectsSize: Float!

  """
  The packages size in bytes
  """
  packagesSize: Float!

  """
  The Git repository size in bytes
  """
  repositorySize: Float!

  """
  The total storage in bytes
  """
  storageSize: Float!

  """
  The wiki size in bytes
  """
  wikiSize: Float!
}

"""
A Sentry error.
"""
type SentryDetailedError {
  """
  Count of occurrences
  """
  count: Int!

  """
  Culprit of the error
  """
  culprit: String!

  """
  External Base URL of the Sentry Instance
  """
  externalBaseUrl: String!

  """
  External URL of the error
  """
  externalUrl: String!

  """
  Commit the error was first seen
  """
  firstReleaseLastCommit: String

  """
  Release version the error was first seen
  """
  firstReleaseShortVersion: String

  """
  Timestamp when the error was first seen
  """
  firstSeen: Time!

  """
  Last 24hr stats of the error
  """
  frequency: [SentryErrorFrequency!]!

  """
  GitLab commit SHA attributed to the Error based on the release version
  """
  gitlabCommit: String

  """
  Path to the GitLab page for the GitLab commit attributed to the error
  """
  gitlabCommitPath: String

  """
  URL of GitLab Issue
  """
  gitlabIssuePath: String

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

  """
  Commit the error was last seen
  """
  lastReleaseLastCommit: String

  """
  Release version the error was last seen
  """
  lastReleaseShortVersion: String

  """
  Timestamp when the error was last seen
  """
  lastSeen: Time!

  """
  Sentry metadata message of the error
  """
  message: String

  """
  ID (Sentry ID) of the error
  """
  sentryId: String!

  """
  ID of the project (Sentry project)
  """
  sentryProjectId: ID!

  """
  Name of the project affected by the error
  """
  sentryProjectName: String!

  """
  Slug of the project affected by the error
  """
  sentryProjectSlug: String!

  """
  Short ID (Sentry ID) of the error
  """
  shortId: String!

  """
  Status of the error
  """
  status: SentryErrorStatus!

  """
  Tags associated with the Sentry Error
  """
  tags: SentryErrorTags!

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

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

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

"""
A Sentry error. A simplified version of SentryDetailedError.
"""
type SentryError {
  """
  Count of occurrences
  """
  count: Int!

  """
  Culprit of the error
  """
  culprit: String!

  """
  External URL of the error
  """
  externalUrl: String!

  """
  Timestamp when the error was first seen
  """
  firstSeen: Time!

  """
  Last 24hr stats of the error
  """
  frequency: [SentryErrorFrequency!]!

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

  """
  Timestamp when the error was last seen
  """
  lastSeen: Time!

  """
  Sentry metadata message of the error
  """
  message: String

  """
  ID (Sentry ID) of the error
  """
  sentryId: String!

  """
  ID of the project (Sentry project)
  """
  sentryProjectId: ID!

  """
  Name of the project affected by the error
  """
  sentryProjectName: String!

  """
  Slug of the project affected by the error
  """
  sentryProjectSlug: String!

  """
  Short ID (Sentry ID) of the error
  """
  shortId: String!

  """
  Status of the error
  """
  status: SentryErrorStatus!

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

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

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

"""
An object containing a collection of Sentry errors, and a detailed error.
"""
type SentryErrorCollection {
  """
  Detailed version of a Sentry error on the project
  """
  detailedError(
    """
    ID of the Sentry issue
    """
    id: ID!
  ): SentryDetailedError

  """
  Stack Trace of Sentry Error
  """
  errorStackTrace(
    """
    ID of the Sentry issue
    """
    id: ID!
  ): SentryErrorStackTrace

  """
  Collection of Sentry Errors
  """
  errors(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

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

    """
    Search term for the Sentry error.
    """
    searchTerm: String

    """
    Attribute to sort on. Options are frequency, first_seen, last_seen. last_seen is default.
    """
    sort: String
  ): SentryErrorConnection

  """
  External URL for Sentry
  """
  externalUrl: String
}

"""
The connection type for SentryError.
"""
type SentryErrorConnection {
  """
  A list of edges.
  """
  edges: [SentryErrorEdge]

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

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

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

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

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

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

"""
An object containing a stack trace entry for a Sentry error.
"""
type SentryErrorStackTrace {
  """
  Time the stack trace was received by Sentry
  """
  dateReceived: String!

  """
  ID of the Sentry error
  """
  issueId: String!

  """
  Stack trace entries for the Sentry error
  """
  stackTraceEntries: [SentryErrorStackTraceEntry!]!
}

"""
An object context for a Sentry error stack trace
"""
type SentryErrorStackTraceContext {
  """
  Code number of the context
  """
  code: String!

  """
  Line number of the context
  """
  line: Int!
}

"""
An object containing a stack trace entry for a Sentry error.
"""
type SentryErrorStackTraceEntry {
  """
  Function in which the Sentry error occurred
  """
  col: String

  """
  File in which the Sentry error occurred
  """
  fileName: String

  """
  Function in which the Sentry error occurred
  """
  function: String

  """
  Function in which the Sentry error occurred
  """
  line: String

  """
  Context of the Sentry error
  """
  traceContext: [SentryErrorStackTraceContext!]
}

"""
State of a Sentry error
"""
enum SentryErrorStatus {
  """
  Error has been ignored
  """
  IGNORED

  """
  Error has been resolved
  """
  RESOLVED

  """
  Error has been ignored until next release
  """
  RESOLVED_IN_NEXT_RELEASE

  """
  Error is unresolved
  """
  UNRESOLVED
}

"""
State of a Sentry error
"""
type SentryErrorTags {
  """
  Severity level of the Sentry Error
  """
  level: String

  """
  Logger of the Sentry Error
  """
  logger: String
}

interface Service {
  """
  Indicates if the service is active
  """
  active: Boolean

  """
  Class name of the service
  """
  type: String
}

"""
The connection type for Service.
"""
type ServiceConnection {
  """
  A list of edges.
  """
  edges: [ServiceEdge]

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

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

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

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

enum ServiceType {
  ALERTS_SERVICE
  ASANA_SERVICE
  ASSEMBLA_SERVICE
  BAMBOO_SERVICE
  BUGZILLA_SERVICE
  BUILDKITE_SERVICE
  CAMPFIRE_SERVICE
  CUSTOM_ISSUE_TRACKER_SERVICE
  DISCORD_SERVICE
  DRONE_CI_SERVICE
  EMAILS_ON_PUSH_SERVICE
  EXTERNAL_WIKI_SERVICE
  FLOWDOCK_SERVICE
  GITHUB_SERVICE
  HANGOUTS_CHAT_SERVICE
  HIPCHAT_SERVICE
  IRKER_SERVICE
  JENKINS_SERVICE
  JIRA_SERVICE
  MATTERMOST_SERVICE
  MATTERMOST_SLASH_COMMANDS_SERVICE
  MICROSOFT_TEAMS_SERVICE
  PACKAGIST_SERVICE
  PIPELINES_EMAIL_SERVICE
  PIVOTALTRACKER_SERVICE
  PROMETHEUS_SERVICE
  PUSHOVER_SERVICE
  REDMINE_SERVICE
  SLACK_SERVICE
  SLACK_SLASH_COMMANDS_SERVICE
  TEAMCITY_SERVICE
  UNIFY_CIRCUIT_SERVICE
  WEBEX_TEAMS_SERVICE
  YOUTRACK_SERVICE
}

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

  """
  Snippet blob
  """
  blob: SnippetBlob!

  """
  Timestamp this snippet was created
  """
  createdAt: Time!

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

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

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

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

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

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

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

  """
  HTTP URL to the snippet repository
  """
  httpUrlToRepo: 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!

  """
  SSH URL to the snippet repository
  """
  sshUrlToRepo: String

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

  """
  Timestamp this snippet was updated
  """
  updatedAt: Time!

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

  """
  Visibility Level of the snippet
  """
  visibilityLevel: VisibilityLevelsEnum!

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

"""
Represents the snippet blob
"""
type SnippetBlob {
  """
  Shows whether the blob is binary
  """
  binary: Boolean!

  """
  Blob external storage
  """
  externalStorage: String

  """
  Blob mode
  """
  mode: String

  """
  Blob name
  """
  name: String

  """
  Blob path
  """
  path: String

  """
  Blob plain highlighted data
  """
  plainData: String

  """
  Blob raw content endpoint path
  """
  rawPath: String!

  """
  Shows whether the blob is rendered as text
  """
  renderedAsText: Boolean!

  """
  Blob highlighted data
  """
  richData: String

  """
  Blob content rich viewer
  """
  richViewer: SnippetBlobViewer

  """
  Blob content simple viewer
  """
  simpleViewer: SnippetBlobViewer!

  """
  Blob size
  """
  size: Int!
}

"""
Represents how the blob content should be displayed
"""
type SnippetBlobViewer {
  """
  Shows whether the blob should be displayed collapsed
  """
  collapsed: Boolean!

  """
  Content file type
  """
  fileType: String!

  """
  Shows whether the blob content is loaded async
  """
  loadAsync: Boolean!

  """
  Loading partial name
  """
  loadingPartialName: String!

  """
  Error rendering the blob content
  """
  renderError: String

  """
  Shows whether the blob too large to be displayed
  """
  tooLarge: Boolean!

  """
  Type of blob viewer
  """
  type: BlobViewersType!
}

"""
The connection type for Snippet.
"""
type SnippetConnection {
  """
  A list of edges.
  """
  edges: [SnippetEdge]

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

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

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

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

type SnippetPermissions {
  """
  Indicates the user can perform `admin_snippet` on this resource
  """
  adminSnippet: Boolean!

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

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

  """
  Indicates the user can perform `read_snippet` on this resource
  """
  readSnippet: Boolean!

  """
  Indicates the user can perform `report_snippet` on this resource
  """
  reportSnippet: Boolean!

  """
  Indicates the user can perform `update_snippet` on this resource
  """
  updateSnippet: Boolean!
}

"""
Common sort values
"""
enum Sort {
  """
  Created at ascending order
  """
  created_asc

  """
  Created at descending order
  """
  created_desc

  """
  Updated at ascending order
  """
  updated_asc

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

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

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

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

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

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

  """
  Tree URL for the sub-module
  """
  treeUrl: String

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

  """
  Web URL for the sub-module
  """
  webUrl: String
}

"""
The connection type for Submodule.
"""
type SubmoduleConnection {
  """
  A list of edges.
  """
  edges: [SubmoduleEdge]

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

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

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

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

"""
Completion status of tasks
"""
type TaskCompletionStatus {
  """
  Number of completed tasks
  """
  completedCount: Int!

  """
  Number of total tasks
  """
  count: Int!
}

"""
Time represented in ISO 8601
"""
scalar Time

type Timelog {
  """
  Timestamp of when the time tracked was spent at. Deprecated in 12.10: Use `spentAt`
  """
  date: Time! @deprecated(reason: "Use `spentAt`. Deprecated in 12.10")

  """
  The issue that logged time was added to
  """
  issue: Issue

  """
  Timestamp of when the time tracked was spent at
  """
  spentAt: Time

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  The requested todo
  """
  todo: Todo!
}

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

  """
  The global id of the todo to restore
  """
  id: ID!
}

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

  """
  The global ids of the todos to restore (a maximum of 50 is supported at once)
  """
  ids: [ID!]!
}

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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  The ids of the updated todo items
  """
  updatedIds: [ID!]!
}

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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Errors encountered during execution of the mutation.
  """
  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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  Indicates the status of the emoji. True if the toggle awarded the emoji, and false if the toggle removed the emoji.
  """
  toggledOn: Boolean!
}

type Tree {
  """
  Blobs of the tree
  """
  blobs(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

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

  """
  Last commit for the tree
  """
  lastCommit: Commit

  """
  Sub-modules of the tree
  """
  submodules(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

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

  """
  Trees of the tree
  """
  trees(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

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

"""
Represents a directory
"""
type TreeEntry implements Entry {
  """
  Flat path of the entry
  """
  flatPath: String!

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

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

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

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

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

  """
  Web URL for the tree entry (directory)
  """
  webUrl: String
}

"""
The connection type for TreeEntry.
"""
type TreeEntryConnection {
  """
  A list of edges.
  """
  edges: [TreeEntryEdge]

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

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

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

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

enum TypeEnum {
  personal
  project
}

"""
Autogenerated input type of UpdateAlertStatus
"""
input UpdateAlertStatusInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The iid of the alert to mutate
  """
  iid: String!

  """
  The project the alert to mutate is in
  """
  projectPath: ID!

  """
  The status to set the alert
  """
  status: AlertManagementStatus!
}

"""
Autogenerated return type of UpdateAlertStatus
"""
type UpdateAlertStatusPayload {
  """
  The alert after mutation
  """
  alert: AlertManagementAlert

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  The issue created after mutation
  """
  issue: Issue
}

input UpdateDiffImagePositionInput {
  """
  Total height of the image
  """
  height: Int

  """
  Total width of the image
  """
  width: Int

  """
  X position of the note
  """
  x: Int

  """
  Y position of the note
  """
  y: Int
}

"""
Autogenerated input type of UpdateEpic
"""
input UpdateEpicInput {
  """
  The IDs of labels to be added to the epic.
  """
  addLabelIds: [ID!]

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Indicates if the epic is confidential. Will be ignored if `confidential_epics` feature flag is disabled
  """
  confidential: Boolean

  """
  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: 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

  """
  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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!
}

"""
Autogenerated input type of UpdateImageDiffNote
"""
input UpdateImageDiffNoteInput {
  """
  Content of the note
  """
  body: String

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The global id of the note to update
  """
  id: ID!

  """
  The position of this note on a diff
  """
  position: UpdateDiffImagePositionInput
}

"""
Autogenerated return type of UpdateImageDiffNote
"""
type UpdateImageDiffNotePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  The note after mutation
  """
  note: Note
}

"""
Autogenerated input type of UpdateIssue
"""
input UpdateIssueInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Indicates the issue is confidential
  """
  confidential: Boolean

  """
  Description of the issue
  """
  description: String

  """
  Due date of the issue
  """
  dueDate: Time

  """
  The desired health status
  """
  healthStatus: HealthStatus

  """
  The iid of the issue to mutate
  """
  iid: String!

  """
  The project the issue to mutate is in
  """
  projectPath: ID!

  """
  Title of the issue
  """
  title: String
}

"""
Autogenerated return type of UpdateIssue
"""
type UpdateIssuePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  The issue after mutation
  """
  issue: Issue
}

"""
Autogenerated input type of UpdateNote
"""
input UpdateNoteInput {
  """
  Content of the note
  """
  body: String!

  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The global id of the note to update
  """
  id: ID!
}

"""
Autogenerated return type of UpdateNote
"""
type UpdateNotePayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  The note after mutation
  """
  note: Note
}

"""
Autogenerated input type of UpdateRequirement
"""
input UpdateRequirementInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  The iid of the requirement to update
  """
  iid: String!

  """
  The project full path the requirement is associated with
  """
  projectPath: ID!

  """
  State of the requirement
  """
  state: RequirementState

  """
  Title of the requirement
  """
  title: String
}

"""
Autogenerated return type of UpdateRequirement
"""
type UpdateRequirementPayload {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  The requirement after mutation
  """
  requirement: Requirement
}

"""
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

  """
  Errors encountered during execution of the mutation.
  """
  errors: [String!]!

  """
  The snippet after mutation
  """
  snippet: Snippet
}

scalar Upload

type User {
  """
  URL of the user's avatar
  """
  avatarUrl: String

  """
  ID of the user
  """
  id: ID!

  """
  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

  """
  State of the issue
  """
  state: String!

  """
  Todos of the user
  """
  todos(
    """
    The action to be filtered
    """
    action: [TodoActionEnum!]

    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    The ID of an author
    """
    authorId: [ID!]

    """
    Returns the elements in the list that come before the specified cursor.
    """
    before: String

    """
    Returns the first _n_ elements from the list.
    """
    first: Int

    """
    The ID of a group
    """
    groupId: [ID!]

    """
    Returns the last _n_ elements from the list.
    """
    last: Int

    """
    The ID of a project
    """
    projectId: [ID!]

    """
    The state of the todo
    """
    state: [TodoStateEnum!]

    """
    The type of the todo
    """
    type: [TodoTargetEnum!]
  ): TodoConnection!

  """
  Permissions for the current user on the resource
  """
  userPermissions: UserPermissions!

  """
  Username of the user. Unique within this instance of GitLab
  """
  username: String!

  """
  Web URL of the user
  """
  webUrl: String!
}

"""
The connection type for User.
"""
type UserConnection {
  """
  A list of edges.
  """
  edges: [UserEdge]

  """
  A list of nodes.
  """
  nodes: [User]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type UserEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: User
}

type UserPermissions {
  """
  Indicates the user can perform `create_snippet` on this resource
  """
  createSnippet: Boolean!
}

enum VisibilityLevelsEnum {
  internal
  private
  public
}

enum VisibilityScopesEnum {
  internal
  private
  public
}

"""
Represents the number of vulnerabilities for a particular severity on a particular day
"""
type VulnerabilitiesCountByDayAndSeverity {
  """
  Number of vulnerabilities
  """
  count: Int

  """
  Date for the count
  """
  day: ISO8601Date

  """
  Severity of the counted vulnerabilities
  """
  severity: VulnerabilitySeverity
}

"""
The connection type for VulnerabilitiesCountByDayAndSeverity.
"""
type VulnerabilitiesCountByDayAndSeverityConnection {
  """
  A list of edges.
  """
  edges: [VulnerabilitiesCountByDayAndSeverityEdge]

  """
  A list of nodes.
  """
  nodes: [VulnerabilitiesCountByDayAndSeverity]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type VulnerabilitiesCountByDayAndSeverityEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: VulnerabilitiesCountByDayAndSeverity
}

"""
Represents a vulnerability.
"""
type Vulnerability {
  """
  Description of the vulnerability
  """
  description: String

  """
  GraphQL ID of the vulnerability
  """
  id: ID!

  """
  Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability
  """
  location: VulnerabilityLocation

  """
  The project on which the vulnerability was found
  """
  project: Project

  """
  Type of the security report that found the vulnerability (SAST, DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST)
  """
  reportType: VulnerabilityReportType

  """
  Severity of the vulnerability (INFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL)
  """
  severity: VulnerabilitySeverity

  """
  State of the vulnerability (DETECTED, DISMISSED, RESOLVED, CONFIRMED)
  """
  state: VulnerabilityState

  """
  Title of the vulnerability
  """
  title: String

  """
  Permissions for the current user on the resource
  """
  userPermissions: VulnerabilityPermissions!

  """
  URL to the vulnerability's details page
  """
  vulnerabilityPath: String
}

"""
The connection type for Vulnerability.
"""
type VulnerabilityConnection {
  """
  A list of edges.
  """
  edges: [VulnerabilityEdge]

  """
  A list of nodes.
  """
  nodes: [Vulnerability]

  """
  Information to aid in pagination.
  """
  pageInfo: PageInfo!
}

"""
An edge in a connection.
"""
type VulnerabilityEdge {
  """
  A cursor for use in pagination.
  """
  cursor: String!

  """
  The item at the end of the edge.
  """
  node: Vulnerability
}

"""
Represents a vulnerability location. The fields with data will depend on the vulnerability report type
"""
union VulnerabilityLocation = VulnerabilityLocationContainerScanning | VulnerabilityLocationDast | VulnerabilityLocationDependencyScanning | VulnerabilityLocationSast

"""
Represents the location of a vulnerability found by a container security scan
"""
type VulnerabilityLocationContainerScanning {
  """
  Dependency containing the vulnerability
  """
  dependency: VulnerableDependency

  """
  Name of the vulnerable container image
  """
  image: String

  """
  Operating system that runs on the vulnerable container image
  """
  operatingSystem: String
}

"""
Represents the location of a vulnerability found by a DAST scan
"""
type VulnerabilityLocationDast {
  """
  Domain name of the vulnerable request
  """
  hostname: String

  """
  Query parameter for the URL on which the vulnerability occurred
  """
  param: String

  """
  URL path and query string of the vulnerable request
  """
  path: String

  """
  HTTP method of the vulnerable request
  """
  requestMethod: String
}

"""
Represents the location of a vulnerability found by a dependency security scan
"""
type VulnerabilityLocationDependencyScanning {
  """
  Dependency containing the vulnerability
  """
  dependency: VulnerableDependency

  """
  Path to the vulnerable file
  """
  file: String
}

"""
Represents the location of a vulnerability found by a SAST scan
"""
type VulnerabilityLocationSast {
  """
  Number of the last relevant line in the vulnerable file
  """
  endLine: String

  """
  Path to the vulnerable file
  """
  file: String

  """
  Number of the first relevant line in the vulnerable file
  """
  startLine: String

  """
  Class containing the vulnerability
  """
  vulnerableClass: String

  """
  Method containing the vulnerability
  """
  vulnerableMethod: String
}

"""
Check permissions for the current user on a vulnerability
"""
type VulnerabilityPermissions {
  """
  Indicates the user can perform `admin_vulnerability` on this resource
  """
  adminVulnerability: Boolean!

  """
  Indicates the user can perform `admin_vulnerability_issue_link` on this resource
  """
  adminVulnerabilityIssueLink: Boolean!

  """
  Indicates the user can perform `create_vulnerability` on this resource
  """
  createVulnerability: Boolean!

  """
  Indicates the user can perform `create_vulnerability_export` on this resource
  """
  createVulnerabilityExport: Boolean!

  """
  Indicates the user can perform `create_vulnerability_feedback` on this resource
  """
  createVulnerabilityFeedback: Boolean!

  """
  Indicates the user can perform `destroy_vulnerability_feedback` on this resource
  """
  destroyVulnerabilityFeedback: Boolean!

  """
  Indicates the user can perform `read_vulnerability_feedback` on this resource
  """
  readVulnerabilityFeedback: Boolean!

  """
  Indicates the user can perform `update_vulnerability_feedback` on this resource
  """
  updateVulnerabilityFeedback: Boolean!
}

"""
The type of the security scan that found the vulnerability.
"""
enum VulnerabilityReportType {
  CONTAINER_SCANNING
  DAST
  DEPENDENCY_SCANNING
  SAST
}

"""
Represents vulnerability counts by severity
"""
type VulnerabilitySeveritiesCount {
  """
  Number of vulnerabilities of CRITICAL severity of the project
  """
  critical: Int

  """
  Number of vulnerabilities of HIGH severity of the project
  """
  high: Int

  """
  Number of vulnerabilities of INFO severity of the project
  """
  info: Int

  """
  Number of vulnerabilities of LOW severity of the project
  """
  low: Int

  """
  Number of vulnerabilities of MEDIUM severity of the project
  """
  medium: Int

  """
  Number of vulnerabilities of UNKNOWN severity of the project
  """
  unknown: Int
}

"""
The severity of the vulnerability.
"""
enum VulnerabilitySeverity {
  CRITICAL
  HIGH
  INFO
  LOW
  MEDIUM
  UNKNOWN
}

"""
The state of the vulnerability.
"""
enum VulnerabilityState {
  CONFIRMED
  DETECTED
  DISMISSED
  RESOLVED
}

"""
Represents a vulnerable dependency. Used in vulnerability location data
"""
type VulnerableDependency {
  """
  The package associated with the vulnerable dependency
  """
  package: VulnerablePackage

  """
  The version of the vulnerable dependency
  """
  version: String
}

"""
Represents a vulnerable package. Used in vulnerability dependency data
"""
type VulnerablePackage {
  """
  The name of the vulnerable package
  """
  name: String
}