"""
Represents the access level of a relationship between a User and object that it is related to
"""
type AccessLevel {
  """
  Integer representation of access level
  """
  integerValue: Int

  """
  String representation of access level
  """
  stringValue: AccessLevelEnum
}

"""
Access level to a resource
"""
enum AccessLevelEnum {
  DEVELOPER
  GUEST
  MAINTAINER
  NO_ACCESS
  OWNER
  REPORTER
}

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

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

"""
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 feature_category in the context metadata
  """
  featureCategory: 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 implements Noteable {
  """
  Assignees of the alert
  """
  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 the alert was created
  """
  createdAt: Time

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

  """
  Alert details
  """
  details: JSON

  """
  The URL of the alert detail page
  """
  detailsUrl: 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!

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

  """
  Environment for the alert
  """
  environment: Environment

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

  """
  URL for metrics embed for the alert
  """
  metricsDashboardUrl: String

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

  """
  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 alert condition for Prometheus
  """
  prometheusAlert: PrometheusAlert

  """
  Runbook for the alert as defined in alert details
  """
  runbook: 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

  """
  Todos of the current user for the alert
  """
  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

  """
  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 at ascending order
  """
  CREATED_ASC

  """
  Created at descending order
  """
  CREATED_DESC

  """
  Created time by ascending order
  """
  CREATED_TIME_ASC

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

  """
  End time by ascending order
  """
  ENDED_AT_ASC

  """
  End time by descending order
  """
  ENDED_AT_DESC

  """
  Events count by ascending order
  """
  EVENT_COUNT_ASC

  """
  Events count by descending order
  """
  EVENT_COUNT_DESC

  """
  Severity from less critical to more critical
  """
  SEVERITY_ASC

  """
  Severity from more critical to less critical
  """
  SEVERITY_DESC

  """
  Start time by ascending order
  """
  STARTED_AT_ASC

  """
  Start time by descending order
  """
  STARTED_AT_DESC

  """
  Status by order: Ignored > Resolved > Acknowledged > Triggered
  """
  STATUS_ASC

  """
  Status by order: Triggered > Acknowledged > Resolved > Ignored
  """
  STATUS_DESC

  """
  Updated at ascending order
  """
  UPDATED_ASC

  """
  Updated at descending order
  """
  UPDATED_DESC

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

  """
  Created time by descending order
  """
  UPDATED_TIME_DESC

  """
  Created at ascending order
  """
  created_asc @deprecated(reason: "Use CREATED_ASC. Deprecated in 13.5")

  """
  Created at descending order
  """
  created_desc @deprecated(reason: "Use CREATED_DESC. Deprecated in 13.5")

  """
  Updated at ascending order
  """
  updated_asc @deprecated(reason: "Use UPDATED_ASC. Deprecated in 13.5")

  """
  Updated at descending order
  """
  updated_desc @deprecated(reason: "Use UPDATED_DESC. Deprecated in 13.5")
}

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

"""
Autogenerated input type of AlertSetAssignees
"""
input AlertSetAssigneesInput {
  """
  The usernames to assign to the alert. Replaces existing assignees by default.
  """
  assigneeUsernames: [String!]!

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

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

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

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

"""
Autogenerated return type of AlertSetAssignees
"""
type AlertSetAssigneesPayload {
  """
  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

  """
  The todo after mutation
  """
  todo: Todo
}

"""
Autogenerated input type of AlertTodoCreate
"""
input AlertTodoCreateInput {
  """
  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 AlertTodoCreate
"""
type AlertTodoCreatePayload {
  """
  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

  """
  The todo after mutation
  """
  todo: Todo
}

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

"""
Autogenerated input type of AwardEmojiAdd
"""
input AwardEmojiAddInput {
  """
  The global id of the awardable resource
  """
  awardableId: AwardableID!

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

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

"""
Autogenerated return type of AwardEmojiAdd
"""
type AwardEmojiAddPayload {
  """
  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 AwardEmojiRemove
"""
input AwardEmojiRemoveInput {
  """
  The global id of the awardable resource
  """
  awardableId: AwardableID!

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

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

"""
Autogenerated return type of AwardEmojiRemove
"""
type AwardEmojiRemovePayload {
  """
  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 AwardEmojiToggle
"""
input AwardEmojiToggleInput {
  """
  The global id of the awardable resource
  """
  awardableId: AwardableID!

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

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

"""
Autogenerated return type of AwardEmojiToggle
"""
type AwardEmojiTogglePayload {
  """
  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!
}

"""
Identifier of Awardable
"""
scalar AwardableID

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

  """
  Blob mode in numeric format
  """
  mode: 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 path of the blob
  """
  webPath: String

  """
  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 {
  """
  The board assignee.
  """
  assignee: User

  """
  Epics associated with board issues.
  """
  epics(
    """
    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 applied when selecting issues on the board
    """
    issueFilters: BoardIssueInput

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

  """
  Whether or not backlog list is hidden.
  """
  hideBacklogList: Boolean

  """
  Whether or not closed list is hidden.
  """
  hideClosedList: Boolean

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

  """
  Labels of the board
  """
  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

  """
  Lists of the 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

    """
    Find a list by its global ID
    """
    id: ID

    """
    Filters applied when getting issue metadata in the board list
    """
    issueFilters: BoardIssueInput

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

  """
  The board milestone.
  """
  milestone: Milestone

  """
  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 an epic on an issue board
"""
type BoardEpic implements CurrentUserTodos & 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 overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use timeframe.end
    """
    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 milestone title, computed from epic's issues
    """
    milestoneTitle: String

    """
    Search query for epic title or description
    """
    search: String

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

    """
    List items overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use
    timeframe.start
    """
    startDate: Time

    """
    Filter epics by state
    """
    state: EpicState

    """
    List items overlapping the given timeframe
    """
    timeframe: Timeframe
  ): EpicConnection

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

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

  """
  Timestamp of when the epic was created
  """
  createdAt: Time

  """
  Todos for the current user
  """
  currentUserTodos(
    """
    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

    """
    State of the todos
    """
    state: TodoStateEnum
  ): TodoConnection!

  """
  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 when the epic was updated
  """
  updatedAt: Time

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

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

  """
  User preferences for the epic on the issue board
  """
  userPreferences: BoardEpicUserPreferences

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

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

"""
The connection type for BoardEpic.
"""
type BoardEpicConnection {
  """
  A list of edges.
  """
  edges: [BoardEpicEdge]

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

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

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

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

"""
Represents user preferences for a board epic
"""
type BoardEpicUserPreferences {
  """
  Indicates epic should be displayed as collapsed
  """
  collapsed: Boolean!
}

"""
Identifier of Board
"""
scalar BoardID

input BoardIssueInput {
  """
  Filter by assignee username
  """
  assigneeUsername: [String]

  """
  Filter by author username
  """
  authorUsername: String

  """
  Filter by epic ID. Incompatible with epicWildcardId
  """
  epicId: ID

  """
  Filter by epic ID wildcard. Incompatible with epicId
  """
  epicWildcardId: EpicWildcardId

  """
  Filter by label name
  """
  labelName: [String]

  """
  Filter by milestone title
  """
  milestoneTitle: String

  """
  Filter by reaction emoji
  """
  myReactionEmoji: String

  """
  List of negated params. Warning: this argument is experimental and a subject to change in future
  """
  not: NegatedBoardIssueInput

  """
  Filter by release tag
  """
  releaseTag: String

  """
  Search query for issue title or description
  """
  search: String

  """
  Filter by weight
  """
  weight: String
}

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

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

    """
    Filters applied when selecting issues in the board list
    """
    filters: BoardIssueInput

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

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

  """
  Count of issues in the list
  """
  issuesCount: Int

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

  """
  Total weight of all issues in the list
  """
  totalWeight: Int
}

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

"""
Autogenerated input type of BoardListCreate
"""
input BoardListCreateInput {
  """
  Global ID of an existing user
  """
  assigneeId: UserID

  """
  Create the backlog list
  """
  backlog: Boolean

  """
  Global ID of the issue board to mutate
  """
  boardId: BoardID!

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

  """
  Global ID of an existing label
  """
  labelId: LabelID

  """
  Global ID of an existing milestone
  """
  milestoneId: MilestoneID
}

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

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

  """
  List of the issue board
  """
  list: BoardList
}

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

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

"""
Represents the total number of issues and their weights for a particular day
"""
type BurnupChartDailyTotals {
  """
  Number of closed issues as of this day
  """
  completedCount: Int!

  """
  Total weight of closed issues as of this day
  """
  completedWeight: Int!

  """
  Date for burnup totals
  """
  date: ISO8601Date!

  """
  Number of issues as of this day
  """
  scopeCount: Int!

  """
  Total weight of issues as of this day
  """
  scopeWeight: Int!
}

type CiGroup {
  """
  Detailed status of the group
  """
  detailedStatus: DetailedStatus

  """
  Jobs in group
  """
  jobs(
    """
    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
  ): CiJobConnection

  """
  Name of the job group
  """
  name: String

  """
  Size of the group
  """
  size: Int
}

"""
The connection type for CiGroup.
"""
type CiGroupConnection {
  """
  A list of edges.
  """
  edges: [CiGroupEdge]

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

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

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

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

type CiJob {
  """
  Detailed status of the job
  """
  detailedStatus: DetailedStatus

  """
  Name of the job
  """
  name: String

  """
  Builds that must complete before the jobs run
  """
  needs(
    """
    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
  ): CiJobConnection

  """
  Schedule for the build
  """
  scheduledAt: Time
}

"""
The connection type for CiJob.
"""
type CiJobConnection {
  """
  A list of edges.
  """
  edges: [CiJobEdge]

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

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

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

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

"""
Identifier of Ci::Pipeline
"""
scalar CiPipelineID

type CiStage {
  """
  Detailed status of the stage
  """
  detailedStatus: DetailedStatus

  """
  Group of jobs for the stage
  """
  groups(
    """
    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
  ): CiGroupConnection

  """
  Name of the stage
  """
  name: String
}

"""
The connection type for CiStage.
"""
type CiStageConnection {
  """
  A list of edges.
  """
  edges: [CiStageEdge]

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

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

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

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

type ClusterAgent {
  """
  Timestamp the cluster agent was created
  """
  createdAt: Time

  """
  ID of the cluster agent
  """
  id: ID!

  """
  Name of the cluster agent
  """
  name: String

  """
  The project this cluster agent is associated with
  """
  project: Project

  """
  Tokens associated with the cluster agent
  """
  tokens(
    """
    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
  ): ClusterAgentTokenConnection

  """
  Timestamp the cluster agent was updated
  """
  updatedAt: Time
}

"""
The connection type for ClusterAgent.
"""
type ClusterAgentConnection {
  """
  A list of edges.
  """
  edges: [ClusterAgentEdge]

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

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

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

  """
  Global id of the cluster agent that will be deleted
  """
  id: ClustersAgentID!
}

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

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

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

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

type ClusterAgentToken {
  """
  Cluster agent this token is associated with
  """
  clusterAgent: ClusterAgent

  """
  Timestamp the token was created
  """
  createdAt: Time

  """
  Global ID of the token
  """
  id: ClustersAgentTokenID!
}

"""
The connection type for ClusterAgentToken.
"""
type ClusterAgentTokenConnection {
  """
  A list of edges.
  """
  edges: [ClusterAgentTokenEdge]

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

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

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

  """
  Global ID of the cluster agent that will be associated with the new token
  """
  clusterAgentId: ClustersAgentID!
}

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

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

  """
  Token secret value. Make sure you save it - you won't be able to access it again
  """
  secret: String

  """
  Token created after mutation
  """
  token: ClusterAgentToken
}

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

  """
  Global ID of the cluster agent token that will be deleted
  """
  id: ClustersAgentTokenID!
}

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

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

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

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

"""
Identifier of Clusters::Agent
"""
scalar ClustersAgentID

"""
Identifier of Clusters::AgentToken
"""
scalar ClustersAgentTokenID

"""
Identifier of Clusters::Cluster
"""
scalar ClustersClusterID

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

  """
  The GitLab Flavored Markdown rendering of `description`
  """
  descriptionHtml: 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 path of the commit
  """
  webPath: String!

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

input CommitAction {
  """
  The action to perform, create, delete, move, update, chmod
  """
  action: CommitActionMode!

  """
  Content of the file
  """
  content: String

  """
  Encoding of the file. Default is text
  """
  encoding: CommitEncoding

  """
  Enables/disables the execute flag on the file
  """
  executeFilemode: Boolean

  """
  Full path to the file
  """
  filePath: String!

  """
  Last known file commit ID
  """
  lastCommitId: String

  """
  Original full path to the file being moved
  """
  previousPath: String
}

"""
Mode of a commit action
"""
enum CommitActionMode {
  """
  Chmod command
  """
  CHMOD

  """
  Create command
  """
  CREATE

  """
  Delete command
  """
  DELETE

  """
  Move command
  """
  MOVE

  """
  Update command
  """
  UPDATE
}

"""
Autogenerated input type of CommitCreate
"""
input CommitCreateInput {
  """
  Array of action hashes to commit as a batch
  """
  actions: [CommitAction!]!

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

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

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

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

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

  """
  The commit after mutation
  """
  commit: Commit

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

enum CommitEncoding {
  """
  Base64 encoding
  """
  BASE64

  """
  Text encoding
  """
  TEXT
}

"""
Represents a ComplianceFramework associated with a Project
"""
type ComplianceFramework {
  """
  Name of the compliance framework
  """
  name: ProjectSettingEnum!
}

"""
The connection type for ComplianceFramework.
"""
type ComplianceFrameworkConnection {
  """
  A list of edges.
  """
  edges: [ComplianceFrameworkEdge]

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

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

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

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

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

  """
  SAST CI configuration for the project
  """
  configuration: SastCiConfigurationInput!

  """
  Full path of the project
  """
  projectPath: ID!
}

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

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

  """
  Status of creating the commit for the supplied SAST CI configuration
  """
  status: String!

  """
  Redirect path to use when the response is successful
  """
  successPath: String
}

"""
A tag expiration policy designed to keep only the images that matter most
"""
type ContainerExpirationPolicy {
  """
  This container expiration policy schedule
  """
  cadence: ContainerExpirationPolicyCadenceEnum!

  """
  Timestamp of when the container expiration policy was created
  """
  createdAt: Time!

  """
  Indicates whether this container expiration policy is enabled
  """
  enabled: Boolean!

  """
  Number of tags to retain
  """
  keepN: ContainerExpirationPolicyKeepEnum

  """
  Tags with names matching this regex pattern will expire
  """
  nameRegex: UntrustedRegexp

  """
  Tags with names matching this regex pattern will be preserved
  """
  nameRegexKeep: UntrustedRegexp

  """
  Next time that this container expiration policy will get executed
  """
  nextRunAt: Time

  """
  Tags older that this will expire
  """
  olderThan: ContainerExpirationPolicyOlderThanEnum

  """
  Timestamp of when the container expiration policy was updated
  """
  updatedAt: Time!
}

enum ContainerExpirationPolicyCadenceEnum {
  """
  Every day
  """
  EVERY_DAY

  """
  Every month
  """
  EVERY_MONTH

  """
  Every three months
  """
  EVERY_THREE_MONTHS

  """
  Every two weeks
  """
  EVERY_TWO_WEEKS

  """
  Every week
  """
  EVERY_WEEK
}

enum ContainerExpirationPolicyKeepEnum {
  """
  50 tags per image name
  """
  FIFTY_TAGS

  """
  5 tags per image name
  """
  FIVE_TAGS

  """
  100 tags per image name
  """
  ONE_HUNDRED_TAGS

  """
  1 tag per image name
  """
  ONE_TAG

  """
  10 tags per image name
  """
  TEN_TAGS

  """
  25 tags per image name
  """
  TWENTY_FIVE_TAGS
}

enum ContainerExpirationPolicyOlderThanEnum {
  """
  14 days until tags are automatically removed
  """
  FOURTEEN_DAYS

  """
  90 days until tags are automatically removed
  """
  NINETY_DAYS

  """
  7 days until tags are automatically removed
  """
  SEVEN_DAYS

  """
  30 days until tags are automatically removed
  """
  THIRTY_DAYS
}

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

  """
  The todo after mutation
  """
  todo: Todo
}

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

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

  """
  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 CreateBoard
"""
input CreateBoardInput {
  """
  The ID of the user to be assigned to the board.
  """
  assigneeId: String

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

  """
  The group full path the board is associated with.
  """
  groupPath: ID

  """
  The IDs of labels to be added to the board.
  """
  labelIds: [ID!]

  """
  The ID of the milestone to be assigned to the board.
  """
  milestoneId: ID

  """
  The board name.
  """
  name: String

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

  """
  The weight of the board.
  """
  weight: Boolean
}

"""
Autogenerated return type of CreateBoard
"""
type CreateBoardPayload {
  """
  The board after mutation.
  """
  board: Board

  """
  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 CreateClusterAgent
"""
input CreateClusterAgentInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Name of the cluster agent
  """
  name: String!

  """
  Full path of the associated project for this cluster agent
  """
  projectPath: ID!
}

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

  """
  Cluster agent created after mutation
  """
  clusterAgent: ClusterAgent

  """
  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 confidentiality flag of a note. Default is false.
  """
  confidential: Boolean

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

  """
  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
  """
  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 confidentiality flag of a note. Default is false.
  """
  confidential: Boolean

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

  """
  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 CreateIssue
"""
input CreateIssueInput {
  """
  The array of user IDs to assign to the issue
  """
  assigneeIds: [UserID!]

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

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

  """
  Timestamp when the issue was created. Available only for admins and project owners
  """
  createdAt: Time

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

  """
  The ID of a discussion to resolve. Also pass `merge_request_to_resolve_discussions_of`
  """
  discussionToResolve: String

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

  """
  The ID of an epic to associate the issue with
  """
  epicId: EpicID

  """
  The IID (internal ID) of a project issue. Only admins and project owners can modify
  """
  iid: Int

  """
  The IDs of labels to be added to the issue
  """
  labelIds: [LabelID!]

  """
  Labels of the issue
  """
  labels: [String!]

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

  """
  The IID of a merge request for which to resolve discussions
  """
  mergeRequestToResolveDiscussionsOf: MergeRequestID

  """
  The ID of the milestone to assign to the issue. On update milestone will be removed if set to null
  """
  milestoneId: MilestoneID

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

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

"""
Autogenerated return type of CreateIssue
"""
type CreateIssuePayload {
  """
  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 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 target project for the iteration
  """
  projectPath: 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 confidentiality flag of a note. Default is false.
  """
  confidential: Boolean

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

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

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

  """
  Description of the requirement
  """
  description: String

  """
  Full project 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!]!

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

"""
Autogenerated input type of CreateSnippet
"""
input CreateSnippetInput {
  """
  Actions to perform over the snippet repository and blobs
  """
  blobActions: [SnippetBlobActionInputType!]

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

  """
  Description of the snippet
  """
  description: 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

  """
  Indicates whether the operation returns a record detected as spam
  """
  spam: Boolean
}

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

  """
  The test case description
  """
  description: String

  """
  The IDs of labels to be added to the test case.
  """
  labelIds: [ID!]

  """
  The project full path to create the test case
  """
  projectPath: ID!

  """
  The test case title
  """
  title: String!
}

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

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

  """
  The test case created
  """
  testCase: Issue
}

interface CurrentUserTodos {
  """
  Todos for the current user
  """
  currentUserTodos(
    """
    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

    """
    State of the todos
    """
    state: TodoStateEnum
  ): TodoConnection!
}

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

  """
  ID of the scanner profile to be used for the scan.
  """
  dastScannerProfileId: DastScannerProfileID

  """
  ID of the site profile to be used for the scan.
  """
  dastSiteProfileId: DastSiteProfileID!

  """
  The project the site profile belongs to.
  """
  fullPath: ID!
}

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

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

  """
  URL of the pipeline that was created.
  """
  pipelineUrl: String
}

enum DastScanTypeEnum {
  """
  Active DAST scan. This scan will make active attacks against the target site.
  """
  ACTIVE

  """
  Passive DAST scan. This scan will not make active attacks against the target site.
  """
  PASSIVE
}

"""
Represents a DAST scanner profile
"""
type DastScannerProfile {
  """
  Relative web path to the edit page of a scanner profile
  """
  editPath: String

  """
  ID of the DAST scanner profile
  """
  globalId: DastScannerProfileID!

  """
  ID of the DAST scanner profile. Deprecated in 13.4: Use `global_id`
  """
  id: ID! @deprecated(reason: "Use `global_id`. Deprecated in 13.4")

  """
  Name of the DAST scanner profile
  """
  profileName: String

  """
  Indicates the type of DAST scan that will run. Either a Passive Scan or an Active Scan.
  """
  scanType: DastScanTypeEnum

  """
  Indicates if debug messages should be included in DAST console output. True to include the debug messages.
  """
  showDebugMessages: Boolean!

  """
  The maximum number of minutes allowed for the spider to traverse the site
  """
  spiderTimeout: Int

  """
  The maximum number of seconds allowed for the site under test to respond to a request
  """
  targetTimeout: Int

  """
  Indicates if the AJAX spider should be used to crawl the target site. True to
  run the AJAX spider in addition to the traditional spider, and false to run
  only the traditional spider.
  """
  useAjaxSpider: Boolean!
}

"""
The connection type for DastScannerProfile.
"""
type DastScannerProfileConnection {
  """
  A list of edges.
  """
  edges: [DastScannerProfileEdge]

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

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

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

  """
  The project the scanner profile belongs to.
  """
  fullPath: ID!

  """
  The name of the scanner profile.
  """
  profileName: String!

  """
  Indicates the type of DAST scan that will run. Either a Passive Scan or an Active Scan.
  """
  scanType: DastScanTypeEnum = PASSIVE

  """
  Indicates if debug messages should be included in DAST console output. True to include the debug messages.
  """
  showDebugMessages: Boolean = false

  """
  The maximum number of minutes allowed for the spider to traverse the site.
  """
  spiderTimeout: Int

  """
  The maximum number of seconds allowed for the site under test to respond to a request.
  """
  targetTimeout: Int

  """
  Indicates if the AJAX spider should be used to crawl the target site. True to
  run the AJAX spider in addition to the traditional spider, and false to run
  only the traditional spider.
  """
  useAjaxSpider: Boolean = false
}

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

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

  """
  ID of the scanner profile.
  """
  globalId: DastScannerProfileID

  """
  ID of the scanner profile.. Deprecated in 13.4: Use `global_id`
  """
  id: ID @deprecated(reason: "Use `global_id`. Deprecated in 13.4")
}

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

  """
  Full path for the project the scanner profile belongs to.
  """
  fullPath: ID!

  """
  ID of the scanner profile to be deleted.
  """
  id: DastScannerProfileID!
}

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

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

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

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

"""
Identifier of DastScannerProfile
"""
scalar DastScannerProfileID

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

  """
  The project the scanner profile belongs to.
  """
  fullPath: ID!

  """
  ID of the scanner profile to be updated.
  """
  id: DastScannerProfileID!

  """
  The name of the scanner profile.
  """
  profileName: String!

  """
  Indicates the type of DAST scan that will run. Either a Passive Scan or an Active Scan.
  """
  scanType: DastScanTypeEnum

  """
  Indicates if debug messages should be included in DAST console output. True to include the debug messages.
  """
  showDebugMessages: Boolean

  """
  The maximum number of minutes allowed for the spider to traverse the site.
  """
  spiderTimeout: Int!

  """
  The maximum number of seconds allowed for the site under test to respond to a request.
  """
  targetTimeout: Int!

  """
  Indicates if the AJAX spider should be used to crawl the target site. True to
  run the AJAX spider in addition to the traditional spider, and false to run
  only the traditional spider.
  """
  useAjaxSpider: Boolean
}

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

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

  """
  ID of the scanner profile.
  """
  id: DastScannerProfileID
}

"""
Represents a DAST Site Profile
"""
type DastSiteProfile {
  """
  Relative web path to the edit page of a site profile
  """
  editPath: String

  """
  ID of the site profile
  """
  id: DastSiteProfileID!

  """
  The name of the site profile
  """
  profileName: String

  """
  The URL of the target to be scanned
  """
  targetUrl: String

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

  """
  The current validation status of the site profile
  """
  validationStatus: DastSiteProfileValidationStatusEnum
}

"""
The connection type for DastSiteProfile.
"""
type DastSiteProfileConnection {
  """
  A list of edges.
  """
  edges: [DastSiteProfileEdge]

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

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

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

  """
  The project the site profile belongs to.
  """
  fullPath: ID!

  """
  The name of the site profile.
  """
  profileName: String!

  """
  The URL of the target to be scanned.
  """
  targetUrl: String
}

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

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

  """
  ID of the site profile.
  """
  id: DastSiteProfileID
}

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

  """
  The project the site profile belongs to.
  """
  fullPath: ID!

  """
  ID of the site profile to be deleted.
  """
  id: DastSiteProfileID!
}

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

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

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

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

"""
Identifier of DastSiteProfile
"""
scalar DastSiteProfileID

"""
Check permissions for the current user on site profile
"""
type DastSiteProfilePermissions {
  """
  Indicates the user can perform `create_on_demand_dast_scan` on this resource
  """
  createOnDemandDastScan: Boolean!
}

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

  """
  The project the site profile belongs to.
  """
  fullPath: ID!

  """
  ID of the site profile to be updated.
  """
  id: DastSiteProfileID!

  """
  The name of the site profile.
  """
  profileName: String!

  """
  The URL of the target to be scanned.
  """
  targetUrl: String
}

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

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

  """
  ID of the site profile.
  """
  id: DastSiteProfileID
}

enum DastSiteProfileValidationStatusEnum {
  """
  Site validation process finished but failed
  """
  FAILED_VALIDATION

  """
  Site validation process is in progress
  """
  INPROGRESS_VALIDATION

  """
  Site validation process finished successfully
  """
  PASSED_VALIDATION

  """
  Site validation process has not started
  """
  PENDING_VALIDATION
}

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

  """
  The project the site token belongs to.
  """
  fullPath: ID!

  """
  The URL of the target to be validated.
  """
  targetUrl: String
}

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

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

  """
  ID of the site token.
  """
  id: DastSiteTokenID

  """
  The current validation status of the target.
  """
  status: DastSiteProfileValidationStatusEnum

  """
  Token string.
  """
  token: String
}

"""
Identifier of DastSiteToken
"""
scalar DastSiteTokenID

"""
Date represented in ISO 8601
"""
scalar Date

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

  """
  The global ID of the annotation to delete
  """
  id: ID!
}

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

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

"""
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 CurrentUserTodos & DesignFields & Noteable {
  """
  Todos for the current user
  """
  currentUserTodos(
    """
    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

    """
    State of the todos
    """
    state: TodoStateEnum
  ): TodoConnection!

  """
  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 {
  """
  Copy state of the design collection
  """
  copyState: DesignCollectionCopyState

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

"""
Copy state of a DesignCollection
"""
enum DesignCollectionCopyState {
  """
  The DesignCollection encountered an error during a copy
  """
  ERROR

  """
  The DesignCollection is being copied
  """
  IN_PROGRESS

  """
  The DesignCollection has no copy in progress
  """
  READY
}

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

"""
Identifier of DesignManagement::Design
"""
scalar DesignManagementDesignID

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

  """
  ID of the design to move
  """
  id: DesignManagementDesignID!

  """
  ID of the immediately following design
  """
  next: DesignManagementDesignID

  """
  ID of the immediately preceding design
  """
  previous: DesignManagementDesignID
}

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

  """
  The current state of the collection
  """
  designCollection: DesignCollection

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

"""
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 DestroyBoard
"""
input DestroyBoardInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

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

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

  """
  Global ID of the list to destroy. Only label lists are accepted.
  """
  listId: ListID!
}

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

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

  """
  The list after mutation.
  """
  list: BoardList
}

"""
Autogenerated return type of DestroyBoard
"""
type DestroyBoardPayload {
  """
  The board after mutation
  """
  board: Board

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

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

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

"""
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 {
  """
  Action information for the status. This includes method, button title, icon, path, and title
  """
  action: StatusAction

  """
  Path of the details for the status
  """
  detailsPath: String

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

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

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

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

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

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

  """
  Tooltip associated with the 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!
}

"""
Changes to a single file
"""
type DiffStats {
  """
  Number of lines added to this file
  """
  additions: Int!

  """
  Number of lines deleted from this file
  """
  deletions: Int!

  """
  File path, relative to repository root
  """
  path: String!
}

"""
Aggregated summary of changes
"""
type DiffStatsSummary {
  """
  Number of lines added
  """
  additions: Int!

  """
  Number of lines changed
  """
  changes: Int!

  """
  Number of lines deleted
  """
  deletions: Int!

  """
  Number of files changed
  """
  fileCount: Int!
}

type Discussion implements ResolvableInterface {
  """
  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!

  """
  Indicates if the object can be resolved
  """
  resolvable: Boolean!

  """
  Indicates if the object is resolved
  """
  resolved: Boolean!

  """
  Timestamp of when the object was resolved
  """
  resolvedAt: Time

  """
  User who resolved the object
  """
  resolvedBy: User
}

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

"""
Identifier of Discussion
"""
scalar DiscussionID

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

  """
  The global id of the discussion
  """
  id: ID!

  """
  Will resolve the discussion when true, and unresolve the discussion when false
  """
  resolve: Boolean!
}

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

  """
  The discussion after mutation
  """
  discussion: Discussion

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

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

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

  """
  The most severe open alert for the environment. If multiple alerts have equal severity, the most recent is returned
  """
  latestOpenedMostSevereAlert: AlertManagementAlert

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

  """
  The path to the environment. Will always return null if
  `expose_environment_path_in_alert_details` feature flag is disabled
  """
  path: 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
}

"""
Identifier of Environment
"""
scalar EnvironmentID

"""
Represents an epic
"""
type Epic implements CurrentUserTodos & 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 overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use timeframe.end
    """
    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 milestone title, computed from epic's issues
    """
    milestoneTitle: String

    """
    Search query for epic title or description
    """
    search: String

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

    """
    List items overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use
    timeframe.start
    """
    startDate: Time

    """
    Filter epics by state
    """
    state: EpicState

    """
    List items overlapping the given timeframe
    """
    timeframe: Timeframe
  ): EpicConnection

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

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

  """
  Timestamp of when the epic was created
  """
  createdAt: Time

  """
  Todos for the current user
  """
  currentUserTodos(
    """
    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

    """
    State of the todos
    """
    state: TodoStateEnum
  ): TodoConnection!

  """
  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 when the epic was updated
  """
  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 full path of 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 child epics
  """
  closedEpics: Int

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

  """
  Number of opened child 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
}

"""
Identifier of Epic
"""
scalar EpicID

"""
Relationship between an epic and an issue
"""
type EpicIssue implements CurrentUserTodos & Noteable {
  """
  Alert associated to this issue
  """
  alertManagementAlert: AlertManagementAlert

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

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

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

  """
  Todos for the current user
  """
  currentUserTodos(
    """
    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

    """
    State of the todos
    """
    state: TodoStateEnum
  ): TodoConnection!

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

  """
  Severity level of the incident
  """
  severity: IssuableSeverity

  """
  Timestamp of when the issue SLA expires.
  """
  slaDueAt: Time

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

  """
  Indicates whether an issue is published to the status page
  """
  statusPagePublishedIncident: Boolean

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

  """
  Type of the issue
  """
  type: IssueType

  """
  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 {
  """
  Total count of collection
  """
  count: Int!

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

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

  """
  ID of the new parent epic
  """
  newParentId: EpicID

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

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

"""
Identifier of EpicTreeSorting
"""
scalar EpicTreeSortingID

"""
Epic ID wildcard values
"""
enum EpicWildcardId {
  """
  Any epic is assigned
  """
  ANY

  """
  No epic is assigned
  """
  NONE
}

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

  """
  Find merge request diff registries on this Geo node
  """
  mergeRequestDiffRegistries(
    """
    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
  ): MergeRequestDiffRegistryConnection

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

  """
  Find terraform state version registries on this Geo node
  """
  terraformStateVersionRegistries(
    """
    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
  ): TerraformStateVersionRegistryConnection

  """
  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 {
  """
  Size limit for repositories in the namespace in bytes
  """
  actualRepositorySizeLimit: Float

  """
  Additional storage purchased for the root namespace in bytes
  """
  additionalPurchasedStorageSize: Float

  """
  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(
    """
    The board's ID
    """
    id: BoardID!
  ): 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

  """
  Includes at least one project where the repository size exceeds the limit
  """
  containsLockedProjects: Boolean!

  """
  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 overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use timeframe.end
    """
    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 milestone title, computed from epic's issues
    """
    milestoneTitle: String

    """
    Search query for epic title or description
    """
    search: String

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

    """
    List items overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use
    timeframe.start
    """
    startDate: Time

    """
    Filter epics by state
    """
    state: EpicState

    """
    List items overlapping the given timeframe
    """
    timeframe: Timeframe
  ): 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 overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use timeframe.end
    """
    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 milestone title, computed from epic's issues
    """
    milestoneTitle: String

    """
    Search query for epic title or description
    """
    search: String

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

    """
    List items overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use
    timeframe.start
    """
    startDate: Time

    """
    Filter epics by state
    """
    state: EpicState

    """
    List items overlapping the given timeframe
    """
    timeframe: Timeframe
  ): EpicConnection

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

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

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

  """
  A membership of a user within this group
  """
  groupMembers(
    """
    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 query
    """
    search: String
  ): GroupMemberConnection

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

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

  """
  Status of the temporary storage increase
  """
  isTemporaryStorageIncreaseEnabled: Boolean!

  """
  Issues for projects in this 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 issue
    """
    assigneeUsername: String

    """
    Usernames of users assigned to the issue
    """
    assigneeUsernames: [String!]

    """
    Username of the author of the issue
    """
    authorUsername: 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!]

    """
    Include issues belonging to subgroups
    """
    includeSubgroups: Boolean = false

    """
    Iterations applied to the issue
    """
    iterationId: [ID]

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

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

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

    """
    Search query for issue title or description
    """
    search: String

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

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

    """
    Filter issues by the given issue types
    """
    types: [IssueType!]

    """
    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 overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use timeframe.end
    """
    endDate: Time

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

    """
    The ID of the Iteration to look up
    """
    id: ID

    """
    The internal ID of the Iteration to look up
    """
    iid: ID

    """
    Whether to include ancestor iterations. Defaults to true
    """
    includeAncestors: Boolean

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

    """
    List items overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use
    timeframe.start
    """
    startDate: Time

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

    """
    List items overlapping the given timeframe
    """
    timeframe: Timeframe

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

  """
  A label available on this group
  """
  label(
    """
    Title of the label
    """
    title: String!
  ): Label

  """
  Labels available on this group
  """
  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

    """
    A search term to find labels with
    """
    searchTerm: String
  ): LabelConnection

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

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

  """
  Merge requests for projects in this group
  """
  mergeRequests(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Username of the assignee
    """
    assigneeUsername: String

    """
    Username of the author
    """
    authorUsername: 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 IIDs of merge requests, for example `[1, 2]`
    """
    iids: [String!]

    """
    Include merge requests belonging to subgroups
    """
    includeSubgroups: Boolean = false

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

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

    """
    Merge requests merged after this date
    """
    mergedAfter: Time

    """
    Merge requests merged before this date
    """
    mergedBefore: Time

    """
    Title of the milestone
    """
    milestoneTitle: String

    """
    Sort merge requests by this criteria
    """
    sort: MergeRequestSort = created_desc

    """
    Array of source branch names. All resolved merge requests will have one of these branches as their source.
    """
    sourceBranches: [String!]

    """
    A merge request state. If provided, all resolved merge requests will have this state.
    """
    state: MergeRequestState

    """
    Array of target branch names. All resolved merge requests will have one of these branches as their target.
    """
    targetBranches: [String!]
  ): MergeRequestConnection

  """
  Milestones of the group
  """
  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

    """
    A date that the milestone contains
    """
    containingDate: Time

    """
    List items overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use timeframe.end
    """
    endDate: Time

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

    """
    Array of global milestone IDs, e.g., "gid://gitlab/Milestone/1"
    """
    ids: [ID!]

    """
    Also return milestones in all subgroups and subprojects
    """
    includeDescendants: Boolean

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

    """
    A search string for the title
    """
    searchTitle: String

    """
    List items overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use
    timeframe.start
    """
    startDate: Time

    """
    Filter milestones by state
    """
    state: MilestoneStateEnum

    """
    List items overlapping the given timeframe
    """
    timeframe: Timeframe

    """
    The title of the milestone
    """
    title: String
  ): 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

    """
    Search project with most similar names or paths
    """
    search: String = null

    """
    Sort projects by this criteria
    """
    sort: NamespaceProjectSort = null
  ): ProjectConnection!

  """
  Number of projects in the root namespace where the repository size exceeds the limit
  """
  repositorySizeExcessProjectCount: Int!

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

  """
  Total storage limit of the root namespace in bytes
  """
  storageSizeLimit: Float

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

  """
  Date until the temporary storage increase is active
  """
  temporaryStorageIncreaseEndsOn: Time

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

  """
  Total repository size of all projects in the root namespace in bytes
  """
  totalRepositorySize: Float

  """
  Total excess repository size of all projects in the root namespace in bytes
  """
  totalRepositorySizeExcess: Float

  """
  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 only the vulnerabilities which have linked issues
    """
    hasIssues: Boolean

    """
    Returns only the vulnerabilities which have been resolved on default branch
    """
    hasResolution: Boolean

    """
    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 scanner
    """
    scanner: [String!]

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

    """
    List vulnerabilities by sort order
    """
    sort: VulnerabilitySort = severity_desc

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

  """
  Number of vulnerabilities per day for the projects in the group and its subgroups
  """
  vulnerabilitiesCountByDay(
    """
    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!
  ): VulnerabilitiesCountByDayConnection

  """
  Number of vulnerabilities per severity level, per day, for the projects in the
  group and its subgroups. Deprecated in 13.3: Use `vulnerabilitiesCountByDay`
  """
  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 @deprecated(reason: "Use `vulnerabilitiesCountByDay`. Deprecated in 13.3")

  """
  Represents vulnerable project counts for each grade
  """
  vulnerabilityGrades: [VulnerableProjectsByGrade!]!

  """
  Vulnerability scanners reported on the project vulnerabilties of the group and its subgroups
  """
  vulnerabilityScanners(
    """
    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
  ): VulnerabilityScannerConnection

  """
  Counts for each vulnerability severity in the group and its subgroups
  """
  vulnerabilitySeveritiesCount(
    """
    Filter vulnerabilities by project
    """
    projectId: [ID!]

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

    """
    Filter vulnerabilities by scanner
    """
    scanner: [String!]

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

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

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

"""
Represents a Group Membership
"""
type GroupMember implements MemberInterface {
  """
  GitLab::Access level
  """
  accessLevel: AccessLevel

  """
  Date and time the membership was created
  """
  createdAt: Time

  """
  User that authorized membership
  """
  createdBy: User

  """
  Date and time the membership expires
  """
  expiresAt: Time

  """
  Group that a User is a member of
  """
  group: Group

  """
  ID of the member
  """
  id: ID!

  """
  Date and time the membership was last updated
  """
  updatedAt: Time

  """
  User that is associated with the member object
  """
  user: User!

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

"""
The connection type for GroupMember.
"""
type GroupMemberConnection {
  """
  A list of edges.
  """
  edges: [GroupMemberEdge]

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

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

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

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

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!

  """
  Represents vulnerable project counts for each grade
  """
  vulnerabilityGrades: [VulnerableProjectsByGrade!]!

  """
  Vulnerability scanners reported on the vulnerabilties from projects selected in Instance Security Dashboard
  """
  vulnerabilityScanners(
    """
    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
  ): VulnerabilityScannerConnection

  """
  Counts for each vulnerability severity from projects selected in Instance Security Dashboard
  """
  vulnerabilitySeveritiesCount(
    """
    Filter vulnerabilities by project
    """
    projectId: [ID!]

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

    """
    Filter vulnerabilities by scanner
    """
    scanner: [String!]

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

    """
    Filter vulnerabilities by state
    """
    state: [VulnerabilityState!]
  ): VulnerabilitySeveritiesCount
}

"""
Represents a recorded measurement (object count) for the Admins
"""
type InstanceStatisticsMeasurement {
  """
  Object count
  """
  count: Int!

  """
  The type of objects being measured
  """
  identifier: MeasurementIdentifier!

  """
  The time the measurement was recorded
  """
  recordedAt: Time
}

"""
The connection type for InstanceStatisticsMeasurement.
"""
type InstanceStatisticsMeasurementConnection {
  """
  A list of edges.
  """
  edges: [InstanceStatisticsMeasurementEdge]

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

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

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

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

"""
Incident severity
"""
enum IssuableSeverity {
  """
  Critical severity
  """
  CRITICAL

  """
  High severity
  """
  HIGH

  """
  Low severity
  """
  LOW

  """
  Medium severity
  """
  MEDIUM

  """
  Unknown severity
  """
  UNKNOWN
}

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

type Issue implements CurrentUserTodos & Noteable {
  """
  Alert associated to this issue
  """
  alertManagementAlert: AlertManagementAlert

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

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

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

  """
  Todos for the current user
  """
  currentUserTodos(
    """
    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

    """
    State of the todos
    """
    state: TodoStateEnum
  ): TodoConnection!

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

  """
  ID of the issue
  """
  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!

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

  """
  Severity level of the incident
  """
  severity: IssuableSeverity

  """
  Timestamp of when the issue SLA expires.
  """
  slaDueAt: Time

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

  """
  Indicates whether an issue is published to the status page
  """
  statusPagePublishedIncident: Boolean

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

  """
  Type of the issue
  """
  type: IssueType

  """
  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 {
  """
  Total count of collection
  """
  count: Int!

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

"""
Identifier of Issue
"""
scalar IssueID

"""
Autogenerated input type of IssueMoveList
"""
input IssueMoveListInput {
  """
  Global ID of the board that the issue is in
  """
  boardId: ID!

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

  """
  The ID of the parent epic. NULL when removing the association
  """
  epicId: EpicID

  """
  ID of the board list that the issue will be moved from
  """
  fromListId: ID

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

  """
  ID of issue that should be placed after the current issue
  """
  moveAfterId: ID

  """
  ID of issue that should be placed before the current issue
  """
  moveBeforeId: ID

  """
  Project the issue to mutate is in
  """
  projectPath: ID!

  """
  ID of the board list that the issue will be moved to
  """
  toListId: ID
}

"""
Autogenerated return type of IssueMoveList
"""
type IssueMoveListPayload {
  """
  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
}

"""
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 IssueSetAssignees
"""
input IssueSetAssigneesInput {
  """
  The usernames to assign to the resource. Replaces existing assignees by default.
  """
  assigneeUsernames: [String!]!

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

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

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

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

"""
Autogenerated return type of IssueSetAssignees
"""
type IssueSetAssigneesPayload {
  """
  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 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 IssueSetEpic
"""
input IssueSetEpicInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

  """
  Global ID of the epic to be assigned to the issue, epic will be removed if absent or set to null
  """
  epicId: ID

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

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

"""
Autogenerated return type of IssueSetEpic
"""
type IssueSetEpicPayload {
  """
  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: IterationID

  """
  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 IssueSetLocked
"""
input IssueSetLockedInput {
  """
  A unique identifier for the client performing the mutation.
  """
  clientMutationId: String

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

  """
  Whether or not to lock discussion on the issue
  """
  locked: Boolean!

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

"""
Autogenerated return type of IssueSetLocked
"""
type IssueSetLockedPayload {
  """
  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 IssueSetSeverity
"""
input IssueSetSeverityInput {
  """
  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!

  """
  Set the incident severity level.
  """
  severity: IssuableSeverity!
}

"""
Autogenerated return type of IssueSetSeverity
"""
type IssueSetSeverityPayload {
  """
  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 IssueSetSubscription
"""
input IssueSetSubscriptionInput {
  """
  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 state of the subscription
  """
  subscribedState: Boolean!
}

"""
Autogenerated return type of IssueSetSubscription
"""
type IssueSetSubscriptionPayload {
  """
  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 {
  """
  Created at ascending order
  """
  CREATED_ASC

  """
  Created at descending order
  """
  CREATED_DESC

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

  """
  Published issues shown last
  """
  PUBLISHED_ASC

  """
  Published issues shown first
  """
  PUBLISHED_DESC

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

  """
  Severity from less critical to more critical
  """
  SEVERITY_ASC

  """
  Severity from more critical to less critical
  """
  SEVERITY_DESC

  """
  Updated at ascending order
  """
  UPDATED_ASC

  """
  Updated at descending order
  """
  UPDATED_DESC

  """
  Weight by ascending order
  """
  WEIGHT_ASC

  """
  Weight by descending order
  """
  WEIGHT_DESC

  """
  Created at ascending order
  """
  created_asc @deprecated(reason: "Use CREATED_ASC. Deprecated in 13.5")

  """
  Created at descending order
  """
  created_desc @deprecated(reason: "Use CREATED_DESC. Deprecated in 13.5")

  """
  Updated at ascending order
  """
  updated_asc @deprecated(reason: "Use UPDATED_ASC. Deprecated in 13.5")

  """
  Updated at descending order
  """
  updated_desc @deprecated(reason: "Use UPDATED_DESC. Deprecated in 13.5")
}

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

"""
Values for issue state events
"""
enum IssueStateEvent {
  """
  Closes the issue
  """
  CLOSE

  """
  Reopens the issue
  """
  REOPEN
}

"""
Represents total number of issues for the represented statuses
"""
type IssueStatusCountsType {
  """
  Number of issues with status ALL for the project
  """
  all: Int

  """
  Number of issues with status CLOSED for the project
  """
  closed: Int

  """
  Number of issues with status OPENED for the project
  """
  opened: Int
}

"""
Issue type
"""
enum IssueType {
  """
  Incident issue type
  """
  INCIDENT

  """
  Issue issue type
  """
  ISSUE

  """
  Test Case issue type
  """
  TEST_CASE
}

"""
Represents an iteration object
"""
type Iteration implements TimeboxBurnupTimeSeriesInterface {
  """
  Daily scope and completed totals for burnup charts
  """
  burnupTimeSeries: [BurnupChartDailyTotals!]

  """
  Timestamp of iteration creation
  """
  createdAt: Time!

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

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

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

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

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

  """
  Web path of the iteration, scoped to the query parent. Only valid for Project parents. Returns null in other contexts
  """
  scopedPath: String

  """
  Web URL of the iteration, scoped to the query parent. Only valid for Project parents. Returns null in other contexts
  """
  scopedUrl: String

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

"""
Identifier of Iteration
"""
scalar IterationID

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

  """
  Count of issues that failed to import
  """
  failedToImportCount: Int!

  """
  Count of issues that were successfully imported
  """
  importedIssuesCount: Int!

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

  """
  Total count of issues that were attempted to import
  """
  totalIssueCount: Int!
}

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

  """
  The mapping of Jira to GitLab users
  """
  usersMapping: [JiraUsersMappingInputType!]
}

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

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

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

  """
  The index of the record the import should started at, default 0 (50 records returned)
  """
  startAt: Int
}

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

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

  """
  Users returned from Jira, matched by email and name if possible.
  """
  jiraUsers: [JiraUser!]
}

type JiraProject {
  """
  Key of the Jira project
  """
  key: String!

  """
  Name of the Jira project
  """
  name: String

  """
  ID of the Jira project
  """
  projectId: Int!
}

"""
The connection type for JiraProject.
"""
type JiraProjectConnection {
  """
  A list of edges.
  """
  edges: [JiraProjectEdge]

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

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

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

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

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

  """
  List of all Jira projects fetched through Jira REST API
  """
  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

    """
    Project name or key
    """
    name: String
  ): JiraProjectConnection

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

type JiraUser {
  """
  ID of the matched GitLab user
  """
  gitlabId: Int

  """
  Name of the matched GitLab user
  """
  gitlabName: String

  """
  Username of the matched GitLab user
  """
  gitlabUsername: String

  """
  Account ID of the Jira user
  """
  jiraAccountId: String!

  """
  Display name of the Jira user
  """
  jiraDisplayName: String!

  """
  Email of the Jira user, returned only for users with public emails
  """
  jiraEmail: String
}

input JiraUsersMappingInputType {
  """
  Id of the GitLab user
  """
  gitlabId: Int

  """
  Jira account id of the user
  """
  jiraAccountId: 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 {
  """
  Total count of collection
  """
  count: Int!

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

"""
Identifier of Label
"""
scalar LabelID

"""
Identifier of List
"""
scalar ListID

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

"""
Possible identifier types for a measurement
"""
enum MeasurementIdentifier {
  """
  Group count
  """
  GROUPS

  """
  Issue count
  """
  ISSUES

  """
  Merge request count
  """
  MERGE_REQUESTS

  """
  Pipeline count
  """
  PIPELINES

  """
  Pipeline count with canceled status
  """
  PIPELINES_CANCELED

  """
  Pipeline count with failed status
  """
  PIPELINES_FAILED

  """
  Pipeline count with skipped status
  """
  PIPELINES_SKIPPED

  """
  Pipeline count with success status
  """
  PIPELINES_SUCCEEDED

  """
  Project count
  """
  PROJECTS

  """
  User count
  """
  USERS
}

interface MemberInterface {
  """
  GitLab::Access level
  """
  accessLevel: AccessLevel

  """
  Date and time the membership was created
  """
  createdAt: Time

  """
  User that authorized membership
  """
  createdBy: User

  """
  Date and time the membership expires
  """
  expiresAt: Time

  """
  ID of the member
  """
  id: ID!

  """
  Date and time the membership was last updated
  """
  updatedAt: Time

  """
  User that is associated with the member object
  """
  user: User!
}

"""
The connection type for MemberInterface.
"""
type MemberInterfaceConnection {
  """
  A list of edges.
  """
  edges: [MemberInterfaceEdge]

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

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

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

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

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

  """
  Number of approvals left
  """
  approvalsLeft: Int

  """
  Number of approvals required
  """
  approvalsRequired: Int

  """
  Indicates if the merge request has all the required approvals. Returns true if no required approvals are configured.
  """
  approved: Boolean!

  """
  Users who approved the merge request
  """
  approvedBy(
    """
    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

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

  """
  User who created this merge request
  """
  author: User

  """
  Indicates if auto merge is enabled for the merge request
  """
  autoMergeEnabled: Boolean!

  """
  Number of commits in the merge request
  """
  commitCount: Int

  """
  Indicates if the merge request has conflicts
  """
  conflicts: Boolean!

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

  """
  Todos for the current user
  """
  currentUserTodos(
    """
    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

    """
    State of the todos
    """
    state: TodoStateEnum
  ): TodoConnection!

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

  """
  Details about which files were changed in this merge request
  """
  diffStats(
    """
    A specific file-path
    """
    path: String
  ): [DiffStats!]

  """
  Summary of which files were changed in this merge request
  """
  diffStatsSummary: DiffStatsSummary

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

  """
  Timestamp of when the merge request was merged, null if not merged
  """
  mergedAt: Time

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

  """
  Indicates if the target branch of the merge request exists
  """
  targetBranchExists: Boolean!

  """
  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 {
  """
  Total count of collection
  """
  count: Int!

  """
  A list of edges.
  """
  edges: [MergeRequestEdge]

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

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

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

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

  """
  Labels of the merge request
  """
  labels: [String!]

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

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

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

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

"""
Autogenerated return type of MergeRequestCreate
"""
type MergeRequestCreatePayload {
  """
  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
}

"""
Represents the Geo sync and verification state of a Merge Request diff
"""
type MergeRequestDiffRegistry {
  """
  Timestamp when the MergeRequestDiffRegistry was created
  """
  createdAt: Time

  """
  ID of the MergeRequestDiffRegistry
  """
  id: ID!

  """
  Error message during sync of the MergeRequestDiffRegistry
  """
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the MergeRequestDiffRegistry
  """
  lastSyncedAt: Time

  """
  ID of the Merge Request diff
  """
  mergeRequestDiffId: ID!

  """
  Timestamp after which the MergeRequestDiffRegistry should be resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the MergeRequestDiffRegistry
  """
  retryCount: Int

  """
  Sync state of the MergeRequestDiffRegistry
  """
  state: RegistryState
}

"""
The connection type for MergeRequestDiffRegistry.
"""
type MergeRequestDiffRegistryConnection {
  """
  A list of edges.
  """
  edges: [MergeRequestDiffRegistryEdge]

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

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

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

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

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

"""
Identifier of MergeRequest
"""
scalar MergeRequestID

"""
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 `can_merge` on this resource
  """
  canMerge: 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 resource. 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: MilestoneID

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

"""
Values for sorting merge requests
"""
enum MergeRequestSort {
  """
  Created at ascending order
  """
  CREATED_ASC

  """
  Created at descending order
  """
  CREATED_DESC

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

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

  """
  Merge time by ascending order
  """
  MERGED_AT_ASC

  """
  Merge time by descending order
  """
  MERGED_AT_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

  """
  Updated at ascending order
  """
  UPDATED_ASC

  """
  Updated at descending order
  """
  UPDATED_DESC

  """
  Created at ascending order
  """
  created_asc @deprecated(reason: "Use CREATED_ASC. Deprecated in 13.5")

  """
  Created at descending order
  """
  created_desc @deprecated(reason: "Use CREATED_DESC. Deprecated in 13.5")

  """
  Updated at ascending order
  """
  updated_asc @deprecated(reason: "Use UPDATED_ASC. Deprecated in 13.5")

  """
  Updated at descending order
  """
  updated_desc @deprecated(reason: "Use UPDATED_DESC. Deprecated in 13.5")
}

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

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

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

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

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

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

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

"""
Autogenerated return type of MergeRequestUpdate
"""
type MergeRequestUpdatePayload {
  """
  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
}

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

  """
  Dashboard schema validation warnings
  """
  schemaValidationWarnings: [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 implements TimeboxBurnupTimeSeriesInterface {
  """
  Daily scope and completed totals for burnup charts
  """
  burnupTimeSeries: [BurnupChartDailyTotals!]

  """
  Timestamp of milestone creation
  """
  createdAt: Time!

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

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

  """
  Indicates if milestone is at group level
  """
  groupMilestone: Boolean!

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

  """
  Indicates if milestone is at project level
  """
  projectMilestone: Boolean!

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

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

  """
  Milestone statistics
  """
  stats: MilestoneStats

  """
  Indicates if milestone is at subgroup level
  """
  subgroupMilestone: Boolean!

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

"""
Identifier of Milestone
"""
scalar MilestoneID

enum MilestoneStateEnum {
  active
  closed
}

"""
Contains statistics about a milestone
"""
type MilestoneStats {
  """
  Number of closed issues associated with the milestone
  """
  closedIssuesCount: Int

  """
  Total number of issues associated with the milestone
  """
  totalIssuesCount: Int
}

"""
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 @deprecated(reason: "Use awardEmojiAdd. Deprecated in 13.2")
  addProjectToSecurityDashboard(input: AddProjectToSecurityDashboardInput!): AddProjectToSecurityDashboardPayload
  adminSidekiqQueuesDeleteJobs(input: AdminSidekiqQueuesDeleteJobsInput!): AdminSidekiqQueuesDeleteJobsPayload
  alertSetAssignees(input: AlertSetAssigneesInput!): AlertSetAssigneesPayload
  alertTodoCreate(input: AlertTodoCreateInput!): AlertTodoCreatePayload
  awardEmojiAdd(input: AwardEmojiAddInput!): AwardEmojiAddPayload
  awardEmojiRemove(input: AwardEmojiRemoveInput!): AwardEmojiRemovePayload
  awardEmojiToggle(input: AwardEmojiToggleInput!): AwardEmojiTogglePayload
  boardListCreate(input: BoardListCreateInput!): BoardListCreatePayload
  boardListUpdateLimitMetrics(input: BoardListUpdateLimitMetricsInput!): BoardListUpdateLimitMetricsPayload
  clusterAgentDelete(input: ClusterAgentDeleteInput!): ClusterAgentDeletePayload
  clusterAgentTokenCreate(input: ClusterAgentTokenCreateInput!): ClusterAgentTokenCreatePayload
  clusterAgentTokenDelete(input: ClusterAgentTokenDeleteInput!): ClusterAgentTokenDeletePayload
  commitCreate(input: CommitCreateInput!): CommitCreatePayload
  configureSast(input: ConfigureSastInput!): ConfigureSastPayload
  createAlertIssue(input: CreateAlertIssueInput!): CreateAlertIssuePayload
  createAnnotation(input: CreateAnnotationInput!): CreateAnnotationPayload
  createBoard(input: CreateBoardInput!): CreateBoardPayload
  createBranch(input: CreateBranchInput!): CreateBranchPayload
  createClusterAgent(input: CreateClusterAgentInput!): CreateClusterAgentPayload
  createDiffNote(input: CreateDiffNoteInput!): CreateDiffNotePayload
  createEpic(input: CreateEpicInput!): CreateEpicPayload
  createImageDiffNote(input: CreateImageDiffNoteInput!): CreateImageDiffNotePayload
  createIssue(input: CreateIssueInput!): CreateIssuePayload
  createIteration(input: CreateIterationInput!): CreateIterationPayload
  createNote(input: CreateNoteInput!): CreateNotePayload
  createRequirement(input: CreateRequirementInput!): CreateRequirementPayload
  createSnippet(input: CreateSnippetInput!): CreateSnippetPayload
  createTestCase(input: CreateTestCaseInput!): CreateTestCasePayload
  dastOnDemandScanCreate(input: DastOnDemandScanCreateInput!): DastOnDemandScanCreatePayload
  dastScannerProfileCreate(input: DastScannerProfileCreateInput!): DastScannerProfileCreatePayload
  dastScannerProfileDelete(input: DastScannerProfileDeleteInput!): DastScannerProfileDeletePayload
  dastScannerProfileUpdate(input: DastScannerProfileUpdateInput!): DastScannerProfileUpdatePayload
  dastSiteProfileCreate(input: DastSiteProfileCreateInput!): DastSiteProfileCreatePayload
  dastSiteProfileDelete(input: DastSiteProfileDeleteInput!): DastSiteProfileDeletePayload
  dastSiteProfileUpdate(input: DastSiteProfileUpdateInput!): DastSiteProfileUpdatePayload
  dastSiteTokenCreate(input: DastSiteTokenCreateInput!): DastSiteTokenCreatePayload
  deleteAnnotation(input: DeleteAnnotationInput!): DeleteAnnotationPayload
  designManagementDelete(input: DesignManagementDeleteInput!): DesignManagementDeletePayload
  designManagementMove(input: DesignManagementMoveInput!): DesignManagementMovePayload
  designManagementUpload(input: DesignManagementUploadInput!): DesignManagementUploadPayload
  destroyBoard(input: DestroyBoardInput!): DestroyBoardPayload
  destroyBoardList(input: DestroyBoardListInput!): DestroyBoardListPayload
  destroyNote(input: DestroyNoteInput!): DestroyNotePayload
  destroySnippet(input: DestroySnippetInput!): DestroySnippetPayload

  """
  Toggles the resolved state of a discussion
  """
  discussionToggleResolve(input: DiscussionToggleResolveInput!): DiscussionToggleResolvePayload
  dismissVulnerability(input: DismissVulnerabilityInput!): DismissVulnerabilityPayload @deprecated(reason: "Use vulnerabilityDismiss. Deprecated in 13.5")
  epicAddIssue(input: EpicAddIssueInput!): EpicAddIssuePayload
  epicSetSubscription(input: EpicSetSubscriptionInput!): EpicSetSubscriptionPayload
  epicTreeReorder(input: EpicTreeReorderInput!): EpicTreeReorderPayload
  issueMoveList(input: IssueMoveListInput!): IssueMoveListPayload
  issueSetAssignees(input: IssueSetAssigneesInput!): IssueSetAssigneesPayload
  issueSetConfidential(input: IssueSetConfidentialInput!): IssueSetConfidentialPayload
  issueSetDueDate(input: IssueSetDueDateInput!): IssueSetDueDatePayload
  issueSetEpic(input: IssueSetEpicInput!): IssueSetEpicPayload
  issueSetIteration(input: IssueSetIterationInput!): IssueSetIterationPayload
  issueSetLocked(input: IssueSetLockedInput!): IssueSetLockedPayload
  issueSetSeverity(input: IssueSetSeverityInput!): IssueSetSeverityPayload
  issueSetSubscription(input: IssueSetSubscriptionInput!): IssueSetSubscriptionPayload
  issueSetWeight(input: IssueSetWeightInput!): IssueSetWeightPayload
  jiraImportStart(input: JiraImportStartInput!): JiraImportStartPayload
  jiraImportUsers(input: JiraImportUsersInput!): JiraImportUsersPayload
  markAsSpamSnippet(input: MarkAsSpamSnippetInput!): MarkAsSpamSnippetPayload
  mergeRequestCreate(input: MergeRequestCreateInput!): MergeRequestCreatePayload
  mergeRequestSetAssignees(input: MergeRequestSetAssigneesInput!): MergeRequestSetAssigneesPayload
  mergeRequestSetLabels(input: MergeRequestSetLabelsInput!): MergeRequestSetLabelsPayload
  mergeRequestSetLocked(input: MergeRequestSetLockedInput!): MergeRequestSetLockedPayload
  mergeRequestSetMilestone(input: MergeRequestSetMilestoneInput!): MergeRequestSetMilestonePayload
  mergeRequestSetSubscription(input: MergeRequestSetSubscriptionInput!): MergeRequestSetSubscriptionPayload
  mergeRequestSetWip(input: MergeRequestSetWipInput!): MergeRequestSetWipPayload

  """
  Update attributes of a merge request
  """
  mergeRequestUpdate(input: MergeRequestUpdateInput!): MergeRequestUpdatePayload
  namespaceIncreaseStorageTemporarily(input: NamespaceIncreaseStorageTemporarilyInput!): NamespaceIncreaseStorageTemporarilyPayload
  pipelineCancel(input: PipelineCancelInput!): PipelineCancelPayload
  pipelineDestroy(input: PipelineDestroyInput!): PipelineDestroyPayload
  pipelineRetry(input: PipelineRetryInput!): PipelineRetryPayload
  removeAwardEmoji(input: RemoveAwardEmojiInput!): RemoveAwardEmojiPayload @deprecated(reason: "Use awardEmojiRemove. Deprecated in 13.2")
  removeProjectFromSecurityDashboard(input: RemoveProjectFromSecurityDashboardInput!): RemoveProjectFromSecurityDashboardPayload
  revertVulnerabilityToDetected(input: RevertVulnerabilityToDetectedInput!): RevertVulnerabilityToDetectedPayload @deprecated(reason: "Use vulnerabilityRevertToDetected. Deprecated in 13.5")
  runDastScan(input: RunDASTScanInput!): RunDASTScanPayload @deprecated(reason: "Use DastOnDemandScanCreate. Deprecated in 13.4")
  todoMarkDone(input: TodoMarkDoneInput!): TodoMarkDonePayload
  todoRestore(input: TodoRestoreInput!): TodoRestorePayload
  todoRestoreMany(input: TodoRestoreManyInput!): TodoRestoreManyPayload
  todosMarkAllDone(input: TodosMarkAllDoneInput!): TodosMarkAllDonePayload
  toggleAwardEmoji(input: ToggleAwardEmojiInput!): ToggleAwardEmojiPayload @deprecated(reason: "Use awardEmojiToggle. Deprecated in 13.2")
  updateAlertStatus(input: UpdateAlertStatusInput!): UpdateAlertStatusPayload
  updateBoard(input: UpdateBoardInput!): UpdateBoardPayload
  updateBoardEpicUserPreferences(input: UpdateBoardEpicUserPreferencesInput!): UpdateBoardEpicUserPreferencesPayload
  updateBoardList(input: UpdateBoardListInput!): UpdateBoardListPayload
  updateContainerExpirationPolicy(input: UpdateContainerExpirationPolicyInput!): UpdateContainerExpirationPolicyPayload
  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
  updateIteration(input: UpdateIterationInput!): UpdateIterationPayload

  """
  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
  vulnerabilityConfirm(input: VulnerabilityConfirmInput!): VulnerabilityConfirmPayload
  vulnerabilityDismiss(input: VulnerabilityDismissInput!): VulnerabilityDismissPayload
  vulnerabilityResolve(input: VulnerabilityResolveInput!): VulnerabilityResolvePayload
  vulnerabilityRevertToDetected(input: VulnerabilityRevertToDetectedInput!): VulnerabilityRevertToDetectedPayload
}

"""
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 {
  """
  Size limit for repositories in the namespace in bytes
  """
  actualRepositorySizeLimit: Float

  """
  Additional storage purchased for the root namespace in bytes
  """
  additionalPurchasedStorageSize: Float

  """
  Includes at least one project where the repository size exceeds the limit
  """
  containsLockedProjects: Boolean!

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

  """
  Status of the temporary storage increase
  """
  isTemporaryStorageIncreaseEnabled: Boolean!

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

    """
    Search project with most similar names or paths
    """
    search: String = null

    """
    Sort projects by this criteria
    """
    sort: NamespaceProjectSort = null
  ): ProjectConnection!

  """
  Number of projects in the root namespace where the repository size exceeds the limit
  """
  repositorySizeExcessProjectCount: Int!

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

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

  """
  Total storage limit of the root namespace in bytes
  """
  storageSizeLimit: Float

  """
  Date until the temporary storage increase is active
  """
  temporaryStorageIncreaseEndsOn: Time

  """
  Total repository size of all projects in the root namespace in bytes
  """
  totalRepositorySize: Float

  """
  Total excess repository size of all projects in the root namespace in bytes
  """
  totalRepositorySizeExcess: Float

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

"""
Identifier of Namespace
"""
scalar NamespaceID

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

  """
  The global id of the namespace to mutate
  """
  id: NamespaceID!
}

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

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

  """
  The namespace after mutation
  """
  namespace: Namespace
}

"""
Values for sorting projects
"""
enum NamespaceProjectSort {
  """
  Most similar to the search query
  """
  SIMILARITY
}

input NegatedBoardIssueInput {
  """
  Filter by assignee username
  """
  assigneeUsername: [String]

  """
  Filter by author username
  """
  authorUsername: String

  """
  Filter by epic ID. Incompatible with epicWildcardId
  """
  epicId: ID

  """
  Filter by label name
  """
  labelName: [String]

  """
  Filter by milestone title
  """
  milestoneTitle: String

  """
  Filter by reaction emoji
  """
  myReactionEmoji: String

  """
  Filter by release tag
  """
  releaseTag: String

  """
  Filter by weight
  """
  weight: String
}

type Note implements ResolvableInterface {
  """
  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 the object can be resolved
  """
  resolvable: Boolean!

  """
  Indicates if the object is resolved
  """
  resolved: Boolean!

  """
  Timestamp of when the object was resolved
  """
  resolvedAt: Time

  """
  User who resolved the object
  """
  resolvedBy: User

  """
  Indicates whether this note was created by the system or by a user
  """
  system: Boolean!

  """
  Name of the icon corresponding to a system note
  """
  systemNoteIconName: String

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

"""
Identifier of Note
"""
scalar NoteID

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

"""
Identifier of Noteable
"""
scalar NoteableID

"""
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 Geo 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 Debian package manager
  """
  DEBIAN

  """
  Packages from the Generic package manager
  """
  GENERIC

  """
  Packages from the Golang package manager
  """
  GOLANG

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

  """
  Specifies if a pipeline can be canceled
  """
  cancelable: Boolean!

  """
  Timestamp of the pipeline's commit
  """
  committedAt: Time

  """
  Config source of the pipeline (UNKNOWN_SOURCE, REPOSITORY_SOURCE,
  AUTO_DEVOPS_SOURCE, WEBIDE_SOURCE, REMOTE_SOURCE, EXTERNAL_PROJECT_SOURCE,
  BRIDGE_SOURCE, PARAMETER_SOURCE)
  """
  configSource: PipelineConfigSourceEnum

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

  """
  Specifies if a pipeline can be retried
  """
  retryable: Boolean!

  """
  Vulnerability and scanned resource counts for each security scanner of the pipeline
  """
  securityReportSummary: SecurityReportSummary

  """
  SHA of the pipeline's commit
  """
  sha: String!

  """
  Stages of the pipeline
  """
  stages(
    """
    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
  ): CiStageConnection

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

  """
  Pipeline user
  """
  user: User

  """
  Permissions for the current user on the resource
  """
  userPermissions: PipelinePermissions!
}

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

  """
  The id of the pipeline to mutate
  """
  id: CiPipelineID!
}

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

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

enum PipelineConfigSourceEnum {
  AUTO_DEVOPS_SOURCE
  BRIDGE_SOURCE
  EXTERNAL_PROJECT_SOURCE
  PARAMETER_SOURCE
  REMOTE_SOURCE
  REPOSITORY_SOURCE
  UNKNOWN_SOURCE
  WEBIDE_SOURCE
}

"""
The connection type for Pipeline.
"""
type PipelineConnection {
  """
  Total count of collection
  """
  count: Int!

  """
  A list of edges.
  """
  edges: [PipelineEdge]

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

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

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

  """
  The id of the pipeline to mutate
  """
  id: CiPipelineID!
}

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

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

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

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

  """
  The id of the pipeline to mutate
  """
  id: CiPipelineID!
}

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

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

  """
  The pipeline after mutation
  """
  pipeline: Pipeline
}

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

type Project {
  """
  Size limit for the repository in bytes
  """
  actualRepositorySizeLimit: Float

  """
  A single Alert Management alert of the project
  """
  alertManagementAlert(
    """
    Username of a user assigned to the issue
    """
    assigneeUsername: String

    """
    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(
    """
    Username of a user assigned to the issue
    """
    assigneeUsername: String

    """
    Search criteria for filtering alerts. This will search on title, description, service, monitoring_tool.
    """
    search: String
  ): AlertManagementAlertStatusCountsType

  """
  Alert Management alerts of the project
  """
  alertManagementAlerts(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Username of a user assigned to the issue
    """
    assigneeUsername: 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

  """
  If `only_allow_merge_if_pipeline_succeeds` is true, indicates if merge
  requests of the project can also be merged with skipped jobs
  """
  allowMergeOnSkippedPipeline: Boolean

  """
  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(
    """
    The board's ID
    """
    id: BoardID!
  ): 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

  """
  Find a single cluster agent by name
  """
  clusterAgent(
    """
    Name of the cluster agent
    """
    name: String!
  ): ClusterAgent

  """
  Cluster agents associated with the project
  """
  clusterAgents(
    """
    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
  ): ClusterAgentConnection

  """
  Compliance frameworks associated with the project
  """
  complianceFrameworks(
    """
    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
  ): ComplianceFrameworkConnection

  """
  The container expiration policy of the project
  """
  containerExpirationPolicy: ContainerExpirationPolicy

  """
  Indicates if the project stores Docker container images in a container registry
  """
  containerRegistryEnabled: Boolean

  """
  Timestamp of the project creation
  """
  createdAt: Time

  """
  The DAST scanner profiles associated with the project
  """
  dastScannerProfiles(
    """
    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
  ): DastScannerProfileConnection

  """
  DAST Site Profile associated with the project
  """
  dastSiteProfile(
    """
    ID of the site profile
    """
    id: DastSiteProfileID!
  ): DastSiteProfile

  """
  DAST Site Profiles associated with the project
  """
  dastSiteProfiles(
    """
    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
  ): DastSiteProfileConnection

  """
  Short description of the project
  """
  description: String

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

  """
  A single environment of the project
  """
  environment(
    """
    Name of the environment
    """
    name: String

    """
    Search query for environment name
    """
    search: String

    """
    States of environments that should be included in result
    """
    states: [String!]
  ): Environment

  """
  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 for environment name
    """
    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 issue
    """
    assigneeUsername: String

    """
    Usernames of users assigned to the issue
    """
    assigneeUsernames: [String!]

    """
    Username of the author of the issue
    """
    authorUsername: 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!]

    """
    Iterations applied to the issue
    """
    iterationId: [ID]

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

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

    """
    Search query for issue title or description
    """
    search: String

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

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

    """
    Filter issues by the given issue types
    """
    types: [IssueType!]

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

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

  """
  Counts of issues by status for the project
  """
  issueStatusCounts(
    """
    ID of a user assigned to the issues, "none" and "any" values supported
    """
    assigneeId: String

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

    """
    Usernames of users assigned to the issue
    """
    assigneeUsernames: [String!]

    """
    Username of the author of the issue
    """
    authorUsername: 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]

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

    """
    Search query for issue title or description
    """
    search: String

    """
    Filter issues by the given issue types
    """
    types: [IssueType!]

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

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

  """
  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 issue
    """
    assigneeUsername: String

    """
    Usernames of users assigned to the issue
    """
    assigneeUsernames: [String!]

    """
    Username of the author of the issue
    """
    authorUsername: 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!]

    """
    Iterations applied to the issue
    """
    iterationId: [ID]

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

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

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

    """
    Search query for issue title or description
    """
    search: String

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

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

    """
    Filter issues by the given issue types
    """
    types: [IssueType!]

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

  """
  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 overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use timeframe.end
    """
    endDate: Time

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

    """
    The ID of the Iteration to look up
    """
    id: ID

    """
    The internal ID of the Iteration to look up
    """
    iid: ID

    """
    Whether to include ancestor iterations. Defaults to true
    """
    includeAncestors: Boolean

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

    """
    List items overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use
    timeframe.start
    """
    startDate: Time

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

    """
    List items overlapping the given timeframe
    """
    timeframe: Timeframe

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

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

  """
  A label available on this project
  """
  label(
    """
    Title of the label
    """
    title: String!
  ): Label

  """
  Labels available on this project
  """
  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

    """
    A search term to find labels with
    """
    searchTerm: String
  ): LabelConnection

  """
  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!
  ): MergeRequest

  """
  Merge requests of the project
  """
  mergeRequests(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Username of the assignee
    """
    assigneeUsername: String

    """
    Username of the author
    """
    authorUsername: 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 IIDs of merge requests, for example `[1, 2]`
    """
    iids: [String!]

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

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

    """
    Merge requests merged after this date
    """
    mergedAfter: Time

    """
    Merge requests merged before this date
    """
    mergedBefore: Time

    """
    Title of the milestone
    """
    milestoneTitle: String

    """
    Sort merge requests by this criteria
    """
    sort: MergeRequestSort = created_desc

    """
    Array of source branch names. All resolved merge requests will have one of these branches as their source.
    """
    sourceBranches: [String!]

    """
    A merge request state. If provided, all resolved merge requests will have this state.
    """
    state: MergeRequestState

    """
    Array of target branch names. All resolved merge requests will have one of these branches as their target.
    """
    targetBranches: [String!]
  ): 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

  """
  Milestones of the project
  """
  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

    """
    A date that the milestone contains
    """
    containingDate: Time

    """
    List items overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use timeframe.end
    """
    endDate: Time

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

    """
    Array of global milestone IDs, e.g., "gid://gitlab/Milestone/1"
    """
    ids: [ID!]

    """
    Also return milestones in the project's parent group and its ancestors
    """
    includeAncestors: Boolean

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

    """
    A search string for the title
    """
    searchTitle: String

    """
    List items overlapping a time frame defined by startDate..endDate (if one
    date is provided, both must be present). Deprecated in 13.5: Use
    timeframe.start
    """
    startDate: Time

    """
    Filter milestones by state
    """
    state: MilestoneStateEnum

    """
    List items overlapping the given timeframe
    """
    timeframe: Timeframe

    """
    The title of the milestone
    """
    title: String
  ): MilestoneConnection

  """
  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 pipeline of the project
  """
  pipeline(
    """
    IID of the Pipeline, e.g., "1"
    """
    iid: ID!
  ): Pipeline

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

  """
  Members of the project
  """
  projectMembers(
    """
    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 query
    """
    search: String
  ): MemberInterfaceConnection

  """
  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
  """
  release(
    """
    The name of the tag associated to the release
    """
    tagName: String!
  ): Release

  """
  Releases of the project
  """
  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

  """
  Size of repository that exceeds the limit in bytes
  """
  repositorySizeExcess: Float

  """
  Indicates if users can request member access to the project
  """
  requestAccessEnabled: Boolean

  """
  Find a single requirement
  """
  requirement(
    """
    Filter requirements by author username
    """
    authorUsername: [String!]

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

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

    """
    Search query for requirement title
    """
    search: String

    """
    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
  """
  requirements(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Filter requirements by author username
    """
    authorUsername: [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

    """
    Search query for requirement title
    """
    search: String

    """
    List requirements by sort order
    """
    sort: Sort

    """
    Filter requirements by state
    """
    state: RequirementState
  ): RequirementConnection

  """
  SAST CI configuration for the project
  """
  sastCiConfiguration: SastCiConfiguration

  """
  Path to project's security dashboard
  """
  securityDashboardPath: String

  """
  Information about security analyzers used in the project
  """
  securityScanners: SecurityScanners

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

  """
  Terraform states associated with the project
  """
  terraformStates(
    """
    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
  ): TerraformStateConnection

  """
  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 only the vulnerabilities which have linked issues
    """
    hasIssues: Boolean

    """
    Returns only the vulnerabilities which have been resolved on default branch
    """
    hasResolution: Boolean

    """
    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 scanner
    """
    scanner: [String!]

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

    """
    List vulnerabilities by sort order
    """
    sort: VulnerabilitySort = severity_desc

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

  """
  Number of vulnerabilities per day for the project
  """
  vulnerabilitiesCountByDay(
    """
    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!
  ): VulnerabilitiesCountByDayConnection

  """
  Vulnerability scanners reported on the project vulnerabilties
  """
  vulnerabilityScanners(
    """
    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
  ): VulnerabilityScannerConnection

  """
  Counts for each vulnerability severity in the project
  """
  vulnerabilitySeveritiesCount(
    """
    Filter vulnerabilities by project
    """
    projectId: [ID!]

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

    """
    Filter vulnerabilities by scanner
    """
    scanner: [String!]

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

    """
    Filter vulnerabilities by state
    """
    state: [VulnerabilityState!]
  ): 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
}

"""
Identifier of Project
"""
scalar ProjectID

"""
Represents a Project Membership
"""
type ProjectMember implements MemberInterface {
  """
  GitLab::Access level
  """
  accessLevel: AccessLevel

  """
  Date and time the membership was created
  """
  createdAt: Time

  """
  User that authorized membership
  """
  createdBy: User

  """
  Date and time the membership expires
  """
  expiresAt: Time

  """
  ID of the member
  """
  id: ID!

  """
  Project that User is a member of
  """
  project: Project

  """
  Date and time the membership was last updated
  """
  updatedAt: Time

  """
  User that is associated with the member object
  """
  user: User!

  """
  Permissions for the current user on the resource
  """
  userPermissions: ProjectPermissions!
}

"""
The connection type for ProjectMember.
"""
type ProjectMemberConnection {
  """
  A list of edges.
  """
  edges: [ProjectMemberEdge]

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

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

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

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

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

"""
Names of compliance frameworks that can be assigned to a Project
"""
enum ProjectSettingEnum {
  gdpr
  hipaa
  pci_dss
  soc_2
  sox
}

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!

  """
  Snippets size of the project
  """
  snippetsSize: Float

  """
  Storage size of the project
  """
  storageSize: Float!

  """
  Wiki size of the project
  """
  wikiSize: Float
}

"""
The alert condition for Prometheus
"""
type PrometheusAlert {
  """
  The human-readable text of the alert condition
  """
  humanizedText: String!

  """
  ID of the alert condition
  """
  id: ID!
}

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

  """
  Get statistics on the instance
  """
  instanceStatisticsMeasurements(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

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

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

    """
    The type of measurement/statistics to retrieve
    """
    identifier: MeasurementIdentifier!

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

  """
  Find an issue
  """
  issue(
    """
    The global ID of the Issue
    """
    id: IssueID!
  ): Issue

  """
  Find an iteration
  """
  iteration(
    """
    Find an iteration by its ID
    """
    id: IterationID!
  ): Iteration

  """
  Metadata about GitLab
  """
  metadata: Metadata

  """
  Find a milestone
  """
  milestone(
    """
    Find a milestone by its ID
    """
    id: MilestoneID!
  ): Milestone

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

    """
    Filter projects by IDs
    """
    ids: [ID!]

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

    """
    Limit projects that the current user is a member of
    """
    membership: Boolean

    """
    Search query for project name, path, or description
    """
    search: String

    """
    Include namespace in project search
    """
    searchNamespaces: Boolean

    """
    Sort order of results
    """
    sort: String
  ): ProjectConnection

  """
  Supported runner platforms
  """
  runnerPlatforms(
    """
    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
  ): RunnerPlatformConnection

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

  """
  Find a user
  """
  user(
    """
    ID of the User
    """
    id: ID

    """
    Username of the User
    """
    username: String
  ): User

  """
  Find users
  """
  users(
    """
    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

    """
    List of user Global IDs
    """
    ids: [ID!]

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

    """
    Sort users by this criteria
    """
    sort: Sort = created_desc

    """
    List of usernames
    """
    usernames: [String!]
  ): UserConnection

  """
  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 only the vulnerabilities which have linked issues
    """
    hasIssues: Boolean

    """
    Returns only the vulnerabilities which have been resolved on default branch
    """
    hasResolution: Boolean

    """
    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 scanner
    """
    scanner: [String!]

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

    """
    List vulnerabilities by sort order
    """
    sort: VulnerabilitySort = severity_desc

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

  """
  Number of vulnerabilities per day for the projects on the current user's instance security dashboard
  """
  vulnerabilitiesCountByDay(
    """
    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!
  ): VulnerabilitiesCountByDayConnection

  """
  Number of vulnerabilities per severity level, per day, for the projects on the
  current user's instance security dashboard. Deprecated in 13.3: Use
  `vulnerabilitiesCountByDay`
  """
  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 @deprecated(reason: "Use `vulnerabilitiesCountByDay`. Deprecated in 13.3")

  """
  Find a vulnerability
  """
  vulnerability(
    """
    The Global ID of the Vulnerability
    """
    id: VulnerabilityID!
  ): Vulnerability
}

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

"""
Represents a release
"""
type Release {
  """
  Assets of the release
  """
  assets: ReleaseAssets

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

  """
  Evidence for the release
  """
  evidences(
    """
    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
  ): ReleaseEvidenceConnection

  """
  Links of the release
  """
  links: ReleaseLinks

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

  """
  Indicates the release is an upcoming release
  """
  upcomingRelease: Boolean
}

"""
Represents an asset link associated with a release
"""
type ReleaseAssetLink {
  """
  Direct asset URL of the link
  """
  directAssetUrl: String

  """
  Indicates the link points to an external resource
  """
  external: Boolean

  """
  ID of the link
  """
  id: ID!

  """
  Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other`
  """
  linkType: ReleaseAssetLinkType

  """
  Name of the link
  """
  name: String

  """
  URL of the link
  """
  url: String
}

"""
The connection type for ReleaseAssetLink.
"""
type ReleaseAssetLinkConnection {
  """
  A list of edges.
  """
  edges: [ReleaseAssetLinkEdge]

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

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

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

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

"""
Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other`
"""
enum ReleaseAssetLinkType {
  """
  Image link type
  """
  IMAGE

  """
  Other link type
  """
  OTHER

  """
  Package link type
  """
  PACKAGE

  """
  Runbook link type
  """
  RUNBOOK
}

"""
A container for all assets associated with a release
"""
type ReleaseAssets {
  """
  Number of assets of the release
  """
  count: Int

  """
  Asset links of the release
  """
  links(
    """
    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
  ): ReleaseAssetLinkConnection

  """
  Sources of the release
  """
  sources(
    """
    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
  ): ReleaseSourceConnection
}

"""
The connection type for Release.
"""
type ReleaseConnection {
  """
  Total count of collection
  """
  count: Int!

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

"""
Evidence for a release
"""
type ReleaseEvidence {
  """
  Timestamp when the evidence was collected
  """
  collectedAt: Time

  """
  URL from where the evidence can be downloaded
  """
  filepath: String

  """
  ID of the evidence
  """
  id: ID!

  """
  SHA1 ID of the evidence hash
  """
  sha: String
}

"""
The connection type for ReleaseEvidence.
"""
type ReleaseEvidenceConnection {
  """
  A list of edges.
  """
  edges: [ReleaseEvidenceEdge]

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

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

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

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

type ReleaseLinks {
  """
  HTTP URL of the release's edit page
  """
  editUrl: String

  """
  HTTP URL of the issues page filtered by this release
  """
  issuesUrl: String

  """
  HTTP URL of the merge request page filtered by this release
  """
  mergeRequestsUrl: String

  """
  HTTP URL of the release
  """
  selfUrl: String
}

"""
Represents the source code attached to a release in a particular format
"""
type ReleaseSource {
  """
  Format of the source
  """
  format: String

  """
  Download URL of the source
  """
  url: String
}

"""
The connection type for ReleaseSource.
"""
type ReleaseSourceConnection {
  """
  A list of edges.
  """
  edges: [ReleaseSourceEdge]

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

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

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

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

"""
Autogenerated input type of RemoveAwardEmoji
"""
input RemoveAwardEmojiInput {
  """
  The global id of the awardable resource
  """
  awardableId: AwardableID!

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

  """
  Description of the requirement
  """
  description: String

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

  """
  ID of the requirement
  """
  id: ID!

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

  """
  Indicates if latest test report was created by user
  """
  lastTestReportManuallyCreated: Boolean

  """
  Latest requirement test report state
  """
  lastTestReportState: TestReportState

  """
  Project to which the requirement belongs
  """
  project: Project!

  """
  State of the requirement
  """
  state: RequirementState!

  """
  Test reports of the requirement
  """
  testReports(
    """
    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

    """
    List test reports by sort order
    """
    sort: Sort
  ): TestReportConnection

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

  """
  The GitLab Flavored Markdown rendering of `title`
  """
  titleHtml: 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
}

interface ResolvableInterface {
  """
  Indicates if the object can be resolved
  """
  resolvable: Boolean!

  """
  Indicates if the object is resolved
  """
  resolved: Boolean!

  """
  Timestamp of when the object was resolved
  """
  resolvedAt: Time

  """
  User who resolved the object
  """
  resolvedBy: User
}

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

  """
  ID of the vulnerability to be reverted
  """
  id: VulnerabilityID!
}

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

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

  """
  The vulnerability after revert
  """
  vulnerability: Vulnerability
}

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 CI pipeline artifacts size in bytes
  """
  pipelineArtifactsSize: Float!

  """
  The Git repository size in bytes
  """
  repositorySize: Float!

  """
  The snippets size in bytes
  """
  snippetsSize: Float!

  """
  The total storage in bytes
  """
  storageSize: Float!

  """
  The wiki size in bytes
  """
  wikiSize: Float!
}

"""
Autogenerated input type of RunDASTScan
"""
input RunDASTScanInput {
  """
  The branch to be associated with the scan.
  """
  branch: String!

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

  """
  The project the DAST scan belongs to.
  """
  projectPath: ID!

  """
  The type of scan to be run.
  """
  scanType: DastScanTypeEnum!

  """
  The URL of the target to be scanned.
  """
  targetUrl: String!
}

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

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

  """
  URL of the pipeline that was created.
  """
  pipelineUrl: String
}

type RunnerArchitecture {
  """
  Download location for the runner for the platform architecture
  """
  downloadLocation: String!

  """
  Name of the runner platform architecture
  """
  name: String!
}

"""
The connection type for RunnerArchitecture.
"""
type RunnerArchitectureConnection {
  """
  A list of edges.
  """
  edges: [RunnerArchitectureEdge]

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

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

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

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

type RunnerPlatform {
  """
  Runner architectures supported for the platform
  """
  architectures(
    """
    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
  ): RunnerArchitectureConnection

  """
  Human readable name of the runner platform
  """
  humanReadableName: String!

  """
  Name slug of the runner platform
  """
  name: String!
}

"""
The connection type for RunnerPlatform.
"""
type RunnerPlatformConnection {
  """
  A list of edges.
  """
  edges: [RunnerPlatformEdge]

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

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

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

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

"""
Represents a CI configuration of SAST
"""
type SastCiConfiguration {
  """
  List of analyzers entities attached to SAST configuration.
  """
  analyzers(
    """
    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
  ): SastCiConfigurationAnalyzersEntityConnection

  """
  List of global entities related to SAST configuration.
  """
  global(
    """
    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
  ): SastCiConfigurationEntityConnection

  """
  List of pipeline entities related to SAST configuration.
  """
  pipeline(
    """
    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
  ): SastCiConfigurationEntityConnection
}

"""
Represents an analyzer entity in SAST CI configuration
"""
type SastCiConfigurationAnalyzersEntity {
  """
  Analyzer description that is displayed on the form
  """
  description: String

  """
  Indicates whether an analyzer is enabled
  """
  enabled: Boolean

  """
  Analyzer label used in the config UI
  """
  label: String

  """
  Name of the analyzer
  """
  name: String

  """
  List of supported variables
  """
  variables(
    """
    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
  ): SastCiConfigurationEntityConnection
}

"""
The connection type for SastCiConfigurationAnalyzersEntity.
"""
type SastCiConfigurationAnalyzersEntityConnection {
  """
  A list of edges.
  """
  edges: [SastCiConfigurationAnalyzersEntityEdge]

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

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

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

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

"""
Represents the analyzers entity in SAST CI configuration
"""
input SastCiConfigurationAnalyzersEntityInput {
  """
  State of the analyzer
  """
  enabled: Boolean!

  """
  Name of analyzer
  """
  name: String!

  """
  List of variables for the analyzer
  """
  variables: [SastCiConfigurationEntityInput!]
}

"""
Represents an entity in SAST CI configuration
"""
type SastCiConfigurationEntity {
  """
  Default value that is used if value is empty.
  """
  defaultValue: String

  """
  Entity description that is displayed on the form.
  """
  description: String

  """
  CI keyword of entity.
  """
  field: String

  """
  Label for entity used in the form.
  """
  label: String

  """
  Different possible values of the field.
  """
  options(
    """
    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
  ): SastCiConfigurationOptionsEntityConnection

  """
  Size of the UI component.
  """
  size: SastUiComponentSize

  """
  Type of the field value.
  """
  type: String

  """
  Current value of the entity.
  """
  value: String
}

"""
The connection type for SastCiConfigurationEntity.
"""
type SastCiConfigurationEntityConnection {
  """
  A list of edges.
  """
  edges: [SastCiConfigurationEntityEdge]

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

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

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

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

"""
Represents an entity in SAST CI configuration
"""
input SastCiConfigurationEntityInput {
  """
  Default value that is used if value is empty
  """
  defaultValue: String!

  """
  CI keyword of entity
  """
  field: String!

  """
  Current value of the entity
  """
  value: String!
}

"""
Represents a CI configuration of SAST
"""
input SastCiConfigurationInput {
  """
  List of analyzers and related variables for the SAST configuration
  """
  analyzers: [SastCiConfigurationAnalyzersEntityInput!]

  """
  List of global entities related to SAST configuration
  """
  global: [SastCiConfigurationEntityInput!]

  """
  List of pipeline entities related to SAST configuration
  """
  pipeline: [SastCiConfigurationEntityInput!]
}

"""
Represents an entity for options in SAST CI configuration
"""
type SastCiConfigurationOptionsEntity {
  """
  Label of option entity.
  """
  label: String

  """
  Value of option entity.
  """
  value: String
}

"""
The connection type for SastCiConfigurationOptionsEntity.
"""
type SastCiConfigurationOptionsEntityConnection {
  """
  A list of edges.
  """
  edges: [SastCiConfigurationOptionsEntityEdge]

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

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

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

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

"""
Size of UI component in SAST configuration page
"""
enum SastUiComponentSize {
  LARGE
  MEDIUM
  SMALL
}

"""
Represents a resource scanned by a security scan
"""
type ScannedResource {
  """
  The HTTP request method used to access the URL
  """
  requestMethod: String

  """
  The URL scanned by the scanner
  """
  url: String
}

"""
The connection type for ScannedResource.
"""
type ScannedResourceConnection {
  """
  A list of edges.
  """
  edges: [ScannedResourceEdge]

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

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

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

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

"""
Represents summary of a security report
"""
type SecurityReportSummary {
  """
  Aggregated counts for the api_fuzzing scan
  """
  apiFuzzing: SecurityReportSummarySection

  """
  Aggregated counts for the container_scanning scan
  """
  containerScanning: SecurityReportSummarySection

  """
  Aggregated counts for the coverage_fuzzing scan
  """
  coverageFuzzing: SecurityReportSummarySection

  """
  Aggregated counts for the dast scan
  """
  dast: SecurityReportSummarySection

  """
  Aggregated counts for the dependency_scanning scan
  """
  dependencyScanning: SecurityReportSummarySection

  """
  Aggregated counts for the sast scan
  """
  sast: SecurityReportSummarySection

  """
  Aggregated counts for the secret_detection scan
  """
  secretDetection: SecurityReportSummarySection
}

"""
Represents a section of a summary of a security report
"""
type SecurityReportSummarySection {
  """
  A list of the first 20 scanned resources
  """
  scannedResources(
    """
    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
  ): ScannedResourceConnection

  """
  Total number of scanned resources
  """
  scannedResourcesCount: Int

  """
  Path to download all the scanned resources in CSV format
  """
  scannedResourcesCsvPath: String

  """
  Total number of vulnerabilities
  """
  vulnerabilitiesCount: Int
}

"""
The type of the security scanner
"""
enum SecurityScannerType {
  API_FUZZING
  CONTAINER_SCANNING
  COVERAGE_FUZZING
  DAST
  DEPENDENCY_SCANNING
  SAST
  SECRET_DETECTION
}

"""
Represents a list of security scanners
"""
type SecurityScanners {
  """
  List of analyzers which are available for the project.
  """
  available: [SecurityScannerType!]

  """
  List of analyzers which are enabled for the project.
  """
  enabled: [SecurityScannerType!]

  """
  List of analyzers which ran successfully in the latest pipeline.
  """
  pipelineRun: [SecurityScannerType!]
}

"""
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 short version the error was first seen
  """
  firstReleaseShortVersion: String

  """
  Release version the error was first seen
  """
  firstReleaseVersion: 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 short version the error was last seen
  """
  lastReleaseShortVersion: String

  """
  Release version the error was last seen
  """
  lastReleaseVersion: 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 query for the Sentry error details
    """
    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
  CONFLUENCE_SERVICE
  CUSTOM_ISSUE_TRACKER_SERVICE
  DISCORD_SERVICE
  DRONE_CI_SERVICE
  EMAILS_ON_PUSH_SERVICE
  EWM_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. Deprecated in 13.3: Use `blobs`
  """
  blob: SnippetBlob! @deprecated(reason: "Use `blobs`. Deprecated in 13.3")

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

    """
    Paths of the blobs
    """
    paths: [String!]
  ): SnippetBlobConnection

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

"""
Type of a snippet blob input action
"""
enum SnippetBlobActionEnum {
  create
  delete
  move
  update
}

"""
Represents an action to perform over a snippet file
"""
input SnippetBlobActionInputType {
  """
  Type of input action
  """
  action: SnippetBlobActionEnum!

  """
  Snippet file content
  """
  content: String

  """
  Path of the snippet file
  """
  filePath: String!

  """
  Previous path of the snippet file
  """
  previousPath: String
}

"""
The connection type for SnippetBlob.
"""
type SnippetBlobConnection {
  """
  A list of edges.
  """
  edges: [SnippetBlobEdge]

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

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

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

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

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

  """
  Created at ascending order
  """
  created_asc @deprecated(reason: "Use CREATED_ASC. Deprecated in 13.5")

  """
  Created at descending order
  """
  created_desc @deprecated(reason: "Use CREATED_DESC. Deprecated in 13.5")

  """
  Updated at ascending order
  """
  updated_asc @deprecated(reason: "Use UPDATED_ASC. Deprecated in 13.5")

  """
  Updated at descending order
  """
  updated_desc @deprecated(reason: "Use UPDATED_DESC. Deprecated in 13.5")
}

type StatusAction {
  """
  Title for the button, for example: Retry this job
  """
  buttonTitle: String

  """
  Icon used in the action button
  """
  icon: String

  """
  Method for the action, for example: :post
  """
  method: String

  """
  Path for the action
  """
  path: String

  """
  Title for the action, for example: Retry
  """
  title: String
}

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

type TerraformState {
  """
  Timestamp the Terraform state was created
  """
  createdAt: Time!

  """
  ID of the Terraform state
  """
  id: ID!

  """
  Timestamp the Terraform state was locked
  """
  lockedAt: Time

  """
  The user currently holding a lock on the Terraform state
  """
  lockedByUser: User

  """
  Name of the Terraform state
  """
  name: String!

  """
  Timestamp the Terraform state was updated
  """
  updatedAt: Time!
}

"""
The connection type for TerraformState.
"""
type TerraformStateConnection {
  """
  A list of edges.
  """
  edges: [TerraformStateEdge]

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

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

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

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

"""
Represents the Geo sync and verification state of a terraform state version
"""
type TerraformStateVersionRegistry {
  """
  Timestamp when the TerraformStateVersionRegistry was created
  """
  createdAt: Time

  """
  ID of the TerraformStateVersionRegistry
  """
  id: ID!

  """
  Error message during sync of the TerraformStateVersionRegistry
  """
  lastSyncFailure: String

  """
  Timestamp of the most recent successful sync of the TerraformStateVersionRegistry
  """
  lastSyncedAt: Time

  """
  Timestamp after which the TerraformStateVersionRegistry should be resynced
  """
  retryAt: Time

  """
  Number of consecutive failed sync attempts of the TerraformStateVersionRegistry
  """
  retryCount: Int

  """
  Sync state of the TerraformStateVersionRegistry
  """
  state: RegistryState

  """
  ID of the terraform state version
  """
  terraformStateVersionId: ID!
}

"""
The connection type for TerraformStateVersionRegistry.
"""
type TerraformStateVersionRegistryConnection {
  """
  A list of edges.
  """
  edges: [TerraformStateVersionRegistryEdge]

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

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

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

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

"""
Represents a requirement test report
"""
type TestReport {
  """
  Author of the test report
  """
  author: User

  """
  Timestamp of when the test report was created
  """
  createdAt: Time!

  """
  ID of the test report
  """
  id: ID!

  """
  State of the test report
  """
  state: TestReportState!
}

"""
The connection type for TestReport.
"""
type TestReportConnection {
  """
  A list of edges.
  """
  edges: [TestReportEdge]

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

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

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

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

"""
State of a test report
"""
enum TestReportState {
  FAILED
  PASSED
}

"""
Time represented in ISO 8601
"""
scalar Time

interface TimeboxBurnupTimeSeriesInterface {
  """
  Daily scope and completed totals for burnup charts
  """
  burnupTimeSeries: [BurnupChartDailyTotals!]
}

"""
A time-frame defined as a closed inclusive range of two dates
"""
input Timeframe {
  """
  The end of the range
  """
  end: Date!

  """
  The start of the range
  """
  start: Date!
}

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

  """
  The note where the quick action to add the logged time was executed
  """
  note: Note

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

"""
Identifier of Todo
"""
scalar TodoID

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

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

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

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

  """
  Updated todos
  """
  todos: [Todo!]!

  """
  The ids of the updated todo items. Deprecated in 13.2: Use todos
  """
  updatedIds: [ID!]! @deprecated(reason: "Use todos. Deprecated in 13.2")
}

"""
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 {
  """
  An Alert
  """
  ALERT

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

  """
  Updated todos
  """
  todos: [Todo!]!

  """
  Ids of the updated todos. Deprecated in 13.2: Use todos
  """
  updatedIds: [ID!]! @deprecated(reason: "Use todos. Deprecated in 13.2")
}

"""
Autogenerated input type of ToggleAwardEmoji
"""
input ToggleAwardEmojiInput {
  """
  The global id of the awardable resource
  """
  awardableId: AwardableID!

  """
  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 path for the tree entry (directory)
  """
  webPath: String

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

"""
A regexp containing patterns sourced from user input
"""
scalar UntrustedRegexp

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

  """
  The todo after mutation
  """
  todo: Todo
}

"""
Autogenerated input type of UpdateBoardEpicUserPreferences
"""
input UpdateBoardEpicUserPreferencesInput {
  """
  The board global ID
  """
  boardId: BoardID!

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

  """
  Whether the epic should be collapsed in the board
  """
  collapsed: Boolean!

  """
  ID of an epic to set preferences for
  """
  epicId: EpicID!
}

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

  """
  User preferences for the epic in the board after mutation
  """
  epicUserPreferences: BoardEpicUserPreferences

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

"""
Autogenerated input type of UpdateBoard
"""
input UpdateBoardInput {
  """
  The id of user to be assigned to the board.
  """
  assigneeId: UserID

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

  """
  Whether or not backlog list is hidden.
  """
  hideBacklogList: Boolean

  """
  Whether or not closed list is hidden.
  """
  hideClosedList: Boolean

  """
  The board global id.
  """
  id: BoardID!

  """
  The IDs of labels to be added to the board.
  """
  labelIds: [LabelID!]

  """
  Labels of the issue
  """
  labels: [String!]

  """
  The id of milestone to be assigned to the board.
  """
  milestoneId: MilestoneID

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

  """
  The weight value to be assigned to the board.
  """
  weight: Int
}

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

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

  """
  Global ID of the list.
  """
  listId: ID!

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

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

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

  """
  Mutated list
  """
  list: BoardList
}

"""
Autogenerated return type of UpdateBoard
"""
type UpdateBoardPayload {
  """
  The board after mutation.
  """
  board: Board

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

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

"""
Autogenerated input type of UpdateContainerExpirationPolicy
"""
input UpdateContainerExpirationPolicyInput {
  """
  This container expiration policy schedule
  """
  cadence: ContainerExpirationPolicyCadenceEnum

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

  """
  Indicates whether this container expiration policy is enabled
  """
  enabled: Boolean

  """
  Number of tags to retain
  """
  keepN: ContainerExpirationPolicyKeepEnum

  """
  Tags with names matching this regex pattern will expire
  """
  nameRegex: UntrustedRegexp

  """
  Tags with names matching this regex pattern will be preserved
  """
  nameRegexKeep: UntrustedRegexp

  """
  Tags older that this will expire
  """
  olderThan: ContainerExpirationPolicyOlderThanEnum

  """
  The project path where the container expiration policy is located
  """
  projectPath: ID!
}

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

  """
  The container expiration policy after mutation
  """
  containerExpirationPolicy: ContainerExpirationPolicy

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

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

  """
  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 {
  """
  The IDs of labels to be added to the issue
  """
  addLabelIds: [ID!]

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

  """
  The ID of the parent epic. NULL when removing the association
  """
  epicId: ID

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

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

  """
  The ID of the milestone to assign to the issue. On update milestone will be removed if set to null
  """
  milestoneId: ID

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

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

  """
  Close or reopen an issue
  """
  stateEvent: IssueStateEvent

  """
  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 UpdateIteration
"""
input UpdateIterationInput {
  """
  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 group of the iteration
  """
  groupPath: ID!

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

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

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

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

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

  """
  The updated iteration
  """
  iteration: Iteration
}

"""
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 confidentiality flag of a note. Default is false.
  """
  confidential: Boolean

  """
  The global id of the note to update
  """
  id: NoteID!
}

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

  """
  Description of the requirement
  """
  description: String

  """
  The iid of the requirement to update
  """
  iid: String!

  """
  Creates a test report for the requirement with the given state
  """
  lastTestReportState: TestReportState

  """
  Full project 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!]!

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

"""
Autogenerated input type of UpdateSnippet
"""
input UpdateSnippetInput {
  """
  Actions to perform over the snippet repository and blobs
  """
  blobActions: [SnippetBlobActionInputType!]

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

  """
  Description of the snippet
  """
  description: 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

  """
  Indicates whether the operation returns a record detected as spam
  """
  spam: Boolean
}

scalar Upload

type User {
  """
  Merge Requests assigned to the user
  """
  assignedMergeRequests(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Username of the author
    """
    authorUsername: 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 IIDs of merge requests, for example `[1, 2]`
    """
    iids: [String!]

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

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

    """
    Merge requests merged after this date
    """
    mergedAfter: Time

    """
    Merge requests merged before this date
    """
    mergedBefore: Time

    """
    Title of the milestone
    """
    milestoneTitle: String

    """
    The global ID of the project the authored merge requests should be in. Incompatible with projectPath.
    """
    projectId: ID

    """
    The full-path of the project the authored merge requests should be in. Incompatible with projectId.
    """
    projectPath: String

    """
    Sort merge requests by this criteria
    """
    sort: MergeRequestSort = created_desc

    """
    Array of source branch names. All resolved merge requests will have one of these branches as their source.
    """
    sourceBranches: [String!]

    """
    A merge request state. If provided, all resolved merge requests will have this state.
    """
    state: MergeRequestState

    """
    Array of target branch names. All resolved merge requests will have one of these branches as their target.
    """
    targetBranches: [String!]
  ): MergeRequestConnection

  """
  Merge Requests authored by the user
  """
  authoredMergeRequests(
    """
    Returns the elements in the list that come after the specified cursor.
    """
    after: String

    """
    Username of the assignee
    """
    assigneeUsername: 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 IIDs of merge requests, for example `[1, 2]`
    """
    iids: [String!]

    """
    Array of label names. All resolved merge requests will have all of these labels.
    """
    labels: [String!]

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

    """
    Merge requests merged after this date
    """
    mergedAfter: Time

    """
    Merge requests merged before this date
    """
    mergedBefore: Time

    """
    Title of the milestone
    """
    milestoneTitle: String

    """
    The global ID of the project the authored merge requests should be in. Incompatible with projectPath.
    """
    projectId: ID

    """
    The full-path of the project the authored merge requests should be in. Incompatible with projectId.
    """
    projectPath: String

    """
    Sort merge requests by this criteria
    """
    sort: MergeRequestSort = created_desc

    """
    Array of source branch names. All resolved merge requests will have one of these branches as their source.
    """
    sourceBranches: [String!]

    """
    A merge request state. If provided, all resolved merge requests will have this state.
    """
    state: MergeRequestState

    """
    Array of target branch names. All resolved merge requests will have one of these branches as their target.
    """
    targetBranches: [String!]
  ): MergeRequestConnection

  """
  URL of the user's avatar
  """
  avatarUrl: String

  """
  User email
  """
  email: String

  """
  Group memberships of the user
  """
  groupMemberships(
    """
    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
  ): GroupMemberConnection

  """
  ID of the user
  """
  id: ID!

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

  """
  Project memberships of the user
  """
  projectMemberships(
    """
    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
  ): ProjectMemberConnection

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

  """
  Projects starred by the user
  """
  starredProjects(
    """
    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 query
    """
    search: String
  ): ProjectConnection

  """
  State of the user
  """
  state: UserState!

  """
  User status
  """
  status: UserStatus

  """
  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 path of the user
  """
  webPath: 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
}

"""
Identifier of User
"""
scalar UserID

type UserPermissions {
  """
  Indicates the user can perform `create_snippet` on this resource
  """
  createSnippet: Boolean!
}

"""
Possible states of a user
"""
enum UserState {
  """
  The user is active and is able to use the system
  """
  active

  """
  The user has been blocked and is prevented from using the system
  """
  blocked

  """
  The user is no longer active and is unable to use the system
  """
  deactivated
}

type UserStatus {
  """
  String representation of emoji
  """
  emoji: String

  """
  User status message
  """
  message: String

  """
  HTML of the user status message
  """
  messageHtml: String
}

enum VisibilityLevelsEnum {
  internal
  private
  public
}

enum VisibilityScopesEnum {
  internal
  private
  public
}

"""
Represents the count of vulnerabilities by severity on a particular day
"""
type VulnerabilitiesCountByDay {
  """
  Total number of vulnerabilities on a particular day with critical severity
  """
  critical: Int!

  """
  Date for the count
  """
  date: ISO8601Date!

  """
  Total number of vulnerabilities on a particular day with high severity
  """
  high: Int!

  """
  Total number of vulnerabilities on a particular day with info severity
  """
  info: Int!

  """
  Total number of vulnerabilities on a particular day with low severity
  """
  low: Int!

  """
  Total number of vulnerabilities on a particular day with medium severity
  """
  medium: Int!

  """
  Total number of vulnerabilities on a particular day
  """
  total: Int!

  """
  Total number of vulnerabilities on a particular day with unknown severity
  """
  unknown: Int!
}

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

"""
The connection type for VulnerabilitiesCountByDay.
"""
type VulnerabilitiesCountByDayConnection {
  """
  A list of edges.
  """
  edges: [VulnerabilitiesCountByDayEdge]

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

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

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

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

"""
Represents a vulnerability
"""
type Vulnerability implements Noteable {
  """
  Description of the vulnerability
  """
  description: String

  """
  Timestamp of when the vulnerability was first detected
  """
  detectedAt: Time!

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

  """
  GraphQL ID of the vulnerability
  """
  id: ID!

  """
  Identifiers of the vulnerability.
  """
  identifiers: [VulnerabilityIdentifier!]!

  """
  List of issue links related to the vulnerability
  """
  issueLinks(
    """
    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 issue links by link type
    """
    linkType: VulnerabilityIssueLinkType
  ): VulnerabilityIssueLinkConnection!

  """
  Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability
  """
  location: VulnerabilityLocation

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

  """
  Primary identifier of the vulnerability.
  """
  primaryIdentifier: VulnerabilityIdentifier

  """
  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, SECRET_DETECTION,
  COVERAGE_FUZZING, API_FUZZING)
  """
  reportType: VulnerabilityReportType

  """
  Indicates whether the vulnerability is fixed on the default branch or not
  """
  resolvedOnDefaultBranch: Boolean!

  """
  Scanner metadata for the vulnerability.
  """
  scanner: VulnerabilityScanner

  """
  Severity of the vulnerability (INFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL)
  """
  severity: VulnerabilitySeverity

  """
  State of the vulnerability (DETECTED, CONFIRMED, RESOLVED, DISMISSED)
  """
  state: VulnerabilityState

  """
  Title of the vulnerability
  """
  title: String

  """
  Number of user notes attached to the vulnerability
  """
  userNotesCount: Int!

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

  """
  URL to the vulnerability's details page
  """
  vulnerabilityPath: String
}

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

  """
  ID of the vulnerability to be confirmed
  """
  id: VulnerabilityID!
}

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

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

  """
  The vulnerability after state change
  """
  vulnerability: Vulnerability
}

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

"""
Autogenerated input type of VulnerabilityDismiss
"""
input VulnerabilityDismissInput {
  """
  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: VulnerabilityID!
}

"""
Autogenerated return type of VulnerabilityDismiss
"""
type VulnerabilityDismissPayload {
  """
  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
}

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

"""
The grade of the vulnerable project
"""
enum VulnerabilityGrade {
  A
  B
  C
  D
  F
}

"""
Identifier of Vulnerability
"""
scalar VulnerabilityID

"""
Represents a vulnerability identifier
"""
type VulnerabilityIdentifier {
  """
  External ID of the vulnerability identifier
  """
  externalId: String

  """
  External type of the vulnerability identifier
  """
  externalType: String

  """
  Name of the vulnerability identifier
  """
  name: String

  """
  URL of the vulnerability identifier
  """
  url: String
}

"""
Represents an issue link of a vulnerability
"""
type VulnerabilityIssueLink {
  """
  GraphQL ID of the vulnerability
  """
  id: ID!

  """
  The issue attached to issue link
  """
  issue: Issue!

  """
  Type of the issue link
  """
  linkType: VulnerabilityIssueLinkType!
}

"""
The connection type for VulnerabilityIssueLink.
"""
type VulnerabilityIssueLinkConnection {
  """
  A list of edges.
  """
  edges: [VulnerabilityIssueLinkEdge]

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

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

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

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

"""
The type of the issue link related to a vulnerability
"""
enum VulnerabilityIssueLinkType {
  CREATED
  RELATED
}

"""
Represents a vulnerability location. The fields with data will depend on the vulnerability report type
"""
union VulnerabilityLocation = VulnerabilityLocationContainerScanning | VulnerabilityLocationCoverageFuzzing | VulnerabilityLocationDast | VulnerabilityLocationDependencyScanning | VulnerabilityLocationSast | VulnerabilityLocationSecretDetection

"""
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 Coverage Fuzzing scan
"""
type VulnerabilityLocationCoverageFuzzing {
  """
  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
}

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

"""
Represents the location of a vulnerability found by a secret detection scan
"""
type VulnerabilityLocationSecretDetection {
  """
  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 {
  API_FUZZING
  CONTAINER_SCANNING
  COVERAGE_FUZZING
  DAST
  DEPENDENCY_SCANNING
  SAST
  SECRET_DETECTION
}

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

  """
  ID of the vulnerability to be resolved
  """
  id: VulnerabilityID!
}

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

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

  """
  The vulnerability after state change
  """
  vulnerability: Vulnerability
}

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

  """
  ID of the vulnerability to be reverted
  """
  id: VulnerabilityID!
}

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

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

  """
  The vulnerability after revert
  """
  vulnerability: Vulnerability
}

"""
Represents a vulnerability scanner
"""
type VulnerabilityScanner {
  """
  External ID of the vulnerability scanner
  """
  externalId: String

  """
  Name of the vulnerability scanner
  """
  name: String

  """
  Type of the vulnerability report
  """
  reportType: VulnerabilityReportType

  """
  Vendor of the vulnerability scanner
  """
  vendor: String
}

"""
The connection type for VulnerabilityScanner.
"""
type VulnerabilityScannerConnection {
  """
  A list of edges.
  """
  edges: [VulnerabilityScannerEdge]

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

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

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

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

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

"""
Vulnerability sort values
"""
enum VulnerabilitySort {
  """
  Detection timestamp in ascending order
  """
  detected_asc

  """
  Detection timestamp in descending order
  """
  detected_desc

  """
  Report Type in ascending order
  """
  report_type_asc

  """
  Report Type in descending order
  """
  report_type_desc

  """
  Severity in ascending order
  """
  severity_asc

  """
  Severity in descending order
  """
  severity_desc

  """
  State in ascending order
  """
  state_asc

  """
  State in descending order
  """
  state_desc

  """
  Title in ascending order
  """
  title_asc

  """
  Title in descending order
  """
  title_desc
}

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

"""
Represents vulnerability letter grades with associated projects
"""
type VulnerableProjectsByGrade {
  """
  Number of projects within this grade
  """
  count: Int!

  """
  Grade based on the highest severity vulnerability present
  """
  grade: VulnerabilityGrade!

  """
  Projects within this grade
  """
  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!
}